TCPとUDPトランスポート層プロトコル

IMG1

著者:HerryLo

オリジナルの固定リンク:  HTTPS://github.com/AttemptWeb ...

TCP / IPプロトコルが、あなたは多くの場合、これは、聞くことができますプロトコルは、インターネットと呼ばれるTCP(伝送制御プロトコル)と呼ばれる伝送制御プロトコル、IP(インターネットプロトコル)

IMG

実際にはTCP / IPプロトコル、プロトコル・スイートは、プロトコルのセットです。

一連のルールを定義するTCP / IPプロトコル。これは、全体のインターネット接続は、どのように最も基本的なルールを交渉する方法を、通信する方法を定義します。

TCP / IPプロトコルは、5つの層、すなわちアプリケーション層、トランスポート層、ネットワーク層、データリンク層、物理層に分割されます。2つのプロトコルは、TCPとUDPトランスポート層であることを特徴とする請求各々は、関連するプロトコルに対応しています。

TCPとUDPの理解

TCP / UDP
彼らはトランスポート層プロトコルなので、もちろん、それは彼らの役割は、データの伝送のために責任があるということです。

私たちは、ネットワークの両端が通信自由にシナリオを想像し、トランスミッションは、どのような方法を取るのだろうか?

あなたは最初の人間の間の通信を想像することができます。

最初は電気再生することです。あなたが「こんにちは」と答えるまで、私はそれを私たちの間で話を続ける前に、声を聞いて、あなたの携帯電話の携帯電話と呼ばれます。

もう一つは、テキストメッセージを送信することです。私はその後、私は唯一のお返事を待つことができ、あなたの電話番号、あなたが受け取るかどうかを知る方法にテキストメッセージを送りました。

前記第1のモードはTCPに対応し、第二は、UDPに対応します。TCPは、それは、送信前にスリーウェイハンドシェイク(通信の開始前に以下の三つハンドシェイクの送信の両端)のために必要であり、お互いを確認する必要があります。比較的粗いとUDPは、どんな他の状況確認処理せずに、直接送信されません。

上の画像は、それが何を意味するのか、UDPは信頼できない、TCPは信頼性があり、確認してください。

信頼性の高い接続は、効率の低下をもたらします。たとえば、ネットワーク要求、それらの大部分は、実際には、お互いの確認処理を無駄に信頼性の高いデータ伝送を確保するために、より多くのリソースを消費し、データ伝送を注文されています。効率の改善をもたらすが、サービスの質の低下も信頼できない接続。

要摆脱一种人为的误区,不要以为UDP不可靠,就没有应用场景。据说QQ发送数据就是靠UDP发送的,尽管是不可靠的连接,可是还是用了非常多的校验算法保证了数据质量稳定,同也保证了效率。TCP尽管耗时,可是对于稳定性优先的场景,还是应该有限选用TCP,比方浏览器中访问网页用的就是TCP。此外在一些长连接系统里面,比方微信,连接通道应该也是用TCP建立的,由于要维持一条稳定的信息传输通道。

协议是怎么控制,数据包是怎么传输,怎么校验数据的正确性,还有重传特性。这些都是协议中重要的控制过程,在这里不做详解,因为对于实际的产品并没有太大的用。至于如何选定传输数据方式,应该依据场景而定。

安全的东西往往不快,反之亦然。而TCP和UCD之间也是这样:

TCP(传输控制协议)

TCP(传输控制协议)是基于连接的。在正式收发数据之前,必须要与对方建立连接。这之间需要经过'三次握手':

第一步. 首先A主机需要和B主机之间建立数据收发,A需要发送一个请求询问B:'我要建立连接';

第二步. B收到消息后,会给A发送一个回应:'可以连接';

第三步. A收到B的回应后,A向B再次回应:'我要开始发送了',他们之间就可以建立连接了;
第一次握手的结论是:A的发送能力、B的接收能力正常。

第二次握手的结论是:B的发送能力、A的接收能力正常。

第三次握手的结论是:A的接收、发送能力,B的接收、发送能力都是正常的。

'3次握手'的作用就是 双方都能明确自己和对方的收、发能力是正常的.

UDP(用户数据报协议)

UDP(User Datagram Protocol)があるコネクション指向の相互に接続を確立するのではなく、送信され、直接=データグラムパケットを。UDPは、少量のデータの送信、あまり要求の厳しい環境に対する信頼性に適しています。通信が正常であるかどうかを日常生活で使用されるホストをテストするには、pingコマンドは、実際には原則の「ピング」コマンドは、パケットの受信を確認するために、他のホストとピアにUDPパケットを送信することで、パケットは、メッセージが戻ってタイムリーなフィードバックを到着したと仮定する、ネットワーク伝送が正常です。

該当シーン

TCP:全二重、コネクション指向、信頼性、および正確な制御プロトコル。主にリアルタイムのパフォーマンスのために使用強力ではありませんが、アプリケーションの高い伝送要件。電子メールを送信するというように、これらのシナリオは、送信用のTCPプロトコルを必要とし、Web閲覧、ファイルのダウンロード(ないBT、コンピュータがダウンロード):たとえば。もちろん、それは、ネットワークのオーバーヘッドで高価です。

UDP:これは、信頼できるトランスポートプロトコルではありません。それは、送信するデータセグメントをソートしていないため、データ・セグメントは、(それが信頼性がなかったと言う)の目標を達成するための責任を負いません。これは、TCPよりも小さなミスの機会をできるように、リアルタイムでネットワークにオーバーヘッドがたくさんだ、との使用に適し、したがって、それらのUDP。たとえば、次のインスタントメッセージング(MSN、QQ)、ビデオ、および他の言語の側面。

PS:あなた自身の個人的な公共の番号をプッシュする方法:Yopai、私たちが興味を持っている時間から時間に毎週更新、従うことができ、世界を共有する喜びを増やすことができます

おすすめ

転載: www.cnblogs.com/liuheng/p/11291593.html