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

字節(jié)一面:TCP 三次握手,問的好細(xì)!

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
TCP 三次握手中,客戶端收到的第二次握手中 ack 確認(rèn)號(hào)不是自己期望的,會(huì)發(fā)生什么?是直接丟棄 or 回 RST 報(bào)文?

大家好,我是小林。

有位讀者在面試字節(jié)時(shí),被問到這么個(gè)問題:

圖片

概括起來,是這兩個(gè)問題:

TCP 三次握手中,客戶端收到的第二次握手中 ack 確認(rèn)號(hào)不是自己期望的,會(huì)發(fā)生什么?是直接丟棄 or 回 RST 報(bào)文?

什么情況下會(huì)收到不正確的 ack(第二次握手中的 ack) 呢?

問題解答

不賣關(guān)子,直接說這個(gè)問題,是回 RST 報(bào)文。過程如下圖:

圖片

三次握手避免歷史連接

當(dāng)客戶端連續(xù)發(fā)送多次建立連接的 SYN 報(bào)文,然后在網(wǎng)絡(luò)擁堵的情況,就會(huì)發(fā)生客戶端收到不正確的 ack 的情況。具體過程如下:

  • 客戶端先發(fā)送了 SYN(seq = 90) 報(bào)文,但是被網(wǎng)絡(luò)阻塞了,服務(wù)端并沒有收到,接著客戶端又重新發(fā)送了 SYN(seq = 100) 報(bào)文,注意不是重傳 SYN,重傳的 SYN 的序列號(hào)是一樣的。
  • 「舊 SYN 報(bào)文」比「最新的 SYN 」 報(bào)文早到達(dá)了服務(wù)端,那么此時(shí)服務(wù)端就會(huì)回一個(gè) SYN + ACK 報(bào)文給客戶端,此報(bào)文的確認(rèn)號(hào)是 91(90+1)。
  • 客戶端收到后,發(fā)行自己期望收到的確認(rèn)號(hào)應(yīng)該是 100+1,而不是 90 + 1,于是就會(huì)回 RST 報(bào)文。
  • 服務(wù)端收到 RST 報(bào)文后,就會(huì)中止連接。
  • 后續(xù)最新的 SYN 抵達(dá)了服務(wù)端后,客戶端與服務(wù)端就可以正常的完成三次握手了。

上述中的「舊 SYN 報(bào)文」稱為歷史連接,TCP 使用三次握手建立連接的最主要原因就是防止「歷史連接」初始化了連接。

我們也可以從 RFC 793 知道 TCP 連接使用三次握手的首要原因:

The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion.

簡單來說,三次握手的首要原因是為了防止舊的重復(fù)連接初始化造成混亂。RFC 給出的三次握手防止歷史連接的案例圖如下:

圖片

RFC 793

如果是兩次握手連接,就無法阻止歷史連接,那為什么 TCP 兩次握手為什么無法阻止歷史連接呢?

我先直接說結(jié)論,主要是因?yàn)樵趦纱挝帐值那闆r下,「被動(dòng)發(fā)起方」沒有中間狀態(tài)給「主動(dòng)發(fā)起方」來阻止歷史連接,導(dǎo)致「被動(dòng)發(fā)起方」可能建立一個(gè)歷史連接,造成資源浪費(fèi)。

你想想,兩次握手的情況下,「被動(dòng)發(fā)起方」在收到 SYN 報(bào)文后,就進(jìn)入 ESTABLISHED 狀態(tài),意味著這時(shí)可以給對方發(fā)送數(shù)據(jù)給,但是「主動(dòng)發(fā)」起方此時(shí)還沒有進(jìn)入 ESTABLISHED 狀態(tài),假設(shè)這次是歷史連接,主動(dòng)發(fā)起方判斷到此次連接為歷史連接,那么就會(huì)回 RST 報(bào)文來斷開連接,而「被動(dòng)發(fā)起方」在第一次握手的時(shí)候就進(jìn)入 ESTABLISHED 狀態(tài),所以它可以發(fā)送數(shù)據(jù)的,但是它并不知道這個(gè)是歷史連接,它只有在收到 RST 報(bào)文后,才會(huì)斷開連接。

圖片

兩次握手無法阻止歷史連接

可以看到,上面這種場景下,「被動(dòng)發(fā)起方」在向「主動(dòng)發(fā)起方」發(fā)送數(shù)據(jù)前,并沒有阻止掉歷史連接,導(dǎo)致「被動(dòng)發(fā)起方」建立了一個(gè)歷史連接,又白白發(fā)送了數(shù)據(jù),妥妥地浪費(fèi)了「被動(dòng)發(fā)起方」的資源。

因此,要解決這種現(xiàn)象,最好就是在「被動(dòng)發(fā)起方」發(fā)送數(shù)據(jù)前,也就是建立連接之前,要阻止掉歷史連接,這樣就不會(huì)造成資源浪費(fèi),而要實(shí)現(xiàn)這個(gè)功能,就需要三次握手。

源碼分析

我說回 RST 就回 RST 嗎?當(dāng)然不是了,肯定得用源碼證明我說的這個(gè)結(jié)論。

聽到要源碼分析,可能有的同學(xué)就慫了。

其實(shí)要分析我們今天這個(gè)問題,只要懂 if else 就行了,我也會(huì)用中文來表述代碼的邏輯,所以單純看我的文字也是可以的。

這次我們重點(diǎn)分析的是,在 SYN_SENT 狀態(tài)下,收到不正確的確認(rèn)號(hào)的 syn+ack 報(bào)文是如何處理的。

處于 SYN_SENT 狀態(tài)下的客戶端,在收到服務(wù)端的  syn+ack 報(bào)文后,最終會(huì)調(diào)用  tcp_rcv_state_process,在這里會(huì)根據(jù) TCP 狀態(tài)做對應(yīng)的處理,這里我們只關(guān)注 SYN_SENT 狀態(tài)。

// net/ipv4/tcp_ipv4.c
int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb)
{
...

int queued = 0;

...

switch (sk->sk_state) {
case TCP_CLOSE:
...
case TCP_LISTEN:
...
case TCP_SYN_SENT:
....
queued = tcp_rcv_synsent_state_process(sk, skb, th);
if (queued >= 0)
return queued;
...
}

可以看到,接下來,會(huì)繼續(xù)調(diào)用 tcp_rcv_synsent_state_process 函數(shù)。

static int tcp_rcv_synsent_state_process(struct sock *sk, struct sk_buff *skb,
const struct tcphdr *th)
{
....

if (th->ack) {
/* rfc793:
* "If the state is SYN-SENT then
* first check the ACK bit
* If the ACK bit is set
* If SEG.ACK =< ISS, or SEG.ACK > SND.NXT, send
* a reset (unless the RST bit is set, if so drop
* the segment and return)"
*/
// ack 的確認(rèn)號(hào)不是預(yù)期的
if (!after(TCP_SKB_CB(skb)->ack_seq, tp->snd_una) ||
after(TCP_SKB_CB(skb)->ack_seq, tp->snd_nxt))
//回 RST 報(bào)文
goto reset_and_undo;

...
}

從上面的函數(shù),就可以得知了,客戶端在 SYN_SENT 狀態(tài)下,收到不正確的確認(rèn)號(hào)的 syn+ack 報(bào)文會(huì)回 RST 報(bào)文。

小結(jié)

TCP 三次握手中,客戶端收到的第二次握手中 ack 確認(rèn)號(hào)不是自己期望的,會(huì)發(fā)生什么?是直接丟棄 or 回 RST 報(bào)文?

回 RST 報(bào)文。

什么情況下會(huì)收到不正確的 ack(第二次握手中的 ack) 呢?

當(dāng)客戶端發(fā)起多次 SYN 報(bào)文,然后網(wǎng)絡(luò)擁堵的情況下,「舊的 SYN 報(bào)文」比「新的 SYN 報(bào)文」早抵達(dá)服務(wù)端,此時(shí)服務(wù)端就會(huì)按照收到的「舊的 SYN 報(bào)文」回復(fù) syn+ack 報(bào)文,而此報(bào)文的確認(rèn)號(hào)并不是客戶端期望收到的,于是客戶端就會(huì)回 RST 報(bào)文。

責(zé)任編輯:武曉燕 來源: 小林coding
相關(guān)推薦

2024-08-27 09:05:45

2023-09-07 16:46:54

TCP數(shù)據(jù)傳遞

2020-12-08 06:34:16

TCP握手SYN 報(bào)文

2015-10-13 09:42:52

TCP網(wǎng)絡(luò)協(xié)議

2024-01-12 08:23:11

TCPACK服務(wù)器

2023-10-24 15:22:09

TCPUDP

2024-10-09 20:54:16

2022-10-10 07:34:36

TCP三次握手區(qū)塊鏈

2022-07-07 09:00:17

TCP 連接HTTP 協(xié)議

2021-01-29 06:11:08

TCP通信三次握手

2021-05-18 12:27:40

TCP控制協(xié)議

2019-06-12 11:26:37

TCP三次握手四次揮手

2022-08-28 20:35:52

三次握手四次揮手TCP

2022-07-25 07:07:35

TCP客戶端服務(wù)器

2021-03-08 18:08:08

TCP Connect 協(xié)議

2018-10-15 08:06:33

TCP握手原理

2018-07-05 14:25:01

TCP握手原理

2023-03-06 15:43:56

2020-08-27 07:41:28

TCP協(xié)議數(shù)據(jù)

2023-09-02 21:57:52

網(wǎng)絡(luò)TCP協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲一卡二卡在线观看| 呻吟揉丰满对白91乃国产区| 久热在线观看视频| 国产欧美日韩综合精品一区二区| 91久久夜色精品国产网站| 成年人av电影| 加勒比久久综合| 日韩三级视频中文字幕| 欧美在线观看成人| 欧美成年黄网站色视频| 成人va在线观看| 国产精品久久久久秋霞鲁丝| 久久久精品视频免费观看| 亚洲自拍电影| 精品国产精品一区二区夜夜嗨| 成人一级片网站| 污视频在线看网站| 国产视频在线观看一区二区三区| 亚洲最大的网站| 日本一本在线观看| 在线精品一区| 色妞色视频一区二区三区四区| 青青草原播放器| 欧美日韩免费看片| 亚洲地区一二三色| 国产av不卡一区二区| 黄色毛片在线看| 成人av午夜影院| 91综合免费在线| 中文字幕有码无码人妻av蜜桃| 18成人免费观看视频| 久久精品中文字幕一区| 亚洲а∨天堂久久精品2021| 国产一区福利| 欧美va天堂va视频va在线| 亚洲精品手机在线观看| 国产私拍福利精品视频二区| 精品国产乱码久久久久久天美| 欧美做受777cos| 天堂地址在线www| 久久久www免费人成精品| 精品无码久久久久久久动漫| 亚洲成人第一区| 国产一区二区精品久久| 成人h视频在线| 亚洲天堂视频在线| 日本欧美一区二区在线观看| 欧洲午夜精品久久久| 青青草免费观看视频| 亚洲人成久久| 高清亚洲成在人网站天堂| 欧美人与禽zozzo禽性配| 亚洲国产精品久久久久蝴蝶传媒| 日韩最新av在线| 成人三级视频在线观看| 欧美激情黄色片| 日韩视频亚洲视频| 免费在线观看黄色小视频| 久久综合av| 日韩中文在线观看| 欧美丰满熟妇bbbbbb| 久久久久免费av| 欧美大胆在线视频| 九九九免费视频| 亚洲国产网站| 欧美性受xxxx黑人猛交| 天天爽夜夜爽人人爽| 免费看精品久久片| 91欧美精品午夜性色福利在线| 国产精品日韩无码| 国产成人精品一区二区三区四区 | 这里只有精品久久| 亚洲黄色网址大全| 亚洲欧洲美洲一区二区三区| 欧美乱人伦中文字幕在线| 久久免费视频精品| 国产一区二区三区的电影 | 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 综合久久2023| 欧美性色黄大片手机版| 亚洲欧美日韩三级| 亚洲一区二区三区在线免费| 亚洲国产精品va在线看黑人| 成人免费网站黄| 久久中文视频| 欧美交受高潮1| 亚洲婷婷综合网| 精品在线你懂的| 国产一区二区免费在线观看| 国产在线电影| 一区二区在线观看视频| 亚洲熟妇av一区二区三区漫画| 成人看片在线观看| 欧美一级免费观看| 高潮毛片无遮挡| 亚洲精品一二三区区别| 97av视频在线| 国产又粗又猛又黄又爽| 北条麻妃国产九九精品视频| 亚洲成人网上| 狠狠躁少妇一区二区三区| 欧美丝袜自拍制服另类| 国产大尺度视频| 日韩一区电影| 26uuu久久噜噜噜噜| aaa一区二区| 国产亚洲欧洲一区高清在线观看| 国产一级大片免费看| 日韩av超清在线观看| 欧美成人乱码一区二区三区| 久操视频在线观看免费| 亚洲视频一区| 成人中心免费视频| 丁香婷婷在线| 狠狠躁夜夜躁人人躁婷婷91| 四川一级毛毛片| 日韩精品久久| 日韩美女视频免费看| 好吊色在线观看| 1024成人网色www| 大肉大捧一进一出好爽动态图| 亚洲不卡视频| 俺去啦;欧美日韩| 999视频在线| 91免费视频观看| 超碰成人免费在线| 深夜福利一区| 久久视频在线免费观看| 免费黄色小视频在线观看| 99视频精品在线| 91视频 - 88av| 亚洲高清国产拍精品26u| 国产亚洲a∨片在线观看| 在线天堂中文字幕| www.亚洲人| 成年人网站国产| 一区二区三区四区精品视频| 久久综合九色九九| 国产又黄又大又爽| **欧美大码日韩| 天天干天天操天天做| 日韩精品久久| 成人a在线视频| 成人日韩欧美| 欧美一级日韩一级| 欧美精品入口蜜桃| 国产传媒一区在线| 免费看欧美黑人毛片| 亚洲视频一起| 欧美精品福利视频| 人妻丰满熟妇av无码区hd| 一区二区三区日韩在线观看| 在线观看视频你懂得| 一本精品一区二区三区| 91热精品视频| 国产在线xxx| 亚洲精品成人久久电影| 在线观看免费国产视频| 91香蕉视频在线| 男人舔女人下面高潮视频| 奇米狠狠一区二区三区| 国产精品美女www爽爽爽视频| a天堂在线资源| 欧美精品乱码久久久久久| 中文字幕在线有码| 成人三级在线视频| 欧美在线观看成人| 色综合久久一区二区三区| 91夜夜揉人人捏人人添红杏| 日韩经典av| 精品亚洲aⅴ在线观看| 波多野结衣一二区| 中文字幕一区二区日韩精品绯色| 亚洲欧美天堂在线| 亚洲无吗在线| 欧美三日本三级少妇三99| yy6080久久伦理一区二区| 久久精品国产2020观看福利| www.国产麻豆| 一本久久精品一区二区| 9.1片黄在线观看| 国产精品一区一区三区| 日本韩国欧美在线观看| 欧美呦呦网站| 国产成人看片| 日韩一区二区三区免费视频| 美日韩在线视频| 免费在线黄色电影| 欧美一区二区视频在线观看2022| 国产污视频在线看| 欧美国产国产综合| 亚洲麻豆一区二区三区| 蜜臀a∨国产成人精品| 成人av在线播放观看| 亚洲区小说区| 亚洲曰本av电影| 天天免费亚洲黑人免费| 久久中文久久字幕| 狠狠v欧美ⅴ日韩v亚洲v大胸| 337p亚洲精品色噜噜噜| 亚洲欧美综合另类| 一区二区三区在线免费观看| 精品成人av一区二区三区| 国产高清亚洲一区| 精品999在线| 国产欧美另类| 免费极品av一视觉盛宴| 欧美日韩国产一区二区三区不卡| 超碰97在线资源| 色婷婷成人网| 日本成人激情视频| 黄色的视频在线观看| 色偷偷av一区二区三区| 男同在线观看| 亚洲国产精品悠悠久久琪琪| 国产视频在线观看免费 | 国产精品久久久久久久久久久久久久久久久久 | 欧美日韩国产精品一区| www.av视频| 中文字幕一区日韩精品欧美| 国产ts在线播放| 99re这里只有精品视频首页| 久久国产免费视频| 久久精品国产精品亚洲综合| 毛片av免费在线观看| 亚洲国产综合在线看不卡| 欧美一级黄色录像片| 日韩中文在线电影| 色之综合天天综合色天天棕色| 日韩在线你懂的| 国产日韩欧美一区二区| 18国产精品| 91久久国产综合久久蜜月精品| 成人深夜福利| 国产精品久久色| 在线国产成人影院| 青青草原一区二区| xxxxx性欧美特大| 亚州av一区二区| 麻豆mv在线观看| 久久久久在线观看| 丁香花在线高清完整版视频| 久久99视频精品| 男男gaygays亚洲| 欧美麻豆久久久久久中文| av网站大全在线| 毛片精品免费在线观看| 性直播体位视频在线观看| 欧美巨乳美女视频| 青青草视频在线免费直播| 欧美激情精品久久久久久黑人 | 日韩在线不卡| 在线视频不卡一区二区| 99久久www免费| 99中文字幕在线观看| 欧美在线亚洲| 成人免费在线网| 亚洲欧美bt| 一级特黄性色生活片| 喷水一区二区三区| 亚洲18在线看污www麻豆 | 欧美性极品少妇| 91精品国产乱码久久| 欧美一区二区三区男人的天堂| 精品人妻一区二区三区蜜桃| 精品欧美乱码久久久久久1区2区| 人妻中文字幕一区| 亚洲女人天堂网| 永久免费在线观看视频| 裸体女人亚洲精品一区| 成人性生交大片免费看网站| 欧美在线www| 亚洲欧美专区| 国产区一区二区| 日韩精品久久| 97超碰人人澡| 日韩高清在线一区| 超碰中文字幕在线观看| 波多野结衣91| 国产在线免费av| 夜色激情一区二区| 精品黑人一区二区三区| 欧美一区二区三区免费大片| 天天干天天色天天| 日韩中文字幕在线看| 第四色日韩影片| 国产欧美精品日韩| 风间由美性色一区二区三区四区| 欧美日韩精品不卡| 综合在线视频| 日本xxxxxxx免费视频| 国产精品自拍三区| 亚洲精品乱码久久久久久久久久久久| 国产精品久久久久影视| 国产稀缺真实呦乱在线| 欧美性色综合网| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 欧美亚州一区二区三区| 欧美亚洲二区| 裸模一区二区三区免费| 一区二区蜜桃| 黑人粗进入欧美aaaaa| av中文字幕亚洲| 色老板免费视频| 色婷婷精品久久二区二区蜜臂av| 精品人妻一区二区三区换脸明星| 一区二区三区国产在线观看| av福利在线导航| 91在线精品播放| 欧美精选视频在线观看| www.99热这里只有精品| 国产在线精品一区二区夜色| 亚洲色成人网站www永久四虎| 亚洲福中文字幕伊人影院| 国产精品区在线观看| 一区二区三区在线播放欧美| 阿v视频在线| 国产激情一区二区三区在线观看| 日韩一区二区三区免费播放| 欧美视频第三页| 91麻豆蜜桃一区二区三区| 久久久久久久黄色| 在线综合亚洲欧美在线视频| yourporn在线观看视频| 欧美一级电影久久| 乱中年女人伦av一区二区| 男女爱爱视频网站| 精品一区二区三区视频| 日本综合在线观看| 欧美亚洲综合另类| 韩国三级av在线免费观看| 91精品国产九九九久久久亚洲| 91麻豆精品激情在线观看最新 | 久久99久久精品国产| 激情久久久久久| 欧美日韩一区二区区别是什么| 亚洲图片激情小说| 国产精品女同一区二区| 久久九九国产精品怡红院| 只有精品亚洲| 2025韩国大尺度电影| 精品一区免费av| 午夜爽爽爽男女免费观看| 欧美老女人第四色| 免费a级在线播放| 91视频8mav| 综合国产精品| 国产精品熟妇一区二区三区四区| 亚洲精品五月天| 国精产品一品二品国精品69xx| 久久久久久久久久久国产| 国产精品调教| 岳毛多又紧做起爽| 久久精品视频在线免费观看| 五月天婷婷导航| 中文字幕免费精品一区高清| 日韩成人在线电影| 日本xxxxx18| 顶级嫩模精品视频在线看| 懂色av.com| 亚洲欧美综合区自拍另类| 国产69精品久久| 天天做天天爱天天高潮| 国产成人精品一区二区三区四区| 久久久久久久久久综合| 日韩av在线免费| 日韩免费小视频| 裸体裸乳免费看| 成人免费福利片| 久久久精品视频网站| 中文字幕日韩高清| 欧美欧美在线| www一区二区www免费| 中文字幕第一区| 国产激情无套内精对白视频| 韩剧1988免费观看全集| 国产精品入口久久| 午夜啪啪小视频| 午夜视频在线观看一区二区三区| 加勒比一区二区三区在线| 川上优av一区二区线观看| 亚洲人妖在线| 山东少妇露脸刺激对白在线| 日韩写真欧美这视频| 美女福利一区二区三区| 一区精品在线| 99久久精品国产导航| 91精品国产乱码久久久久| 国外成人免费在线播放| jlzzjlzz亚洲女人| 无码人妻一区二区三区在线| 色噜噜狠狠成人中文综合| 在线中文字幕视频观看| 青青草成人网| 国产高清精品在线| 波多野结衣午夜| 午夜精品福利在线观看| 四虎国产精品免费观看| 韩国无码一区二区三区精品| 欧美日韩精品电影|