通过 TCP/UDP 套接字发送文件

通过 TCP/UDP 套接字发送文件

我正在阅读一篇文章,其中介绍了 TCP 和 UDP。最后我明白了 UDP 比 TCP 快,但它不可靠。所以如果我要发送文件,如果使用 UDP,它会比 TCP 更快吗?有人能解释一下它为什么比 TCP 传输得更快吗?

答案1

它可以更快,因为它不需要握手就可以开始发送带有有效载荷的数据包(UDP 没有连接的概念 - 您只需发送数据包并希望另一端接收内容)并且数据包头稍微小一些(尽管对于导致发送大数据包的批量流量来说,这可能并不那么重要)。

不过,您不会想以这种方式发送数据 - 您必须实现丢失数据包检测、数据包重新发送、数据包重新排序(它们到达的顺序并不总是与发送的顺序相同)、拥塞检测等 TCP 为您完成的功能。一旦您将所有这些功能添加进去,您几乎肯定会发现最终速度并不比 TCP 快(甚至慢得多),而且您已经做了很多工作才达到这个目标。

TCP 适用于丢失的数据包中的信息不需要重新发送的情况,来实现您自己的流量控制,或者您正在包装 TCP 流和类似流(即您正在实现 VPN - 当出现间歇性拥塞时,通过 TCP 的 TCP 可能会出现严重的性能问题),它不适合传输批量数据,例如在尝试可靠地传输文件时(当然,VPN 情况除外,但您仍然在 VPN 的包装器中使用 TCP)。

相关内容