美文网首页
sync cookie

sync cookie

作者: 单行道 | 来源:发表于2013-12-29 14:24 被阅读0次

    why

    • SYNC FLOOD

    SYNC FLOOD 就是在 TCP 三次握手过程中,发送给服务器海量的 sync 包,不应答服务
    器返回的 ACK。客户端可以简单的不发送对应的 ACK,也可以伪装 SYN 发送的 ip 地址,
    将其设置为不存在的 ip,比如内网 ip,这样服务器发送的 SYN/ACK 永远都得不到回应。

    这样服务器就需要维护海量的 半开连接 ,等待客户端的 ACK, 最终导致服务器资源耗
    尽(sync queue 满)而丢弃新的连接。

    实现

    要创建一个新的 tcp 连接,client 端必须发送一个 TCP SYN 包给服务器,服务器返回一
    个 TCP SYN/ACK 报文,这个报文中的一个参数是 序列号,用来重新拼接数据流。根据
    TCP 协议,这个序列号可以由服务器端任意决定。 SYNC COOKIES 就是这个序列号的一
    个特殊实现

    * 初始 5 位: t mod 32,t 是时间戳
    * 接下 3 位: mss 的编码值
    * 最后 24 位: 服务器 Port/ip,客户端 Port/ip 值的 hash
    

    客户端收到这个序列号 n 之后,发送 n + 1 给服务器,服务器通过 n 来比对 sync
    cookie

    在开启了 sync cookie 的情况下,sync queue 满了的时候,连接再也不被丢掉,而是直
    接返回相应的 SYN/ACK 报文,看起来就像 sync queue 增大了一样。

    sync cookie 防火墙

    对于防火墙来说,它可以开启 sync cookie 的功能。此时 client 的三次握手是和防火墙
    进行的,防火墙相当于起到了一个检验 client 的功能。client 通过验证之后,防火墙主
    动和 server 端进行三次握手的连接的初始化过程。Junos 的相关文档在此

    相关文章

      网友评论

          本文标题:sync cookie

          本文链接:https://www.haomeiwen.com/subject/nxrctttx.html