本文是計算機網絡微課堂筆記
計算機網絡之網絡層
網絡層的主要任務是實現網絡互連,進而實現數據包在各網絡之間的傳輸
一. 網絡層概述
下圖:這些異構型網絡如果只是需要各自內部通信,那它們只要實現各自的物理層和數據鏈路層即可
如果要形成一個更大的互聯網,就需要使用網絡層互連設備路由器
網絡層需要實現的第一個任務是:網絡層向運輸層提供怎樣的服務
網絡層可能出現下面上個問題;
- 誤碼
- 路由器繁忙丟棄
- 失序
如果網絡層對於上述傳輸錯誤採取措施並使得接收方能正確接收發送方所發送的數據包,則提供的是可靠傳輸服務;否則是不可靠傳輸服務
網絡層需要實現的第二個任務是:網絡尋址問題
網絡層需要實現的第三個任務是路由選擇: 依據的是數據包中的目的地址和路由器中的路由表
R1的路由表是如何實現的呢:
- 小型網絡可以通過人工配置方式得到路由表
- 大型網絡可以通過路由器自主學習得到
二. 網絡層提供的兩種服務
面向連接的虛電路服務和無連接的數據報服務
1. 虛電路表示這是一條邏輯上的連接,分組都沿着這條邏輯連接按照存儲準發方式傳送;而不是真正的物理連接
2. 採用電路交換的電話通信則先建立一條正在的連接,因此分組交換的虛連接與電路交換的連接只是類似
因特網的先驅者並沒有採用這種設計思路,而是採用了無連接的數據報服務;
三. IPV4概述
四. 分類編制的IPV4地址
注意:B,C的第一個地址由於無分類方式的出現,可以進行分配了。教材第六版未進行及時更新
A類地址詳情
B類地址詳情
C類地址詳情
- A網絡65534臺主機,再加上一臺路由器,即65535,只能分配A類
- 254太+1太路由器;可以給該網絡分配一個A類或B類網絡號;節約網絡IP地址的原則,分配B
- 網絡C需要分配的IP地址梳理是41;分配A,B,C都可以,所以分配C類
- 只有路由器,無主機,需要分的是2個;分配C類即可
注意每個網絡號應該互不相同;且分配給主機的IP也互不相同,並且其主機號不能全爲0和全1;一個是網絡地址一個是廣播地址;
五. 劃分子網的IPV4地址
IPV4地址編址方法的第二個歷史階段,也就是劃分子網的IPv4地址
某單位有一個大型的局域網需要連接到因特網,如果申請一個C類網絡地址,其可分配的IP地址數量只有254個,不夠使用,因此該單位申請了一個B類網絡地址;但其可分配的IP地址數量達到了65534個;給每臺計算機和路由器分配一個IP地址後
還剩下大量的IP地址,但只能由該單位的同一個網絡使用;而其他單位不能使用;隨着該單位計算機網絡的發展和建設,該單位又新增了一些計算機;並且需要將原來的網絡劃分成三個獨立的網絡
如果可以借用主機號的一些位作爲子網號來區分不同的子網,就可以利用原來網絡中剩餘的大量IP地址;而不用申請新的網絡地址;
這樣就引出了一個劃分子網的工具:子網掩碼
如果把一個網絡40.15.0.0 分爲兩個子網,第一個子網是 40.15.0.0/17,那麼第二個子網可以是:
A. 40.15.1.0/17
B. 40.15.2.0/16
C. 40.15.100.0/17
D. 40.15.128.0/17
讓主網分成兩個子網段,子網掩碼分別是 0xff 0xff 0x80 0x00 和 0xff 0xff 0x00,0xx00; 答案是D
六. IPV4 無分類編址IPv4地址
IPv4地址編址方法的第三個歷史階段,無分類編址IPv4地址
七.IPV4地址的應用規劃
給定一個IPV4地址塊,如何將其劃分成幾個更小的地址塊,並將這些地址塊分配給互聯網中的不同網絡,進而可以給互聯網中的主機和路由器接口分配IPV4地址。方法有二:如下所示
採用定長的子網掩碼進行子網劃分,只能劃分出2n個子網,其中n是從主機號部分借用來作爲子網號的比特數量,每個子網劃分出來的IP數量相同,容易造成IP地址的浪費;例如網絡5只需要4個地址,當我們只能分配最小的32給地址,這樣就造成了IP地址的嚴重浪費。
採用變長的子網掩碼LVLSM,減少了IP的浪費
八.IP數據報的發送和轉發過程
舉例說明IP數據報發送和轉發的過程:
下面有兩個網絡,分配了不同IP地址:
同一個網絡中的主機之間可以直接通信,屬於直接交互,不同網絡之間通信需要通過路由器轉發
通過IP地址與子網掩碼進行相與來獲取所在網絡地址,進而判斷是否在同一個網絡
主機C需要將IP數據報傳輸給路由器,由路由器將IP數據報轉發給主機F,主機C又是如何知道把路由器轉發給那個路由器呢?
實際上,用戶爲了讓本網絡中的主機能和其他網絡中的主機進行通信,就必須給其指定本網絡中的一個路由器,由該路由器進行轉發,所指定的路由器,也被稱爲默認網關
路由表可以是用戶或網絡管理員手工配置的靜態路由,也可以是路由器使用路由協議自動獲取的動態路由;
目的地址和子網掩碼進行相與得到目的網絡;然後查看下一跳;
上述只是簡化了IP數據表發送和轉發的過程,實際上需要更加精確的設計。
路由器不轉發數據報,是隔離廣播域的
九. 靜態路由配置以及其可能產生的路由環路問題
如上圖所示,假設R1要轉發一個IP數據報給該網絡中的某個主機,R1應該將IP數據報轉發給路由器R2的接口0,但R1的路由表中並沒有關於該目的網絡的路由條目;
R1並不知道目的網絡的存在;可以結合路由命令給R1添加一條到達該目的網絡的路由條目; 如下給出了:192.168.2.0/24 10.0.0.2
如果R2需要給完了過192.168.1.0/24
這個網絡發送數據報,在R2的路由表中沒有相關記錄,則手動添加192.168.1.0/24 10.0.0.1
(下一跳路由:R1的1接口)
這種配置方式爲靜態類型; 如果要轉發IP數據報給給因特網,又該怎麼辦呢?
這個時候,因特網中的路由數目特別多,要給每個網路配置一個路由條目,將會帶來大量的工作量,且R1的路由表會變的特別大,降低了查錶轉發的速度; 實際上,對於具有相同下一跳的不同目的網絡的路由條目,我們可以用一條默認路由條目來代替
如上述:給出了0.0.0.0/0
這個默認的路由。除此以外,還可以給特定主機設置路由;例如給主機192.168.2.1
這個主機發送數據報;
接下來看一下配置出差導致路由環路的情況:
在R2的路由表中,本該把R1的嚇一跳配置成網絡10.0.0.1
,結果配成了10.0.0.2
,結果形成了環路
針對形成環路,設置TTL來控制永久兜圈問題。
假設R2要轉發IP數據報到該網絡,進行查錶轉發,
發現 192.168.0.0/22
不存在
針對這種情況可以,可以添加針對所聚合的,不存在的網絡的黑洞路由
檢查到黑洞路由;則自動取消
接下來看一下網絡故障導致路由環路:例如192.168.1.0/24
出現故障; 在R2的路由表中結點出故障,路由表將其條目去除後,當轉發IP達到後,找不到,這個時候就會進行默認路由,發送到路由器2,從而導致環路
經過一段時間後,恢復了網絡,這個時候會將黑洞條目設爲失效狀態
十. 路由選擇協議概述
因特網是全球最大的互聯網網絡,它所採用的路由協議:
- 互聯網中各路由通過相互間的信息交互,共同完成路由信息的獲取和更新
因特網採用分層次的路由選擇協議
- 其中IGP和EGP是分類名稱,不是具體的路由協議
- 早期的網關沒有使用路由器,現在RFC改用了路由器
每個內部網關協議具體實現可以各不通
路由器是一個具有多個輸入端口和輸出端口的專用計算機;用於分組轉發
路由器主要有兩部分,一部分是路由選擇部分,一部分是分組轉發部分
除此以外,還會週期性的給其他路由器發送自己的信息(信息交換更新)
(注:在學習過程簡化了路由表和轉發表)
路由選擇部分:核心構建是路由選擇出來機,任務是根據所使用的路由選擇協議,週期性的與其他路由進行路由信息的交互;來更新路由表
分組轉發部分:由三部分組成:交換結構,一組輸入端口,一組輸出端口; 各路由端口還有對應的緩衝區(輸入輸出緩衝區)
十一. 路由信息RIP的基本工作原來
注意:具體實現廠商不一定按此規則進行跳數設置.
儘管這條鏈路上的帶寬都非常小,也一樣這麼認爲
即將通信量均衡地分佈到多條等價的路由上
RIP的基本工作過程
最後R2聽信“謠言”,更新了路由表
十二. 開發最短路徑優先OSPF的基本工作原理
如果DR出現故障,則BDR頂替上;通過這種方式,減少了連接關係
每個區域都有一個32比特的區域標識符,可以用點分十進制表示;主幹區域爲0,其他區域不能爲0 且互不相同; 主幹區域用於聯通其他區域,每個區域的規模不應太大,一般所包含的路由器不超過200個,劃分區域的好處就是把利用洪泛法交換鏈路狀態信息的範圍侷限於每一個區域而不是整個自治系統;減少了整個網絡上的通信量;
1. 區域內路由器: 路由器的所有結構都在同一個區域內
2. 區域邊界路由器:爲了本區域可以和自治系統內的其他區域連通,每個區域都會由一個區域邊界路由器,它的一個接口用於連接自身所在區域,另一個接口用於連接主幹區域;
3. 主幹路由器:主幹區域內的路由器稱爲主幹路由器;也可以把區域邊界路由器看作是主幹路由器
4. 自治系統邊界路由器:主幹區域路由器需要有一個專門和本自治系統外的其他自治系統交換路由信息
採用分層次劃分區域的方法,雖然使交換信息的種類增多了,同時也使OSPF協議更加複雜了,但這樣做,卻能使每一個區域內部交換路由信息的通信量大大減少,因而可以使用OSPF協議應用於規模較大的自治系統中
十三. 邊界網關協議BGP的基本工作原來
注:BGP協議非常複雜,不再繼續深入討論。
考慮篇幅,關於IPV4數據報和ICMP報文協議將在另外的章節中講解