TCP的三次握手和四次挥手

三次握手

1 客户端首先发送一个syn包,这个包的作用是向服务端询问服务端是否准备好。服务端返回一个ack的包同时将服务端的syn包发在这一次握手的过程中发了过来,因为数据很小,也不需要准备什么资源,所以两个作用的包一次发过来。

2客户端收到服务端返回的ack包,得知服务端已近准备好了,此时客户端就转变为ESTABLISHED的状态。同时发出一个ack的包,服务端收到之后也得知客户端也准备好了,此时也转变为ESTABLISHED的状态。

3至此三次握手完成,连接建立,注意在此过程中不需要应用进程的任何参与。

四次挥手

1 想关闭的一端首先发送一个fin包,对端接收到,此时对端马上回复一个ack的包,表示以及知道了。在准备好关闭之后,此时再次发送一个fin包告诉对端,我准备好了,你可以关闭了。此时对端回复一个ack的包,告诉另外一端,收到了,你也可以关闭了。

为什么主动发起的关闭方需要time-wait 2MSL呢,是由于网络是不可靠的,最后发出的ack的包可能没有被对端收到。此时考虑一种比较极端的情况就是在ack的包发送了一个MSL之后对端并没有收到,此时对端重发发送一次fin包,在一个MSL的时间内,还是可以被收到了。

2 一般在企业内部,数据中心这样的地方,网络比较可靠,而且很快,可以调整这个时间长度,避免端口一直被占用,资源得不到释放,也可以直接设置,端口可以重用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值