28

UDPのヘッダーに長さフィールドがあり、TCPにはないのはなぜですか?

TCPのセグメントの長さはIPヘッダーから推測されると思いますが、UDPデータグラムでも同じことができるはずです。

4

3 に答える 3

13

TCP/IP Illustrated Volume 1によると、長さフィールドは冗長です。この件に関してスティーブンスが言っているのはそれだけです。

個人的には、UDPヘッダーの長さ(ビット単位)を32で割り切れるようにするためだったと思います:)

于 2009-02-27T16:21:40.047 に答える
1

すでに情報が含まれているTCPヘッダーの前に概念的に接頭辞が付けられた96ビットの疑似ヘッダーがあります。

このソースからのチェックサムフィールドの説明は答えを与えます:

チェックサム:16ビット

チェックサムフィールドは、ヘッダーとテキスト内のすべての16ビットワードの1の補数の合計の16ビットの1の補数です。セグメントにチェックサムされる奇数のヘッダーオクテットとテキストオクテットが含まれている場合、チェックサムの目的で、最後のオクテットの右側にゼロが埋め込まれ、16ビットワードが形成されます。パッドはセグメントの一部として送信されません。チェックサムの計算中に、チェックサムフィールド自体がゼロに置き換えられます。

チェックサムは、TCPヘッダーの前に概念的にプレフィックスが付けられた96ビットの疑似ヘッダーもカバーします。この疑似ヘッダーには、送信元アドレス、宛先アドレス、プロトコル、およびTCPの長さが含まれます。これにより、誤ってルーティングされたセグメントに対するTCP保護が提供されます。この情報はインターネットプロトコルで伝送され、IP上のTCPによる呼び出しの引数または結果でTCP/ネットワークインターフェイスを介して転送されます。

      +--------+--------+--------+--------+
      |           Source Address          |
      +--------+--------+--------+--------+
      |         Destination Address       |
      +--------+--------+--------+--------+
      |  zero  |  PTCL  |    TCP Length   |
      +--------+--------+--------+--------+

TCPはストリームベースのプロトコルであるため、TCPレベルでは情報は必要ありません。

于 2008-11-11T17:48:31.843 に答える