2021-10-18 TCP与HTTP的区别以及TCP的三次握手和四次挥手个人理解

TCP与HTTP的区别:
TCP是底层协议,定义的是数据传输和连接方式的规范。
HTTP是应用层协议,定义的是传输数据的内容的规范。
总结:TCP是一条路,HTTP是一辆车,数据是车上的人和物。协议就是指这条路修建
时的规则,这辆车行驶遵守交规,人和物也遵守相应的规矩。

TCP的三次握手和四次挥手:
三次握手:
基本的就不多写了,网上一大堆。主要讲我对三次握手的理解:首先我们要知道TCP的连接概念,tcp是双向的,客户端与服务端都要发送数据与接收数据,而完整的连接那就要先验证连接双方是否功能正常。
三次握手的作用就是让连接双方互相验证功能是否正常,第一次握手是验证A的发送功能和B的接收功能,第二次握手是验证B的发送功能和A的接收功能,正常来说两次握手已经验证成功了。但是这是以我们上帝视角来观察的,带入A、B的视角,可以发现两次握手后A知道了AB所有功能是否正常,而B只知道A的发送功能和B的接收功能,对第二次握手的结果并不知道,这是就需要第三次握手来告诉B二次握手的结果。
四次挥手:
这里很多人第一次接触都想不明白,按照tcp连接协议应该和挥手一样也是三次啊。为什么会有四次挥手呢?这里对于挥手的理解不能全部套用握手的。不然就会陷入根本错误中,握手我们是AB\BA\AB,而挥手是AB\BA\BA\AB不是AB\BA\AB\BA。挥手去掉第三次挥手BA就完全和握手是一样的,连本质都是一样的,就是为了让AB知道彼此的发送与接收功能是否正常。现在你已经逃出陷阱,要到达目的了。
为什么要有第三次挥手:第三次挥手是因为断开与连接还是有区别,断开的时候我们要考虑到A单方面要断开连接,这时B就会有三种情况:1.B接收到信息,并且随时可以断开连接;2.B接收到信息,但是正在运行处理数据等操作中,要等操作完成后才能断开连接;3.AB之间的通讯有问题。
如果用一次挥手来处理,会有3种情况:1.B直接发送信息给A;2.B等待操作完成后发送信息给A;3.AB直接通讯有问题。其中2、3两种情况就产生冲突了,B可能会因为2或3没有在短时间内回复给A,A肯定会以为发生了3这种情况,重新开始断开操作。
为了避免这种情况,就有了第三次挥手。第二次挥手B发给A是验证B的发送功能和A的接收功能,第三次挥手B发给A是让A知道B操作已经完成随时可以断开连接。

这些都是个人的理解,表达能力不是很好只能用白话解释,多看几遍应该都能懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

love.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值