【问题标题】:Determine the closed/closing flow in the network traffic确定网络流量中的关闭/关闭流
【发布时间】:2015-06-24 19:49:11
【问题描述】:

我用 C 语言开发了一个网络流量分类程序。我使用 5 元组来确定流量。 5元组是:

  1. 源地址
  2. 目的地地址
  3. 源端口
  4. 目的港
  5. 协议(tcp、udp、dns 等)

但是,除了确定流程之外,我还必须确定流程关闭的时间。首先,我打算在 TCP 中使用 FIN 标志,但我有一个问题:

流中可以是多个包含 FIN 标志的数据包。我什么时候决定完全关闭流程?

其次,如果我要使用超时机制来确定流程是否关闭/关闭,时间阈值应该是多少?

【问题讨论】:

  • 1-5 是单个 5 元组,而不是“5 元组”。协议是 TCP 或 UDP。 DNS 是应用程序协议,而不是传输协议。除非相应的 ACK 丢失,否则您不会收到多个 FIN 数据包。

标签: c network-programming tcp-ip libpcap packet-capture


【解决方案1】:

FIN 标志表示发送方已完成,将不再发送。对方可以继续发送,也可以关闭或什么也不做。这被称为“半封闭”连接。一旦FIN 双向通过,连接就会“关闭”。

如果主机不想再接收,它会完全中断连接,并仅以RST 响应所有传入的数据包。但是,如果没有先发送FIN 以一种很好的方式表示关闭,那么这样做将是“糟糕的形式”。

至于超时... TCP 通常没有“空闲超时”。如果您指的是“无响应超时”,则取决于主机的配置。如果主机因超时而中止连接,您可能会收到RST

【讨论】:

    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多