6.因特網(wǎng)報(bào)文控制協(xié)議
a、因特網(wǎng)報(bào)文控制協(xié)議(ICMP--Internet Control Protocol)產(chǎn)生的原因:
IP協(xié)議盡力傳遞并不表示數(shù)據(jù)報(bào)一定能夠投遞到目的地,IP協(xié)議本身沒(méi)有內(nèi)在的機(jī)制獲取差錯(cuò)信息并進(jìn)行相應(yīng)的控制,而基于網(wǎng)絡(luò)的差錯(cuò)可能性很多,如:通信線路出錯(cuò)、網(wǎng)關(guān)或主機(jī)出錯(cuò)、信宿主機(jī)不可到達(dá)、數(shù)據(jù)報(bào)生存期(TTL時(shí)間)到、系統(tǒng)擁塞等等。為了能夠反映數(shù)據(jù)報(bào)的投遞,因特網(wǎng)中增加了ICMP協(xié)議。
b、ICMP協(xié)議的作用:
主要用于網(wǎng)絡(luò)設(shè)備和結(jié)點(diǎn)之間的控制和差錯(cuò)報(bào)告報(bào)文的傳輸。
從因特網(wǎng)的角度看,因特網(wǎng)是由收發(fā)數(shù)據(jù)報(bào)的主機(jī)和中轉(zhuǎn)數(shù)據(jù)報(bào)的路由器組成。鑒于IP網(wǎng)絡(luò)本身的不可靠性,ICMP的目的僅僅是向源發(fā)主機(jī)告知網(wǎng)絡(luò)環(huán)境中出現(xiàn)的問(wèn)題。ICMP主要支持路由器將數(shù)據(jù)報(bào)傳輸?shù)慕Y(jié)果信息反饋回源發(fā)主機(jī)。
c.ICMP 報(bào)文的傳輸
當(dāng)路由器發(fā)現(xiàn)某份IP數(shù)據(jù)報(bào)因?yàn)槟撤N原因無(wú)法繼續(xù)轉(zhuǎn)發(fā)和投遞時(shí),則形成ICMP報(bào)文,并從該IP數(shù)據(jù)報(bào)中截取源發(fā)主機(jī)的IP地址,形成新的IP數(shù)據(jù)報(bào),轉(zhuǎn)發(fā)給源發(fā)主機(jī),以報(bào)告差錯(cuò)的發(fā)生及其原因。
攜帶ICMP報(bào)文的IP數(shù)據(jù)報(bào)在反饋傳輸過(guò)程中不具有任何優(yōu)先級(jí),與正常的IP數(shù)據(jù)報(bào)一樣進(jìn)行轉(zhuǎn)發(fā)。如果攜帶ICMP報(bào)文的IP數(shù)據(jù)報(bào)在傳輸過(guò)程中出現(xiàn)故障,轉(zhuǎn)發(fā)該IP數(shù)據(jù)報(bào)的路由器將不再產(chǎn)生任何新的差錯(cuò)報(bào)文。下圖示意了ICMP報(bào)文的形成和還回。
d.ICMP報(bào)文的類型
ICMP協(xié)議主要支持IP數(shù)據(jù)報(bào)的傳輸差錯(cuò)結(jié)果,ICMP仍然利用IP協(xié)議傳遞ICMP報(bào)文。產(chǎn)生ICMP報(bào)文的路由器負(fù)責(zé)將其封裝到新的IP數(shù)據(jù)報(bào)中,并提交因特網(wǎng)返回至原IP數(shù)據(jù)報(bào)的源發(fā)主機(jī)。ICMP報(bào)文分為ICMP報(bào)文頭部和ICMP報(bào)文體部?jī)蓚(gè)部分。
類型字段:表示差錯(cuò)的類型;
代碼字段:表示差錯(cuò)的原因;
校驗(yàn)和:表示整個(gè)ICMP報(bào)文的校驗(yàn)結(jié)果。
ICMP數(shù)據(jù):差錯(cuò)原因及說(shuō)明。
ICMP報(bào)文類型主要有:
(1)目的地不可達(dá)報(bào)文 (2)源抑制(用于擁塞控制)
(3)重定向 (4)超時(shí)(TTL)報(bào)告
(5)參數(shù)錯(cuò) (6)回應(yīng)請(qǐng)求
(7)回應(yīng)應(yīng)答 (8)時(shí)戳請(qǐng)求
(9)時(shí)戳應(yīng)答
ICMP應(yīng)用
目前,已經(jīng)利用ICMP報(bào)文開(kāi)發(fā)了許多網(wǎng)絡(luò)診斷工具軟件。
(1)Ping軟件:
借助于ICMP回應(yīng)請(qǐng)求/應(yīng)答報(bào)文測(cè)試宿主機(jī)的可達(dá)性。
(2)跟蹤IP數(shù)據(jù)報(bào)發(fā)送的路由: 利用路由器對(duì)IP數(shù)據(jù)報(bào)中的生存期值作減1處理,一旦生存期值為0 就丟棄該IP數(shù)據(jù)報(bào),并返回主機(jī)不可達(dá)的ICMP報(bào)文的特點(diǎn)。源發(fā)端針對(duì)指定的宿結(jié)點(diǎn),形成一系列收方結(jié)點(diǎn)無(wú)法處理的IP數(shù)據(jù)報(bào)。這些數(shù)據(jù)報(bào)除生存期值遞增外,其它內(nèi)容完全一樣。這些數(shù)據(jù)報(bào)根據(jù)生存期的取值逐個(gè)發(fā)往網(wǎng)絡(luò),第一個(gè)數(shù)據(jù)報(bào)的生存期為1;路由器對(duì)生存期值減一后,丟棄該IP數(shù)據(jù)報(bào),并返回主機(jī)不可達(dá)ICMP報(bào)文;源發(fā)端繼續(xù)發(fā)送生存期為2,3,4,…的數(shù)據(jù)報(bào),由于主機(jī)和路由器中對(duì)路由信息的緩存能力,IP數(shù)據(jù)報(bào)將沿著原路徑向宿結(jié)點(diǎn)前進(jìn)。如果整個(gè)路徑中包括了N個(gè)路由器,則通過(guò)返回N個(gè)主機(jī)不可達(dá)報(bào)文和一個(gè)端口不可達(dá)報(bào)文的信息,了解IP數(shù)據(jù)報(bào)的整個(gè)路由。
(3)測(cè)試整個(gè)路徑的最大MTU:
利用因數(shù)據(jù)報(bào)不允許分段,而轉(zhuǎn)發(fā)網(wǎng)絡(luò)的MTU(最大傳輸單元)較小時(shí)會(huì)產(chǎn)生主機(jī)不可達(dá)報(bào)文的特點(diǎn)。這種測(cè)試對(duì)于源宿端具有頻繁的大量數(shù)據(jù)傳輸時(shí),具有較高的實(shí)用價(jià)值。因?yàn)閿?shù)據(jù)報(bào)長(zhǎng)度越小,數(shù)據(jù)報(bào)傳輸?shù)挠行试降?而傳輸較大的數(shù)據(jù)報(bào)時(shí),路由器勢(shì)必進(jìn)行分段,既損耗了路由器的資源,更可能造成因某個(gè)數(shù)據(jù)分段丟失,而導(dǎo)致宿主機(jī)在組裝分段數(shù)據(jù)報(bào)時(shí)超時(shí),丟棄整個(gè)數(shù)據(jù)報(bào),造成帶寬的浪費(fèi)。測(cè)試路徑MTU的方法類似路由跟蹤。源發(fā)端發(fā)送一定長(zhǎng)度、且不允許分段的IP數(shù)據(jù)報(bào),并根據(jù)路由器返回的主機(jī)不可達(dá)ICMP報(bào)文,逐步縮短測(cè)試IP數(shù)據(jù)報(bào)的長(zhǎng)度。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |