第四章 网络互联
4.1 網絡層概述
互聯
網絡互連的動力:更大范圍的資源共享
網絡互連:HOST-LAN,LAN-LAN/WAN
互連在一起的網絡要進行通信,會遇到許多問題需要解決,如:
異構網絡
互聯互通需采用網絡層中繼系統對不同協議的語法、語義和時序進行轉換。
互聯方法
網絡互相連接起來要使用一些中間設備
中間設備又稱為中間系統或中繼(relay)系統
從體系層次觀點考察網絡互連
物理層:在電纜段之間復制比特信號(無地址)
數據鏈路層:在網段之間轉發數據幀(根據物理地址)
網絡層:在網絡之間轉發分組(根據邏輯地址)
- 當中繼系統是轉發器或網橋時,一般并不稱之為網絡互連,因為這僅僅是把一個網絡擴大了,而這仍然是一個網絡。
- 網關由于比較復雜,目前使用得較少。
- 互聯網都是指用路由器進行互連的網絡。
- 由于歷史原因,許多有關TCP/IP的文獻將網絡層使用得路由器稱為網關。
問題:分組在各種各樣的網絡之間如何傳輸?
因特網采用了一種與機器無關、操作系統無關、語言無關,中立的中繼系統(IP系統)方式來解決異構網絡互聯問題
- 所謂虛擬互聯網絡也就是邏輯互連網絡,它的意思就是互連起來的各種物理網絡的異構性本來是客觀存在的,但是我們利用IP協議就可以使這些性能各異的網絡在網絡層看起來好像是一個統一的網絡。
- 使用IP協議的虛擬互連網絡可簡稱為IP網。
網絡層提供了端系統到端系統的通信服務
- 底層的直接連接的網絡可為異構,網絡層提供互聯互通 互聯網可以由多種異構網絡互連而成
- 多跳傳送分組,需要網間路由器進行分組轉發和路由選擇
分組的直接交付和間接交付
直接交付:將分組直接交付給目的主機而不需要通過路由器。
間接交付:源與目的不在一個直接連接的網絡中,分組通過路由器轉發。
- 如果我們只從網絡層考慮問題,那么IP數據報就可以想象是在網絡層中傳送。
4.2 網絡層服務模型
- 在計算機網絡領域,網絡層應該向運輸層提供怎樣的服務("面向連接"還是"無連接")曾引起了長期的爭論。
- 爭論焦點的實質就是:在計算機通信中,可靠交付應當由誰來負責?是網絡還是端系統?
網絡層提供的兩種服務
無連接的網絡服務:數據報(datagram)服務
面向連接的網絡服務(虛電路(virtual-circuit,VC)服務
網絡隨時接受主機發送的分組(即數據報)網絡為每個分組獨立的選擇路由。
數據報服務
??? 主機H1先向主機H5發出一個特定格式的控制信息分組,要求進行通信,同時尋找一條合適路由。若主機H5同意通信就發回響應,然后雙方就建立了虛電路。
虛電路服務
一條VC由下列組成:
屬于VC的分組攜帶一個VC號
每條鏈路的VC號必須改變
虛電路服務
虛電路是邏輯連接
數據報服務和虛電路服務優缺點的歸納
因特網采用的設計思路
4.3 IP協議
網際協議IP及其配套協議
IP數據報的格式
一個IP數據報由首部和數據兩部分組成。
首部的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。
在首部的固定部分的后面是一些可選字段,其長度是可變的。
可變部分:從1個字節到40個字節不等,取決于所選擇的項目
版本:占4bit,指IP協議的版本,目前的IP協議版本號為4(即IPv4)
首部長度:占4bit,可表示的最大數值 是15個單位(一個單位為4字節) 因此IP的首部長度的最大值是60字節
區分服務:占8位,用來獲得更好的服務,在就標準中叫做服務類型,但實際上一直未被使用過。1998年這個字段改名為區分服務。只有在使用區分服務(DiffServ)時,這個字段才起作用。在一般的情況下都不使用這個字段
總長度:占16bit,指首部和數據之和的長度,單位為字節,因此數據報的最大長度為65535字節。
標識(identification):占16bit,它是一個計數器,用來產生數據報的標識。
標志(flag):占3位,目前只有前兩位有意義。標志字段的最低位是MF(More Fragment)。MF=1表示后面"還有分片"。MF=0表示最后一個分片。標志字段中間的一位是DF(Don't Fragment)。只有當DF=0時才允許分片。
片偏移:12bit,較長的分組在分片后某片在原分組中的相對位置。片偏移以8個字節為偏移單位。
分組分片
回顧最大傳輸單元(MTU)的定義
數據封裝提出的問題
1.IP分組的大小由軟件定義
2.選擇合適的分組長度適應不同的MTU
- 選擇網絡中最小的MTU:在MTU較大的網絡傳輸會造成硬件能力浪費
- 選擇網絡中最大的MTU:在MTU較小的網絡不能實現數據報到幀的封裝
3.如何選擇分組長度?如何實現數據封裝?
適應不同MTU的解決方案
分組長度的定義原則
定義分片機制
在何處實行分片
分片方法
生存時間:8bit,記為TTL(Time To Live) 表示數據報在網絡中至多可經過多少個路由器。
協議:8bit,指出此數據報攜帶的數據使用何種協議以便目的主機的IP層將數據部分上交給哪個處理過程
受不檢驗和:16bit字段只檢驗數據報的首部不包括數據部分。這里不采用CRC檢驗碼而采用簡單的計算方法。
源地址和目標地址都各占4字節
可選字段
什么是IP地址
- 我們把整個因特網看成為一個單一的、抽象的網絡。IP地址就是給每個連接在因特網上的主機(或路由器)分配一個在全世界范圍唯一的32bit的標識符。
- 最初,因特網賦號管理局(Internet Assigned Number Authrity,IANA)控制著所有分配的編號,并制定政策。
- 后來,由因特網名字與號碼指派公司(Internet Corporation for Assigned Names and Numbers,ICANN)行使IANA的職能。
- 大多數單位從不會直接與ICANN聯系,而是單位->本地ISP->更高一級的ISP->ICANN授權的地址注冊機構
- 我國向亞太網絡信息中心APNIC(Asia Pacific Network Information Center)申請IP地址。
IP地址的編址方法
IP地址的兩種表示方法
一個對比
IP的地址結構
分類的IP地址
A類 大型網絡
B類 中型網絡
C類 小型網絡
D類 多播
E類 試驗目的
路由器轉發分組的步驟
- 先按所要找的IP地址中的網絡號net-id把目的網絡找到。
- 當分組到達目的網絡后,再利用主機號host-id將數據報直接交付給目的主機。
- 按照整數字節劃分net-id字段和host-id字段,就可以使路由器在收到一個分組時能夠更快地將地址中的網絡號提取出來。
IP地址的分類/A類
- 前1字節標識網絡地址,后3字節標識主機地址。
- 每個網絡最多可容納(2^24-2)臺主機。
- 從高位起,前1位為"0",第1字節用十進制表示的取值范圍為"1-126"
- 具有A類地址特征的網絡總數為(2^7-2)個
IP地址的分類/B類
- 前2個字節標識網絡地址,后2字節標識主機地址
- 每個網絡最多容納(2^16-2)臺主機
- 從高位起,前2位為"10",第1字節用十進制表示的取值范圍為"128-191"
- 具有B類地址特征的網絡總數為2^14-1個
IP地址的分類/C類
- 前3個字節標識網絡地址,后1字節標識主機地址
- 每個網絡最多容納(2^8-2)臺主機
- 從高位起,前3位為"110",第1字節用十進制表示的取值范圍為"192-223"
- 具有B類地址特征的網絡總數為2^21-1個
IP地址的分類比較
IP地址
??? 從Internet的觀點來看,具有相同net-id的主機屬于同一個網絡,同一個網絡中不同的主機具有不同的host-id。
??? 不同的網絡通過路由器進行相連!
特殊IP地址
1)回環測試地址
主機將IP數據報回傳自身的地址-IP地址第一個字節為127 例:回送地址為127.0.0.1
可用的環回測試地址范圍為:127.0.0.1-127.255.255.254
2)廣播地址
1.直接廣播地址
主機地址部分為全"1",用于向某個網絡的所有主機廣播。例:主機212.111.44.136 所在網絡的廣播地址為212.111.44.255
2.有限廣播地址(255.255.255.255)
在未知本網絡地址情況下用于本網廣播
3)網絡地址
主機地址部分全部定義為"0",用于區分網絡
例:主機211.111.44.136,所在網絡的地址為212.111.44.0
專用IP地址
具有以上IP地址的數據包會被路由器過濾,不會在Internet上傳輸。
自動專用IP地址
??? 主機如果設置為自動獲取IP地址,當網絡中沒有架設DHCP服務器時,或者DHCP服務器出了問題的時候,操作系統會自動賦予本機一個類似169.254.x.x的IP地址。
??? IANA把B類地址快169.254.0.0-169.254.255.255定義為自動專用IP地址(Automatic Private IP Addressing,APIPA),這些地址將不能在Internet上使用。
??? APIPA使得在ad-hoc(不等)無線網絡這樣的局域網上的計算機可以互相通信而不需要配置DHCP服務器或靜止IP地址。
??? 如果在提供有DHCP服務器的網路上計算機的IP地址是APIPA地址,就意味著該計算機無法聯系上DHCP服務器。該計算機可能沒有正確接入網絡或者DHCP服務器掉線。
??? 注意APIPA地址永遠不會有默認網關,以為APIPA設計為只在單一子網上工作。
??? 使用APIPA IP地址的計算機會定期嘗試與DHCP服務器聯系,以免DHCP服務器在客戶端計算機啟動后才聯機上線。
子網編址
劃分子網
從兩級IP地址到三級IP地址
- 在ARPANET的早期,IP地址的設計確實不夠合理。
- 從1985年起在IP地址中又增加了一個"子網號字段",使兩級的IP地址變成為三級的IP地址。
- 這種做法叫做劃分子網(subnetting)。劃分子網已成為因特網的正式標準協議。
什么是子網
??? 將網絡進一步劃分為相對獨立的組成部分,每個部分稱為這一網絡(或更高一級子網)的子網。
??? 劃分子網純屬一個單位內部的事情。單位對外仍然表現為沒有劃分子網的網絡。
如何劃分子網
- 根據地理分布特點劃分
- 易于組網技術實現
樓群內采用局域網技術構成子網
樓群間選擇合適的傳輸媒體和互連設備使不同子網互連。
- 節省經費
- 根據網絡應用特點劃分
- 將共享相同網絡資源的主機劃分為同一子網,減少子網間的網絡傳輸流量,提高系統性能。
- 將具有相同安全密級程度的主機劃分為同一子網,保障系統的安全。
劃分子網的基本思路
- 從主機號借用若干個比特作為子網號subnet-id,而主機號host-id也就相應減少了若干個比特。即IP地址::={<網絡號>,<子網號>,<主機號>}
- 凡是從其他網絡發送給本單位某個主機的IP數據報,仍然是根據IP數據報的目的網絡號net-id,先找到連接在本單位網絡上的路由器。
- 然后此路由器在收到IP數據報后,再按目的網絡號net-id和子網號subnet-id找到目的子網。
- 最后就將IP數據報直接交付給目的主機。
子網地址特性
劃分子網后的IP地址
子網掩碼定義
- 從一個IP數據報的首部并無法判斷源主機或目的主機所連接的網絡是否進行了子網的劃分。
- 使用子網掩碼(subnet mask)可以找出IP地址中的子網部分。
總結:子網掩碼中"1"的長度表示:
1)沒有劃分子網時,表示net-id的長度
2)劃分了子網時,表示net-id+subnet-id的長度
A類、B類和C類IP地址的默認子網掩碼
子網掩碼的作用
1)劃分子網
例如:一個公司有一個C類地址,想把公司內部網絡劃分為6個子網,那么它采用的子網掩碼是什么?
例如:一個公司有一個C類地址(202.117.128.0),采用掩碼255.255.255.224,寫出所有子網地址。
2)獲得主機網絡地址
IP地址 & 掩碼 = 網絡地址
舉例1:
舉例2:
子網掩碼應用舉例
例:主機IP地址:202.112.32.62
??????????????????????????? -.-.-.00111110
?????? 默認子網掩碼:255.255.255.0(C類地址)
?????? 實際子網掩碼:255.255.255.224
因此:
??? 未劃分前的網絡地址:202.112.32.0(無實際意義)
??? 劃分后的網絡地址:202.112.32.00100000
??? 直接廣播地址:202.112.32.00111111
另一種表示法:202.112.32.62/27
例1:已知IP地址是141.14.72.24,子網掩碼是255.255.192.0。試求網絡地址。
例2:在上例中,若子網掩碼改為255.255.224.0。試求網絡地址,討論所得結果。
不同的子網掩碼得出相同的網絡地址。但不同的掩碼的效果是不同的。
使用子網掩碼的分組轉發過程
- 在不劃分子網的兩級IP地址下,從IP地址得出網絡地址是個很簡單的事。
- 但在劃分子網的情況下,從IP地址卻不能唯一地得出網絡地址來,這是因為網絡地址取決于那個網絡所采用的子網掩碼,但數據報的首部并沒有提供子網掩碼的信息。
因此,分組轉發的算法也必須做相應的改動。
在劃分子網的情況下路由器轉發分組的算法
(1)從收到的分組的首部提取目的的IP地址D。
(2)先用路由器直接連接的網絡的子網掩碼和D逐比特相"與",看是否和相應的網絡地址匹配。若匹配,則將分組直接交付。否則就是間接交付,執行(3)。
(3)若路由表中有目的地址為D的特定主機路由,則將分組傳送給指明的下一跳路由器;否則,執行(4)。
(4)對路由表中的每一行的子網掩碼和D逐比特相"與",若其結果與該行的目的網絡地址匹配,則將分組傳送給該行指明的下一跳路由器;否則,執行(5)。
(5)若路由表中有一個默認路由,則將分組傳送給路由表中所指明的默認路由器;否則,執行(6)。
(6)報告轉發分組出錯。
注意:
??? 為支持特定主機路由和默認路由,規定全"1"的掩碼對應特定主機路由,全"0"的掩碼對應默認路由。
無分類編址CIDR
當時面臨的問題:
- 隨著Internet的飛速發展,可用的IP地址空間正在縮小。A類地址和B類地址的空間實際上已經耗盡。整個IPv4的地址空間最終將全部耗盡。
雖然可以用"分配多個C類地址"取代"分配一個B類地址",但是如果一個單位分配了256個C類地址而不是一個B類地址,則需要256個路由表項,而不是1個!
- 因特網主干網上的路由表中的項目數急劇增長(從幾千個增長到幾萬個),核心的Internet路由器處理能力也逐漸耗盡。
- 1987年,RFC1009就指明了在一個劃分子網的網絡中可同時使用幾個不同的子網掩碼。使用變長子網掩碼VLSM(Variable Length Subnet Mask)可進一步提高IP地址資源的利用率。
- 在VLSM的基礎上又進一步研究出無分類編址方法,它的正式名字是無分類域間路由選擇CIDR(Classless Inter-Domain Routing)。
CIDR與之前的8位、16位、24位網絡標識符(或前綴)限制相反。CIDR允許任意長度的網絡地址前綴存在。即:CIDR使用各種長度的"網絡前綴"(network-prefix)來代替分類地址中的網絡號和子網號。
- 在一個有類別的系統中,路由器確定一個地址的類別,并根據該類別識別網絡位和主機位。
- 在CIDR中,路由器使用前綴來描述有多少位是網絡位,余下的則是主機位。
CIDR地址塊
- 128.14.32.0/20表示的地址塊共有2^12個地址(因為斜線后面的20是網絡前綴的比特數,所以主機號的比特數是12)。這里20 被稱為網絡前綴長度。
注意:
只要知道這個地址塊中的某個地址和前綴長度,就可以確定該地址塊的地址范圍。
例如,已知某個地址128.14.33.1/20,可先讓該地址與掩碼"與"操作,求得網路地址為128.12.32.0。然后便可以寫出地址范圍128.14.32.0至128.14.47.255
CIDR記法的其他形式
為什么使用CIDR?
- 提高了IPv4的可擴展性和效率;
- 將有類別的尋址方式替換成了更靈活、浪費更少的無類別方案;
- 加強了路由聚合,亦即超網(Supernetting),它使得路由表中的一個項目可以表示很多個(例如上千個)原來傳統分類地址的路由。
路由聚合和超網
超網
??? 超網是指用一個掩碼將多個有類別的網絡聚合成"單個網絡"的過程。超網和路由聚合是同一方法的不同名稱。
??? 例如,一個單位可以將申請到的幾個C類地址塊合并為一個更大的地址塊。但是這些C類地址必須滿足下面的條件:
??? (1)C類地址個數必須是2的整數次方(2,4,8,16)
??? (2)這些地址必須是連續的(塊與塊之間沒有間隙)
觀察:8個網絡地址中前21個比特相同,將它們合并到一個可以表示多個網絡的公共網絡號,這就是路由聚合。
通過使用前綴地址來匯總路由帶來怎樣的好處?
- 更高效的路由選擇
- 重新計算路由表或者在路由表中查找匹配項所消耗的CPU時間大幅減少。
- 對路由器的內存需求降低。
- 超網與地址分配
例如:一個Z公司需要供400臺主機使用的地址。在有類尋址系統中:(1)Z公司可以申請一個B類地址,(2)Z公司也可以申請兩個C類地址
當Z公司采用方法(2),則因特網路由器將需要為Z公司維護2條路由表項,而不是一條。
??? 在無類尋址系統中,超網允許Z公司使用自身需要的地址空間而不造成浪費,而且不會增加不必要的路由選擇開銷。
- Z公司要做的是向它的網絡服務器提供商申請一個地址塊。
- 網絡服務提供商ISP評估Z公司的需求,并從ISP的大CIDR地址塊中分配一個地址空間給Z公司。
- 假設負責給Z公司分配地址塊的ISP管理著一個大地址塊:207.21.0.0/16 相當于有256個C類地址組成的地址塊。
- ISP給Z公司分配一個地址塊:207.21.2.0/23,改地址的主機有9位,可以滿足400個主機地址的需求。
判定哪些子網的地址能夠聚合:
條件1,也是基本條件,是多個IP地址塊必須擁有相同的高位比特,且各子網間地址是連續的(這是地址聚合定義中所要求的);
條件2,要聚合的地址個數必須是2的冪;
條件3,要聚合的地址中最小的那個網絡地址中要匯聚的那個字節的十進制必須是要聚合的地址個數的整數倍。
最長前綴匹配
- 使用CIDR時,路由表中的每個項目由"網絡前綴"和"下一跳地址"組成。在查找路由表時可能會得到不止一個匹配結果。
- 應當從匹配結果中選擇具有最長網絡前綴的路由:最長前綴匹配(longest-prefix matching)。
- 網絡前綴越長,其地址塊就越小,因而路由就越具體。
- 最長前綴匹配又稱為最長匹配或最佳匹配。
可變長子網掩碼VLSM(Variable-length subnet masks)
- RFC 1878中定義了可變長子網掩碼(VariableLength Subnet Mask,VLSM)。VLSM規定了如何在一個進行了子網劃分的網絡中的不同部分使用不同的子網掩碼。這對于網絡內部不同網段需要不同大小子網的情形來說非常有效。
- VLSM實際上是一種多級子網劃分技術。
- 這種策略只能在所用的路由協議都支持的情況下才能使用。
??? 當為一個IP網分配不止一個子網掩碼時,可以認為網絡使用了可變長子網掩碼VLSM。
??? 好處:能克服單一子網掩碼所造成的固定數目、固定大小子網的局限。如果你想把你的網絡分成多個不同大小的子網,可以使用可變長子網掩碼,每個子網可以使用不同長度的子網掩碼。
例如:將圖中的子網172.17.3.0/24在劃分為幾個更小的子網。
將圖中的子網172.17.3.0/24按同一個掩碼/27劃分
其中選擇三個網絡地址分配給三個子網。
再將其中一個/27子網更進一步劃分成多個/30子網。
在其中選取三個網絡地址分配給三個點到點鏈路。
切記:如果已經分配使用了某個子網中的地址,那這個子網不能再細化分。(下面標紅的子網不能在劃分!)
IP地址的配置
- 為了讓協議軟件通用和便于移植,協議軟件的編寫者把協議軟件參數化。
- 不同的計算機,配置不同的協議參數。
- 在協議軟件運行之前,必須給每一個參數賦值。在協議軟件中給出這些參數賦值的動作叫做協議配置。
- 具體的配置信息有哪些則取決于協議棧。
對于一個使用TCP/IP協議棧的計算機,它的協議軟件需要配置的項目有哪些?
- 早期(在無盤計算機的情況下)
(1)操作系統和連網軟件可以存儲在ROM中。
(2)上述四條信息不能存儲在ROM中,這些信息與機器的特定配置有關,說明了這臺機器所連接到的網絡。
(3)引導程序協議BOOTP可將協議配置信息提供給無盤計算機。
(4)BOOTP基于UDP,采用客戶/服務器模式實現。
- BOOTP為什么被淘汰?
(1)BOOTP是靜態配置協議。客戶的物理地址與IP地址的綁定必須是預先確定的。綁定信息由人工維護。
(2)BOOTP無法自動處理以下情況:若主機從某個物理網絡移動到另一個物理網絡?若一個新的主機加入到網絡中?
現在廣泛使用動態主機配置協議DHCP
- DHCP和BOOTP向后兼容。
- DHCP提供靜態和動態地址分配,分配可以是人工或自動的。
- DHCP有兩個數據庫:
??? 固定地把物理地址綁定到IP地址,支持靜態地址分配。
??? 擁有可用IP地址池,支持動態地址分配。
- 當DHCP服務器接收到請求后,首先檢查它的靜態數據庫,如果存在所請求的物理地址項目,就返回相應的IP地址(永久)。如果靜態數據庫中不存在這個項目,DHCP服務器就從可用IP地址池中選擇一個IP地址指派給客戶,并把這個項目加到動態數據庫中。
- 從IP地址池獲得的地址都是在有限時間內使用的臨時IP地址。
DHCP工作過程
1.發現階段
??? 需要IP地址的主機在啟動時間就像DHCP服務器廣播發送發現報文(DHCPDISCOVER),這時該主機就成為DHCP客戶。
??? 注:客戶發送請求報文時因為此時客戶還不知道它本身的IP地址,所以IP首部中的源IP地址通常是0.0.0.0,目的IP地址為255.255.255.255。
2.提供階段
??? 本地網絡上所有主機都能收到此廣播報文,但只有DHCP服務器才回答此廣播報文。
??? DHCP服務器的回答報文叫做提供報文(DHCPOFFER)。
??? 凡收到DHCP發現報文的DHCP服務器都發出DHCP提供報文,因此DHCP客戶可能收到多個DHCP提供報文。
3.選擇階段
??? DHCP客戶從多個DHCP服務器中選擇其中的一個,并向所選擇的DHCP服務器發送請求報文(DHCPREQUEST)。
4.確認階段
??? 被選擇的DHCP服務器發送確認報文(DHCPACK),進入已綁定狀態,客戶開始使用得到的臨時IP地址了。
5.更新階段
??? 當客戶在確認階段得到臨時IP地址后,將根據服務器提供的租用期T設置兩個計時器T1和T2,它們的超時時間分別是0.5T和0.875T。
??? T1時間到時,客戶發送DHCPREQUEST報文要求更新。
??????? 若DHCP服務器發回確認報文DHCPACK。客戶得到了新的租用期,重新設置計時器。
??????? 若DHCP服務器發回否認報文DHCPNACK。客戶必須立即停止使用原來的IP地址,重新申請IP地址。
??????? 若服務器無響應,客戶在2T時間到時,重新發送DHCPREQUEST報文。
6.重新登錄
??? 客戶不需要再發送DHCPDISCOVER報文了,而是直接發送包含前一次所分配的IP地址的DHCPREQUEST請求信息。
??? 當DHCP服務器收到這一信息后,它會嘗試讓DHCP客戶機繼續使用原來的IP地址,并回答一個DHCPACK確認信息。
7.主動解約
??? 客戶可以隨時提前終止DHCP服務器提供的租用期,這時只需向DHCP服務器發送釋放報文(DHCPRELEASE)即可。可以使用命令:ipconfig /release
ARP
物理地址回顧
- 定義:組成網絡的各個站點都具有一個機器可以識別的地址,稱為該站點的物理地址(或稱為硬件地址)。
- 特點:長度和格式有物理網絡的硬件決定,不同網絡具有各自的地址定義方式。物理地址不能保證在整個互聯網上具有唯一性,但在同一網絡上物理地址是唯一的 。
IP地址與硬件地址
為什么要將IP地址轉換為物理地址
不管網路層使用的是什么協議,在實際網絡的鏈路上傳送數據幀時,最終還是必須使用物理地址。
- 由于全世界存在著各式各樣的網絡,它們使用不同的硬件地址。要使這些異構網絡能夠互相通信就必須進行非常復雜的物理地址轉換工作,因此幾乎是不可能的事。
- 連接到因特網的主機都擁有統一的IP地址,它們之間的通信就像連接在同一個網絡上那樣簡單方便,因為調用地址轉換協議來尋找某個路由器或主機的硬件地址都是由計算機軟件自動進行的,對用戶來說是看不見這種調用過程的。
如何實現地址轉換
ARP分組的封裝
ARP高速緩存的作用
為什么需要ARP高速緩存?
??? 在多部分情況下,兩臺主機之間不會僅傳遞一個數據報。如果每次傳遞數據報之前都要使用arp請求獲取目標的物理地址,通信效率會受到很大影響。
??? 因此,
- 每個主機都在本地設置一個ARP高速緩存(ARP Cache),存放最近解析出來的IP/MAC映射關系。
- 發送方在發送數據之前,首先在本地ARP高速緩存中查找,如果找到直接使用,否則才會廣播arp請求報文,進行地址解析。
??? 例如:主機A要發數據給主機E,但是不知道E的MAC地址,于是發起ARP請求。
- 當E收到A的ARP請求分組時,以及當A收到E的ARP響應分組時,都會將對方主機的地址映射寫入自己的ARP高速緩存中。以后給對方發送數據報時就更方便了。例如:
- 當主機A欲向本局域網上的某個主機E發送IP數據報時,就先在其ARP高速緩存中查看有無主機E的IP地址。如有,就可查出其對應的硬件地址,再將此硬件地址寫入MAC幀,然后通過局域網將該MAC幀發往此硬件地址。
ARP命令
格式:arp -參數
ARP命令僅對ARP高速緩存操作,不會發送ARP請求!
跨網通信時ARP的使用方法
問題:
??? ARP是解決同一個物理網絡內的主機或路由器的IP地址和硬件地址的映射問題。(直接交付)但是,大部分情況下,源站與目的站并不在同一個物理網絡內,且他們之間可能會跨越多個路由器(間接交付)。這種情況下,ARP如何工作呢?
(1)主機A判斷D是否與自己處于同一物理網絡,如果不是(急需間接交付),則必須將數據發送給它的默認網關--路由器R,再由R轉發給D.
發送前,先利用ARP獲取E0的物理地址MAC3
然后發送 IP數據報:IP1->IP2??? MAC幀:MAC1->MAC3
(2)路由器R把數據從E1端口轉發給主機D。
轉發前,利用ARP獲取D的物理地址MAC2
然后發送 IP數據報:IP1->IP2?? MAC幀MAC4->MAC2
使用ARP的四種典型情況
- 發送方是主機,要把IP數據報發送到本網絡上的另一個主機(直接交付)。這時用ARP找到目的主機的硬件地址。
- 發送方是主機,要把IP數據報發送到另一個網絡上的一個主機(間接交付)。這時用ARP找到本網絡上的默認網關路由器的硬件地址。剩下的工作由這個路由器來完成。
- 發送方是路由器,要把IP數據報轉發到本網絡上的一個主機(直接交付)。這時用ARP找到目的主機的硬件地址。
- 發送方是路由器,要把IP數據報轉發到另一個網絡上的一個主機(間接交付)。這時用ARP找到下一跳路由器的硬件地址。剩下的工作由這個路由器來完成。
ICMP
- 為了提高IP數據報交付成功的機會,在網際層使用了因特網控制報文協議ICMP(Internet Control Message Protocol)。
- ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告。
- ICMP不是高層協議,而是IP層的協議
- ICMP保文作為IP層數據報的數據,加上IP首部,組成IP數據報發送出去。
- Type:定義ICMP報文的類型(功能)。
- Code:每種類型可再根據Code字段來定義各種不同用途
- Checksum:長度為2Bytes,記錄ICMP報文的錯誤檢驗碼
ICMP報文分類
ICMP(Type=3:Destination Unreachable)
IP路由過程中,若出現以下問題,路由器或目的主機便發出"目的不可達"ICMP報文通知源端:
- 路由器無法將IP數據報傳送出去。
- 目的主機無法處理收到的IP數據報。
ICMP(Type=11:Time Exceeded)
ICMP(Type=8/0:Echo Request/Echo Reply)
確認事項:
B主機存在且運作正常
A、B之間的網絡連接狀況正常
A、B之間的IP路由正常
NAT
- 為了解決IPv4地址短缺的問題,IETF提出了NAT。
- IP地址分為公有地址(Global address),私有地址(Private address)
- NAT技術的主要作用是將私有地址轉換為公有地址。
公網(Public Network),也被稱為全局網絡(Global Network)或外網(External Network)。公網結點使用的地址為公有地址或稱全局地址。
私網(Private Network),也被稱為本地網絡(Local Network)和內網(Internal Network)。私網結點使用的地址為私有地址或稱內部地址。
Basic NAT
NAPT
NAPT(Network Address Port Translation)
- 網絡地址端口轉換。
- NAT通過轉換表中的TCP和UDP端口號進行映射的區分。
- 端口號16bit,所以一個內部全球地址理論上可以對應2^16個內部專有地址。
- NAT設備要指定供分配的公有地址池
- NAPT試圖保持原有的端口號
- 試圖保持NAPT端口號,如果這個原始的端口號已被分配,NAT將查找其他可用端口,如果沒有,將轉移到下一個IP地址,并試圖再次分配原始的原端口號。
Easy IP
- NAT設備直接使用出接口的IP地址作為轉換后的源地址;
- 不用預先配置地址池
- 工作原理與普通NAPT相同,是NAPT的一種特例;
- 適用于動態獲得IP地址的場合。
NAT的主要缺點:
??? 增加了延遲
??? 喪失了端到端的IP追蹤能力。當分組在多個NAT跳上經歷了許多次的地址轉換后,要跟蹤該分組是很困難的。當然這樣黑客也很難確定分組的源了,也是優點。
4.4 路由選擇協議及其算法
路由的概念
- 路由是指導IP數據報發送的路徑信息
- 路由表是路由器轉發報文的判斷依據。
- 理想的路由算法應具有的特性
1)算法必須是正確的和完整的
2)算法在計算上應簡單
3)算法應能自適應通信量和網絡拓撲的變化
4)算法具有穩定性
5)算法應該是公平的
6)算法應是最佳的
路由選擇
路由選擇協議:目的:決定從源到目的地通過網絡的"好的路徑(路由器序列)"
路由選擇分類
靜態路由選擇--非自適應的路由選擇
管理員將路由信息輸入路由器配置中,只要網絡拓撲改變,管理員必須手動更新這些靜態路由條目。
動態路由選擇--自適應的路由選擇
管理員輸入配置命令啟動動態路由選擇后,只要從互連網絡中收到新的信息,路由選擇進程就自動更新路由信息。
靜態路由選擇的應用
當一個網絡只有一條路徑可以到達時,可以使用靜態路由,避免了動態路由選擇的開銷。
靜態路由選擇的優點
1)簡單直接
2)無需路由軟件
3)不需要傳播路由信息,因此不消耗帶寬
動態路由選擇
動態路由選擇允許網絡快速的更新和適應于變化。
Internet采用的路由選擇協議
什么是自治系統(Autonomous System,AS)
- 自治系統指在單一實體管理之下的路由器和網絡群組。它的典型管理實體是ISP,此外,一些公司企業、大學或政府機構也可能擁有自己的自治系統。
- 可以把AS看成一個路由器組。
- 每個自治系統都有一個全局唯一的編號,即:自治系統號(ASN)
- ASN由ICANN地區注冊機構負責分配,它是一個16bit的標識符,范圍為1-65535(其中64512-65535保留不分配)
- 當一個自治系統向其它自治系統傳播可達性信息時,使用自治系統編號來標識自己。
- 一個AS有時也被稱為是一個路由選擇域(routing domain)
- AS自主地決定在本系統內應采用何種路由選擇協議。
- 一個AS內的所有路由器在本系統內必須是連通的。
- 一個AS對其他AS表現出的是一個單一的和一致的路由選擇策略。
路由選擇算法的分類
對于內部網關協議,可以根據路由選擇算法是分布式的還是全局的區分。
- 分布式路由選擇算法
- 全局路由選擇算法
分布式路由選擇算法
- 路由器知道:物理相連的鄰居,它到鄰居的鏈路費用。
- 通過迭代計算及與相鄰結點交換信息的過程,使各個結點能夠計算出到達某個目的結點的最低費用路徑。
- 代表算法:距離向量(Distance-Vector)算法
???? 全局路由選擇算法
- 以所有結點之間的連通性及所有鏈路的費用為輸入,計算最有路徑。
- 要求每一個路由器知曉完全的網絡拓撲、鏈路費用信息。
- 代表算法:鏈路狀態(Link-State)算法
距離向量算法基本思想
??? 一個路由器知道到達鄰居的距離,如果鄰居知道到達目的地的距離,則能算出本路由器到達目的地的距離。
- 每個節點周期性的向其鄰居發送自己的距離向量(DV);
- 當結點X接收到來自鄰居v的新距離向量時,它使用Bellman-Ford方程更新自己的距離向量:
路由器定期向鄰居發送路由更新,鄰居路由器根據收到的路由更新來更新自己的路由表,然后在向外發送更新后的路由。
每個路由器收到來自相鄰路由器的路由表信息。
RIP協議(Routing Information Protocol)
- 路由信息協議RIP是內部網關協議IGP中簡單的、最先得到廣泛使用的協議。
- RIP基于舉例向量路由,使用Bellman-Ford算法計算路由表。
- RIP協議要求網絡中的每一個路由器都要維護從它自己到其每一個目的網絡的距離記錄。
- 每一個路由器都要維護一個路由表(Routing Table)
- 其中包含該路由器到達每個目的網絡的條目。
關于RIP中的"距離"
- RIP協議中的"距離"也稱為"跳數"(hop count),因為每經過一個路由器,跳數就加1。
- 從一個路由器到直接連接的網絡的距離定義為1.
- 從一個路由器到非直接連接的網絡的距離定義為所經過的路由器數加1.
- RIP認為一個好的路由就是它通過的路由器的數目少,即"距離短"。
- RIP允許一條路徑最多只能包含15個路由器。"距離"的最大值為16時即相當于不可達。
RIP的三個要點:
- Sharing hnowledge about the entire AS以自治系統為范圍(指該路由器目前了解到的目的網絡,不一定包括當前AS內所有目的網絡。),每個路由器分享自己到達目的網絡的信息。
- Sharing only with neighbors 僅和相鄰路由器分享。
- Sharing at regular intervals 按固定的時間間隔分享信息(當前路由表的全部信息),例如,每個30秒。
發現故障
RIP存在的一個問題是當網絡出現故障時,要經過比較長的時間才能將"壞消息"傳送到所有的路由器。
發現故障引起的問題
- 網絡1的無效更新會不斷循環下去,計數到無窮大(16)。
- "網絡1不可達"這樣的壞消息一直不被得知,網絡中的路由器仍然認為網絡1可達
- 網絡狀態長時間無法收斂
解決方法
? ? 通過水平分割(split horizon)消除路由選擇環路
- 解決方法
通過路由毒化+抑制時間,能夠在一定程度上避免路由環路產生。
抑制時間:當一條路由的距離值變為無窮大時,該路由進入抑制狀態。在被抑制狀態,只有來自同一鄰居,且度量值小于16的路由更新才會被路由器接收,取代不可達路由項。
確保不可達信息不被錯誤的可達信息取代。
基于距離向量的路由選擇協議特點總結
- 收斂速度慢
(1)路由器在分發路由信息前必須重新計算其距離向量。
(2)壞消息循環問題,即計數到無窮問題,距離向量必須被來回傳送多次;
- 路由器之間交換的路由信息是路由器中的完整路由表,因而隨著網絡規模的擴大,開銷也就增加。
OSPF
- 和RIP一樣,OSPF也用于AS內部路由選擇。
- RIP是基于舉例向量的路由選擇協議,OSPF是基于鏈路狀態的路由選擇協議。
- OSPF被認為是RIP的繼任者,并且有許多先進特性。1987年IETF提出,廣為熟悉的版本v2由RFC2328(1998年4月)定義。
- Neighborship:
直接相連(adjacence)的Router之間的關系。
- Link State Database:
相鄰的Router交換Link State Advertisement;
建立、并更新數據庫,記載網絡上個Router及網絡連接的基本信息。
- Forwarding Table:
記載通過SPF(Shortest Path First,最短路徑優先)算法--Dijkstra算法,計算出的到達目的地的最佳路徑。
- 區域(Area)
在RIP協議中:
? ? AS是一個平面結構,并無區域的定義。
? ? AS范圍就是一個RIP路由域
在OSPF路由協議中:
? ? 講一個AS劃分為若干個較小的范圍,叫做區域(area)。每個區域都運行自己的OSPF算法,區域內每臺路由器都向該區域內其他路由器廣播其鏈路狀態。
為什么要劃分區域?
當網絡越來越龐大時,帶來以下問題:
? ? LSA傳送頻繁,帶寬需求增加;
? ? SPF計算過于頻繁,Router負擔增加;
? ? Routing Table(Forwarding Table)不穩定。
- 一個OSPF路由域可以劃分為多個路由器群集,即一個AS被劃分為多個編號的區域。區域不能相互重疊。
- 每一個區域都有著該區域獨立的網絡拓撲數據庫及網絡拓撲圖。在一個區域的外部來看,該區域的拓撲結構和細節是不可見。
? ? 每個AS中有一個主干區域,稱為0號區域。其他所有區域都要求連接到主干區域上,所以,從AS的任何一個區域出發,經過主干區域,總有有可能到達該AS的任何其他區域。
- Area ID為32bit數字 可用IP位址格式表示? ?也可用十進制數字顯示(例:Area 0.0.0.0,or Area 0)
- 0.0.0.0或0保留作為表示Backbone Area
- 其他Area都須與Backbone直接透過Area Border Router聯系。
- OSPF區分4種路由器分類
1)內部路由器(Internal Routers),完全在一個區域的內部;內部路由器上僅僅運行其所屬區域的OSPF運算法則。
2)區域邊界路由器(Area Border Router),連接兩個或多個區域,正常情況下必須要與Area0連接。區域邊界路由器運行與其相連的所有區域定義的OSPF運算法則。
3)主干路由器(Backbone Router),若路由器有一個接口位于主干區域。
4)AS邊界路由器(Autonomous System Border Router),負責與其他AS交換路由信息,位于主干區域。
4中路由器允許重疊,例如:
? ? 所有的邊界路由器自然就是主干的一部分。
? ? 在主干區域內的路由器,如果它并不屬于其它的區域,那它也是一臺內部路由器。
AS內部的OSPF路由選擇的一般步驟
源區域內的路由選擇:分組被路由到一個ABR
主干路由選擇:分組從源區域ABR被路由到目的區域ARB
目的區域內的路由選擇:分組從目的區域ABR被路由到目的地
Metric
OSPF協議允許管理員給路由器指定cost,被稱為metric,metric可以基于一種服務類型(如最小時延、最大吞吐量等)。
- 鏈路狀態
鏈路狀態信息包括:當前路由器與那些路由器相鄰;當前路由器到達鄰居的度量值(metric)
- 鏈路狀態路由(LInk State Routing)
Link State Routing是一個過程,在這個過程中,每個路由器與這個Area內的所有其他路由器分享"自己的鏈路狀態信息"。
- 鏈路狀態路由(Link State Routing)的三個要點
問題:
? ? 鏈路狀態協議采用Flooding可靠傳播的過程中如何防止收到重復的鏈路狀態信息?
? ? 為了傳播自己的鏈路狀態信息,每個結點會創建一個更新分組,這個分組帶有一個序號。一個結點產生一個新的更新分組,序號就加1.這樣是為了確保 舊的鏈路狀態被新的鏈路狀態代替。
鏈路狀態路由協議依靠兩種機制:
- OSPF在同步了Link State DataBase后,穩定的狀況下不會交換信息。
除非:
- 在路由器初始啟動期間,或在該路由器上的路由協議過程啟動期間;
- 每個30分鐘固定地Link State更新同步;
- 網絡有變動,送出的更新;
- 定期送出的Hello。
鏈路狀態數據庫(LSDB)特點
- 所有在同一個Area中的Router的LSDB的內容是一致的。
- 不同的Area的LSDB是各自獨立的,ABR與一個以上的Area連接,維護與其相連的每個區域的LSDB。
- 不同的Area的LSDB的SPF算法是分開進行運算的。
五種OSPF的分組類型
Hello(問候)
? ? 用來發現和維持鄰居的可達性。若40秒沒有收到問候,就認為不可達
Database Description Packet(數據庫描述)
? ? 向鄰居給出自己的鏈路狀態數據庫中的所有鏈路狀態的摘要信息。
Link State Request Packet(鏈路狀態請求)
? ? 當一個路由器關于路由信息需要知道更詳細的內容時,它可以發送一個或多個Link State Request Packet給鄰居,請求鄰居發送其鏈路狀態數據庫的特定相詳細信息。
? ? 對方會用Link State Update Packet作回答。
Link State Update Packet(鏈路狀態更新)
? ? 向鄰居發送鏈路狀態通告(洪泛全區域)
? ? LInk State Update Packet是OSPF的核心;
? ? 路由器使用這種分組將其鏈路狀態通知給鄰站
Link State Acknowledgment Packet(鏈路狀態確認)
? ? 對Link State Update Packet確認
? ? 每個路由器通過Link State Acknowledgment Packet,確認收到了鄰居發來的每個Link State Update Packet
OSPF支持四種鏈路類型
七種OSPF狀態
Down
Init
Two-Way(雙向)
ExStart(準啟動)
Exchange(交換)
Loading(加載)
Full adjacency(去毗鄰)
Down
? ? Down狀態下,OSPF進程還沒有與任何鄰居交換信息,OSPF在等待進入"Init"狀態。
Init(Initiage)
? ? 當一個接口收到第一個Hello分組時,路由器就進入Init狀態。
? ? 這意味著,路由器知道有個鄰居正在等待將關系發展到下一步(Two way基本關系,full Adjacency高級關系)
Two-Way(雙向狀態)
? ? 當一臺路由器看到自己出現在一臺鄰居路由器的發來的hello分組中,它就進入了Two way狀態。
? ? 要進一步建立毗鄰關系,不僅依賴于Hello分組,還有其他4種分組。
ExStart(準啟動)
? ? ExStart是邁向全毗鄰的第一步,兩個鄰居路由器用Hello分組來協商它們之間誰是主,誰是從,當它們之間確定了主從角色后,它們就進入了Exchange狀態,并開始發送路由信息。
Exchange(交換)
? ? 在Exchange狀態,雙發使用類型2分組Database Description Packet來描述它們的鏈路狀態數據庫,并將所學到的信息與自己現存的鏈路狀態數據庫比較。
Loading(加載)
? ? 在Loading狀態下,雙方類型3分組Link State Request Packet(用于請求有關某鏈路狀態的完整更新信息)和類型4分組Link State Update Packet(含有確切的鏈路狀態信息LSA)進行交互。LSU分組由類型5分組LSAcks確認。
Full adjacency(全毗鄰)
? ? Loading狀態結束后,路由器變成full adjacency狀態。此時,路由器與其他路由器的鏈路狀態數據庫已同步。
OSPF vs RIP
- RIP使用平面拓撲。OSPF使用層次拓撲。
- OSPF在維護路由表時比RIP使用較少的帶寬。
- RIP基于跳數選路,有可能選擇了很慢的路徑。OSPF基于和帶寬相關的度量進行選路。OSPF選擇最快的無環路徑。
- RIP簡單,使用路由器的內存和處理器資源較少。
- RIP最大跳數15,限制了網絡規模。OSPF路由信息不受物理跳數的限制。
- RIP在收到路由信息后要先更新自己的路由表,再把更新后的路由表發出去,即先本地計算再把路由信息發送出去,所以收斂速度慢
- RIP是本路由器把到達域內其它結點的度量告訴他的鄰居。OSPF是本路由器將自己的鏈路狀態信息告訴所有其他結點。
- RIP域中每個路由器只知道自己到達其他結點的度量,但不知道網路完整的拓撲信息。OSPF中每個路由器知道網絡中任意兩個相鄰結點間的度量。
OSPF特點總結
- 支持分層次的系統,定義了區域,多個區域連接到主干域,可以減少路由選擇開銷,加快收斂,限制某個區域,提高網絡性能。
- 鏈路狀態信息通過鏈路狀態公告(LSA)發布到網絡上的每臺路由器。
- 每臺路由器通過LSA信息建立一個關于網絡的拓撲數據庫
- 使用觸發的路有更新,快速反應網絡變化,減小協議本身對網絡流量的占用。
- 具有健壯性和可擴展性,支持大型網絡。
外部網關協議(域間路由選擇協議)
問題:距離向量路由選擇和鏈路狀態路由選擇都是域內路由選擇協議。它們是否適合在自治系統之間的路由選擇,為什么?
分析:當域變得很大時
? ? 可能超越距離向量路由選擇協議的距離限制。
? ? 鏈路狀態路由選擇就需要非常大的資源來計算路由表,由于使用了洪泛,會產生很大的通信量。
域間路由需要有第三種路由選擇協議,稱之為"路徑向量路由選擇"
路徑向量路由選擇----BGP
全稱:Border Gateway Protocol,邊界網關協議。目前唯一用來在AS之間的動態路由選擇協議。
- 關心可達性。而不是根據度量尋找最佳路由。因為每個AS使用的度量并不統一。
- AS之間必須考慮策略。
因此,BGP沒有依度量值進行路由計算的算法,BGP只是力求尋找一條能夠到達目的網絡,符合策略,且避免路由環路的好路由。
工作原理:
? ? 在一個AS中的BGP發言人創建一個路由表,并把它通知給相鄰AS中的BGP發言人。
? ? 以上這點和"距離向量路由選擇"中的處理方法是一樣的,但是通知的內容不同,每個發言人不是定期告訴鄰居們關于到達每個目的網絡的距離向量,而是告訴它們到達每個目的網絡的確切路徑(路徑向量)。
BGP路由信息中攜帶了所經過的全部AS序列,這樣,接收該路由信息的BGP路由器可以明確地知道此路由信息是否源于自己。
方法是:它會檢查自己的自治系統是否出現這條路徑中。如果是,就忽略此路由信息。
注意:在BGP剛運行時,BGP的鄰站是交換整個的BGP路由表。但以后只需要在發生變化時更新變化的部分。
4.5 路由器工作原理
路由器概述
- 工作在第三層(網路層)
- 具有多個輸入/輸出端口的專用計算機。
- 每個輸入/輸出端口都與一個網絡相連。路由器在網絡之間進行分組轉發。
- 幀經過輸入端口,解封為第三層分組后,路由器將其目的IP地址與路由表的條目做匹配,找到合適的輸出端口,再封裝將對應的幀發送出去。
轉發與路由選擇
轉發表對比
- 交換機的轉發表是"MAC地址-端口"表,存放的是端口與目的MAC地址之間的關系,要用幀中的MAC地址查表;
- 路由器中的轉發表示"網絡地址-端口"表,存放的是端口與目的網絡地址之間的關系,故要從IP數據報中提取IP地址,并解析出其中的網絡前綴來查表。
- 轉發是當交換結點收到分組后,根據其目的地址查找轉發表,并找出應從結點的哪一個接口將該分組發送出去。
- 路由選擇是構造路由表的過程
關系:路由表是根據一定的路由選擇算法得到的,而轉發表又是根據路由表構造出的。
控制器卡
- 執行路由選擇協議,通過與網絡中的其他路由器交換網絡拓撲和路由選擇信息,維護本地路由器轉發表。
- 根據分組中的目的IP地址,在路由轉發表中查找匹配,確定分組的輸出端口。
- 執行路由器中的網絡管理功能。
大型網絡主干路由器的路由轉發表往往有成千上萬個條目,怎樣設法減小路由表的查找時間就成為一個非常重要的問題。
解決辦法:
- ?路由轉發表存放在一個稱為二叉線索的數據結構中。
- 根據進行查找的最長前綴構造一顆二叉線索。
- 樹中的每一級對應于目的地址之中的一個比特。查找一個地址從樹根開始。
4.6 移動IP技術
概念
? ? IP結點只有通過一個配置了IP地址的接口才能通信。
? ? 問題:結點移動了位置怎么辦?
? ? 傳統方法:改變網絡連接位置時,移動的結點必須只能中斷先前正在進行的通信,重新配置接口的IP地址,才能進行下一次網絡通信。
? ? 當結點在接入網絡之間移動時,仍能維持正在進行的連接的無線技術,稱為移動IP(mobil IP)
移動網絡尋址
- 一個移動站必須有一個原始地址,即永久地址或歸屬地址(home address)。
- 假定將移動結點較為固定的居所(或移動結點初始申請入網的位置)稱為歸屬網絡(home network)
- 永久地址和歸屬網絡的關聯是不會改變的。
- 在歸屬網絡中代表移動結點執行移動管理功能的實體稱為歸屬代理(home agent)
- 在外部網絡中幫助移動結點執行移動管理功能的實體稱為外部代理(foreign agent)
- 外部代理的任務一是:要為移動站創建一個臨時地址,叫做轉交地址(care of address),其網絡前綴與被訪問網絡一致。
- 外部代理的任務二是:及時把移動站的轉交地址通知給歸屬代理。
注意:轉交地址(care of address)是供移動站、歸屬代理、以及外部代理使用的,各種應用程序都不使用轉交地址。
4.7 IPv6
IPv6數據報的首部
- 將首部長度變為固定的40字節,稱為基本首部(base header)。
- 將不必要的功能取消了,首部的字段數減少到只有8個了。
- 取消了首部的檢驗和字段,加快了路由器處理數據報的速度。
- 在基本首部的后面允許有零個或多個擴展首部。
- 所有的擴展首部和數據合起來叫做數據報的有效載荷(payload)或凈負荷
IPv6數據報的一般形式
- 將擴展首部留給路徑兩端的源站和目的站主機來處理。
- 數據報途中經過的路由器都不處理這些擴展首部(只有一個例外,即逐跳選項擴展首部)。
- 這樣就大大提高了路由器的處理效率。
在RFC 2460中定義了六種擴展首部:
- 逐跳選項
- 路由選擇
- 分片
- 鑒別
- 封裝安全有效載荷
- 目的站選項
IPv6編址
IPv6數據報的目的地址可以是以下三種基本類型地址之一:
(1)單播(unicast)單播就是傳統的點對點通信。
(2)多播(multicast)多播是一點對多點的通信。
(3)任播(anycast)這是IPv6增加的一種類型。任播的目的站是一組計算機,但數據報只交付其中的任意一個即可,通常是距離最近的一個。
注:IPv6沒有明確地廣播地址的概念。
IPv6將實現IPv6的主機和路由器均稱為結點。
IPv6地址是分配給結點上面的接口。
- 一個結點可以有多個單播地址。
- 一個結點接口的單播地址可用來唯一地標志該結點。
IPv6具有更大的地址空間,它將地址從IPv4的32位增大到了128位,使得地址空間約含有2^128個IP地址,其數量是IPv4的2^96倍。
為了便于閱讀和記憶,RFC1884規定的標準語法建議采用"冒號十六進制記法",即把IPv6地址的128位(16個字節)寫成8個16位的無符號整數,每個整數用4個十六進制數表示,這些整數之間用冒號(:)分開。其書寫格式為x:x:x:x:x:x:x:x,其中每一個x代表四位十六進制數。例如:
從IPv4向IPv6過渡
- 方法一:雙協議棧首部轉換。雙協議棧(dual stack)是指在完全過渡到IPv6之前,使一部分主機(或路由器)裝有兩個協議棧,一個IPv4和一個IPv6.
- 方法二:隧道技術。IPv6數據報進入IPv4網絡之前,將整個IPv6數據報作為數據部分,封裝為IPv4。離開IPv4網絡時,再恢復。
總結
- 上一篇: python爬取网络小说_Python爬
- 下一篇: 艺赛旗RPA验证码处理系列(三):破解极