(一)網(wǎng)絡(luò)層的功能
1.異構(gòu)網(wǎng)絡(luò)互聯(lián)
2.路由與轉(zhuǎn)發(fā):
? 路由器兩個(gè)主要功能:路由選擇(確定哪一條路徑) 分組轉(zhuǎn)發(fā):(當(dāng)一個(gè)分組到達(dá)時(shí)采取的路徑)
3.擁塞控制:
? 區(qū)分擁塞控制和流量控制:
? 流量控制要做的是抑制發(fā)送端發(fā)送數(shù)據(jù)的速率
? 擁塞控制必須確保通信子網(wǎng)能夠傳送帶傳送的數(shù)據(jù),是一個(gè)全局性的問題。有開環(huán)控制(靜態(tài))和閉環(huán)控制(動(dòng)態(tài))兩種。
(二)路由選擇
1.靜態(tài)路由與動(dòng)態(tài)路由
? 靜態(tài)路由算法(?非自適應(yīng)路由算法)管理員手工配置的路由信息。
? 動(dòng)態(tài)路由算法(自適應(yīng)路由算法)路由表項(xiàng)是通過相互連接的路由器之間彼此交換信息。?
? 常用路由算法:距離-向量路由算法(RIP協(xié)議), 鏈路狀態(tài)路由算法(QSPF協(xié)議)
2.距離-向量路由算法(RIP):
? 應(yīng)用層協(xié)議、使用UDP傳送數(shù)據(jù),一個(gè)RIP報(bào)文最多包括25個(gè)路由,超過則再用一個(gè)RIP報(bào)文傳送。RIP允許一條路徑最多包含15個(gè)路由器,距離為16則不可達(dá)。
? 分散性:路由器只掌握物理相連的鄰居及其鏈路費(fèi)用。
? 路由選擇表包含: 每條路徑的目的地(另一個(gè)結(jié)點(diǎn)),路徑的代價(jià)(距離)
? 特點(diǎn):好消息傳得快,壞消息傳得慢(路由環(huán)路問題)
3.鏈路狀態(tài)路由算法(OSPF):
? 網(wǎng)絡(luò)層協(xié)議,使用分布式的鏈路狀態(tài)協(xié)議,用IP數(shù)據(jù)報(bào)傳送
? 全局性:所有路由器掌握完整的網(wǎng)絡(luò)拓?fù)浜玩溌焚M(fèi)用信息。
? 特點(diǎn):(3條)
? 1)向本自治系統(tǒng)中所有路由器發(fā)送信息,這里使用的方法是泛洪法(路由器通過所有端口向所有相鄰的路由器發(fā)送信息。而每個(gè)相鄰路由器又將此信息發(fā)往其素偶相鄰路由器。
? 2)發(fā)送的信息是與路由器相鄰的所有路由器的鏈路狀態(tài)。
? 3)只有當(dāng)鏈路狀態(tài)發(fā)送變化時(shí),路由器才向所有路由器發(fā)送此信息。
兩者比較:RIP 每個(gè)結(jié)點(diǎn)僅與直接鄰居交談,但提供從自己網(wǎng)絡(luò)所有其他結(jié)點(diǎn)的最低費(fèi)用。OSPF中,每個(gè)結(jié)點(diǎn)通過廣播的方式與所有其他結(jié)點(diǎn)交談,但僅告訴與他直接相連的鏈路的費(fèi)用。RIP可能遇到路由環(huán)路等問題
4.層次路由
? 自治系統(tǒng)(AS)
? 1)AS內(nèi)部使用內(nèi)部網(wǎng)關(guān)協(xié)議(IGP),城內(nèi)路由選擇,具體有RIP和OSPF
? 2)AS之間使用的外部網(wǎng)關(guān)協(xié)議(EGP),域間路由選擇,具體BGP-4
使用層次路由的時(shí)候,每個(gè)路由器都知道在本區(qū)域內(nèi)如何把分組路由到目的地的細(xì)節(jié),但不知道其他區(qū)域的內(nèi)部結(jié)構(gòu)。
(三)IPv4
1.IPv4分組的格式
? 由首部和數(shù)據(jù)部分組成,首部前一部分固定20B,后面是一些可選字段,長(zhǎng)度可變
? 一種八片首飾:
? ? ? 首部長(zhǎng)度,以4B為單位
? ? ? 總長(zhǎng)度,首部和數(shù)據(jù)之和的長(zhǎng)度,單位為1B
? ? ? 片偏移,較長(zhǎng)分組在分片之后,某片在原分組中的相對(duì)位置,單位8B(每個(gè)分片的長(zhǎng)度一定是8B的整數(shù)倍)
? 最大傳送單元(MTU):以太網(wǎng)的MTU為1500B,而許多廣域網(wǎng)的MTU不超過578B
? 通過檢查數(shù)據(jù)報(bào)的標(biāo)識(shí)號(hào)來確定哪些數(shù)據(jù)報(bào)屬于同一個(gè)原始數(shù)據(jù)報(bào)的片。IP首部中的標(biāo)志位有3比特,但只有后兩位有意義。MF(More Fragment)和 DF(Don’t Fragment)
? 網(wǎng)絡(luò)層轉(zhuǎn)發(fā)分組的流程:
? 1)從數(shù)據(jù)報(bào)的首部提取目的主機(jī)的IP地址D,得出目的網(wǎng)絡(luò)地址N。
? 2)若網(wǎng)絡(luò)N與此路由器直接相連,則把數(shù)據(jù)報(bào)直接交付給目的主機(jī)D,這稱為路由器的直接交付;否則是間接交付,執(zhí)行3
? 3)若路由表中有目的地址為D的特定主機(jī)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的下一跳路由器;否則執(zhí)行4
? 4)若路由表中有到達(dá)網(wǎng)絡(luò)N的路由,則把數(shù)據(jù)報(bào)傳送給路由表指明的下一跳路由器;否則,執(zhí)行5
? 5)若路由表中有一默認(rèn)路由,則把數(shù)據(jù)報(bào)傳送給路由表中所指明的默認(rèn)路由器;否則,執(zhí)行6
? 6)報(bào)告轉(zhuǎn)發(fā)分組出錯(cuò)
2.IPv4地址與NAT
? IP地址被分為5類:ABCD(E)
? 不用做主機(jī)的IP地址:
? ? 主機(jī)號(hào)全為0,表示本網(wǎng)絡(luò)本身
? ? 主機(jī)號(hào)全為1,表示網(wǎng)絡(luò)的廣播地址(直接廣播地址)
? ? 127.x.x.x保留為換回自檢地址,表示任意地址本身
? ? 32位全0,表示本網(wǎng)絡(luò)上的本主機(jī)
? ? 32位全1,表示整個(gè)TCP/IP網(wǎng)絡(luò)的廣播地址,受限廣播地址
? 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT):通過將專用網(wǎng)絡(luò)地址轉(zhuǎn)換為公用地址,從而對(duì)外隱藏內(nèi)部管理的IP地址,節(jié)省了IP地址的消耗,隱藏了內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)。私有IP地址只用于LAN(局域網(wǎng))
? 私有 IP地址網(wǎng)段:
? ? A類:1個(gè)A類網(wǎng)段,即10.0.0.0~10.255.255.255
? ? B類:16個(gè)B類網(wǎng)段,即172.16.0.0~172.31.255.255
? ? C類:256個(gè)C類網(wǎng)段,即192.168.0.0~192.168.255.255
NAT路由器至少有一個(gè)有效的外部全球地址。使用本地地址的主機(jī)與外界通信的時(shí)候,NAT路由器使用NAT轉(zhuǎn)換表將本地地址轉(zhuǎn)換為全球地址,或者將全球地址轉(zhuǎn)換為本地地址。
NAT轉(zhuǎn)換表存放著{本地IP地址:端口}到{全球IP地址:端口}的映射
3.子網(wǎng)劃分與子網(wǎng)掩碼、CIDR
? 子網(wǎng)劃分純屬于一個(gè)單位內(nèi)部的事情,單位對(duì)外仍然表現(xiàn)為沒有劃分子網(wǎng)的網(wǎng)絡(luò)。
? 從主機(jī)號(hào)借用若然比特作為子網(wǎng)號(hào),當(dāng)然主機(jī)號(hào)也就相應(yīng)的減少了相同的比特。地址結(jié)構(gòu)如下:IP地址={<網(wǎng)絡(luò)號(hào)>, <子網(wǎng)號(hào)>, <主機(jī)號(hào)>}
? 子網(wǎng)掩碼是一個(gè)與IP地址相對(duì)應(yīng)的、長(zhǎng)32bit的二進(jìn)制串,它由一串1和一串0組成,其中1對(duì)應(yīng)于IP地址中的網(wǎng)絡(luò)號(hào)及子網(wǎng)號(hào),而0對(duì)應(yīng)于主機(jī)號(hào),而0對(duì)應(yīng)于主機(jī)號(hào)。
? 計(jì)算機(jī)只需將IP地址和其對(duì)應(yīng)的子網(wǎng)掩碼逐位“與”,就可以得到相應(yīng)子網(wǎng)的網(wǎng)絡(luò)地址。
? 路由器的路由表中,所包含信息的主要內(nèi)容必須有 目的網(wǎng)絡(luò)地址、子網(wǎng)掩碼、下一跳地址。
? 無分類域間路由選擇(CIDR):
? ? 將網(wǎng)絡(luò)前綴都相同的連續(xù)IP地址組成“CIDR地址塊”。一個(gè)CIDR地址塊可以表示很多地址,這種地址的聚合稱為路由聚合,或稱為構(gòu)成超網(wǎng)。路由聚合使得路由表中的一個(gè)項(xiàng)目可以表示多個(gè)原來傳統(tǒng)分類地址的路由,有利于減少路由器之間的路由選擇信息的交換,從而提高網(wǎng)絡(luò)性能。
? ? CIDR的優(yōu)點(diǎn)在于網(wǎng)絡(luò)前綴長(zhǎng)度的靈活性。由于上層網(wǎng)絡(luò)的前綴長(zhǎng)度較短,因此相應(yīng)的路由表的項(xiàng)目較少。而內(nèi)部又可以采用延長(zhǎng)網(wǎng)絡(luò)前綴的方法來靈活地劃分子網(wǎng)。
? ? 最長(zhǎng)前綴匹配(最佳匹配):使用CIDR時(shí),在查找路由表時(shí)可能會(huì)得到不止一個(gè)匹配結(jié)果。此時(shí),應(yīng)當(dāng)從匹配結(jié)果中選擇具有最長(zhǎng)網(wǎng)絡(luò)前綴的路由,因?yàn)榫W(wǎng)絡(luò)前綴越長(zhǎng),其地址塊就越小,因而路由就越具體。
4.ARP、DHCP、ICMP
? IP地址與硬件地址:
? ? 雖然在IP數(shù)據(jù)報(bào)首部中有完整的源IP地址和目的IP地址,但路由器只根據(jù)目的IP地址的網(wǎng)絡(luò)號(hào)進(jìn)行路由選擇。
? ? 在局域網(wǎng)的數(shù)據(jù)鏈路層,只能看見MAC幀。而通過路由器轉(zhuǎn)發(fā)IP分組時(shí),此IP分組在每個(gè)網(wǎng)絡(luò)中都被路由器解封裝和重新封裝。因此IP數(shù)據(jù)報(bào)在被路由器轉(zhuǎn)發(fā)時(shí),其數(shù)據(jù)鏈路層封裝所使用的MAC地址是不斷改變的。
? ? 路由器由于互聯(lián)多個(gè)網(wǎng)絡(luò),因此它不僅有多個(gè)IP地址,也有多個(gè)硬件地址。
? 地址解析地址(ARP)
? ? 無論網(wǎng)絡(luò)層使用什么協(xié)議,在實(shí)際網(wǎng)絡(luò)的鏈路層的鏈路上傳送數(shù)據(jù)幀的是歐,最終必須使用硬件地址。所以需要一種方法來完成IP地址到MAC地址的映射,這就是地址解析協(xié)議(ARP)
? 每臺(tái)主機(jī)都設(shè)有一個(gè)ARP高速緩存,用來存放本局域網(wǎng)上各主機(jī)和路由器的IP地址到MAC地址的映射表,稱為ARP表。
? ? ARP的4種典型情況:
? ? ? 1)發(fā)送方是主機(jī)時(shí),要把IP數(shù)據(jù)報(bào)發(fā)送到本網(wǎng)絡(luò)上的另一臺(tái)主機(jī)。這時(shí)用ARP找到目的主機(jī)的硬件地址。
? ? ? 2)發(fā)送方是主機(jī)時(shí),要把IP數(shù)據(jù)報(bào)發(fā)送到另一個(gè)網(wǎng)絡(luò)上的一臺(tái)主機(jī)。這時(shí)用ARP找到本網(wǎng)絡(luò)上的一個(gè)路由器的硬件地址,剩下的工作由這個(gè)路由器來完成。
? ? ? 3)發(fā)送方是路由器時(shí),要把IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到本網(wǎng)絡(luò)上的一臺(tái)主機(jī)。這時(shí)用ARP找到目的主機(jī)的硬件地址。
? ? ? 4)發(fā)送方是路由器時(shí),要把IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)上的一臺(tái)主機(jī),這時(shí)用ARP找到本網(wǎng)絡(luò)上的一個(gè)路由器的硬件地址,剩下的工作由找到的這個(gè)路由器完成。
動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)應(yīng)用層協(xié)議,基于UDP協(xié)議:
? 動(dòng)態(tài)主機(jī)配置協(xié)議,常用?于給主機(jī)動(dòng)態(tài)地分配IP地址,它提供了即插即用的聯(lián)網(wǎng)機(jī)制。這種機(jī)制允許一臺(tái)計(jì)算機(jī)加入新的網(wǎng)絡(luò)和獲取IP地址而不用手工參與。
? DHCP的工作原理:使用客戶/服務(wù)器方式。需要IP地址的主機(jī) 在啟動(dòng)時(shí)候就向DHCP服務(wù)器廣播發(fā)送發(fā)現(xiàn)報(bào)文,此時(shí)該主機(jī)就成為DHCP客戶。本地網(wǎng)絡(luò)上所有主機(jī)都能收到此廣播報(bào)文,但只有DHCP服務(wù)器才能回答此廣播報(bào)文。DHCP服務(wù)器的回答報(bào)文稱為提供報(bào)文。
? DHCP服務(wù)器聚合DHCP客戶端的交換過程:
? ? 1)DHCP客戶機(jī)廣播“DHCP發(fā)現(xiàn)”消息
? ? 2)DHCP服務(wù)器收到后,向網(wǎng)絡(luò)中廣播“DHCP提供”消息
? ? 3)DHCP客戶機(jī)收到提供消息后,如果接受,則通過廣播“DHCP請(qǐng)求”消息向DHCP服務(wù)器請(qǐng)求提供IP地址。
? ? 4)DHCP服務(wù)器廣播“DHCP確認(rèn)”消息,將IP地址分配給DHCP客戶機(jī)。
? DHCP服務(wù)器提供的IP地址是臨時(shí)的,DHCP客戶只能在一段有限的時(shí)間內(nèi)(租用期)使用這個(gè)分配到的IP地址。
? 特點(diǎn):允許地址重用,支持移動(dòng)用戶加入網(wǎng)絡(luò),支持再用地址續(xù)租。
網(wǎng)際控制報(bào)文協(xié)議(ICMP)IP層協(xié)議
? 為了提高IP數(shù)據(jù)報(bào)交付成果的機(jī)會(huì),在網(wǎng)絡(luò)層使用網(wǎng)際控制報(bào)文協(xié)議(ICMP)來讓主機(jī)或路由器報(bào)告差錯(cuò)和異常情況。共5種情況:
? ? 1)終點(diǎn)不可達(dá)(不可交付)
? ? 2)源點(diǎn)抑制(因擁塞丟失數(shù)據(jù))
? ? 3)時(shí)間超過(當(dāng)路由器收到TTL=0的數(shù)據(jù)報(bào),要丟棄且向源點(diǎn)發(fā)送時(shí)間超過報(bào)文)
? ? 4)參數(shù)問題(數(shù)據(jù)報(bào)首部中有的字段的值不正確)
? ? 5)改變路由(重定向) 值得更好的路由
? 不應(yīng)發(fā)送ICMP差錯(cuò)報(bào)文的幾種情況:
? ? 1)對(duì)ICMP差錯(cuò)報(bào)告報(bào)文不再發(fā)送
? ? 2)對(duì)第一個(gè)分片的數(shù)據(jù)報(bào)片的所有后續(xù)數(shù)據(jù)報(bào)不再發(fā)送
? ? 3)對(duì)具有組播地址的數(shù)據(jù)報(bào)不再發(fā)送
? ? 4)對(duì)具有特殊地址(如127.0.0.0或0.0.0.0)的數(shù)據(jù)報(bào)不發(fā)送
? ICMP詢問報(bào)文有4種類型(常用前兩種):回送請(qǐng)求和回答報(bào)文(如PING)、時(shí)間戳請(qǐng)求和回答報(bào)文、地址掩碼請(qǐng)求和回答報(bào)文、路由器詢問和通告報(bào)文。? Ping工作在應(yīng)用層,它直接使用網(wǎng)絡(luò)層的ICMP,而未使用傳輸?shù)腡CP或UDP。Traceroute /Tracert 工作在網(wǎng)絡(luò)層。
? ? ?