TCP三次握手与四次挥手

1.TCP三次握手建立连接

  1. 首先客户端初始化序列号,syn位设置位1发送给服务端
  2. 服务端接收之后确认应答号设置为序列号+1,syn和ack都设置位1发送给客户端
  3. 客户端接收之后确认应答号设置为序列号+1,ack设置为1然后发送给服务端,然后服务端接收后状态设置为建立连接状态

2.为啥是3次握手?

1.防止历史连接造成影响,比如客户端发送第一次握手请求之后宕机了,然后恢复之后又发送新的握手请求,此时如果是2次握手的话就会导致历史连接恢复造成资源浪费,三次握手给了服务端缓冲时间。

2.还有一个原因就是同步双方的初始序列号

3.四次挥手断开连接

1.客户端主动断开连接,向服务端发送FIN报文,之后客户端进入FIN_WAIT1状态

2.服务端收到后,发送ACK确认报文,进入CLOSE_WAIT状态

3.客户端收到ACK确认报文后进入FIN_WAIT2状态,

4.服务端再次发送FIN报文,之后进入LAST_ACK状态

5.客户端收到FIN报文,发送ACK报文,进入TIME_WAIT状态,

6.服务端收到ACK之后进入CLOSE状态

7.客户端等待2MSL之后进入CLOSE状态

来源:https://www.xiaolincoding.com/network/3_tcp/tcp_interview.html#tcp-%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E8%BF%87%E7%A8%8B%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:00
点赞 评论 收藏
分享
程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
评论
1
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务