2013-09-05 124 views
1

我有一個關於UDP傳輸的問題:如果數據報的傳輸時間被稱爲廣播或單播(相同的數據報包和網絡),它是如何不同的。哪些條件影響廣播/單播數據包的傳輸時間? socket.send(packet)調用的時間如何不同?Udp廣播vs單播:哪個更快?

THX

PS:無線上網的是我與

回答

2

工作在發送幀而言的網絡,它是取決於底層MAC層。

使用以太網,我們使用CSMA/CD,它基本上傳輸幀,如果遇到碰撞,它會停止發送並丟棄幀。

對於802.11(無線),我們使用CSMA/CA。在這種方法中,發送單播更昂貴(並且需要更多時間),因爲它在發送單播幀之前執行RTS/CTS(請求發送/清除發送)技術。對於廣播而言,802.11不會做任何這樣的事情,因此速度更快。但是,與單播幀相比,它也更加不可靠。

+0

因此,如果我想發送一個數據包到例如5設備在wifi網絡中,我必須發送一個廣播包或5個特定的單播包。那麼單播變化需要的時間大約是廣播變化時間的5倍,對吧? – user2224350

+2

大概是的。 802.11中的一個uincast傳輸發生在四個步驟:RTS/CTS/DATA/ACK。由於RTS,CTS和ACK是較小的數據包,因此使用廣播時實際節省的總傳輸時間可能不是5次。但是,如果發生擁塞(高流量),那麼站點會退避,在這種情況下,節省的時間可能會超過5次!所以,當擁塞時,單播所需的時間可能會以非線性的方式增加。 –

1

它取決於網絡,它取決於您考慮的「傳輸時間」的一部分。對於在以太網LAN上發送(無論是有線還是無線),大多數發送棧將是相同的 - 唯一的區別是確定使用的以太網地址,廣播可能更快(因爲它使用固定廣播地址),而單播可能需要進行ARP查找才能找到地址。但是,如果地址在ARP緩存中,則可能沒有區別。

接下來在ethnet本身上,如果它的無線或橋接(共享)有線,沒有區別 - 它只是一個數據包發送到一個地址。但是,如果它是一個交換式以太網,則廣播更有可能遭受衝突(如果任何交換機端口繁忙,將會發生衝突,而不僅僅是目標端口),這可能會降低速度。

最後在接收端,廣播中有多個接收器,而單播只有一個。廣播接收機可能具有不同的速度和負載水平,因此它們在處理數據包所用的時間上有所不同。所以如果你需要等待所有人處理它,它可能會變慢,但如果你只需要一個,它可能會更快。