TCP连接状态学习

一、客户端的状态可以用如下的流程来表示:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
以上流程是在程序正常的情况下应该有的流程,从书中的图中可以看到,在建立连接时,当客户端收到SYN报文的ACK以后,客户端就打开了数据交互地连接。而结束连接则通常是客户端主动结束的,客户端结束应用程序以后,需要经历FIN_WAIT_1,FIN_WAIT_2等状态,这些状态的迁移就是前面提到的结束连接的四次握手。
二、服务器的状态迁移图
服务器的状态可以用如下的流程来表示:
CLOSED->LISTEN->SYN-RECEIVED->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED
在建立连接的时候,服务器端是在第三次握手之后才进入数据交互状态,而关闭连接则是在关闭连接的第二次握手以后(注意不是第四次)。而关闭以后还要等待客户端给出最后的ACK包才能进入初始的状态。
三、各个状态的详细解释
CLOSED:初始化状态,没有任何链接状态。
LISTEN:表示服务器端的某个SOCKET处于监听状态,可以接受连接
SYN-SENT:在服务端监听后,客户端SOCKET执行CONNECT连接时,客户端发送SYN报文,此时客户端就进入
SYN_SENT状态,等待服务端的确认
SYN-RECEIVED:服务端等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:关闭方(客户端)主动请求终止连接,等待被关闭方(服务端)的ACK和FIN报文
CLOSE-WAIT:等待关闭方(客户端)发来的连接中断请求,并立即发送带ACK的报文给关闭方(客户端)
FIN-WAIT-2:收到了被关闭方(服务端)ACK标志的报文
TIME-WAIT:收到了被关闭方(服务端FIN标志的报文
LAST-ACK:等待关闭方(客户单)的确认
CLOSED:没有任何链接状态
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值