計算機網路(謝希仁 第七版)網路層 個人筆記
第四層 網路層
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地址:
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幀
一個數據報組成:首部+資料
一個數據報分成好幾個MAC幀
MAC幀組成:首部+資料
所以多個首部,注意理解
ps:反碼校驗和演算法:
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. 路由再按照子網內的主機號找到對應主機
特殊點:路由會按照子網號先找到對應的子網,找到對應子網之後再在子網內部按照主機號找到對應主機,沒有子網號的時候,該網路的路由是直接甩鍋,按照主機號找對應主機的工作是交給集線器和交換機的
子網劃分示意圖:
區域網是資料鏈路層概念
子網是網路層概念
子網由單位內部自己決定
子網掩碼:幫助路由找出IP資料報中的子網號
先根據三級IP地址找到子網掩碼,然後根據子網掩碼找到目的子網,然後更加子網找到子網地址,最後找到的就是IP地址對應的主機
網路地址:劃分成一個個子網的地址,通過三級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的具體構成:
1.型別:什麼型別的ICMP報文
2.程式碼:某種錯誤或者異常對應的程式碼
3.校驗和:校驗
4.ICMP的資料部分
注意ICMP報文作為IP報文分組的一部分在網路中傳輸
ICMP報文的種類:ICMP差錯報告報文和ICMP詢問報文
ICMP差錯報文的5種:
1. 終點不可達
2. 源站抑制:源點不允許你向某終點發送資料
3. 時間超過
4. 引數問題:校驗和不對
5. 改變路由(重定向):可 以走一條新的路徑
出問題的資料報文中取出首部和隨後的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資料報的過程是在網路層完成的,具體看下圖:
路由表的構成:路由標記+網路地址+掩碼+下一跳路由器地址+距離
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的組成圖:
版本:協議版本
型別:(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內部閘道器協議
主幹網自治系統管理地區自治系統,地區自治系統管理本地自治系統(看圖):
層次網路管理,主幹網管理地區ISP,地區ISP管理本地ISP
(就是你到達你的目的地,可以經過X,X,X.....)
一個自治系統一般1個或者2個發言人
BGP協議要記錄整個路徑(不僅記錄下一跳,還要記錄下一跳的下一跳)
BGP協議的4種報文:
1. 開啟報文:用來與相鄰的另一發言人建立關係(類似OSPF的問候分組)
2. 更新報文:更新互動鏈路資訊報文
3. 保活報文:證實和鄰站的關係(斷了嗎)
4. 通知報文:保活報文的回覆,告訴你我之間的狀態
IP多播(目的地址有多個,不是多個單播):明顯減少網路資源的消耗