RTT是否包括发送端的缓冲时间?
Is buffering time at the transmitting end included in RTT?
美好的一天!
我知道这是一个简单的问题,但我找不到它的答案,每当我寻找 RTT 时,它通常都是松散定义的。那么,包含在 RTT 中的传输节点中的缓冲时间是否被 ping 接收到?
RTT 仅表示 "round-trip time." 我不确定 "buffering" 您担心什么。确切的测量点取决于您使用的确切 ping
程序,并且有很多。对于 BusyBox, the ping
implementation can be found here。读取它表明,在调用 sendto()
前不久准备传出 ICMP 数据包时标记传出时间,在调用 recvfrom()
后不久解析传入 ICMP 数据包时标记传入时间。 (查找对 monotonic_us()
的调用。)两者之间的区别在于打印的内容。因此,打印的值包括在内核网络堆栈、NIC 处理等方面花费的所有时间。至少对于这个特定的实现,它还包括 ping
进程可能一直在等待时间片的时间。对于具有调度争用的重负载系统,这可能很重要。其他实现可能会有所不同。
美好的一天! 我知道这是一个简单的问题,但我找不到它的答案,每当我寻找 RTT 时,它通常都是松散定义的。那么,包含在 RTT 中的传输节点中的缓冲时间是否被 ping 接收到?
RTT 仅表示 "round-trip time." 我不确定 "buffering" 您担心什么。确切的测量点取决于您使用的确切 ping
程序,并且有很多。对于 BusyBox, the ping
implementation can be found here。读取它表明,在调用 sendto()
前不久准备传出 ICMP 数据包时标记传出时间,在调用 recvfrom()
后不久解析传入 ICMP 数据包时标记传入时间。 (查找对 monotonic_us()
的调用。)两者之间的区别在于打印的内容。因此,打印的值包括在内核网络堆栈、NIC 处理等方面花费的所有时间。至少对于这个特定的实现,它还包括 ping
进程可能一直在等待时间片的时间。对于具有调度争用的重负载系统,这可能很重要。其他实现可能会有所不同。