|
一. 面向連接
TCP是一個面向連接的協(xié)議,面向連接是指任何一方向?qū)Ψ桨l(fā)送數(shù)據(jù)前必須先建立通道,比如像打電話一樣:必須要等到對方的手機響鈴,并且對方接聽電話時,才能與對方通信。而UDP則不是面向連接的協(xié)議,基于UDP協(xié)議的通信雙方不需要事先與對方協(xié)商建立連接,也不管對方的IP地址與端口號是否存在,就發(fā)送數(shù)據(jù),這個處理方式有點像手機發(fā)短信,不管對方手機是否欠費或關(guān)機,我們就只管發(fā)送信息。
二. 三次握手
第一次握手:客戶端發(fā)送SYN包(序列號seq=100),等待服務(wù)器的確認。
第二次握手:服務(wù)器收到SYN包之后,必須確認客戶端,所以就要發(fā)送ACK包(ACK=101),同時,服務(wù)器必須還必須發(fā)送SYN包(序列號seq=300)等客戶端的確認。
第三次握手:客戶端接收到SYN+ACK包之后,向服務(wù)器發(fā)送確認包(ACK=301),次包發(fā)送完畢之后,兩者就可以進行數(shù)據(jù)交換了。
簡單的來說:
C(客戶端) S(服務(wù)器)
C:發(fā)送SYN給S
S:如果成功,返回給C(SYN+ACK)
C:如果成功,返回給S(ACK)
還可用個形象的例子說下:TCP的三次握手過程可以看成是某男生追某女生的過程。第一次握手就好比是:男生向女生告白,說我喜歡你,然后男生等待女生的回應(yīng),第二次握手就好比是:女生收到男生的告白,而且該女生也喜歡次男生,她就可以給男生回應(yīng),說:我也喜歡你。第三次握手:男生收到該女生的回應(yīng),大喜,又發(fā)送消息過去,那我們正式交往吧!
三 .四次斷開
1. 客戶端發(fā)送數(shù)據(jù)完畢之后,提出要斷開連接
2. 服務(wù)器收到FIN包后,對其作出反應(yīng),發(fā)送ACK包,確認這一方向的連接將關(guān)閉,
3. 等服務(wù)器的應(yīng)用程序做好關(guān)閉準備時,服務(wù)器反方向發(fā)送FIN包,請求關(guān)閉連接請求,
4. 客戶機對服務(wù)器發(fā)送的請求進行確認,并發(fā)送ACK包
也可簡單的概述:
C(客戶端) S(服務(wù)器)
C:發(fā)送FIN給S
S:如果成功,返回給C(ACK)
S:應(yīng)用程序做好關(guān)閉程序準備,發(fā)送FIN給C
C:如果成功,返回給S(ACK)
同樣也可以用個形象的例子說明:這個過程相當(dāng)于男女雙方分手的過程:
1,女方向男方提出分手,等待男方的回應(yīng)
2,男方聽到這個消息后,就給女方回應(yīng)說:好吧!分就分
3,過段時間,男方突然覺得很沒面子,想:“我一個大老爺們,應(yīng)該是我提出分手”,于是,男方跟女方說:我們分手吧!
4,這時,女方就直接罵了句“神經(jīng)病”。
|
|