8


2

ヘッダーを含むIPパケットフレームの大きさは?

背景のビット。

UDPを使用するアプリケーションを作成しています。 アプリケーションはLAN(インターネットではない)上で実行されます。 私のMTUが1500である場合、UDPペイロードの大きさを想定していましたが、UDPヘッダーがその中に収まることを意図しているかどうかはわかりません。

1500バイトのペイロードでUDPパケットを送信し、マシンのMTUが1500バイトである場合、2つのパケットを送信することになりますか?

ここで明確な答えを見つけるためにインターネットを検索するのは、思ったより難しいようです。矛盾する情報を見てきました。

4 Answer


9


------------------------------------------------------------------------------
|Ethernet  | IPv4         |UDP    | Data                   |Ethernet checksum|
------------------------------------------------------------------------------
  14 bytes    20 bytes     8 bytes    x bytes                4 bytes
           \ (w/o options)                               /
            \___________________________________________/
                              |
                             MTU

MTUが1500の場合、データには1500-20-8 = 1472バイトがあります。

  • それを超えると、パケットは断片化されます。 割る より多くのパケット。

  • より多くの層が関係している可能性があります。 4バイトの場合、VLANヘッダー VLANイーサネット上にいます。

  • あなたと目的地の間にあるルーターによっては、さらにレイヤーが追加される場合があります。


3


はい、あなたの例は1つのフレームに収まりません。

イーサネットデータペイロードは1500バイトです。 IPv4では、ヘッダーに最低20バイトが必要です。 あるいは、IPv6には最低40バイトが必要です。 UDPでは、ヘッダーに8バイトが必要です。 これにより、データ用に1472バイト(ipv4)または1452(ipv6)が残ります。

詳しくは:


2


たぶんこの記事は役立ちます:https://web.archive.org/web/20140603221254/http://sd.wareonearth.com/~phil/net/overhead/ [記事]


-1


それで、ここにそれがどのように働くかがあります。 イーサネットは、100メガグラムの太いパイプを持っている場合でも、データフローをフレームあたり1500バイトに制限します。 UDPアプリケーションを介して実際にラインレートを使用するには、フレームごとに最大9000バイトをサポートするイーサネットジャンボフレームを使用または移動する必要があります。 また、netflix / youtubeおよびその他のストリーミングプロトコルを見ると、ストリーミングを開始する前にリンクをテストします。 基本的に彼らは、ストリームをダンプする前に、いくつかのデータを送信し、リンク速度を計算/平均化します。 基本的にUDPも使用しますが、パケットサイズが非常に大きくなります。 確かに1500バイトより大きいと思います。