次は転送中のエラーの場合を考えてみよう。[Figure41-06:転送中のエラーの場合]はわ〜。基本は、確認応答が返ってこなかったら再送するだ。同じ確認応答が3回きても再送するんですね。途中のセグメントが抜けた場合、そうなる。前のセグメントが来ないのに、後のセグメントばかり来るからな。「いいから、前のやつをよこせ」と何度も確認応答を送りつけるわけですね。なんで3回なんですか?ううむ。これを説明しだすと長いのだが。簡単に言えば、「2回では再送が多発しすぎる。4回では無駄が多くなりすぎる」からだ。1つ覚えておいて欲しいのは。バッファ内の並べ替えだ。1001〜2000が来なかったため、2001以降のセグメントがあっても処理を保留してましたよね。それで1001〜2000のセグメントがきたら、並べ替えた、と。TCPでは必ず番号順に処理を行う。これはセグメントが届かなかった場合以外でも起きうる。?[Figure41-07:セグメントの遅延]途中の回線での遅延などにより、先に送ったものが後につく場合もあるのだよ。よって、この場合もバッファ内の並べ替えを行って、番号順に処理を行う。してみると、TCPってしっかりとした作りになってるんですねぇ。何度も言うように、正確・確実だからな。TCPには、正確・確実に送るための制御がある。うむ、それは長いから次回にするが。輻輳制御というやつだ。...?なんて読むんですか、それ?ふふふ。それは次回のお楽しみという奴にしておこう。window]ネット君の今日のポイントTCPはウィンドウ制御というもので、バッファフローを防ぐ。相手のバッファサイズ=ウィンドウサイズを確かめつつ送受信を行う。ウィンドウサイズの分までは確認応答を受信しなくても一度に送れる。相手のウィンドウサイズによって、送るセグメントを変えていく。この方式をスライディングウィンドウという。受け取った順ではなく、シーケンス番号順に処理を行うため、処理を保留したり並べ替えたりする。No.41管理人:aji-ssz(at)selene.is.dream.jp。