web-dev-qa-db-ja.com

1000バイトを超える送信を許可しないCMDping要求

正常にpingできます。たとえば、google.com via cmd using:

ping {IP ADDRESS} -T -L 1000

しかし、「1001」より大きいパケットサイズを使用すると、リクエストのタイムアウトエラーが発生します。送信できる最大バイト数は65500です。

どうしてこれなの?

P.S.私のインターネットは問題なく、ブラウザを介してすべてのWebサイトにアクセスできます。

2
Jhon Joe

Grawityが言ったように コメントで パケットがMTUサイズよりも大きい場合 フラグメンテーション が発生します。 ICMPパケットには非常に短いメッセージが含まれているため、ICMPパケットが断片化される正当な理由はありません。 ICMPパケットが大きすぎてフラグメント化する必要がある場合は、何かがおかしいです。このため、一部のネットワーク管理者は、More Fragmentsフラグが設定されているか、オフセットフィールドにオフセット値が示されているICMPパケットをブロックします。

ソース

enter image description here

1
rastaBob

これはMTUの問題のようです。宛先へのパスに沿ったルーターが ジャンボフレーム をサポートしていない場合、1k(合計フレームサイズ1500)をはるかに超える送信機能はその時点で停止し、最終的にはそのホップを超えてフレームをドロップしました。ジャンボフレームでさえ9000バイトに制限されているため、65500バイトのフレームを送信する場合は、そのパスに沿ったすべてのルーターでスーパージャンボフレームを有効にする必要があります。参照されているウィキペディアの記事で、この問題を明確にする必要があります。

0
vallismortis