三次握手与四次挥手
三次握手: 客户端与服务端建立TCP连接时总共需要发送三个包
三次握手过程中容易引发SYN(DDOS)攻击,所谓SYN攻击是指: 攻击客户端,在短时间内伪造大量不存在的IP地址,向服务端不断发送syn包,服务端收到包后向客户端发送确认包,但由于客户端IP不存在,导致服务端需要不断重发包直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN被丢弃,目标系统运行缓慢直至崩溃.
检测SYN攻击: 当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击.在Linux下可以如下命令检测是否被Syn攻击: netstat -n -p TCP | grep SYN_RECV
预防SYN攻击: SynAttackProtect保护机制、SYN cookies技术、增加最大半连接和缩短超时时间等. 使用较新的TCP/IP协议栈
四次挥手: TCP的连接的拆除需要发送四个包
为什么建立连接协议是三次握手,而关闭连接却是四次握手呢?
因为客户端发送FIN报文只是表示当前发送数据结束,并不能说明后面就不发送了,服务端先返回ACK报文表示接收到关闭连接的请求了,然后再次发送FIN报文给客户端,让客户端再次确认关闭连接.
TCP协议和UD