/** 本篇博客由汗青ZJF整理并發(fā)布, 轉載請注明出處: http://blog.csdn.net/zjf280441589/article/category/1854365 */ 什么是虛擬網絡互連?所謂虛擬互連網絡也就是邏輯互連網絡,它的意思就是互連起來的各種物理網絡的異構性本來是客觀存在的(比如局域網有的采用的是以太網, 有的采用令牌環(huán)網),但是我們利用 IP 協(xié)議就可以使這些性能各異的網絡從用戶角度來看好像是一個統(tǒng)一的網絡(在網絡的上層, 我們看不到各網絡具體的異構網絡細節(jié))。使用IP 協(xié)議的虛擬互連網絡可簡稱為 IP 網。 好處是: 當互聯(lián)網上的處于不同網絡的主機之間進行通信時, 就好像在一個網絡上通信一樣, 而看不見互連的各具體的網絡異構細節(jié)(如具體的編址方案, 路由選擇協(xié)議等).
IP報文
IP地址分類IP地址的編址方法,共經歷了三個歷史階段。這三個階段是: 1)分類的 IP 地址。這是最基本的編址方法; 2)劃分子網。這是對最基本的編址方法的改進; 3)構成超網。這是比較新的無分類編址方法,提出后很快得到推廣, 并沿用至今;
分類的IP地址:
A)為了適應不同網絡規(guī)模的需求,將IP地址進行分類,不同類型IP地址擁有的主機數(shù)不一樣。兩級的 IP 地址可以記為: IP 地址 ::= { <網絡號>, <主機號>}
B)特殊地址 對于因特網 IP 地址中有特定的專用地址,不作分配(但他們還是IP地址): (1) 主機地址全為"0" 不論哪類網絡,主機地址全為"0"表示指向本網,常用在路由表中。 (2) 主機地址全為"1" 主機地址全為"1"表示廣播地址,向特定的所在網上所有主機發(fā)送數(shù)據(jù)報。 (3) 32位全為"1" 若 IP 地址 4 字節(jié) 32 比特全為"1",表示僅在本網內進行廣播發(fā)送(見Arp協(xié)議)。 (4) 網絡為127 TCP/IP 協(xié)議規(guī)定網絡號 127 不可用于任何網絡。其中有一個特別地址:127.0.0.1 稱之為還回地址(loop-back);
C)使用范圍:
D)IP地址的重要特點 1)IP 地址是一種分等級的地址結構。分兩個等級的好處是: a. IP 地址管理機構在分配 IP 地址時只分配網絡號,而剩下的主機號則由得到該網絡號的單位自行分配。這樣就方便了 IP 地址的管理。 b. 路由器僅根據(jù)目的主機所連接的網絡號來轉發(fā)分組(而不考慮目的主機號), 這樣就可以使路由表中的項目數(shù)大幅度減少,從而減小了路由表所占的存儲空間。 2)實際上 IP 地址是標志一個主機/路由器和一條鏈路的接口。 當一個主機同時連接到兩個網絡上時,該主機就必須同時具有兩個IP 地址,其網絡號 net-id 必須是不同的; 由于一個路由器至少應當連接到兩個網絡(這樣它才能將 IP 數(shù)據(jù)報從一個網絡轉發(fā)到另一個網絡),因此一個路由器至少應當有兩個不同的 IP 地址。 3)用轉發(fā)器或網橋連接起來的若干個局域網仍為一個網絡,因此這些局域網都具有同樣的網絡號 net-id。 4)所有分配到net-id 的網絡, 無論是范圍很小的局域網,還是覆蓋很大地理范圍的廣域網,都是平等的。 分組轉發(fā)算法(1) 從數(shù)據(jù)報的首部提取目的站的 IP 地址 D, 得出目的網絡地址為 N。 (2) 若網絡 N 與此路由器直接相連,則直接將數(shù)據(jù)報直接交付給目的站 D;否則是間接交付,執(zhí)行(3)。 (3) 若路由表中有目的地址為 D 的特定主機路由,則將數(shù)據(jù)報傳送給路由表中所指明的下一跳路由器;否則,執(zhí)行(4)。 (4) 若路由表中有到達網絡 N 的路由,則將數(shù)據(jù)報傳送給路由表指明的下一跳路由器;否則,執(zhí)行(5)。 (5) 若路由表中有一個默認路由,則將數(shù)據(jù)報傳送給路由表中所指明的默認路由器;否則,執(zhí)行(6)。 (6) 報告轉發(fā)分組出錯。
子網劃分一個擁有許多物理網絡的單位,可將所屬的物理網絡劃分為若干個子網。劃分子網純屬一個單位內部的事情。本單位以外的網絡看不見這個網絡是由多少子網組成,因為這個單位對外仍然表現(xiàn)一個網絡。 劃分子網的方法是從網絡的主機號借用若干位作為子網號subnet-id。劃分子網增加了靈活性,但也減少了能夠連接在網絡上主機總數(shù)。于是兩級IP地址在本單位內部就變?yōu)槿塈P地址: IP地址 ::= {<網絡號>,<子網號>,<主機號>} 凡是從其他網絡發(fā)送給本單位某個主機的IP數(shù)據(jù)報,仍然是根據(jù)IP數(shù)據(jù)報的目的網絡號找到連接在本單位網絡上的路由器。但此路由器在收到IP數(shù)據(jù)報后,在按目的網絡號和子網號找到目的子網,把IP數(shù)據(jù)報交付給目的主機;
子網掩碼 子網掩碼也是32位,由一串1和跟隨的一串0組成。子網掩碼中的1對應于IP地址中原來的網絡號和子網號,而子網掩碼中的0對應于現(xiàn)在的主機號。故將子網掩碼和IP地址進行按位”與“運算(AND),就可得出網絡地址, 由此可知:
不同的子網掩碼可以得出相同的網絡地址, 但不同的掩碼的效果是不同的.
使用子網時分組的轉發(fā)過程: 使用子網劃分后,路由表必須包含以下三項內容:{目的網絡地址,子網掩碼和下一跳地址}, 路由器轉發(fā)分組的流程如下: 1)從收到的數(shù)據(jù)報首部提取目的IP地址D; 2)先判斷是否為直接交付。對路由器直接相連的網絡進行逐個檢查:用各網絡的子網掩碼和D逐位相與,看結果是否和相對應的網絡地址匹配。若匹配,則把分組進行直接交付,轉發(fā)任務結束。否則就是間接交付,執(zhí)行(3)。 3)若路由表中有目的地址為D的特定主機路由,則把數(shù)據(jù)報傳送給路由表中所指明的下一跳路由,否則執(zhí)行(4)。 4)對路由表的每一行,用其中的子網掩碼和D逐位相與,其結果為N。若N與該行的目的網絡地址匹配,則把數(shù)據(jù)報傳送給該行指明的下一跳路由器,否則執(zhí)行(5)。 5)若路由表中有一個默認路由,則把數(shù)據(jù)報傳送給路由表中所指明的默認路由器;否則執(zhí)行(6)。 6)報告轉發(fā)分組出錯。 無分類編址(CIDR)無分類域間路由選擇(CIDR)是在變長子網掩碼的基礎上提出的一個消除A, B, C類網絡劃分, 并且可以在軟件的支持下實現(xiàn)構造超網的一種IP地址的劃分方法;
CIDR的主要特點: 1)消除了傳統(tǒng)的A,B,C類地址以及子網劃分的概念, 因而可以更加有效的分配IPv4的地址空間. CIDR使用”網絡前綴”的概念代替網絡號的概念, 這樣IP地址的無分類兩級編址就變?yōu)? IP::= {<網絡前綴>,<主機地址>} CIDR還使用”斜線記法”, 即: <IP地址>/<網絡前綴所占位數(shù)>. 其中, 網絡前綴所占位數(shù)對應于網絡號部分, 等效于子網掩碼中連續(xù)1的部分, 因此通過逐位相”與”的方法依然可以得到該地址的網絡前綴; 注:CIDR并不使用子網, CIDR并沒有在32位地址中指明若干位作為子網字段, 但分配到一個CIDR地址塊的組織仍可以在本組織內根據(jù)需要劃分出一些子網; 2)將網絡前綴都相同的連續(xù)的IP地址組成”CIDR地址塊”, 一個CIDR地址塊可以表示很多地址, 這種地址的聚合成為路由聚合, 或稱構成超網; 路由聚合使得路由表中的一個項目可以表示很多個原來傳統(tǒng)分類地址的路由, 有利于減少路由器之間的路由選擇信息的交換, 從而提高網絡性能.
最長前綴匹配 使用CIDR時, 路由表中的每個項目由”網絡前綴”和”下一跳地址”組成. 在查找路由表時可能會得到不止一個匹配結果, 應當從匹配結果中選擇具有最長網絡前綴的路由, 因為網絡前綴越長, 其地址塊就越小, 因而路由就越具體; CIDR查找路由表的方法: 為了進行更加有效地查找最長前綴匹配, 通常是將無分類編址的路由表存放在一種層次的數(shù)據(jù)結構中, 然后自上而下地按層次進行查找, 這就是最常用的二叉線索;
網絡地址轉換NAT網絡地址轉換(NAT,Network Address Translation)屬接入廣域網(WAN)的技術,是一種將私有(保留)地址轉化為合法IP地址的轉換技術. NAT不僅完美地解決了IP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏并保護網絡內部的計算機。
上述三個范圍內的地址不會在因特網上被分配(因此路由器并不會路由這些IP地址),因此可以不必向ISP 或注冊中心申請而在公司或企業(yè)內部自由使用。
NAT工作流程
①如圖這個 client(終端) 的 gateway (網關)設定為 NAT 主機,所以當要連上 Internet 的時候,該封包就會被送到 NAT 主機,這個時候的封包 Header 之 source IP為 192.168.1.100; ②而透過這個 NAT 主機,它會將 client 的對外聯(lián)機封包的 source IP ( 192.168.1.100 ) 偽裝成 ppp0 ( 假設為撥接情況 )這個接口所具有的公共 IP ,因為是公共 IP 了,所以這個封包就可以連上 Internet 了!同時 NAT 主機并且會記憶這個聯(lián)機的封包是由哪一個 ( 192.168.1.100 ) client 端傳送來的; ③由 Internet 傳送回來的封包,當然由 NAT主機來接收了,這個時候, NAT 主機會去查詢原本記錄的路由信息,并將目標 IP 由 ppp0 上面的公共 IP 改回原來的 192.168.1.100 ; ④最后則由 NAT 主機將該封包傳送給原先發(fā)送封包的 Client. ARP協(xié)議ARP協(xié)議的用途:解決同一個局域網內主機或路由器的IP地址和MAC地址的映射問題。 如圖所示,假設在一個以太網上的 4 臺計算機,分別是計算機 A 、 B 、 X 和 Y ,通過TCP/IP 協(xié)議進行通信,那么雙方的數(shù)據(jù)鏈路層必須知道對方的 MAC 地址。每臺計算機都要在各自的高速緩存區(qū)中存放一張 IP 地址到 MAC 地址的轉換表,稱 ARP 表。其中存放著最近用到的一系列和它通信的處于同一子網的計算機的 IP 地址和 MAC 地址的映射。在主機初始啟動時, ARP 表為空。現(xiàn)在源端計算機 A ( 192.168.3.1 )要和計算機 B(192.168.3.2)通信。在計算機 A 發(fā)送信息前, 必須首先得到計算機B的MAC地址的映射關系。 ARP 協(xié)議工作過程如下: (1)主機 A 首先查看自己的高速緩存中的 ARP緩存表,看其中是否有與 192.168.3.2 對應的 ARP 表項。如果找到,則直接利用該 ARP 表項中的 MAC 值把 IP 數(shù)據(jù)包封裝成幀發(fā)送給主機B。 (2)如果在 ARP 表中找不到對應的地址項,則創(chuàng)建一個 ARP 請求數(shù)據(jù)包,并以廣播方式發(fā)送(把以太幀的目的地址設置為 FF-FF-FF-FF-FF-FF) 。包中有需要查詢的目的計算機的 IP 地址(192.168.3.2) , 以及主機 A 自己的 IP 地址和 MAC 地址。 (3)包括計算機 B 在內的屬于 192.168.3.0 網絡上的所有計算機都收到 A 的 ARP 請求包,然后將計算機 A 的 IP 地址與 MAC 地址的映射關系存入各自的 ARP 表中。 (4)計算機 B 創(chuàng)建一個 ARP 響應包,在包中填入自己的 MAC 地址,以單播方式直接發(fā)送給主機 A。 (5) 主機 A 收到響應后, 從包中提取出所需查詢的 IP 地址及其對應的 MAC 地址, 添加到自己的 ARP 表中。并根據(jù)該 MAC 地址將所需要發(fā)送的數(shù)據(jù)包封裝成幀發(fā)送出去。 注意: (1)ARP 表的內容是定期更新的,如果一條 ARP 表項很久沒有使用了,則它將被從 ARP 表中刪除。 (2)如果所要找的主機和源主機不在同一個局域網上, 那么就要通過ARP找到一個位于本局域網上的某個路由器的硬件地址, 然后把分組發(fā)送給這個路由器, 讓這個路由器把分組轉發(fā)給下一個網絡, 剩下的工作就由下一個網絡來做. DHCP協(xié)議DHCP動態(tài)主機配置協(xié)議常用于給主機動態(tài)地分配IP地址, 他提供了即插即用聯(lián)網的機制,這種機制允許一臺計算機加入新的網絡和獲取IP地址而不用手工參與; DHCP是應用層協(xié)議, 他是基于UDP的; DHCP工作原理: 首先,DHCP客戶端發(fā)送DHCPDISCOVER消息(DHCP發(fā)現(xiàn)),這個消息是通過廣播方式發(fā)送出去的,所有網絡中的DHCP服務器都將接收到這個消息。 隨后,網絡中的DHCP服務器會回應一個DHCPOFFER消息(DHCP提供),由于這個時候客戶端還沒有網絡地址,所以DHCPOFFER也是通過廣播的方式發(fā)送出去的。需要注意的是,由于網絡中可能存在不止一臺的DHCP服務器,所以,如果不考慮網絡丟包的話,客戶端將接收到不止一條的DHCPOFFER消息。那么客戶端會選擇它接收到的第一條DHCPOFFER作為獲取配置的服務器。 然后,DHCP客戶端向該服務器發(fā)送DHCPREQUEST消息(DHCP請求)。雖然這個時候客戶端已經明確知道選擇的DHCP服務器的地址所在,但仍將采用廣播的方式發(fā)送,這樣做不僅可以通知選中的服務器向客戶端分配IP地址,同時也可以通知其他沒有選中的DHCP服務器不需要再響應它的請求。在DHCPREQUEST消息中將包含客戶端申請的IP地址。 最后,DHCP服務器將回送DHCPACK(DHCP確認)的響應消息來通知客戶端可以使用該IP地址,該確認里面包含了分配的IP地址和該地址的一個穩(wěn)定期限的租約(默認是8天),并同時更新DHCP數(shù)據(jù)庫。 當租約過了一半時(即4天),客戶端將和設置它的TCP/IP配置的DHCP服務器更新租約。當租約過了85.7%時,如果客戶端仍然無法與當初的DHCP服務器聯(lián)系上,他將與其他DHCP服務器通信,如果網絡中再沒有任何DHCP服務器在運行時,該客戶端停止使用該IP地址,并重新發(fā)送一個DHCPDISCOVER消息,再一次重復整個過程。 ICMP協(xié)議IP提供的是盡最大努力交付的無連接服務,因此并不能解決網絡層中的數(shù)據(jù)報丟失、重復、延遲或亂序等問題,為了提高IP數(shù)據(jù)報成功交付的機會, 在網絡層使用ICMP(Internet Control Message Protocol:Internet控制報文協(xié)議)協(xié)議來允許主機或者路由器報告差錯和異常情況.
ICMP的特征 a.ICMP就像一個更高層的協(xié)議那樣使用IP協(xié)議(ICMP消息被封裝在IP數(shù)據(jù)報中);然而,ICMP是IP的一個組成部分,并且所有IP模塊都必須實現(xiàn)它。 b.ICMP用來報告錯誤,是一個差錯報告機制。它為遇到差錯的路由器提供了向最初源站報告差錯的辦法,源站必須把差錯交給一個應用程序或采取其它措施來糾正問題。 c.ICMP報文的種類有兩種: ICMP差錯報告報文和ICMP詢問報文;
ICMP差錯報告報文
不應發(fā)送ICMP差錯報告報文的幾種情況: 1)對ICMP差錯報告報文不再發(fā)送ICMP差錯報告報文。 2)對第一個分片的數(shù)據(jù)報片的所有后續(xù)數(shù)據(jù)報片都不發(fā)送ICMP差錯報告報文。 3)對具有多播地址的數(shù)據(jù)報都不發(fā)送ICMP差錯報告報文。 4)對具有特殊地址(如127.0.0.0或0.0.0.0)的數(shù)據(jù)報不發(fā)送ICMP差錯報告報文。
ICMP詢問報文 回送請求和回答報文, 時間戳請求和回答報文, 掩碼地址請求和回答報文, 路由器詢問和通告報文; 常用的ICMP詢問報文有兩種,即: 1)回送請求和回答: ICMP回送請求報文是由主機或路由器向一個特定的目的主機發(fā)出的詢問。收到此報文的主機必須給源主機或路由器發(fā)送ICMP回送回答報文。這種詢問報文用來測試目的站是否可達以及了解其有關狀態(tài)(Ping實現(xiàn)機制)。 2)時間戳請求和回答: ICMP時間戳請求報文是請某個主機或路由器回答當前的日期和時間。在ICMP時間戳回答報文中有一個32位的字段,其中寫入的整數(shù)代表從1900年1月1日起到當前時刻一共有多少秒。時間戳請求與回答可用來進行時鐘同步和測量時間。
Ping實現(xiàn)原理 Ping(Packet Internet Groper)分組網間探測是ICMP的一個重要應用,用來測試兩個主機之間的連通性。Ping使用了ICMP回送請求與回答報文。Ping是應用層直接使用網絡層ICMP的一個例子。它沒有通過運輸層的TCP或UDP。 實現(xiàn)原理為: ping向目的主機發(fā)送4個32字節(jié)長的ICMP回送請求報文,若目的主機正常工作并且響應了該ICMP回送請求報文,就將發(fā)回ICMP回送回答報文。最后可得出的統(tǒng)計結果為目的IP地址,發(fā)送的,收到的和丟失的分組數(shù),及往返時間的最小值、最大值和平均值。
ping命令格式為 ping <host-name> #host-name為要測試連通性的主機名/IP地址。
TraceRoute原理 Traceroute(Linux)/tracert(Windows)是用來偵測主機到目的主機之間所經路由情況的重要工具。它的原理如下: 源主機首先給目的主機發(fā)送一個TTL=1的UDP數(shù)據(jù)包,而經過的第一個路由器收到這個數(shù)據(jù)包以后,就自動把TTL減1,而TTL變?yōu)?以后,路由器就把這個包給丟棄了,并同時產生”目的主機不可達”的ICMP差錯報告報文給源主機。源主機收到這個數(shù)據(jù)報以后再發(fā)一個TTL=2的UDP數(shù)據(jù)報給目的主機,然后刺激第二個路由器給源主機發(fā)送差錯報文。如此往復直到到達目的主機。這樣,traceroute就拿到了所有的路由器IP。
RIP協(xié)議路由信息協(xié)議RIP是一種分布式的基于距離向量的路由選擇協(xié)議, 屬于內部網關協(xié)議(IGP)。RIP協(xié)議中的“距離”也稱為“跳數(shù)”,每經過一個路由器,跳數(shù)就加1。協(xié)議規(guī)定: 同一自治系統(tǒng)(A.S.)中的路由器每30秒會與相鄰的路由器交換路由信息,以動態(tài)的建立路由表。當傳輸數(shù)據(jù)時,RIP將選擇一條具有最少路由器的路由。
RIP協(xié)議規(guī)定: 1) 網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄(因此, 這是一組距離, 稱”距離向量”); 2) 距離也稱為跳數(shù)(Hop Count), 規(guī)定從一路由器到直接連接的網絡跳數(shù)為1, 而每經過一個路由器, 則跳數(shù)加1; 3) RIP認為好的路由就是它通過的路由器的數(shù)目少, 即優(yōu)先選擇跳數(shù)少的路徑; 4) RIP允許一條路徑最多只能包含15個路由器(即最多允許15跳), 因此距離等于16時表示網絡不可達. 可見RIP只適用于小型互聯(lián)網. 5) RIP默認在任意兩個使用RIP協(xié)議的路由器之間每30秒廣播一次RIP路由更新信息. 以便于自動建立并維護路由表(動態(tài)維護). 6) 在RIP中不支持子網掩碼的RIP廣播, 所以RIP中每個網絡的子網掩碼必須相同. 但在新的RIP2中, 支持變長子網掩碼和CIDR.
RIP 協(xié)議特點: 1)僅和相鄰路由器交換信息?!咀ⅰ咳绻麅蓚€路由器之間的通信不需要經過另一個路由器,那么這兩個路由器就是相鄰的。RIP協(xié)議規(guī)定,不相鄰的路由器不交換信息。 2)路由器交換的信息是當前本路由器所知道的全部信息,即自己的路由表。【注】交換的信息是:“我到本自制系統(tǒng)中所有網路的(最短)距離,以及到每個網絡應該經過的下一跳路由器?!?/span> (3)按固定的時間間隔交換路由信息?!咀ⅰ棵扛?0秒,路由器根據(jù)收到的路由信息更新路由表。當網路拓撲發(fā)生變化時,路由器也及時向相鄰路由器通告拓撲變化后的路由信息。
距離向量算法 對每一個相鄰路由器發(fā)送過來的RIP報文,進行以下步驟: 1)對地址為X的相鄰路由器發(fā)來的RIP報文,先修改此報文中的所有項目:把“下一跳”字段中的地址都改為X,并把所有的"距離"字段的值加1.每個項目都有三個關鍵數(shù)據(jù),即:目的網絡N,距離是d,下一跳路由器是X。 2)對修改后的RIP報文中的每一個項目,進行如下步驟: * 若原來的路由表中沒有目的網絡N,則把該項目添加到路由表中; * 否則, 若下一跳路由器地址是X,則把收到的項目替換原路由表中的項(使用最新的路由信息); * 否則, 若收到的項目中距離d小于路由表中的距離,則進行更新; 3)若3分鐘還沒有收到相鄰路由器的更新路由表,則把此相鄰路由器記為不可到達的路由器,即把距離設置為16。 4)返回
RIP路由協(xié)議優(yōu)缺點 優(yōu)點是配置簡單,非常適用于小規(guī)模網絡? RIP協(xié)議的缺點包括: 1)大量廣播?RIP向所有鄰居每隔30秒廣播一次完整的路由表,將占用寶貴的帶寬資源,在較慢的廣域網鏈路上問題更加明顯? 2)沒有成本概念?RIP沒有網絡延遲和鏈路成本的概念?當采用RIP時,路由/轉發(fā)的決定只是基于跳數(shù), 這樣很容易導致無法選擇最佳路由? 例如,一條鏈路擁有較高的帶寬,但是跳數(shù)較多,從而不能被選擇? 3)支持的網絡規(guī)模有限?由于RIP路由協(xié)議最多只支持16個步跳,當超過該跳數(shù)時,網絡將認為無法到達?因此,RIP只能適用于規(guī)模較少的網絡? 4)當網絡出現(xiàn)故障時, 會出現(xiàn)慢收斂現(xiàn)象(需要較長時間才能將此信息傳送到所有路由器), 俗稱”壞消息傳的慢”, 使更新過程的收斂時間長;
小結:RIP是應用層協(xié)議, 它使用UDP傳送數(shù)據(jù)(端口520). RIP協(xié)議選擇的路徑不一定是最短的, 但一定是具有最少路由器的路徑.
OSPF協(xié)議OSPF (Open Shortest Path First, 開放最短路徑優(yōu)先)。它是為克服RIP的缺點在1989年開發(fā)出來的。OSPF的原理很簡單,但實現(xiàn)起來卻較復雜。“開放”表明OSPF協(xié)議不是受某一家廠商控制,而是公開發(fā)表的?!白疃搪窂絻?yōu)先”是因為使用了Dijkstra最短路徑算法。 請注意:OSPF只是一個協(xié)議的名字,它并不表示其他的路由選擇協(xié)議不是“最短路徑優(yōu)先”。實際上,所有的在自治系統(tǒng)內部使用的路由選擇協(xié)議(包括RIP協(xié)議)都是要尋找一條最短的路徑。 OSPF最主要的特征就是使用分布式的鏈路狀態(tài)協(xié)議(link state protocol),而不是像RIP那樣的距離向量協(xié)議。和RIP協(xié)議相比,OSPF的四個要點和RIP的都不一樣: (1)OSPF向本自治系統(tǒng)中所有路由器發(fā)送信息。這里使用的方法是洪泛法(flooding),這就是路由器通過所有輸出端口向所有相鄰的路由器發(fā)送信息。而每一個相鄰路由器又再將此信息發(fā)往其所有的相鄰路由器(但不再發(fā)送給剛剛發(fā)來信息的那個路由器)。這樣,最終整個區(qū)域中所有的路由器都得到了這個信息的一個副本。我們應注意,RIP協(xié)議是僅僅向自己相鄰的幾個路由器發(fā)送信息。 (2)OSPF發(fā)送的信息就是與本路由器相鄰的所有路由器的鏈路狀態(tài),但這只是路由器所知道的部分信息。所謂“鏈路狀態(tài)”就是說明本路由器都和哪些路由器相鄰,以及該鏈路的“度量”(metric)。OSPF將這個“度量”表示為費用、距離、時延、帶寬等。這些都由網絡管理人員來決定,因此較為靈活。有時為了方便就稱這個度量為“代價”(注意:對于RIP協(xié)議,發(fā)送的信息是:“到所有網絡的距離和下一跳路由器”)。 (3)OSPF只有當鏈路狀態(tài)發(fā)生變化時,路由器才向所有路由器用洪泛法發(fā)送此信息。而不像RIP那樣,不管網絡拓撲有無發(fā)生變化,路由器之間都要定期交換路由表的信息。 (4)OSPF是網絡層協(xié)議, 他不使用UDP/TCP而是直接使用IP數(shù)據(jù)報傳送(其IP數(shù)據(jù)報首部的協(xié)議字段為89).且OSPF數(shù)據(jù)報較短, 不會導致IP數(shù)據(jù)報分片, 因此更加高效; 而RIP是應用層協(xié)議, 他在傳輸層使用UDP協(xié)議.
除了以上區(qū)別之外, OSPF還有以下特點: 1) OSPF對不同的鏈路可根據(jù)IP分組的不同服務類型(TOS)而設置成不同的代價. 因此, OSPF對于不同類型的業(yè)務可計算出不同的路由, 因此十分靈活. 2) 如果到同一個目的網絡有多條相同代價的路徑, 那么OSPF可將通信量分配給這幾條路徑, 這叫做多路徑之間的負載均衡. 3) 所有在OSPF路由器之間交換的分組都具有鑒別功能, 因而保證了僅在可信賴的路由器之間交換鏈路狀態(tài)信息. 4) OSPF支持可變長度的子網劃分和無分類編址CIDR. 5) 每一個鏈路狀態(tài)都帶上一個32位的序號, 序號越大狀態(tài)就越新.
OSPF基本工作原理 由于各路由器之間頻繁地交換鏈路狀態(tài)信息, 因此所有的路由器最終都能建立一個鏈路狀態(tài)數(shù)據(jù)庫. 這個數(shù)據(jù)庫實際上就是全網的拓撲結構圖, 他在全網范圍內是一致的(這稱為鏈路狀態(tài)數(shù)據(jù)庫的同步). 然后每個路由器就根據(jù)這個全網拓撲結構圖, 使用Dijkstra最短路徑算法計算從自己到各目的網絡的最優(yōu)路徑, 以此構造自己的路由表. 在此之后, 當鏈路狀態(tài)發(fā)生變化時, 每個路由器重新計算到各目的網絡的最優(yōu)路徑, 構造新的路由表. OSPF的鏈路狀態(tài)數(shù)據(jù)庫能較快的進行更新, 使各個路由器能及時更新其路由表. OSPF的更新過程收斂得快是其重要的優(yōu)點. {注意: 雖然使用Dijkstra算法能夠計算出完整的最優(yōu)路徑, 但是路由表不會存儲完整路徑, 而只存儲”下一跳”(只有到了下一跳路由器, 才能知道再下一跳應當怎么走)}
劃分區(qū)域 為了使OSPF能夠用于規(guī)模很大的網絡, OSPF將一個自治系統(tǒng)再劃分為若干個更小的范圍, 叫做區(qū)域. 每一個區(qū)域都有一個32位的區(qū)域標示符(用點分十進制表示). 區(qū)域也不能太大, 在一個區(qū)域內的路由器最好不要超過200個. 劃分區(qū)域的好處是: 將利用洪泛法交換鏈路狀態(tài)信息的范圍局限于每一個區(qū)域而不是整個的自治系統(tǒng), 這就減少了整個網絡上的通信量. 由于區(qū)域內部路由器僅與同區(qū)域的路由器交換LSA信息,這樣LSA報文數(shù)量及鏈路狀態(tài)信息庫表項都會極大減少,SPF計算速度因此得到提高。 在一個區(qū)域內部的路由器只知道本區(qū)域的完整網絡拓撲, 而不知道其他區(qū)域的網絡拓撲情況. 這些區(qū)域也有層次之分, 處在上層的域叫做主干區(qū)域, 負責連通其他下層的區(qū)域, 并且還連接其他自治域;
OSPF分組類型與OSPF工作過程
通常每隔10秒, 每兩個相鄰路由器就要交換一次問候分組, 以便知道哪些站可達. (1)在路由器剛開始工作時, OSPF讓每一個路由器使用數(shù)據(jù)庫描述分組和相鄰路由器交換本數(shù)據(jù)庫中已有的鏈路狀態(tài)摘要信息. 然后, 路由器就使用鏈路狀態(tài)請求分組向對方請求發(fā)送自己所缺少的某些鏈路狀態(tài)項目的詳細信息. 經過一系列的這種分組交換, 全網同步的鏈路數(shù)據(jù)庫就建立了. (2)在網絡運行的過程中, 只要一個路由器的鏈路狀態(tài)發(fā)生變化, 該路由器就要使用鏈路狀態(tài)更新分組, 用洪泛法向全網更新鏈路狀態(tài). 其他路由器在更新后, 發(fā)送鏈路狀態(tài)確認分組對更新進行確認. (3)為了確保鏈路狀態(tài)數(shù)據(jù)庫與全網的狀態(tài)保持一致, OSPF還規(guī)定每隔一段時間(如30分鐘), 要刷新一次數(shù)據(jù)庫中的鏈路狀態(tài). 由于一個路由器的鏈路狀態(tài)只涉及與相鄰路由器的連通狀態(tài), 因而與整個互聯(lián)網的規(guī)模并無直接關系. 因此, 當互聯(lián)網規(guī)模很大時, OSPF協(xié)議要比RIP好得多, 而且OSPF協(xié)議沒有”壞消息傳的慢”的問題.
BGP協(xié)議BGP(Border Gateway Protocol)是一種不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議, 它的基本功能是在自治系統(tǒng)間自動交換無環(huán)路的路由信息, 他是一種外部網關協(xié)議(EGP), 邊界網關協(xié)議常常應用于互聯(lián)網的網關之間. 路由表包含已知路由器的列表, 路由器能夠到達的地址以及到達每個路由器的跳數(shù). 由于: 1) 因特網的規(guī)模太大, 使得自治系統(tǒng)之間路由選擇非常困難; 2) 對于自治系統(tǒng)之間的路由選擇, 要尋找最佳路由是很不現(xiàn)實的; 3) 自治系統(tǒng)之間的路由選擇必須考慮有關策略; 因此, 邊界網關協(xié)議BGP只能是力求尋找一條能夠到達目的網絡且比較好的路由(不能兜圈子), 而非要找到一條最佳路由. BGP采用的是”路徑向量選擇協(xié)議”, 他與距離向量協(xié)議和鏈路狀態(tài)協(xié)議都有很大的區(qū)別. BGP是應用層協(xié)議, 他是基于TCP的;
BGP協(xié)議工作原理 每一個自治系統(tǒng)管理員要選擇至少一個路由器(可以有多個)作為該自治系統(tǒng)的”BGP發(fā)言人”. 一個BGP發(fā)言人與其他自治系統(tǒng)中的BGP發(fā)言人要交換路由信息, 就要首先建立TCP連接, 然后在此連接上交換BGP報文以建立BGP會話, 再利用BGP會話交換路由信息. 當所有BGP發(fā)言人都互相交換網絡可達性信息之后, 各BGP發(fā)言人就可找出到達各個自治系統(tǒng)的比較好的路由. 每個BGP發(fā)言人除了必須運行BGP協(xié)議外, 還必須運行該AS所使用的內部網關協(xié)議(如OSPF,RIP等), BGP所交換的網絡可達性信息就是要到達某個網絡(用網絡前綴表示)所要經歷的一系列AS;
BGP協(xié)議特點: 1) BGP協(xié)議交換路由信息的結點數(shù)量級是自治系統(tǒng)的數(shù)量級, 這要比這些自治系統(tǒng)中的網絡數(shù)少得多; 2) 每一個自治系統(tǒng)中BGP發(fā)言人(或邊界路由器)的數(shù)目是很少的. 這樣就使得自治系統(tǒng)之間的路由選擇不致過分復雜; 3) BGP支持CIDR, 因此BGP的路由表也就應當包括目的網絡前綴, 下一跳路由器, 以及到達該目的網絡所要經過的各個自治系統(tǒng)序列; 4) 在BGP剛運行時, BGP的鄰站是交換整個的BGP路由表, 但以后只需要在發(fā)生變化時更新有變化的部分. 這樣做對節(jié)省網絡帶寬和減少路由器的處理開銷方面都有好處;
BGP-4使用的四種報文
IP組播與IGMP協(xié)議
使用組播的緣由是: 有的應用程序要把一個分組發(fā)送給多個目的主機. 不是讓源主機給每一個目的主機都發(fā)送一個單獨的分組, 而是讓源主機把單個分組發(fā)送給一個組播地址, 該組播地址標識一組地址. 網絡把這個分組給該組中的每一個主機都投遞一份拷貝(單播與組播的比較示意圖如上圖所示). 主機可以選擇加入/離開一個組, 從而一個主機可以同時屬于多個組; 主機使用一個稱作IGMP(因特網組管理協(xié)議)的協(xié)議加入組播組. 需要注意: (1)主機組播時僅發(fā)送一份數(shù)據(jù), 只有數(shù)據(jù)在傳送路徑出現(xiàn)分岔時才將分組復制后繼續(xù)轉發(fā). 這樣對發(fā)送者而言, 數(shù)據(jù)只需發(fā)送一次就可以發(fā)送到所有接收者, 大大減輕了網絡的負載和發(fā)送者的負擔. (2)組播需要路由器的支持才能實現(xiàn), 能夠運行組播協(xié)議的路由器稱為組播路由器.
IP組播地址 IP組播使用D類地址格式. D類地址的前四位是1110, 因此D類地址范圍為224.0.0.0~239.255.255.255. 每一個D類IP地址標志一個組播組; 組播數(shù)據(jù)報和一般IP數(shù)據(jù)報的區(qū)別在于它使用D類IP地址僅作為目的地址, 并且首部中協(xié)議字段值為2, 表明使用IGMP協(xié)議. 需要注意的是: 1)組播數(shù)據(jù)報也是”盡最大努力交付”, 不提供可靠交付(組播一定是僅應用于UDP); 2)組播地址只能用于目的地址, 而不能用于源地址; 3)組播數(shù)據(jù)報不產生ICMP差錯報文. 因此, 若在ping命令后面鍵入組播地址, 則永遠不會收到響應; 4)并非所有的D類地址都可以作為組播地址;
IP組播地址與MAC地址映射
IGMP協(xié)議 IGMP協(xié)議用來在IP主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關系。 組播路由器不需要保存所有主機的成員關系,它只是通過IGMP協(xié)議了解每個接口連接的網段上是否存在某個組播組的組成員。而主機只需要保存自己加入了哪些組播組。 簡而言之,IGMP協(xié)議是讓連接在本地局域網上的組播路由器知道本局域網上是否有主機上的某個進程參加或退出了某個組播組。 IGMP應視作TCP/IP協(xié)議的一部分, 其工作可以分為兩個階段: 1) 當某個主機加入新的組播組時, 該主機應向組播組的組播地址發(fā)送一個IGMP報文, 聲明自己要成為該組的成員. 本地組播路由器收到ICMP報文后, 將組成員關系轉發(fā)給因特網上其他的組播路由器. 2) 因為組成員的關系是動態(tài)的, 本地組播路由器要周期性地探詢本地局域網上的路由器, 以便知道這些主機是否還繼續(xù)是組的成員. 只要對某個組有一個主機響應, 那么組播路由器就認為這個組是活躍的. 但一個組在經過幾次探詢之后仍然沒有一個主機響應, 則不再將該組的成員關系轉發(fā)給其他的組播路由器. 組播路由選擇實際上就是要找出以源主機為根節(jié)點的組播轉發(fā)樹, 其中每一個分組在每條鏈路上只傳送一次(即在組播轉發(fā)樹上的路由器不會收到重復的組播數(shù)據(jù)報). 對不同的多播組對應于不同的多播轉發(fā)樹; 同一個多播組, 對不同的源點也會有不同的多播轉發(fā)樹. [附]組播/廣播/單播的不同 廣播是指在IP子網內廣播數(shù)據(jù)包,所有在子網內部的主機都將收到這些數(shù)據(jù)包。廣播意味著網絡向子網每一個主機都投遞一份數(shù)據(jù)包,不論這些主機是否樂于接收該數(shù)據(jù)包。所以廣播的使用范圍非常小,只在本地子網內有效,通過路由器和網絡設備控制廣播傳輸。 廣播地址是專門用于同時向網絡中所有工作站進行發(fā)送的一個地址。在使用TCP/IP 協(xié)議的網絡中,主機標識段host ID 為全1 的IP 地址為廣播地址,廣播的分組傳送給host ID段所涉及的所有計算機。如,對于10.1.1.0 (255.255.255.0 )網段,其廣播地址為10.1.1.255,當發(fā)出一個目的地址為10.1.1.255 的分組時,它將被分發(fā)給該網段上的所有計算機。 組播協(xié)議與現(xiàn)在廣泛使用的單播協(xié)議的不同之處在于,一個主機用單播協(xié)議向n個主機發(fā)送相同的數(shù)據(jù)時,發(fā)送主機需要分別向n個主機發(fā)送,共發(fā)送n次。一個主機用組播協(xié)議向n個主機發(fā)送相同的數(shù)據(jù)時,只要發(fā)送1次,其數(shù)據(jù)由網絡中的路由器和交換機逐級進行復制并發(fā)送給各個接收方,這樣既節(jié)省服務器資源也節(jié)省網絡主干的帶寬資源。
路由表的內容標準的路由表最少應具有四個項目: 目的網絡IP地址, 子網掩碼, 下一跳IP地址和接口; 而Linux系統(tǒng)中的路由表包含有如圖所示內容:
IPv6簡介IPv6數(shù)據(jù)報格式 IPv6數(shù)據(jù)報的基本首部長度變?yōu)楣潭ǖ?0字節(jié),首部只有8個字段, 稱為基本首部, 用擴展首部取代了IPv4首部中的可選項, 將不必要的功能取消了, 便于中間節(jié)點高效率對其進行處理。
IPv6基本首部 IPv6數(shù)據(jù)報的基本首部是40字節(jié)的固定首部,其攜帶的信息為數(shù)據(jù)報傳輸途中經過的節(jié)點都必須處理的信息。
IPv6數(shù)據(jù)報格式的主要變化 (1)取消首部的校驗和字段。提高數(shù)據(jù)報的傳輸效率。 (2)基本首部增加了流標識和傳輸類別字段,以加強對多媒體實時數(shù)據(jù)傳送的支持。 (3)增加了鑒別擴展首部(Authentication Header,AH)和加密安全載荷擴展首部(Encapsulating Security Payload header,ESP),以增強安全性。 (4)所有的擴展首部和數(shù)據(jù)合起來叫數(shù)據(jù)報的有效載荷/凈載荷;
IPv6地址表示方法 1、用十六進制表示,4位一組,中間用“:”隔開,如:FE08:…. 2、零壓縮, 若以零開頭可以省略,全零的組可用“::”表示,如: 1:2::ACDR:…. 3、地址前綴長度用“/xx”來表示,如: 1::1/64
IPv6主要特點 簡化的報頭和靈活的擴展 層次化的地址結構 即插即用的連網方式 網絡層的認證與加密 服務質量的滿足 對移動通訊更好的支持
移動IP的基本通信流程(1)本地代理和外地代理不停地向網上發(fā)送代理廣告消息,以聲明自己的存在。 (2)移動主機收到這些消息,確定自己是在本地網還是在外地網。 (3)如果移動主機發(fā)現(xiàn)自己仍在本地網,即收到的是本地代理發(fā)來的消息,則不啟動移動功能。如果是從外地網絡重新返回的,則向本地代理發(fā)出取消注冊的消息,聲明自己回到了本地網。 (4)當移動主機檢測到它移動到外地網時,則獲得接管地址。 (5)然后移動主機向本地代理登記,表明自己已離開本地網,把所獲得的接管地址通知本地代理。 (6)登記完畢后,所有發(fā)給移動主機的數(shù)據(jù)包被本地代理截獲,經本地代理封裝后,通過隧道發(fā)到外地網絡的外地代理或移動主機自身。第一種情況下,外地代理再把數(shù)據(jù)包轉發(fā)給移動主機。此時,數(shù)據(jù)包在不同子網間傳送成功。 (7)移動主機發(fā)送數(shù)據(jù)到一般的IP主機時,按正常的IP尋址方法發(fā)送,不必通過本地代理。 |
|
來自: astrotycoon > 《網絡》