0

簡略化されたTCP/IPスタックを実装したいと思います。今、私は自分のtcp_connect関数を書いています。ハンドシェイクの手順で、TCPオプションとデータなしでTCPセグメントを送信できますか(クライアント側でTCPヘッダーのみを送信します)?

4

2 に答える 2

1

オプションは必要ないと思います。ただし、[最大セグメントサイズ]オプションを送信しない場合、想定されるデフォルトのMSSは576のみです。

TCPハンドシェイクセグメントには通常、データは含まれていません。ただし、それを含めることは合法であるため、スタックはそれを受け取った場合にそれを受け入れる必要があります。

于 2013-03-18T06:31:40.643 に答える
0

RFC793で説明されているオプションは3つだけです(実装は簡単です) 。

  Kind     Length    Meaning
  ----     ------    -------
   0         -       End of option list.
   1         -       No-Operation.
   2         4       Maximum Segment Size.

「オプションリストの終わり」のみをTCPヘッダーに追加するか、事前定義されたテンプレートを使用することができます。

クライアントとして、発信ハンドシェイクセグメントにデータを追加することはできませんが、接続を受け入れると、着信データを処理できるはずです。


おっしゃるようにやってみましたが、返事がありません。

反対側でTCPdumpのようなものを使用しようとしましたか?着信セグメントはありますか?

于 2013-03-18T15:21:11.560 に答える