【デバッグツール】tcpdump

5360 ワード

原文アドレス:tcpdumpキャプチャツールデバッグネットワーク通信プログラムを使用するのはtcpdumpが必須ツールです.tcpdumpは強力で、ネットワーク通信のすべての詳細を見ることができます.TCPのように、3回の握手、PUSH/ACKデータプッシュ、close 4回の手を振る、すべての詳細を見ることができます.ネットワークごとにパケットを受信するバイト数、時間などを含む
最も簡単な使用例:sudo tcpdump-i any tcp port 11211
  • -iパラメータはNICを制定し、anyはすべてのNIC
  • を表す.
  • tcpは、TCPプロトコル
  • のみを傍受することを指定する.
  • portリスニング用ポート
  • を設定
    tcpdumpはroot権限を必要とします通信のデータの内容を見て、-Xnlps 0パラメータを加えることができます.その他のパラメータはネット上の文章を参照してください.
    memcacheの接続を実証し、値を割り当て、値を取り、接続プロセスを閉じる
    コマンドの実行:
    telnet 10.8.34.27 11211
    

    実行結果:
    15:14:34.336031 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [S], seq 3049437196, win 14480, options [mss 1460,sackOK,TS val 910488745 ecr 4129152319,nop,wscale 7], length 0
    15:14:34.336057 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [S.], seq 3663074357, ack 3049437197, win 14480, options [mss 1460,sackOK,TS val 4129152433 ecr 910488745,nop,wscale 7], length 0
    15:14:34.336159 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [.], ack 1, win 114, options [nop,nop,TS val 910488745 ecr 4129152433], length 0
    

    コマンドの実行:
    get userId
    

    実行結果:
    15:23:40.025373 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [P.], seq 15:27, ack 6, win 114, options [nop,nop,TS val 911034453 ecr 4129686634], length 12
    15:23:40.025571 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [P.], seq 6:35, ack 27, win 114, options [nop,nop,TS val 4129698122 ecr 911034453], length 29
    15:23:40.025768 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [.], ack 35, win 114, options [nop,nop,TS val 911034453 ecr 4129698122], length 0
    

    コマンドの実行:
    set username 0 0 4
    

    実行結果:
    15:27:45.985897 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [P.], seq 153:173, ack 160, win 114, options [nop,nop,TS val 911280417 ecr 4129926755], length 20
    15:27:46.025059 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [.], ack 173, win 114, options [nop,nop,TS val 4129944122 ecr 911280417], length 0
    

    コマンドの実行:
    nick
    

    実行結果:
    15:28:47.625886 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [P.], seq 173:179, ack 160, win 114, options [nop,nop,TS val 911342058 ecr 4129944122], length 6
    15:28:47.625910 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [.], ack 179, win 114, options [nop,nop,TS val 4130005722 ecr 911342058], length 0
    15:28:47.626046 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [P.], seq 160:168, ack 179, win 114, options [nop,nop,TS val 4130005723 ecr 911342058], length 8
    15:28:47.626204 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [.], ack 168, win 114, options [nop,nop,TS val 911342058 ecr 4130005723], length 0
    
    

    コマンドの実行:
    get username
    

    実行結果:
    15:29:59.978653 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [P.], seq 179:193, ack 168, win 114, options [nop,nop,TS val 911414421 ecr 4130005723], length 14
    15:29:59.978743 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [P.], seq 168:199, ack 193, win 114, options [nop,nop,TS val 4130078075 ecr 911414421], length 31
    15:29:59.978867 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [.], ack 199, win 114, options [nop,nop,TS val 911414421 ecr 4130078075], length 0
    
    

    コマンドの実行:
    quit
    

    実行結果:
    15:30:52.755257 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [P.], seq 193:199, ack 199, win 114, options [nop,nop,TS val 911467215 ecr 4130078075], length 6
    15:30:52.755534 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [F.], seq 199, ack 199, win 114, options [nop,nop,TS val 4130130852 ecr 911467215], length 0
    15:30:52.755843 IP 10.8.34.13.46103 > 10.8.34.27.memcache: Flags [F.], seq 199, ack 200, win 114, options [nop,nop,TS val 911467215 ecr 4130130852], length 0
    15:30:52.755865 IP 10.8.34.27.memcache > 10.8.34.13.46103: Flags [.], ack 200, win 114, options [nop,nop,TS val 4130130852 ecr 911467215], length 0
    
  • 15:30:52.755865時間微妙な
  • まで正確に
  • 10.8.34.13.36686 > 10.8.34.27.memcacheは通信の流れを表し、36686はクライアントであり、memcacheはサーバ側
  • である.
  • [S]はSYN要求
  • であることを示す.
  • [.] これはACK確認パケットであることを示し、(client)SYN->(server)SYN->(client)ACKは3回の握手プロセス
  • である.
  • [P]は、サーバ側からクライアント側へ、クライアント側からサーバ側へ、
  • をプッシュするデータプッシュであることを示す.
  • [F]はFINパケットであり、接続を閉じる操作であることを示し、client/serverは
  • を開始する可能性がある.
  • [R]はこれがRSTパケットであることを示し、Fパケットと同様の役割を果たすが、RSTは接続が閉じたときもデータが処理されていないことを示す.接続
  • を強制的に切断すると理解できる.
  • win 114とは、スライドウィンドウサイズ(受信キャッシュのウィンドウサイズ)
  • を指す.
  • length 12は、パケットのサイズ
  • を指す.
    3回の握手:
    16:01:29.583827 IP 10.8.34.13.45468 > 10.8.34.27.memcache: Flags [S], seq 2309185558, win 14480, options [mss 1460,sackOK,TS val 913304024 ecr 4131967648,nop,wscale 7], length 0
    
  • Flagsは[S]であり、synが接続パッケージ(すなわち、3回の握手の1回目の握手)を確立したことを示す
  • である.
  • seq 2309185558の番号は2309185558で、これは実はtcpの3回の握手の第1回の握手10.8である.34.13.45468 syn要求送信接続パケット
  • win 14480、ウィンドウサイズが14480バイトであることを示す
  • options[mss 1460,sackOK,TS val 913304024 ecr 4131967648,nop,wscale 7]はtcpヘッダオプションフィールド,
  • である.
  • mss 1460は、mssが送信側(client)通知の最大メッセージ長であり、送信側はこの長さを超えるtcpメッセージセグメント(この値はMTUに関係する)を受信しないことを示す.sackOKは、送信側がSACKオプションをサポートし、使用に同意していることを示します.wscale

  • 7は送信側が使用するウィンドウ拡大係数が7であることを示す.