第一次握手:建立连接,客户端发送SYN包到服务器,进入SYN_SEND状态,等待服务器确认
第二次握手:服务器收到SYN包,确认客户的SYN,同时也发送一个SYN包,即SYN+ACK包,服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,客户端和服务器进入ESTABLISHED状态,完成三次握手
完成三次握手,客户端和服务器开始传送数据。
一些重要概念:
1、未连接队列:三次握手中,服务器维护一个未连接队列,为每个客户端SYN包设置一个条目,表示服务器已收到SYN包,向客户端发出确认,等待客户端的确认包ACK。当服务器收到客户端的ACK包后,删除该条目,进入ESTABLISHED状态。
2、SYN同步标志:synchronized sequence numbers栏位有效。SYN标志仅在三次握手建立TCP连接时有效。
3、ACK确认标志:acknowledgement number栏位有效
4、RST复位标志:复位相应的TCP连接
5、URG紧急标志:urgent pointer标志有效。
6、PSH推标志:该标志置位时,接收端不将该数据队列处理,而是将数据尽快转由应用处理。在处理telnet或rlogin等交互模式时,该标志总是置位的
7、FIN结束标志:结束一个TCP会话,但端口仍处于开放状态,准备接收后续数据
第二次握手:服务器收到SYN包,确认客户的SYN,同时也发送一个SYN包,即SYN+ACK包,服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,客户端和服务器进入ESTABLISHED状态,完成三次握手
完成三次握手,客户端和服务器开始传送数据。
一些重要概念:
1、未连接队列:三次握手中,服务器维护一个未连接队列,为每个客户端SYN包设置一个条目,表示服务器已收到SYN包,向客户端发出确认,等待客户端的确认包ACK。当服务器收到客户端的ACK包后,删除该条目,进入ESTABLISHED状态。
2、SYN同步标志:synchronized sequence numbers栏位有效。SYN标志仅在三次握手建立TCP连接时有效。
3、ACK确认标志:acknowledgement number栏位有效
4、RST复位标志:复位相应的TCP连接
5、URG紧急标志:urgent pointer标志有效。
6、PSH推标志:该标志置位时,接收端不将该数据队列处理,而是将数据尽快转由应用处理。在处理telnet或rlogin等交互模式时,该标志总是置位的
7、FIN结束标志:结束一个TCP会话,但端口仍处于开放状态,准备接收后续数据