一、概述
主要任務是實現網絡互連,進而實現數據包在各網絡之間的傳輸
1.1網絡引入的目的
從7層結構上看,網絡層下是數據鏈路層
從4層結構上看,網絡層下面是網絡接口層
至少我們看到的網絡層下面是以太網
以太網解決了什么問題?
答:以太網解決了具體網絡上主機間數據傳輸的問題;主機之間可以以物理地址,以廣播的傳輸方式進行數據的交換傳輸
網絡解決問題的基本方案
1)強制要求采用一種新的統一的網絡連接方式(強制的統一成一種物理地址)
2)保留現有網絡,重新定義一個虛擬的新的網絡連接方式;求同存異
TCP/IP協議網絡解決問題的方案
1.虛擬的IP互連協議
該協議為了實現網絡互連,要求對有互連需求的網絡,必須在將原有的網絡數據轉換成IP數據報格式,然后在虛擬IP網絡上進行數據的傳輸
2.潛在的IP協議中要給出協議的轉換功能(翻譯功能)
上述三個內容最后都要轉換為3個具體的協議,因此IP協議不是一個協議,是一族協議;只不過這一族中IP地位最強
1.2網絡擴展后可采用的數據傳輸方式
?面向連接的虛電路服務
- 可靠的通信由網絡來保證
- 必須建立網絡層的連接----虛電路VC(
Virtual Circuit
)- 通信雙方沿著已建立的虛電路發送分組
- 目的主機的地址僅在連接建立階段使用,之后每個分組的首部只需攜帶一條虛電路的編號(構成虛電路的每一段鏈路都有一個虛電路編號)。
- 這種通信方式如果再使用可靠傳輸的網絡協議,就可使所發送的分組最終正確到達接收方(無差錯按序到達、不丟失、不重復)。
- 通信結束后,需要釋放之前所建立的虛電路
無連接的數據報服務
- 可靠通信應當由用戶主機來保證
- 不需要建立網絡層連接
- 每個分組可走不同路徑
- 每個分組的首部必須攜帶目的主機的完整地址
- 這種通信方式所傳送的分組可能誤碼、丟失、重復和失序
- 由于網絡本身不提供端到端的可靠傳輸服務,這就使網絡中的路由器可以做得比較簡單,而且價格低廉
- 因特網采用了這種設計思想,也就是將復雜的網絡處理功能置于因特網的邊緣(用戶主機和其內部的運輸層),而將相對簡單的盡最大努力的分組交付功能置于因特網核心。
1.3虛擬IP互連協議引入后數據的轉發流程
1.直接交付
屬于同一個虛擬邏輯網絡和同一個現實物理網絡上主機或主機接口之間數據的轉發,只要解決目的地址IP地址對應的物理地址,就簡單了,就利用物理地址直接在物理網絡上進行傳輸了
屬于同一個廣播域(局域網)內的交付,可以利用ARP協議協議直接找到目的主機IP地址對應的物理地址,從而完成數據的交付
ARP怎么工作的,工作流程,解決的問題:IP->物理地址,數據鏈路層封裝,
A,B是一家的,屬于直接交付范圍,怎么界定,通俗的老說就是姓氏相同?
2.間接交付
屬于不同網絡內的數據傳輸,因此無法直接找到目的地址主機的
MAC地址,只能將數據交付到網絡出口路由器,因此,此時ARP協議并不是去尋找目的地址的MAC地址,而是尋找本網絡出口路由器物理地址
A和C通信,隔著千山萬水,借助第三方(郵筒),怎樣把數據交付出去----中間路由器的接口和A屬于同一個局域網,以廣播的形式發給路由器,到網絡層把真正的目的地提取出來了,在進行封裝,交到C(MAC)
A-》C通信,一跳一跳的,路由器的作用就是傳送數據(跳到網絡層---數據真實的傳輸方向)換一個包裝,向目的地傳遞,網絡中傳遞數據,是一跳一跳的進行傳輸數據(傳輸數據的物理地址改變)大體方向不變,朝著目的地址走
ARP地址解析協議
在虛擬網絡上的主機也必須有唯一的標識
虛擬統一網絡的引入,為每一個在網絡中的主機又提出了一個標識問題,在IP網絡中就稱為IP地址;也就是說在虛擬互連網絡中每個接入主機必須有一個唯一的虛擬IP地址;這個是邏輯地址,與物理網絡位置無關
虛擬網絡是在現實物理網絡上進行抽象總結抽象形成的,而現實網絡上每臺接入網絡的主機都有一個固有的物理地址
兩個地址之間的關系是什么,兩個地址如何進行相互的轉換
1)協議作用
應用進程看到的網絡是統一的IP網絡,因此它所描述的進程之間數據的傳輸是在統一一致的IP網絡上進行傳輸;而這個統一的IP網絡是在不同的現實物理網絡上進行抽象的,所以虛擬網絡間數據的傳輸必須要經過現實的物理地址才能完成真正的傳輸,就必須有個地址能完成兩種地址之間的轉換
封裝成以太數據幀
?2)協議工作原理
A->B發送消息時,首先去查找自己的內存ARP表格,若找到對應的MAC地址則直接進行封裝,轉到介質上進行傳輸,否則,就封裝一個數據鏈路層上的廣播幀,去詢問對應的IP的MAC地址
根據發送的性質:該協議只能解決同一個廣播域(局域網)內,邏輯IP地址到物理MAC地址的轉換問題
3)協議存在缺陷
協議本身工作是開放性的工作方式,缺乏驗證機制?
1.4? IPv4地址
IPv4
地址就是因特網上的每一臺主機(或路由器)的每一個接口分配一個在全世界范圍內是唯一的32比特的標識符
分類編址
?
- A類地址網絡號第1位固定為0,網絡號后面部分不能全0,也不能全1,所以網絡號范圍是1~126
- B類地址網絡號前2位固定為10,網絡號后面部分可以全取0或1,所以網絡號范圍是128.0~191.255
- C類地址網絡號前3位固定為110,網絡后后面部分可以全取0或1,所以網絡號范圍是192.0.0~223.255.255
- D類地址為多播地址,IP地址為224.0.0.0~239.255.255.255
?
?劃分子網的IPv4地址
為什么需要劃分子網?
比如一個單位有300臺主機,此時需要申請一個B類網絡地址,很容易得知,分配出去300個IP地址后,申請得到的B類網絡還剩下很多IP地址。
當單位擴大規模,需要再添加兩個子網的時,又要為這兩個子網分別申請B類地址,這會花費一些不必要的支出,實際上子網1申請到的B類地址還有很多沒用到,我們希望能夠將這些剩余地址應用到其他子網中(節約地址)
如何實現子網劃分?
32比特的子網掩碼可以表明分類IP地址的主機號部分被借用了幾個比特作為子網號
- 子網掩碼使用連續的比特1來對應網絡號和子網號(子網號來自原先的一部分主機號)
- 子網掩碼使用連續的比特
0
來對應主機號- 將劃分子網的
IPv4
地址與其相應的子網掩碼進行邏輯與運算【即掩碼是1
的部分】就可得到IPv4
地址所在子網的網絡地址
?無分類編址的IPv4地址
為什么需要?
劃分子網在一定程度上緩解了因特網發展中遇到的困難,但是數量巨大的C類網因為其地址空間太小并沒有得到充分使用,而因特網的IP地址仍在加速消耗,整個IPv4地址空間面臨全部耗盡的威脅
?
路由聚合
如路由器A上連接同一網絡的多臺主機,路由器B與A相連。若A將所有主機的具體IP地址都報給B,則路由器B中會增加多項路由條目。可實際上B向A中任意一個主機轉發數據的時都是走同一個端口,因此我們可以將這些網絡的共同前綴提取出來成為新的網絡號,同時將剩余主機號置0放入路由器B中
如:A連接了172.1.4.0/25和172.1.7.0/24,則提取公共前綴聚合后變為172.1.4.0/22
IPV4地址的應用規劃
對于一個給定的IP地址,我們又進行了內部的劃分的重新分配,這樣分配就稱為內部子網的劃分
權利對主機地址部分進行重新的組合,來表示內部使用方式的分配
定長掩碼劃分方式
對于一個給定IP地址,我們有權對主機地址部分進行重新的組合,來表示內部使用方式的分配
變長掩碼劃分方式
1.5IP數據報發送轉發過程?
1.IP網絡虛擬互連網絡的互連設備-----路由器
路由器的作用:
1)工作在網絡層上,意味著它能識別網絡層上的數據傳輸格式
2)路由器按網絡層上數據傳輸地址,進行有目的的數據轉發
3)路由器有針對性的數據轉發依賴于路由器中的路由表
2.IP網絡中路由器轉發分組的算法
特定 默認 一般的網絡路由
同一個網絡之間的主機可以直接通信,不同網絡之間的主機通信需要路由器中轉?
源主機如何判斷目的主機是否和自己在同一個網絡中?
將自身的
IP
地址與子網掩碼相與得到自身的網絡號1
,再將目的IP
地址與自身子網掩碼相與得到網絡號2
。若兩個網絡號相等,則說明處在同一個網絡?
主機如何知道應該把IP數據報交給哪個路由器進行轉發呢?
通過設置默認網關。所謂默認網關,即當路由表中查不到數據時會將數據發往的路由器端口
IP
地址?
?靜態路由配置
靜態路由配置是指用戶或網絡管理員使用路由器的相關命令給路由器人工配置路由表
- 這種人工配置方式簡單、開銷小。但不能及時適應網絡狀態的變化。一般只在小規模網絡中采用
- 可能由于:①配置錯誤 ②聚合了不存在的網絡 ③網絡故障 而出現路由環路錯誤
- 默認路由為:0.0.0.0/0?。其作用是當路由表不知道往哪里轉發時,就會往默認路由指定的下一跳位置轉發,根據網絡號最長匹配原理,默認路由網絡號長度為
0
,因此一定是最后一個被匹配的條目- 特定主機路由:具體主機IP/32。網絡號前綴長度
32
保證了這是第一個被匹配的靜態條目
?如何防止錯誤路由導致IP數據報永久兜圈?
- 在
IP
數據報首部設置生存時間TTL字段
IP
數據報進入路由器后,TTL
字段的值減1
。若TTL的值不等于0,則被路由器轉發,否則被丟棄- 對于聚合后或由于網絡故障而不存在的路由條目設置黑洞路由
- 所謂黑洞路由,即路由器應該丟棄的路由
1.6?路由選擇協議
因特網所采用的的路由選擇協議主要特點
- 自適應:動態路由選擇,能較好地適應網絡狀態的變化
- 分布式:路由器之間交換路由信息
- 分層次:將整個因特網劃分為許多較小的自治系統
AS
路由信息協議RIP
基于距離向量的路由選擇協議(應用層是UDP)? ?RIP協議(路由信息協議)?
動態的形成路由器上路由表的內容,作為數據包轉發的依據
距離:是指去某一個網絡所經過路由器的個數(跳數);一個路由器直接相連的網絡距離為1;距離為16表示網絡不可達1
工作原理:
1)通過與相鄰路由器進行信息交互,完成AS內部路由的形成
2)相鄰路由器之間相互交換彼此的全部路由表信息
3)固定時間進行一次交換20s-30s
RIP算法的工作流程:
基于最短距離來形成路由
RIP
包含以下三個要點
- 僅和相鄰路由器交換信息
- 交換的是各自路由表的信息
- 周期性交換信息
RIP存在的問題
存在"壞消息傳播很慢"的問題,又稱為路由環路(兩個路由器相互學習錯誤路由,造成循環)或距離無窮計數問題,這是距離向量算法的一個固有問題,可以采取多種措施減少出現該問題的概率或減小該問題帶來的危害
- 限制最大路徑距離為
15
(16
表示不可達)- 當路由表發生變化時就立即發送更新報文(即"觸發更新"),而不是周期性發送
- 讓路由器記錄收到某特定路由信息的接口,而不讓同一路由信息再通過此接口反方向傳送(即**“水平分割”“毒性反轉”**)
開放最短路徑優先OSPF
簡單來說就是得到一個帶權有向圖,以當前路由器為起點,通過迪杰斯特拉算法得到到達某個點的最短路徑
基于鏈路狀態的路由選擇協議(網絡層 IP)? OSPF協議(開放最短路徑優先算法形成的路由
OSPF協議:基于鏈路狀態的路由協議、
鏈路狀態:又只鏈路成本,就是數據在這條鏈路上傳輸所花費的時延,安全,費用等等信息所構成的
鏈路狀態就是綜合參數來形成路由協議
工作原理:(是網絡層的協議)
(1)每個路由器將自己的狀態數據摘要以洪范的方式向所有路由器進行轉發
(2)所有路由器最終會獲取到每個路由器的鄰接關系和鏈路權重(即全網的網絡拓撲結構)
(3)每個路由器以自己為根節點,采用迪杰斯特拉算法計算一個最小生成樹,到達每個路由器
(4)路由穩定后,只有鏈路狀態發生改變時,才將改變的路由狀態發給所有路由器以便重新計算路由
邊界網關協議BGP
盡力尋找一條能夠到達目的網絡且比較好的路由(不兜圈子),而并非找最佳路由
內部網關協議IGP(如路由信息協議RIP或最短路徑優先OSPF)
- 設法使分組在一個自治系統內盡可能有效地從源網絡傳輸到目的網絡
- 無需考慮自治系統外部其他方面的策略
外部網關協議EGP(如邊界網關協議BGP)
- 在不同自治系統內,度量路由的"代價"(距離,寬帶,費用等)可能不同。因此,對于自治系統之間的路由選擇,使用"代價"作為度量來尋找最佳路由是不行的
- 比如
A
系統路由選擇度量是距離,B
系統是帶寬……那么A
到系統E
的路由怎樣走最好呢?由于沒有統一度量,所以不能直接得到最佳路由- 自治系統之間的路由選擇必須考慮相關策略(政治、經濟、安全等)
- 如中國的數據報盡量要繞開美國的自治系統
?1.7IPv4數據報首部格式
版本
占
4
比特,表示IP
協議版本。通信雙方使用的IP
協議版本必須一致。目前廣泛使用的IP
協議版本為號為4(IPv4)
首部長度
占
4
比特,表示IP
數據報首部長度。該字段取值以4字節為單位最小十進制取值為5,表示IP數據報首部只有20字節【
4
字節單位,所以取值5
對應20
字節】固定部分最大十進制取值為15,表示IP數據報首部包含20字節固定部分和最大40字節可變部分
總長度
占16比特,表示
IP
數據報的總長度【首部+數據載荷】,最大取值為十進制65535
,以字節為單位可選字段
長度從
1
到40
個字節不等。用來支持排錯、測量及安全等措施可選字段增加了
IP
數據報的功能,但這同時也使得IP數據報的首部長度成為可變的。這就增加了每一個路由器處理IP數據報的開銷。實際上可選字段很少被使用填充字段
確保首部長度為
4
字節長度的整數倍,使用全0
進行填充
1.8網際控制報文ICMP?
為了更有效地轉發
IP
數據報和提高交付成功的機會,在網際層使用了網際控制報文協議ICMP
- 主機或路由器使用
ICMP
來發送差錯報告報文和詢問報文ICMP
報文被封裝在IP
數據報中發送
回答報文類型
終點不可達
當路由器或主機不能交付數據報時,就向源點發送終點不可達報文。具體可再根據
ICMP
的代碼字段細分為目的網絡不可達、目的主機不可達、目的協議不可達、目的端口不可達、目的網絡位置、目的主機未知等13
種錯誤?
源點抑制
當路由器或主機由于擁塞而丟棄數據報時,就向源點發送源點抑制報文,使源點知道應當把數據報發送速率放慢?
時間超過
當路由器收到一個目的
IP
地址不是自己的IP
數據報,會將其生存時間TTL字段值減1
。若結果不為0
,則將該IP
數據報轉發出去;若結果為0,除丟棄該IP數據報外,還要向源點發送時間超過報文當終點在預先規定的時間內不能收到一個數據報的全部數據報片時,就把已收到的數據報片都丟棄,也會向源點發送時間超過報文
?參數問題
當路由器或目的主機收到
IP
數據報后,根據其首部中的檢驗和字段發現首部在傳輸過程中出現了誤碼,就丟棄該數據報,并向源點發送參數問題報文
改變路由(重定向)
路由器把改變路由報文發送給主機,讓主機知道下次應將數據報發送給另外的路由器(可通過更好的路由)
如主機
1
的默認路由是R1
,信息經過R1
時,R1
發現最佳路由不是自己,而是R2
,所以通過ICMP
告知主機1
1.9虛擬專用網VPN
利用公用的因特網作為本機構各專用網之間的通信載體,這樣的專用網又稱為虛擬專用網。
虛擬專用網中各主機所分配的地址應該是本機構可自由分配的專用地址?
?1.10網絡地址轉換NAT
NAT
能使大量使用內部專用地址的專用網絡用戶共享少量外部全球地址來訪問因特網上的主機和資源【為了節省IPv4
地址】
由于絕大多數的網絡應用都是使用運輸層協議TCP
或UDP
來傳送數據,因此可以利用運輸層的端口號和IP地址一起進行轉換。
這樣,用一個全球IP地址就可以使多個擁有本地地址的主機同時和因特網上的主機進行通信。這種將端口號和IP
地址一起進行轉換的技術叫作網絡地址與端口號轉換NAPT
?