【发布时间】:2012-02-14 09:17:45
【问题描述】:
如果在客户端和服务器之间建立了 TCP 连接,与无连接路由相比,在这种面向连接的路由上发送数据是否更快,因为数据包中的标头信息较少?因此,会打开一个 TCP 连接,并在需要时通过打开的连接发送字节。还是通过每个数据包都包含目标地址的无连接路由,UDP 仍然是更好的选择?
通过已建立的 TCP 连接(在完成所有握手之后)发送数据包是比 UDP 更快的方法吗?
【问题讨论】:
-
它们差异太大,无法以这种方式进行有用的比较。 747 比步行更快,但 747 不会让你下楼梯。
-
无根据的假设:“鉴于 [TCP] 数据包 [比 UDP 数据包] 中的标头信息少”。什么让你有那个想法?一个 UDP 报头是 8 个字节。 TCP 标头至少为 20 个字节。
-
第二个毫无根据的假设:只有在“无连接路由”上,“每个数据包都包含目标地址”。每个数据包都包含目标地址,无论数据包携带 TCP 还是 UDP。
-
谢谢你们到目前为止的回答。我原则上理解为什么我会在 UDP 上使用 TCP - 不是问题,可靠性不是考虑因素。我是从打开连接后基于标头信息(TCP)而不是包含所有目标信息(UDP)的标头的切换表的查找角度询问的。如果我想从源到目标获取单个字节,那么开放的 TCP 连接会是更好的方法吗?数据包排序很好 - 谢谢乔尔。
-
嗯,好的。看看这个:en.wikipedia.org/wiki/IPv4 在交换表中查找与 TCP 或 UDP 无关。它基于 IP,此信息在 IP 标头中。所以不管你用的是哪一个。但是对于 TCP,您可能有更多的数据包,这意味着您需要进行更多的查找。
标签: networking tcp udp