[Armadillo:09069] Re: UDP通信について

h.kondo email@hidden
2013年 7月 25日 (木) 12:02:37 JST


中山様

近藤です。
情報のご提供ありがとうございます。

UDPではパケットロスが生じる可能性があり、ご指摘のURLにもありましたが、
アプリケーション側の責任ということですね。

本来は、TCPへの変更や、アプリケーション側での再送処理等を行うべきだと
理解できましたが、諸事情により難しい状況です。

物理的に、送信元と送信先のみを接続している場合(現状と同等)でも、
パケットロスが発生する可能性はあるのでしょうか。
ルータ等を使用して複数のネットワーク機器を接続している状態ではないのですが。



-----Original Message----- 
From: nakayama junichi
Sent: Thursday, July 25, 2013 11:20 AM
To: Armadillo general discussion list
Subject: [Armadillo:09068] Re: UDP通信について

近藤様

ONICOSの中山と申します。

近藤さんの期待されているような回答になっていないと思いますが、
UDPではパケットロスが生じる可能性があります。

例えば、以下のページに解説があります。
http://ascii.jp/elem/000/000/462/462454/

TCPには再送制御の機能がありますが、
UDPにはそういった機能がありませんので、
パケットが届いていなくても、
それに対して何らかの対処が行われるということはありません。

届かないパケットが存在した場合、それが届くことを保証するのは
UDPの責任ではなく、アプリケーション側の責任ということになっています。
(パケットに連続番号を付与されているということなので、
欠落した部分の再送要求を返す、といった機能を実装するのは不可能ではなさそうです) 

上記リンク先のページにも書いてありますが、
パケットの到達を保証したいのであれば、TCPを使うのが一番良い方法です。


> お世話になります。近藤と申します。
>
> Armadillo440を使用し、UDP通信を行おうとしています。
> 以下のような条件で行っていますが、パケットが送信先に届かない事象が発生しています。
>
> kernel : 2.6.26-at15
> 条件 : 2Mバイトのデータを約1024バイト単位でパケット分割し、約20ms間隔でUDP送信する。
> 事象 : 途中の1パケットだけ送信先に届かない。
> 頻度 : 2Mバイトの送信動作100回中で数回発生する。
>
> パケットに連続番号を付加して通信モニタで確認したところ、不特定の1パケットが 
> 
> モニタ上に表示されず、規則性はないようです。
> 送信側ではエラーは発生しておらず、届かないパケットの前後のタイムスタンプを見ると
> 約40msとなっていて、届いていないパケット分だけ間隔が空いており、
> 送信側としては正常に動作しているつもりになっているようです。
>
> 発生頻度も少なく、調査に難航しています。
> 原因、調査方法等について、情報がありましたらご教示お願いします。
>
>
> 直接関係ないかもしれませんが、過去のメーリングリストを拝見したところ、
> 「UDPパケットをロス」という表記が見つかり、Armadillo800のブートローダで
> UDPパケットをロスする現象等を修正したアップデート情報にたどり着きました。
>
> 上記の「UDPパケットロス」とはどういう内容なのか情報はありませんでしょうか。 
> 
> また、Armadillo800固有の問題なのでしょうか。
>
> お手数をお掛けしますが、よろしくお願いします。
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
_______________________________________________
armadillo mailing list
email@hidden
http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo 




armadillo メーリングリストの案内