TCP三次握手简介

1.说明


Tcp三次握手概念?

第一次握手:首先A给B发送Syn(同步请求),然后进入Syn-Send状态,等待服务器确认;
第二次握手:然后B回复Syn+Ack(同步请求应答);
第三次握手:最后A回复Ack确认;
此时就已经完成Tcp三次握手,这个时候客户端和服务器就可以开始传送数据了。

Syn:同步序列编号,Synchroinze Sequence Numbers
如下图所示:


TCP三次握手简介_第1张图片
Tcp三次握手.png

举个例子,初中我们学习英语时肯定有过这样的对话:
小明(客户端):How are you ? (Syn,发送数据到服务端)
小红(服务器):I‘m fine ,thank you. (Ack,对问题的确认)
and you ? (Syn,再次发送数据到客户端)
小明(客户端):me too. (Ack)

这个时候就完成了Tcp三次握手,此时客户端和服务端就可以开始传送数据了。

两次握手可以吗?为什么?

不可以。
建立连接的过程是客户服务器模式,假设A为客服端,B为服务器:
三次握手的目的就是为了防止失效的连接请求报文又突然发送到B(服务器),因而产生错误。
失效的连接请求报文指的是:
A发出的请求没有收到B的确认,过一段时间A重新再发送一个请求到B,连接建立成功且完成数据传输。有一种特殊情况就是:A第一次发送的连接并没有丢失,而是由于网络原因延迟到达B,B以为A又发了新连接,于是B同意,然后向A发出确认,但是A并没有理会,B就一直在等待A发送数据,导致B资源浪费。
所以两次握手不可以,原因就是上边的失效连接的特殊情况。

Tcp攻击原理是什么?

向服务器发起大量Tcp连接,耗尽服务器的Tcp连接资源,一般有以下几种攻击类型:
1>:完成三次握手后,不发送任何报文,就维持这些Tcp连接;
2>:完成三次握手后,立刻发送Fin、Rst报文,释放本端资源,立刻发起新的Tcp连接;
3>:发送大量Tcp重传请求,以很小的流量即可导致被攻击的网络上行链路阻塞;、
4>:连接过程中给Tcp很小的 Tcp Window Size,导致服务端Tcp协议栈资源耗尽;

防御原理是什么?

此攻击会耗尽服务器Tcp资源的特点,Anti - DDOS设备对 目的IP地址新建连接速率和并发连接速率进行分布统计,当新建连接速率或者并发连接速率大于一定值时,就触发对源IP地址的检查,一旦发生异常,立刻将异常源IP地址加入黑名单,切断其TCP流量。

源IP地址新建连接速率检查:

启动该检查后,如果某个源IP地址在检查周期内发生Tcp新建连接数大于 一定值,则将该源IP地址认为是攻击源;

源IP地址并发连接数检查:

启动该检查后,如果某个源IP地址的Tcp并发连接数大于一定值,则将该源IP地址认为是攻击源;

慢速连接速率检查:

启动该检查后,统计同一源IP地址对同一目的IP地址的连接次数,在各统计时间间隔内,如果连续多次连接数相同并超过一定值,则认为是慢速攻击源;

异常会话检查:

如果在检查周期内,某个源IP地址发起的Tcp异常会话的连接数大于一定值时,则认为该源IP地址是攻击源;

空连接检查:如果在检查周期内,在某条Tcp连接上通过的报文数小于 一定值,则认为该连接为异常连接;
重传会话检查:当某条Tcp连接上重传报文数大于一定值时,则认为该连接为异常连接;
慢启动连接检查:当某条Tcp连接上通过的报文窗口小于一定值时,则认为该连接为异常连接;

当异常会话数超过一定数量时,将此源IP地址加入黑名单,异常会话数量可配置。

你可能感兴趣的:(TCP三次握手简介)