網路協議,如TCP UDP的區別?

2022-07-27 11:36:13 字數 1938 閱讀 8210

1、tcp面向連線(如打**要先撥號建立連線);udp是無連線的,即傳送資料之前不需要建立連線

2、tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付

3、tcp面向位元組流,實際上是tcp把資料看成一連串無結構的位元組流;udp是面向報文的

4、每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊

5、tcp首部開銷20位元組;udp的首部開銷小,只有8個位元組

6、tcp的邏輯通訊通道是全雙工的可靠通道,udp則是不可靠通道

三次握手與四次揮手

三次握手通俗版:

第一次握手:客戶端要和服務端進行通訊,首先要告知服務端一聲,遂發出乙個syn=1的連線請求訊號,」服務端哥哥,我想給你說說話」。

第二次握手:當服務端接收到客戶端的連線請求,此時要給客戶端乙個確認資訊,」我知道了(ack),我這邊已經準備好了,你現在能連嗎(syn)」。

第三次握手:當客戶端收到了服務端的確認連線資訊後,要禮貌的告知一下服務端,「好的,咱們開始聯通吧(ack)」。

到此整個建立連線的過程已經結束,接下來就是雙方你一句我一句甚至同時交流傳遞資訊的過程了。

四次揮手斷開連線通俗版:

第一次揮手:雙方交流的差不多了,此時客戶端也已經結尾了,接下來要斷開通訊連線,所以告訴服務端「我說完了(fin)」,此時自身形成等待結束連線的狀態。

第二次揮手:服務端知道客戶端已經沒話說了,服務端此時還有兩句話要給客戶端說「我知道你說完了(ack),我再說兩句&*…%¥」…

第三次揮手:此時客戶端洗耳恭聽繼續處於等待結束的狀態,伺服器端也說完了,自身此時處於等待關閉連線的狀態,並對告訴客戶端,「我說完了,咱們斷了吧(fin)」。

第四次揮手:客戶端收知道服務端也說完了,也要告訴服務端一聲(ack),因為連線和斷開要雙方都按下關閉操作才能斷開,客戶端同時又為自己定義乙個定時器,因為不知道剛才說的這句話能不能準確到達服務端(網路不穩定或者其他因素引起的網路原因)。

所以預設時間定為兩個通訊的最大時間之和,超出這個時間就預設伺服器端已經接收到了自己的確認資訊,此時客戶端就關閉自身連線,伺服器端一旦接收到客戶端發來的確定通知就立刻關閉伺服器端的連線。

到此為止雙方整個通訊過程就此終結。

三次握手闡述:

在第一次訊息傳送中,a隨機選取乙個序列號作為自己的初始序號傳送給b;

第二次訊息b使用ack對a的資料報進行確認,因為已經收到了序列號為x的資料報,準備接收序列號為x+1的包,所以ack=x+1,同時b告訴a自己的初始序列號,就是seq=y;

第三條訊息a告訴b收到了b的確認訊息並準備建立連線,a自己此條訊息的序列號是x+1,所以seq=x+1,而ack=y+1是表示a正準備接收b序列號為y+1的資料報。

四次揮手闡述:

由於tcp連線時全雙工的,因此,每個方向都必須要單獨進行關閉,這一原則是當一方完成資料傳送任務後,傳送乙個fin來終止這一方向的連線,

收到乙個fin只是意味著這一方向上沒有資料流動了,即不會再收到資料了,但是在這個tcp連線上仍然能夠傳送資料,直到這一方向也傳送了fin。

首先進行關閉的一方將執行主動關閉,而另一方則執行被動關閉,上圖描述的即是如此。

(1)第一次揮手:client傳送乙個fin,用來關閉client到server的資料傳送,client進入fin_wait_1狀態。

(2)第二次揮手:server收到fin後,傳送乙個ack給client,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號),server進入close_wait狀態。

(3)第三次揮手:server傳送乙個fin,用來關閉server到client的資料傳送,server進入last_ack狀態。

(4)第四次揮手:client收到fin後,client進入time_wait狀態,接著傳送乙個ack給server,確認序號為收到序號+1,server進入closed狀態,完成四次揮手。

TCP UDP協議的邊界性區別

面向無連線的 udp協議是面向報文的有邊界的報文的協議。傳送方的udp對應用程式交下來的報文,在新增首部後就向下交付給ip層。既不拆分,也不合併,而是保留這些報文的邊界,因此,應用程式需要選擇合適的報文大小。面向連線的tcp協議屬於無邊界的位元組流協議,使用者每次呼叫接收傳送函式介面時,不一定都能接...

網路位址,tcp udp的區別

今天覆習了一下比較基礎的網路知識,本來以前對網路這塊就比較迷離。網路位址,眾所周知就是用來標識計算機所在位置,並不是標識那一台計算機的名字,而是表明這台計算機和網路之間的關係,所以當這台計算機換了個地方以後,也要相應的改ip位址。tcp udp 當ip協議把資料打包傳送到目地位址時,並不知道應該傳送...

網路程式設計中TCP UDP區別

tcp和udp的區別 tcp傳輸控制協議 是基於連線的協議,也就是說,在正式收發資料前,必須和對方建立可靠的連線 udp user data protocol,使用者資料報協議 是與tcp相對應的協議。它是面向非連線的協議,它不與對方建立連線,而是直接就把資料報傳送過去!http和https htt...