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