分类: 系统运维
2009-05-24 01:49:00
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手;
完成三次握手,客户端与服务器开始传送数据......
TCP连接过程是状态的转换,促使发生状态转换的是用户调用:OPEN,SEND,RECEIVE,CLOSE,ABORT和STATUS。
传送过来的数据段,特别那些包括以下标记的数据段SYN,ACK,RST和FIN。还有超时,上面所说的都会时TCP状态发生变化。
LISTEN: 监听来自远方TCP端口的连接请求。
SYN-SENT: 在发送连接请求后等待匹配的连接请求。
SYN-RECEIVED: 在收到和发送一个连接请求后等待对连接请求的确认。
ESTABLISHED: 代表一个打开的连接,数据可以传送给用户。
FIN-WAIT-1: 待远程TCP的连接中断请求,或先前的连接中断请求的确认。
FIN-WAIT-2: 从远程TCP等待连接中断请求。
CLOSE-WAIT: 等待从本地用户发来的连接中断请求。
CLOSING: 等待远程TCP对连接中断的确认。
LAST-ACK: 等待原来发向远程TCP的连接中断请求的确认。
TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认。
CLOSED: 没有任何连接状态。