
Ilya Grigorik の著書「High Performance Browser Networking」に掲載されている以下の画像を見ると、SYN パケットがランダムなシーケンス番号を選択し、それが SYN ACK パケット (N+1) で増加していることがわかります。最後に、ACK パケットでは、シーケンス番号 (N+1) と確認応答番号 (N+1) の両方が増加します。
Wiresharkでテストしたところ、ACKパケットの確認応答番号はN+1でしたが、シーケンス番号 = NACK パケットではシーケンス番号と確認応答番号の両方が増加すると著者が言っているのは間違いでしょうか?
答え1
RFC793 の翻訳州繰り返し確認番号は、エンド側が受信を期待する次のパケットしたがって、常にシーケンス番号よりも大きくなります。
たとえば、セクション 2.6 では次のようになります。
セグメントには、逆方向の送信の次の予想されるデータ オクテットのシーケンス番号である確認応答番号も含まれています。
セクション3.1:
確認番号: 32 ビット
ACK 制御ビットが設定されている場合、このフィールドには、セグメントの送信者が受信を期待している次のシーケンス番号の値が含まれます。接続が確立されると、この値は必ず送信されます。
セクション 3.3 では、シーケンス番号がどのように機能するか、またなぜそのように機能するかについて詳しく説明します。おそらく、この本を読むよりもずっとわかりやすいでしょう。