系列TCP/IP協議-廣播與多播(010)

1、引言

在一開始的IP層介紹的時候就已經提供了三種IP地址:單播地址,廣播地址,多播地址。對於這些通信方式的理解是:單播地址是一對一的通信,廣播是一對多的通信,多播是一對多的通信。多播是對一個特定的通信主體集合的通信。廣播與多播僅僅應用於UDP協議。單播的典型方式是TCP協議。微信

2、廣播

有時一個主機要向網上的全部其餘主機發送幀,這就是廣播。廣播有四種地址類型以下:網絡

  • 受限的廣播地址:255.255.255.255。該地址用於主機配置過程當中IP數據包的目的地址,此時,主機可能還不知道它所在網絡的網絡掩碼,甚至連它的IP地址也不知道。
  • 指向網絡的廣播:主機號爲全1的地址。
  • 指向子網的廣播:主機號爲全1且有特定子網號的地址。
  • 指向全部子網的廣播:全部子網的廣播地址的子網號及主機號爲全1。

3、多播

多播出現的緣由是須要向多個目的地址傳送數據。目前,大多數的網卡通過配置都能接收目的地址爲多播地址或某些子網多播地址的幀。對於以太網,當地址中最高字節的最低位設置爲1時表示該地址是一個多播地址,用十六進制可表示爲 01:00:00:00:00:00(以太網廣播地址ff:ff:ff:ff:ff:ff可看做是以太網多播地址的特例)。cdn

1. 多播組地址

多播的IP地址即D類IP地址,如圖1: blog

圖1.D類IP地址
  不像其餘三類IP地址(A、B、C),分配的28bit均用做多播組號而再也不表示其餘.多播的IP範圍爲:從224.0.0.0到239.255.255.255。   可以接收發往一個特定多播組地址數據的主機集合稱爲主機組 (host group)。一個主機組可跨越多個網絡。主機組中成員可隨時加入或離開主機組。主機組中對主機的數量沒有限制,同時不屬於某一主機組的主機能夠向該組發送信息。

對於多播IP地址到多播物理地址(MAC)轉換以下:進程

  • IANA擁有一個以太網地址塊,即高位24bit爲00:00:5e(十六進制表示),這意味着該地址塊所擁有的地址範圍從00:00:5e:00:00:00到00:00:5e:ff:ff:ff。IANA將其中的一半分配爲多播地址。爲了指明一個多播地址,任何一個以太網地址的首字節必須是 01,這意味着與IP多播相對應的以太網地址範圍從 01:00:5e:00:00:00到01:00:5e:7f:ff:ff
  • 這種地址分配將使以太網多播地址中的23bit與IP多播組號對應起來,經過將多播組號中的低位23bit映射到以太網地址中的低位23bit實現。
  • 因爲多播組號中的最高 5 bit在映射過程當中被忽略,所以每一個以太網多播地址對應的多播組是不惟一的。
    圖2.多播IP與物理地址映射關係

單個物理網絡的多播是簡單的。多播進程將目的 I P地址指明爲多播地址,設備驅動程序將它轉換爲相應的以太網地址,而後把數據發送出去。資源

2.原理

「多播」亦稱「多點傳送」(multicast),也就是一臺主機發出的包能夠同時被其餘多個有資格的主機接收,這臺主機和那些有資格的主機就造成了一個組,他們在組內的通訊是廣播式的。多播的工做原理是,將一個網絡上的某些主機的網卡設置成多播傳送工做模式,指定其不過濾以某一個多播傳送地址做爲目的物理地址的數據幀,這樣,這些主機的驅動程序中就能夠同時接收以該多播傳送地址做爲目的物理地址的數據幀,而其餘主機的驅動程序卻接收不到,這些主機在邏輯上便造成了一個「多播」組。採用這種技術,相對廣播而言,可有效減輕網絡上「多播」組以外的其餘主機的負擔,由於發送給「多播」組的數據不會被傳送到它們的驅動程序中去處理,避免資源的無謂浪費。路由

3.IGMP協議

IGMP(Internet Group Management Protocol Internet組管理協議)用於管理網路協議多播組成員的一種通訊協議。IP主機和相鄰的路由器利用IGMP來建立多播組的組成員。像ICMP用於單播鏈接同樣,IGMP也是IP多播說明的一個完整部分。 IGMP爲互聯網協議的一種,屬於開放系統連接(OSI) 模塊的第三層協議,IP主機用它將主機的多點發送成員人數報告給臨近的多點發送路由器。it

圖3.IGMP協議

  • 這是版本爲1的IGMP
  • IGMP類型:爲1說明是由多播路由器發出的查詢報文,爲 2說明是主機發出的報告報文;
  • 校驗和:同ICMP協議

都看到這裏了,要不要掃二維碼關注一下微信公衆號林灣村龍貓io

微信公衆號rudy_tan_home
相關文章
相關標籤/搜索