- PR -

Ping -l 指定でTimeOut

投稿者投稿内容
s_sato
会議室デビュー日: 2002/12/13
投稿数: 7
投稿日時: 2003-03-10 14:39
あるサーバに対してPingの-lオプションで送信サイズを大きくしていくと、あるサイズ以上
になるとTimeOutになってしまいます。

Windowsの場合Pingコマンドでは最大65500バイトまで指定できるようですが、それ以下で
TimeOutになるサーバはインターネット上にもたくさんあるようです。
しかもサーバによってTimeOutになるサイズは様々です。

サーバや経由するルータの設定によるものなのでしょうか?
どういう仕組みになっているのか教えていただけますでしょうか?
ピルロ
会議室デビュー日: 2003/02/01
投稿数: 4
投稿日時: 2003-03-10 15:31
こんにちわ 私が知っている限りのことですが・・・

“MTU”や“RWIN”の値を最適値を探してるのでしょうか?

以下のサイトを参考にしてみて下さい.
http://www.janis.or.jp/adsl/tuneup/tcp_tune.html


私はOSがWin98のノートPCでADSLを導入した際に速度が平均1.4Mぐらいで
変更後は平均1.7Mぐらいになりました.

変更はレジストリの値をを直接変更,フリーソフトで変更などありますが
平均30%は速度が向上するそうです.

目的が違いましたら申し訳ないですが参考にはなると思います.



s_sato
会議室デビュー日: 2002/12/13
投稿数: 7
投稿日時: 2003-03-10 16:04
なぜサイズを大きくするとTimeOutになるのか、その仕組みが知りたいだけです。

どなたか教えていただけますでしょうか?


[ メッセージ編集済み 編集者: s_sato 編集日時 2003-03-10 19:33 ]
BASE
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 178
投稿日時: 2003-03-10 23:00
え〜とすいません、ソース記事が見つけられなかったのですが、

Windows95とNTの時代(?表現が正しいかはわかりませんが)に
PingOfDeath攻撃という巨大なパケットを送りつけルータやWindowsマシンを
クラッシュさせる攻撃が流行りました。
#ご存知とは思いますが念のため

それ以降ルータ等、パッチ等でその攻撃を受けないように修正されました。

ですので、65500バイトのパケットサイズに到達する前に、
ネットワーク網やサーバ側で、パケットの転送や受信がが
制限又は拒否されているのではないでしょうか?

WindowsNTサーバやNetWareサーバにも受信パケットサイズの最大値の設定があるようです。
WinNTだとレジストリの以下のPathだそうです。
HKEY_LOCAL_MACHINE\System\currentControlSet\Services\NwInkIPX\NetConfig\LAN ドライバ名\MaxPktSize.

こんな感じでどうでしょうか?
s_sato
会議室デビュー日: 2002/12/13
投稿数: 7
投稿日時: 2003-03-11 09:48
ご教授ありがとうございます。

さらに教えていただきたいのですが

今回の環境でPingの-fオプションで送れる最大サイズは1472バイトでした。
ということはフラグメントされないで送信できる最大サイズは+28バイトで1500バイト
になるかと思います。

で-lオプションで50000バイトを送信したとすると、複数のパケットに分割されていると
思われますが、1パケットのサイズではなく、1回の送信サイズに制限がかかっている
のでしょうか?
BASE
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 178
投稿日時: 2003-03-12 01:33
引用:

今回の環境でPingの-fオプションで送れる最大サイズは1472バイトでした。
ということはフラグメントされないで送信できる最大サイズは+28バイトで1500バイト
になるかと思います。


そうですね、これはイーサネットでの最大送信パケットサイズですね。

HUB接続されたPCでちょっと試してみました

C:\>ping -l 50000 192.168.X.Y
Request timed out.
Reply from 192.168.10.3: bytes=50000 time=241ms TTL=128
Reply from 192.168.10.3: bytes=50000 time=10ms TTL=128

C:\>ping -l 50000 -f 192.168.X.Y
Packet needs to be fragmented but DF set.

上の結果はフラグメンテーションを行ってpingの結果が返ってきています。
#送信パケットサイズが大きいとパケットロスなんかが起こるみたいです。

下の結果はフラグメンテーションしない場合はフレームの規格外のサイズだから
送れなかったのでしょう・・・

以上のことからインターネット経由で50000バイト送ろうとして
timeoutになるということは、経路途中でフィルタリングされていることが
推測されます。
もしくは、
前レスでも書かさせていただきましたが、受信サーバ側で受信パケットの最大サイズを
指定しているのかもしれません。
サーバが無いのでデフォルトでどうなっているかは不明ですので
わかる方は情報いただければと思います。
らきゅ
常連さん
会議室デビュー日: 2002/11/08
投稿数: 20
投稿日時: 2003-03-12 09:32
>なぜサイズを大きくするとTimeOutになるのか
どなたも指摘していない様なので一応の確認なのですが
-wオプションは使われていますか?
パケットサイズを純粋に大きくすれば当然TimeOutリミットにひっかかると思うのですが…
s_sato
会議室デビュー日: 2002/12/13
投稿数: 7
投稿日時: 2003-03-12 12:33
状況説明が足りなくて申し訳ありません。
TimeOut時間は60秒まで試してみましたが結果は同じでした。

例えば当方の環境からyahoo.co.jpで試してみると以下のようになります。

@フラグメントされない最大指定は1472
C:\>ping yahoo.co.jp -f -l 1472
Reply from 211.14.15.5: bytes=1472 time=81ms TTL=245
C:\>ping yahoo.co.jp -f -l 1473
Packet needs to be fragmented but DF set.

ATimeOutにならない最大指定は9164
C:\>ping yahoo.co.jp -l 9164
Reply from 211.14.15.5: bytes=9164 time=60ms TTL=245
C:\>ping yahoo.co.jp -l 9165
Request timed out.

BTimeOutを60秒にしても結果は同じ
C:\>ping yahoo.co.jp -l 9165 -w 60000
Request timed out.

これ以上TimeOut時間を大きくしても無意味と思われます。
みなさんの環境でも同じなのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)