さて、宿題についてこの質問があります。「ホストX」が「ホストZ」にパケットを送信し、Seq=46およびAck=87で、ペイロード/データ=「こんにちは?」
そこから、ペイロード='Go away'でホストZからホストXに送信されたパケットと、data ='No!'でホストXからホストZに送信された最後のパケットが与えられます。
宿題は、最後の2つのパケットのSeqとAckの値がどうなるかを調べることです。ハンドシェイクが終了したことを知っているので、Seqに1を追加して、次のパケットのAckに入れるほど簡単ではありません。ペイロードを受信すると、受信者は1 +ペイロードの長さ(バイト単位)に等しいAckを発行することをどこかで読みました。それが正しければ、これらの文字列をバイトに変換するにはどうすればよいですか?そして、Seqはどうなりますか?それはまだ前のパケットAckからまっすぐにつかまれていますか?
どうもありがとうございました。
各文字が1バイトに等しいと仮定して、先に進んで質問に答えます。間違っている場合は、誰かが私を訂正してくれることを願っています。
私が与えられたSeqとAckは、ハンドシェイクからの最初の送信であると想定しています。
X->Z Seq=45 Ack=NULL
X<-Z Seq=86 Ack=46
X->Z Seq=46 Ack=87
X->Z Seq=46 Ack=87 data='Hello?' (6 bytes)
X<-Z Seq=87 Ack=52 data='Go away' (7 bytes)
X->Z Seq=52 Ack=94 data='No!' (3 bytes)
それがすべてであり、上記の内容は正しいと思いますが、何か間違ったことをした場合はお知らせください。どうもありがとうございました。