UDPの受信パケットをアプリで取りこぼさないようにするには?

弊社TCP/IPプロトコルスタック「μNet3」に関するご質問
返信する
アバター
eForce技術担当
記事: 179
登録日時: 2014年4月24日(木) 14:18

UDPの受信パケットをアプリで取りこぼさないようにするには?

投稿記事 by eForce技術担当 » 2016年5月30日(月) 16:51

μNet3では受信パケットをアプリケーションが読み込むまでソケット内でいくつまで
保持するかをコンフィグレーションすることができます。
これは「受信キューサイズ」と呼ばれるコンフィグレーションでデフォルトの設定では
1つのパケットしか保持しないようになっています。

たとえばアプリケーションがrcv_soc()を実行する前に2個以上のパケットを受信すると
最初に受信したパケット以外は破棄されるのでアプリケーションは受信することはできません。
またこれはコールバックを利用したノンブロッキング設定でも同じです。
もし数usecオーダーで連続して受信するUDPパケットをアプリケーションで取りこぼさないように
する必要がある場合、コンフィグレータ(UDP設定)で受信キューサイズを2以上に設定して下さい。

(※注意※)
UDPの受信キューサイズを増やした場合、受信パケットはアプリケーションが読み込む
までソケット内に保持します。もしアプリケーションが意図しないパケットを受信していた場合
不要なネットワークバッファの使用や枯渇する可能性がありますのでご注意下さい。

返信する