廣播和多播僅用于UDP赤赊,它們對需將報文同時傳往多個接收者的應用來說十分重要。TCP是一個面向連接的協(xié)議舷手,它意味著分別運行與兩主機(由IP地址確定)內(nèi)的兩進程(由端口號確定)間存在一條連接。
單播(unicast):以太網(wǎng)幀發(fā)往單個目的主機,目的地址指明單個接收接口
廣播:一個主機要向網(wǎng)上的所有其他主機發(fā)送幀
多播:幀僅傳送給屬于多播組的多個主機
為了弄清廣播和多播绢陌,需要了解主機對信道傳送過來幀的過濾過程
首先,網(wǎng)卡查看由信道傳送過來的幀熔恢,確認是否接收該幀脐湾,若接收后就將它傳往該設備驅(qū)動程序。通常網(wǎng)卡僅接收目的地址為網(wǎng)卡物理地址或廣播地址的幀叙淌。另外秤掌,多數(shù)接口均被設置為混合模式,這種模式能接收每個幀的一個復制鹰霍。
對于以太網(wǎng)闻鉴,當?shù)刂分凶罡咦止?jié)的最低位設置為1時表示該地址是一個多播地址,用十六進制可表示為01:00:00:00:00:00(以太網(wǎng)廣播地址全f可看做是以太網(wǎng)多播地址的特例)茂洒。
如果網(wǎng)卡收到一個幀孟岛,它會將這個幀送到設備驅(qū)動程序
設備驅(qū)動程序隨后將數(shù)據(jù)幀傳送給下一層(比如,幀類型指定為IP數(shù)據(jù)報時督勺,就送往IP層)蚀苛,IP層在進行檢測,如果正常在送給下一層(TCP或UDP)
UDP收到IP傳送過來的數(shù)據(jù)報玷氏,根據(jù)目的端口號進行數(shù)據(jù)報過濾堵未,如果當前沒有進程使用該目的端口號,就丟棄該數(shù)據(jù)報并產(chǎn)生一個ICMP不可達報文盏触。
使用廣播的問題在于它增加了對廣播數(shù)據(jù)不感興趣主機的處理負荷渗蟹。你比如說拿一個使用UDP廣播應用作為例子,如果網(wǎng)內(nèi)有50個主機赞辩,但僅有20個參與該應用雌芽,每次這20個主機中的一個發(fā)送UDP廣播數(shù)據(jù)報時,其余30個主機不得不處理這些廣播數(shù)據(jù)報辨嗽,一直到UDP層世落,收到的UDP廣播數(shù)據(jù)報才被丟棄。這30個主機丟棄UDP廣播數(shù)據(jù)報是因為這些主機沒有使用這個目的端口糟需。
多播的出現(xiàn)減少了對應用不感興趣主機的處理負荷屉佳。
使用多播,主機可以加入一個或多個多播組洲押。這樣武花,網(wǎng)卡將獲悉該主機屬于哪個多播組,然后僅接收主機所在多播組的那些多播幀杈帐。
廣播
受限的廣播
受限的廣播地址是255.255.255.255.該地址用于主機配置過程中IP數(shù)據(jù)報的目的地址体箕,此時专钉,主機可能還不知道它所在網(wǎng)絡的網(wǎng)絡掩碼,甚至連它的IP地址也不知道累铅。
在任何情況下跃须,路由器都不轉(zhuǎn)發(fā)目的地址為受限的廣播地址的數(shù)據(jù)報,這樣的數(shù)據(jù)報僅出現(xiàn)在本地網(wǎng)絡中
指向網(wǎng)絡的廣播
指向網(wǎng)絡的廣播地址是主機號全1的地址娃兽,比如A類廣播地址:netid.255.255.255菇民,netid為A類網(wǎng)絡的網(wǎng)絡號
一個路由器必須轉(zhuǎn)發(fā)指向網(wǎng)絡的廣播,但它也必須有一個不進行轉(zhuǎn)發(fā)的選擇
指向子網(wǎng)的廣播
指向子網(wǎng)的廣播地址為主機號為全1且有特定子網(wǎng)號的地址换薄。作為子網(wǎng)直接廣播地址的IP地址需要了解子網(wǎng)的掩碼玉雾。
比如:路由器收到發(fā)往128.1.2.255的數(shù)據(jù)報翔试,當B類網(wǎng)絡128.1的子網(wǎng)掩碼為255.255.255.0時轻要,該地址就是指向子網(wǎng)的廣播地址;但如果該子網(wǎng)的掩碼為255.255.254.0垦缅,該地址就不是指向子網(wǎng)的廣播地址
指向所有子網(wǎng)的廣播
指向所有子網(wǎng)的廣播也需要了解目的網(wǎng)絡的子網(wǎng)掩碼冲泥,以便與指向網(wǎng)絡的廣播地址區(qū)分開。指向所有子網(wǎng)的廣播地址的子網(wǎng)號及主機號為全1壁涎。
例如:如果目的子網(wǎng)掩碼為255.255.255.0凡恍,那么IP地址128.1.255.255是一個指向所有子網(wǎng)的廣播地址。然而怔球,如果網(wǎng)絡沒有劃分子網(wǎng)嚼酝,這就是一個指向網(wǎng)絡的廣播。
廣播的例子
指向子網(wǎng)的廣播我們是可以用的竟坛。
也能顯示出廣播與ARP之間的相互作用闽巩,執(zhí)行ping命令前ARP緩存是空的,而執(zhí)行后是滿的(也就是說担汤,對網(wǎng)內(nèi)其他每個響應回顯請求的主機在ARP緩存中均有一個條目)
多播
IP多播提供兩類服務:
1涎跨、向多個目的地址傳送數(shù)據(jù)。
比如交互式會議系統(tǒng)崭歧,多個接收者分發(fā)郵件或新聞隅很。
2、客戶對服務器的請求
多播組地址
多播組地址包括為1110的最高4bit和多播組號率碾,他們通呈逵可表示為點分十進制數(shù),范圍從224.0.0.0到239.255.255..255
能夠接收發(fā)往一個特定多播組地址數(shù)據(jù)的主機集合稱為主機組(host group)
一個主機組可跨越多個網(wǎng)絡所宰。
主機組中成員可隨時加入或離開主機組审编,主機組對主機的數(shù)量沒有限制,同時不屬于某一個主機組的主機可以向該組發(fā)送消息
一些多播組地址被IANA確定為知名地址歧匈,它們也被當作永久主機組垒酬。(但是它們的組成員卻不是永久的)
例如:224.0.0.1代表“該子網(wǎng)內(nèi)的所有系統(tǒng)組” 224.0.0.2代表“該子網(wǎng)內(nèi)的所有路由器組” 224.0.1.1用作網(wǎng)絡時間NTP 224.0.0.9用作RIP-2 224.0.1.2用作SGI公司的dogfight應用。
多播組地址到以太網(wǎng)地址的轉(zhuǎn)換
IANA擁有一個以太網(wǎng)地址塊,即高位24bit為00:00:5e(十六進制表示)勘究,這意味著該地址塊所擁有的地址范圍從00:00:5e:00:00:00到00:00:5e:ff:ff:ff
IANA將其中的一般分配為多播地址矮湘。
為了指明一個多播地址,任何一個以太網(wǎng)地址的首字節(jié)必須是01口糕,這意味著與IP多播相對應的以太網(wǎng)地址范圍從01:00:5e:00:00:00到01:00:5e:7f:ff:ff
多播進程將目的IP地址指明為多播地址缅阳,設備驅(qū)動程序?qū)⑺D(zhuǎn)換為響應的以太網(wǎng)地址,然后把數(shù)據(jù)發(fā)送出去景描。
這些接收進程必須通知它們的IP層十办,它們想接收的發(fā)往給定多播地址的數(shù)據(jù)報,并且設備驅(qū)動程序必須能夠接收這些多播幀超棺。這個過程就是“加入一個多播組”
當一個主機收到多播數(shù)據(jù)報時向族,它必須向?qū)儆谀莻€多播組的每個進程均傳送一個復制,這和單個進程收到單播UDP數(shù)據(jù)報的UDP不同棠绘。使用多播件相,一個主機上可能存在多個屬于同一多播組的進程。
小結(jié)
廣播是將數(shù)據(jù)報發(fā)送到網(wǎng)絡中的所有主機
多播是將數(shù)據(jù)報發(fā)送到網(wǎng)絡的一個主機組
目前有四種類型的廣播地址:受限的廣播氧苍、指向網(wǎng)絡的廣播夜矗、指向子網(wǎng)的廣播和指向所有子網(wǎng)的廣播。
D類IP地址被稱為多播組地址让虐,通過將其低位23bit映射到相應以太網(wǎng)地址中便可實現(xiàn)多播組地址到以太網(wǎng)地址的轉(zhuǎn)換紊撕。由于地址映射是不唯一的 ,因此需要其他的協(xié)議實現(xiàn)額外的數(shù)據(jù)報過濾赡突。