-T オプションを使用すると、ping コマンドが発生します。

-T オプションを使用すると、ping コマンドが発生します。

私はこの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

関連情報