1. 計算機網路(三)——網路層
網路層的 目的 是實現在任意結點間進行數據報傳輸,它的目的與鏈路層、物理層不是一樣的嗎?但是通過它數據可以在更大的網路中傳輸。
為了能使數據更好地在更大的網路中傳輸,網路層主要實現三個功能: 異構網路互聯 、 路由與轉發 和 擁塞控制 。
我們知道,在物理層、鏈路層,可以使用不同的傳輸介質和拓撲結構將幾台、十幾台主機連接在一起形成一個小型的區域網,把這些組成結構不完全相同的區域網稱為異構網,因此將它們連接擴大成更大的網路,需要一個類似轉接頭的設備——路由器,路由器不僅僅可以連接異構網,還能隔離沖突域和廣播域,依照IP地址轉發。
下圖對集線器、網橋、交換機和路由器能否隔離沖突域和廣播域進行比較:
路由器作為連接多個網路的結點,不僅需要完成對數據的分組轉發,還要選擇傳輸路徑,因此路由器主要由 路由選擇 和 分組轉發 組成。
網路層最重要的功能是 路由與轉發 功能。路由也就是選擇一條合適的路,轉發則是在這條路上遵守協議。這有點像從某個多個國家的交界城市自駕,選其中一條路,那麼就遵守這個國家的交通協議。
數據通過一個又一個路由器到達目的地址,路由器怎麼知道數據應該從哪個埠出發才能到達目的地呢?這就需要構造路由表。
路由表有兩種構造方式: 靜態 和 動態 。
一個個小網路可以構成一個區域,足夠多的區域互連成一個網路,多個網路又形成巨大的互聯網。要想讓數據高效在網路中傳輸,採用「分而治之」的理念。
將互聯網分為許多較小的自治系統,系統有權決定自己內部採用什麼路由協議,這便是層次路由。通過層次路由便可以採用靈活的協議傳輸數據。數據在自治系統內傳輸採用 內部網關協議 而自治系統之間則採用 外部網關協議 。
內部網關協議有兩種協議: 路由信息協議(RIP) 和 開放最短路徑優先協議(OSPF)
外部網關協議則是邊界網關協議(BGP)。內部網關協議服務某個自治系統,范圍較小,所以盡可能有效地從源站送到目的站,也就是找到一條最佳路徑。而外部網關協議需要面對更大的網路范圍和網路環境,因此更關注的找到比較好的路徑,也就是不能兜圈子。
BGP工作原理:
將三種路由協議進行比較:
構建大規模、異構網路的互聯網除了硬體的支持外,還需要建立協議以實現數據報傳輸服務——IP協議。
目前IP協議有兩個版本:IPv4和IPv6。
現在主流的IP協議版本還是IPv4。
IP數據報主要由首部和數據部分組成,由TCP報文段封裝到數據部分,再在前端加上一些描述信息的首部,其格式如下圖:
IP協議使用分組轉發,當報文過大時需要分片。分片的思路如下:
如果把IP數據報看作是信,那麼首部中的源地址與目的地址則分別是發信地址和郵件地址。為了方便路由計算這些地址,並且使IP地址足夠使用,因此將IP地址進行分類。
IP地址的格式 : {<網路號>,<主機號>},網路號標志主機所連接的網路,主機號標志該主機,每個IP地址都是唯一的。
IP地址分類 如下:
通過分類,可以計算每個網路中最大的主機數:
網路地址轉換(NAT)是一種轉換機制,將專用網路地址轉換為公用地址,目的是為了對外隱藏內部管理的IP地址,這樣不僅可以保證網路安全,還可以解決IP地址不足問題。
當路由器接收到的目的地址是私有地址則一律不進行轉發,而如果是公用地址,則是用NAT轉換表將源IP及埠號映射成全球IP號,然後從WAN埠發送到網際網路上。
IP地址有A、B、C類網路號,如果把A類網路號分給一個廣播域,那麼這個廣播域可以接入16,777,212台主機,然而一個廣播域不可能融入這么多台主機,因為這樣會導致廣播域過飽和而癱瘓,而只給其分配一定數量的網路號,則會浪費大量的IP地址。因此在IP地址中增加一個「子網號欄位」,將IP地址劃分為三級,即IP地址={<網路號>,<子網號>,<主機號>},也就是從主機號中借用幾個比特號作為子網號,這個子網號是對內劃分的,對外仍舊表現為二級IP地址。
主機或路由器如何判斷一個網路是否進行子網劃分了呢?——利用子網掩碼。
CIDR是 無分類 域間路由器選擇,目的是消除A、B、C類網路劃分,這樣可以大幅度提高IP地址空間利用率。相比較子網掩碼劃分,它更加靈活。
上圖中,如果R1收到前綴為206.1的IP地址,它只需要轉發給R2,具體發往網路1還是網路2,則由R2計算得出。
通過IP地址,可以將數據從某個網路傳輸到目的網路,但是把信息發送給哪台主機呢?由於路由器的隔離,IP網路沒辦法使用廣播方式查找MAC地址,只有通過鏈路層的MAC地址以廣播方式定址。
因此,IP協議還包括三個協議—— ARP、DHCP和ICMP ,共同配合完成數據轉發。
IPv6是解決IP地址耗盡的根本手段。它與IPv4的報文形式差別如下圖:
IPv6與IPv4地址通信示意圖:
在通信過程中,如果分組過量而導致網路性能下降,會產生擁塞。
擁塞的控制方式:
2. 計算機網路(四)網路層
主要任務是把分組從源端傳到目的端,為分組交換網上的不同主機提供通信服務。網路層傳輸單位是數據報。
鏈路層數據幀可封裝數據的上限稱為最大傳送單元MTU
標識:同一數據報的分片使用同一標識。
中間位DF(Don』t Fragment):
最低位MF(More Fragment):
片偏移:指出較長分組分片後,某片在原分組中的相對位置。以8B為單位。除了最後一個分片,每個分片長度一定是8B的整數倍。
IP地址:全世界唯一的32位/4位元組標識符,標識路由器主機的介面。IP地址::={<網路號>,<主機號>}
有一些IP地址是不能用的,有其特殊的作用,如:
網路地址轉換NAT(Network Address Translation):在專用網連接到網際網路的路由器上安裝NAT軟體,安裝了NAT軟體的路由器叫NAT路由器,它至少有一個有效的外部全球IP地址。
此外,為了網路安全,劃分出了部分IP地址和私有IP地址,私有IP地址網段如下:
路由器對目的地址是私有IP地址的數據報一律不進行轉發。
分類的IP地址的弱點:
某單位劃分子網後,對外仍表現為一個網路,即本單位外的網路看不見本單位內子網的劃分。
路由器轉發分組的演算法:
無分類域間路由選擇CIDR:
CIDR記法:IP地址後加上「/」,然後寫上網路前綴(可以任意長度)的位數。e.g. 128.14.32.0/20
CIDR把網路前綴都相同的連續的IP地址組成一個「CIDR地址塊」。
使用CIDR時,查找路由表可能得到幾個匹配結果(跟網路掩碼按位相與),應選擇具有最長網路前綴的路由。前綴越長,地址塊越小,路由越具體。
將多個子網聚合成一個較大的子網,叫做構成超網,或路由聚合。方法:將網路前綴縮短(所有網路地址取交集)。
由於在實際網路的鏈路上傳送數據幀時,最終必須使用MAC地址。
ARP協議:完成主機或路由器IP地址到MAC地址的映射。
ARP協議使用過程:
ARP協議4種典型情況:
動態主機配置協議DHCP是 應用層 協議,使用 客戶/伺服器 方式,客戶端和服務端通過 廣播 方式進行交互,基於 UDP 。
DHCP提供即插即用聯網的機制,主機可以從伺服器動態獲取IP地址、子網掩碼、默認網關、DNS伺服器名稱與IP地址,允許地址重用,支持移動用戶加入網路,支持在用地址續租。
DHCP工作流程如下:
ICMP協議支持主機或路由器:包括差錯(或異常)報告和網路探詢,分部發送特定ICMP報文
ICMP差錯報告報文(5種):
不應發送ICMP差錯報文的情況:
ICMP詢問報文:
ICMP的應用:
32位IPv4地址空間已分配殆盡,這時,可以採用更大地址空間的新版本的IPv6,從根本上解決地址耗盡問題
IPv6數據報格式如下圖
IPv6的主要特點如下:
IPv6地址表示形式:
零壓縮:一連串連續的0可以被一對冒號取代。雙冒號表示法在一個地址中僅可出現一次。
IPv6基本地址類型:
IPv6向IPv4過渡的策略:
R1的路由表/轉發表如下:
最佳路由:「最佳」只能是相對於某一種特定要求下得出的較為合理的選擇而已。
路由演算法可分為
由於網際網路規模很大且許多單位不想讓外界知道自己的路由選擇協議,但還想連入網際網路,可以採用自治系統來解決
自治系統AS:在單一的技術管理下的一組路由器,而這些路由器使用一種AS內部的路由選擇協議和共同的度量以確定分組在該AS內的路由,同時還使用一種AS之間的路由協議以確定在AS之間的路由。
一個AS內的所有網路都屬於一個行政單位來管轄,一個自治系統的所有路由器在本自治系統內都必須連通。
路由選擇協議
RIP是一種分布式的基於距離向量的路由選擇協議,是網際網路的協議標准,最大優點是簡單。
RIP協議要求網路中每一個路由器都維護從它自己到其他每一個目的網路的唯一最佳距離 [1] 記錄(即一組距離)。 RIP協議只適用於小互聯網。
RIP是應用層協議,使用 UDP 傳送數據。一個RIP報文最多可包括25個路由,如超過,必須再用一個RIP報文傳送。
RIP協議的交換
路由器剛開始工作時,只知道直接連接的網路的距離(距離為1),接著每一個路由器也只和數目非常有限的相鄰路由器交換並更新路由信息。
經過若干次更新後,所有路由器最終都會知道到達本自治系統任何一個網路的最短距離和下一跳路由器的地址,即「收斂」。
RIP的特點:當網路出現故障時,要經過比較長的時間(例如數分鍾) 才能將此信息傳送到所有的路由器,「慢收斂」。
對地址為X的相鄰路由器發來的RIP報文,修改此報文中的所有項目:把「下一跳」欄位中的地址改為X,並把所有的「距離」欄位+1。
開放最短路徑優先OSPF協議:「開放」標明OSPF協議不是受某一家廠商控制,而是公開發表的;「最短路徑優先」是因為使用了Dijkstra提出的最短路徑演算法SPF。OSPF最主要的特徵就是使用分布式的鏈路狀態協議。 OSPF直接用IP數據報傳送。
OSPF的特點:
為了使OSPF 能夠用於規模很大的網路,OSPF 將一個自治系統再劃分為若干個更小的范圍,叫做區域。每一個區域都有一個32 位的區域標識符(用點分十進製表示)。區域也不能太大,在一個區域內的路由器最好不超過200 個。
BGP 所交換的網路可達性的信息就是要到達某個網路所要經過的一系列AS。當BGP 發言人互相交換了網路可達性的信息後,各BGP 發言人就根據所採用的策略從收到的路由信息中找出到達各AS 的較好路由。
一個BGP 發言人與其他自治系統中的BGP 發言人要交換路由信息,就要先建立TCP 連接,即通過TCP傳送,然後在此連接上交換BGP 報文以建立BGP 會話(session),利用BGP 會話交換路由信息。 BGP是應用層協議,藉助TCP傳送。
BGP協議特點:
BGP-4的四種報文
組播提高了數據傳送效率。減少了主幹網出現擁塞的可能性。組播組中的主機可以是在同一個物理網路,也可以來自不同的物理網路(如果有組播路由器的支持)。
IP組播地址讓源設備能夠將分組發送給一組設備。屬於多播組的設備將被分配一個組播組IP地址(一群共同需求主機的相同標識)。
組播地址范圍為224.0.0.0~239.255.255.255(D類地址),一個D類地址表示一個組播組。只能用作分組的目標地址。源地址總是為單播地址。
同單播地址一樣,組播IP地址也需要相應的組播MAC地址在本地網路中實際傳送幀。組播MAC地址以十六進制值01-00-5E打頭,餘下的6個十六進制位是根據IP組播組地址的最後23位轉換得到的。
TCP/IP 協議使用的乙太網多播地址的范圍是:從01-00-5E-00-00-00到01-00-5E-7F-FF-FF .
收到多播數據報的主機,還要在IP 層利用軟體進行過濾,把不是本主機要接收的數據報丟棄。
ICMP和IGMP都使用IP數據報傳遞報文。組播路由器知道的成員關系只是所連接的區域網中有無組播組的成員。
IGMP工作的兩個階段:
只要有一個主機對某個組響應,那麼組播路由器就認為這個組是活躍的;如果經過幾次探詢後沒有一個主機響應,組播路由器就認為本網路上的沒有此組播組的主機,因此就不再把這組的成員關系發給其他的組播路由器。
組播路由協議目的是找出以源主機為根節點的組播轉發樹。構造樹可以避免在路由器之間兜圈子。對不同的多播組對應於不同的多播轉發樹;同一個多播組,對不同的源點也會有不同的多播轉發樹。
組播路由選擇協議常使用的三種演算法:
移動IP技術是移動結點(計算機/伺服器等)以 固定的網路IP地址 ,實現跨越不同網段的 漫遊 功能,並保證了基於網路IP的網路許可權在漫遊過程中不發生任何改變。
路由器是一種具有多個輸入埠和多個輸出埠的專用計算機,其任務是轉發分組。
若路由器處理分組的速率趕不上分組進入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使後面再進入隊列的分組由於沒有存儲空間而只能被丟棄。 路由器中的輸入或輸出隊列產生溢出是造成分組丟失的重要原因。
路由器(網路層)可以互聯兩個不同網路層協議的網段。
網橋(鏈路層)可以互聯兩個物理層和鏈路層不同的網段。
集線器(物理層)不能互聯兩個物理層不同的網段。
路由表根據路由選擇演算法得出的,主要用途是路由選擇,總用軟體來實現。
轉發表由路由表得來,可以用軟體實現,也可以用特殊的硬體來實現。轉發表必須包含完成轉發功能所必需的信息,在轉發表的每一行必須包含從要到達的目的網路到輸出埠和某些MAC地址信息的映射。
3. 計算機網路實驗的實驗報告 包括實驗2Mac幀、IP包格式分析試驗 3交換機 VLAN 劃分實驗4路由器靜態路由配置
交換機VLAN的劃分
一.實驗目的
通過本次實驗,掌握交換機VLAN的配置方法,理解VLAN的作用。(以D-LINK交換機DES-3526為例)
二. 實驗環境
1.軟硬體要求
·DES-3526一台
·PC機兩台
·RS-232 線一條
·雙絞線若干
2. 環境示意圖,如圖9-16所示:
圖9-15
三.實驗步驟
(1).把交換機的控制口和PC的串口相連,通過超級終端進入交換機的配置界面,如圖9-16所示:
圖9-16
這時,輸入用戶名和密碼,如果沒有用戶名和密碼,則按兩下回車,進入可配置模式,如圖9-17所示:
圖9-17
在此模式下,我們可以對交換機進行各種配置,由於是命令行模式,需要掌握一些常用命令,輸入「?」,敲回車鍵,能看到交換機所有的命令, 如圖9-18所示
圖9-18
2)通過以下命令創建VLAN10和VLAN20,如圖9-19所示
圖9-19
3)配置完成後,可以用show vlan命令查看配置情況,如圖9-20所示:
圖9-20
4)把兩台PC分別連到VLAN10和VLAN20,用Ping命令進行連通性測試,兩台PC不能通訊。
5)把兩台PC連到同一VLAN中,用Ping命令進行連通性測試,兩台PC能通訊。
六、實驗完畢
4. 什麼是IP分片技術
在計算機網路中IP分片的情況發生在IP層,不僅源端主機會進行分片,中間的路由器也有可能分片,因為不同的網路的MTU是不一樣的,如果傳輸路徑上的某個網路的MTU比源端網路的MTU要小,路由器就可能對IP數據報再次進行分片。而分片數據的重組只會發生在目的端的IP層。
在網路中IP首部有4個位元組是用於分片的,如下圖所示。前16位是IP數據報的標識,同一個數據報的各個分片的標識是一樣的,目的端會根據這個標識來判斷IP分片是否屬於同一個IP數據報。中間3位是標志位,其中有1位用來表示是否有更多的分片,如果是最後一個分片,該標志位為0,否則為1。後面13位表示分片在原始數據的偏移,這里的原始數據是IP層收到的傳輸的TCP或UDP數據,不包含IP首部。
避免IP分片在網路編程中,我們要避免出現IP分片,那麼為什麼要避免呢?原因是IP層是沒有超時重傳機制的,如果IP層對一個數據包進行了分片,只要有一個分片丟失了,只能依賴於傳輸層進行重傳,結果是所有的分片都要重傳一遍,這個代價有點大。由此可見,IP分片會大大降低傳輸層傳送數據的成功率,所以我們要避免IP分片。對於UDP包,我們需要在應用層去限制每個包的大小,一般不要超過1472位元組,即乙太網MTU(1500)—UDP首部(8)—IP首部(20)。對於TCP數據,應用層就不需要考慮這個問題了,因為傳輸層已經幫我們做了。在建立連接的三次握手的過程中,連接雙方會相互通告MSS(Maximum Segment Size,最大報文段長度),MSS一般是MTU—IP首部(20)—TCP首部(20),每次發送的TCP數據都不會超過雙方MSS的最小值,所以就保證了IP數據報不會超過MTU,避免了IP分片。
5. 璁$畻鏈虹綉緇 鍒掑垎瀛愮綉鐨勫疄楠
瀛愮綉1錛氳兘鍔ㄧ郴 60鍙 2^6-2=62>60 淇濈暀6浣嶄富鏈轟綅 璇ヤ富緗戠殑緗戠粶鍙峰彲涓猴細192.168.1.128 騫挎挱鍦板潃錛192.168.1.191 鏈夋晥涓繪満鑼冨洿錛192.168.1.129~192.168.1.190
瀛愮綉2錛25鍙 緗戠粶鍙鳳細192.168.1.0 騫挎挱鍦板潃錛192.168.1.31 鏈夋晥涓繪満鑼冨洿錛192.168.1.1~192.168.1.30
瀛愮綉3錛25鍙 緗戠粶鍙鳳細192.168.1.32 騫挎挱鍦板潃錛192.168.1.63 鏈夋晥涓繪満鑼冨洿錛192.168.1.33~192.168.1.62
瀛愮綉4錛25鍙 緗戠粶鍙鳳細192.168.1.64 騫挎挱鍦板潃錛192.168.1.95 鏈夋晥涓繪満鑼冨洿錛192.168.1.65~192.168.1.94
瀛愮綉5錛19鍙 緗戠粶鍙鳳細192.168.1. 96 騫挎挱鍦板潃錛192.168.1.127 鏈夋晥涓繪満鑼冨洿錛 192.168.1.97~192.168.1.126
瑙g瓟鐨勬柟娉曟湁濂藉氱嶏紝浠ヤ笂鏂規硶浠呬緵鍙傝冿紒