1

我对 iso/osi 网络堆栈的传输层有疑问。通常认为 TCP 可靠但速度慢,而 UDP 速度快但不可靠。在一些网络应用程序中,必须使用 TCP 传输协议来实现应用程序级 ACK 系统,以管理链路中断等。假设应用场景是这样的:本地(小型)网络,典型的小包大小(最大 512 字节),应用级 ack 系统实现。为什么不使用 UDP 协议作为传输协议,以利用其速度、低延迟和广播通信等特性呢?

谢谢大家。

4

2 回答 2

1

如果您不关心消息的传递(失败或成功传递),那么 UDP 将始终是最佳选择。但是如果您想确定消息是传递还是失败,则不要考虑其他协议而不是 UDP .

于 2013-11-11T08:50:23.193 回答
1

在小型 LAN 中,使用 UDP 应该不是什么大问题,因为传输的数据不是太“重要”(这意味着如果数据包丢失也没有问题)。有关该场景的更多信息是必要的,如果您使用 UDP,您必须实现检查您是否手动收到发送者的所有信息的功能。

如果您需要速度并且丢失的数据包没有问题(例如语音聊天),请使用 UDP。

于 2013-11-11T08:55:46.420 回答