私たちは、ネットワーク上の情報を追跡する必要がある場合には、しばしば「キャプチャ」を言います ここではそれが何であるかをキャプチャしますか?キャッチパッケージには、何を分析することができますか?本論文では、一例として、TCP / IPプロトコル、簡単なTCP / IPプロトコル分析とどのようにwiresharkのをキャプチャするに。
Wiresharkのは、ネットワーク通信パケットキャプチャ解析ツールの中で最も有名です。非常に強力な、あなたがネットワークパケットの様々なを傍受することができ、ネットワークパケットの詳細を表示します。
少し、ダウンロードしてインストールWiresharkの。Wiresharkのは、Windowsシステムにインストールされている場合、Wiresharkの2つのアイコンが正常にインストールした後に表示される場合がありますが、一つはWiresharkの(中国語版)であり、他は(英語で)Wiresharkの遺産です。以下の内容は、Wiresharkのレガシーを紹介する例になります。
オープンWiresharkのは、次のようにインターフェースがある起動します。
Wiresharkのネットワークパケットキャプチャカード、マシン上で複数のNICカードを選択する必要があります。すなわちカードリストインターフェイスリスト、インタフェース始め、私たちが監視する必要があることカードを選択します。キャプチャオプション]をクリックし、正しいネットワークカードを選択し、[キャプチャを開始するには、「スタート」ボタンをクリックします。
ます。http://blog.csdn.net私たちのような、ブラウザのHTTPは任意のURLを入力して、[閉じる接続を開きます。私たちは、その後、Wiresharkのインターフェイスに戻り、停止ボタンの左上をクリックしてください。情報のWiresharkのキャプチャすることを確認してください。情報のキャプチャを見る前に、簡単にWiresharkのインタフェースの意味を紹介します。前記パケットリストパネルで表示番号、タイムスタンプ、送信元アドレス、宛先アドレス、プロトコル、長さ、及びパケット情報。
より多くの情報パケットについて、各分野での合意を表示するために使用されます。各行の情報は、それぞれ、TCP / IPプロトコルの異なるレベルに対応します。それぞれ、例えば、以下の図で、:トランスポート層、ネットワーク層、データリンク層、物理層4の合計。アプリケーション層が存在する場合、データは、第5の層を示すであろう、すなわち5の合計が表示されます。
各フロアに層に電界点があり、層は、任意の合意ことが示されています。剥離層を開始する契約は、順次、トランスポート層、ネットワーク層、リンク層、データのアプリケーション層ヘッダを追加しますが、データパケットが底(リンク層)から他方によって受信されたときためと考えられますヘッドが展開するので、各層の上位層プロトコルは、他の側は、次のステップをアンパックする方法を知っていることを示し、先頭にフィールド点があります。例として、TCP / IPプロトコルでは、数値は次のとおりIPv4の、TCP。アプリケーション層プロトコルとのTCP接続を確立しないため、トランスポート層は、フィールドの対応する上位層(アプリケーション層)で指定されていません。
Wiresharkのインターフェイスを理解した後、我々は、TCPプロトコルを解析します。データパケットがたくさんあり、我々は、フィルタに必要な対応するフィルタを追加します。tcpとip.addr == 47.95.47.253とtcp.port == 53992、以下のパケットリストを取得するには、この時間:たとえば、私は目標のIPアドレスとポート番号を追加しました。
これに先立ち、TCP / IPパケットフォーマットを見て。
パケットフォーマットによると、我々は、TCPの通信プロセスのためのより直感的な感覚を、各フィールドが一緒に対応するwiresharkのTCPパケットをキャプチャすることができます。3ウェイハンドシェイクを見て、図3は、TCPパケット接続確立手順です。
最初のハンドシェイクは、クライアントがTCPを送信し、フラグSYN = 1であり、シーケンス番号SEQシーケンス番号= 0であり、53992 - > 80、クライアントに代わって接続を確立する要求。
第二のハンドシェイク、クライアントにサーバ戻りパケット、SYN = 1、ACK = 1,80 - > 53992、確認応答シーケンス番号(確認応答番号)顧客SEQ(シーケンス番号)の数プラス1、すなわち、0+ 1 = 1。
第三のハンドシェーク、クライアントは、確認応答シーケンス番号チェック(確認応答番号)パケットが正しい、すなわち、最初の送信シーケンス番号SEQプラス1(X + 1 = 0 + 1 = 1)サーバによって送信され受信します。そして、ACKフラグが1です。正しい場合、クライアントは再び、ACK = 1、確認応答シーケンス番号(確認応答番号)= Y + 1 = 0 + = 1をSYN = 0をパケットサーバを送信し、ACKが(サーバSEQ IDから送信されますシーケンス番号)プラス1は、X + 1 = 0 + 1 = 1に、相手に送信シーケンス番号seqを送っています。クライアントは、ACKの確認応答シーケンス番号値を受信した後= 1,53992 - > 80、これまでのところ、TCP接続が確立される、データを送信することができます。
また、最初のハンドシェイクである、] [示すように、最初のSYNパケットフラグスリーウェイハンドシェイクパケットを見るために直接フラグを表示することができ、第2のフラグ{SYNパケット、ACK]第3のパケットフラグ[ACK]、第三のハンドシェイクである。これにより、第2ハンドシェイクです。
3スリーウェイハンドシェイクパケットの後、第四のパッケージは確かにHTTP TCPコネクション確立の使用であることを示す、HTTPです。
そして、他のパケットを見下ろす、PDU、文字通りプロトコルデータユニットが再結合する再組立(PDU:プロトコルデータユニット)のTCPセグメントの多数見つけるTCPセグメントを、上位層であるTCP層は、パケットのチャンクを受信します送り出されたセグメントに暗号文の分解後。
フレーム=イーサネットヘッダ+ IPヘッダ+ TCPヘッダ+ TCPセグメントデータ:パケットフォーマットのイーサネットフレームがあるので、各パケットのプロトコルの長さは、1502バイトです。すなわち:
以下、イーサネットデータフレームヘッダと呼ばれる1、イーサネットヘッダ= 14バイト= Dstの物理アドレス(6バイト)+ Srcの物理アドレス(6バイト)+タイプ(2バイト)。
2、(オプションフィールドを含まない)IPヘッダー= 20バイトは、IPレイヤのデータが断片化断片と呼ばれる、データグラムと呼ばれます。
図3に示すように、TCPヘッダ= 20バイト(オプションフィールドを含まない)、ストリームと呼ばれるTCP層のデータは、セグメントと呼ばれるセグメント(UDPは、メッセージと呼ばれます)。
(下から見て)4、TCPセグメントデータ= 1448バイト。
したがって、パケット= 14バイト+ 20バイト+ 20バイト+ 1448バイト= 1502バイト当たりプロトコルの長さ。
私たちは、手を振っ4を見てください。TCP接続が切断されると、4つの振っプロセスがあるだろう、フラグがFINで、我々は理論的には、4つのパケットを見つける必要があり、パケットリストに対応する位置を見つけることが、私は実際には3つのデータをキャッチし、何回か試してみましたパッケージ。関連情報を確認し、彼はクライアントにサーバ側は合併により送信された二つの連続するパケットの間に返されるので、それが言いました。間違った場所には、以下の明記してください場合は、組み合わせた第三の波の解釈に従うだろう、私たちはそう。
最初の波:クライアントは無効データ送信サーバへのクライアント、サーバーへのTCPパケットを送信します。FINとACKフラグが1に設定され、番号seq = X = 2242、確認応答番号ACK = Z = 17602,53992 - > 80。
第二波:サーバーはFINを受信すると、サーバはクライアントとの接続を閉じ、バックFIN ACK(フラグFIN = 1、ACK = 1)を送信し、シーケンス番号= ACK確認応答番号プラス1、すなわちXを受け= 2243年X + 1。配列は、受信確認応答番号のシーケンス番号である= Z = 17602,80 - > 53992。
第三の波:クライアントがサーバーの後にFINて送信を受信するが、バックACK肯定応答(ACKフラグ= 1)を送信し、即ち、Y + 1 = 17603、受信したシーケンス番号プラスワンことが確認されました。> 80 - 受信したシリアル番号X = 2243,53992を確認しました。
この時点で、全体のTCP通信プロセスは、プレゼンテーションを終えました。
附属書:TCPの通信プロセス:
オリジナル:Wiresharkのパケットキャプチャ解析--tcp / IPプロトコル
網易クラウドまくる新しいユーザーます。https://www.163yun.com/gift
この記事では、網易クラウドコミュニティから来て、著者の李は、リリースを承認しました。