如何测量传输队列中等待的 TCP 数据包?

如何测量传输队列中等待的 TCP 数据包?

我知道在发送数据包之前会有排队延迟和处理延迟。但是,您是否在 Linux 或 Ubuntu 中测量过这些延迟?

答案1

很难回答任何准确的问题。首先因为 TCP 数据包毫无意义。TCP 通过 IP 实现连续数据流,因此使用 TCP 连接的程序必须:

  1. 整理数据并将其写入 TCP 套接字。也许这就是您所说的“处理延迟”。
  2. 或者,可以使用 SSL 之类的程序来处理数据(加密、VPN)
  3. 数据被传递给 IP 协议,该协议对流进行切片,从而创建数据包。
  4. 数据包根据需要进行路由/伪装。
  5. 数据包被封装在以太网数据包中(大多数时候)。
  6. 以太网数据包已发送,但可能存在一些随机延迟(网络拥塞)。

在 TCP/IP 堆栈的每一层,都可能发生延迟(我没有提到错误恢复)。这意味着您应该更准确地确定要测量的延迟。也许像 wireshark 或 tcpdump 这样的工具会对您有所帮助,也许不会。

读了你最后一条评论,你正在应用程序层面进行调查,这更清楚了。那么分析工具应该会对你有所帮助。大多数 IDE 都有一个,但是……分析本身会带来一些开销!:-)

相关内容