美文网首页
TCP为什么要三次握手

TCP为什么要三次握手

作者: 哈罗_aae9 | 来源:发表于2018-07-31 18:07 被阅读0次

经常有人会问tcp建立连接时为什么要三次握手,两次行不行呢?不行,那可能会死人的,不信我讲个故事。

北宋末年,统治阶级奢靡腐败,苛捐杂税压得人们喘不过气来。一时间盗贼四起,纷纷占山为王。盗贼们时不时打家劫舍,骚扰村民,连官府都不敢轻举妄动。

后来上任了一位较有作为的县官,不忍看到百姓受苦,决心围剿盗贼。但是盗贼在山头,易守难攻,他们决定兵分两路,分为东边军和西边军,从东边和西边夹击盗贼,一举拿下匪巢。

可是山头太大了,县武装力量也不是太强,必须做到东边军和西边军两边同时进攻才有很大胜算,任何一方贸然进攻都会有全军覆没的危险。可是如何让驻扎在山头东边和西边的军队同时进攻呢?

这时军中一名高个小将杜乾说道,“这还不容易,到了某个时刻,让东头发一封飞鸽传书给西头,告知他们,东头已经准备好了,要发起进攻请求。大约半个时辰后,东头就可以发起进攻。”

另一名矮胖小将王颖急忙道,“你怎么知道这封请求进攻的飞鸽传书会安全到达西头,万一途中飞鸽迷路了或被贼寇拦截了怎么办,又或者安全达到,但是西头军队压根还没有准备好进攻,总之单方面发起进攻会失败的。”

杜乾眨了眨眼,又说道,“那就等到西头给东头的确认信之后再发起进攻,不等到西头的确认信绝不发起进攻。”

矮胖小将王颖,顿了顿,又道,“如此,东头军队是准备好进攻了,西头军队却未必敢发起进攻。”

杜乾一脸疑惑:”为何?“

此时军师吴亮摇着鹅毛扇,哈哈大笑道,“这位王颖将军果然心思缜密。东头发起飞鸽传书,告知西头一切准备就绪,可以发起进攻了。如果东头收到了西头的回复,东头发起了进攻,西头正好一起响应,准能打得贼寇落花流水。万一西头的回复信丢失,东头的军队等不到西头的回复,不知道是请求信根本没有送达到西头,还是送达到了西头后,西头给他们的回复信在路上丢失了,总之他们是不会单方面发起进攻的。而西头军队对他们的回复信是否安全到达东头,他们是不知道的。如果真的不幸丢失了,西头单方面发起了进攻,而东头又不知道,岂不失败了。所以他们怎敢轻举妄动呢?”

大家听后,纷纷对军师点头赞同。那杜乾又道,“究竟如何能让西头放心地发起进攻,确保万无一失?”

军师吴亮又接着说,“收到西头回复信之后,可以再写一封确认信知会西头那边。西头收到这封确认的确认信之后,就知道东头已经知道西头作好进攻准备了。这时候西头就可以放心发起进攻了。”

“是否需要再次收到西头的信,东头才发起进攻呢?” 杜乾又说道。

只见王颖微微一笑,说道,“这个担心是多余的了。西头第二次收到东头的消息,证明东头也已经知道西头那边准备好了,而东头是主动发起进攻请求的,肯定是准备好了的。也就是说,东头准备好了,西头知道东头准备好了,最重要的是西头也知道东头知道西头准备好了所以双方可以放心发起进攻了。” 如下图所示:

军师会心的点了点头,说道,“如此,你们开始部署吧,誓要做到夹击成功,则贼寇可破矣。”

故事讲完了。可是TCP三次握手和上面的故事有区别:TCP发起建立连接的一方不会一直等待对方的回复,如果超时,他再次发起这个请求直至放弃,然后释放资源。假设最后一次的请求送达到了对方B,而此时请求方A已经释放连接,而B是不知道的。本来这是一个早已失效的报文段。但B收到此失效的连接请求报文段后,就误认为A发出了一次新的连接请求。于是又向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立了。 由于现在A已经释放连接,因此不会理会B的确认,也不会向B发送数据。 但B却以为新的运输连接已经建立了,并一直等待A发来数据。 B的许多资源就这样浪费了。采用三次握手的方法可以防止上述异常现象的发生。


喜欢本文的朋友们,欢迎长按下图关注订阅漫话互联网技术收看更多精彩内容


相关文章

  • TCP详解+wireshark抓包演示

    简介 TCP理论 TCP报文格式 三次握手三次握手图解为什么要三次握手 四次分手四次分手图解TCP的半关闭 实战抓...

  • TCP的三次握手和四次挥手

    参考资料:[1].【TCP】详解TCP 三次握手和四次挥手[2]. iOS:为什么TCP连接要三次握手,四次挥手[...

  • 计算机网络

    问题总结1、cookie和session的区别2、TCP的三次握手过程?为什么要三次握手?【三次握手的过程】【三次...

  • TCP的三次握手和四次挥手

    目录 名词解释 TCP的三次握手TCP建立链接的步骤TCP的三次握手步骤思考:TCP握手为什么不是两次 or 四次...

  • tcp为什么是三次握手

    参考 TCP 为什么是三次握手,而不是两次或四次? 1. tcp三次握手流程 由图可知,tcp三次握手的关键在于,...

  • 简明理解三次握手和四次挥手

    三次握手与四次挥手分别对应TCP连接建立过程与断开过程,先上TCP报文格式: 三次握手过程: 问题1: 为什么要三...

  • 网络相关面试题

    网络 1. TCP和UDP的区别 2. TCP的三次握手 3. TCP的四次挥手 4. TCP为什么需要三次握手...

  • 即时通讯

    传输控制协议(TCP) TCP 为什么要进行3次握手?TCP的三次握手最主要是防止已过期的连接会再次传到被连接的主...

  • TCP三次握手四次挥手

    为什么要“三次握手,四次挥手”? 1)所谓三次握手(Three-way Handshake),是指建立一个TCP连...

  • TCP 三次握手与四次挥手

    目录 TCP与UDP的区别TCP 三次握手为什么需要三次握手?而不是两次TCP 四次挥手为什么需要等待 2MSL为...

网友评论

      本文标题:TCP为什么要三次握手

      本文链接:https://www.haomeiwen.com/subject/oodhvftx.html