2012-01-17 20 views
3

イーサネットで最小のフレームサイズはどのくらいですか? TCPとIPプロトコルのオーバーヘッドは何ですか?最小のTCP/IPオーバーヘッド(イーサネットフレーム上)

私が知りたいのは、使用帯域幅(片道、ACKを除く)に関して1バイトのTCP/IPストリームのオーバーヘッドです。私はそれが32-100バイトの近くにあると仮定しますが、実際に私の専門分野ではありません。

EDIT 私はWebサーバーをプログラミングしています。自分のアプリケーションデータの正しいサイズをプログラムしたいので、私のプログラムでは良いスループットが得られます。このために、帯域幅を削減するためにどのような制限があるかを知りたい。

+3

この質問を閉じる人のために。私がサーバーサイドのソフトウェアを開発しているのであれば、これはプログラミングとは関係がありません。 TCP/IP処理は、JSON処理がソフトウェアと同じようにソフトウェアです。 Webサーバーやオペレーティングシステムを開発しているプログラマーが増えていることは理解していますが、このタグは、タグが付いているものをプログラミングするのにはよく似ています。 –

+0

優れたスループットを探しているなら、より大きい方が良いでしょう(約1400バイトまで)。一度に送信または受信されるデータが少ないほど、フレームのオーバーヘッドは高くなります(比例して)。ヘッダーは、1バイトまたは1千を送信しているかどうかにかかわらず、ほぼ同じサイズになります。 – cHao

+0

@cHao - それは問題ではありません。各リクエストは一意のクライアントからのものです。私たちは2,000万人以上のクライアントにサービスを提供し、毎月数十億件のリクエストを処理します。メッセージデータは数バイトです。 –

答えて

6

802.3標準では、実装に依存して最小フレームサイズが指定されています。特定の最も一般的な実装(100Mbps、1Gbps、10Gbpsまで)はすべて512オクテットに設定されており、64オクテットに相当します。これには、ヘッダー(プリアンブルとSFDを含まないため、アドレスの場合は12バイト、フレームタイプの場合は2バイト)と、トレーラーのCRC(4バイト)が含まれていることに注意してください。したがって、最小サイズのフレームを送信している間は、データ自体に46バイトが割り当てられます。

基本的なIPv4ヘッダーは20バイト長で、TCPv4ヘッダーも20バイトです。これらのヘッダーにはオプションの「オプション」フィールドが追加されていても構いません(実際にそのシステムを実行しているシステムについてはわかりません)。これにより、最小サイズのイーサネットフレーム内に実際のデータ用の6バイトが残ります。

+0

スーパー。だから、私たちが現代のNICについて話していることを考えると、質問への答えは64バイトで、2番目は40-58バイトであると仮定します。ありがとうございました! –

+0

後続の質問は、オプションフィールドが有効でないと仮定した場合、実際のデータの6バイトよりも24バイトを持つ可能性が高いため、答えを解釈することです。正しい? –

+0

付加的なオプションを持たないIPv4とTCPのヘッダ*のサイズは、正確に20バイト(またはより適切にはオクテット)です。私は最終的な答えに余分なオプションのフィールドを含めていない、あなたは6バイトで右です。 :) –

関連する問題