精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

被印證的感覺,真爽!

網絡 無線技術
有位讀者在工作中抓到跟這個面試題場景類似的抓包圖,我看了下,現象跟我之前啃 TCP 源碼得出的結論是符合的。這種被印證的感覺真爽!

大家好,我是小林。

之前我在公眾號解答了一位讀者面試騰訊的面試題,問題如下:

針對這個問題,我也沒辦法用實驗來驗證我的結論,所以當時結論是基于啃 TCP 源碼得出來的。

但是,就在昨天!

有位讀者在工作中抓到跟這個面試題場景類似的抓包圖,我看了下,現象跟我之前啃 TCP 源碼得出的結論是符合的。

這種被印證的感覺真爽!

我覺得這個案例還是挺有意思的,因為很好的說明是 TCP 傳輸協議是按序接收的。

所以,先來回顧騰訊一面的這個問題,再來看看跟這個問題相似的抓包圖。

回顧問題

這道鵝廠的網絡題可能是提問的讀者表述有問題。

因為如果 FIN 報文比數據包先抵達客戶端,此時 FIN 報文其實是一個亂序的報文,此時客戶端的 TCP 連接并不會從 FIN_WAIT_2 狀態轉換到 TIME_WAIT 狀態。

因此,我們要關注到點是看「在 FIN_WAIT_2 狀態下,是如何處理收到的亂序的 FIN 報文,然后 TCP 連接又是什么時候才進入到 TIME_WAIT 狀態?」。

我這里先直接說結論:

在 FIN_WAIT_2 狀態時,如果收到亂序的 FIN 報文,那么就被會加入到內核中的「亂序隊列」,并不會進入到 TIME_WAIT 狀態。

等再次收到前面被網絡延遲的數據包時,會判斷亂序隊列有沒有數據,然后會檢測亂序隊列中是否有可用的數據,如果能在亂序隊列中找到與當前報文的序列號保持的順序的報文,就會看該報文是否有 FIN 標志,如果發現有 FIN 標志,這時才會進入 TIME_WAIT 狀態。

我也畫了一張圖,大家可以結合著圖來理解。

神一般的抓包圖

下圖是昨天一位讀者發給我的抓包圖,圖中的異常情況,跟前面這個問題的現象有點類似:

你可能會有疑問為什么 TCP 握手時,雙方的 seq 都是 0 開始的?這個是抓包圖做了優化,顯示的是相對值,而不是真實值,顯示相對值方便分析。

為了方便文字描述,我針對異常部分的報文進行編號如下:

圖中端口號為 11710 的為客戶端,端口號為 8080 的為服務端。另外,編號 4 是客戶端發送的 http 請求,抓包圖沒有顯示 TCP 信息,這里文字補充下:編號 4 數據報文 seq = 1,ack = 1,len = 27。

編號 6 是 FIN 報文,也就是服務端向客戶端發送的 FIN 報文(第一次揮手),但是是一個亂序的 FIN 報文,因為從編號 4 報文中的 ack = 1 知道,客戶端期望下一次收到的報文的序列號為 1,而當前收到的 FIN 報文的 seq = 177,這并不是客戶端下一次期望收到的報文,所以是亂序的。

客戶端收到亂序 FIN 報文后,并不會從 establish 轉為 close_wait 狀態,而是把這個亂序的 FIN 報文放到內核中的亂序隊列。因為如果這時候就進入了 close_wait 狀態,就會馬上發送 FIN 報文了(第三次揮手),而不會有客戶端后面發送的編號 8 和 9 報文的事情了。

編號 8 是應答報文,是客戶端對編號 6 亂序 FIN 報文的應答報文,可以看到這個應答報文中 seq = 28,ack=1,因為并不是我期望的下一個報文,所以應答報文中 ack 還是為 1。

編號 7 是數據報文,也就是服務端向客戶端發送的數據報文,該報文 seq = 1,ack=28,len=176,因為 seq 為 1,所以是客戶端期望收到的報文。客戶端收到該報文后,就回了編號 9 應答報文,此應答報文 seq = 28,ack = 178,其中 ack = 178 是告訴服務端:“你發的 seq = 178 之前(不包括seq=178)的報文,我都收到了,我下次期望收到的報文的 seq 為 178”。

客戶端收到編號 7 數據報文時還會做一件事情,會檢測「亂序隊列」中是否有可用的數據,如果能在亂序隊列中找到與當前收到報文的序列號「保持的順序」的報文,就把處于亂序隊列的報文移到可以被正常處理的數據隊列。比如,這次的案例中,編號 7 報文 seq = 1,len=176 的數據范圍是 1~176,而亂序隊列中的 FIN 報文的 seq = 177,這兩個報文的 seq 正好是保持順序的,所以會把 FIN 報文從亂序隊列中拿出來一起處理,然后發現有 FIN 標志,于是就會轉換狀態。

所以,客戶端在應答完編號 7 數據報文后,就立馬發送 FIN 報文了(第三次揮手),接著服務端應答了該報文,至此四次揮手結束。

這個抓包圖跟前面這個騰訊的面試題有一點差異,差異在于:

  • 騰訊的面試題是在 FIN_WAIT_2 狀態下收到亂序的 FIN 報文(第三次揮手);
  • 抓包圖是在 establish 狀態收到了亂序的 FIN 報文(第一次揮手);

上面這兩種 TCP 狀態,收到亂序的 FIN 報文,并不會立即轉換狀態,只會被內核放到一個亂序隊列里。等收到一個序列號符合「接收方」期望收到的序列號的數據包時,會檢測「亂序隊列」中是否有可用的數據,如果能在亂序隊列中找到與當前收到報文的序列號「保持的順序」的報文,就會看該報文是否有 FIN 標志,如果發現有 FIN 標志,就會轉換狀態。

所以,從這里可以看到, TCP 傳輸協議是按序接收,如果收到一個亂序的報文時,并且在接收窗口范圍內(序列號超過接收窗口范圍外的報文就會被丟棄),就會緩存在內核中的亂序隊列,不做其他處理。等收到能與亂序隊列中報文的序列號保持順序的報文,才會一起被處理。

TCP 層必須保證收到的字節數據是完整且有序的,所以如果序列號較低的 TCP 報文在網絡傳輸中丟失了,即使序列號較高的 TCP 報文已經被接收了,應用層也無法從內核中讀取到這部分數據。

舉個例子,如下圖:

圖中發送方發送了很多個 packet,每個 packet 都有自己的序號,你可以認為是 TCP 的序列號,其中 packet 3 在網絡中丟失了,即使 packet 4-6 被接收方收到后,由于內核中的 TCP 數據不是連續的,于是接收方的應用層就無法從內核中讀取到,只有等到 packet 3 重傳后,接收方的應用層才可以從內核中讀取到數據。

責任編輯:趙寧寧 來源: 小林coding
相關推薦

2020-05-06 11:00:11

git命令GitHub

2021-06-01 09:29:43

ArthasJVM內存

2023-07-04 07:08:27

內存游戲容量

2020-02-26 17:32:57

WindowsWindows 10操作系統

2009-05-31 08:31:06

PalmWebOS移動OS

2009-05-12 16:11:00

求職面試招聘

2022-10-26 13:00:00

2022-08-01 10:01:11

JavaScript語言代碼庫

2013-04-15 09:52:13

程序員

2021-08-07 07:48:28

JDKjava JDK17

2023-03-21 08:10:18

2010-01-04 14:37:46

Linux Ubunt

2023-03-29 09:00:00

2013-12-12 16:28:04

Lua腳本語言

2023-02-22 17:56:55

MySQL數據存儲

2020-11-23 11:30:00

IDEA技巧開發

2024-09-09 00:00:06

Windows工具箱網站

2021-07-19 09:42:45

Spring Boot@ValueJava

2021-02-02 13:31:34

新基建新華三路由器

2011-04-25 10:26:54

打印機
點贊
收藏

51CTO技術棧公眾號

欧美成人免费全部观看天天性色| 欧美色精品天天在线观看视频| 国产精品一区免费观看| 三级黄色在线视频| 不卡av一区二区| 在线成人高清不卡| 欧美日韩成人免费视频| 国产精品一二三区视频| 国产乱理伦片在线观看夜一区| 97免费在线视频| 一区二区三区在线播放视频| av在线亚洲色图| 91九色02白丝porn| 999一区二区三区| 成人高清网站| 成人的网站免费观看| 国产精品第七影院| 麻豆91精品91久久久| 国内精品久久久久久久久电影网| 日韩一区二区影院| 一级特黄性色生活片| 丰乳肥臀在线| 亚洲丝袜精品丝袜在线| 欧美日韩喷水| 狠狠躁夜夜躁av无码中文幕| 免费一级欧美片在线观看| 欧美精品国产精品日韩精品| 波多野结衣a v在线| 国产suv精品一区| 欧美浪妇xxxx高跟鞋交| 丰满少妇在线观看| 欧美aaaaa性bbbbb小妇| 亚洲午夜免费电影| 日本xxx免费| 婷婷成人激情| 日本一区二区三区四区| 久久久久se| 国产综合视频在线| 国产精品一二二区| 91久热免费在线视频| 中文字幕777| 首页综合国产亚洲丝袜| 全球成人中文在线| 欧美福利视频一区二区| 影院欧美亚洲| 欧美精品成人在线| 九九九国产视频| 国产精品成人一区二区网站软件| 日韩有码在线电影| 日韩欧美视频免费观看| 欧美日韩老妇| 最近日韩中文字幕中文| 日本女人性生活视频| 日韩精品首页| 日韩有码片在线观看| 精品无码一区二区三区蜜臀| 日本不卡高清| 日韩在线视频观看| 三级全黄做爰视频| 亚洲国产成人精品女人| 久久精品国产久精国产一老狼| 国产探花视频在线| 亚洲国产老妈| 欧美激情xxxx| 国产又黄又爽又色| 久久一区二区三区超碰国产精品| 热门国产精品亚洲第一区在线| 中文字幕国产在线观看| 日日夜夜免费精品| 国产精品丝袜白浆摸在线| 在线播放亚洲精品| 国产一区二区三区av电影| 91九色蝌蚪国产| www香蕉视频| 国产美女在线观看一区| 成人精品视频99在线观看免费| 99久久免费国产精精品| 成人a区在线观看| 任我爽在线视频精品一| 午夜伦理在线| 欧美国产精品一区二区三区| 中文字幕一区二区三区5566| heyzo在线播放| 欧美性猛交xxxx富婆| 尤物国产在线观看| 第四色在线一区二区| 亚洲午夜未删减在线观看 | 亚洲人午夜射精精品日韩| 久久亚洲一区二区三区四区| 这里只有精品66| gogo久久| 欧美日韩国产片| 国产chinese中国hdxxxx| 国产a久久精品一区二区三区 | 成人日韩在线观看| 欧美一区在线视频| 国产高清自拍视频| 天天综合精品| 日韩免费av在线| 国产成人精品免费看视频| 久久女同性恋中文字幕| 精品嫩模一区二区三区| 97久久香蕉国产线看观看| 欧美一级一级性生活免费录像| 黄色正能量网站| 欧美精品97| 国产精品夫妻激情| 日韩中文字幕影院| 亚洲视频你懂的| 国产精品人人妻人人爽人人牛| 美国十次综合久久| 一区二区三区日韩在线| 国产精品视频免费播放| 国产精品一区二区果冻传媒| 日韩欧美手机在线| 理论片午夜视频在线观看| 欧美一三区三区四区免费在线看| 亚洲日本精品视频| 99精品福利视频| 97se国产在线视频| 快射av在线播放一区| 一本久久a久久免费精品不卡| 97免费公开视频| 欧美成人激情| 国产精品丝袜一区二区三区| 青青草超碰在线| 亚洲电影激情视频网站| 91欧美一区二区三区| 欧美国产一级| 国产精品久久久久久久久借妻| 亚洲av成人无码网天堂| 亚洲一二三区不卡| 久久无码人妻一区二区三区| 四虎国产精品免费观看| 国产精品无码专区在线观看| 狠狠狠综合7777久夜色撩人 | 亚洲一二区视频| 欧美高清在线精品一区| 欧美激情国产精品日韩| 小说区图片区色综合区| 91精品国产免费久久久久久| 可以免费看毛片的网站| 亚洲h精品动漫在线观看| 91亚洲一线产区二线产区 | 国产精品嫩草99a| 好男人www社区| 久久国产精品亚洲人一区二区三区 | 欧美啪啪小视频| 99久久婷婷国产精品综合| 青草青青在线视频| 日本一区精品| 91香蕉一区二区三区在线观看| 天堂久久久久va久久久久| 玛丽玛丽电影原版免费观看1977| 男人靠女人免费视频网站| 成人动漫视频| 久久久久这里只有精品| 四季av日韩精品一区| 精品福利樱桃av导航| 野外性满足hd| 亚洲最大的成人网| 99久久精品国产一区色| 亚洲卡通动漫在线| 国产男女无遮挡猛进猛出| 你懂的一区二区| 成人精品一二区| av第一福利在线导航| 日韩av中文字幕在线播放| 久久精品国产成人av| 国产亚洲综合av| 亚洲综合欧美激情| 欧美一区二区三区另类| 国内精品久久国产| 欧美成人精品三级网站| 色黄久久久久久| 亚洲大尺度视频| 精品久久久久久中文字幕| 久久午夜精品视频| 国产成人精品亚洲日本在线桃色| 91九色丨porny丨国产jk| 中国av一区| 亚洲专区中文字幕| 婷婷电影在线观看| 精品国产欧美成人夜夜嗨| 乱色精品无码一区二区国产盗| 色综合天天综合| 国产真实乱在线更新| 91麻豆免费视频| 在线播放免费视频| 嫩草成人www欧美| 熟女视频一区二区三区| 尤物tv在线精品| 91精品天堂| 国产成人精品亚洲日本在线观看| 欧美裸身视频免费观看| 飘雪影院手机免费高清版在线观看| 欧美丰满美乳xxx高潮www| 色婷婷av国产精品| 自拍偷拍欧美激情| 美女洗澡无遮挡| 国产精品91一区二区| 少妇人妻互换不带套| 国产一区久久| 亚洲一区美女| 亚洲第一二三区| 99理论电影网| 国产一区高清| 日韩av大片免费看| 日本欧美电影在线观看| 中文字幕日本欧美| 色播色播色播色播色播在线| 欧美一级精品在线| 在线观看免费观看在线| 欧美日韩免费一区| 久草网在线观看| 综合在线观看色| 91精品国自产在线| 91社区在线播放| 俄罗斯黄色录像| 中文字幕巨乱亚洲| 日本五级黄色片| 999成人网| 欧洲精品久久| 日韩欧美国产大片| 国产精品二区在线| 欧美成人精品午夜一区二区| 国产精自产拍久久久久久蜜| 91精品论坛| 91地址最新发布| 女人让男人操自己视频在线观看| 欧美黑人视频一区| 在线观看三级视频| 俺也去精品视频在线观看| 亚洲天天影视| 自拍偷拍亚洲一区| 91青青在线视频| 一本色道久久88综合日韩精品| 水莓100国产免费av在线播放| 精品国产91洋老外米糕| 国内精品久久久久久久久久| 日韩一区二区三区三四区视频在线观看| 亚洲一区中文字幕在线| 欧美三级韩国三级日本一级| 中文字幕av第一页| 欧美性受极品xxxx喷水| 性高潮视频在线观看| 欧美三级视频在线| 91av久久久| 日韩欧美国产综合一区| www.97av.com| 精品电影一区二区| 天堂在线资源网| 日韩精品极品毛片系列视频| 日韩精品视频无播放器在线看| 日韩精品视频观看| 国产精品一级伦理| 日韩中文字在线| 午夜伦理大片视频在线观看| 欧美高清电影在线看| 日本三级一区| 国产精品88a∨| 97色婷婷成人综合在线观看| 91成人免费看| 老司机精品在线| 欧洲精品亚洲精品| 91精品国产成人观看| 欧美高清中文字幕| 久久动漫亚洲| 爱爱爱爱免费视频| 国产精品伊人色| 美女又爽又黄视频毛茸茸| 国产欧美日韩三级| 午夜精品福利在线视频| 五月天激情综合| 中国a一片一级一片| 日韩欧美一级二级| 色播色播色播色播色播在线 | 国产精品vip| 日韩免费视频播放| 日本不卡免费在线视频| 亚洲精品中文字幕乱码无线| fc2成人免费人成在线观看播放 | 国产精品久久久久久av| 欧美经典一区| 欧美日韩免费高清| 你懂的国产精品| 国产视频一区二区三区在线播放 | 国产精品五区| 第一区免费在线观看| 91色乱码一区二区三区| 国产3级在线观看| 五月激情综合色| 国产精品天天操| 亚洲人午夜精品免费| av中文字幕在线播放| 日韩av手机在线| 一区二区三区视频播放| 色综合电影网| 一本一本久久| 亚洲国产综合av| 中国色在线观看另类| 日本三级午夜理伦三级三| 欧美色综合久久| 亚洲欧美丝袜中文综合| 欧美另类69精品久久久久9999| 亚洲成人短视频| 国产一区二区在线网站| 一本一本久久a久久综合精品| 国产成人av影视| proumb性欧美在线观看| 日韩女优一区二区| 欧美日韩情趣电影| 国产视频福利在线| 2018日韩中文字幕| ady日本映画久久精品一区二区| 一区二区视频在线观看| 日韩国产高清在线| 蜜臀av一区二区三区有限公司| 一区二区三区精品在线观看| 中文字幕在线观看视频一区| 国产视频精品xxxx| 国产伦理精品| 高清视频一区| 欧美日韩免费观看一区=区三区| 老司机午夜性大片| 亚洲国产精品t66y| 波多野结衣不卡| 亚洲日本aⅴ片在线观看香蕉| av漫画网站在线观看| 97操在线视频| 欧美日韩第一区| 中文字幕乱妇无码av在线| 亚洲欧美日韩中文播放| 国产又粗又猛视频| 日韩亚洲精品视频| 成人av在线播放| 国产又黄又爽免费视频| 久久99精品久久久| 久草手机视频在线观看| 欧美日韩不卡一区| 男女啪啪在线观看| 91免费看片在线| 欧美在线国产| 精品国产午夜福利在线观看| 亚洲伦理在线精品| 精品国产乱码久久久久久蜜臀网站| 久久九九亚洲综合| 欧美经典一区| 欧美日韩福利在线| 99天天综合性| 精产国品一区二区| 中文字幕不卡av| 99久久99九九99九九九| 97av中文字幕| 成人午夜在线播放| 黄色在线观看国产| 永久免费看mv网站入口亚洲| 最新亚洲国产| 国产在线视频在线| 91麻豆成人久久精品二区三区| 日本高清不卡码| 日韩综合中文字幕| 综合成人在线| 欧美黄色免费影院| 国产精品天干天干在观线| 国产精品免费无遮挡| 欧美黑人巨大精品一区二区| 亚洲男人都懂第一日本| 五月婷婷之婷婷| 一区二区三区日韩精品视频| 污视频网站免费观看| 日韩免费不卡av| 影视亚洲一区二区三区| 欧美日韩一区二区三区四区五区六区| 五月综合激情婷婷六月色窝| 国产一级网站视频在线| 亚洲在线免费看| 久久深夜福利| 日韩影院一区二区| 日韩高清不卡av| 天天综合在线观看| 奇米精品一区二区三区| 国产精品欧美精品| 日韩在线观看视频一区| 国产欧美日韩中文字幕| 亚洲二区视频| 影音先锋男人资源在线观看| 亚洲国产精品久久久| 视频精品导航| 久久久性生活视频| 国产精品福利电影一区二区三区四区| 成人av无码一区二区三区| 日本久久久久久| 欧美精选一区| 国产3级在线观看| 亚洲女人天堂色在线7777| 日本高清精品| 手机看片福利日韩| 五月激情六月综合| 日韩激情美女|