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

林灣村龍貓發表於2019-05-07

一、引言

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

二、廣播

有時一個主機要向網上的所有其他主機傳送幀,這就是廣播。廣播有四種地址型別如下:

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

三、多播

多播出現的原因是需要向多個目的地址傳送資料。目前,大多數的網路卡經過配置都能接收目的地址為多播地址或某些子網多播地址的幀。對於乙太網,當地址中最高位元組的最低位設定為1時表示該地址是一個多播地址,用十六進位制可表示為 01:00:00:00:00:00(乙太網廣播地址ff:ff:ff:ff:ff:ff可看作是乙太網多播地址的特例)。

1. 多播組地址

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

圖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主機用它將主機的多點傳送成員人數報告給臨近的多點傳送路由器。

圖3.IGMP協議

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

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

微信公眾號rudy_tan_home

相關文章