08/12/20 01:53:16
1つのUDPパケットで運ぶことのできるデータ(「ペイロード(荷物)」という)の長さは、
下位層のIPパケットの長さの制約を受ける。(標準の)IPパケットでは、1回の送信で、
最大では65515bytes(65535bytesから、IPヘッダの最低サイズ20bytesを引いたもの)
までのデータを送信することができる(IPヘッダ・オプションが付くと、さらに小さくなる)。
そのため、1つのUDPパケットで送信することのできる最大ペイロード・サイズは、
65515bytesからUDPヘッダのサイズ(8bytes)を減算した、65507bytesまでとなる。
このため、この「長さ」フィールドの値は、8(データが空の場合)~65515となる。
なお、下位層でIPフラグメンテーションが行われてIPパケットが分割されて送信されても、
UDPで1度に送信することのできるサイズは影響を受けない。
IPパケットのフラグメンテーション(分割)や再構成(元に戻すこと)は、
IP層のレベルで行われるからである。ただしIPフラグメンテーションが禁止されていると
(IPヘッダ中のDF bitがセットされていたり、ルータがフラグメント・パケットのルーティングを
禁止していたりする場合)、より小さなサイズのUDPパケットしか送信できなくなる。
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)