1. ホーム
  2. tcp

[解決済み] TCPとUDPの比較 - TCPコネクションとは何ですか?[重複あり]

2022-03-07 21:55:14

質問

TCPコネクションとは、具体的にどのようなものですか? クライアントからサーバーへの物理的な接続はないそうですね。この接続は、3ウェイハンドシェイクの後にサーバーが作成した新しいソケットにクライアントのソケットがリンクされるだけなのでしょうか? その後、quot;connection"が設定されると、接続の両端にあるソケットは、パケットをどこに送ればよいかを知ることができます。

これは、TCPとの最初のハンドシェイク以外のUDPの機能方法とどのように違うのでしょうか? 各サーバーソケットには、そのソケットにパケットを送信するクライアントが1つだけあるということでしょうか?

ホスト間の接続を専用にすることで、どのような利点が考えられますか?TCPとUDPについては、まだ基本的な理解しかできていないので、大まかな一般論で十分です。

解決方法は?

これを分割して考えてみましょう。まず ネットワーク はIPに基づいています。IPは各ネットワークノードにアドレスを割り当てるプロトコルで、これにより、あるノードから別のノードへ少量のデータ(通常は64kBまで、通常は1500Bのみ)を送信することができます。

なぜなら、データが実際に届いたかどうか、正しい順序で届いたかどうかをチェックすることができないからです。もし私たちが 任意の 大量のデータが確実に届くようにするには、ネットワークの上に、この「送信」を処理する別のプロトコルが必要です。そして、それがTCPの目的です。

しかし、TCPと並行して、全くチェックをしない、信頼性のないもう一つの"transmission"プロトコルであるUDPがあります。UDPは生のIPパケットを薄く包んでいるだけで、ちょっとしたメタデータ(例えば ポート の番号)。

UDPはまだ便利ですが、データの整合性がすでにさらに上位のプロトコルに引き渡されている状況も多く、複雑な伝送プロトコルは必要ありませんから。これは例えば仮想ネットワークサービスで使われるもので、そこでは通常TCP/IPの別のインスタンスが実行されています。 オーバー UDPチャネル。(チャネルにTCPのような信頼性の高いプロトコルを使用させると、再送カスケードのために、その場合、実際に悲惨な結果になることがあります)。

つまり、TCPコネクションとは、TCPプロトコルのアプリケーションを指すのです。このプロトコルは当然ステートフルで、通常はSYN-ACK-データ-FINのシーケンスで進行し、送信が拒否された場合はSYN/RSTで進行します。 listen() は、着信接続のために