主要任務時把分組從源端發送到目的端,為分組交換網上的不同主機提供服務。網絡層傳輸單位是數據報
功能:
- 路由選擇與分組轉發(最佳路徑 )
- 異構網絡互聯
- 擁塞控制
數據交換方式
- 電路交換:通信時延小、有序傳輸、沒有沖突、實時性強、獨占資源
建立連接時間長、線路獨占,使用效率低,靈活性差,沒有差錯控制能力 - 報文交換
- 分組交換
IP數據報格式
片偏移量=首地址/8
總長度單位是1B
片偏移量單位是8B
首部長度單位是4B
MTU:數據鏈路層可封裝數據的最大傳送單元。在以太網中MTU為1500字節
IP地址
分類的IP地址
全世界唯一的32位/4字節標識符,標識路由器主機的接口
IP地址 := (網絡號,主機號) 點分十進制
路由器不同的接口有不同的IP地址
A類網絡減去網絡號全0(特殊地址)和全1(127,環回地址)
B類和C類都要減去網絡號全0,不清楚為什么
最大主機數減去全0和全1.
特殊地址:
所謂的環回地址指的是該數據報不會實際發送出去,多用于測試。實際上就是自己。
私有IP地址不能在廣域網中使用。
網絡地址轉換(NAT)
路由器對目的地址是私有IP地址的數據報一律不進行轉發
網絡地址轉換NAT(Network Address Translation):在專用網連接到因特網的路由器上安裝NAT軟件,安裝了NAT軟件的路由器叫NAT路由器,它至少有一個有效的外部全球IP地址。
局域網中的計算機先將數據發送給NAT路由器,NAT路由器再以自己的IP發送給外網
外網會將信息發送給NAT路由器,NAT路由器再根據NAT轉換表發送給應該接收的電腦。
將源IP和端口號(傳輸層概念)按照NAT轉換表轉換為可以在外網發送的源IP和端口號。同理,接收外部信息的時候也會首先發送給NAT路由器,再按照NAT路由器將目標IP和端口號更換為局域網中的私有IP和端口號
NAT轉換表中LAN端有不同的IP地址,WAN端根據端口號對應不同的IP地址。
子網劃分和子網掩碼
分類IP地址的弱點:
- IP地址空間的利用率有時很低
- 兩級IP地址不夠靈活
將主機號拆分為子網號和主機號,當某些單位劃分子網后,對外仍表現為一個網絡,即本單位外的網絡看不見本單位內子網的劃分。
主機號至少要留下兩位
如果只剩下一位,那么主機號要么全0要么全1,這都是不允許的。
子網號能夠全0全1要看情況(一般子網劃分不允許,只有CIDR中可以)
兩級IP地址的子網掩碼根據類別,比如B類的子網掩碼就是255.255.0.0
三級IP地址的子網掩碼也很簡單,就是不變的地方都是1
子網網絡地址:子網掩碼與IP地址逐位相與
路由表中應該包含:
- 目的網絡地址
- 目的網絡子網掩碼
- 下一跳地址
直接交付:路由器直接交給連接的子網
間接交付:路由器需要傳給下一跳
路由器轉發分組的算法:
- 提取目的IP地址
- 是否直接交付
- 特定主機路由
- 檢測路由表中有無路徑
- 默認路由
0.0.0.0
- TTL耗盡,丟棄,報告轉發分組出錯
無分類編制CIDR
為了解決IP地址快要耗盡的情況
也叫做無分類域間路由選擇CIDR
- 消除了傳統A類、B類和C類地址以及劃分子網的概念
CIDR記法:IP地址后加上/
,然后寫上網絡前綴(可以任意長度)的位數 - 融合子網地址和子網掩碼,方便子網劃分
CIDR地址塊:CIDR把網絡前綴都相同的連續的IP地址組成一個CIDR地址塊
同前面一樣,主機部分最多是所有情況-2(不能全0和全1)
如果給CIDR繼續劃分子網,子網號是可以全0、全1的。
地址塊記法:最小地址
地址掩碼(子網掩碼):網絡前綴部分全都是1
構成超網
將多個子網聚合成一個較大的子網,叫做構成超網,或者路由聚合。
方法:將路由前綴縮短
用相同的部分當作前綴
最長前綴匹配
使用CIDR時,查找路由表可能得到幾個匹配結果,應該選擇具有最長網絡前綴的路由。(前綴越長,地址塊越小,路由越具體)。
ARP協議
每個主機和路由器都有ARP高速緩存:IP地址和MAC地址的映射(只存同一個局域網內部的)
首先檢查ARP高速緩存查新IP地址對應的MAC地址,如果沒有就發出ARP廣播。
ARP緩存每10-20min更新一次。
廣播ARP請求分組:
目的地址為全1說明是廣播分組(幀)。
如果是同一個網段內的:單播ARP響應分組。
如果發現不是一個網段的(子網掩碼和目標IP相與,發現與自己的網絡部分不同):先請求到網關的MAC地址,然后發送給網關,然后在路由器之間傳遞,知道到達正確的網段,然后路由器再發出廣播詢問MAC地址,得到回應以后直接發給目標主機。
在數據鏈路層上傳送數據必須使用MAC地址。
ARP協議4中典型情況:
- 主機A發給本網絡上的主機B:用ARP找到主機B的硬件地址
- 主機A發給另一網絡上的主機B:用ARP找到本網絡上一個路由器(網關)的硬件地址
- 路由器發給本網絡的主機A:用ARP找到主機A的硬件地址
- 路由器發送給另一網絡的主機B:用ARP找到本網絡上的一個路由器的硬件地址
ARP緩存10-20min更新一次。
ARP是用來獲取本網絡對應IP的MAC地址
ARP協議是自動進行的,主機是無法意識到的。
例題:主機發送IP數據報給主機B,經過了5個路由器,這個過程使用了6次ARP協議
DHCP協議
主機如何獲得IP地址:
- 靜態配置:由管理員配置IP地址、子網掩碼、默認網關
- 動態配置:DHCP服務器動態給主機分配IP地址
動態主機配置協議DHCP是應用層協議,使用客戶/服務器方式,客戶端和服務端通過廣播方式進行交互,基于UDP。
DHCP提供即插即用聯網的機制,主機可以從服務器動態獲取IP地址、子網掩碼、默認網關、DNS服務器名稱與IP地址,允許地址重用,支持移動網絡加入網絡,支持在用地址續租
工作流程:
- 主機廣播DHCP發現報文(試圖找到網絡中的服務器,服務器獲得一個IP地址)
- DHCP服務器廣播DHCP提供報文(服務器擬分配給主機一個IP地址及相關配置,先到先得)
- 主機廣播DHCP請求報文(主機向服務器請求提供IP地址)
- DHCP服務器廣播DHCP確認報文(正式將IP地址分配給主機)
發送的都是廣播報文,第三四步之所以在已經確定DHCP服務器和主機IP的情況下仍然使用廣播,是要告訴其他DHCP服務器該主機使用一個IP地址,其他DHCP服務器不用再管,而且不能夠再使用這個IP地址
ICMP協議
為了更有效地轉發IP數據報和提高支付成功的機會
差錯(或者異常)報告
ICMP差錯報告報文
- 終點不可達:當路由器或者主機不能交付數據時就像遠點發送源點不可達報文。(無法交付)
- 源點抑制:當路由器或者主機由于擁塞而丟棄數據報時,就向源點發送源點抑制報文,使得原點知道應當把數據報的發送速率放慢(擁塞丟數據)(現在不會用到)
- 時間超過:當路由器收到生存時間TTL=0的數據報時,除丟棄該數據報外,還要向源點發送時間超過報文。當終點在預先規定的時間內不能收到一個數據報的全部數據報片時,就把已經收到的數據報片都丟棄,并向源點發送時間超過報文(TTL=0或者數據報殘缺)
- 參數問題:當路由器或者目的主機收到的數據報的首部中有的字段的值不正確時就丟棄該數據報,并向源點發送數據問題報文(首部字段有問題)
- 改變路由(重定向):路由器把改變路由報文發送給主機,讓主機知道下次應將數據報發送給另外的路由器(可通過更好的路由)。
不應該發送ICMP差錯報文的情況: - 對ICMP差錯報告報文不再發送ICMP差錯報告報文
- 對第一個分片的數據報片的所有后續數據報片都不發送ICMP差錯報告報文
- 對具有組播地址的數據報都不發送ICMP差錯報告報文
- 對具有特殊地址(
127.0.0.0
或0.0.0.0
)數據報不發送ICMP差錯報告報文
ICMP詢問報文
- 回送請求和回答報文:主機或路由器向特定目的主機發出詢問,收到此報文的主機必須給源主機或者路由器發送ICMP回答報文。測試目的站是否可達以及了解其相關狀態
ping
- 時間戳請求和回答報文:請求某個主機或路由器回答當前的時間和日期。用來進行時鐘同步或者測量時間。
- 掩碼地址請求和回答報文(不再使用)
- 路由器詢問和通告報文(不再使用)
ICMP的應用
PING
:測試兩個主機之間的連通性,使用了ICMP回送請求和回答報文
Traceroute
跟蹤一個分組從源點到終點的路徑,使用了ICMP時間超過差錯報告報文
Traceroute
原理:發送一系列TTL從1遞增的IP報,然后讓不同距離的路由器都發送錯誤報告
IPv6
解決地址耗盡問題,改進首部格式(快速處理/轉發數據報),支持QoS(Quality of Service,服務質量)
QoS(Quality of Service服務質量):指一個網絡能夠利用各種基礎技術,為指定的網絡通信提供更好的服務能力,時網絡的一種安全機制,是用來解決網絡延遲和阻塞等問題的一種技術。
對比IPv4和IPv6:
- IPv6將地址從32位(4B)擴大到128位(16B),更大的地址空間
- IPv6將IPv4的校驗和字段徹底移除,減少每條的處理時間
- IPv6將IPv4的可選字段移出首部,變成了擴展首部,成為靈活的首部格式。路由器通常不對擴展首部進行檢查,大大調高了路由器的處理效率
- IPv6支持即插即用(自動配置),不需要DHCP協議。
- IPv6的首部長度必須時8B的整數倍,IPv4首部時4B的整數倍。
- IPv6只能在主機處分片,IPv4可以在路由器和主機處分片
- IPv6使用ICMPv6:附加報文類型:分組過大
- IPv6支持資源的預分配,支持實時視像要求
- IPv6取消了協議字段,改成下一個首部字段
- IPv6取消了總長度字段,改用有效載荷長度字段
- IPv6取消了服務類型字段
IPv6地址標識形式:冒號十六進制記法,每四個十六進制位放在一起
如果每個分組前面有多個0,可以刪去
IPv6基本地址類型:
- 單播:一對一通信,可作為源地址+目的地址
- 多播:一對多通信,可作為目的地址。IPv6中沒有廣播地址,用多播實現
- 任播:一對多中的一個(最近的)通信,可作為目的地址
IPv6向IPv4過渡
- 雙棧協議:雙協議棧技術就是在一臺設備上同時啟用IPv4協議棧和IPv6協議棧。這樣的話,這臺設備既能夠和IPv4網絡通信,又能夠和IPv6網絡通信。如果這臺設備時一個路由器,那么這臺路由器的不同接口上,分別配置了IPv4和IPv6地址,并很可能分別連接了IPv4網絡和IPv6網絡。如果這臺設備是一個計算機,那么它將同時擁有IPv4和IPv6地址,并具備同時處理這兩個協議地址的功能。
- 隧道技術:隧道協議將其他協議的數據幀或包重新封裝然后通過隧道發送(IPv6偽裝成IPv4等等)
路由算法
靜態路由算法(非自適應路由算法):管理員手工配置路由信息。
優點:簡答可靠,在負荷穩定、拓撲變化不大的網絡中運行效果很好,廣泛應用于高端安全性的軍事網絡和較小的商業網絡
缺點:路由更新慢,不適用大型網絡
動態路由算法(自適應路由算法):路由器間彼此交換信息,按照路由算法優化路由表項。
路由更新快,使用大型網絡,及時響應鏈路費用或網絡拓撲變化。
缺點:增加網絡負擔、算法復雜
動態路由算法
全局性:所有路由器掌握完整的網絡拓撲和鏈路費用信息(OSPF)
分散性:路由器只掌握物理相連的鄰居及鏈路費用(RIP)
分層次的路由選擇協議:因為因特網規模很大;許多單位不想讓外界知道自己的路由選擇協議,但是還想連入因特網,所以產生了自治系統AS
自治系統AS:在單一的技術管理下的一組路由器,而這些路由器使用一種AS內部的路由選擇協議和共同的度量以確定分組在該AS內的路由,同時還使用一種AS之間的路由協議以確定在AS之間的路由。
一個自治系統AS內的所有網絡都屬于一個行政單位來管轄,一個自治系統的所有路由器在本自治系統內都必須連通
- 內部網關協議IGP:一個AS內使用的RIP、OSPF
- 外部網關協議EGP:AS之間使用的BGP
RIP協議
RIP是一種分布式的基于距離向量的路由選擇協議,是因特網的協議標準,最大的優點是簡單
RIP協議要求網絡中的每一個路由器都維護從他自己到其他沒有給目的網絡的唯一最佳距離記錄(即一組距離)
最佳距離:經過的路由器跳數最少
直接交付的距離(跳數)為1,最多包含15個路由器,因此距離16標識網絡不可到達
RIP協議只適用于小網絡
- 僅僅和相鄰路由器交換信息
- 路由器交換的信息是自己的路由表
- 每30S交換一次路由信息,如果從超過180S沒有收到鄰居路由器的通告,則判定鄰居沒了,并更新自己的路由表。
剛開始交換直接連接的網絡,距離為1.
經過若干次更新后,所有路由器都會知道到達本自治系統任何一個網絡的最短距離和下一跳路由器的地址,即“收斂”。
RIP報文:包含路由表
距離向量算法
- 修改相鄰路由器發來的RIP報文中的所有表項:對地址為x的相鄰路由器發來的RIP報文,修改報文,把下一跳的地址改為x,并把距離+1.
- 對修改后的RIP報文中的每一個項目:
- 如果沒有目的IP,則填入路由表;
- 如果有目的IP,且下一跳是同一個路由器,則更新(有可能距離不一樣);如果下一跳和自己的路由表中的不是同一個路由器,且距離比表中的更近,則更新為距離最近的
- 如果180S還沒有收到相鄰路由器x的更新路由表,則把x設置為不可達路由器(把距離為16)
RIP是應用層協議,使用UDP數據報傳輸
RIP的特點:當網絡出現故障的時候,要經過比較長的時間(數分鐘)才能將此信息傳送給所有的路由器
壞消息傳的慢(慢收斂),好消息傳的快
OSPF協議
開放最短路徑優先OSPF協議:開放標明OSPF協議不是受一家廠商控制的,而是公開發表的;“最短路徑優先”是因為使用了Dijkstra提出的最短路徑算法SPF
主要特征:使用分布式的鏈路狀態協議
- 使用洪泛法向自治系統內所有路由器發送信息,即路由器通過輸出端口向所有相鄰的路由器發送信息,而每一個相鄰路由器又再次將此信息發往其所有的相鄰路由器。(相當于廣播)
- 發送的信息就是與本路由器相鄰 的所有路由器的鏈路狀態(本路由器和哪些路由器相鄰,以及該鏈路的度量:費用、距離、時延、帶寬)
- 只有當鏈路狀態發生變化時,路由器才向所有路由器洪泛發送此信息
最后,所有路由器都能建立 一個鏈路狀態數據庫,即全網拓撲圖。
鏈路狀態路由算法
- 每個路由器發現他的鄰居節點【HELLO問候分組】,并了解鄰居節點的網絡地址。(每隔10S)
- 設置到它的每個鄰居的成本度量
metric
- 構造【DD數據庫描述分組】,向鄰站給出自己的鏈路狀態數據庫中所有鏈路狀態項目的摘要信息
- 如果DD分組中的摘要自己都有,則鄰站不做處理;如果有自己沒有的或者是更新的,則發送【LSR鏈路狀態請求分組】請求自己沒有的和比自己更新的信息
- 收到鄰站的LSR分組后,發送【LSU鏈路狀態更新分組】進行更新
- 更新完畢后,鄰站返回一個【LSAck鏈路狀態確認分組】進行確認
- 使用Dijkstra根據自己的鏈路狀態構造最短路徑
OSPF是網絡層協議
其他特點:
- 每隔30min更新一次
- 當互聯網規模很大時,OSPF協議要比距離向量協議RIP好得多
- OSPF不存在壞消息傳得慢的問題,它的收斂速度很快
BGP協議
與其他AS的鄰站BGP發言人交換信息
交換的網絡可達性信息,即要到達某個網絡所要經過的一系列AS(路徑向量)
發生變化時更新有變化的部分
各個BGP發言人根據所采用的策略從收到的路由信息中找到到達各個AS的較好路由
BGP是一個應用層協議,借助TCP傳送
特點:
- 支持CIDR
- 只需要在發生變化時更新有變化的部分
三種路由協議比較
IP組播(多播)
- 單播:使用一個IP地址作為目的地址,點對點通信
- 廣播:點對多點的傳播方式,目的地址是全1的廣播地址(MAC地址為全F)
- 組播(多播):當網絡中的某些用戶需要特定數據時,組播數據發送這僅僅發送一次數據,借助組播路由協議為組播數據報建立組播分發樹,被傳遞的數據到達距離用戶端盡可能金的節點后才開始復制和分發,是一種點對多點的傳輸方式
IP組播地址
IP組播地址讓原設備能夠將分組發送給一組設備,屬于多播組的設備將被分配一個組播組IP地址(一群相同需求主機的相同標識)
組播地址范圍為224.0.0.0~239.255.255.255
(D類地址),一個D類地址表示一個組播組。只能用作分組的目的地址。源地址總是為單播地址。
- 組播數據報是“盡最大可能交付”,不提供可靠交付,應用于UDP(速度快,實時性)。
- 對都組播數據包不產生ICMP差錯報文
- 并非所有D類地址都可以作為組播地址
硬件組播
組播MAC地址以十六進制值01-00-5E
打頭,剩下的6個十六進制位是根據IP組播組地址的最后23位轉換得到的
收到多播數據報的主機,還要在IP層利用軟件進行過濾,把不是本主機要接收的數據報丟棄
IGMP協議&組播路由選擇協議
IGMP:網際組管理協議
IGMP屬于網絡層協議,用IP數據報傳遞報文
組播路由器知道的成員關系只是所連接的局域網中有無組播組的成員。
如果局域網中有一個主機響應,那么其他也屬于組播組的成員將不會響應。
組播路由選擇協議的目的是找出以源主機為根節點的組播轉發樹。
構造樹可以避免在路由之間兜圈子。
對不同的多播組對應于不同的多播轉發樹:同一個多播組,對不同的源點也會有不同的多播轉發樹。
組播路由選擇協議常使用的三種算法:
- 基于鏈路狀態的路由選擇
- 基于距離向量的路由選擇
- 協議無關的組播(稀疏/稠密)
移動IP
移動IP技術是移動結點(計算機/服務器等)以固定的網絡IP地址,實現跨越不同網段的漫游功能,并保證了基于網絡IP的網絡權限在漫游過程中不發生任何改變。
移動結點:具有永久IP地址的移動設備
歸屬代理(本地代理):一個移動結點擁有的就居所稱為歸屬網絡。在歸屬網絡中代表移動節點執行移動管理功能的實體叫做歸屬代理。
外部代理(外部代理):在外部網絡中幫助移動結點完成移動網絡管理功能的實體稱為外部代理
永久地址(歸屬地址/主地址):移動站點在歸屬網絡中的原始地址
轉交地址(輔地址)移動站點在外部網絡使用時的臨時地址
路由器
轉發和路由選擇的區別:
- 轉發是一個路由器內不同端口的變化,而且一個分組進入輸入端口不一定轉發到輸出端口,也有可能是協議之間通信用來維護路由信息的分組,這樣的分組就會轉發給路由選擇處理機。
- 路由選擇是比較宏觀的傳輸路徑的選擇
查表和轉發是路由器中最重要的
若路由器處理分組的速率趕不上分組進入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使得后面再進入的隊列的分組由于沒有存儲空間只能被丟棄。
路由器中的輸入和輸出隊列產溢出是造成分組丟失的重要原因。
三層設備的區別
路由器:可以互聯兩個不同網絡協議的網段。
網橋:可以互聯兩個物理層和數據鏈路層不同的網段。
集線器:直通式設備,不能互聯兩個物理層不同的網段。
判斷:對于任何層次的設備,都可以互聯該層次及一下層次的不同。 錯誤,集線器設備是物理層設備,但是集線器無法連接兩個物理層不同的網段
路由表和路由選擇
路由轉發總是用軟件實現的。
轉發表由路由表得來,可以用軟件實現,也可以用特殊的硬件來實現。
轉發表必須包含完成轉發功能所必須的信息,在轉發表的每一行必須包含從要到達的目的網絡到輸出端口和某些MAC地址的映射。