2013年1月10日木曜日

タイムアウトについて

通信関連のプログラミングをしているとタイムアウトという言葉が出てきます。プログラムで設定できるタイムアウトは大抵2種類あります。コネクトタイムアウトとソケットタイムアウトです。

今まで漠然と「コネクトタイムアウトは接続までに待てる時間」、「ソケットタイムアウトはデータが流れなかった時に待てる時間」くらいの理解でした。

今日は「それってつまりどういうことなんだ?」と思い、検索してみました。そのものずばりの情報が見つかった訳ではないのですが、次のページから、自分なりに解釈しました。

TCP/IP エラー処理 connect 編 http://x68000.q-e-d.net/~68user/net/tcp-connect-1.html
TCP/IP - TCP( 3ウェイハンドシェイク ) http://www.infraexpert.com/study/tcpip9.html

・コネクトタイムアウトは、SYN=1で送信して、SYN=1、ACK=1を待っている時間。
・ソケットタイムアウトは、SYN=0、ACK=1で送信して、SYN=0、ACK=1を待っている時間。

…ということなのではないかと。
(自分なりの解釈と書きましたが、正確には知人の指摘を受けた上での理解です)
これも間違ってたらどうしよう…?

0 件のコメント:

コメントを投稿