區別
面向連線vs無連線
tcp建立乙個連線需要3次握手ip資料報,斷開連線需要4次握手。另外斷開連線時發起方可能進入time_wait狀態長達數分鐘(視系統設定,windows一般為120秒),在此狀態下連線(埠)無法被釋放。
udp不需要建立連線,可以直接發起。
可靠vs不可靠
tcp利用握手、ack和重傳機制,udp沒有。tcp利用seq序列號對包進行排序,udp沒有。
面向位元組流vs面向報文
面向報文
面向報文的傳輸方式是應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。因此,應用程式必須選擇合適大小的報文。若報文太長,則ip層需要分片。udp對應用層交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界。這也就是說,應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。(乙個upd的最大報文長度2^16-1-20-8,20是ip報文頭,8是udp報文頭)
面向位元組流
面向位元組流的話,雖然應用程式和tcp的互動是一次乙個資料塊(大小不等),但tcp把應用程式看成是一連串的無結構的位元組流。tcp有乙個緩衝,當應用程式傳送的資料塊太長,tcp就可以把它劃分短一些再傳送。如果應用程式一次只傳送乙個位元組,tcp也可以等待積累有足夠多的位元組後再構成報文段傳送出去。
tcp有流量控制,udp沒有
tcp的頭部比20bytes,udp8byres
tcp應用場景:
效率要求相對低,但對準確性要求相對高的場景。因為傳輸中需要對資料確認、重發、排序等操作,相比之下效率沒有udp高。舉幾個例子:檔案傳輸(準確高要求高、但是速度可以相對慢)、接受郵件、遠端登入。
TCP協議和UDP協議
前面我們學習了網路的7層模型,其中談到傳輸層的相關協議有tcp transmission control protocol 傳輸控制協議 和udp user datagram protocol 使用者資料報協議 一 tcp協議 tcp transmission control protocol 是一...
TCP協議和UDP協議
tcp transfer control protocol 是面向連線的,所謂面向連線,就是當計算機雙方通訊時必需經過先建立連線,然後傳送資料,最後拆除連線三個過程。tcp在建立連線時又分三步走 第一步,是請求端 客戶端 傳送乙個包含syn即同步 synchronize 標誌的tcp報文,syn同步...
TCP協議和UDP協議的區別
tcp建立連線要進行3次握手,而斷開連線要進行4次 1 當主機a完成資料傳輸後,將控制位fin置1,提出停止tcp連線的請求 2 主機b收到fin後對其作出響應,確認這一方向上的tcp連線將關閉,將ack置1 3 由b 端再提出反方向的關閉請求,將fin置1 4 主機a對主機b的請求進行確認,將ac...