TCP(Transmission Control Protocol,傳輸控制協議)
他是基于連接的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連接,
這說明TCP連接是一個非常復雜的程序,需要進行“三次握手”才可以建立連接,
以下是我在查閱資料的時候看到的例子,便于更加深刻理解:
我們來看看這三次對話的簡單程序:
1.主機A向主機B發出連接請求資料包:“我想給你發資料,可以嗎?”,這是第一次對話;
2.主機B向主機A發送同意連接和要求同步(同步就是兩臺主機一個在發送,一個在接收,協調作業)的資料包:“可以,你什么時候發?”,這是第二次對話;
3.主機A再發出一個資料包確認主機B的要求同步:“我現在就發,你接著吧!”,這是第三次對話,三次“對話”的目的是使資料包的發送和接收同步,經過三次“對話”之后,主機A才向主機B正式發送資料,
UDP(User Data Protocol,用戶資料報協議)
是與TCP相對應的協議,它是面向非連接的協議,它不與對方建立連接,而是直接就把資料包發送過去,
這就說明UDP連接是一個簡單,但是是不太安全的,即他適用于可靠性要求不高的環境,例如:打電話,Ping指令......
這個也是我在查閱資料的時候看到的例子,便于更加深刻理解:
比如,我們經常使用“ping”命令來測驗兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向對方主機發送UDP資料包,然后對方主機確認收到資料包,如果資料包是否到達的訊息及時反饋回來,那么網路就是通的,例如,在默認狀態下,一次“ping”操作發送4個資料包,大家都知道,發送的資料包數量是4包,收到的也是4包(因為對方主機收到后會發回一個確認收到的資料包),
這充分說明了UDP協議是面向非連接的協議,沒有建立連接的程序,正因為UDP協議沒有連接的程序,所以它的通信效果高;
但也正因為如此,它的可靠性不如TCP協議高,QQ就使用UDP發訊息,因此有時會出現收不到訊息的情況,
TCP和UDP是OSI模型中的運輸層中的協議,TCP提供可靠的通信傳輸,而UDP則常被用于讓廣播和細節控制交給應用的bai通信傳輸,
總結:
1.TCP是面向連接的,UDP是無連接的
2.TCP是可靠的,UDP是不可靠的
3.TCP是面向位元組流的,UDP是面向資料報文的
4.TCP只支持點對點通信,UDP支持一對一,一對多,多對多
5.TCP報文首部20個位元組,UDP首部8個位元組
6.TCP有擁塞控制機制,UDP沒有
7.TCP協議下雙方發送接受緩沖區都有,UDP并無實際意義上的發送緩沖區,但是存在接受緩沖區
選擇依據(即什么時候選TCP或者UDP):
對某些實時性要求比較高的情況,選擇UDP,比如游戲,媒體通信,實時視頻流(直播),即使出現傳輸錯誤也可以容忍;其它大部分情況下,HTTP都是用TCP,因為要求傳輸的內容可靠,不出現丟失,
參考文獻:
(33條訊息) TCP和UDP的區別和聯系_典韋-碼農的博客-CSDN博客_tcp和udp的區別與聯系
(33條訊息) TCP與UDP的區別(超詳細)_董HaoYu的博客-CSDN博客_tcp與udp的區別
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511063.html
標籤:其他
