为什么TCP须要三次握手 一文讲透!

  • 电脑网络维修
  • 2024-11-15

哈喽,小同伴们!当天小米要给大家带来的是网络基础中的一颗明珠——TCP三次握手。作为程序员的你,是不是经常听到这个词,却又对它的详细环节和原理有些含糊呢?别担忧,当天咱们就来深化浅出地聊聊这个话题,让你彻底搞分明TCP三次握手的微妙!

什么是TCP三次握手?

TCP三次握手是TCP协定建设衔接的环节。便捷来说,它是客户端和服务端在正式传输数据之前,启动的一种“握手”操作,经过这种操作,双方能够确认彼此的存在,并同步彼此的形态。详细来说,TCP三次握手分为以下三个步骤:

1. 第一次性握手:客户端发送SYN包

首先,客户端向服务端发送一个带有SYN(Synchronize)标记的数据包,这个包用来示意客户端宿愿建设衔接,并且在包中蕴含了一个初始序列号(Sequence Number)。发送这个包之后,客户端进入SYN_SENT形态,期待服务端的照应。

2. 第二次握手:服务端发送SYN/ACK包

当服务端收到客户端的SYN包后,会发送一个带有SYN和ACK(Acknowledgment)标记的数据包作为照应,这个包中蕴含了服务端自己的初始序列号,同时对客户端的序列号启动确认(ACK)。发送这个包后,服务端进入SYN_RCVD形态,期待客户端确实认。

3. 第三次握手:客户端发送ACK包

最后,客户端收到服务端的SYN/ACK包后,会发送一个带有ACK标记的数据包,示意确认收到了服务端的SYN包,同时也带上了自己对服务端序列号确实认。发送这个包后,客户端进入ESTABLISHED形态,服务端收到这个ACK包后,也进入ESTABLISHED形态,此时,衔接正式建设,双方可以开局数据传输了。

为什么须要三次握手?

或许有的小同伴会问了,为什么要这么复杂,要三次握手呢?两次握手不行吗?这里,小米就来详细解释一下。

建设牢靠的通讯信道:首先,TCP协定是一种面向衔接的、牢靠的传输协定。在通讯环节中,为了保障数据的完整性和牢靠性,TCP须要确保客户端和服务端双方都具有发送和接纳数据的才干。三次握手正是为了到达这个目标。

防止已失效的恳求报文:假定只启动两次握手,那么会存在一种状况:假设客户端收回的第一个SYN包由于网络疑问延早退达,当这个包抵达服务端时,客户端或许曾经不再须要建设衔接了。假设此时服务端收到这个SYN包,并且前往一个ACK包,衔接就会建设起来,但实践上客户端并不须要这个衔接,从而糜费了资源。而三次握手可以有效防止这种状况。

确认双方序列号:在TCP通讯中,序列号是十分关键的。它用于标识数据包,并且在数据传输环节中起到跟踪和确认的作用。经过三次握手,客户端和服务端可以相互告知各自的初始序列号,并确认对方曾经收到了这个序列号,从而确保双方的通讯是牢靠和同步的。

为什么两次握手不行?

两次握手的疑问关键体如今以下几个方面:

防止已失效的恳求报文:如上所述,两次握手无法有效防止已失效的恳求报文造成的资源糜费疑问。而三次握手经过客户端的最后一个ACK包来确认服务端的SYN/ACK包,从而防止了这种状况的出现。

确保双向通讯的牢靠性:两次握手只能保障单向通讯的牢靠性。TCP通讯要求双方都能确认对方的初始序列号,从而成功牢靠的数据传输。假设只启动两次握手,只要衔接动员方的初始序列号能被确认,而对方的序列号无法确认,这样就无法保障双向通讯的牢靠性。

确保衔接的同步:三次握手的环节确保了衔接的同步。客户端和服务端经过三次握手可以确认彼此的存在,并且同步各自的形态和序列号,从而为后续的数据传输打下松软的基础。

TCP三次握手的环节详解

第一次性握手:SYN包的发送和接纳

当客户端宿愿与服务端建设衔接时,会发送一个SYN包,这个包中蕴含了客户端的初始序列号。这个序列号用于标识客户端行将发送的数据包,并且在后续的通讯中起到跟踪和确认的作用。发送SYN包后,客户端进入SYN_SENT形态,期待服务端的照应。

服务端收到SYN包后,会调配资源来处置这个衔接恳求,并生成一个自己的初始序列号。而后,服务端会发送一个SYN/ACK包给客户端,这个包中蕴含了服务端的初始序列号,以及对客户端序列号确实认。发送SYN/ACK包后,服务端进入SYN_RCVD形态,期待客户端确实认。

第二次握手:SYN/ACK包的发送和接纳

客户端收到服务端的SYN/ACK包后,会审核其中确实认信息,以确保服务端正确接纳了自己的序列号。同时,客户端也会生成一个ACK包来确认服务端的序列号。这个ACK包示意客户端曾经收到了服务端的SYN/ACK包,并且确认了其中的序列号。发送ACK包后,客户端进入ESTABLISHED形态,期待服务端确实认。

服务端收到ACK包后,会审核其中确实认信息,以确保客户端正确接纳了自己的序列号。此时,服务端进入ESTABLISHED形态,示意衔接曾经建设,双方可以开局数据传输了。

第三次握手:ACK包的发送和接纳

在第三次握手中,客户端发送的ACK包蕴含了对服务端序列号确实认。这个包示意客户端曾经收到了服务端的SYN/ACK包,并且确认了其中的序列号。发送ACK包后,客户端进入ESTABLISHED形态,示意衔接曾经建设。

服务端收到ACK包后,会审核其中确实认信息,以确保客户端正确接纳了自己的序列号。此时,服务端也进入ESTABLISHED形态,示意衔接曾经建设,双方可以开局数据传输了。

经过三次握手,TCP协定确保了客户端和服务端双方都具有发送和接纳数据的才干,从而建设了牢靠的通讯信道。这种设计不只防止了已失效的恳求报文造成的资源糜费疑问,还确保了双向通讯的牢靠性和衔接的同步。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/7390.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号