![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
act | 投稿日時: 2012/10/12 17:12 |
新米 ![]() ![]() 登録日: 2011/10/25 居住地: 投稿: 3 |
TCPで管理されている再送タイムアウトとRTTについて こんにちは。
TCPで管理されている再送タイムアウトとRTTの時間推移を見たいと思い、transport_tcp_var.h で 以下のように記述されている変数をtransport_tcp_output において出力してみました。 int t_rxtcur; // current retransmit value int t_rtt; // round trip time その結果、t_rxtcur は3と4の間を推移し、RTTは0と1の間を推移しました。 これらの値の単位は500msほどであると思っていたのですが、その場合、 再送タイムアウトが1.5秒や2秒ということになり、明らかに大きい値となっています。 (シミュレーション結果を見ると、これらより短い時間で再送が行われていました。) そこで、 ・t_rxtcurとt_rttの単位はどのようになっているか ・そもそも、再送タイムアウトとRTTを調べるにあたってこれらの値を出力させることは 適切かどうか ということについてご回答を頂ければ幸いです。 マニュアルやtransport_tcp_timer.h等を見たのですが分からなかったため、質問させていただきました。 何卒よろしくお願いいたします。 |
mast | 投稿日時: 2012/10/15 8:43 |
一人前 ![]() ![]() 登録日: 2005/4/7 居住地: 投稿: 93 |
Re: TCPで管理されている再送タイムアウトとRTTについて こんにちは。
QualNetのTCPのソースコードはFreeBSDから移植したものなので、BSDのTCP/IPの実装を解説した以下の書籍をご覧になると、理解が進むかと思います。 TCP/IP Illustrated Vol.2 http://www.amazon.co.jp/dp/020163354X http://www.amazon.co.jp/dp/4894714957 TCPの再送タイムアウトは、初期値1.5秒で、その後タイムアウトするたびに 3秒→6秒→12秒→24秒→48秒→64秒→64秒→64秒→・・・ となるはずで、actさんが仰っているように1.5秒よりも短い時間でタイムアウトを起こすことはないはずです。 質問への回答としては、 ・t_rxtcurとt_rttの単位はどのようになっているか 500msです。 ・そもそも、再送タイムアウトとRTTを調べるにあたってこれらの値を出力させることは適切かどうか t_rxcurr, t_rtt, t_srtt, t_rttvarの4つを見るのが良いかと思います。出力させる場所はtransport_tcp_outputだけでよいかどうかは疑問ですが、ではどこで出力させればよいか・・・は、私も調べてみないと分からないので、上記の本などを参考にもう少し検討を進めてみてください。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |