转眼间,从事服务器后台开发,已经快三年了,最近想多总结些东西,先从最基本的开始写起吧!在公司经历了两个框架的开发和重构,其中一个点,就是把服务器内部通信的机制,从UDP转为TCP。先讲下TCP的基本应用,还有其中的各个状态的情况。以下的TCP的状态流程图:tcp建立连接,..
分类:
其他好文 时间:
2014-10-13 12:58:10
阅读次数:
231
linux常用查看tcp状态工具netstat和ss,这两个工具查看时都有1个Recv-Q和Send-Q解释如下:对应处于Listen状态的套接字:Recv-Q表示已建立连接队列中连接个数(等待accept), Send-Q标识backlog大小(ubuntu12.04上测试时发现Recv-Q一般最...
分类:
其他好文 时间:
2014-10-11 15:25:55
阅读次数:
151
21.TCP状态机。 网络上的传输是没有连接的,包括TCP也是一样的。而TCP所谓的"连接",其实是由通讯的双方维护一个"连接状态",让它看上去好像有连接一样。所以,TCP的状态变换是非常重要的。 下面是TCP协议的状态机 下面是"TCP建链接"、"传数据"、"TCP断链接" 的对照图: 22.三次...
分类:
其他好文 时间:
2014-09-20 19:37:09
阅读次数:
405
1. 实际问题
初步查看发现,无法对外新建TCP连接时,线上服务器存在大量处于TIME_WAIT状态的TCP连接(最多的一次为单机10w+,其中引起报警的那个模块产生的TIME_WAIT约2w),导致其无法跟下游模块建立新TCP连接。
TIME_WAIT涉及到TCP释放连接过程中的状态迁移,也涉及到具体的socket api对TCP状态的影响,下面开始逐步介绍这...
分类:
其他好文 时间:
2014-09-01 21:13:53
阅读次数:
9542
我们通过了解 TCP各个状态 ,可以排除和定位网络或系统故障时大有帮助。一、TCP状态LISTENING :侦听来自远方的TCP端口的连接请求 .首先服务端需要打开一个 socket 进行监听,状态为LISTEN。有提供某种服务才会处于LISTENING状态, TCP状态变化就是某个端口的状态变化,...
分类:
其他好文 时间:
2014-08-23 08:48:50
阅读次数:
247
tcp状态:LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求...
分类:
其他好文 时间:
2014-08-19 14:26:04
阅读次数:
295
查看TCP状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'查看SOCKET状态:cat /proc/net/sockstatTIME_WAIT状态的socket一般需要等到2msl时间后,socket才会被...
分类:
系统相关 时间:
2014-07-16 18:28:46
阅读次数:
231
TPC总共有11个状态,状态转换图:
转换转换的要素
状态:
tcp定义的11个状态
事件:
触发TCP状态迁移。事件可以是:本地应用层调用;收到TCP消息(incoming segment);超时时间(timeout)
动作:
主要指针对远程Peer产生的动作,如发送确认等。
转换中的角色
本地应用层 Local App:产生事件。...
分类:
其他好文 时间:
2014-07-08 21:15:27
阅读次数:
269
主动建立TCP链接情况:被动建立TCP链接情况主动断开链接的情况被动断开连接的情况在TIME_WAIT阶段需要停留2倍的MSL,MSL即Maximum Segment Lifetime,表示任何报文被丢弃前在网络内的最长时间,TCP/IP详解中额外注解了:RFC793指出MSL为2min,然而实现中...
分类:
其他好文 时间:
2014-06-30 13:11:44
阅读次数:
350