TCP三次握手与四次挥手的理解和场景举例

大学时候对于tcp的连接和关闭,都是靠强行记忆下来,发现即不能记得牢,就算记住了,也不是很了解为什么要这么麻烦。

TCP全双工通信

要明白为什么需要这么麻烦,首先要了解tcp它是全双工通信的,意味着数据端的两方,都有权利向对方发送数据。所以在一条tcp连接上,就需要连接或者关闭两次(两个方向),而每次连接syn或者关闭fin,都需要一个ack返回,才能确定这一方向,真正关闭。

三次握手

根据tcp连接图的客户端在左边,服务器在右边的习惯,首先客户端发送syn给服务端,服务端返回一个ack,代表服务端同意了客户端从左到右的连接。服务器在发送给客户端ack的同时,还将服务器请求syn给客户端,即从右到左方向的连接,客户端返回ack,代表从右到左的连接也成功。这样,两个方向上都成传输数据。可能你会想,如果客户端连接成功了服务端,而服务端却失败连接服务端,也就是第三次握手失败,是不是客户端还是能发送数据给服务器?这可能就变成单工通信了,这样客户端虽然能发送数据给服务端,但是服务端无法发送回去,这样的tcp连接是无法终止的,所以这种应该不可能,而且请求一般是客户端发出的,当服务端请求ack,一般客户端是马上响应ack。
举个例子,小明相约小红,打电话的小明说“小红,我今天想喂你吃饭,可以吗?”这时候小红回答说好,这时候,小明心里就已经确定自己能喂小红吃饭了。小红在回答好后,同时也问了小明“小明,我也想

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值