范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

大厂面试系列面试被问到TCP三次握手与四次挥手相关问题

  我们知道在浏览器访问网站的时候,都是通过域名解析找到对应的IP,之后,与后端服务器建立对应的连接,然后服务器向浏览器传输数据。而其中TCP协议(Transmission Control Protocol,传输控制协议),起到了关键性的作用。TCP协议作为一种面向连接的、可靠的、基于字节流的通信协议,其特点就是要传输数据必须要建立连接,传输完毕之后必须要关闭连接。所以说每次的数据交互都是需要去进行通信的建立与应答检查操作。而我们下面要介绍的关于三次握手和四次挥手就是用来完成这个操作的。下面我们就来看看关于TCP通信连接建立的三次握手和通信连接断开的四次挥手操作。TCP报文格式介绍
  如下图所示,展示了TCP的报文格式,这里我们先来介绍关于TCP报文相关的内容。
  如图所示,在TCP报文中有如下的一些内容需要我们注意。序号:Seq序号占用32位,用来标记客户端和服务端之间的发送的不同的数据包。确认号:Ack确认号占用32位,在客户端和服务端都有其值是Ack=Seq+1。标志位:占用了1BIT,有六个标记。
  URG:紧急指针有效
  ACK:确认号是否有效
  PSH:是否将数据包快速给应用层
  RST:重置连接
  SYN:新建一个连接
  FIN:断开连接
  这里需要注意的是Ack与ACK是两个不一样的概念。
  从上面的介绍中,看到了之前我们了解过的Ack、SYN等熟悉的内容。下面我们就来详细介绍一下TCP的三次握手机制以及,在操作过程中这些标记位的变化情况。三次握手建立TCP连接
  根据上面的分析,我们知道在TCP建立通信连接的时候需要一个确认通信连接的手段,而这个手段就是需要发送三个数据包。三个数据包分别表示的三次握手操作的三个过程。如下图所示。图片来源网络。
  第一步、首先TCP请求连接是由客户端发起的,客户端向服务端发送一个数据包,其中SYN设置为1,并且随机产生了一个seq=j的值,并且将这个数据包发送到服务端,这个时候客户端进入到一个SYN_SENT的状态,并且等待Server的确认。
  第二步、服务端收到请求的数据包之后,开始检查SYN的标记位,判断数据包是客户端用来建立TCP连接的数据包,并且设置SYN和ACK标记位,SYN表示用来建立TCP连接,ACK标识确认收到了客户端的数据包。服务端将标志位SYN和ACK都设置成1,ack = j+1,并且随机产生了一个seq的值。并且将数据包发送到客户端,并且服务端进入到SYN_RCVD状态。
  第三步、客户端收到了服务端的SYN+ACK的数据包,并且向服务端发送确认包ACK的数据包,这个包发送完毕之后客户端和服务端都会进入到 ESTABLISHED 状态表示三次握手成功,连接建立。
  这个时候会有人问?为什么第三次握手之后,服务端不需要再给客户端发送一个消息告诉客户收到消息了呢?这是因为在连接建立之后,当服务端和客户端都进入到ESTABLISHED状态之后,服务端的第四次确认就可以带着数据给客户端了,如果这个时候由于网络的原因或者是数据传输的原因客户端无法接收数据,那么就会出现超时的异常。而一旦超时,服务端会主动断开连接。DDOS攻击
  根据上面的分析,在三次握手建立的过程中,当服务端给客户端回应了SYN+ACK的数据包之后,这个时候服务端和客户端的连接还没有完全建立,只是处于即将建立连接的状态,这种状态我们称为是半连接状态。而我们所说的DDOS攻击就是在半连接状态下发生的。
  当客户端在短时间内给客户端发送了大量的不存在的IP对应的SYN连接请求,这个时候服务端收到了请求,并状态也发生了变化,也对客户端进行了响应,但是由于IP等信息都是伪造的,所以说。服务端要不断的发送并且直至超时。
  由于这些伪造的SYN包在一段时间内会占用连接队列,这样就会导致正常的客户端连接由于连接队列爆满而无法连接,从而导致网络拥堵甚至是网络瘫痪。而解决DDOS攻击的有效方式就是当服务端出现大量的半连接的时候并且IP地址都是随机的时候。可以果断执行如下的命令。并且快速断开相关的连接请求。netstat -nap | grep SYN_RECV四次挥手断开TCP连接
  对于三次握手来讲,我们应该不陌生了,但是为什么断开TCP连接不采用三次挥手而采用四次挥手呢?这个也是接下来我们要去讨论的问题,也是在面试中被经常问及的问题。
  所谓的四次挥手,就是在TCP连接断开的时候,客户端和服务端发送4次数据包以保证连接是正常断开的。在开发中可以由任意一方来发起关闭操作。如下图以客户端主动断开为例,在实际开发中这个也是一个正常的逻辑。
  由于TCP连接的传输是全双工的,所以,对于客户端与服务端来讲都必须要单独的关闭。也就是说当一方完成了数据发送任务之后,发送了一个FIN的包来终止连接请求。另一方收到了FIN数据包之后就说明数据传输已经完成了,并且不会再有后续的数据进行发送了。但是在这个TCP连接上还是可以发送其他数据的,直到另一方也回应了FIN,表示没有响应的数据来响应了,这个时候它就会主动关闭连接,而另一方则是被动关闭了连接。具体步骤如下
  第一步、Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  第二步、Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
  第三步、Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  第四步、Client收到FIN后,Client进入TIME_WAIT_2状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。面试题
  1、为什么建立连接的时候是三次握手,而关闭连接的时候是四次挥手呢?
  因为在服务端为LISTEN的状态下的时候,收到建立连接的SYN请求后,把SYN与ACK放在同一个数据包中发送到了客户端。而在关闭连接的时候,当收到了对方的FIN数据包的时候,只表示对方不再发送数据了,并不是说TCP连接上不能在发送数据了。所以自己可以立刻关闭,也可以在等待接收到对方的FIN报文之后在进行关闭,所以一般情况下来讲ACK包和FIN都会分开进行发送,既然要分开,就会出现分别的发送FIN和ACK的操作。也就是四次挥手操作。

活在当下,命运只在自己过去的几年我总是在抱怨,抱怨这个世界不公平,抱怨公婆不想带孩子,抱怨老公,以至于一家人打的鸡飞狗跳,自己抑郁,对过去的事情一直耿耿于怀,每每想起都是恨得咬牙切齿,却从未想过把做这些你等待的他,是你等待中的他吗?等风来默莫等。秋雨绵绵的天空,多了几分朦胧。带着几丝凉意的秋风,携着一片枯黄的落叶。飞向空中。又一年,期待着在雨后的天空。与你重逢。雪花纷飞的街道,少了几许温暖。随着几根枯涩的树枝人生没有如果,命运不相信假设善待当下,相信未来,快乐自己生活就是你开始接纳你不得不做的那些你不喜欢的事,但是,有一日你会发觉,全部你不愿意做的事情,全是为了那件你喜欢的事而做准备。亲爱的,你不必为了谁而改变,如果要成为更好的人,请为了自CBA直播预告,浙江双雄迎劲敌,北京首钢与广州龙狮上演防守大战20222023赛季CBA联赛10月22日安排5场比赛,其中浙江双雄迎战两大劲敌山西北控看点颇多,而北京首钢与广州龙狮两支靠强硬防守赢球的球队遭遇,辽篮上一轮残阵将山西男篮逼入加时这才是折叠屏该有的样子(二)基于三星GalaxyZFold系列的立式交互模式,三星GalaxyZFold4还新增了立式交互触控板功能,可以将一半的屏幕变身为触控板。那么,这个触控板可以实现哪些操作呢?我今天就跨省游恢复!邀您游世界最美海湾市南留你过夏天为提振行业信心,积极推进旅游市场规范有序复苏,按照文化和旅游部办公厅关于积极应对新冠肺炎疫情进一步加强跨省旅游管理工作的通知要求,结合山东疫情防控形势,5月18日,山东省文化和旅游牛了!中国用无人驾驶机械群进行攀大高速公路铺设,受到世界关注太厉害了!2020年5月,中国用无人驾驶机械群进行攀大高速公路铺设,这在全球尚属首次,引发了全世界的关注。据悉攀大高速公路从四川樊枝花到云南大理,路况多在山区丘陵地带,对于路面建筑美元成为世界货币,不是因为美国的强大,而是自然法则的伟大胜利为什么美元会成为各国储备和结算占比均超过40的世界货币?很多人说是美国的军事和经济实力作为后盾,还有人说美元的历史信用本身就很良好,一步步累积到现在这种程度。可是问题来了欧元又是怎北京2022年底将实现普通门诊费跨省直接结算全覆盖完善多层次医保制度体系建设集采药品价格平均降幅超50医保电子凭证投入使用异地就医费用结算掌上办北京市医保局10月21日介绍,10年来,北京市医疗保障体系更加健全完善,互联网医保服务我的世界模组大作战活动获奖名单公布人气奖活动奖金获奖作者获奖视频2000元我真是小熊MC蜘蛛侠战衣!一击必杀PVP?2000元脏小豆一不小心召唤出了可怕凋零风暴,小豆被他折磨的很难受!PVP2000元纪夫Junly跳水世界杯今日打响,水花消失术即将上演,梦之队你最pick谁?视频加载中齐鲁网闪电新闻10月20日讯山东电视体育频道消息,今天下午跳水世界杯即将在柏林打响,作为世界最高级别的跳水单项赛事,跳水世界杯与奥运会世锦赛并称为世界跳水三大赛,本届跳水
唐宋八大家曾巩为政廉洁奉公,勤于政事,关心民生疾苦曾巩是一位不引人注目的历史人物,哪怕是身为唐宋八大家,也鲜少人知晓他的事迹。曾巩家世南丰曾氏,在宋代是一个引人注目的家族,自北宋初曾巩的祖父曾致尧于太平兴国八年举进士开始,有宋一朝揭秘丨他是汉语拼音之父我们自如地打字聊天全因为有他大家使用电脑和手机几乎离不开汉语拼音,它是我们传播讯息必不可少的工具之一,然而很少有人知道,它与一个人有关,他就是被誉为汉语拼音之父的周有光。周有光周有光,原名周耀平,出生于江苏常北宋灭亡后,南宋两次得到北宋首都,为啥最终又被金朝占领?在普通人的印象里,在公元1127年金军灭亡北宋,将徽钦二帝掳往北方之后,北宋灭亡,宋朝也就失去了北宋的首都东京汴梁城(今河南开封),直到金朝末年金朝被蒙古和南宋联合灭亡之后,南宋才山中寻玉分享历史五千年良渚国民去山中开凿玉石,制成玉佩饰和刀斧,和花厅国的人换取衣食住行生活所需。钟吾邂逅花厅寻玉之情迷三仙洞圣母与圣父阳帝正运筹帷幄之时,忽听身后传来一声稚嫩的童声。说父全新3D打印智能隐形眼镜问世环球网综合报道据外媒2月16日报道,近日,来自韩国蔚山国立科学技术研究院(UNIST)和韩国电工研究院(KERI)对外宣布,双方合作开发出了一种全新的智能隐形眼镜核心技术。据悉,该海尔智慧楼宇行业顽症,一站解决在建筑配套这个问题上,不同人群有着不同需求。管理者看重投资成本,运维者注重便捷管理,而使用者则更关注体验舒适。如何同时满足大家的需求呢?有这样的方案存在吗?2月16日,在海尔智慧楼为什么广西灵山是荔枝之乡?让我来告诉你吧!唐代诗人杜牧的诗中有一句一骑红尘妃子笑,无人知是荔枝来所描述的荔枝就是广西的灵山荔枝,那么广西的灵山荔枝又是如何得到杨贵妃的偏爱呢?而广西又是如何成为荔枝之乡的呢?让我来告诉你吧!湖南省商标品牌协会会长朱增辉一行走访湖南沃克能源科技有限公司2月15日下午,湖南省商标品牌协会会长朱增辉带队到会员单位湖南沃克能源科技有限公司(下称沃克能源)走访,与沃克能源总经理何佳娟总经理助理刘秀等进行座谈交流。湖南省知名商标品牌评审委教育厅长言论侮辱英雄烈士,这是退休金太高,活得太安逸了!云南原教育厅厅长退休干部罗崇敏在2022年发布的一篇文章端午一个鼓励自杀的日子被指侮辱共和国英雄烈士。在被开除党籍后,还公开发布有严重政治问题的言论,这也是人才!他在职期间还严重违校企携手凝聚创新合力湖南医药学院与启迪药业集团股份公司科研合作红网时刻怀化2月16日讯(通讯员朱宁杨圣梅曾靖岚)2月14日下午,湖南医药学院与启迪药业集团股份公司举行科研合作签约仪式,双方就古汉养生精通过提高免疫力改善流感病毒性肺炎恢复期的实跟随老韩走遍中国,宁夏篇之一银川市(下)本文为走遍中国的长篇游记,每日更新,希望大家喜欢关注点赞并转发,谢谢!网友留言天下黄河富宁夏,可见宁夏是个好地方!宁夏号称塞上江南,地处河套平原的银川周围和江南地区农村差不多,很富