TCP鏈接——三次握手和四次斷開

1.面向鏈接服務器

TCP是一個面向鏈接的協議,面向鏈接是指任何一方向對方發送數據前必須先創建通道,好比像打電話同樣:必需要等到對方的手機響鈴,而且對方接聽電話時,才能與對方通訊。而UDP則不是面向鏈接的協議,基於UDP協議的通訊雙方不須要事先與對方協商創建鏈接,也無論對方的IP地址與端口號是否存在,就發送數據,這個處理方式有點像手機發短信,無論對方手機是否欠費或關機,咱們就只管發送信息。併發

2.三次握手


第一次握手:客戶端發送SYN包(序列號seq=100,等待服務器的確認。ide

第二次握手:服務器收到SYN包以後,必須確認客戶端,因此就要發送ACK包(ACK=101,同時,服務器必須還必須發送SYN包(序列號seq=300)等客戶端的確認。spa

第三次握手:客戶端接收到SYN+ACK包以後,向服務器發送確認包(ACK=301),次包發送完畢以後,二者就能夠進行數據交換了。xml

簡單的來講:it

C(客戶端) S(服務器)class

C:發送SYNS請求

S:若是成功,返回給C(SYN+ACK)程序

C:若是成功,返回給S(ACK)im

還可用個形象的例子說下:TCP的 三次握手過程能夠當作是某男生追某女生的過程。第一次握手就比如是:男生向女生告白,說我喜歡你,而後男生等待女生的迴應,第二次握手就比如是:女生收到 男生的告白,並且該女生也喜歡次男生,她就能夠給男生迴應,說:我也喜歡你。第三次握手:男生收到該女生的迴應,大喜,又發送消息過去,那咱們正式交往 吧!

3.四次斷開

1.客戶端發送數據完畢以後,提出要斷開鏈接

2.服務器收到FIN包後,對其做出反應,發送ACK包,確認這一方向的鏈接將關閉,

3.等服務器的應用程序作好關閉準備時,服務器反方向發送FIN包,請求關閉鏈接請求,

4.客戶機對服務器發送的請求進行確認,併發送ACK

也可簡單的概述:

C(客戶端) S(服務器)

C:發送FINS

S:若是成功,返回給C(ACK)

S:應用程序作好關閉程序準備,發送FINC

C:若是成功,返回給S(ACK)

一樣也能夠用個形象的例子說明:這個過程至關於男女雙方分手的過程:1,女方向男方提出分手,等待男方的迴應2,男方聽到這個消息後,就給女方迴應說:好吧!分就分3,過段時間,男方忽然以爲很沒面子,想:「我一個大老爺們,應該是我提出分手」,因而,男方跟女方說:咱們分手吧!4,這時,女方就直接罵了句「神經病」。

相關文章
相關標籤/搜索