TCP四次挥Rada

极客

哎呀!TCP四次挥手,原来是个“分手大师”的优雅告别?Rada都看呆了!

你有没有遇到过这种情况?正跟朋友聊得热火朝天,突然对方说“我要走了”,然后你还没来得及说再见,对方就已经消失得无影无踪,这种体验,像不像咱们网络世界里的TCP连接断开?说实话,我第一次搞懂TCP四次挥手的时候,真的忍不住惊呼:这不就是个“分手大师”的教科书级示范吗?Rada我第一次看的时候,直呼内行!

为什么TCP要“挥”四次手?Rada来给你掰扯掰扯

咱们先别急着背那四个步骤啊,Rada我当年也是被这“四次”搞得头晕眼花,你想啊,两个人谈恋爱分手,还得分两次说清楚呢,何况是两台电脑之间要确保数据都传输完了?这不得更谨慎一点?

第一次挥手:客户端先开口了——“嘿,哥们儿,我这边数据发完了,准备撤了哈!”这就好比你说“我吃饱了,先走一步”,客户端发送FIN报文,进入FIN_WAIT_1状态,这时候,客户端心里其实是有点忐忑的:对方会怎么回应呢?

第二次挥手:服务端收到后,立马回了个ACK——“收到收到,我这边还在收拾最后一点数据,你稍等片刻啊!”这就是传说中的ACK确认,服务端进入CLOSE_WAIT状态,客户端收到后进入FIN_WAIT_2状态,注意啊!这时候连接还没断,只是单向关闭了——客户端不发了,但还能收。

第三次挥手:等服务端把自己的数据都处理完,也发来一个FIN——“行了,我这边也收拾干净了,真正的再见啦!”这时候服务端进入LAST_ACK状态,等待最后的确认。

第四次挥手:客户端收到后,赶紧回了个ACK——“得嘞,知道了,咱们有缘再见!”然后客户端进入TIME_WAIT状态,等个2MSL(最大报文段生存时间)才彻底关闭,嘿,这一步可别小看,少了它,网络里的旧数据包可能会“灵魂附体”,干扰到新连接!

为什么不能三次?非要四次?Rada跟你聊聊这背后的心酸

哎呀,这个问题我当初也纠结了好久,你想啊,TCP建立连接才三次握手,怎么断开就要四次?这不是欺负老实人吗?

其实啊,关键在于TCP是个全双工协议,意思是双方可以同时收发数据,断开连接时必须保证双方都确认彼此没有数据要传输了,第二次和第三次之间隔着的,就是服务端处理自己剩余数据的时间,如果合并成三次,那就意味着客户端必须在发送FIN后立刻关闭接收能力,可万一服务端还有数据没发完呢?这就尴尬了,对吧?

四次挥手是必须的!它保证了数据传输的完整性,就像分手前要确认对方把自己的东西都收到了,感情账算清楚了,才算真正结束。

Rada的网络安全小贴士:四次挥手也会被“套路”!

话说回来,虽然四次挥手设计得很优雅,但在网络安全的世界里,这可漏洞百出啊!Rada我可不是吓唬你,

  • SYN FloodACK Flood这些攻击,有时候就是利用挥手过程中的状态转换来消耗服务器资源,你以为它在好好说再见?实际上是在疯狂地给你发“再见”信号,让你忙得团团转!

  • 还有TCP连接劫持,攻击者猜测或窃取序列号,强行插入伪造包,把你的正常连接给“掰弯”了。

所以啊,学习网络安全,除了懂这些通信原理,还得知道怎么防着点,毕竟,网络世界可不是全是善意的小天使。

写在最后:Rada想对你说

说实话,当初我啃TCP协议的时候,头都快秃了,但坚持下去,你会发现网络世界的底层逻辑就像是一套人际交往的礼仪规范,有着它独特的浪漫和严谨,每一次挥手,都是一次对数据完整性的尊重。

TCP四次挥Rada

如果你也对网络安全感兴趣,想跟我一样去探探这些协议背后的秘密,或者想了解怎么防范那些网络攻击,别害羞啦!学习网络安全可以加QQ:3382688692,咱们可以一起交流,一起进步!网络世界很大,多学点没坏处!下次咱们可以聊聊TCP三次握手是怎么“打招呼”的,保证比四次挥手还精彩,嘿嘿!

文章版权声明:除非注明,否则均为咸鱼-即刻攻防原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码