受限的廣播
受限的廣播地址是255.255.255.255。該地址用于主機(jī)配置過(guò)程中IP數(shù)據(jù)報(bào)的目的地址,此時(shí),主機(jī)可能還不知道它所在網(wǎng)絡(luò)的網(wǎng)絡(luò)掩碼,甚至連它的IP地址也不知道。在任何情況下,路由器都不轉(zhuǎn)發(fā)目的地址為受限的廣播地址的數(shù)據(jù)報(bào),這樣的數(shù)據(jù)報(bào)僅出現(xiàn)在本地網(wǎng)絡(luò)中。
一個(gè)未解的問(wèn)題是:如果一個(gè)主機(jī)是多接口的,當(dāng)一個(gè)進(jìn)程向本網(wǎng)廣播地址發(fā)送數(shù)據(jù)報(bào)時(shí),為實(shí)現(xiàn)廣播,是否應(yīng)該將數(shù)據(jù)報(bào)發(fā)送到每個(gè)相連的接口上?如果不是這樣,想對(duì)主機(jī)所有接口廣播的應(yīng)用必須確定主機(jī)中支持廣播的所有接口,然后向每個(gè)接口發(fā)送一個(gè)數(shù)據(jù)報(bào)復(fù)制。
大多數(shù)BSD系統(tǒng)將255.255.255.255看作是配置后第一個(gè)接口的廣播地址,并且不提供向所屬具備廣播能力的接口傳送數(shù)據(jù)報(bào)的功能。不過(guò),routed(見10.3節(jié))和rwhod(BSDrwho客戶的服務(wù)器)是向每個(gè)接口發(fā)送UDP數(shù)據(jù)報(bào)的兩個(gè)應(yīng)用程序。這兩個(gè)應(yīng)用程序均用相似的啟動(dòng)過(guò)程來(lái)確定主機(jī)中的所有接口,并了解哪些接口具備廣播能力。同時(shí),將對(duì)應(yīng)于那種接口的指向網(wǎng)絡(luò)的廣播地址作為發(fā)往該接口的數(shù)據(jù)報(bào)的目的地址。
HostRequirementsRFC沒有進(jìn)一步涉及多接口主機(jī)是否應(yīng)當(dāng)向其所有的接口發(fā)送受限的廣播。
指向網(wǎng)絡(luò)的廣播
指向網(wǎng)絡(luò)的廣播地址是主機(jī)號(hào)為全1的地址。A類網(wǎng)絡(luò)廣播地址為netid.255.255.255,其中netid為A類網(wǎng)絡(luò)的網(wǎng)絡(luò)號(hào)。一個(gè)路由器必須轉(zhuǎn)發(fā)指向網(wǎng)絡(luò)的廣播,但它也必須有一個(gè)不進(jìn)行轉(zhuǎn)發(fā)的選擇。
指向子網(wǎng)的廣播
指向子網(wǎng)的廣播地址為主機(jī)號(hào)為全1且有特定子網(wǎng)號(hào)的地址。作為子網(wǎng)直接廣播地址的IP地址需要了解子網(wǎng)的掩碼。例如,如果路由器收到發(fā)往128.1.2.255的數(shù)據(jù)報(bào),當(dāng)B類網(wǎng)絡(luò)128.1的子網(wǎng)掩碼為255.255.255.0時(shí),該地址就是指向子網(wǎng)的廣播地址;但如果該子網(wǎng)的掩碼為255.255.254.0,該地址就不是指向子網(wǎng)的廣播地址。
指向所有子網(wǎng)的廣播
指向所有子網(wǎng)的廣播也需要了解目的網(wǎng)絡(luò)的子網(wǎng)掩碼,以便與指向網(wǎng)絡(luò)的廣播地址區(qū)分開。指向所有子網(wǎng)的廣播地址的子網(wǎng)號(hào)及主機(jī)號(hào)為全1。例如,如果目的子網(wǎng)掩碼為255.255.255.0,那么IP地址128.1.255.255是一個(gè)指向所有子網(wǎng)的廣播地址。然而,如果網(wǎng)絡(luò)沒有劃分子網(wǎng),這就是一個(gè)指向網(wǎng)絡(luò)的廣播。
當(dāng)前的看法[Almquist1993]是這種廣播是陳舊過(guò)時(shí)的,更好的方式是使用多播而不是對(duì)所有子網(wǎng)的廣播。
[Almquist1993]指出RFC922要求將一個(gè)指向所有子網(wǎng)的廣播傳送給所有子網(wǎng),但當(dāng)前的路由器沒有這么做。這很幸運(yùn),因?yàn)橐粋€(gè)因錯(cuò)誤配置而沒有子網(wǎng)掩碼的主機(jī)會(huì)把它的本地廣播傳送到所有子網(wǎng)。例如,如果IP地址為128.1.2.3的主機(jī)沒有設(shè)置子網(wǎng)掩碼,它的廣播地址在正常情況下的默認(rèn)值是128.1.255.255。但如果子網(wǎng)掩碼被設(shè)置為255.255.255.0,那么由錯(cuò)誤配置的主機(jī)發(fā)出的廣播將指向所有的子網(wǎng)。
1983年問(wèn)世的4.2BSD是第一個(gè)影響廣泛的TCP/IP的實(shí)現(xiàn),它使用主機(jī)號(hào)全0作為廣播地址。一個(gè)最早提到廣播IP地址的是IEN212[GurwitzandHinden1982],它提出用主機(jī)號(hào)中的1比特來(lái)表示IP廣播地址(IENs是互聯(lián)網(wǎng)試驗(yàn)注釋,基本上是RFC的前身)。RFC894[Hornig1984]認(rèn)為4.2BSD使用不標(biāo)準(zhǔn)的廣播地址,但RFC906[Finlayson1984]注意到對(duì)廣播地址還沒有Internet標(biāo)準(zhǔn)。RFC編輯在RFC906中加了一個(gè)腳注承認(rèn)缺少標(biāo)準(zhǔn)的廣播地址,并強(qiáng)烈推薦將主機(jī)號(hào)全1作為廣播地址。盡管1986年的4.3BSD采用主機(jī)號(hào)全1表示廣播地址,但直到90年代早期,操作系統(tǒng)(著名的是SunOS4.x)還繼續(xù)使用非標(biāo)準(zhǔn)的廣播地址。
眾信咨詢:互聯(lián)網(wǎng)資質(zhì)代理誠(chéng)信品牌