私はこのping
命令を学んでいます。
と を使用したコマンドの出力を理解できませんping
。-T tsonly
-T tsandaddr
出力は次のとおりです
$ ping -T tsonly 192.168.1.52
PING 192.168.1.52 (192.168.1.52) 56(124) bytes of data.
64 bytes from 192.168.1.52: icmp_req=1 ttl=63 time=0.470 ms
TS: 43448298 absolute
1
31
0
-31
0
$ ping -T tsandaddr 192.168.1.52
PING 192.168.1.52 (192.168.1.52) 56(124) bytes of data.
64 bytes from 192.168.1.52: icmp_req=1 ttl=63 time=0.434 ms
TS: 192.168.2.64 43461227 absolute
192.168.2.10 0
192.168.1.52 32
192.168.1.52 0
私はそれをグーグルしました。しかし、私は答えを見つけることができませんでした。マニュアルページでも答えが見つかりませんでした。
印刷される絶対時間は24時間深夜タイムスタンプのミリ秒単位であることがわかります。
それ以外に残った3回は何時ですか?両方の出力が印刷されるのはなぜですかping
?何が役に立ちますか?
答え1
-Tオプションを使用するには、ノード(ホップあたり)がpingを受信した後にIPパケットにタイムスタンプを挿入する必要があります。これは、次のように指定されたIPパケットのTSオプションを使用して機能します。RFC791。
ping -Tにはtsonly、tsandaddr、またはtsprespecのいずれかが必要です。 tsonlyはタイムスタンプのみを返します。 tsandaddrは、パケットが送信されたタイムスタンプとアドレスを返します。
マニュアルページから:
-T timestamp option
Set special IP timestamp options. timestamp option may be
either tsonly (only timestamps), tsandaddr (timestamps and
addresses) or tsprespec host1 [host2 [host3 [host4]]] (timestamp
prespecified hops).
たとえば、ローカルネットワークで192.168.1.191をpingすると、次の出力が表示されます。
ping -T tsandaddr 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(124) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=4.32 ms
TS: 192.168.1.191 31636378 absolute
192.168.1.10 6
192.168.1.10 0
192.168.1.191 -1
アップデート01
tsandaddrフラグを実行すると、4つの時間値が返されます。次の例では、31636378、6、0、および-1の絶対値を表示できます。
ping -T tsandaddr 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(124) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=4.32 ms
TS: 192.168.1.191 31636378 absolute
192.168.1.10 6
192.168.1.10 0
192.168.1.191 -1
大きい値 (31636378) は、UTC 真夜中以降のミリ秒数です。したがって、-Tフラグを使用すると、最初の数字は上向きに計算され続けます。この大きな数字は基準時間です。
最初の値(6)は、pingを送信するのに必要な時間(ミリ秒)です。 2番目の値(0)は、ターゲットがpingを受信するのにかかる時間(ミリ秒)です。 3番目の値(-1)は、送信者に応答を送信するのにかかる時間です。
0と-1ミリ秒の値は、私がpingするターゲットが応答しないことを意味するので、役に立たない値が得られていると思います。
一部のウェブサイトでこのコマンドを自由にテストしてください。一部は正当な値で応答します。
--timestamp 宛先ホストからタイムアウト応答を要求する ICMP_TIMESTAMP パケットを送信します。
成功すると、3つの時間値が返されます。すべては、UTC真夜中以降のミリ秒数として指定する必要があります。最初の「icmp_otime」には、要求が送信された元の時刻が含まれます。その後、宛先が受信した時刻「icmp_rtime」が続き、最後に応答がイニシエータに送信された時刻「icmp_ttime」が続きます。
ここで--timestampを参照してください。https://www.gnu.org/software/inetutils/manual/html_node/Ping-options.html