ネットワークスペシャリストの勉強をしている
シーケンス番号と確認応答番号(ACK番号?)の関係がよくわからん
TCPでデータをバラバラにして送るときに順番の制御をするのに使ってるのはあってると思う
参考・引用:TCP/IP - TCP 3ウェイハンドシェイク
3ウェイハンドシェイク
# | ニュアンス | シーケンス番号 | ACK番号 |
---|---|---|---|
1 | 接続したい | A(ランダム) | なし |
2 | おっけーおれもたのむ | A | A+1 |
3 | おっけー | A+1 | A+1 |
確認応答番号(ACK番号)は「相手から受信したシーケンス番号」+「データサイズの値」
シーケンス番号は「相手から受信した確認応答番号」
3ウェイハンドシェイク以降
# | ニュアンス | データサイズ | シーケンス番号 | 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個だけ覚えればいけるとみた
切断時
# | ニュアンス | シーケンス番号 | 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として計算