郭巍 叢曉光
【摘要】互聯(lián)網(wǎng)技術(shù)的發(fā)展對從事智能建筑的技術(shù)人員提出了更高的要求,掌握計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)刻不容緩。本文以本地和遠(yuǎn)程網(wǎng)絡(luò)為例深入探討了IP路由選擇過程。
【關(guān)鍵詞】路由選擇IP協(xié)議;ARP;ICMP;智能建筑
1、前言
據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心統(tǒng)計(jì),截至2014年6月,我國的網(wǎng)民規(guī)模達(dá)6.32億,互聯(lián)網(wǎng)普及率為46.9%。近年來隨著互聯(lián)網(wǎng)絡(luò)的迅猛發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)滲透到了人們生活的方方面面。同樣在智能建筑領(lǐng)域,終端設(shè)備正在加速向IP化方向發(fā)展,至今絕大部分常規(guī)類智能化子系統(tǒng)均實(shí)現(xiàn)了IP網(wǎng)絡(luò)化架構(gòu)。
互聯(lián)網(wǎng)技術(shù)的發(fā)展對從事智能建筑的技術(shù)人員提出了更高的要求,掌握計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的安裝與調(diào)試技術(shù)刻不容緩。鑒于IP路由選擇過程是學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的重要基礎(chǔ)內(nèi)容,本文從較深層次上對其進(jìn)行了探討,以期能達(dá)到拋磚引玉的作用。
2、本地網(wǎng)絡(luò)的通信過程
設(shè)圖1中的各個(gè)Host主機(jī)在上電前均已按圖所示設(shè)置好IP及網(wǎng)關(guān)地址,在Host_A上執(zhí)行ping 192.168.1.3命令后與Host_B的通信過程如下:
1)在Host_A主機(jī)上ICMP生成一個(gè)回應(yīng)請求,如圖5所示TYPE填入0x8。
2)ICMP使用了IP協(xié)議,將該請求交給IP,后者將ICMP請求封裝在如圖2所示的分組中,該分組源IP地址(SRC IP)192.168.1.2、目的IP地址(DES IP)為192.168.1.3,協(xié)議PRO填入0x1代表該分組的有效負(fù)載為ICMP。
3)創(chuàng)建分組后IP判斷出這是一本地請求,在LAN內(nèi)Host_A與Host_B通過MAC地址便可直接通信。
4)接下來檢查主機(jī)ARP緩存,查看Host_B的IP地址192.168.1.3是否已經(jīng)被解析為硬件地址。
如果未被解析為硬件地址,應(yīng)先把IP地址解析為硬件地址,這時(shí)Host_A將生成一個(gè)ARP請求包,如圖4所示,PROTOCOL TYPE 填入0x800代表上議為IP協(xié)議,OPCODE填入0x1代表為ARP請求包,SOURCE MAC填入0001.C947.D592,SOURCE IP填入192.168.1.2,TARGET MAC填入0000.0000.0000.0000,TARGET IP填入192.168.1.3。該ARP請求包交給數(shù)據(jù)鏈路層后被封裝在圖3所示的幀中,DEST MAC填入FFFF.FFFF.FFFF.FFFF,SOURCE MAC填入0001.C947.D592,該幀從Host_A經(jīng)Fa 0/1端口發(fā)送到SW1中,SW1交換機(jī)提取幀中的SRC MAC填入自身的CAM/MAC轉(zhuǎn)發(fā)過濾表緩存中,SW1交換機(jī)提取幀中的DEST MAC后發(fā)現(xiàn)為二層廣播地址,SW1交換機(jī)將該幀發(fā)送到所有端口,Host_B收到該幀后,提取ARP包中的TARGET IP 192.168.1.3與自身IP地址比較,地址相同則Host_B對改ARP請求做出反應(yīng),HOST_B生成一個(gè)ARP應(yīng)答包,如圖4所示,PROTOCOL TYPE填入0x800,OPCODE填入0x2代表為ARP響應(yīng)包,SOURCE MAC填入0002.4A8A.BD56,SOURCE IP填入192.168.1.3,TARGET MAC填入0001.C947.D592,TARGET IP填入192.168.1.2。該ARP請求包交給數(shù)據(jù)鏈路層后被封裝在圖3所示的幀中,DEST MAC填入0001.C947.D592,SOURCE MAC填入0001.C947.D592,該幀從Host_B經(jīng)Fa 0/2端口發(fā)送到SW1中,SW1交換機(jī)提取幀中的SRC MAC填入自身的CAM/MAC轉(zhuǎn)發(fā)過濾表緩存中,SW1交換機(jī)查詢自身CAM/MAC轉(zhuǎn)發(fā)過濾表緩存后將該幀發(fā)給HOST_A,HOST_A提取幀中ARP包信息,將之存于ARP緩存中,ARP解析過程完成。
如果已被解析為硬件地址,封裝有ICMP請求的分組將交給數(shù)據(jù)鏈路層后被封裝在圖3所示的幀中,SRC MAC填入0001.C947.D592,DEST MAC填入0002.4A8A.BD56,TYPE填入0x800,幀從Host_A經(jīng)Fa 0/1端口發(fā)送到SW1中,SW1交換機(jī)提取幀中的SRC MAC填入自身的CAM/MAC轉(zhuǎn)發(fā)過濾表緩存中(Fa 0/1端口對應(yīng)0001.C947.D592),SW1交換機(jī)提取幀中的DEST MAC后查看對應(yīng)端口為Fa 0/2,SW1交換機(jī)將該幀轉(zhuǎn)發(fā)到Fa 0/2端口。
5)HOST_B從Fa 0/2端口收到該幀后,更新自身ARP緩存,查看幀中的TYPE字段后,提取幀中的分組交給網(wǎng)絡(luò)層IP協(xié)議,IP協(xié)議檢查分組的PRO字段,因PRO字段值為0x1,IP協(xié)議將有效負(fù)載交給ICMP協(xié)議。
6)HOST_B上的ICMP判斷這個(gè)分組是ICMP的回應(yīng)應(yīng)答后,生成一個(gè)回應(yīng)請求,如圖5所示TYPE填入0x0。
7)IP協(xié)議將ICMP回應(yīng)請求封裝在如圖2所示的分組中,該分組源IP地址192.168.1.3、目的IP地址為192.168.1.2,協(xié)議PRO填入0x1。
8)封裝有ICMP請求的分組將交給數(shù)據(jù)鏈路層后被封裝在圖3所示的幀中,SRC MAC填入0002.4A8A.BD56,DEST MAC填入0001.C947.D592,該幀經(jīng)SW1交換機(jī)轉(zhuǎn)發(fā)給HOST_A,HOST_A提取ICMP包內(nèi)容后,本次本地網(wǎng)絡(luò)通信完成。
3、遠(yuǎn)程網(wǎng)絡(luò)通信過程
設(shè)圖1中路由器Fa 0/0端口的IP地址為192.168.1.1/24,MAC地址為00E0.B05D.10B3;路由器Fa 1/0端口的IP地址為192.168.2.1/24,MAC地址為0060.47D1.E5DD。在HOST_A執(zhí)行ping 192.168.2.2命令后與HOST_C的通信過程如下:
1)在Host_A主機(jī)上ICMP生成一個(gè)回應(yīng)請求,如圖5所示TYPE填入0x8。
2)該ICMP請求封裝在如圖2所示的分組中,該分組源IP地址192.168.1.2、目的IP地址為192.168.2.2,協(xié)議PRO填入0x1代表該分組的有效負(fù)載為ICMP。
3)創(chuàng)建分組后IP判斷出這是一遠(yuǎn)程請求,因此必須將該分組發(fā)送到默認(rèn)網(wǎng)關(guān),以便它能夠被路由到遠(yuǎn)程網(wǎng)絡(luò)。對windows注冊表進(jìn)行分析知默認(rèn)網(wǎng)關(guān)為192.168.1.1。
4)封裝有ICMP請求的分組交給數(shù)據(jù)鏈路層后被封裝在如圖3所示的幀中,SRC MAC填入0001.C947.D592,DEST MAC填入經(jīng)ARP解析到的網(wǎng)關(guān)MAC地址00E0.B05D.10B3。
5)該幀從HOST_A開始,經(jīng)SW1交換機(jī)從路由器的F 0/0端口進(jìn)入路由器內(nèi)部,過程參見本地網(wǎng)絡(luò)通信過程。
6)路由器從該幀中提取封裝有ICMP包的分組,IP接收該分組并檢查其目標(biāo)地址(DST IP),如果在路由選擇表中找到了前往目標(biāo)地址192.168.2.2的路由,路由器將該分組交換到指定的出站端口緩存內(nèi),這里是Fa 1/0端口。
7)該分組在路由器的出站端口Fa 0/1重新被封裝成如圖3所示的幀中,SRC MAC填入0060.47D1.E5DD,DEST MAC填入經(jīng)ARP解析到的HOST_C的MAC地址0001.C793.1B2C,TYPE填入0x800。
8)該經(jīng)重新封裝的幀通過SW2交換機(jī)轉(zhuǎn)發(fā)給HOST_C主機(jī)。
9)從幀中的提取分組交給IP協(xié)議,IP協(xié)議檢查PRO字段后把有效負(fù)載交給ICMP協(xié)議。
10)ICMP判斷這個(gè)分組是ICMP回應(yīng)應(yīng)答后,生成一個(gè)回應(yīng)請求,如圖5所示TYPE填入0x0。
11)該ICMP請求封裝在如圖2所示的分組中,該分組源IP地址192.168.2.2、目的IP地址為192.168.1.2。
12)創(chuàng)建分組后IP判斷出這是一遠(yuǎn)程請求,因此必須將該分組發(fā)送到默認(rèn)網(wǎng)關(guān)192.168.2.1,封裝有ICMP請求的分組交給數(shù)據(jù)鏈路層后被封裝在如圖3所示的幀中,SRC MAC填入0001.C793.1B2C,DEST MAC填入經(jīng)ARP解析到的網(wǎng)關(guān)MAC地址0060.47D1.E5DD。
13)該幀從HOST_C開始,經(jīng)SW2交換機(jī)從路由器的F 1/0端口進(jìn)入路由器內(nèi)部,過程參見本地網(wǎng)絡(luò)通信過程。
14)路由器從該幀中提取封裝有ICMP包的分組,IP接收該分組并檢查其目標(biāo)地址(DST IP),在路由選擇表中找到了前往目標(biāo)地址192.168.1.2的路由后,路由器將該分組交換到指定的出站端口緩存內(nèi),這里是Fa 0/0端口。
15)該分組在路由器的出站端口Fa 0/0重新被封裝成如圖3所示的幀中,SRC MAC填入00E0.B05D.10B3,DEST MAC填入經(jīng)ARP解析到的HOST_A的MAC地址0001.C947.D592,TYPE填入0x800。
16)該經(jīng)重新封裝的幀通過SW2交換機(jī)轉(zhuǎn)發(fā)給HOST_A主機(jī)。
17)從幀中的提取分組交給IP協(xié)議,IP協(xié)議檢查PRO字段后把有效負(fù)載交給ICMP協(xié)議。
18)ICMP判斷這個(gè)分組為回應(yīng)應(yīng)答后,本次遠(yuǎn)程網(wǎng)絡(luò)通信過程完成。
4、結(jié)束語
以上IP路由選擇過程理解兩點(diǎn)很重要。MAC地址是數(shù)據(jù)鏈路層物理地址,該地址只能用于LAN內(nèi)部通信,而不能用于穿越路由器進(jìn)行通信;傳統(tǒng)交換機(jī)為二層設(shè)備,相當(dāng)于數(shù)據(jù)鏈路層“路由器”,根據(jù)MAC地址對幀進(jìn)行轉(zhuǎn)發(fā)。路由器為三層設(shè)備,根據(jù)IP地址進(jìn)行轉(zhuǎn)發(fā),幀經(jīng)過路由器后幀的源地址和目的地址均發(fā)生了變化,但封裝在幀中分組的IP源地址和目的地址沒有發(fā)生變化。
參考文獻(xiàn)
[1]《中國互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》(2014年7月)中國互聯(lián)網(wǎng)信息中心.
[2]《CCNA學(xué)習(xí)指南》Todd Lammle著袁國忠譯.
[3]《PacketTracer6 Tutorials》.