1.面向鏈接服務器
TCP是一個面向鏈接的協議,面向鏈接是指任何一方向對方發送數據前必須先創建通道,好比像打電話同樣:必需要等到對方的手機響鈴,而且對方接聽電話時,才能與對方通訊。而UDP則不是面向鏈接的協議,基於UDP協議的通訊雙方不須要事先與對方協商創建鏈接,也無論對方的IP地址與端口號是否存在,就發送數據,這個處理方式有點像手機發短信,無論對方手機是否欠費或關機,咱們就只管發送信息。併發
第一次握手:客戶端發送SYN包(序列號seq=100),等待服務器的確認。ide
第二次握手:服務器收到SYN包以後,必須確認客戶端,因此就要發送ACK包(ACK=101),同時,服務器必須還必須發送SYN包(序列號seq=300)等客戶端的確認。spa
第三次握手:客戶端接收到SYN+ACK包以後,向服務器發送確認包(ACK=301),次包發送完畢以後,二者就能夠進行數據交換了。xml
簡單的來講:it
C(客戶端) S(服務器)class
C:發送SYN給S請求
S:若是成功,返回給C(SYN+ACK)程序
C:若是成功,返回給S(ACK)im
還可用個形象的例子說下:TCP的 三次握手過程能夠當作是某男生追某女生的過程。第一次握手就比如是:男生向女生告白,說我喜歡你,而後男生等待女生的迴應,第二次握手就比如是:女生收到 男生的告白,並且該女生也喜歡次男生,她就能夠給男生迴應,說:我也喜歡你。第三次握手:男生收到該女生的迴應,大喜,又發送消息過去,那咱們正式交往 吧!
1.客戶端發送數據完畢以後,提出要斷開鏈接
2.服務器收到FIN包後,對其做出反應,發送ACK包,確認這一方向的鏈接將關閉,
3.等服務器的應用程序作好關閉準備時,服務器反方向發送FIN包,請求關閉鏈接請求,
4.客戶機對服務器發送的請求進行確認,併發送ACK包
也可簡單的概述:
C(客戶端) S(服務器)
C:發送FIN給S
S:若是成功,返回給C(ACK)
S:應用程序作好關閉程序準備,發送FIN給C
C:若是成功,返回給S(ACK)
一樣也能夠用個形象的例子說明:這個過程至關於男女雙方分手的過程:1,女方向男方提出分手,等待男方的迴應2,男方聽到這個消息後,就給女方迴應說:好吧!分就分3,過段時間,男方忽然以爲很沒面子,想:「我一個大老爺們,應該是我提出分手」,因而,男方跟女方說:咱們分手吧!4,這時,女方就直接罵了句「神經病」。