読者です 読者をやめる 読者になる 読者になる

シーケンス番号と確認応答番号について

ネットワークスペシャリストの勉強をしている

シーケンス番号と確認応答番号(ACK番号?)の関係がよくわからん

TCPでデータをバラバラにして送るときに順番の制御をするのに使ってるのはあってると思う

 

参考・引用:TCP/IP - TCP 3ウェイハンドシェイク

 

3ウェイハンドシェイク


f:id:inabajunmr:20150531175342p:plain

#ニュアンスシーケンス番号ACK番号
1 接続したい A(ランダム) なし
2 おっけーおれもたのむ A A+1
3 おっけー A+1 A+1

 

確認応答番号(ACK番号)は「相手から受信したシーケンス番号」+「データサイズの値」 

シーケンス番号は「相手から受信した確認応答番号」

 

3ウェイハンドシェイク以降

 

f:id:inabajunmr:20150531180259p:plain

#ニュアンスデータサイズシーケンス番号 ACK番号
1 おくるわ 100Byte B  B
2

うけとったわ

おくるわ

200Byte B  B + 100
3

うけとったわ

おくるわ

300Byte B + 100  B + 200
4

うけとったわ

おくるわ

400Byte B + 100 + 200  B + 100 + 300

・1つ前のシーケンス番号+受信したデータサイズ=ACK番号

・1つ前のACK番号=シーケンス番号

この2個だけ覚えればいけるとみた

f:id:inabajunmr:20150531182216p:plain

 

切断時

f:id:inabajunmr:20150531183133p:plain

#ニュアンスシーケンス番号ACK番号
0

うけとったわ

おくるわ

B + 100 + 200 B + 100 + 300
1 切断するわ B + 100 + 300 B + 100 + 200
2 おっけえ B + 100 + 200 B + 100 + 200 + 1
3 切断するわ B + 100 + 200 + 1 B + 100 + 200 + 1
4 おっけえ B + 100 + 200 B + 100 + 200 + 1 + 1

 2と3は同じ人が送ってるのがわかりづらい理由?

 

まとめると

・1つ前のシーケンス番号+受信したデータサイズ=ACK番号

・1つ前のACK番号=シーケンス番号

・接続・切断要求のデータサイズは1として計算