- - PR -
TCPの再送処理について
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-05 20:52
初めて投稿させていただきます。
これからよろしくお願いいたします。 TCPはパケットが送信先に届かなかった場合、送信元で再送を行いますが、何度、再送しても、パケットがロスしてしまう場合、いったい何回まで再送処理を行うようなっているのでしょうか? OS依存っていうことを聞いたことがあるのですが、違うのでしょうか? もし、知っている方がいたら教えていただけないでしょうか。 よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-07-06 08:06
OS依存だろうと思います。私もあまり知らないのですが... とりあえず、SVR4 での TCP の実装では、最初に1.5秒間待ってから 再送し、以後「待ち時間を2倍に増やして再送する」というのを 繰り返して、64秒を超えたところでやめるようです。 # 「64 は 1.5 の倍数じゃないじゃん」という素朴な疑問もあるですが... 参考: "TCP/IP Illustrated, Volume 1" Chapter 21 | ||||||||||||
|
投稿日時: 2004-07-08 19:52
ぽんすさん返信ありがとうございます。
非常にためになりました。 これからもよろしくお願いします。 もしどなたか、Linux(Red Hatなど)でTCPの再送処理についての 設定ファイルの場所を知っている方がいれば教えていただけないでしょうか? よろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-07-12 17:09
私もあまり詳しくないのですが、Linuxの場合
/proc/sys/net/ipv4/tcp_retries1 とか /proc/sys/net/ipv4/tcp_retries2 とかでTCPの再送処理の確認・設定が出来るみたいです。 設定をリブート後にも保存するなら /etc/sysctl.config を使うと良いですね。 http://www.securityfocus.com/infocus/1711 でLinuxのネットワーク関連のパラメータの設定方法が紹介されてます。 /proc/sys/net/ipv4 の中には tcp_sack とか tcp_syn_retries とか tcp_synack_retries とか tcp_fin_timeout とかイロイロありますね。 でも tcp_retries1 と tcp_syn_retries の違いがよく分かりません。 分かった方がおられたら教えてください。 | ||||||||||||
|
投稿日時: 2004-07-22 21:09
cn009さん教えていただきありがとうございました。
返信が遅くなって申し訳ございません。 非常にためになりました。 Linuxの知識がそれほどないため、時間がかかるかと思いますが、 現在、理解しようとがんばっています。 これからもよろしくお願いします。 | ||||||||||||
|
投稿日時: 2004-07-23 15:21
データ配送中にパケットがロスした場合に、何回までパケットを再送するかは、
http://www.silicontao.com/ProgrammingGuide/GNU_function_list/tcp.html http://www.securityfocus.com/infocus/1711 (cn009さん教えて頂ありがとうございまたした。) で、確認したところ、 /proc/sys/net/ipv4/tcp_retries2 で変更可能と書かれていました。 実際にLinux(Red Hat 9)で確認したところ、15と書かれていたんですが、 そんなに再送するものなんでしょうか? 英語の読解力があまりないため、不安です。 もしよかったらどなたか教えていただけなでしょうか? [ メッセージ編集済み 編集者: yshita 編集日時 2004-07-23 15:28 ] | ||||||||||||
|
投稿日時: 2004-07-23 15:39
すみません。tcp_retries1 と tcp_synack_retries の間違いでした。 /usr/src/linux-2.4.18/Documentation/filesystems/proc.txt によると
であり、/usr/src/linux-2.4.18/Documentation/networking/ip-sysctl.txt によると
だそうです。 report this suspection to network layer の意味が分からないんですが ICMPでエラー報告をするとかなんでしょうか?? | ||||||||||||
|
投稿日時: 2004-07-23 16:13
tcp_retries2 は ESTABLISHED 状態で、通信経路の問題などにより
応答が返ってこない場合にリトライする回数のようなので 15回というのは別に多いとは思いません。 ip-sysctl.txt には
とあり、デフォルトでは13〜30分の間そのコネクションのデータを保持するようなので これが長いと感じる人はいるかもしれません。 "RTO" とは retransmission timeout の略らしいです。 また、RTO は RTT(round-trip time) を元に、指数関数的に増加するらしいです。 |
1|2|3
次のページへ»