【问题标题】:Is there latency of an application?应用程序是否存在延迟?
【发布时间】:2014-01-18 21:43:40
【问题描述】:
延迟(延迟)定义为 here 为数据包在发送方和接收方之间传输所花费的时间。
据我所知,以上定义是针对 IP 数据包的。我们可以说延迟包括数据链路层丢失帧的重传时间吗?或者这个定义假设没有丢失帧?
是否可以为应用程序级别定义延迟?比如说,我们有一个应用程序A。 A 使用 TCP 将消息发送到远程应用程序。由于使用了TCP,因此丢失的段将被重新传输。因此,A message 的延迟包括丢失段的重传时间。
【问题讨论】:
标签:
networking
delay
network-protocols
latency
【解决方案1】:
我们可以说延迟包括数据链路层丢失帧的重传时间吗?或者这个定义假设没有丢失帧?
如果您要测量应用程序延迟,您可以定义延迟以包括重新传输丢失的 TCP 段所需的时间。
是否可以为应用程序级别定义延迟?假设我们有一个应用程序 A。A 使用 TCP 向远程应用程序发送消息。由于使用了 TCP,因此丢失的段将被重新传输。因此,A 消息的延迟包括丢失段的重传时间。
这个测量是非常可行的;显然,您需要在您的应用程序中实现此延迟的测量...还要注意,如果您的消息通常大于 TCP MSS(标准以太网段上为 1460 字节),Nagle 可能会使您的延迟测量向上倾斜。如果您的消息往往大于TCP MSS,disable Nagle 以获得最低的平均消息延迟。