码迷,mamicode.com
首页 > 其他好文 > 详细

tcp 状态转换.

时间:2017-02-05 14:09:46      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:ack   server   netstat   服务   n+1   epoll   nbsp   epo   local   

命令行:
root@ubuntu:/home/linson# netstat -apt | grep 3030

server,listen
tcp 0 0 localhost:3030 *:* LISTEN 11170/epoll

server 还没应答之前
tcp 0 0 localhost:3030 *:* LISTEN 11170/epoll
tcp 0 0 localhost:3030 localhost:33092 ESTABLISHED -
tcp 0 0 localhost:33092 localhost:3030 ESTABLISHED 11504/esocket6


应答之后
tcp 0 0 localhost:3030 *:* LISTEN 11170/epoll
tcp 0 0 localhost:3030 localhost:33092 ESTABLISHED 11170/epoll
tcp 0 0 localhost:33092 localhost:3030 ESTABLISHED 11504/esocket6

客户端关闭.服务断还未应答.
tcp 0 0 localhost:3030 *:* LISTEN 11170/epoll
tcp 1 0 localhost:3030 localhost:33092 CLOSE_WAIT 11170/epoll
tcp 0 0 localhost:33092 localhost:3030 FIN_WAIT2 11504/esocket6

服务端应答
tcp 0 0 localhost:3030 *:* LISTEN 11170/epoll
tcp 0 0 localhost:33092 localhost:3030 TIME_WAIT -

服务端应答 之后某几分钟之内.
tcp 0 0 localhost:3030 *:* LISTEN 11170/epoll

 

 

知识点

1)客户端的fin_wait_1在局域网应该是看不到的.猜测是服务端内核马上发送 ack (cfin+1),

  但是服务端的fin是要等待调用close才会发送.

2)客户断的 TIME_WAIT是等待2msl.因为最后一个分组信息是客户端发送的.发送完毕之后.服务端并不会回应.所以

  客户端辛苦一点,迟点下班,万一路由发生错误,还可以再发一次.

3)客户端连续发送2次close,是会导致发送rst?这个要再测试下.

 

tcp 状态转换.

标签:ack   server   netstat   服务   n+1   epoll   nbsp   epo   local   

原文地址:http://www.cnblogs.com/lsfv/p/6367395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!