TCP プロトコルは、トランスポート層におけるコネクション指向で信頼性の高い、バイト ストリーム ベースのトランスポート層通信プロトコルです。
環境整備
インターフェイス テスト ツールは次のカテゴリに分類できます。
ネットワーク スニッフィング ツール: tcpdump、wireshark
プロキシ ツール: fiddler、charles、anyproxyburpsuite、mitmproxy
分析ツール:curl、postman、chrome Devtool
TCPプロトコルのパケットキャプチャと分析
tcpdump
tcpdump は、ネットワーク内を送信されるデータ パケットの「ヘッダー」を完全に傍受し、分析を提供するツールです。ネットワーク層、プロトコル、ホスト、ネットワーク、またはポートのフィルタリングをサポートし、不要な情報を削除するための and や or などの論理ステートメントを提供します。
tcpdump にポート 443 を常にリッスンさせ、異常があればログ ファイルに入力します。
sudo tcpdump port 443 -v -w /tmp/tcp.log
/tmp/tcp.log
このコマンドを実行すると、取得したレポートがディレクトリに配置されます 。
共通パラメータ | 意味 |
---|---|
ポート443 | ポート 443 でリッスンする |
-v | より詳細な情報を出力する |
-w | データをログに書き込む |
Wireshark
Wireshark もネットワーク スニッフィング ツールです。tcpdump 機能に加え、解析ツールなどの拡張機能も備えています。ただし、インターフェイス テストではパケット キャプチャ処理がサーバー上で実行されることが多く、サーバー通常、Wireshark は UI インターフェイスを提供しないため、サーバー上では動作できず、tcpdump を使用してパケットをキャプチャしてログを生成し、そのログを Wireshark にインポートして UI インターフェイスを備えたクライアントで分析することしかできません。
パケットキャプチャ分析 TCPプロトコル
http get リクエストを取得します。
Baidu で mp3 を検索 http://www.baidu.com/s?wd=mp3
tcpdump を使用してこの取得リクエストをインターセプトし、ログを生成します
Wireshark で tcpdump によって生成されたログを開きます
Wireshark を使用してログを表示します。
ログ内の最初のいくつかの情報は、3 ウェイ ハンドシェイクです。チャネルの信頼性が低いため、データを送信する前にチャネルが安定していることを確認する必要があります。スリーウェイ ハンドシェイクは次のような操作です。
最初のハンドシェイク: 接続が確立されると、クライアントは syn パケット (syn=j) をサーバーに送信し、SYN_SENT 状態に入り、サーバーの確認を待ちます。
2 番目のハンドシェイク: サーバーは syn パケットを受信し、クライアントの SYN (ack=j+1) を確認する必要があり、同時に SYN パケット (seq=k)、つまり SYN+ACK パケットを送信する必要があります。サーバーはこの時点で SYN_RECV 状態に入ります;
3 回目のハンドシェイク: クライアントはサーバーから SYN+ACK パケットを受信し、確認パケット ACK (ack=k+1) をサーバーに送信します。パケットの送信後、クライアントとサーバーは ESTABLISHED (TCP 接続が成功) 状態になり、3 回のシェイク ハンドを完了します。
3 ウェイ ハンドシェイクの後、次のようにさらなる通信が可能になります。
交換の終了時には、4 回手を振る必要もあります。
最初の波: クライアントはサーバーに FIN を送信し、データ送信の終了を要求します。
第 2 の波: サーバーはクライアントの FIN を受信し、ACK をクライアントに送信します。ACK の値は FIN+SEQ と等しくなります。
第三の波: サーバーはクライアントに FIN を送信し、クライアント アプリケーションを閉じるように指示します。
4 番目のウェーブ: クライアントはサーバーから FIN を受信し、サーバーに ACK を返信します。ack の値は FIN+SEQ と等しくなります。
注: リクエストは複数のパケットに分割される場合があり、それも 1 つのデータであるため、Wireshark では多数のパケットが表示されます。
最後に、私の記事をよく読んでくださった皆さんに感謝します。互恵性は常に必要です。あまり価値のあるものではありませんが、使用できる場合は、直接持ち帰ることができます: [記事の最後にまとめてあります] 】
[以下は、2023 年に私が編集した最も完全なソフトウェア テスト エンジニア学習ナレッジ アーキテクチャ システム図と資料の完全なセットです]
1. Pythonプログラミングの入門から習得まで
2.インターフェース自動化プロジェクト実戦
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実戦
5. 一流メーカーの再開
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8、JMeterのパフォーマンステスト
9. まとめ(最後にちょっとしたサプライズ)
寿命が長いのでオイルを追加してください。すべての努力は決して裏切られることはなく、粘り強く続ける限り、最後には必ずご褒美が得られます。自分の時間を大切にして夢を追いかけてください。初心を忘れず、前に進んでください。あなたの未来はあなたの手の中にあります!
人生は短く、時間は貴重です。将来何が起こるかを予測することはできませんが、現在の瞬間を把握することはできます。一日一日を大切にし、自分自身をより強く、より良くするために努力してください。確固たる信念、粘り強い追求、成功はやがてあなたのものになります。
常に自分自身に挑戦することによってのみ、常に自分を超えることができます。夢を追い続け、勇敢に前進すれば、その葛藤の過程がとても美しく、やりがいのあるものであることに気づくでしょう。自分を信じてください、あなたならできるよ!