TCP握手与挥手

标识位&&Sequence Number&&Acknowledgment Number的变化

(关于标识位/Sequence Number/Acknowledgment Number定义,作用以及在协议中的位置请参考博文<<TCP协议>>)

第一次握手: 标志位SYN = 1; ACK = 0;Sequence Number = 随机数J; Acknowledgment Number = 0

第二次握手:标志位SYN = 1; ACK = 1; Sequence Number = 随机数K; Acknowledgment Number = J+1. 

                  (  如果使服务器大量连接处于此状态, 即不发送最后一次握手, 就是DDOS攻击的一种方式,可通过命令查

                   看处于此状态的连接数netstat -n -p TCP | grep SYN_RECV  )

第三次握手:标志位SYN = 1; ACK = 0; Sequence Number = J+1;Acknowledgment Number = K+1

------------------------------------------------------------------------------------------------------------

第一次挥手:标志位ACK = 1,表示收到了对方发送的最后一个数据包; 标志位FIN = 1,表示发起关闭连接;

                  Sequence Number = 对方发来的最后一个包的Acknowledgment Number;

                   Acknowledgment Number = 对方发来的最后一个包的Sequence Number + 载荷包大小

第二次挥手: 标志位ACK = 1;表示收到了对方发送的最后一个数据包;标志位FIN = 0;

                   Sequence Number = 对方发来的最后一个包的Acknowledgment Number;

                   Acknowledgment Number = 对方发来的最后一个包的Sequence Number +1;

第三次挥手和第四次挥手与前两次相同,只不过由第一次挥手的对端发起

猜你喜欢

转载自my.oschina.net/u/257448/blog/1786293