JackyZou 发表于 2017-1-30 12:05:43

三次握手

三次握手:


      client:发送连接请求到server端-----syn=1 ack=0 随机产生一个序列号的报文到server端,状态是syn_send,等待server应答。此时server端是listen状态。

      server:接受请求 发送回应询问客户端是否准备好数据连接----syn=1 ack=1 ,接受到syn=1,发送ayn=1 ack=1 即syn+ack的包,此时server端是syn_recv状态。

      client:确认连接client收到server的syn+ack的包,发送确认连接报文到server端----syn=1+1,完成连接client和server同时进入established状态,完成三次握手,进行数据传输      


四次断开:



      1、客户端发送一个FIN,用来关闭客户端到服务器的数据传送,此时客户端进入TIME_WAIT1状态
      2、服务器收到这个FIN,它发回一个ACK,确认号为收到的序号加1,和SYN一样,一个FIN将占用一个序号,此时服务                器进入CLOSE_WAIT状态,客户端端进入TIME_WAIT2
      3、当服务器端也没有要传送的数据时,服务器关闭与客户端的连接,发送一个FIN给客户端A,服务器进入LAST_ACK
      4、客户端发回ACK报文确认,并将确认号设置为收到序号加1,客户端进入TIME_WAIT,等待2MSL--120s,服务器端接      后进入CLOSED
页: [1]
查看完整版本: 三次握手