3 B' L2 m! y/ G 2.TCP ACK风暴 1 C+ ~* _2 N" }5 s. z+ M8 K! q
. Q; C- j8 t7 }( V( ]( c
前面部分详述的后期非同步劫持入侵有一个基本的不足,即它将大量地产生 TCP ACK包,网络专家称这些大量的 ACK包为 TCP ACK风暴。当一个主机(无论客户机或服务器)收到一个不能接受的包时,主机将向产生的主机发送期待的顺序号来认证这个不能接收的包。在以前详述的主动的 TCP入侵的情况下,第一个 TCP ACK包将包含服务器的顺序号,客户机因为没有送出请求更改的包,所以将不接受这个认证包。因此,客户机产生自己的认证包,它反过来迫使服务器产生另一个认证包,这些反复循环,理论上对传送每个数据包是一个无止尽循环(如图9)。 ) P- I: u% B) [0 p: H4 z, [
4 O- Y' p: B/ T, B) S
图9 入侵产生的风暴循环 因为认证包不传送数据,如果接收者丢失了这个包,ACK包的发送者将不再传递。换句话说,如果一个机器在ACK风暴循环中丢掉一个包,循环便终止。幸运的是,正如您以前所知,TCP将IP用在不可靠的网络层上,以一个非空的包损失,网络设计者将迅速结束循环。而且,网上丢掉的包越多,ACK风暴持续期越短。再加之,ACK循环是自规的--换句话说,黑客产生的循环越多,客户机和服务器接到的交通数量也越多,它反过来增加拥挤度。这样便丢掉包,有更多的循环结束。 5 E/ E; o3 f9 q& G% T
1 r M! D2 b$ m; ?$ K. O& Y0 b' d TCP 连接在每次客户机或服务器发送数据时创建一个循环。如果既不是客户机又不是服务器发送数据,TCP连接便产生不了循环。如果客户机和服务器都未发送数据也没有黑客认证数据,发送者将再传这个数据。在再传之后,TCP连接将为每一个再传送创建一个风暴,最后连接的双方放弃连接,因为客户机和服务器都未发送ACK包。如果黑客认证了数据传送,TCP连接将仅产生一个风暴。实际上,由于网上的负荷,黑客经常错过数据包,因此黑客将认证再传送的第一个包--意味着每次在黑客传输时入侵将至少产生一个ACK风暴。