精品欧美一区二区三区在线观看 _久久久久国色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)

日本欧美一区| 凸凹人妻人人澡人人添| 日韩影院二区| 欧美一级午夜免费电影| www.射射射| 国产一级在线观看| 国内精品国产成人| 91超碰caoporn97人人| 亚洲精品国产熟女久久久| 曰本一区二区| 粉嫩av一区二区三区免费野| 水蜜桃亚洲一二三四在线| 国产ts人妖调教重口男| 亚洲一区中文| 九九热精品视频国产| 麻豆av免费观看| 久久精品免视看国产成人| 亚洲成人免费看| 亚洲人成影视在线观看| 国产夫妻自拍av| 日韩精品电影在线观看| 欧美第一页在线| 极品尤物一区二区| 人体久久天天| 精品久久久久久无| 色噜噜狠狠一区二区| 91破解版在线观看| 亚洲精品伦理在线| 亚洲欧美电影在线观看| 神马久久精品| 国产一区二区三区黄视频| 国产999视频| 国产成人精品片| 在线精品小视频| 在线日韩欧美视频| 免费中文字幕av| 色妞ww精品视频7777| 欧美日韩国产综合草草| 欧美牲交a欧美牲交aⅴ免费真| 自拍亚洲图区| 中文字幕亚洲在| 日本一区二区久久精品| 天堂在线中文字幕| 成人国产精品免费网站| 91久久精品国产91性色| 最近中文字幕免费观看| 久久天堂成人| 奇米成人av国产一区二区三区| 久久一级黄色片| 欧美先锋影音| 欧美精品在线看| 手机在线免费看毛片| 久久国产成人精品| 中文字幕不卡在线视频极品| 亚洲色成人网站www永久四虎| 在线一级成人| 亚洲欧美国产精品专区久久| 国产精品三级在线观看无码| 日韩啪啪网站| 亚洲毛片在线观看| 国产熟妇久久777777| 亚洲综合图色| 一区二区成人精品| 国内精品卡一卡二卡三| 日韩精品影视| www欧美日韩| 欧洲第一无人区观看| 欧美不卡在线| 午夜精品久久久久久久久久久久| 日韩欧美一区二区一幕| 99成人在线| 欧美在线性爱视频 | 精品国产一区二区三区| 在线观看国产精品日韩av| 制服 丝袜 综合 日韩 欧美| 日本欧美国产| 九九久久久久久久久激情| 欧美精品乱码视频一二专区| 国产亚洲综合精品| 国产精品久久久久久久久男| 国产绳艺sm调教室论坛| 成人国产电影网| 欧美一区二视频在线免费观看| 懂色一区二区三区| 亚洲欧洲av色图| 日韩精品一区二区免费| 亚洲天堂一区二区| 欧美一区二区三区日韩| 三级黄色片网站| 日本久久精品| 97欧美精品一区二区三区| 亚洲 欧美 日韩 在线| 国内欧美视频一区二区| 国产亚洲精品美女久久久m| 你懂的在线网址| 亚洲欧洲99久久| 国产精品久久中文字幕| 国产精品第一| 亚洲成年人在线| 91制片厂在线| 亚洲男人影院| 97久久夜色精品国产九色| 视频福利在线| 一区二区三区四区激情| 亚洲 中文字幕 日韩 无码| 精品国产一区二区三区2021| 亚洲女人被黑人巨大进入| 黄色录像二级片| 久久黄色网页| 不卡日韩av| 日本在线www| 欧美日韩国产在线| 无码人妻丰满熟妇区毛片蜜桃精品| 天堂av一区二区三区在线播放| 久久久精品999| 免费无码国产精品| 成人免费视频一区二区| 亚洲一区bb| 欧美人体一区二区三区| 欧美tk丨vk视频| 亚洲不卡在线播放| 麻豆精品在线播放| 欧美日韩在线播放一区二区| 2020av在线| 91精品国产色综合久久| 一级二级黄色片| 久久综合五月| 久久偷窥视频| 国产精品国精产品一二| 91精品国产一区二区三区香蕉| 免费网站在线高清观看| 欧美中文字幕| 欧美人与性禽动交精品| 国产在线看片免费视频在线观看| 日韩欧美久久久| 国产高清在线免费观看| 黄色资源网久久资源365| 亚洲精品人成| av成人免费| 中文字幕在线成人| 中文字幕一区2区3区| 久久久激情视频| 国产99久久九九精品无码| 99久久人爽人人添人人澡| 欧美激情精品久久久久久| 国产国语亲子伦亲子| 亚洲三级免费观看| 久久综合在线观看| 亚洲色图88| 91九色露脸| 日韩精品卡一| 精品嫩草影院久久| 日韩字幕在线观看| 91在线免费视频观看| 男人和女人啪啪网站| 亚州av一区| 国产成人精品a视频一区www| 国内精品在线视频| 欧美日韩一区二区不卡| 日本一级片免费| 国产一区二区电影| 大西瓜av在线| 欧美日韩麻豆| 国产精品视频xxxx| 成人在线观看免费网站| 欧美精品一区二区三区高清aⅴ | 日韩成人免费电影| 性刺激综合网| 日本精品在线观看| 欧美激情亚洲另类| 免费av在线电影| 欧美高清视频一二三区 | 中文乱码字幕高清一区二区| 精品在线播放午夜| 99久久99久久精品| 日韩av系列| 国产精品av电影| 黄视频在线观看网站| 精品国产一区二区在线观看| 国产午夜性春猛交ⅹxxx| 国产人伦精品一区二区| 亚洲免费在线播放视频| 国产手机视频一区二区| 亚洲高清视频一区二区| eeuss国产一区二区三区四区| 欧美最猛性xxxxx免费| 亚洲1卡2卡3卡4卡乱码精品| 精品女同一区二区| 国产乡下妇女三片| 亚洲一区在线电影| 成人激情五月天| 国产精品18久久久久久久网站| 免费在线a视频| 久久中文字幕av| 精品久久久久久一区二区里番| 精品欧美日韩精品| 久久久久国产视频| 第一视频专区在线| 亚洲成av人乱码色午夜| 中文字幕资源网| 亚洲成a人片在线观看中文| 一级片视频免费看| 成人毛片老司机大片| 在线黄色免费观看| 日韩午夜精品| 日韩一级特黄毛片| 少妇一区二区视频| 国产精品乱子乱xxxx| jvid一区二区三区| 色播一区二区| 国产一区深夜福利| 97se综合| 久久久在线视频| 国产网友自拍视频导航网站在线观看| 日韩高清免费观看| 国产人妻精品一区二区三| 在线免费视频一区二区| 国产精品1000| 亚洲精品网站在线观看| 色撸撸在线视频| 91麻豆免费在线观看| 亚洲午夜久久久久久久久| 另类综合日韩欧美亚洲| 青青青国产在线视频| 99精品视频免费全部在线| 男同互操gay射视频在线看| 欧美伦理影院| 欧美主播一区二区三区美女 久久精品人 | 国产精品男女猛烈高潮激情| 一个人www视频在线免费观看| 欧美高跟鞋交xxxxhd| 日韩在线观看www| 影音先锋日韩有码| 黄色美女网站在线观看| 亚洲免费中文字幕| 日韩福利一区二区| 亚洲美女性视频| 欧美色18zzzzxxxxx| 亚洲精品在线免费播放| 国产成人无码www免费视频播放| 欧美一区二区三区思思人| 97视频免费在线| 欧美高清性hdvideosex| 97国产成人无码精品久久久| 欧美色偷偷大香| 中文字幕人妻丝袜乱一区三区| 日本二三区不卡| 国产精品久免费的黄网站| 无吗不卡中文字幕| 91美女免费看| 日本高清无吗v一区| 岛国av中文字幕| 欧美写真视频网站| 中文字幕在线播出| 欧美精品第一页| 国产哺乳奶水91在线播放| 日韩一区二区精品葵司在线| 99久久精品国产成人一区二区| 日韩一区二区麻豆国产| 六月婷婷中文字幕| 亚洲精品黄网在线观看| 毛片在线免费| 色青青草原桃花久久综合 | 偷拍精品一区二区三区| 国产丝袜高跟一区| 成年人在线视频免费观看| 在线亚洲男人天堂| caoporn免费在线| 欧美极品美女视频网站在线观看免费| 国产第一页在线视频| 97超碰色婷婷| 美女网站视频一区| 国产专区欧美专区| 成人av影音| 欧美日韩电影一区二区| 国产精品久久久久久久久久10秀| 丰满人妻一区二区三区53号| 99亚洲伊人久久精品影院红桃| 苍井空浴缸大战猛男120分钟| 麻豆精品新av中文字幕| 91亚洲一线产区二线产区| 97se亚洲国产综合自在线观| 国产美女免费网站| 亚洲黄色性网站| 国产精品免费精品一区| 欧美日韩不卡一区| 日韩在线视频免费| 丝袜一区二区三区| 蜜臀av在线| 国产精品视频久| 国产厕拍一区| 亚洲午夜精品一区二区| 99精品免费网| 肉色超薄丝袜脚交| 久久综合久久综合久久综合| 午夜剧场免费在线观看| 欧美日韩在线视频一区二区| 国产精品一级二级| 亚洲美女av网站| 日本电影在线观看| 国产精品99蜜臀久久不卡二区| 日韩在线观看中文字幕| 日日噜噜噜噜夜夜爽亚洲精品| 1024精品久久久久久久久| 91九色在线观看视频| 国产一区二区三区国产| 国产三级黄色片| 天天综合色天天综合色h| 国产精品久久久午夜夜伦鲁鲁| 日韩精品视频免费| 伊人电影在线观看| 国产精品欧美亚洲777777| 老司机aⅴ在线精品导航| 国产一区一区三区| 青青草国产精品亚洲专区无| 亚洲一区二区在线免费| 亚洲日本一区二区| 中文字幕久久网| 亚洲免费视频网站| 2020国产在线| 3d动漫精品啪啪一区二区三区免费| 国产精品一区二区av日韩在线 | 日本少妇一区二区| 亚洲av网址在线| 亚洲成人在线网站| 丰满人妻妇伦又伦精品国产| 成人97在线观看视频| 日韩黄色在线| 色播五月综合| 奇米777欧美一区二区| 亚洲国产精品久久久久婷婷884 | 久久午夜免费电影| 国产午夜小视频| 精品伦理精品一区| 色爱综合区网| www.久久久| 欧美激情性爽国产精品17p| 国产欧美日韩三区| 欧美男人亚洲天堂| 亚洲人成啪啪网站| 欧美123区| 亚洲巨乳在线观看| 美女在线视频一区| 蜜桃av.com| 欧美精品粉嫩高潮一区二区| 欧美jizz18性欧美| 91久久久久久国产精品| 91精品99| 日韩av成人网| 午夜免费久久看| 欧美套图亚洲一区| 国产精品国产亚洲伊人久久| 成人婷婷网色偷偷亚洲男人的天堂| 国产精品igao| 亚洲欧洲韩国日本视频| 国产女人高潮时对白| 欧美高清在线视频观看不卡| 亚洲精品视频一二三区| 欧美三级在线观看视频| 91啦中文在线观看| 国产精品国产精品国产| 日韩视频永久免费观看| 免费一级欧美片在线观看网站| 国产在线视频在线| av影院午夜一区| 亚洲GV成人无码久久精品| 在线播放国产一区二区三区| 亚洲精品69| 久久精品xxx| 久久亚洲精品国产精品紫薇| 中文字幕第99页| 欧美成人三级视频网站| 国产三级精品三级在线观看国产| 成熟丰满熟妇高潮xxxxx视频| 久久综合av免费| 国产精品人妻一区二区三区| 色综合导航网站| 精品中文一区| 国产无色aaa| 精品国产91久久久久久| 成a人v在线播放| 99porn视频在线| 久久成人国产| 成熟的女同志hd| 精品视频在线播放色网色视频| 亚洲国产91视频| 欧美s码亚洲码精品m码| 成人欧美一区二区三区视频网页| 成人精品在线播放| 国产精品视频精品| 亚洲日本黄色| 国产免费嫩草影院| 日韩电影中文 亚洲精品乱码| 亚洲男人在线| 久久精品国产精品亚洲色婷婷| 日韩理论片中文av| 欧洲毛片在线| 国产精品国色综合久久| 蜜桃av噜噜一区| 欧美一区二区三区四|