1. 程式人生 > >計算機網路(謝希仁 第七版)網路層 個人筆記

計算機網路(謝希仁 第七版)網路層 個人筆記

                                  第四層 網路層

1.網路層提供的服務

虛電路服務(面向連線)和資料報服務(無連線)

虛電路服務類似通話網服務,通訊期間長期佔用此連結(鏈路必須負責可靠性傳輸

資料報服務通訊期間不需要建立完整的長期連結(鏈路不負責可靠性傳輸,目的端和源端負責

,比如差錯性檢驗的迴圈冗餘校驗)


2.虛電路服務相關介紹:

1.網路上的報文一般都比較短,使用資料報服務的話即迅速又經濟,使用虛電路的話又慢又貴(因為短報文需要多次連通虛電路,連通時間又不長)

2.使用資料報時,每個分組必須攜帶完整的地址資訊,而虛電路只需要編號標誌

3.虛電路服務時,虛電路負責差錯控制和流量控制,而使用資料報時,主機承擔端到端的差錯控制和流量控制

4.虛電路時,某個結點發生故障,後續分組可以另選路由,而使用虛電路時,某個結點發生故障,則需要重新建立另一條虛電路

虛電路服務代表:X25網

鏈路編號:虛電路號

X25規定經常通訊的兩端,該虛電路永久建立

特點:貴,相容性不好


3.資料報服務相關介紹:

資料報服務代表協議:IP協議族

1.ARP地址解析協議(向下相容)

2.RARP逆向地址解析協議(已廢,向下相容)

3.ICMP網際控制報文協議(向上提供服務

4.IGMP網際組管理協議(向上提供服務

虛擬的網際網路需要解決的問題:

1. 不同的定址方案

2. 不同的最大分組長度

3. 不同的網路接入機制(10M,100M,1G,頻寬)

4. 不同超時控制

5. 不同的差錯恢復方法

6. 不同的狀態報告方法(收到確認訊號)

7. 不同的路由選擇技術(選擇質量高的,還是速度快的,還是兼具的)

8. 不同的使用者接入控制(WIFI接入,撥號接入)

9. 不同的服務(仍有部分虛電路服務在提供)

中間裝置的分類:

1. 物理層使用的中間裝置:轉發器

2. 資料鏈路層使用的中間裝置:網橋

3. 網路層使用的中間裝置:路由器

4. 網路層以上使用的中間裝置:閘道器(連結兩個不相容的系統,需要在高層進行協議的轉換)

轉發器、集線器、網橋、交換機、路由器和閘道器簡介


4.IP地址的相關介紹

IP地址大小:32位,區域網和廣域網IP可以重疊

IP地址的編址方式:

第一種:分類IP地址:網路號+主機號

A類:前8位為網路號(為A類的標誌:開始第一位為:0)

B類:前16位為網路號(為B類的標誌,前2位為:10)

C類:前24位為網路號為C類地址的標誌,前3位為:110)

D類:D類地址的標誌:前4位為:1110

E類:E類地址的標誌:前5位為:11110(E類還沒有用過)

ps:路由轉發的時候先查詢網路號,這樣直接發到一個網路中,然後由網路中的路由器轉發到對應的機器,這樣路由的轉發表會比較小

分類IP地址的具體分析:

A:(1/2)

網路號全0:表示我整個內網

網路號全1:廣播網(迴旋報文)

B,C類不具體分析

特殊的IP地址:

wps5420.tmp


IP地址的一些重要特點:

1. 分等級的結構地址:好處有兩點:1.IP管理機構只用管理網路號,主機號有該網路號單位自己分配,減輕了IP管理機構的壓力,2。路由器只根據網路號來轉發資料,不考慮主機號,這樣就減輕了路由表的儲存查詢壓力(先找到網路號對應的網路,然後又該網路號的單位查詢對應的主機號然後傳送)

2. 路由至少又兩個IP地址(因為路由就是來連結不同的乙太網的,所以至少有兩個網路號,網路號的單位又給它各自分配了一個主機號,所以路由器至少兩個IP地址)

3. 用轉法器或者網橋連結起來的區域網具有相同的網路號,所以他們是同一個乙太網

MAC地址是在某個乙太網內部來找主機的,而IP地址中的網路號是找網路的!!


5.地址解析協議:

每一個主機都又一個APR,裡面又所在乙太網上的各主機和路由器的IP地址到硬體地址的對映表
APR是解決同一個乙太網上的主機或路由器的IP地址和硬體地址的對映問題

比如A傳送資料給B,就要知道B的IP地址和MAC地址,先在A的乙太網上查詢有沒有B對應的IP地址和MAC地址對應的對映,沒有的話,路由器會做響應,從而在其他乙太網內查

每個路由管一部分IP地址的主機,所以找的是乙太網內特定的路由器


6.IP資料報的格式:

首部和資料

首部中儲存一些固定部分

我們主要了解固定部分

IP資料報首部分析:(20個位元組,20*8位)

1. 版本(4位):IPV4,IPV6

2. 首部長度(4位):單位4位元組,比如首部長度為3,表示首部有3*4個位元組

3. 服務型別(8位):現在沒有使用

4. 總長度(16位):頭部加資料部分形成的資料報的總長度

5. 標識(16位):一個數據,分成好幾個報文,然後一個報文繼續分組(同一個報文在傳送的時候被分成好幾個分組,不然傳送不了,太大了),同一個報文的不同分組標識的相同的,標識屬於哪個報文(往上的,對應傳輸層)

6. 標誌(3位,只有後兩位有用):中間一位表示允不允許分MAC幀,最後一位標識我是不是最後一個MAC幀,標識該幀是不是結束幀

7. 片偏移:一個報文要分成好幾個MAC幀傳送。該幀屬於第幾幀

8. 生成時間:單位是跳,經過一個路由轉發是一跳

9. 協議:向上相容傳輸層的協議,該資料報是來自於傳輸層那個協議的報文

10. 首部檢驗和:校正首部的準確性(採用反碼和的方式)

11. 源地址:來自哪裡

12. 目的地址:去哪裡


7.MAC幀部分及其介紹:

一個IP報文分成好幾個MAC幀

wps5421.tmp

一個數據報組成:首部+資料

一個數據報分成好幾個MAC幀

MAC幀組成:首部+資料

所以多個首部,注意理解

ps:反碼校驗和演算法:

wps5422.tmp


8.路由和交換機的區別:

1. 路由用來連結不同的乙太網,而交換機只負責一個特定網路中的工作

2. 路由用來轉發分組,而交換機可連結主機(路由面向乙太網,交換機面向主機)

3. 路由使用同一的IP協議,而交換機使用所在乙太網的特定協議


9.第二種IP地址的編址方式:劃分子網

原因:為了彌補分類地址的缺陷

分類地址的缺陷:

1. IP地址空間的利用率有時很低(小型的獨佔一個網路,利用率低,學校網利用率高(pc機多)

2. 給每個網路分配一個網路號使路由表效能變壞(雖然路由只儲存網路號,不儲存主機號,但是架不住網路號多啊)

3. 兩級IP地址不夠靈活(待思考)

劃分子網的操作:兩級IP地址變成3級IP地址

3級:網路號+子網號+主機號

2級:網路號+主機號

從2級主機號借用一段用做子網號

Ps:劃分子網純屬一個網路內部的事情!!!

一個乙太網內,把該乙太網內部的主機分成一組一組,一組就是一個子網,所以劃分子網是我這個乙太網內部的事情

劃分子網後網路傳送資料的具體流程:

1. 根據IP資料報的目的網路號找到連線該網路的路由器

2. 路由收到該IP資料報

3. 路由先按照子網號找到對應的子網

4. 路由再按照子網內的主機號找到對應主機

特殊點:路由會按照子網號先找到對應的子網,找到對應子網之後再在子網內部按照主機號找到對應主機,沒有子網號的時候,該網路的路由是直接甩鍋,按照主機號找對應主機的工作是交給集線器和交換機的

子網劃分示意圖

wps5433.tmp

區域網是資料鏈路層概念

子網是網路層概念

子網由單位內部自己決定

子網掩碼:幫助路由找出IP資料報中的子網號

先根據三級IP地址找到子網掩碼,然後根據子網掩碼找到目的子網,然後更加子網找到子網地址,最後找到的就是IP地址對應的主機

wps5434.tmp

網路地址:劃分成一個個子網的地址,通過三級IP地址和子網掩碼做and操作得到

A類地址的子網掩碼:255.0.0.0

B類地址的子網掩碼:255.255.0.0

C類地址的子網掩碼:255.255.255.0

因為劃分了子網,所以路由記錄的是網路號和子網號


第三種IP地址的編址方式:無分類編址(CIDR):構成超網

IP編址問題改進的演變:

第一次:劃分子網,子網號不同,IP不同

第二次:無分類編址(IP構成部分長度不固定,靈活)

第三次:CIDR:使用各種長度的網路字首來代替分類地址中的網路號和子網號,不同以前的是網路號和子網號的長度不是固定的


採用CIDR的IP地址構成:網路字首+主機號

CIDR將網路字首相同的連續IP地址構成CIDR地址塊,叫做一個超網

比如:128.12.32.0/20表示地址塊共有2的12次方個地址(20表示網路字首佔前面的20位,IP地址總長規定是32位,所以32-20=12,所以該地址塊有2的12次方個IP地址)


路由聚合:一個CIDR地址塊可以表示很多地址,這種地址的聚合通常稱為路由聚合,它使得路由表一行可以表示很多個原來傳統分類的地址路由

路由聚合頁叫做構成超網

CIDR雖然不使用子網,但仍然使用掩碼這個概念(字首全1,主機號全0)

用轉法器或網橋連線起來的若干個區域網仍為一個網路,因此這些區域網都具有相同的網路號


最長網路字首匹配:在路由表中匹配的時候,可能有多個匹配結果,雖然都能到達目的地,但是網路字首越長,主機數量越少,查起來就越方便


路由表的儲存查詢:使用二叉樹,對路由表中的每一條ip地址轉換為二進位制表示,得到每一個ip地址的唯一字首(路由表中的每一個唯一字首都是不相同的)利用唯一字首構造二叉樹,查到二叉樹的葉子結點就代表查詢完成了(線索二叉樹)


網際控制協議ICMP:為了提高IP資料報交付成功的機會

ICMP允許主機或者路由器報告差錯情況,ICMP的報文作為IP層資料報的資料部分進行傳輸,ICMP屬於IP協議族的一部分

ICMP的具體構成:

wps5435.tmp

1.型別:什麼型別的ICMP報文

2.程式碼:某種錯誤或者異常對應的程式碼

3.校驗和:校驗

4.ICMP的資料部分

注意ICMP報文作為IP報文分組的一部分在網路中傳輸

ICMP報文的種類:ICMP差錯報告報文和ICMP詢問報文

ICMP差錯報文的5種:

1. 終點不可達

2. 源站抑制:源點不允許你向某終點發送資料

3. 時間超過

4. 引數問題:校驗和不對

5. 改變路由(重定向):可 以走一條新的路徑

wps5436.tmp

出問題的資料報文中取出首部和隨後的8個位元組組成ICMP差錯報文的首部和隨後的8個位元組,然後ICMP差錯報文作為一個新的IP資料報的資料部分重新在網路中傳輸

一個是出錯的報文,一個是報告為什麼出錯的報文


不傳送ICMP差錯報文的四種情況:

1. 對ICMP差錯報告報文不再發送ICMP差錯報告報文:ICMP差錯報告報文就算出錯了也不再發送該ICMP差錯報告報文的ICMP差錯報告報文

2. 對第一個分片的資料報片的所有後續分片都不傳送ICMP差錯報告報文:多給碼片只發送一個ICMP差錯報告報文

3. 對具有多播地址的資料報不發生ICMP差錯報告報文

4. 對具有特殊地址的IP報文不傳送ICMP差錯報告報文


路由的選擇策略問題:

靜態路由選擇策略:即非自適應性的路由選擇,其特定是簡單和開銷小,但不能及時感知網路狀態的變化

動態路由選擇策略:即自適應路由選擇,其特定是能較好的適應網路狀態的變化,但較為複雜,其開銷也比較大


分層次的路由選擇策略:劃分自治域

原因:因為英特網的規模非常大,如果不劃分的話,每個路由器需要儲存的路由表實在太多了,劃分自治域,一個自治域其實就是一個小的網際網路,很多個自治域就構成了我們整個的乙太網

自治系統有權自主的選擇本系統內選擇何種路由選擇協議

自治域有兩種路由選擇協議:

1. 內部閘道器協議IGP:自治系統內部間的通訊(RIP協議和OSPF協議)

2. 外部閘道器協議EGP:自治系統和自治系統間的通訊(BGP協議)

內部閘道器協議RIP協議:分散式的基於距離向量的路由選擇協議

距離定義:路由跳數(直接連線距離為1)

一條路徑最多有15個路由(限制了自治系統的大小)

RIP協議的三要素:

1. 僅和相鄰的路由器交換資訊

2. 交換的資訊是當前路由器知道的全部資訊(即自己的整個路由表)

3. 按固定時間間隔交換路由資訊

路由表構成:目的網路+掩碼+下一條路由+距離向量

RIP的距離向量演算法:

y收到相鄰路由器x的一個RIP報文

1. 先修改此RIP報文中的所有專案,下一跳都改成x,所有距離向量都加1

2. 若RIP中的目的網路不在y自己的路由表中,則將此RIP中的該網路這一行都加入y的路由表中

3. 若RIP中的目的網路在y的路由表中的話,如果下一跳給出的路由地址和y的該網路給出的下一跳路由地址是同樣的話,則將收到的專案替換y中的專案,否則的話,如果x中該專案的距離小於y中該專案的距離,則進行距離向量的更新

4. 如果3分鐘還沒有收到向量路由器的路由表,則將該路由器記為不可達(距離16)

RIP協議的位置:使用運輸層的UDP使用者資料報進行傳輸,RIP位置是在應用層,但IP資料報的過程是在網路層完成的,具體看下圖:

wps5437.tmp

路由表的構成:路由標記+網路地址+掩碼+下一跳路由器地址+距離

RIP報文=首部+路由部分

UDP使用者資料報=UDP首部+RIP報文

IP報文=IP報文首部+UDP使用者資料報

RIP路由選擇協議的優點:

1. 實現簡單,開銷小

RIP路由選擇協議的缺點:

1. 有可能跳數少的路徑擁堵,跳數多的路徑雖然條數多,但是不擁擠頻寬高,速度反而快

2. 某個網路出現故障的話,需要很長的時間才能將資訊傳送到該自治系統的所有路由器(好訊息傳播得快,壞訊息傳播得慢!!!!)

3. 網路規模擴大,傳送的路由表資訊的開銷也加大(不能算是很大的缺點吧)


內部閘道器協議OSPF

交換的不是整個路由表,而是相鄰的鏈路的狀態

鏈路狀態就是說明本路由器和哪些路由器相鄰,以及該鏈路的度量

只有當鏈路狀態發生變化時,路由器才用洪泛法向所有路由器傳送此訊息

就是說鏈路狀態變化時間,相鄰路由器向所有路由器傳送所有鏈路狀態改變的訊息

度量是根據自己的需求去確定的

由於各路由器之間頻繁的交換鏈路狀態資訊,因此所有的路由器最終都能建立一共鏈路狀態資料庫

對自制系統繼續進行劃分,劃分為區域,因為網路過大的話,鏈路狀態資料庫需要儲存的資訊太多了(存的是邊),32位的區域識別符號


內部閘道器協議OSPF的特點:

1. OSPF不用封裝城UDP資料報,而是直接用IP資料報傳送,可見OSPF的位置在網路層

2. OSPF的資料報很短(只有在鏈路狀態發生變化的時候傳送自己的路由資訊,洪泛法)

3. 度量可以多樣化,可以根據業務需求自己設定

4. OSPF路由器之間交換的分組有鑑別功能(每個鏈路的狀態都有一個32位的序號,序號越大狀態就越新)

5. 每隔一段資料重新整理一次資料庫中的鏈路狀態

6. 當網際網路規模大時OSPF協議比RIP距離向量協議號很多(因為一個路由器的鏈路狀態只和相鄰的路由器有關,而RIP記錄了全自治系統路由器的鏈路資訊,所以OSPF沒有限制自治系統的大小)

7. 沒有壞訊息傳播得慢的問題

內部閘道器協議OSPF的組成圖:

wps5448.tmp

版本:協議版本

型別:(5種類型,見下文)

分組長度:資料的長度(因為資料量小,所有不分片)

路由器識別符號:記錄連結在路由器我的哪個埠上

區域識別符號:在自治系統的哪個區域

檢驗和:校驗首部對錯

鑑別型別:相當於加密操作,要鑑別的話有鑑別碼(擴充套件知識)

鑑別:鑑別碼

OSPF分組:OSPF分組首部+資料部分(之所以不叫報文叫分組是因為資料量小,一次可以全部發過去,不用分片)

OSPF分組封裝在IP資料報的資料部分

IP資料報=IP資料報首部+IP資料報的資料部分

OSPF:可靠洪泛法


OSPF的5種分組型別:

1. 問候分組:確定我們之間的鏈路有沒有問題

2. 資料庫描述分組:和我相鄰的路由器的鏈路的一些狀態(路由表)

3. 鏈路狀態請求分組:請求你的路由表

4. 鏈路狀態更新分組:鏈路狀態請求的返回分組(用洪泛法對全網更新鏈路狀態)

5. 鏈路狀態確認分組:成功接收與否的狀態,可靠演算法的保證


OSPF使用的可靠洪泛法:我收到這條鏈路狀態更新分組之後,給傳送方發一個確認分組(保證可靠),然後向與我相連的路由器傳送收到的鏈路更新分組


指定路由:管理該區域的路由,外面區域的資訊傳進來的時候,傳給指定路由,由指定路由去完成接下來的工作


OSPF內部閘道器協議支援的三種網路連線:

1. 兩個路由器之間的點對點連線

2. 具有廣播功能的區域網

3. 無廣播功能的廣域網(一個自治系統是一個廣域網)


網路拓撲的表現形式:有向圖形式,樹形式


外部閘道器協議之BGP協議(BGP4版)

使用背景:因特網規模太大,在自治系統之間選擇一條最佳的路徑是不現實的,因為邊界閘道器協議BGP只是力求尋找一條可以到達目的網路且比較好的路由,而不是要尋找一條最佳路由

一個自治系統內部有一個BGP發言人,輔助交自治系統和自治系統之間的路由資訊


BGP交換路由資訊的過程:先建立TCP連線,然後在此連線上交換BGP報文以建立BGP會話,利用BGP會話交換BGP發言人間的路由資訊(因為TCP的可靠的)


一個BGP發言人只和自己相鄰的BGP發言人交換路由資訊

其實BGP外部閘道器協議類似RIP內部閘道器協議


主幹網自治系統管理地區自治系統,地區自治系統管理本地自治系統(看圖):

wps5449.tmp

層次網路管理,主幹網管理地區ISP,地區ISP管理本地ISP

(就是你到達你的目的地,可以經過X,X,X.....)

一個自治系統一般1個或者2個發言人

BGP協議要記錄整個路徑(不僅記錄下一跳,還要記錄下一跳的下一跳)

BGP協議的4種報文:

1. 開啟報文:用來與相鄰的另一發言人建立關係(類似OSPF的問候分組)

2. 更新報文:更新互動鏈路資訊報文

3. 保活報文:證實和鄰站的關係(斷了嗎)

4. 通知報文:保活報文的回覆,告訴你我之間的狀態

IP多播(目的地址有多個,不是多個單播):明顯減少網路資源的消耗