【网络传输】关于TCP三次握手和四次挥手简单易懂的图解

三次握手

在这里插入图片描述

四次挥手

在这里插入图片描述

相关问题

  • 为什么非要四次挥手:因为可能它就是不调用newsocket.close(),或者延迟一下再发,所以,不能合起来,前一次回复只是告诉客户端我收到了,但是close的不能合并。
  • 为什么先让客户端先发close():tcp为了保证数据的可靠性,一般接收到一个数据会回复一个数据,最后一次客户端发消息,那客户端咋知道已经过来了,那咋保证可靠呢?:是这样,谁先调用close谁就会在close后等待一段时间(称为超时时间)假如4s,如果没收到那么就会再发close,那服务器要是没收到,那么久以为没传过去,就再发一次close,那要是再发一次之前客户端把资源已经释放了这合适吗?不合适。所以客户端发送之后还要等待一段时间,等待2ms(一个数据包再网络传输的最长时间,一般是两分钟左右)。所以谁先close谁就要等五分钟,所以资源要待着两分钟,两分钟之类资源不能重复使用。如果是服务器先调用close那么服务器就要在两分钟之内不能释放,也就是端口不能释放!而客户端一般不绑定端口,所以没关系啊,操作系统再安排个新端口,而服务器必须要固定的端口,所以只能客户端先close。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值