TCP比以太网上的UDP快?

TCP比以太网上的UDP快?,tcp,udp,winsock,ethernet,Tcp,Udp,Winsock,Ethernet,我构建了一个程序,为TCP和UDP传输提供一些统计信息。客户端发送一个包含30KB数据的数据包,并连续100次发送到服务器。在这种情况下,客户端和服务器通过以太网连接。目前让我困惑的是,在我的结果中,TCP的完成速度几乎是UDP的2倍 我做了一些研究,看到了关于MTU之类的解释,但在我的脑海里似乎无法将它们联系起来。有人能解释发生了什么事吗?我的结果有意义吗?您很可能看到了nagle算法的效果。 s_算法 TCP将在短时间内“等待”更多数据,并在单个数据包中一起发送,UDP将在其中发送每个数据报

我构建了一个程序,为TCP和UDP传输提供一些统计信息。客户端发送一个包含30KB数据的数据包,并连续100次发送到服务器。在这种情况下,客户端和服务器通过以太网连接。目前让我困惑的是,在我的结果中,TCP的完成速度几乎是UDP的2倍


我做了一些研究,看到了关于MTU之类的解释,但在我的脑海里似乎无法将它们联系起来。有人能解释发生了什么事吗?我的结果有意义吗?

您很可能看到了nagle算法的效果。 s_算法


TCP将在短时间内“等待”更多数据,并在单个数据包中一起发送,UDP将在其中发送每个数据报。

您可以使用一些网络流量监控工具(如ethereal或wireshark)来监控传输,以查看到底发生了什么。您是在UDP中使用连接的套接字还是正在调用sendto?此外,客户端和服务器是否在同一局域网上?我明白这一点,但为什么只有通过以太网连接时,TCP才会更快,但一旦切换到无线,UDP就会更快,这正是我所期望的。naggle算法在“填充”时起作用直到MTU的数据包,但在这种情况下,数据包的大小为30K,因此不会产生任何影响。关于无线性能,这可能是由于更多的重传减慢了TCP,而UDP根本不在乎