专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

字节一面TCP三次握手,问的好细

  大家好,我是小林。
  有位读者在面试字节时,被问到这么个问题:
  概括起来,是这两个问题:TCP三次握手中,客户端收到的第二次握手中ack确认号不是自己期望的,会发生什么?是直接丢弃or回RST报文?什么情况下会收到不正确的ack(第二次握手中的ack)呢?问题解答
  不卖关子,直接说这个问题,是回RST报文。过程如下图:
  三次握手避免历史连接
  当客户端连续发送多次建立连接的SYN报文,然后在网络拥堵的情况,就会发生客户端收到不正确的ack的情况。具体过程如下:客户端先发送了SYN(seq90)报文,但是被网络阻塞了,服务端并没有收到,接着客户端又重新发送了SYN(seq100)报文,注意不是重传SYN,重传的SYN的序列号是一样的。旧SYN报文比最新的SYN报文早到达了服务端,那么此时服务端就会回一个SYNACK报文给客户端,此报文的确认号是91(901)。客户端收到后,发行自己期望收到的确认号应该是1001,而不是901,于是就会回RST报文。服务端收到RST报文后,就会中止连接。后续最新的SYN抵达了服务端后,客户端与服务端就可以正常的完成三次握手了。
  上述中的旧SYN报文称为历史连接,TCP使用三次握手建立连接的最主要原因就是防止历史连接初始化了连接。
  我们也可以从RFC793知道TCP连接使用三次握手的首要原因:
  Theprinciplereasonforthethreewayhandshakeistopreventoldduplicateconnectioninitiationsfromcausingconfusion。
  简单来说,三次握手的首要原因是为了防止旧的重复连接初始化造成混乱。RFC给出的三次握手防止历史连接的案例图如下:
  RFC793
  如果是两次握手连接,就无法阻止历史连接,那为什么TCP两次握手为什么无法阻止历史连接呢?
  我先直接说结论,主要是因为在两次握手的情况下,被动发起方没有中间状态给主动发起方来阻止历史连接,导致被动发起方可能建立一个历史连接,造成资源浪费。
  你想想,两次握手的情况下,被动发起方在收到SYN报文后,就进入ESTABLISHED状态,意味着这时可以给对方发送数据给,但是主动发起方此时还没有进入ESTABLISHED状态,假设这次是历史连接,主动发起方判断到此次连接为历史连接,那么就会回RST报文来断开连接,而被动发起方在第一次握手的时候就进入ESTABLISHED状态,所以它可以发送数据的,但是它并不知道这个是历史连接,它只有在收到RST报文后,才会断开连接。
  两次握手无法阻止历史连接
  可以看到,上面这种场景下,被动发起方在向主动发起方发送数据前,并没有阻止掉历史连接,导致被动发起方建立了一个历史连接,又白白发送了数据,妥妥地浪费了被动发起方的资源。
  因此,要解决这种现象,最好就是在被动发起方发送数据前,也就是建立连接之前,要阻止掉历史连接,这样就不会造成资源浪费,而要实现这个功能,就需要三次握手。源码分析
  我说回RST就回RST吗?当然不是了,肯定得用源码证明我说的这个结论。
  听到要源码分析,可能有的同学就怂了。
  其实要分析我们今天这个问题,只要懂ifelse就行了,我也会用中文来表述代码的逻辑,所以单纯看我的文字也是可以的。
  这次我们重点分析的是,在SYNSENT状态下,收到不正确的确认号的synack报文是如何处理的。
  处于SYNSENT状态下的客户端,在收到服务端的synack报文后,最终会调用tcprcvstateprocess,在这里会根据TCP状态做对应的处理,这里我们只关注SYNSENT状态。netipv4tcpipv4。cinttcprcvstateprocess(structsocksk,structskbuffskb){。。。intqueued0;。。。switch(skskstate){caseTCPCLOSE:。。。caseTCPLISTEN:。。。caseTCPSYNSENT:。。。。queuedtcprcvsynsentstateprocess(sk,skb,th);if(queued0)returnqueued;。。。}
  可以看到,接下来,会继续调用tcprcvsynsentstateprocess函数。staticinttcprcvsynsentstateprocess(structsocksk,structskbuffskb,conststructtcphdrth){。。。。if(thack){rfc793:IfthestateisSYNSENTthenfirstchecktheACKbitIftheACKbitissetIfSEG。ACKISS,orSEG。ACKSND。NXT,sendareset(unlesstheRSTbitisset,ifsodropthesegmentandreturn)ack的确认号不是预期的if(!after(TCPSKBCB(skb)ackseq,tpsnduna)after(TCPSKBCB(skb)ackseq,tpsndnxt))回RST报文gotoresetandundo;。。。}
  从上面的函数,就可以得知了,客户端在SYNSENT状态下,收到不正确的确认号的synack报文会回RST报文。小结
  TCP三次握手中,客户端收到的第二次握手中ack确认号不是自己期望的,会发生什么?是直接丢弃or回RST报文?
  回RST报文。
  什么情况下会收到不正确的ack(第二次握手中的ack)呢?
  当客户端发起多次SYN报文,然后网络拥堵的情况下,旧的SYN报文比新的SYN报文早抵达服务端,此时服务端就会按照收到的旧的SYN报文回复synack报文,而此报文的确认号并不是客户端期望收到的,于是客户端就会回RST报文。
  完!
  用RFC文档源码的方说明我的结论,这么严谨的小林,没谁了吧
  原文链接:https:mp。weixin。qq。comssqkYBM4l4qFFPkjYzCJA

世界最伟大的隔断死亡之门切换主观视角的初次印象,是灵魂被注入一具躯壳之中。抬头望见的是头顶,上面是细细的竹子用铁丝绑成的小格子,一格接着一格,绵延到整个房间的屋顶。当我还是一个婴孩的时候,我以为世界只有那说话,是一生的修行会说话,不是本事,懂闭嘴,才是智慧语言,它可以是温暖的太阳,也可以是伤人的兵刃。所谓良言一句三冬暖,闭上你的嘴,说些不好的话,不仅得罪人,也会带来灾难。所以管好你的嘴真的很重要,不要胡说八道,不要散布谣言和流言蜚语四川新闻联播丨发挥积极作用贡献智慧力量视频加载中昨天(4日),全省宗教界学习宣传贯彻党的二十大精神座谈会暨坚持我国宗教中国化方向研讨会在成都召开。省委常委统战部部长赵俊民强调,全省宗教界要深刻认识坚持我国宗教中国化方向淄博智慧社区带来宜居新生活视频加载中党的二十大报告指出,要实现好维护好发展好最广大人民根本利益,紧紧抓住人民最关心最直接最现实的利益问题,坚持尽力而为量力而行。当前,淄博立足于百姓生活,积极探索互联网社区治120117!湖人绝境大逆转,瑞恩成救世主,最后1秒投中超级3分北京时间2022年11月3日,NBA常规赛继续进行,鹈鹕VS湖人。结果,湖人队以2327331726352632,2932,加时阶段以96,总比分120117逆转了鹈鹕队,迎来了本538页21万字数字政府智慧政务大数据云平台项目建设方案WORD来源公众号优享智库项目建设要求基础设施服务建设基于云计算的高弹性高可靠性高冗余的特点,采用可行的云计算模式,充分利用专用数据中心等基础设施构建逻辑集中统一的电子政务云公共平台,将物智能运维AIRIOT智慧光伏管理解决方案随着新能源发展到今天,我国的能源产业已经形成产业化规模化的发展,光伏能源被广泛应用于电力农业市政照明甚至是军事领域。以光伏电站为例,大量铺设的太阳能板运维成本相当高,这其中主要原因只有具有同等能量的人才能相互识别你是否遇到过这样的情况有的人你跟他一见如故,相谈甚欢而有的人无论你怎么努力,都无话可说这就是两个人磁场不同就像两条平行线一样无论怎么样,都不会有相交的一天所以只有具有同等力量的人才天冷囤大葱,直接保存容易烂!教你3招,放一冬也新鲜,不干不黄天冷囤大葱,直接保存容易烂!教你3招,放一冬也新鲜,不干不黄进入十一月,就可以往家里囤菜了,萝卜白菜土豆红薯啥的,一样买上百十来斤,堆在阳台上,一个冬天就不愁吃了。除了蔬菜,调味料今天是父亲的祭日父亲过逝己三十九载,今天是他老人家祭祀的日子,每每想起不自觉的情绪低落,眼眶里泪水难控,父亲是个慈祥心善的人,有得一手木匠的好手艺,周边有人家盖房,嫁女用的嫁妆都喊我父亲,有时间叫回忆我的父亲写给父亲三周年祭又到深秋时节,凉风飕飕,草木枯萎,落叶纷飞。不经意中三个春秋已逝去,再过十几天便是父亲三周年祭日。大疫当前,到时候能否回去祭奠还是未知数。想起父亲的音容笑貌,与我们生活的点点滴滴清
电投能源继续向低碳绿色智慧转型目标努力大步迈向火电企业新时代中证网讯(王珞)走进坐落在内蒙古通辽市科尔沁草原的国家电投内蒙古公司所属几家火电厂,乍一看感觉跟其他现代化燃煤电厂并无二致。不过走进去你会了解到,这一座座看似普通的电厂内,藏着众多YouTube首席执行官辞职周四,自2014年以来一直担任YouTube首席执行官的苏珊沃西基告诉员工她将辞职。对于谷歌的主流视频平台和它的主流高管来说,这是一个时代的终结。在Recode最先报道的一封致员工打造质量基础设施一站式服务平台巴中恩阳助力市场主体提质增效2月初,我们医院有300多台医用计量器具需要检定,数量大时间紧。2月19日,四川省巴中市恩阳区渔溪镇卫生院张医生对记者说,后来,在渔溪市场监管所指导下,我们登录川质通平台,选择入驻写意中国探寻汉字起源河南濮阳戚城遗址龙虎相傍见证中原大地历史沧桑作为中华民族的象征,龙是华夏儿女的图腾。在河南濮阳市西南隅,有一片芦苇丛生的沼泽地,当地称其为西水坡。1987年,濮阳市为解决城市居民用水,在西水坡建引黄供水调节池,施工过程中考古纪律在身边高质量发展不要躺平式干部漫画冯大美我该怎么办老范是市直单位的办公室副主任,同事们发现他最近对工作很不上心,一些重要的活动和会议常常借故缺席或安排他人代替。面对大家的好心提醒,他总说,做多错多,不做不错,不NBA历史第一人詹姆斯场均28。7分,排在前四的是谁呢?如果说在NBA历史上有哪一名球员可以追逐乔丹的NBA历史第一人的位置,那么恐怕只有詹姆斯的吧。从个人荣誉上来说,詹姆斯和乔丹之间还是有差距的。双方之间差着两个总冠军,两个FMvp,洞见湾区丨借鉴深圳工业上楼经验,助力广东制造业高质量发展广东粤港澳大湾区研究院研究员钟鸣坚持制造业当家,保障产业发展空间的承载力是其中的重要一环。就广东省内情况而言,各地在面临土地开发强度超过或逼近30国际公认警戒线的现实情况下,如何在邓肯说话总该靠谱吧,历史各个位置攻防第一人,连他自己都没入选近日有媒体采访到退役之后开启养生模式的石佛邓肯,作为联盟公认的历史第一大前锋,让他给出心目中NBA历史上从1号位到5号位攻防一体的最佳阵容,而邓肯给出的答案多多少少和其他人有些出入雷霆新王,快船的历史性失策Hi掌握篮板球,掌握命运。在三个赛季之前,洛杉矶快船几乎以自己手中的所有筹码为代价,从雷霆得到了保罗乔治。而雷霆一方,他们失去了当赛季MVP榜单排名前三的顶级核心,但同样也得到了一甲流来袭,防控知识不能少近期甲流来势汹汹,不少人已经中招,出现了鼻塞咳嗽咽喉不适发热等症状。甲流相对于普通感冒具有更强的传染性,因此还是需要格外注意的。流感VS感冒一字之差杀伤力却天差地别又到了流感的高发央媒怒批绝望的文盲,身为学渣的艺人们,开始瑟瑟发抖了文木桥编辑木桥现在,无知没有常识遍地学渣成了娱乐圈的一个固有印象。什么时候学习不好,就进入娱乐圈恰钱,成为不好好学习的人的后路了呢?随着清朗行动的开始,那些被央视点名的文盲艺人,映
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网