暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TCP状态集转换

蜜蜂点滴 2020-03-07
451

查看状态:

#netstat -lntup

#netstat -an

TCP 11种状态集转换(了解--架构层面)

1)以后可以更好的排查系统网络问题

2)以后学习网络编程会有帮助

一、TCP三次握手过程:服务端和客户端状态变化 五种状态变化

第一历程:初始状态

服务器状态为:closed状态

客户端状态为:closed状态

第二历程:服务端开启相应服务

服务端状态为:closed→listen

第三历程:发送建立连接请求(客户端)三次握手第一次

客户端发送syn信息

客户端状态为:closed→syn_sent

第四历程:接收建立连接请求(服务端)三次握手第二次

服务端接收syn信息,发送确认以及请求建立连接信息(ack syn)

服务端状态:listen→syn_rcvd

第五历程:发送最后确认信息(客户端)三次握手的第三次

客户端发送ack信息

客户端状态:sys_sent→established

第六历程:接收最后确认信息(服务端)

服务端接收ack信息

服务端状态:syn_rcvd→established

结论:只有服务端和客户端都统一处于established连接建立状态,才能正常传输数据信息。

二、TCP四次挥手过程:服务端和客户端状态变化 五种状态变化

第一历程:初始状态

服务器状态为:established状态

客户端状态为:established状态

第二历程:发送断开连接请求(客户端)四次挥手第一次

客户端发送fin请求断开连接字段

客户端状态:established→fin_wait1

第三历程:接收断开连接请求(服务端)四次挥手第二次

服务端接收fin请求断开连接字段 发出确认信息(ack=1)

服务端状态:established→close_wait

第四历程:接收确认断开信息(客户端)

客户端接收服务端发出的确认信息(ack=1)

客户端状态为:fin_wait1→fin_wait2

第五历程:发送断开连接请求(服务端)四次挥手第三次

服务端发送fin请求断开连接字段,同时还会再次发送确认(ack)

服务端状态:close_wait→last_wait_ack

第六历程:接收断开连接请求(客户端)发送最后确认信息 四次挥手第四次

客户端接收断开连接请求 同时发送最后确认信息ack=1

客户端状态:fin_wait2→time_wait(等时间,60s 90s 120s不确定等待时间)

第七历程:接收最后确认信息(服务端)

服务端状态:last_wait_ack→closed

第八历程:等待时间结束

客户端状态:time_wait→closed

补充:

问题一:为什么断开过程是四次?断开过程可以是三次吗

问题二:为什么要有time_wait状态


文章转载自蜜蜂点滴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论