1 A:独奏大哥我仰慕你好久了能跟你探讨个问题嘛(SYN)
2 B:知道了...看你这个么诚恳.给你小辈一个机会好吧(SYN+ACK).
3 A:万分感谢独奏大哥.我对大哥的崇敬犹如滔滔江水连绵不绝...犹如#@^%&(@!%)....(ACK
连接成功双方开始胡侃............
(摘自tcp/ip协议卷)
上面这段其实就是TCP连接的三次握手.
第一次握手:客户端发送SYN包到服务器,并进入SYN_SEND状态,SYN_SEND状态其实就是客户端等待第二次握手.
第二次握手:服务器收到SYN包后必须确认客户的SYN 同时自己也发送一个SYN包即SYN+ACK包这时此时服务器进SYN_RECV状态等待最后一客户端的ACK应答.
第三次握手:客户端发送ACK确认收到服务端的SYN请求
这里顺便提下半连接问题..当服务端收到SYN就会在内存中开辟空间,放入到半连接队列.如果客户端发送SYN后就不进行ACK确认就会造成下面的情况
2 B:知道了....看你这个么诚恳.给你小辈一个机会好吧(SYN+ACK).
B: - -? ....人呢..不是仰慕我嘛(重发SYN+ACK)....
B:......喂..还在不....耍我呢??.(重发SYN+ACK)....
B:............草...拿哥找乐呢......(SYN Timeout超时,关闭连接释放资源)
当有模拟大量的客户端进行办连接访问时.服务端的队列会被满.从而服务端会拒绝再次连接的请求.就是就我们所说的SYN洪水攻击