ローカルエリアネットワークUDPマルチキャストとデバイス自動検出テスト
3727 ワード
AirKiss、SmartConfigのようなネットワーク応用技術に加えて、従来のTCP/UDP接続をテストするために、できるだけ手元のオープンソースハードウェアを利用する必要があります.その中でUDPのマルチキャストはユビキタスネットワーク応用において一定の重要な意義を持っている.主なUDPマルチキャストアプリケーションプロトコルは以下のとおりです. mDNS SSDP/uPnP Apple AirPlay DLNA、各種メディアプレーヤー
IGMP(Internet Group Management Protocol)プロトコルは、あるサブネット内にあるマルチキャストグループに送信されたデータに興味を持つクライアントがいることをルータに伝え、そのグループのデータが到着すると、ルータは興味のあるすべてのクライアントに転送される.
Windowsホストが参加するIPマルチキャストはすべて失敗していることがわかりました.まずWiFiルータがIGMPとuPnPサービスを禁止しているのではないかと疑って、テストしてみると、同じWiFiローカルエリアネットワーク内では、テレビや携帯電話のメディアプッシュに問題はありません.
しかし、WindowsのBonjourサービスを開始し、ファイアウォールを閉鎖しても失敗した.Windows 10およびUbuntuサブシステムがマルチキャストメッセージをリスニングおよびプッシュできない要因として、Windowsのネットワーク構成に依然として問題があると推測される.Windows 10に付属のUbuntuサブシステムは、オペレーティングシステムのファイアウォールによって制御されており、マルチキャストメッセージの送受信ができない.エラー:
Windowsで動作する仮想マシンは、ネットワーク構成がブリッジモードであるため、Ubuntu仮想マシンはルータから直接IPアドレスを取得することができ、Windowsファイアウォールは機能しません.マルチキャストメッセージを送受信できます.
今朝Ubuntu 12.04(WindowsのVirtualBoxの仮想マシン)とベリーパイRaspbianをテストしましたが、Linux間のマルチキャストには何の問題もありませんでした.テストツールはiperfを使用しており、次はPython socketを使用してテストします.
以上はベリーパイ、Ubuntu収、逆も同様です.
マルチキャストベースのmDNS/SDPがIoTとして最大のメリットは、この2つのサービスを通じて、会社、家庭、工業、農業、軍事など、地元のIoT設備生態を構築できることです.いずれもIPv 4/v 6マルチキャストにより自動アクセスを実現し、その後、TCP/UDPのユニキャストを利用して後続の認証と協同を行うことができる.
ESP 8266にはmDNS/SDPの例が付属している.マルチキャストに興味があるのは、自分が製品を作るための実験です.
iperfはフランス人が書いたもので、最初のLinuxのほか32 bit/64 bit Windows、Android、iOS、Macなど、主流プラットフォームがサポートされています.Chrome/Android/iOSモバイル側のJavaScript runtimeがマルチキャストをサポートしている場合は、Java/C/C+/Pythonの参加を必要としなくてもいいです.
IPマルチキャストとIGMP
IGMP(Internet Group Management Protocol)プロトコルは、あるサブネット内にあるマルチキャストグループに送信されたデータに興味を持つクライアントがいることをルータに伝え、そのグループのデータが到着すると、ルータは興味のあるすべてのクライアントに転送される.
Windowsの失敗原因
Windowsホストが参加するIPマルチキャストはすべて失敗していることがわかりました.まずWiFiルータがIGMPとuPnPサービスを禁止しているのではないかと疑って、テストしてみると、同じWiFiローカルエリアネットワーク内では、テレビや携帯電話のメディアプッシュに問題はありません.
しかし、WindowsのBonjourサービスを開始し、ファイアウォールを閉鎖しても失敗した.Windows 10およびUbuntuサブシステムがマルチキャストメッセージをリスニングおよびプッシュできない要因として、Windowsのネットワーク構成に依然として問題があると推測される.Windows 10に付属のUbuntuサブシステムは、オペレーティングシステムのファイアウォールによって制御されており、マルチキャストメッセージの送受信ができない.エラー:
allankliu@allankliu-HP:/mnt/c/Users/allankliu$ iperf -s -u -B 224.0.67.67 -i 1
bind failed: Cannot assign requested address
Windowsで動作する仮想マシンは、ネットワーク構成がブリッジモードであるため、Ubuntu仮想マシンはルータから直接IPアドレスを取得することができ、Windowsファイアウォールは機能しません.マルチキャストメッセージを送受信できます.
今朝Ubuntu 12.04(WindowsのVirtualBoxの仮想マシン)とベリーパイRaspbianをテストしましたが、Linux間のマルチキャストには何の問題もありませんでした.テストツールはiperfを使用しており、次はPython socketを使用してテストします.
iperf for Linux
pi@raspberrypi ~ $ iperf -c 224.0.67.67 -u --ttl 5 -t 10
------------------------------------------------------------
Client connecting to 224.0.67.67, UDP port 5001
Sending 1470 byte datagrams
Setting multicast TTL to 5
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.1.25 port 35294 connected with 224.0.67.67 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec
[ 3] Sent 893 datagrams
allankliu@ubuntu-server-vm:~$ iperf -s -u -B 224.0.67.67 -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Binding to local address 224.0.67.67
Joining multicast group 224.0.67.67
Receiving 1470 byte datagrams
UDP buffer size: 160 KByte (default)
------------------------------------------------------------
[ 3] local 224.0.67.67 port 5001 connected with 192.168.1.25 port 35294
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 128 KBytes 1.05 Mbits/sec 1.017 ms 0/ 89 (0%)
[ 3] 1.0- 2.0 sec 129 KBytes 1.06 Mbits/sec 0.972 ms 0/ 90 (0%)
[ 3] 2.0- 3.0 sec 128 KBytes 1.05 Mbits/sec 0.723 ms 0/ 89 (0%)
[ 3] 3.0- 4.0 sec 128 KBytes 1.05 Mbits/sec 6.029 ms 0/ 89 (0%)
[ 3] 4.0- 5.0 sec 128 KBytes 1.05 Mbits/sec 1.236 ms 0/ 89 (0%)
[ 3] 5.0- 6.0 sec 128 KBytes 1.05 Mbits/sec 2.518 ms 0/ 89 (0%)
[ 3] 6.0- 7.0 sec 129 KBytes 1.06 Mbits/sec 1.097 ms 0/ 90 (0%)
[ 3] 7.0- 8.0 sec 128 KBytes 1.05 Mbits/sec 1.024 ms 0/ 89 (0%)
[ 3] 8.0- 9.0 sec 128 KBytes 1.05 Mbits/sec 0.697 ms 0/ 89 (0%)
[ 3] 9.0-10.0 sec 128 KBytes 1.05 Mbits/sec 1.586 ms 0/ 89 (0%)
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 1.577 ms 0/ 893 (0%)
以上はベリーパイ、Ubuntu収、逆も同様です.
ESP8266
マルチキャストベースのmDNS/SDPがIoTとして最大のメリットは、この2つのサービスを通じて、会社、家庭、工業、農業、軍事など、地元のIoT設備生態を構築できることです.いずれもIPv 4/v 6マルチキャストにより自動アクセスを実現し、その後、TCP/UDPのユニキャストを利用して後続の認証と協同を行うことができる.
ESP 8266にはmDNS/SDPの例が付属している.マルチキャストに興味があるのは、自分が製品を作るための実験です.
iperfの他のバージョン
iperfはフランス人が書いたもので、最初のLinuxのほか32 bit/64 bit Windows、Android、iOS、Macなど、主流プラットフォームがサポートされています.Chrome/Android/iOSモバイル側のJavaScript runtimeがマルチキャストをサポートしている場合は、Java/C/C+/Pythonの参加を必要としなくてもいいです.