IP多播與NAT地址轉化


IP多播

  1. 與單播相比,在一對多的通信中,多播可以大大減少網絡資源。在互聯網上進行多播就叫做IP多播,IP多播所傳送的分組需要使用IP多播地址。
  2. 如果某台主機想要收到某個特定的多播分組,那么怎樣才能是這個多播數據報傳到這台主機?顯然IP數據報的目目的地址一定不能寫入這台主機的IP地址。這是因為在同一時間可能會有成千上萬台主機加入到同一個多播組。多播組不可能將那么多的地址寫入首部。在多播數據報的目的地址寫入的是多播組的標識符,然后設法讓加入到這個多播組的主機的IP地址與多播組標識在一起。
  3. 其實多播組的標識符就是IP地址中的D類地址。D類地址的前四位都是1110,因此D類地址的范圍是224.0.0.0到239.255.255.255.255。
  4. 多播地址只能是用於目的地址,而並不適用於源地址。
  5. IP多播可以分為兩種:
    1. 在本局網進行硬件多播:
      1. 互聯網號碼指派局(IANA)擁有的以太網地址塊的高24位為00-00-5E,因此TCP/IP協議使用的以太網多播地址快為00-00-5E-00-00-00到00-00-5E-FF-FF-FF
    2. 在互聯網的范圍進行多播

網際組管理協議(ICMP)和多播路由選擇協議

  1. IP多播需要兩種協議:
    1. image
    2. 圖中標有IP地址的四台主機都參與了一個多播組,其組地址為229。15.37.123,多播數據報當傳到路由器R1,R,R3多個分播組,而不應該傳到R4路由器,因為與R3連接的局域網現在沒有這個多播組成員,但是這些路由器又怎么知道多播組的成員呢?這就要利用一種協議,叫做網際組管理協議(IGMP:Internet Group Management Protocol)
    3. 上圖是強調了IGMP的本地適用范圍,請注意,IGMP並非在互聯網范圍內對所有主機多播成員進行管理的協議。IGMP並不知道IP多播組包含的成員數,也不知道這些成員都分布在哪些網絡上等等。IGMP協議是讓連接在本地局域網上的多播路由器知道本局域網上是否有主機參加或者退出了某個多播組
    4. 僅有IGMP協議是不能完成多播任務的,連接在局域網上的多播路由器還必須和互聯網上的其他多播路由器協同工作,以便把多播數據報用最小的代價傳送給所有的組成員。這就需要使用多播路由選擇協議。但是多播路由選擇協議要比單播路由選擇協議復雜得多:
      1. image
      2. 如圖有兩個多播組,多播組1的成員有主機A,B,C,多播組2有主機D,E,F。這些主機分布在三個網絡上(N1.N2,N3).
        1. 路由器R不應當向網絡N3轉發多播分組1的分組,因為網絡N3上並沒有多播組1的成員,但是每一台主機都可以隨時加入或者退出一個多播組中。例如主機G現在加入了多播組1,那么從這時起,路由器R就必須向網絡N3轉發多播1的分組,也就是說,多播轉發必須動態的適應多播成員的變化(此時的網絡拓撲結構並未發生變化),注意:單播路由選擇通常是在網絡拓撲結構發生變化才需要更新路由。
  2. 網際組管理協議IGMP
    1. 與ICMP相似,IGMP使用IP數據報傳遞報文,但它也向IP提供服務。
    2. IGMP工作分為兩個階段:
      1. 第一階段:當某台主機加入新的多播組時,該主機應向多播組的多播地址發送一個IGMP報文,聲明自己要成為該組的成員,本地的多播路由器收到IGMP報文后,還要利用多播路由選擇協議把這種成員關系轉發給互聯網上的其它多播路由器。
      2. 第二階段:組成員關系時是動態的,本地多播路由器要周期性的探尋本地局域網上的主機,以便知道這些主機是否還是組的成員。只要有一台主機對某個組相應,那么這個多播路由器就認為這個組是活躍的。但一個組在經過幾次的探尋后仍然沒有一個主機相應,多播路由器就認為本網絡上的主機都已經離開了這個組,因此就不再把這個組的成員關系轉發給其他的多播路由器。
  3. IGMP協議設計的非常的仔細,避免了多播控制信息給網絡增加大量的開銷,IGMP采用的措施如下:
    1. 在主機和多播路由器之間的所有通信都是IP多播,只要有可能,攜帶IGMP報文的數據報都采用硬件多播來傳送。因此在支持硬件多播的基礎上,沒有參與IP多播的主機不會收到IGMP報文。
    2. 多播路由器在尋探組成員之間關系時,只需要對所有組發送一個請求信息的詢問報文,並不需要對每一個組發送一個詢問報文。默認的詢問速率是每125秒發送一次(通信量並不會太大)。
    3. 當同一個網絡連接有幾個多播路由器時,他們能夠迅速和有效的選擇其中一個來尋探主機的成員關系。因此,網絡上有多個多播路由器並不會引起IGMP通信量的增大。
    4. 在IGMP的詢問報文中有一個數值N,它指明一個最長響應時間(默認是10秒),當收到詢問后,主機在0到N中隨機選擇一個發送響應所需經過的時延。
    5. 同一組內的每一台主機都要設置監聽響應,只要有本組的其他主機先發送了響應,自己就不能再發送響應了。這樣就抑制了不必要的通信量。

虛擬專用網VPN和網絡地址轉換NAT

  1. 虛擬專用網VPN

    ​ 由於IP地址資源的緊缺,並且很多計算機並不需要和互聯網相連。假設在一個機構內部的計算進通信也是采用TCP/IP協議,那么從原則上來講,對於這些僅在內部機構使用的計算機就可以由本機機構自行分配IP地址,也就是說,讓這些計算機使用僅在本機機構有效的IP地址(這種地址稱之為本地地址),而並不需要向互聯網的管理機構申請全球唯一IP地址(這種地址稱之為全球地址)。這樣就大大節約了寶貴的全球IP地址資源。

    ​ 但是,如果過任意選擇一些IP地址作為本機構內部使用的本地地址,那么在某種情況下可能會引起一些麻煩,例如,有時機構內部的某台主機需要和互聯網連接,那么在這種僅在內部使用的本地地址快就有可能會和互聯網上的某個IP地址重合,這樣就會出現地址的二義性問題。

    ​ 為了解決這個問題,RFC1918指明了一些專用地址(private address),這只地址只能用於一個機構的通信,而並不能用於和互聯網上的主機通信。換言之,專用地址只能用於本地地址而不能用作全球地址。在互聯網上的所有路由器,對目的地址時專用地址的數據報一律不允許轉發。RFC6890全面的給出了所有特殊用途的IPV4地址,但三個專用地址款並未發生變化,即:

    ​ (1):10.0.0.0-10.255.255.255

    ​ (2):172.16.0.0-172.31.255.255

    ​ (3):192.168.0.0-192.168.255.255

    采用這樣的專用IP地址的互聯網稱之為專用互聯網或本地互聯網,有時候一個很大的機構的許多部門分布很廣,這些部門要經常交互信息,這可以有兩種辦法:

    ​ (1):租用電信公司的通信線路為本機構專用。這種方法雖然簡單方便,但是線路的租金太高,一般難以承受。

    ​ (2):利用公網的互聯網絡作為本機構各專用網之間的通信載體,這樣的專用網又稱之為虛擬專用網(VPN)。之所以稱之為"專用網"是因為這種網路是為本機構的主機用於內部通信使用的。而並不是用於和網絡外非機構的主機通信,如果專用網不同網點之間的通信必須通過公用的互聯網絡,但又有保密的要求,那么所有通過互聯網傳輸的數據包必須要加密,加密需要采用的協議將在以后討論。。。"虛擬"表示的是"好像是",但實際上並不是,因為現在並沒有真正的使用通信專線。而VPN只是在效果上和真正的專用網一樣。一個機構要構建自己的VPN就必須為它的每一個場所購買專門的硬件和軟件,並進行配置在,使每一個場所的VPN系統都知道其他場所的地址。

    ​ 如圖以兩個場所為例說明如何使用IP隧道技術實現虛擬網絡專用:

    image

    ​ 假如某個機構在兩個相隔較遠的場所建立了專用網A和B,其網絡地址分別為10.1.0.0和10.2.0.0。現在這兩個場所需要通過公網的互聯網構成了一個VPN。顯然,每一個場所至少要有一個路由器具有合法的全球IP地址。路由器R1和R2在專用網內部網絡接口地址則是使用專用網的本地地址。

    網絡地址轉換協議NAT

    ​ 下面討論的是在專用網內部的一些主機本來就已經分配到了本地IP地址(本專用網內的專用地址),但現在又想和互聯網上的主機通信(並不需要加密),那么應當采取什么措施?

    ​ 最簡單的辦法就是設法再申請一些全球IP,但在這種情況下是不容易做大的,因為全球IPV4的地址已經所剩無幾了,目前使用最多的是采用網絡地址轉換協議

    網絡轉換協議NAT(Network address Translation)方法是在1994年提出的,這個方法需要在專用網的的路由器上安裝NAT軟件,裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址,這樣,所有使用本地地址的主機在與外界通信時,都在在NAT路由器上將其本地地址轉化為全球IP地址,才能和互聯網連接。

      如圖時NAT路由器的工作原理:
    

    image

    ​ 在圖中,專用網192.168.0.0內所有主機的IP地址都是本地IP地址為192.168.x.x。NAT路由器至少要有一個全球IP地址,才能和互聯網相連。

    ​ NAT路由器在接收到從專網內部主機A發往互聯網上主機B的IP數據報:源IP地址時192.168.0.3,而目的地址為213.18.2.4。NAT 路由器會把IP數據報的源IP地址192.168.0.3轉為新的IP地址(即NAT路由器全球唯一IP地址)172.38.1.5,然后轉發出去。因此,當主機B接收到這個IP數據報時,以為A的IP地址為172.38.1.5。當B給A發送IP數據報,IP數據報的目的IP地址就是路由器NAT地址

    1. 38.1.5。B並不知道A的專用地址為192.168.0.3,就算知道了也不能使用,因為互聯網上的路由器不允許轉發目的地址是專用網本地IP地址的IP數據報。當NAT路由器接收到互聯網上的主機B發送過來的IP數據報,還要進行一次IP地址轉換。通過NAT轉換,就可以把IP為172.38.1.5轉化為192.168.0.3(主機A的真正地址)。在NAT路由器中,還有一張NAT地址轉化表,通過NAT地址轉換表,第一列“方向”為“出”表示離開專用網。

      image

      由此可見,當NAT路由器具有n個全球IP地址時,專用網內最多同時有n太主機接入互聯網。這樣就可以使專用網內較多數量的主機輪詢使用NAT路由器的全球唯一IP地址。

      ​ 為了更加有效的利用NAT路由器的全球IP地址,現在 常用的NAT地址轉換表把運輸層的端口號也利用上,這樣,就可以使多個擁有本地地址的主機,共用一個NAT路由器上的全球唯一IP地址,因而可以同時和互聯網上的不同主機進行通信。

      ​ 使用端口號的NAT也叫做網絡地址與端口號轉換(NAPT:Network Address And Port Translation),而並不使用端口號的NAT叫做傳統的NAT。

      image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM