【问题标题】:Please explain tcp[13] & 4 == 4请解释 tcp[13] & 4 == 4
【发布时间】:2015-12-30 12:01:29
【问题描述】:

有人能解释一下tcp[13] & 4 == 4 是什么意思吗?

我不知道如何用外行的话来解释。

【问题讨论】:

  • 右起第三位是真的吗?我认为我们可能需要更多背景信息才能获得有意义的答案。
  • 这些是 TCP 标志,用于识别不同类型的流量。例如tcp[13] & 4!=0 表示 RST 数据包。 Idk 大约为 4==4,但它也必须是标志的标识符。

标签: networking tcp filter wireshark flags


【解决方案1】:

读取 SYN capture tcpdump 'tcp[13] & 4 == 4',你是说在 TCP 报头中找到第 13 个字节,并且只抓取第 4 位标志等于 4 的数据包。 试试这个网站,它解释得很好https://danielmiessler.com/study/tcpflags/

【讨论】:

  • 是的,但是 4==4 的数据包是什么类型的数据包?
  • 4 != 0 将是所有 RST 数据包我会假设 4 == 4 只是在寻找一个标志,我有点不确定。
  • @NSNoob 这将取决于该语言的运算符优先级是什么......
  • 'tcp[13] & 4 == 4' 只是 'tcp[13] & 4 != 0' 的另一种说法。因此,如前所述,此过滤器会查找所有 TCP RST 数据包。
  • & 的优先级高于 ==,因此检查 TCP 标志 (tcp[13]) 的 0x4 位 (RST) 设置的数据包(请参阅RFC 793 section 3.1) .正如 willyo 所指出的那样,tcp[13] & 4 == 4tcp[13] & 4 != 0 在测试单个位时将具有相同的结果 - tcp[13] & 4 的结果将是 4 或 0。libpcap 编译器为 tcp[13] & 4 != 0 生成稍微更高效的代码.
【解决方案2】:

这有点晚了。语句tcp[13] & 4 == 4 本质上说第 13 个字节(基于 0)应该打开 TCP RESET 位(数值为 4)(不要关心该字节中的其他位)。

希望以上内容能帮助您理解它。

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 2011-11-07
    • 1970-01-01
    • 2018-12-16
    • 2012-11-20
    • 2018-08-28
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多