女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

再次感受到了TCP的博大精深

小林coding ? 來(lái)源:小林coding ? 2023-02-13 16:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我在網(wǎng)站看到一位老哥問(wèn)了個(gè)問(wèn)題。

4a8136c2-aabf-11ed-bfe3-dac502259ad0.png

簡(jiǎn)單點(diǎn)說(shuō),為什么在 TCP 三次握手過(guò)程中,如果客戶(hù)端收到的 SYN-ACK 報(bào)文的確認(rèn)號(hào)不符合預(yù)期的話(huà),為什么是回 RST,而不是丟棄呢?

4aa2394e-aabf-11ed-bfe3-dac502259ad0.png

我說(shuō)回 RST 就回 RST 嗎?

當(dāng)然不是,我也是看 RFC 標(biāo)準(zhǔn)確認(rèn)過(guò)。

4ac7c9d4-aabf-11ed-bfe3-dac502259ad0.png

我來(lái)先描述下這個(gè)場(chǎng)景吧:

  • 客戶(hù)端向服務(wù)端發(fā)送 SYN 報(bào)文(seq=100),但是網(wǎng)絡(luò)中有個(gè)不速之客,一個(gè)歷史的 SYN 報(bào)文(seq=90)先抵達(dá)服務(wù)端;
  • 服務(wù)端收到歷史的 SYN 報(bào)文,就會(huì)對(duì)此 SYN 報(bào)文做了確認(rèn),回了 SYN-ACK 報(bào)文,確認(rèn)號(hào)為 90+1;
  • 客戶(hù)端收到 SYN-ACK 報(bào)文后,誒發(fā)現(xiàn)不對(duì)勁,他明明發(fā)的是 SYN 報(bào)文(seq=100),按道理 SYN-ACK 報(bào)文中的確認(rèn)號(hào)是 100+1,可現(xiàn)在收到的確認(rèn)號(hào)為 90+1 的 SYN-ACK 報(bào)文,所以禮貌地回了 RST 給服務(wù)端;
  • 服務(wù)端收到 RST 報(bào)文后,服務(wù)端就斷開(kāi)處于 SYN_RECEVIED 狀態(tài)的連接;
  • 最后正常的 SYN 報(bào)文(seq=100)終于抵達(dá)了服務(wù)端,經(jīng)過(guò)三次握手后,雙方的 TCP 連接都建立完成。

上面這個(gè)過(guò)程,就是 TCP 三次握手防止歷史連接建立的過(guò)程,之所以 TCP 需要三次握手,首要原因是為了防止舊的重復(fù)連接初始化造成混亂,其次原因是可靠的同步雙方的序列號(hào)。

那為什么要設(shè)計(jì)成,當(dāng)客戶(hù)端收到不符合期望的 SYN-ACK 報(bào)文,是回 RST,而不是丟棄呢?

現(xiàn)在我們來(lái)假設(shè)是丟棄處理,看看會(huì)發(fā)生什么?

4adb1c50-aabf-11ed-bfe3-dac502259ad0.jpg

可以看到,當(dāng)處于 SYN_SENT 狀態(tài)連接的客戶(hù)端收到不符合期望的 SYN-ACK 報(bào)文時(shí),如果選擇的處理是「丟棄」,那么雙方都會(huì)觸發(fā)超時(shí)重傳,直到達(dá)到最大的重傳次數(shù)才會(huì)進(jìn)入 CLOSE 狀態(tài),這個(gè)過(guò)程需要持續(xù) 10-20 秒。

從客戶(hù)端的角度看,就是遲遲與服務(wù)端建立不來(lái)連接,因?yàn)榉?wù)端這邊已經(jīng)存在一個(gè)相同四元組的舊連接,如果不把服務(wù)端這個(gè)連接干掉,那么是無(wú)法確認(rèn)客戶(hù)端新的連接(SEQ=100),因?yàn)榉?LISTEN 狀態(tài)下,如果收到 SYN,都是回 challenge ack,這個(gè) ack 并不是對(duì)收到 SYN 報(bào)做確認(rèn),而是繼續(xù)回復(fù)上一次已發(fā)送 ACK。

是不是有種服務(wù)端的舊連接(SEQ=90)占著茅坑不拉屎的感覺(jué)?

所以啊,干掉服務(wù)端的舊連接的工作,就交給了客戶(hù)端來(lái)做了。

當(dāng)處于 SYN_SENT 狀態(tài)連接的客戶(hù)端,在收到不符合期望的 SYN-ACK 報(bào)文時(shí),就直接 RST 給服務(wù)端,干掉服務(wù)端的舊連接,這樣客戶(hù)端的新連接才能快速建立。

怎么樣,TCP 處處是細(xì)節(jié)啊!

再次感受到了 TCP 的博大精深

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1402

    瀏覽量

    80993
  • RFC
    RFC
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    10209
  • 服務(wù)端
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    7228

原文標(biāo)題:這也能考慮到?TCP 有點(diǎn)牛逼

文章出處:【微信號(hào):小林coding,微信公眾號(hào):小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    中國(guó)5G基站總量占全球60%,你感受到了嗎?

    城區(qū)、超過(guò)98%的縣城城區(qū)和80%的鄉(xiāng)鎮(zhèn)鎮(zhèn)區(qū)。截至2021年底,5G移動(dòng)電話(huà)用戶(hù)達(dá)3.55億戶(hù)。 ? 然而,你感受到了嗎? ? 可以看到,現(xiàn)在很多人已經(jīng)用上5G,然而,感覺(jué)怎么樣呢? ? 首先,與4G相比,5G網(wǎng)絡(luò)的速度確實(shí)更快,時(shí)延更低。而且,與2020年及以前相比,2021年之后,隨
    的頭像 發(fā)表于 02-10 07:56 ?4271次閱讀

    學(xué)raw os 以來(lái)的真實(shí)感受之小見(jiàn)

    以前自己一直都是學(xué)ucos 的,公司里也是盜用這個(gè),我也沒(méi)覺(jué)的什么不妥,但是接觸了作者后,發(fā)現(xiàn)這樣子是可恥的。中國(guó)必須要有自己優(yōu)秀的操作系統(tǒng),最好是開(kāi)源的。raw os 的內(nèi)核讓我感受到了什么叫速度
    發(fā)表于 02-27 14:18

    為什么步進(jìn)電機(jī)能感受到在轉(zhuǎn)動(dòng),但是看不到轉(zhuǎn)動(dòng)?

    步進(jìn)電機(jī)能感受到在轉(zhuǎn)動(dòng),但是看不到轉(zhuǎn)動(dòng),是什么原因啊!電機(jī)型號(hào)是 28BYJ-48 5vDC.求大家?guī)兔Ψ治鲆幌?,非常感謝?。?/div>
    發(fā)表于 06-27 04:35

    最新可穿戴技術(shù)可助聾啞人通過(guò)皮膚感受到立體聲

    據(jù)外媒報(bào)道,一項(xiàng)名為Music:Not Impossible的新興技術(shù)設(shè)備出現(xiàn),可以幫助聾啞人通過(guò)皮膚感受到立體聲。據(jù)悉,該技術(shù)的創(chuàng)意來(lái)源于前好萊塢制片人Mick Ebeling。Mick
    發(fā)表于 07-19 04:20

    Linux那些事兒之我是U盤(pán)

    Linux的usb驅(qū)動(dòng)開(kāi)發(fā)博大精深,USB這一塊的驅(qū)動(dòng)開(kāi)發(fā)詳解
    發(fā)表于 11-03 17:31 ?20次下載

    可以感受到瓢蟲(chóng)腿兒運(yùn)動(dòng)的“人造皮膚”

    斯坦福大學(xué)的鮑哲南團(tuán)隊(duì)通過(guò)將人造皮膚的概念推上了新高度給電子元件的發(fā)展奠定了基礎(chǔ),他們不但展示了可以感受到瓢蟲(chóng)腿兒的精密可拉伸電子元件,并且展示了能夠大規(guī)模制造這種元件的工藝。人類(lèi)可以通過(guò)多種方式
    發(fā)表于 04-10 03:02 ?1728次閱讀

    雷霆世紀(jì)獵空C504評(píng)測(cè) 感受到了滿(mǎn)滿(mǎn)的誠(chéng)意

    現(xiàn)在很多朋友,一有時(shí)間就喜歡打幾把游戲來(lái)放松放松,最近也正是到了寒假期間,相比會(huì)有很多同學(xué)在家里都以游戲來(lái)度日吧?但是很多人又發(fā)愁用什么樣的設(shè)備來(lái)玩游戲呢?小編還是推薦用臺(tái)式機(jī),因?yàn)樵谛⌒〉墓P記本上
    的頭像 發(fā)表于 10-13 09:21 ?4042次閱讀

    機(jī)器人進(jìn)行新聞播報(bào) 使人類(lèi)感受到了前所未有的壓力

    如今,人工智能技術(shù)的出現(xiàn),為很多各行各業(yè)都帶來(lái)了便利,未來(lái)在我們的日常生活中肯定離不開(kāi)人工智能,同時(shí)也使人類(lèi)前所未有的感受到了壓力,“人工智能將取代哪些行業(yè)的人員?”這成為近些年來(lái)的熱點(diǎn)話(huà)題。
    發(fā)表于 12-05 17:19 ?3642次閱讀

    傳感器技術(shù)用于文物保護(hù),將迎來(lái)新的機(jī)遇和挑戰(zhàn)

    近日,故宮博物院院長(zhǎng)提出,在紫禁建成600周年之際,故宮博物院將陸續(xù)推出許多精品文物,其中,就包括著名的古畫(huà)——清明上河圖等。文物重現(xiàn)人間可以讓人們更好的感受到傳統(tǒng)文化的博大精深,但是,在著作展出之際,文物的保護(hù)工作也要格外注意。
    發(fā)表于 03-17 09:22 ?1865次閱讀

    感受到了零售的改革嗎

    新零售的提出,讓線(xiàn)上線(xiàn)下聯(lián)動(dòng)的模式被廣泛關(guān)注,
    發(fā)表于 06-01 09:05 ?882次閱讀

    Apple推出VR手套專(zhuān)利 可以使用戶(hù)感受到VR或AR顯示的對(duì)象

    Apple推出了VR手套專(zhuān)利,該專(zhuān)利可以使用戶(hù)感受到虛擬現(xiàn)實(shí)或增強(qiáng)現(xiàn)實(shí)顯示的對(duì)象。新專(zhuān)利表明,Apple將繼續(xù)為尖端的VR和AR投入大量的研發(fā)工作。
    發(fā)表于 11-21 15:40 ?899次閱讀

    Apple VR手套專(zhuān)利技術(shù)可以讓您感受到虛擬紋理

    Apple推出了VR手套專(zhuān)利,該專(zhuān)利可以使用戶(hù)感受到虛擬現(xiàn)實(shí)或增強(qiáng)現(xiàn)實(shí)顯示的對(duì)象。新專(zhuān)利表明,Apple將繼續(xù)為尖端的VR和AR投入大量的研發(fā)工作。
    發(fā)表于 11-22 09:55 ?901次閱讀

    Apple VR手套專(zhuān)利可讓我們感受到虛擬紋理

    Apple推出了VR手套專(zhuān)利,該專(zhuān)利可以使用戶(hù)感受到虛擬現(xiàn)實(shí)或增強(qiáng)現(xiàn)實(shí)顯示的對(duì)象。
    發(fā)表于 03-11 10:04 ?737次閱讀

    電路已經(jīng)感受到納米技術(shù)的影響

    電路已經(jīng)感受到納米技術(shù)的影響
    的頭像 發(fā)表于 01-04 11:17 ?1034次閱讀

    感受到空氣質(zhì)量變化的開(kāi)源設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《能感受到空氣質(zhì)量變化的開(kāi)源設(shè)計(jì).zip》資料免費(fèi)下載
    發(fā)表于 06-16 15:21 ?0次下載
    能<b class='flag-5'>感受到</b>空氣質(zhì)量變化的開(kāi)源設(shè)計(jì)