首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP-连接建立=如何测量基于Ping RRT的时间?

TCP-连接建立=如何测量基于Ping RRT的时间?
EN

Stack Overflow用户
提问于 2010-05-21 17:36:27
回答 2查看 3.8K关注 0票数 6

我将非常希望得到帮助,了解当我拥有Ping RoundTripTip时,建立一个TCP连接需要多长时间:

根据Wikipedia,TCP连接将分三个步骤建立:

代码语言:javascript
复制
1.SYN-SENT (=>CLIENT TO SERVER)
2.SYN/ACK-RECEIVED (=>SERVER TO CLIENT)
3.ACK-SENT (=>CLIENT TO SERVER)

我的问题:

  1. 第三次传输(ACK-已发送)不会携带任何有效载荷(我的数据),但只用于建立连接,这是正确的吗?(由此得出的结论是,第四个packt将是第一个承载任何有效载荷的packt .)
  2. 假设当我的Ping RoundTripTime为20毫秒时,在上面给出的示例中,TCP连接建立至少需要30毫秒才能在客户机和服务器之间传输任何数据,这种假设正确吗?

非常感谢

汤姆

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-21 17:39:02

这些事情基本上是正确的,尽管第二条假设往返时间是对称的。

票数 4
EN

Stack Overflow用户

发布于 2012-11-12 12:24:51

要测量这一点,称为“到Syn/ACK的时间”(这不是建立连接的时候-连接只是半开着的-当处于这种状态时,您需要第三个确认建立的数据包来考虑它的建立),您通常需要包括它们自己的TCP堆栈的专业工具,从而实现这种测量。最常用的是螺旋式雪崩,但也有艾夏氏IxLoad或BreakingPoint系统盒(BPS现在已被Ixia收购)。

请注意,是的,第三包将没有任何数据,这也是正确的前两个。它们只有Syn和Syn+Ack标记(它们是TCP标志),并且不包含应用程序数据。因此,这种称为三方握手的初始交换会造成一些开销,这就是为什么TCP通常不用于实时应用程序(语音、实时视频等)。

同样,您不能假设Latency = RTT/2。实际上,在第3层(IP)上测量单向延迟非常复杂,而且您已经在第4层(TCP)了。这篇博文详细介绍了这方面的挑战:http://synsynack.wordpress.com/2012/04/09/realistic-latency-measurement-in-the-application-layers/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2884236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档