検索
ホームページよくある問題ソケット通信とtcp通信の違いは何ですか?

ソケット通信と tcp 通信の違い: 1. tcp プロトコルはトランスポート層プロトコルに属しますが、ソケットはアプリケーション層とトランスポート層の間の抽象化層です; 2. 3 ウェイ ハンドシェイクはTCP 接続を確立するために必要な; 3. ソケット接続は長時間の接続を維持できる; 4. TCP サーバーと TCP クライアントはソケット通信を使用します。

ソケット通信とtcp通信の違いは何ですか?

#この記事の動作環境: Windows 10 システム、Dell G3 コンピューター。

ソケット通信と tcp 通信の違いは何ですか?

#tcp とソケットの違い

# 1: tcp プロトコル

tcp プロトコルはトランスポート層プロトコルに属します (UDP もトランスポート層プロトコルに属しますが、UDP プロトコルはステートレスです)。 TCP 接続の確立には 3 回のハンドシェイクが必要で、TCP 接続の切断には 4 回のハンドシェイクが必要です。携帯電話の最下位層には TCP/IP プロトコルが実装されているため、携帯電話端末から無線ネットワークを介してサーバーと TCP 接続を確立することでネットワーク機能を利用できます。 TCP プロトコルは上位層ネットワークへのインターフェイスを提供できるため、上位層ネットワーク データの送信は「区別されていない」ネットワーク上で確立されます。

tcp は接続を確立するために 3 回のハンドシェイクを必要とします:

図 1: Tcp 接続の 3 ウェイ ハンドシェイクの図 ソケット通信とtcp通信の違いは何ですか?

図に示すように:

クライアントは、サーバーとの TCP 接続を確立するために、まず syn J 信号をサーバーに送信する必要があります。この信号を受信した後、サーバーは ACK J 1 信号と追加の syn K 信号でクライアントに応答します。 ACK J 1 を受信します シグナルを受信すると、サーバーがシグナルを受信できることがわかり、クライアントは、サーバーが私が送信したデータを受信できないことを心配することなく、サーバーに安全にデータを送信できます。

クライアントは、サーバーから送信された SYN K 信号を受信した後、サーバーに ACK K 1 信号を返す必要があります。こうすることで、サーバーは、サーバーが送信したこの信号をいつ受信したかを知ることができます。この信号をクライアントに送信すると、クライアントはそれを受信できるため、クライアントが送信したデータを受信できないことを心配することなく、サーバーは安全にデータをクライアントに送信できます。

実際、上記の説明からわかります:

接続の確立は、TCP 接続の切断と同じように 4 つのステップで実行できます。サーバーの応答信号 ACK とクライアントの応答信号を組み合わせるだけです。信号 SYNC の 2 つのステップが 1 つのステップで完了します。

TCP 接続が閉じられるときは 4 つの波が必要です:

図 2: TCP 接続が切断されるときの 4 つの波

クライアントは受信します。サービス クライアントの応答信号 ACK M 1 の後、クライアントは次のことを認識します。 サーバーは、私のクライアントがもうあなたのサーバーにデータ パケットを送信しないことを知っているので、あなたは私の監視をやめてもよいでしょう。

ただし、現時点ではクライアントからサーバーへの一方向のフローのみが停止しており、その逆方向のフローは次のとおりです。

サーバーからクライアントへのデータ送信は、サーバーが FIN N 波信号をクライアントに送信し、クライアントが ACK N 1 信号でサーバーに応答するまでは、通常どおり続行します。そのとき初めて、サーバーは次のことを認識します。クライアントは、サーバーが今後データ パケットを送信しないことを認識します。あなたのクライアントです。私への治療をやめても構いません。監視されています。

この時点で、クライアントからサーバーへの一方向フローとサーバーからクライアントへの一方向フローが停止し、接続を閉じることができます。

2: ソケット

2 つのプロセスが通信する必要がある場合、最も基本的な前提はプロセスを一意に識別できることであることはわかっています。ローカル プロセス通信では、 PID はプロセスを一意に識別するために使用できますが、PID はローカルでのみ一意です。ネットワーク内の 2 つのプロセス間で PID の競合が発生する可能性が高くなります。現時点では、別の方法を見つける必要があります。IP アドレスはわかっています。 IP 層のプロトコルとポート番号はホストを一意に識別でき、TCP 層のプロトコルとポート番号はホスト上のプロセスを一意に識別できるため、IP アドレス + プロトコル + ポート番号を使用してネットワーク上のプロセスを一意に識別できます。


ネットワーク上のプロセスを一意に識別できるようになると、ソケットを使用して通信できるようになります。ソケットとは何ですか?

私たちは、ソケットをソケットとして翻訳することがよくあります。ソケットは、アプリケーション層とトランスポート層の間の抽象化層です。TCP/IP 層の複雑な操作を、アプリケーション層用のいくつかの単純なインターフェイスに抽象化します。実装されたネットワーク内で通信するためのプロセス。

ソケット通信とtcp通信の違いは何ですか? 図 5: ソケット通信システム モジュールの概略図

TCP サーバーと TCP クライアントの間でソケット通信を使用するプロセスは次のとおりです。

写真からわかるように、ソケット接続は長時間の接続を維持できます。
ソケット通信とtcp通信の違いは何ですか?
図 6: 基本的なソケット クライアント/サーバー通信プロセスの概略図

ソケット接続は、クライアントまたはサーバーによってアクティブに閉じることができることに注意してください。

関連知識の詳細については、FAQ 列をご覧ください。

以上がソケット通信とtcp通信の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)