TCP连接build立3路握手持续时间=>与Ping时间的关系?

根据: http : //upload.wikimedia.org/wikipedia/commons/thumb/9/98/Tcp-handshake.svg/250px-Tcp-handshake.svg.png

1)有一个3路TCPbuild立握手。 鉴于我有一个100 Millisecons Ping时间,我可以使用Ping时间计算(平均)build立一个TCP连接需要多长时间?

2.)鉴于我有100毫秒的Ping时间,是否正确,至less需要150毫秒? 或者是100毫秒+1微秒(微秒用于发送第三个ACK)? 或者ACK甚至可以包含数据?

3.)当客户知道他的第三个ACK成功了,他现在可以开始发送正常的数据了,我不明白的是(在上面的图片中)。 我完全理解了SYN(1)然后是SYN ACK(2),然后是ACK(3),但是客户如何知道第三个ACK已经被发送到服务器,并且客户端可以开始发送更多的信息呢? 或者如上所述,第三个ACK可以包含数据?

非常感谢你! 延

回答你的第一个问题。

是的,ping时间可以让你知道build立TCP连接所花费的时间。

第二个问题。 你是对的。 如果延迟时间为100毫秒,则连接时间大约为300毫秒。 这是math

  1. 客户端(SYN) – >服务器= 50ms
  2. 服务器(SYN + ACK)—>客户端= 50ms
  3. 客户端(ACK +数据)—>服务器= 50ms

在第三个问题。 通常客户端发送的ACK也包含数据。 TCP有一个与其关联的超时值。 如果在这段时间内客户端没有收到来自服务器的任何确认,它将重新发送数据。 第二种情况是当客户端正在进行传输时。 假设客户端从1-10发送数据包,但只收到1-7数据包的ACK,则客户端将从第8个数据包开始重新发送。

第二个问题。 应该由第一个问题来回答

您可以使用ping时间来监视基本连接和链路延迟,但是我不会将ping与TCP连接速度相关联,因为它使用不同的协议(ICMP)。 特别是一些上游提供商将给予比TCP更高的ICMP分组优先级以产生有利的ping时间。

看看这个页面 。 在三次握手结束时,客户端和服务器都收到了连接确认。 数据交换可以开始。