TCP 之 SYN_SENT状态
作者:互联网
SYN_SENT是TCP连接的发起方第一次发给接受方的时候设置成的状态。
可以通过netstat -ano查看
其中 在"state" 中可能会有 SYN_SENT
如果在"state"中出现大量的"SYN_SENT ",那么你很有可能中了蠕虫病毒.这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT的原因。
SYN_SENT洪水攻击:
SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费服务器CPU和内存资源.SYN攻击聊了能影响主机外,还可以危 害路由器,防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施.
我们知道,在网络中两台电脑建立TCP连接 时需要进行三次握手过程,客户端首先向服务器发关TCP SYN数据包,接着服务器会向客户端发关相应的SYN ACK数据包,
最后客户端会以ACK进行响应.从而建立正常的握手过程.在具体的连接细节中,服务器最早接受到SYN包时,在TCP协议栈中会将相应的半 连接记录添加到队列中,之后等待接受下面准备握手的数据包,
如果握手成功,那么这个半连接记录将从队列中删除.或者当服务器未收到客户端的确认包时,会重 发请求包,一直到超时才将此条目从未连接队列删除.但是,
在服务器中的TCP协议栈中存储的半连接记录是有限的,当服务器受到SYN型的DOS攻击后,队 列会很快处于充满状态,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,
服务器回复确认包,并等待客户的确认,由于源地址是不存 在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢严重者引起网络堵塞甚至系统 瘫痪,
服务器随后就不再接受新的网络连接,从而造成正常的客户端无法访问服务器的情况发生.
正常情况下,出现SYN_SENT的state应该很少,并且短暂
如果一个连接长时间处在SYN_SENT,有可能是没连上,比如端口没有打开