ホームページ >運用・保守 >Linuxの運用と保守 >トランスポート層の概要: ポートとプロセスの関係

トランスポート層の概要: ポートとプロセスの関係

齐天大圣
齐天大圣オリジナル
2020-12-18 20:00:333235ブラウズ

#プロセス間通信

トランスポート層はトランスポート層とも呼ばれ、特別な層です。一方で、それは通信部分の最上位レベルに属し、他方で、ユーザー機能の最下位レベルに属します。トランスポート層は、異なるホスト上のプロセス間の通信に使用され、パケットを転送するルーターの場合、下位3層の機能のみを持ち、トランスポート層以上は使用しません。

プロセス、つまり実行中のプログラム。 Linux では、プログラムが実行されると、オペレーティング システムがプロセスにプロセス番号を割り当てます。コマンド ps aux を使用すると、すべてのプロセスを表示できます。

# ps aux 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  51744  2808 ?        Ss   Jul31  16:06 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
……

ポート

TCP/IP のトランスポート層は、16 ビットのポート番号を使用してポートをマークするため、ホストは65535 ポート。 Web を開いたことがある人は、Web サーバーの 80、mysql サービスの 3306、その他のポートなど、一般的に使用されるポート番号をいくつか知っているはずです。 2 つのホスト間のプロセスはそれぞれのポート番号を介して通信するため、プロセスにはポートをリッスンする機能も必要です。 Linux では、監視対象ポートを表示するコマンドは netstat -tlunp

# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2449/nginx: worker  
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1010/pure-ftpd (SER 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1819/sshd           
……

です。ポートには多重化と逆多重化の機能もあります。多重化とは、ホストの複数のアプリケーション プロセスが同じポート番号を使用して通信できることを意味します。 、分割とは、IP 層から取得したデータグラムをポート番号を通じてさまざまなアプリケーション プロセスに引き渡すことができることを意味します。

TCP と UDP

トランスポート層には、伝送制御プロトコル TCP とユーザー データグラム プロトコル UDP の 2 つのプロトコルのみがあります。これら 2 つのプロトコルには独自の特性といくつかのアプリケーション シナリオがあります。

TCP はコネクション指向のプロトコルであり、データを送信する前にコネクションを確立する必要があり、データ送信が不要な場合はコネクションを切断する必要があります。 TCP は比較的複雑なプロトコルであり、考慮すべき要素が数多くあります。エンドツーエンドの信頼性の高い伝送を提供できますが、1 対多および多対多の通信はサポートされていません。一般的に使用される TCP プロトコルには、HTTP プロトコル、ftp プロトコル、telnet プロトコルなどが含まれます。

UDP はパケット用で、比較的シンプルで、信頼性の高い送信ではなくベストエフォートを使用します。 1対1、1対多、多対多の通信が可能です。 UDP プロトコルを使用する一般的なプロトコルには、DHCP、DNS、RIP プロトコルなどがあります。

TCP は電話をかけるようなもので、通話の前に接続を確立する必要があります。 UDP はテキスト メッセージの送信に似ており、テキスト メッセージを送信する前に相手のホストの状態を知る必要がなく、テキスト メッセージが送信されたかどうかもわかりません。

以上がトランスポート層の概要: ポートとプロセスの関係の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。