TCP协议的三次握手及防御手法 –

2022年 7月 14日 发表评论

云产品最新活动点击抢腾讯云3/5年服务器限量秒杀名额续费贵、升级贵,建议选配置高、长期的云产品PS:幻兽帕鲁十分火热:点击了解阿里云帕鲁服务器自建教程点击了解腾讯云帕鲁服务器自建教程

所谓“三次握手”,是指如何跟踪协商每次发送的数据量,从而同步数据段的发送和接收,根据接收到的数据量确定数据确认的次数,以及数据发送和接收后何时取消联系,建立虚拟连接。

TCP协议建立连接时,双方需要确认对方的信息,防止连接被伪造,准确控制整个数据传输过程的完整性和有效性。因此,TCP协议使用三次握手来建立连接。

第一次握手:连接建立后,客户端向服务器,发送syn包(syn=j),进入SYN_SENT状态,等待服务器确认;SYN: SynchronizeSequenceNumbers。

第二次握手:服务器收到syn包时,必须确认客户的SYN(ack=j 1)并发送SYN包(seq=k),即SYN ACK包。此时,服务器进入SYN_RECV状态;

三次握手中的第三次:客户端接收到来自服务器的SYN ACK数据包,并向服务器发送确认数据包ACK(ack=k 1)该数据包发送后,客户端和服务器进入建立(TCP)状态,三次握手完成。

当三次握手完成后,客户端和服务器开始传输数据。在理想状态下,一旦建立了TCP连接,TCP连接将一直保持,直到任何一方主动关闭连接。

  利用TCP协议的攻击原理

假设用户在向服务器,发送同步确认消息后突然崩溃或断开连接,则服务器在发送同步确认响应消息后无法从客户端接收到确认消息(三次握手无法完成)。在这种情况下,服务器通常会重试(再次向客户端发送同步确认),并在等待一段时间后丢弃未完成的连接,这称为同步超时。一般来说,这个时间是分钟的数量级(约30秒-2分钟);由于用户的异常,服务器的线程等待1分钟并不是什么大问题。但是,如果恶意攻击者大量模拟这种情况,服务器端将消耗大量资源(数万个半连接),以维护非常大的半连接列表。服务器方面也将忙于处理攻击者伪造的TCP连接请求,没有时间忽略客户的正常请求。在这种情况下,我们称之为:服务器方面受到了SYNFlood(简称Syn Flood)的攻击。

  防御攻击的方法:

1.写一个加密算法,让每次发送的数据不一样,增加对方破解的成本。

2.把ip限制在攻击时间内,这样会损失一小部分正常客户,但是保证了大部分客户的正常访问。

更多信息请参考高防服务器防御DDOS攻击和CC攻击的方法

小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: