代码之家  ›  专栏  ›  技术社区  ›  xian

TCP:seq/ack数字是如何生成的?

  •  20
  • xian  · 技术社区  · 17 年前

    我目前正在开发一个程序,该程序可以嗅探向特定地址发送和从特定地址接收的TCP数据包。我试图实现的是用定制的数据包回复某些收到的数据包。我已经完成了解析。我已经可以生成有效的以太网、IP和TCP数据包。

    8 回复  |  直到 14 年前
        1
  •  23
  •   DGentry    17 年前

    RFC 793 ,原始的TCP协议规范,可以提供很大的帮助。

        2
  •  5
  •   Jonathan Leffler    13 年前

    seq# + length = x 发送给发件人。序列将是x,发送方将发送数据。同样,接收器将计算长度 x + length = y y 等等…这就是seq/ack的生成方式。..

    如果你想实际展示它,试着在Wireshark中嗅探一个数据包,并按照TCP流查看场景。。。

        4
  •  2
  •   Milan    17 年前

    似乎其余的答案几乎解释了在哪里可以找到有关ACK的详细和官方信息,即 TCP RFC

    TCP Analysis - Section 2: Sequence & Acknowledgement Numbers

        5
  •  1
  •   John Ellinwood    17 年前
        6
  •  1
  •   tvanfosson    17 年前

    这些值参考了数据包有效载荷开始相对于连接初始序列号的预期偏移。

    Reference

    第一个数据字节

    如果ACK标志为

        7
  •  1
  •   Kazimieras Aliulis    17 年前

    数字从两侧随机生成,然后按发送的八位字节数增加。

        8
  •  0
  •   sipsorcery    17 年前
    推荐文章