日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

JavaSE(二十二)——TCP协议的三次握手

發(fā)布時(shí)間:2025/3/13 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaSE(二十二)——TCP协议的三次握手 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 1. TCP協(xié)議
  • 2. TCP的三次握手
  • 3. 為什么一定是三次握手?

1. TCP協(xié)議

TCP協(xié)議:傳輸控制協(xié)議,是可靠連接,類似于打電話,只有等待對方接通的時(shí)候才可以交流,也就是確認(rèn)了對方可以傳信息,才會(huì)發(fā)送信息。

UDP協(xié)議:用戶數(shù)據(jù)報(bào)協(xié)議,是不可靠的,就像發(fā)短信,發(fā)出去就完事了,對方是否接收到就與自己無關(guān)。

2. TCP的三次握手

初始狀態(tài):客戶端處于 closed(關(guān)閉)狀態(tài),服務(wù)器處于 listen(監(jiān)聽) 狀態(tài)。

第一次握手:客戶端發(fā)送請求報(bào)文將 SYN = 1同步序列號和初始化序列號seq = x發(fā)送給服務(wù)端,發(fā)送完之后客戶端處于SYN_Send狀態(tài)。


第二次握手:服務(wù)端受到 SYN 請求報(bào)文之后,如果同意連接,會(huì)以自己的同步序列號SYN(服務(wù)端) = 1、初始化序列號 seq = y和確認(rèn)序列號(期望下次收到的數(shù)據(jù)包)ack = x+ 1 以及確認(rèn)號ACK = 1報(bào)文作為應(yīng)答,服務(wù)器為SYN_Receive狀態(tài)。

第三次握手: 客戶端接收到服務(wù)端的 SYN + ACK之后,知道可以下次可以發(fā)送了下一序列的數(shù)據(jù)包了,然后發(fā)送同步序列號 ack = y + 1和數(shù)據(jù)包的序列號 seq = x + 1以及確認(rèn)號ACK = 1確認(rèn)包作為應(yīng)答,客戶端轉(zhuǎn)為established狀態(tài)。

3. 為什么一定是三次握手?

  • 三次握手的本質(zhì)原因是因?yàn)橥ㄓ嵥幍耐ㄓ嶆溌泛托诺朗遣豢煽康?#xff0c;但是我們的通訊和數(shù)據(jù)傳輸需要的是可靠的信息流動(dòng),就像我們打電話一樣,不能我說了一句話那邊只聽到半句或者聽不到,我在等對方回答,對方卻在等待我的問題,這就進(jìn)入了死鎖的狀態(tài)會(huì)很尷尬。
  • 通訊雙方為了解決這種不可靠,無論消息中包含什么信息,在數(shù)學(xué)歸納法來講,三次通訊是理論上的最小值,所以才有了三次握手。
  • 簡單講,三次握手不是TCP的問題,也不是TCP所需要的必須條件,而是為了滿足在不可靠的鏈路信道上進(jìn)行可靠地消息傳輸這個(gè)問題需求所導(dǎo)致的。
  • 鏈路信道不可靠,而需要數(shù)據(jù)傳輸可靠,三次達(dá)到了,也就解決了信道不可靠的問題。后面不管你交互任何信息就和進(jìn)行可靠的信息傳輸需求就沒關(guān)系了。因?yàn)槟阈诺揽煽苛藷o論你發(fā)送什么消息,什么時(shí)候發(fā)送,只要連接在,對方都一定能收的到。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的JavaSE(二十二)——TCP协议的三次握手的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。