我知道在发送数据包之前会有排队延迟和处理延迟。但是,您是否在 Linux 或 Ubuntu 中测量过这些延迟?
答案1
很难回答任何准确的问题。首先因为 TCP 数据包毫无意义。TCP 通过 IP 实现连续数据流,因此使用 TCP 连接的程序必须:
- 整理数据并将其写入 TCP 套接字。也许这就是您所说的“处理延迟”。
- 或者,可以使用 SSL 之类的程序来处理数据(加密、VPN)
- 数据被传递给 IP 协议,该协议对流进行切片,从而创建数据包。
- 数据包根据需要进行路由/伪装。
- 数据包被封装在以太网数据包中(大多数时候)。
- 以太网数据包已发送,但可能存在一些随机延迟(网络拥塞)。
在 TCP/IP 堆栈的每一层,都可能发生延迟(我没有提到错误恢复)。这意味着您应该更准确地确定要测量的延迟。也许像 wireshark 或 tcpdump 这样的工具会对您有所帮助,也许不会。
读了你最后一条评论,你正在应用程序层面进行调查,这更清楚了。那么分析工具应该会对你有所帮助。大多数 IDE 都有一个,但是……分析本身会带来一些开销!:-)