Udp广播vs单播:哪个更快?

时间:2013-09-05 16:07:42

标签: networking udp

我有一个关于UDP传输的问题:如果数据报的传输时间被称为广播或单播(相同的数据报包和网络),它的传输时间如何不同。哪些条件会影响广播/单播数据包的传输时间? socket.send(数据包)调用的时间有何不同?

THX

PS:Wifi是我正在使用的网络

2 个答案:

答案 0 :(得分:2)

在传输帧方面,它取决于底层MAC层。

使用以太网,我们使用CSMA / CD,它基本上传输帧,如果遇到冲突,它会停止发送并丢弃帧。

使用802.11(无线),我们使用CSMA / CA.在这种方法中,发送单播更昂贵(并且花费更多时间),因为它在发送单播帧之前执行RTS / CTS(请求发送/清除发送)功能。对于广播,802.11不做任何此类事情因此更快。但是,与单播帧相比,它也更不可靠。

答案 1 :(得分:1)

这取决于网络,这取决于您认为“转移时间”的一部分。对于在以太网LAN(有线或无线)上发送,大多数发送堆栈都是相同的 - 唯一的区别在于确定要使用的以太网地址,其中广播可能更快(因为它使用固定的广播地址),而单播可能必须进行ARP查找才能找到地址。但如果地址在ARP缓存中,则可能没有区别。

接下来在ethnet本身,如果它的无线或桥接(共享)有线,则没有区别 - 它只是一个发送到地址的数据包。但是,如果它是一个交换的以太网,则广播更有可能发生冲突(如果任何交换机端口忙,它将发生冲突,而不仅仅是目标端口),这可能会降低它的速度。

最后在接收端,广播有多个接收器,而单播只有一个。广播接收器可能具有不同的速度和负载水平,因此它们处理分组所花费的时间不同。因此,如果您需要等待所有人处理它,它可能会更慢,但如果您只需要一个,它可能会更快。