一、概述
當源端和目的端位于不同網絡的時候,直接通信是不可行的,此時就需要由網絡層解決。
如果我們把實體層和資料鍊路層比作市内交通,那麼網絡層就可以比作連接配接不同城市交通的中轉車站、機場或碼頭。
就像中轉車站、機場或碼頭可以把來自其他城市的旅客送到下一站或本市目的地一樣,網絡層可以把來自其他網絡中的資料傳送到下一個途經的網絡或本網絡中的目的節點。
而路由器就相當于連接配接不同城市公路的中轉車站,起資料中轉作用。
1、為什麼需要網絡層呢?
因為不同網絡有不同的網絡層協定和位址規範,一個網絡中的使用者若不能識别其他網絡的通信協定和位址規範,就不能把資料從一個網絡傳送到另一個網絡中。
就像不同城市有不同的交通法規,屬于不同的交警系統管理,不允許外地車輛随便出入一樣,不同網絡也有不同的設計規範,屬于不同的組織來管理,必須通過授權,并由專門的協定來負責網絡間的通信。
注意:區域網路内部通過MAC位址尋址,而網絡間的尋址是通過IP位址進行的。
2、網絡通信的兩種情況
如果通信雙方在同一區域網路内,可直接通過資料鍊路層進行互相通信
如果通信雙方在不同網絡内,則要通過三層位址(如IP位址)進行
注意:二層裝置指能識别mac位址的裝置,三層裝置指能識别ip位址的裝置。
那為什麼就不能直接通過二層的幀在不同網絡中進行傳輸呢?
不同網絡中的統一辨別就是三層位址(如IP位址),它不能識别二層的MAC位址,三層IP包封裝成幀後,其中封裝的源和目的IP位址作為幀的資料部分,不會改變。這些資訊就是用來進行三層尋址的,且這些資訊在幀傳輸過程中是不會改變的。
A網絡發送給B網絡的幀,在轉發過程中,幀的MAC位址不斷變化,但是IP位址永遠不變。因為要不斷靠MAC位址在區域網路中尋找下一個轉發節點或目的節點。
二、網絡層主要作用
1、屏蔽網絡差異,提供透明傳輸
網絡層能夠解決不同網絡的規範要求差異,尋找一個不同網絡間能共同遵守的網絡通信規範,以便不同網絡間能互相識别,并接受對方的通路請求。
這樣傳輸層就可以在不同網絡間進行透明(也就是不管不同網絡間的差異,就像通信雙方是直接互連一樣)資料傳輸了。
網絡層向傳輸層提供的服務:
①面向連接配接的網絡服務:虛電路服務
②無連接配接的網絡服務:資料報服務
2、為網絡間通信提供路由選擇
能根據一定的原則和路由選擇算法在多個結點的通信子網中選擇一條到達目的節點的最佳路徑
3、資料包封裝和解封裝
對來自傳輸層的封包(或多個資料段)的頭部添加一些網絡層協定控制資訊封裝成資料包。資料包的頭部包含源節點和目标節點的網絡層位址(如IP位址)。
資料從低層到達網絡層時,要去掉在資料鍊路層加上的資料鍊路層協定控制資訊(也就是幀頭和幀尾),還原出原來的資料包格式,這就是包的解封裝過程
4、擁塞控制
避免網絡傳輸路徑中資料的傳輸延遲或死鎖
在資料鍊路層提到了流量控制功能,那是針對資料鍊路中點對點傳輸速率的控制
而這裡的擁塞控制是針對在網絡傳輸路徑中的端到端傳輸效率的控制(如避免路由器緩存空間爆滿而造成丢包的情況)。
三、網絡層資料交換及相關技術
在計算機網絡中,兩個端點之間通常需要通過中間結點實作資料通信,這些中間結點并不關心資料内容,隻提供一個交換裝置,把資料從一個結點轉發到另一個結點,直至達到目的端。
資料交換技術主要是指網絡中間結點所提供的資料交換功能。
1、線路交換(面向連接配接)
是在網絡中利用可切換的實體通信線路直接連接配接通信雙方所進行的一種資料交換方式。
通信前要在通信子網中建立一個實際的實體線路連接配接(通常由一種開關電路來控制)
三個階段:
❏線路建立:通過呼叫完成逐個結點的連接配接過程,建立起一條端到端的直通實體線路。
❏資料傳輸:線路建立好後就可以直接在端到端的直通線路上傳輸資料。
❏線路釋放:資料傳輸完成後,由任一使用者向交換網發出釋放請求信令。該信令沿通路各結點傳送,指揮這些結點拆除對應的鍊路,以釋放信道資源。
2、存儲-轉發
網絡結點先将途徑的資料流按傳輸單元(可以是封包或封包分組)接收并存儲下來(同檢驗該資料單元的校驗和),一個資料單元接收完後根據相關的路由算法選擇一條合适的路由路徑将資料轉發出去,在邏輯(不是實體線路)上為資料流提供了傳輸通路。
由通信控制處理機(如路由器、三層交換機)負責完成資料單元的接收、差錯校驗、存儲、路選和轉發功能。
1.封包交換(資料報服務)
資訊以封包為機關進行存儲-轉發的一種資料交換方式。在封包交換方式中,封包是網絡中交換與傳輸的資料單元
使用者發送的資料不是直接發送給目的節點的,而是先在中間結點上進行緩存(這類中間結點通常是由具有存儲能力的交換機、路由器承擔),然後再由中間結點線上路空閑時把資料發送出去。
2.分組交換
将封包根據各網絡傳輸規定的MTU(最大傳輸單元)分成多個組,進行傳輸。
分組交換是結合封包交換和線路交換兩種交換方式的優點而新開發的一種資料交換方式。
1、分類:
①資料報方式
在要轉發的資料標頭部加上源節點和目的節點的IP位址,成為資料報,然後通過路由技術一級級地把資料轉發下去
資料報:封包被分成多個組後,在每個分組前部增加了源位址和目的位址資訊字段的封包分段。
每個資料報自身攜帶有足夠的資訊,其中包括源位址、目的位址、結點間的路由資訊等,資料報的發送就是通過這些位址和路由資訊來保證資料準确發送到目的節點的
特點:
- 各結點可根據資料報中所包括的位址和路由資訊,選擇不同的路由路徑進行發送。另外,各個結點也可能随時根據網絡的流量、故障等情況選擇最佳路徑。
- 各資料報各行其道,很難保證全部按順序到達目的節點,有些資料報甚至還可能在途中丢失
②虛電路方式(面向連接配接)
在進行資料分組轉前先在源節點和目的節點間的所有路由器間建立一條虛拟的通信通道,然後再把資料分組從這個虛拟通道中轉發到目的節點。每個分組均不必帶目的位址、源位址等資訊
在虛電路分組交換中,分組被發送之前,必須在發送方與接收方之間建立一條專用的邏輯連接配接(虛電路,VC),并且以一個在所有經過的節點或結點上均唯一的虛電路辨別符(Virtual Circuit Identifier,VCI)進行辨別。這條VC所代表的就是所有經過的節點和結點的串連。
注意:每個結點可以和任何結點建立多條虛電路連接配接,每條實體線路可以建立無數條虛電路連接配接,每條虛電路支援特定的兩個結點之間的資料傳輸。
虛電路交換的階段:
(1)建立虛電路
(2)傳輸資料
(3)拆除虛電路
2、虛電路交換和資料報交換的比較:
(1)傳輸方式上的差別
(2)資料格式的差別
(3)轉發路徑的差別
(4)可靠性方面的差別
(5)适應性方面的差別
(6)擁塞控制能力方面的差別
四、網絡層協定及封包格式
1、IP協定(本文介紹IPv4)
IP協定是用于将多個分組交換網絡(資料報交換方式)連接配接起來的最典型通信協定。
該協定是無連接配接的服務,負責在源位址和目的位址之間傳送資料報,然後為了适應不同網絡對分組大小的要求,需要對上層傳來的封包進行分割,最後調用本地網絡協定将資料報傳送給下一個網關或目的計算機。
1.主要功能
把資料報在互連的網絡上傳送,将資料報在一個個IP子產品間傳送直到傳送到目的子產品。網絡中每個主機和網關上都有IP子產品。資料報在一個個子產品間通過路由處理網絡位址傳送到目的位址。
(1)尋址
在同一以太區域網路内部,結點間的尋址可以通過二層MAC位址進行,但在不同網絡之間,是不能通過MAC位址的,因為用于MAC位址尋址的廣播幀隻能在同一個以太網段内部進行
在不同網絡中隻能通過三層位址(該協定中為IP位址)進行尋址.
(2)資料報的封裝
從傳輸層到達的資料段都需要經過IP協定進行重新封裝的。因為IP協定是無連接配接的服務,并且采用資料報交換方式,是以封裝後形成的是IP資料報。
IP封裝的目的就是辨別此IP資料報發送節點和接收節點的IP位址及控制資訊
(3)分段與重組
不同網絡上的鍊路可以傳輸的最大封包大小是不同的,這就是我們通常所說的MTU(最大傳輸單元)。為了使我們要傳輸的資料報能在不同網絡中傳輸,當一些尺寸較大的資料報要在某個MTU值比較小的網絡鍊路上傳輸時就可能需要對原來的資料報進行拆分,形成一個個小的分段,然後再把這些分段依次傳輸出去。
在接收節點自然就要把這些被拆分的分段重新組合起來,還原成原來的大的資料報的問題
2.IPv4資料報
①IPv4資料報頭部格式
(1)版本(Version)
版本字段指定IP資料報中使用的IP協定版本,占4位。此處是IPv4版本,值為4(0100)。
(2)頭部長度(Header Length)
IP資料報頭部的總長度,IP資料報頭部的總長度以4位元組為機關,該字段占4位 報頭長度必須是32位(4位元組)的整數倍,如果不是,需在選項字段的填充(PAD)子字段中補0湊齊。
(3)區分服務(Differentiated Services)
又稱服務類型(ToS)字段,用于表示資料報的優先級和服務類型,占8位。
(4)總長度(Total Length)
辨別整個IP資料報的總長度,包括報頭和資料部分,整個IP資料報總長度以位元組為機關,該字段占16位。由此可得出,IPv4資料報的最大長度為216-1位元組即65535位元組(即64KB)。
(6)标志(Flags)
指出該IP資料報後面是否還有分段,也就是這個字段是分段标志,占3位。目前隻有前兩位有意義:最低1位記為MF(More Fragment),如果MF=1,即表示後面還有分段,如果MF=0表示這已是某個資料報的最後一個分段;中間1位記為DF(Don’t Fragment),當DF=1時表示不允許分段,DF=0時表示允許分段;最高1位沒有使用。
(7)段偏移(Fragment Offset)
用以指出該分段在資料報中的相對位置,也就是說,相對于使用者資料字段的起點,該分段從何處開始,占13位 若有分段,段偏移以8位元組為偏移機關,即每個分段的長度一定是8位元組(64位)的整數倍
(8)生存時間(Time To Live,TTL)
辨別IP資料報在網絡中傳輸的有效期,以秒來計數,占8位。 現在通常認為這個TTL是指資料報允許經過的路由器數,每經過一個路由器,則TTL減1,當TTL值為0時,就丢棄這個資料報。
(9)協定(Protocol)
辨別此IP資料報在傳輸層所采用的協定類型(如TCP、UDP或ICMP等),以便使目的主機的IP層知道應将資料部分上交給哪個處理過程,占8位。
(10)校驗和(checksum)
校驗和字段用來檢驗IP資料報的報頭部分。 校驗原理: 先在發送端校驗和字段中填上一個特定的值,然後在接收端把包括校驗和字段在内的報頭部分進行二進制反碼求和,再取反,如果結果為0,則表示報頭部分在傳輸過程中沒有發生變化,否則表示在傳輸過程中出現了差錯。 特定的值=把源資料報頭部(校驗和字段置0)看成由以16位(2位元組)為機關的數字組成,對每16位的二進制反碼進行求和的結果
(11)源位址/目的位址(Source Address/Destination Address)
(12)選項(Options)
選項字段(可無)支援各種選項,提供擴充餘地。根據選項的不同,該字段是可變長的,從1位元組到40位元組。用來支援排錯、測量以及安全、控制報頭長度等措施。
②IPv4資料報的封裝與解封裝
(1)封裝:
以上所述是經過一個網絡的情形,如果一個IP資料報在整個傳輸過程中要經過幾個網絡時,怎麼辦呢?
(2)解封裝
資料報傳輸過程中,變化的隻是在不同網絡資料鍊路上傳輸的幀頭資訊(不同網絡的鍊路層協定可能不同,是以要根據不同協定,重新封裝成幀),而IP資料報資訊不變
在不同網絡鍊路上傳輸的幀,源MAC位址和目的MAC位址會改變(用于在每個經過的區域網路内尋址)。
③IPv4資料報的分段與重組
在網絡層中還涉及一個分段的問題,那是因為不同網絡線路上可以傳輸的資料報大小是有限制的,且可能是不同的,也就是我們通常所說的MTU(最大傳輸單元),是以如果一個網絡中收到的資料報太大,不能在目的網絡中一次傳輸的話,就要對原來的包進行拆分,分成一個個小的資料報再進行傳輸。
為了解決這個問題,就需要在路由器上對接收到的主機A發來的IP資料報進行分段(資料報的片偏移會修改),然後再将每個分段獨立地進行發送,可以像正常的IP資料報一樣經過獨立的路由選擇等處理過程,最終到達目的主機。最後,還需要在目的主機上對這些分段進行重組,恢複原始的大IP資料報。
2、ARP協定
ARP(Address Resolution Protocol,位址解析協定)是将IP位址解析為以太網MAC位址(或稱實體位址)的協定。
在區域網路中,當主機或其他網絡裝置有資料要發送給另一個主機或裝置時,它必須知道對方的網絡層位址(即IP位址)。但是僅僅有IP位址是不夠的,因為IP資料封包必須封裝成幀才能通過實體網絡發送,是以發送站還必須有接收站的實體位址,是以需要一個從IP位址到實體位址的映射。
1.ARP封包格式
ARP是一個獨立的三層協定,是以ARP封包在向資料鍊路層傳輸時不需要經過IP協定的封裝,而是直接生成自己的封包,然後再到資料鍊路層封裝成幀
2.ARP映射表
無論是主機,還是交換機都會有一個用來緩存同一網段裝置IP位址和MAC位址的ARP映射表,用于資料幀的轉發。
(1)動态ARP表項:由ARP協定通過ARP封包自動生成和維護
(2)靜态ARP表項:通過手工配置(通過對應裝置的IP位址與MAC位址綁定指令進行)和維護
注意:靜态ARP表項又分為短靜态ARP表項和長靜态ARP表項,差別在于位址表項是否綁定了VLAN。
若在不同網絡上,主機A向主機B發送資料,則主機A要先使用ARP協定詢問本網絡網關位址,然後發資料給網關後,網關再在主機B所在網絡詢問主機B的位址,并發送資料。
3、ICMP協定及封包格式
ICMP是(Internet Control Message Protocol)Internet控制封包協定。它是IPv4協定簇中的一個子協定,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。
但與ARP協定不同,ICMP依靠IP協定來完成其任務,是以ICMP封包中要封裝IP頭部。
1.ICMP消息類型
2.報頭格式
3.常見的ICMP封包
(1)響應請求
(2)目标不可到達、源抑制和逾時封包
(3)時間戳請求
五、路由和路由算法
路由功能其實是一種資料報分組交換路徑選擇行為,是網絡層的一種基本功能。
1、路由的分類
1.靜态路由(手動配置)
靜态路由中包括目的節點或目的網絡的IP位址,及資料包從目前路由器開始路由的第一個下一跳(通常就是網關)所對應的接口或IP位址。
如果某條靜态路由中間經過的跳數大于1(也就是整條路由路徑經曆了三個或以上路由器結點),則必須在除最後一個路由器外的其他路由器上依次配置到達相同目的節點或目的網絡的靜态路由
2.動态路由
在網絡中某條路由所包括的路由器同時啟動了某種動态路由協定,通告了各自所直接連接配接的網絡後,則這些路由器間就會自動生成這些路由器直接連接配接的網絡間的路由表項,管理者無須一一手動建立,且這些路由表項會自動更新維護。
2、路由算法
路由算法(Routing Algorithm)是在給定一組路由器及連接配接路由器鍊路的情況下,找出一條從源節點到目标節點的最佳路徑。通俗地講,就是把路由器選擇最佳路徑的政策稱為路由算法
1.分類
①非自适應路由算法
那些不能根據網絡流量和拓撲結構的變化更新路由表,僅使用靜态路由表的路由算法
(1)靜态路由
(2)擴散法:當一個路由器接口收到一個封包分組後,即向它所有接口(包括接收該分組的源接口)進行複制擴散
(3)随機走動法:當結點收到分組後,向所有與之相鄰的結點中随機選擇出一個将分組轉發出去
(4)最短路徑法:将源節點到網絡中所有結點的最短通路都找出來,作為這個結點的路由表。
(5)基于流量的路由算法:結合了網絡拓撲結構和通信流量兩方面的因素進行路由選擇
②自适應路由算法
動态路由均屬于自适應路由算法類型,可根據網絡流量和拓撲結構的變化更新路由表。
(1) 自适應路由算法兩大分類
總體式路由算法(鍊路狀态算法和分級路由算法)
每個路由器都擁有網絡中某個區域或者整個網絡中所有其他路由器的全部資訊以及網絡的流量狀态
分散式路由算法(距離矢量算法)
每個路由器隻與直接相連的路由器交換路由資訊,每個路由器隻有相鄰路由器的路由資訊,而沒有網絡中的其他路由器的路由資訊
(2) 距離矢量算法(RIP協定)
又稱Bellman-Ford路由算法和Ford-Fulkerson算法。主要在RIP(Route Information Protocol)協定中使用
距離: 從本結點起,每經過一個路由器(也可以是提供路由功能的三層交換機,下同),就加一跳。也就是對應路由條目中除源站點所在網絡直接連接配接的路由器外,到達目的站點所經過的路由器數
所有的路由學習完全依靠鄰居路由器,交換的是完整的路由表項。
距離矢量路由算法的基本思想如下:
每個路由器維護一個距離矢量(通常是延時或跳數)表,然後通過相鄰路由器之間的距離矢量通告進行距離矢量表的更新。
每個距離矢量表項包括兩部分:到達目的節點的最佳輸出線路,和到達目的節點所需時間或距離,通信子網中的其他每個路由器在表中占據一個表項
每隔一段時間,路由器會向所有鄰居結點發送它到每個目的節點的距離表,同時它也接收每個鄰居結點發來的距離矢量表。這樣以此類推,經過一段時間後便可将網絡中各路由器所獲得的距離矢量資訊在各路由器上統一起來
(3) 鍊路狀态路由算法(OSPF協定)
它不僅是要根據所經過的路由器多少,還要根據路徑中各段鍊路的狀态來計算最佳路由路徑。而這個鍊路狀态包括:接口的IP位址、子網路遮罩、網絡類型(如以太網鍊路或串行點對點鍊路)、該鍊路的端口開銷(Cost)、該鍊路上的所有的相鄰路由器。
網絡中的路由器并不向鄰居路由器傳遞路由表項,隻是向鄰居路由器通告它的一些鍊路狀态
鍊路狀态路由算法的基本思想是:
網絡中各個結點不必交換通往目的站點的距離,而是維護一張網絡拓撲圖,在網絡拓撲結構發生變化時及時更新拓撲圖即可。
5個步驟:
1)發現鄰居結點,并知道其網絡位址;
2)測量到各鄰居結點的延時或開銷;
3)組裝一個鍊路狀态分組,告之剛知道的所有資訊;
“時間”即鍊路狀态生存時間(TTL)
4)将這個分組發送給所有其他路由器;
5)每個分組使用Dijkstra算法(也就是“最短路徑”算法)計算到每個其他路由器的最短路徑。
(4)分級路由算法(ISIS協定)
在分級路由算法中,路由器被分成很多組,稱為區域。每個路由器都隻有自己所在區域路由器的資訊,而沒有其他區域路由器的資訊。是以在其路由表中,路由器隻需要存儲其他每個區域的一條記錄。
在分級路由算法的思想下,出現了自治系統、内部網關協定、外部網關協定等概念
自治系統AS:
一個自治系統(AS)是一個有權自主地決定在本系統中應采用各種路由協定的小型機關。這個網絡機關可以是一個簡單的網絡也可以是一個由一個或多個普通的網絡管理者來控制的網絡群體,它是一個單獨的可管理的網絡單元(例如一所大學,一個企業或者一個公司個體)。一個自治系統有時也被稱為是一個路由選擇域(routing domain)
内部網關協定:
IGP(内部網關協定)是在一個自治網絡内網關(主機和路由器)間交換路由資訊的協定。
IGP協定包括RIP、OSPF、IS-IS、IGRP、EIGRP。
外部網關協定:
AS之間使用的路由協定,如BGP-4協定
3、路由優先級
當路由器同時配置了源和目的節點(或目的網絡)的不同類型路由時,路由器該首選采用哪條路由表項呢?
管理距離是指一種路由協定的路由可信度,是一個0~255之間的一個整數,值越低,優先級越高,也就是可信度越高
六、網絡擁塞控制方法和原理
1、原理
網絡擁塞現象是指到達通信子網中某一部分的資料包數量過多,使得該部分網絡來不及處理,以緻引起這部分乃至整個網絡性能下降的現象。
之是以會出現擁塞現象,就是因為通信子網中所承受的負荷(即通信子網中正在傳輸的資料包數)超出了網絡的吞吐能力(包數/秒)。當通信子網負荷比較小時,網絡的吞吐量随網絡負荷的增加而線性增加。當網絡負荷增加到某一值後,此時網絡的吞吐量達到了最大值。若再加網絡負荷,此時的網絡吞吐量會不升反降,則表明網絡中開始出現擁塞現象了。
2、控制方法
1.緩沖區預配置設定法
常用于虛電路分組交換網中。在虛電路建立時,要求呼叫請求分組所途經的每個結點為此條虛電路預先配置設定一個或多個資料緩沖區。
若某個結點目前無可用的緩沖區(被請求的結點會傳回一個“忙”應答信号給呼叫請求分組發送者),則在建立虛電路時,讓呼叫請求分組選擇其他路徑來建立虛電路。
這樣,通過途經的各個結點就可以為每條虛電路開設永久性的緩沖區(直到虛電路拆除),就總能有空間來接納并轉送經過的資料包。
2.分組丢棄法
節點不必預先為資料包預留緩沖區,而是在路由器的緩沖區已被占滿時,隻需将後面到來的資料包丢棄,僅在緩沖區騰出空間後再重新接收資料分組
3.定額控制法
在通過通信子網中設定适當數量稱為許可證的特殊資訊來實作
其中一部分許可證在通信子網開始工作前預先以某種政策配置設定給各個源節點;另一部分則在子網開始工作後在網中四處環遊。
當源節點要發送來自源端系統的資料包時,它必須首先擁有許可證,并且每發送一個資料包登出一張許可證。
目的節點則每收到一個資料包,并将其遞交給目的端系統後,便生成一張許可證
這種控制方法有點像令牌網上的媒體争用解決方案。在令牌網中,源節點要發送資料必須要擷取網絡中唯一的令牌,不同的是這裡的證書不是唯一的,而是有許多。
3、死鎖及其預防
死鎖就是一些結點由于沒有空閑緩沖區而無法接收和轉發資料包(轉發時也需要一定的緩沖空間的)的現象,死鎖的結果是結點間互相等待,既不能接收資料包也不能轉發資料包,并一直保持這一僵局,嚴重時甚至導緻整個網絡的癱瘓
(1)預防方法:
①為每個結點設定m+1個緩沖區(m為通信子網的直徑,即從任一源結點到任一目的結點間的最大鍊路段數),并順序編号。每個源結點僅當其為0号緩沖區可用時才能接收源端系統來的資料包,而此資料包僅能轉發給1号緩沖區空閑的相鄰結點,再由該結點将資料包轉發給它的2号緩沖區空閑的相鄰結點,以此類推。
②使每個資料包上都攜帶一個全局性的唯一的“時間戳”,每個結點要為每條鍊路保留一個特殊的接收緩沖區,而其他緩沖區均可用于存放中轉資料包,按每條輸對外連結路的隊列上資料包時間戳順序排隊。
例:
結點A要将資料包送到結點B,若B結點沒有空閑緩沖區,但正巧有要送到A結點的資料包,此時A、B結點可通過特殊的接收緩沖區交換資料包;若B結點既沒有空閑緩沖區,也沒有要送到A結點的資料包,B結點隻好強行将一個出路方向大緻與A結點方向相同的資料包與A結點資料包互相交換,但此時A結點中的資料包必須比B結點中的資料包具有更早的時間戳,這樣才能保證子網中某個最早的資料包不受阻擋地轉發到目的地。
(2)重裝死鎖及其防止
在資料分組重新組裝、恢複成原來資料包的過程中發生的死鎖,是另一種比較嚴重的死鎖現象
例:
假設源結點發送的封包很長,被源結點拆成若幹個資料分組發送,當這些分組到達目的結點後,就要将這些具有相同封包序号的多個分組重新組裝成一個完整的封包再遞交給目的端系統。
若目的結點用于重裝封包的緩沖區空間有限,而且它無法知道正在接收的封包究竟被拆成多少個資料分組,此時就可能發生死鎖現象,因為它沒辦法完成整個分組的重裝,在緩沖的分組就不能被發送出去。
而此時相鄰結點仍在不斷地向它傳送資料分組,因沒有可用的緩沖空間,本結點就無法繼續接收這些後續的分組了
防止:
❏允許目的結點将不完整的封包遞交給目的端系統,隻要按順序發送即可,完整組裝的任務交給目的端系統。
❏檢測出不能完整重裝的封包,然後要求發送該封包的源端系統重新傳送,但這種方法的有效性比較低,因為這也很難確定目的節點在重發時就有足夠的緩沖空間。
❏每個結點配備一個專門的緩沖空間,用以暫存不完整的封包,相當于CPU上配置的多級緩存,但這明顯會增加裝置的成本。
七、IPv4詳解
1、子網路遮罩
我們在為裝置配置IP位址時,通常是不能僅配置IPv4位址,而必須同時配置所謂的子網路遮罩。
1.概念:
IPv4位址在設計時就考慮到位址配置設定的層次特點,将每個IP位址都分割成網絡ID和主機ID兩部分,以便于IPv4位址的尋址操作。
子網路遮罩由1和0組成,且長度也是32位,我們也可以把它分成網絡ID和主機ID兩部分,且各自的長度與IPv4位址的網絡ID和主機ID部分對應相等。子網路遮罩中的網絡ID部分全是1,1的數目等于網絡ID的長度;主機ID部分全是0表示,0的數目等于主機ID的長度。
這樣做的目的是為了在尋址過程中使子網路遮罩與對應的IPv4位址做邏輯與運算時用0遮住IPv4位址中原主機ID部分,而不改變原網絡ID部分,這樣就一來就得到了目的IPv4位址的網絡ID,進而确定目的主機所在的網絡.
2、IPv4位址分類
私網IP位址
在設計IPv4位址時就專門在前面介紹的A、B、C這類IPv4位址中各自劃分了一段專用于各組織區域網路内部的位址段,這就是我們前面所說的私網IP位址(又稱區域網路專用IP位址或者專用網絡位址)。私網IPv4位址在不同公司内部的區域網路中是可以重複使用的,且無須向IP位址管理機構申請、注冊和購買的。在A、B、C類位址中各自劃分的區域網路專用位址段如下:
(1)10.0.0.0/8(10.0.0.0,255.0.0.0)
(2)172.16.0.0/12(172.16.0.0,255.240.0.0)
(3)192.168.0.0/16(192.168.0.0,255.255.0.0)
不能直接用私網ip位址通路internet!
3、有類/無類IPv4網絡
盡管已針對整個IPv4位址空間進行分類,但每類網絡的數量對于全球使用者數量來說仍非常之少,特别是A類網絡才區區的126個。之是以會出現這種現象,原因就在于每類網絡的網絡ID部分(也就是子網路遮罩部分)的位數是固定不變的,而且是位元組的整數倍,如A類網絡中的網絡ID部分占1位元組(8位),B類網絡中的網絡ID部分占2位元組(16位)、C類網絡中的網絡ID部分占3位元組(24位)。
也就是說,子網路遮罩在分類網絡中是固定的
1.VLSM技術(子網劃分)
該技術可以使網絡中IPv4位址的子網路遮罩所占位數不是固定的,如子網路遮罩位數可以不是以位元組為機關的整數,如12、13、14、25、26、28、等均可。
因為子網路遮罩位數不固定了,也就不能再依據子網路遮罩對IPv4位址來進行分類了,是以采用VLSM後形成的網絡稱為無類網絡,而以前傳統的A、B、C類網絡則相對應地被稱為有類網絡或标準網絡。
而我們把在有類網絡中通過VLSM技術改變子網路遮罩長度而劃分的小網絡稱為子網
VLSM隻能劃分相同大小的子網,也就是一個網絡劃分了子網後,各子網的IPv4位址數是相同的
好處:
①使用者可以根據網絡規模大小選擇擁有适當可用IPv4位址的IPv4位址段,這樣可以減少IPV4位址的閑置和浪費,降低廣播風暴産生的可能;
②可以提高路由效率;
③提高廣域網中的網絡安全。
如原來一個标準的C類網絡中有254個可以配置設定給節點的位址,現在公司中有6個部門,每個部門的人數不超過30人,現在想為每個部門分别配置一個子網。如果沒有VLSM,則需要用6個C類标準網絡。而有了VLSM後,僅用一個C類網絡就可以劃分出所需的6個子網,而且每個子網中可用的IPv4位址更貼近各部門的實際需求。
注意:
傳統的IPv4位址表示方法是在給出具體的IPV4位址的同時給出它所對應的子網路遮罩, 如192.168.1.10、255.255.255.0等。 這也是我們在為節點配置IP位址的同時要配置子網路遮罩的原因。但在日常書寫時,這樣顯然比較麻煩
為了能更加簡便地書寫,采取了一種比較簡單的位址字首表示形式(CIDR格式),就是在一個IPv4位址後面先加上一個斜杠(/),然後在這個斜杠後面直接寫出該位址所在網絡的子網路遮罩長度,因為網絡ID長度決定了具體IPv4位址所屬的網絡。
例:
要把192.168.1.0/24網絡劃分成四個子網,它可以通過向“主機ID”借2位來實作,這4個子網分别是:
①192.168.1.0~192.168.1.63(192.168.1.0/26)
②192.168.1.64~192.168.1.127(192.168.1.64/26)
③192.168.1.128~192.168.1.191(192.168.1.128/26)
④192.168.1.192~192.168.1.255(192.168.1.192/26)
如從131.107.0.0/18這個位址中可知它所對應的網絡中有18位屬于網絡ID部分,有14位屬于主機ID部分
4、IPv4 NAT基礎
NAT技術允許組織内部網絡使用非全局可路由IP位址(如企業的私網ip位址)的使用者通過位址轉換為全局可路由的IP位址來通路Internet,以降低了對公網IP位址的需求。
1.與NAT相關的主要術語
(1)内部網絡(Internal Network)
内部網絡通常是指一個邊緣區域網路,使用内部網絡(如私網)IPv4位址
(2)外部網絡(External Network)
除本地私有網絡以外的所有其他網絡
(3)本地位址(Local address)
本地位址是本地網絡(可以是内部網絡,也可以是外部網絡)内部使用的IP位址,僅在本地網絡有效,不能直接用來通路外部網絡的IP位址,不可路由
①内部本地位址(Inside local address)
内部本地位址是指配置設定給内部網絡主機的IP位址。
②外部本地位址(Outside local address)
為外部網絡主機配置設定的本地網絡IP位址,是外部網絡主機對内部網絡使用者呈現的IP位址。
(4)全局位址(Global address)
全局位址是與本地位址相對應的IP位址,它是内、外部網絡本位址轉換後的IP位址的,是可路由的。
①内部全局位址(Inside global address)
内部網絡主機對外部網絡使用者呈現的IP位址(可以是配置設定給路由器連接配接外部網絡接口的IP位址),是内部本地位址轉換後的位址。
②外部全局位址(Outside global address)
外部網絡主機配置設定到的外部網絡IP位址。它通常是由ISP配置設定給企業使用者内部網絡使用的注冊IP位址
2.NAT基本原理
NAT進行位址轉換的過程就是本地位址與全局位址之間的轉換過程,無論資料包是從内部網絡發往外部網絡,還是從外部網絡發往内部網絡。不同的隻是本地位址和全局位址所對應的網絡不同,以及資料包重新封裝的源和目的位址不同
當資料包還在内部網絡位置時有一個作為源位址的内部本地位址和一個作為目的位址的外部本地位址。此資料包首先發往路由器連接配接内部網絡的接口中。當資料包被轉發到外部網絡時,資料包的源位址就會轉變為内部全局位址,而目的位址被轉變為外部全局位址
資料包是從外部網絡位置發來,并且仍位于外部網絡中時,它的源位址就是外部全局位址,目的位址就是内部全局位址。而當資料包被路由器轉發到本地網絡時,源位址被轉變為外部本地位址,目的位址被轉變為内部本地位址
3.NAT類型
(1)靜态NAT(Static NAT)
把非注冊IP位址(如本地區域網路IP位址)一對一地映射到公網注冊IP位址(如網際網路IP位址)
image.png
(2)動态NAT(Dynamic NAT)
把一個非注冊IP位址動态地映射到一個注冊IP位址池中的一個位址。具體是哪兩組IP位址之間的映射關系,還要看所配置的具體公用IP位址池和通信時間。
下圖所示是一個動态NAT應用的示例:
内網中的三個IP位址與一個範圍為213.18.123.100~213.18.123.150的公網IP位址池進行動态映射。最終的結果是,192.168.32.10映射為213.18.123.116,192.168.32.12映射為213.18.123.112,而192.168.32.15映射為213.18.123.125,……
(3)重載或複用NAT(Overloading NAT)
它通過與IP位址的不同端口組合,把多個非注冊IP位址映射到一個注冊IP位址,也就是通常所說的PAT(Port Address Translation,端口位址轉換)。通過PAT,數千内網使用者都可以僅通過一個公網IP位址通路Internet。
(4)重疊(Overlapping)NAT
當内部網絡中使用的IP位址是外部網絡中注冊的IP位址時(也就是内、外部網絡使用的是相同IP位址段時),路由器需要維護一張查詢表,以便截取來自内部網絡的資料包,并用外部網絡中沒有使用的注冊IP位址進行替換。
重疊NAT主要應用于使用公網IP位址的内部網絡伺服器的位址轉換,這樣可以隐藏内部網絡伺服器的真實公網IP位址,有利于保護伺服器的安全。因為經過NAT轉換後,内部網絡伺服器對外呈現的是另一個公網IP位址,不是真實的伺服器IP位址。
重疊NAT的詳細介紹可見 重疊NAT轉換方式 - NetEngine AR V300R019 配置指南-IP業務(指令行) - 華為
4.NAT主要應用
(1)無足夠的公網IP位址可用時
(2)重構網絡IP位址部署
(3)實作簡單的TCP負載均衡