サーバーでTCP / IPパケットを追跡する方法

サーバーでTCP / IPパケットを追跡する方法

バックエンドサービスを開発中です。バックエンドにはいくつかのプロセスが含まれています。つまり、クライアントがサーバーに要求を送信すると、要求はこれらのプロセスを経ます。

nginxたとえば、要求は最初にプロセスに送信され、次にプロセスに送信され、次にプロセスに送信されhttp_proxyますrequest_handler

私がしなければならないことは、次のようにリクエストパスを追跡することです。

req             ---> nginx:8888
nginx:4444      ---> http_proxy:7777
http_proxy:2222 ---> request_handler:6666

reqそのポートを介してプロセスに別のパケットを送信し、そのポートからそのポートに別のパケットを送信し、プロセスがそのパケットを受信し、そのポートからそのポートに別のパケットを送信し、プロセスがパケットを受信することを意味します。コース。nginx8888nginx44447777http_proxyhttp_proxy22226666request_handler

それは本当ではないようで、netstat私がlsof必要とすることを行います。これを行う方法やツールはありますか?

答え1

TCP/IPをよりよく理解する必要があるか、TCP/IPがまったく必要ないと言われて申し訳ありません。

アプリケーションのロギングは問題に答えることができますが、これはアプリケーションによって異なります。

「ポートからポートへnginx別のパケットを送信する」と書き込みます。固定ポートで送信されるわけではないと確信しています。これにより、「同時」要求が1つに制限されます。さらに、要求は単一のパケットではなく複数のパケットであるため、ネットワークの詳細を表示することは通常、アプリケーションレベルの問題を処理するのには役に立ちません。44447777

TCP / IPパケットを表示するには、ツールはtcpdump、notnetstatまたはですlsof

関連情報