TCP UDP協議及兩者的區別

2021-10-02 17:43:11 字數 1276 閱讀 7246

二、upd的定義(使用者資料報協議

==三、tcp和udp的區別==

位於傳輸層, 提供可靠的位元組流服務。位元組流服務(byte stream service) 是指, 為了方便傳輸, 將大塊資料分割成以報文段(segment) 為單位的資料報進行管理。 而可靠的傳輸服務是指, 能夠把資料準確可靠地傳給對方。 即tcp 協議為了更容易傳送大資料才把資料分割, 而且 tcp 協議能夠確認資料最終是否送達到對方。所以,tcp連線相當於兩根管道(乙個用於伺服器到客戶端,乙個用於客戶端到伺服器),管道裡面資料傳輸是通過位元組碼傳輸,傳輸是有序的,每個位元組都是乙個乙個來傳輸。

【tcp提供的是面向連線的、可靠的位元組流服務。在客戶端與伺服器之間彼此交換資料之前,必須現在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,流量控制等功能,保證資料能夠從一端傳輸到另一端】

握手過程中使用了 tcp 的標誌(flag) —— syn(synchronize) 和ack(acknowledgement) 。

第一次握手:建立連線時,客戶端a傳送syn包(syn=j)到伺服器b,並進入syn_send狀態,等待伺服器b確認。

第二次握手:伺服器b收到syn包,必須確認客戶a的syn(ack=j+1),同時自己也傳送乙個syn包(syn=k),即syn+ack包,此時伺服器b進入syn_recv狀態。

第三次握手:客戶端a收到伺服器b的syn+ack包,向伺服器b傳送確認包ack(ack=k+1),此包傳送完畢,完成三次握手。

若在握手過程中某個階段莫名中斷, tcp 協議會再次以相同的順序傳送相同的資料報

由於tcp連線是全雙工的,因此每個方向都必須單獨進行關閉。這個原則是當一方完成它的資料傳送任務後就能傳送乙個fin來終止這個方向的連線。收到乙個 fin只意味著這一方向上沒有資料流動,乙個tcp連線在收到乙個fin後仍能傳送資料。先進行關閉的一方將執行主動關閉,而另一方被動關閉。

是乙個簡單的面向資料報的傳輸層協議。udp不提供可靠性,它只是把應用程式傳給ip層的資料報發出去,但是並不能保證它們能達到目的地。由於udp在傳輸資料報前不用在客戶端和伺服器之間建立乙個連線,且沒有超時重發機制,故傳輸速度很快

1) tcp提供面向連線的傳輸,通訊前要先建立連線(三次握手機制); udp提供無連線的傳輸,通訊前不需要建立連線。

2) tcp提供可靠的傳輸(有序,無差錯,不丟失,不重複); udp提供不可靠的傳輸。

3) tcp面向位元組流的傳輸,因此它能將資訊分割成組,並在接收端將其重組; udp是面向資料報的傳輸,沒有分組開銷。

4) tcp提供擁塞控制和流量控制機制; udp不提供擁塞控制和流量控制機制。

Redis Memecached 兩者的區別?

redis memecached 這兩者有什麼區別?redis 支援更加豐富的資料儲存型別,string hash list set 和 sorted set。memcached 僅支援簡單的 key value 結構。memcached key value儲存比 redis 採用 hash 結構來...

GPU與CPU兩者的區別

cpu和gpu主要區別 1 cpu是電腦的 處理器。2 gpu是電腦的圖形處理器。3 cpu是一塊超大規模的積體電路,其中包含alu算術邏輯運算單元 cache高速緩衝儲存器以及bus匯流排。4 cpu是一台計算機的控制和運算核心,它的主要功能便是解釋計算機發出的指令以及處理電腦軟體中的大資料。5 ...

mt rand 和rand 兩者的區別

在隨機讀取中使用了mt rand 而不適用rand 他們兩者的區別 mt rand 是更好地隨機數生成器,因為它跟rand 相比播下了乙個更好地隨機數種子 而且效能上比rand 快4倍,mt getrandmax 所表示的數值範圍也更大 getrandmax 32767 2 15 1 mt getr...