四種I P廣播地址詳談 |
發布時間: 2012/5/21 13:15:40 |
受限的廣播 受限的廣播地址是255.255.255.255。該地址用于主機配置過程中IP數據報的目的地址,此時,主機可能還不知道它所在網絡的網絡掩碼,甚至連它的IP地址也不知道。在任何情況下,路由器都不轉發目的地址為受限的廣播地址的數據報,這樣的數據報僅出現在本地網絡中。 一個未解的問題是:如果一個主機是多接口的,當一個進程向本網廣播地址發送數據報時,為實現廣播,是否應該將數據報發送到每個相連的接口上?如果不是這樣,想對主機所有接口廣播的應用必須確定主機中支持廣播的所有接口,然后向每個接口發送一個數據報復制。 大多數BSD系統將255.255.255.255看作是配置后第一個接口的廣播地址,并且不提供向所屬具備廣播能力的接口傳送數據報的功能。不過,routed(見10.3節)和rwhod(BSDrwho客戶的服務器)是向每個接口發送UDP數據報的兩個應用程序。這兩個應用程序均用相似的啟動過程來確定主機中的所有接口,并了解哪些接口具備廣播能力。同時,將對應于那種接口的指向網絡的廣播地址作為發往該接口的數據報的目的地址。 HostRequirementsRFC沒有進一步涉及多接口主機是否應當向其所有的接口發送受限的廣播。 指向網絡的廣播 指向網絡的廣播地址是主機號為全1的地址。A類網絡廣播地址為netid.255.255.255,其中netid為A類網絡的網絡號。一個路由器必須轉發指向網絡的廣播,但它也必須有一個不進行轉發的選擇。 指向子網的廣播 指向子網的廣播地址為主機號為全1且有特定子網號的地址。作為子網直接廣播地址的IP地址需要了解子網的掩碼。例如,如果路由器收到發往128.1.2.255的數據報,當B類網絡128.1的子網掩碼為255.255.255.0時,該地址就是指向子網的廣播地址;但如果該子網的掩碼為255.255.254.0,該地址就不是指向子網的廣播地址。 指向所有子網的廣播 指向所有子網的廣播也需要了解目的網絡的子網掩碼,以便與指向網絡的廣播地址區分開。指向所有子網的廣播地址的子網號及主機號為全1。例如,如果目的子網掩碼為255.255.255.0,那么IP地址128.1.255.255是一個指向所有子網的廣播地址。然而,如果網絡沒有劃分子網,這就是一個指向網絡的廣播。 當前的看法[Almquist1993]是這種廣播是陳舊過時的,更好的方式是使用多播而不是對所有子網的廣播。 [Almquist1993]指出RFC922要求將一個指向所有子網的廣播傳送給所有子網,但當前的路由器沒有這么做。這很幸運,因為一個因錯誤配置而沒有子網掩碼的主機會把它的本地廣播傳送到所有子網。例如,如果IP地址為128.1.2.3的主機沒有設置子網掩碼,它的廣播地址在正常情況下的默認值是128.1.255.255。但如果子網掩碼被設置為255.255.255.0,那么由錯誤配置的主機發出的廣播將指向所有的子網。 1983年問世的4.2BSD是第一個影響廣泛的TCP/IP的實現,它使用主機號全0作為廣播地址。一個最早提到廣播IP地址的是IEN212[GurwitzandHinden1982],它提出用主機號中的1比特來表示IP廣播地址(IENs是互聯網試驗注釋,基本上是RFC的前身)。RFC894[Hornig1984]認為4.2BSD使用不標準的廣播地址,但RFC906[Finlayson1984]注意到對廣播地址還沒有Internet標準。RFC編輯在RFC906中加了一個腳注承認缺少標準的廣播地址,并強烈推薦將主機號全1作為廣播地址。盡管1986年的4.3BSD采用主機號全1表示廣播地址,但直到90年代早期,操作系統(著名的是SunOS4.x)還繼續使用非標準的廣播地址。 本文出自:億恩科技【www.vbseamall.com】 |