人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

IPフラグメンテーションについて。

パスMTUに応じてTCP/IPがIPパケットを分割するということですが、それ以前にIPパケットの最大サイズは64kbytesだと思います。
MTUする前の、TCP/IPに来る前に既にアプリケーション側でパケットを64k以下に分割しているのでしょうか?

●質問者: koime_ryokutya
●カテゴリ:コンピュータ インターネット
✍キーワード:IP TCP/IP アプリケーション サイズ パケット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● a-kuma3
●50ポイント

MTUする前の、TCP/IPに来る前に既にアプリケーション側でパケットを64k以下に分割しているのでしょうか?

いや、分割しなくてはいけない、という決まりはありません。

でも、分割してはいけない、という決まりもありません。

IP層を直接意識するようなプログラムじゃないかぎり、どのように送信されるかを意識しません。


TCP だと、ウィンドウ分割による断片化もあるので、send は一回でも、

receive は残りが無くなるまで繰り返す、というのが socket のプログラムの常識です。


2 ● saijyoh_739
●50ポイント

> パスMTUに応じてTCP/IPがIPパケットを分割するということですが、それ以前にIPパケットの最大サイズは64kbytesだと思います。

通常EthernetのMTUは1500byteです。

パスMTU(? Path MTU Discoveryの事ですよね)では通信相手までのネットワーク経路中にある最小MTUに合わせて調整します。

http://www.infraexpert.com/info/5.2adsl.htm


> MTUする前の、TCP/IPに来る前に既にアプリケーション側でパケットを64k以下に分割しているのでしょうか?

通常アプリケーションは関係しません。

システム(カーネル)中に組み込まれるネットワークドライバが行います。

最初、自分の都合で大きなパケットを送信しますが、エラーが返ってくるのでネットワークに適したパケットサイズに調整して送り直します。(上記URL参照)

※Path MTU Discovery(RFC1191)使わない通常の通信では、パケットが分割禁止されてないと思いますから、多き過ぎる場面毎(次のネットワークのMTUが小さければ)に分割されます。

※途中パケットフィルタでICMPを無条件で破棄する設定などされている部分があれば使うと通信できない場合もあります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ