TCP與UDP區(qū)別

tcp與udp都屬于網(wǎng)絡(luò)通信傳輸層的傳輸協(xié)議

TCP

舉個(gè)例子:幫助理解tcp的原理流程,比如說打電話
場景:A(發(fā)送端)B(接收端),A跟B在微信上聊天,突然A想打電話給B,想語音跟B說。
三次握手過程:

  • 一次握手:
    A發(fā)送信息給B:我想打電話跟你說(SYN(SEQ=x)報(bào)文),那么A就進(jìn)入了等待B回應(yīng)狀態(tài)(SYN_SEND 狀態(tài)
  • 二次握手:
    B收到了A發(fā)來請求打電話的信息(SYN 報(bào)文),然后B給A回信息:好,你打過來吧(SYN (SEQ=y)ACK(ACK=x+1)報(bào)文),那么B進(jìn)入了等待A打電話過來來的狀態(tài)(SYN_RECV 狀態(tài))
  • 三次握手:
    A得到B的同意打電話回應(yīng)(SYN 報(bào)文)后,A撥通了電話(ACK(ACK=y+1)報(bào)文),A就進(jìn)入了跟B聊天的狀態(tài)(Established狀態(tài)
    三次握手過程

四次揮手:

  • 一次揮手:
    A跟B聊的差不多了,于是說我要掛了(釋放數(shù)據(jù)報(bào)文首部,F(xiàn)IN=1,序列號為seq=u),然后A進(jìn)入了等待回應(yīng)掛斷狀態(tài)(FIN-WAIT-1,終止等待1
  • 二次揮手:
    B收到了A說要掛斷的信息,于是B說:好(ACK=1,ack=u+1,序列號seq=v),這時(shí)B就看A是否真的掛斷了等待過程中(CLOSE-WAIT(關(guān)閉等待)狀態(tài)),但是B還一直在bb(即客戶端已經(jīng)沒有數(shù)據(jù)要發(fā)送了,但是服務(wù)器若發(fā)送數(shù)據(jù),客戶端依然要接受),這段時(shí)間的狀態(tài)就是CLOSE-WAIT狀態(tài)持續(xù)的時(shí)間
  • 三次揮手:
    A收到B的確認(rèn)信息:好(ACK=1,ack=u+1,序列號seq=v)之后,A就進(jìn)入了在聽B還在bb的狀態(tài)(FIN-WAIT-2(終止等待2)狀態(tài)),在等B一直bb(數(shù)據(jù)傳遞)完后,B就進(jìn)入了A掛掉的狀態(tài)(LAST_ACK(最后確認(rèn))狀態(tài))
  • 四次揮手:
    A在聽B完畢后,A不說話(發(fā)出確認(rèn)要關(guān)閉)等待B先掛斷(尊重問題哈哈哈),這時(shí)A就進(jìn)入了等待關(guān)閉狀態(tài)(TIME_WAIT(時(shí)間等待)狀態(tài),等待時(shí)間:2MSL),此時(shí)B明白了,就掛斷了電話(服務(wù)端close,服務(wù)端結(jié)束TCP連接的時(shí)間要比客戶端早一些)
    四次揮手過程
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容