1. 程式人生 > >網路中的廣播地址

網路中的廣播地址

Broadcast Address(廣播地址)

 專門用於同時向網路中所有工作站進行傳送的一個地址。在使用TCP/IP 協議的網路中,主機標識段hostid 為全1 的IP 地址為廣播地址,廣播的分組傳送給hostid 段所涉及的所有計算機。例如,對於10.1.1.0 (255.255.255.0 )網段,其廣播地址為10.1.1.255 (255 即為2 進位制的11111111 ),當發出一個目的地址為10.1.1.255 的分組(封包)時,它將被分發給該網段上的所有計算機。
 


廣播地址主要有兩類

 廣播地址應用於網路內的所有主機
1)有限廣播
      它不被路由但會被送到相同物理網路段上的所有主機
      IP地址的網路欄位和主機欄位全為1就是地址255.255.255.255
 2)直接廣播
      網路廣播會被路由,關並被送到專門網路上的每臺主機
      IP地址的網路欄位定義這個網路,主機欄位通常全為1,如 192.168.10.255


廣播和廣播地址

 1. TCP/IP協議棧中, 傳輸層只有UDP可以廣播.
2. 只能對同一子網內部廣播, 廣播資料包不經過路由器.
 3. UDP的廣播地址為255.255.255.255
 4. 在winsock實現中, 有一個選項對應是否允許廣播.
   必須呼叫setsockopt開啟該選項.
5. 開啟後, 用sendto向255.255.255.255傳送的資料包全部廣播. 

 很多區域網都定義了一個特殊的保留地址, 稱為廣播地址. 當資訊頭中目的地址域的內容為廣播地址時, 該幀被區域網上所有計算機接收. 這個過程稱為廣播.


子網掩碼與廣播地址

 合法的廣播地址就是主機的網路地址加上最大的主機號。網路地址通過機器的ip地址與子網掩碼按位與得出,我們以ip地址為10.78.202.175 ,子網掩碼為255.255.255.0。
 為例來分析一下上面的幾個概念
 首先將這兩個東西換算成二進位制程式碼
 ip地址:00001010.01001110.11001010.10101111
 子網掩碼:11111111.11111111.11111111.00000000
 按位與之後得出網路地址:00001010.01001110.11001010.0000000
 十進位制表示就是10.78.202.0
 這個網路地址理論上可以有255臺主機,但是除去網路地址
 0和廣播地址255之後,實際上只能有253臺主機
 那麼我們可以知道175就是你這臺機器的主機號,
 廣播地址就是最大的主機號,也就是10.78.202.255。
 有沒有255.255.255.255可能成為一個合法的廣播地址呢?
 答案是不可能因為0.0.0.0不是一個合法子網掩碼。