TCP連接的建立和釋放分別通過“三次握手”和“四次揮手”來完成。
客戶端撥通服務(wù)器的電話,說“喂?聽得到嗎?”(發(fā)送SYN信號,攜帶初始編號x:SYN=1,seq=x)。
進(jìn)入“等待回應(yīng)”狀態(tài)(SYN_SENT)。
服務(wù)器聽到后回答:“聽得到!你那邊OK嗎?”(發(fā)送SYN+ACK信號,確認(rèn)收到x并攜帶自己的編號y:SYN=1,seq=y,ACK=1,ack=x+1)。
進(jìn)入“準(zhǔn)備接收”狀態(tài)(SYN_RECV)。
客戶端確認(rèn):“沒問題,開始聊吧!”(發(fā)送ACK信號,確認(rèn)收到y(tǒng):ACK=1,seq=x+1,ack=y+1)。
雙方都進(jìn)入“正常聊天”狀態(tài)(ESTABLISHED),可以開始傳輸數(shù)據(jù)。
三次握手完成后,TCP 連接正式建立。
客戶端說:“我講完了,先掛了”(發(fā)送FIN信號,關(guān)閉發(fā)送通道。FIN=1,seq=m)。
進(jìn)入“等待確認(rèn)”狀態(tài)(FIN_WAIT_1)。
服務(wù)器回應(yīng):“收到,我還在處理消息”(發(fā)送ACK信號,確認(rèn)收到FIN。ACK=1,seq=n,ack=m+1)。
進(jìn)入“準(zhǔn)備關(guān)閉”狀態(tài)(CLOSE_WAIT),但可能還有數(shù)據(jù)要發(fā)給客戶端。
服務(wù)器處理完數(shù)據(jù)后說:“我也講完了”(發(fā)送FIN信號,關(guān)閉發(fā)送通道:FIN=1,ACK=1,seq=k,ack=m+1)。
進(jìn)入“等待最終確認(rèn)”狀態(tài)(LAST_ACK)。
客戶端確認(rèn):“好的,再見!”(發(fā)送ACK信號,確認(rèn)收到FIN:ACK=1,seq=m+1,ack=k+1)。
進(jìn)入“徹底關(guān)閉”狀態(tài)(TIME_WAIT),等待2MSL(最長報文存活時間)后徹底斷開;服務(wù)器收到ACK后立即關(guān)閉。
至此,四次揮手完成后,TCP連接正式關(guān)閉。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多以太網(wǎng)模組產(chǎn)品和無線通信技術(shù)資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關(guān)閱讀:
1、TCP粘包怎么產(chǎn)生的以及TCP粘包問題解決方案
2、什么是TCP協(xié)議粘包以及如何解決TCP粘包問題
3、關(guān)于TCP keep-alive(?;?機制詳解
4、分布式IO模塊與西門子200smart PLC設(shè)備TCP連接例程
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 無錫辦事處劉經(jīng)理:13558641933
成都總部銷售經(jīng)理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18828049434
蔡友銀(無線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 sales06@ebyte.com
業(yè)務(wù)郵箱:support@cdebyte.com 全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號