[Armadillo:09068] Re: UDP通信について
nakayama junichi
email@hidden
2013年 7月 25日 (木) 11:20:18 JST
近藤様
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 メーリングリストの案内