OT KSA ile TCP İşlevselliğini Test Etme

Kaynağı GitHub'da görüntüleyin

OpenThread, TCP uç noktaları arasında eşler arası iletişimi test etmek için Thread ağıyla kullanılmak üzere TCP komutları sunar. cli tcp, tüm tcpkomutlarının etkileşimde bulunduğu bir örnek TCP uç noktası ve bir örnek TCP dinleyici sağlar.

Komuta genel bakışlarda ve aşağıdaki örnekte, örnek TCP uç noktası ve TCP işleyicinin başlatılması, eş TCP uç noktasına nasıl bağlanılacağı ve eşe mesaj gönderme hakkında bilgi sağlanır.

TCP komutları

tcp komutlarının listesi için help yazın:

tcp help
abort
benchmark
bind
connect
deinit
init
listen
send
sendend
stoplistening
Done
Tüm komutların açıklamaları ve söz dizimi için CLI Komut Referansı'na bakın. TCP komutları alfabetik olarak tcp abort ile başlar.

init komutu

TCP iletişimini başlatmak amacıyla TCP modülünü başlatmak için tcp init komutunu kullanın. Böylece TCP modülü, tcp CLI tarafından sağlanan örnek TCP dinleyiciyi kullanarak gelen bağlantıları dinlemek gibi birçok işlevi gerçekleştirebilir. Örnek TCP dinleyicisini ve örnek TCP uç noktasını başlatmak için tcp deinit komutunu verin.

bind komutu

TCP modülünü başlattıktan sonra örnek TCP uç noktasını bağlamak için, TCP uç noktasına IPv6 adresi ve bağlantı noktası atamak amacıyla bir tcp bind komutu çalıştırın. Bu, iletişimin uç noktasını bağlar. IPv6 adresinin ve bağlantı noktasının atanması, "uç noktanın adlandırılması" olarak da adlandırılır.

listen komutu

TCP modülünü başlattıktan sonra örnek TCP dinleyiciyi kullanmak için bir tcp listen komutu çalıştırarak IPv6 adresini ve dinleme bağlantı noktasını belirtin.

Örnek TCP dinleyicinin gelen TCP bağlantılarını dinlemesini durdurmak için tcp stoplistening komutunu verin.

connect komutu

tcp connect komutu, örnek TCP uç noktasını eş TCP uç nokta adresine bağlar.

send komutu

İki düğüm arasında bağlantı kurulduktan sonra, eşe mesaj göndermek için bir tcp send komutu gönderin.

benchmark komutları

İki düğüm arasında TCP bağlantısı kurulduktan sonra, ağ bant genişliğini ve performansını test etmek amacıyla düğümler arasında büyük miktarda veri göndermek için isteğe bağlı olarak benchmark komutlarını kullanın. benchmark sonuçlarında, TCP Goodput ve milisaniye cinsinden aktarılan bayt sayısı sağlanır.

abort komutu

Bir TCP bağlantısını hemen ve istenmeyen bir şekilde sonlandırmak için TCP uç noktasını kapalı duruma geçirmek üzere her iki düğümde de tcp abort komutunu çalıştırın.

sendend komutu

Bir düğüm diğer düğüme veri göndermeyi tamamladığında, ilk düğüm ikinci düğümü artık veri beklememesi konusunda uyarmak için bir tcp sendend komutu verebilir. İkinci düğüm de ilk düğüme bir tcp sendend gönderebilir. Her düğüm bir TCP: Disconnected mesajı aldığında iki düğüm arasındaki TCP bağlantısı kesilir. Veri aktarımı tamamlandığında bu komutun verilmesi önerilir ancak zorunlu değildir.

İki düğüm arasında mesaj gönderme

  1. 1. düğümde TCP CLI modülünü başlatın, ardından örnek TCP işleyiciyi kullanarak gelen bağlantıları dinleyin.

    tcp init
    tcp listen :: 30000
    

    :: kullanımı, listen değerinin belirtilmemiş IPv6 adresini kullanması ve dolayısıyla TCP/IPv6 yığınının IPv6 adresini atamasını sağlaması gerektiğini belirtir. Bağlantı noktası 30.000'dir.

  2. 2. düğümde TCP CLI modülünü başlatın, 1. düğüme bağlanın ve basit bir mesaj gönderin.

    tcp init
    tcp connect fe80:0:0:0:a8df:580a:860:ffa4 30000
    tcp send hello
    

Doğrulama

Yukarıda gösterilen örnek adımlara göre aşağıdaki çıkış beklenir:

  • 2. Düğüm, tcp connect komutunu çalıştırdıktan sonra 2. Düğüm TCP: Connection established mesajını alır.
  • Ardından 1. düğüm mesajları almalıdır (örnek IPv6 adresi ve bağlantı noktası ile):
    • Accepted connection from [fe80:0:0:0:8f3:f602:bf9b:52f2]:49152
    • TCP: Connection established
  • 2. Düğüm tcp send komutunu çalıştırdıktan sonra 1. Düğüm TCP: Received 5 bytes: hello mesajını alır