【lwip】12-一文解决TCP原理(11)

  1. G bit = 1,表示UserTimeout的单位为分钟;G bit = 0,表示UserTimeout的单位为秒 。
  2. 通过UTO,TCP接收者可以根据“对端的UserTimeout”来调整自己的行为 。UserTimeout建议取值为:min(U_Limit,max(Adv_UTO,Remot_UTO,L_Limit)) 。
    1. U_Limit是本地UserTimeout的最高限制;
    2. Adv_UTO是通告出去的UserTimeout;
    3. Remot_UTO是对端的UserTimeout;
    4. L_Limit是本地UserTimeout的最低限制 。
  3. 要注意的是,UTO只是用于“告知”,TCP接收者却不一定要根据对端的UTO值来调整自己的行为 。
  4. 此外,NAT设备也可以根据UTO来调整连接保活计时器 。
  5. 若使用 = min(U_LIMIT, max(ADV_UTO, REMOTE_UTO, L_LIMIT)) 。
12.10.6 TCP-AOTCP-AO:Authentication Option (TCP-AO)and TCP MD5 Signature Option(TCP-MD5)
TCP-MD5和TCP-AO主要用于防止TCP欺骗攻击(TCP Spoofing Attacks) 。
TCP-MD5是旧标准(RFC 2385),例如BGP、LDP等协议就是以TCP-MD5作为认证手段的 。2010年后,IETF建议使用TCP-AO去取代TCP-MD5,然而TCP-AO当前的普及率还很低 。
TCP-MD5和TCP-AO的格式如下:
【lwip】12-一文解决TCP原理

文章插图
TCP-MD5 Option的MD5 Hash根据以下信息计算:
  1. TCP伪头部 。
  2. TCP头部(包括Option,checksum设为0) 。
  3. TCP Segment Data 。
  4. 密钥 。
相对于TCP-MD5,TCP-AO的主要改进之处在于:
  1. 支持多种MAC算法
  2. 支持带内的密钥变更操作
注意:TCP-AO与TCP-MD5一样,都不包含密钥分发机制 。因此在密钥分发方面都存在一定风险 。

经验总结扩展阅读