シーケンス番号/確認応答番号とは?しーけんすばんごう/かくにんおうとうばんごう
シーケンス番号は、送るセグメントの先頭データがそのコネクションのバイトストリームの何オクテット目かを示す番号。確認応答番号は受信側が返すもので、「次に受け取りたいオクテットの番号」を示し、その手前まではすべて正しく届いたことを意味する。どちらもオクテット単位で、セグメント単位ではない。
最終更新:2026-10-06
この語が出る過去問を解く →背景
TCPはアプリケーションから見れば途切れない1本のバイト列だが、実際にはMSSごとに切って送られ、経路の都合で順序が入れ替わったり消えたりする。受け手が並べ直し、抜けを検出して再送を求めるには、パケットの通し番号ではなくデータの位置そのものを番号にする必要がある。位置で数えるからこそ、途中で境界の違うセグメントに分け直しても辻褄が合う。
具体例
シーケンス番号1001のセグメントで1000オクテット送ると、次に送るセグメントの番号は2001になり、受信側は確認応答番号2001を返す。「1001〜2000は受け取った、次は2001をくれ」という意味になる。
試験での引っ掛け
計算問題では「次のシーケンス番号=今回の番号+今回送ったデータのオクテット数」を使う。データを1バイトも運ばないSYNとFINだけは例外で、それぞれ1オクテット分を消費する。確認応答番号が「受け取った最後の番号」ではなく「次に欲しい番号」である点も向きの引っ掛け。
関連用語
出た過去問
出典:令和6年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問9(IPA)解説で登場
ホストAからホストBにTCPを用いてデータを送信するとき、TCPセグメントのシーケンス番号と受信確認番号(肯定応答番号)に関する記述のうち、適切なものはどれか。
正解:AがBからの応答を待たずに、続けて送信する場合のシーケンス番号は、直前に送信したTCPセグメントのシーケンス番号と送信データのオクテット数の和である。
要点:次のシーケンス番号は前回の番号+送信データのオクテット数
TCPのシーケンス番号は送信したデータのオクテット単位の位置を示す。したがって応答を待たずに続けて送る場合、次のセグメントのシーケンス番号は、直前のセグメントのシーケンス番号にそのセグメントのデータ長を足した値になる。受信側はこの番号を使って順序を復元し、次に期待する位置を確認応答番号として返す。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。