ccieh3c.qzone帶你深入熟悉所不知道icmp_第1頁
ccieh3c.qzone帶你深入熟悉所不知道icmp_第2頁
ccieh3c.qzone帶你深入熟悉所不知道icmp_第3頁
ccieh3c.qzone帶你深入熟悉所不知道icmp_第4頁
ccieh3c.qzone帶你深入熟悉所不知道icmp_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

InternetControlMessagesProtocol因特網(wǎng)控制報(bào)文協(xié)議,經(jīng)常被認(rèn)為是IP層的一個(gè)組成部分。它傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。ICMP報(bào)文通常被IP層或更協(xié)議(TCP或UDP)使用。一些ICMP報(bào)文把差錯(cuò)報(bào)文返回給用戶?!靖碌刂贰? TCP/IPNANPIEH3CHW運(yùn)維方向必備企業(yè)實(shí)戰(zhàn)課程系列思科H3C路由器交換機(jī)無線 郵件訂 type為8Code為0,那么這個(gè)為ICMPEchorequest如果Type為0Code0那么就為ICMP的reply窗口,它用于這個(gè)標(biāo)識(shí)這個(gè)Request與Reply到低屬于第一個(gè)窗口,還是第二個(gè)窗口SequenceNumber:2個(gè)字節(jié):用于對(duì)應(yīng)請(qǐng)求與響應(yīng):比如,都知道一個(gè),在cisco路由器上會(huì)發(fā)送5個(gè),那么第一個(gè)RequestSequencenumber為1,如果收到了關(guān)于第一個(gè)Request的回應(yīng),那么這個(gè)reply的Sequencenumber也為1,如果丟失了,那么就沒有響應(yīng)。(cc 郵件訂 R1--------------------R2,測(cè)試R1發(fā)送兩次包,得到的抓包結(jié)可以從id=0x0001,Seq=1/256 發(fā)現(xiàn)Requset與reply都為1,第二個(gè)Requset為2,reply也為2那么展開看看Identifier的標(biāo)識(shí),都顯示為1,開始發(fā)送第二個(gè)抓包結(jié)果,Id=0x0003Identifier數(shù)據(jù)中通常Requset與reply是不同的,它們依靠這個(gè)計(jì)算出源到達(dá)目往返使用的時(shí)間。 郵件訂 ICMP另外一個(gè)重大的作用是,當(dāng)一個(gè)應(yīng)用程序出現(xiàn)某些錯(cuò)誤或者不可達(dá)的信息時(shí)候,會(huì)返回一個(gè)ICMP差錯(cuò)報(bào)文,用于告訴源這個(gè)錯(cuò)誤的信息,如果在開發(fā)程序的時(shí)候,調(diào)用了這個(gè)機(jī)制,那么當(dāng)收到這個(gè)錯(cuò)誤信息,提交給應(yīng)用程序的時(shí)候,這個(gè)程序會(huì)自動(dòng)斷開服務(wù),并且報(bào)錯(cuò),比如我 net,如果被ACL了,會(huì)顯示一個(gè)ICMP錯(cuò)誤信息,提示Destinationunreachable;gatewayorhostdown,這對(duì)故障排錯(cuò)是很有作用的。 以太 IP首 ICMP首 IP首 |8字節(jié)差錯(cuò)數(shù)據(jù)當(dāng)發(fā)送一份ICMP差錯(cuò)報(bào)文文始終包含IP的首部和產(chǎn)生ICMP差錯(cuò)報(bào)文的IP數(shù)據(jù)包的前88(TCPUDP,會(huì)標(biāo)識(shí)它的源目端口號(hào)TCP還會(huì)有序列號(hào))由于告訴源的應(yīng)用程序然后由這個(gè)應(yīng)用程序發(fā)送差錯(cuò)提示R1-----------R2------------R3R3ACLR1R1netR3,返回了一個(gè)ICMP錯(cuò)誤消息IP首部在內(nèi),就是TCPR3)3,code13第二個(gè)IP首部,標(biāo)識(shí)了這個(gè) net的發(fā)起端為誰,(這里為R1)并且標(biāo)識(shí)了因?yàn)槭裁磪f(xié)議產(chǎn)生 郵件訂 能立即停止服務(wù)并且報(bào)錯(cuò),如果,沒有這個(gè)機(jī)制,那么就會(huì)一直發(fā)送請(qǐng)求。比如TFTP,它是不會(huì)識(shí)別這種差錯(cuò)報(bào)文,所以通常在做TFTP升級(jí)IOS或者配置的時(shí)候,由于沒打開TFTP軟件,服務(wù)器發(fā)送了差錯(cuò)報(bào)文,但是TFTP識(shí)別不了,就會(huì)一直在請(qǐng)求當(dāng)中。這對(duì)排錯(cuò)也非常邊界網(wǎng)絡(luò)關(guān)閉,因?yàn)閷?duì)于外部的流量,沒必要回答這個(gè)消息,浪費(fèi)路由器資源,通過noipunreachables(cc debugipicmp的,因?yàn)槁窂接涗浿荒苡涗?個(gè)地址的存在,并且包括來回,并不適應(yīng)現(xiàn)網(wǎng)絡(luò)的環(huán)境,而Tracerouter利用TTL,來達(dá)到路徑記錄的特效Tracerouter的原理:在Tracerouter一個(gè)目的的時(shí)候,源端會(huì)發(fā)送3個(gè)大于30000端口的UDPTTL=1TTL0,而丟棄這個(gè)數(shù)據(jù)包,并返回一個(gè)ICMPTTLexceeded330000UDP文,TTL=2,當(dāng)傳達(dá)到第二個(gè)路由器的時(shí)候,把TTL置0,丟棄這個(gè)數(shù)據(jù),并返回ICMPTTLexceededUDPTTL=3,這樣直到到達(dá)目的地,當(dāng)目的主機(jī)收到以后,發(fā)現(xiàn)是給自己的數(shù)據(jù)包,發(fā)現(xiàn)自己并沒有打開關(guān)于這個(gè)UDP端的服務(wù),的ICMP消息,從而實(shí)現(xiàn)路徑記錄的功能,因?yàn)榛仫@錯(cuò)誤信息中,都包含了它們的地址。 R3R1TracerouterR326UDPTTLexceeded,而最后一個(gè)是Destination如果能從DNS解析到它們的名字,那么它們就會(huì)顯示出來經(jīng)過路由器的名字。 有些OS的實(shí)現(xiàn)可能不同,比如微軟基于TTL值來測(cè)試的(cc MTU,避免不必要的分片,特別是UDP的數(shù)據(jù),最容易造成分片,TCP由于有流量控制與MSS機(jī) 在加密的情況下,使用ESP、tunnelMode、GRE、等協(xié)議,還會(huì)產(chǎn)生新的頭部,往往會(huì)超過IPMTU1500,至于為1500, 郵件訂 上5、已經(jīng)分片的數(shù)據(jù)包有可能再次進(jìn)行分片(可能不只一次6IPIP是IP首部中有足夠的信息讓ICMP、TCPUDPICMP、TCPUDP8、IP層本身沒有超時(shí)重傳機(jī)制————它必須依靠來提供可靠性(TCP有超時(shí)和片丟失后,TCP在超時(shí)后會(huì)重新發(fā)送整個(gè)TCP2000TCP會(huì)發(fā)送重傳機(jī)制,但是重傳的是整個(gè)數(shù)據(jù)包,因?yàn)門CP是需要對(duì)整個(gè)數(shù)據(jù)包最確認(rèn),而不是分片,而且分片對(duì)于TCP和UDP是透明的。由于以太網(wǎng)EthernetII最大的數(shù)據(jù)幀是1518Bytes,除去以太網(wǎng)幀的幀頭(DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和幀尾CRC校驗(yàn)部分4Bytes(這個(gè)部份有時(shí)候大家也把它叫做FCS),那么剩下承載上層協(xié)議的地方也就是Data域最大就只能有1500Bytes,這個(gè)值就把它稱之為MTU,也就是指IPMTU。MTUIP否把上層傳下來的數(shù)據(jù)進(jìn)行分片。就好比一個(gè)盒子沒法裝下一大塊面包,需要把面包切成器和各種各樣的網(wǎng)絡(luò)媒介才能到達(dá)對(duì)端,網(wǎng)絡(luò)中不同媒介的MTU各不相同,就好比一長(zhǎng)段的水管,由不同粗細(xì)的水管組成(MTU不同)通過這段水管最大水量就要由中間最細(xì)的水管決定。比如一個(gè)數(shù)據(jù)包為1501,如下圖 郵件訂 郵件訂 UDPIP樣,如果中間經(jīng)過了PAT的設(shè)備或者,很有可能造成丟失,而分片的丟失,代表整個(gè)數(shù)據(jù)包全部丟棄,UDP沒有重傳機(jī)制。R1---------R2------------R3,這里我把R2的出接口MTU改為200,我用R1大小10001000100020IPICMP8字節(jié)的首部,那么數(shù)據(jù)部分因該是972,先看下未分片之前的抓包。Data為為什么分片的數(shù)據(jù)部分只有176呢,加上20字節(jié)的首部也并沒有達(dá)到接口的200,那是分片中有一個(gè)規(guī)定在分片的時(shí)候,除最后一片外,其他每一片中的數(shù)據(jù)部分(IP首部外的最后一個(gè)分片)必須是8字節(jié)的整數(shù)倍。所以這里為176,而不是180.TCPUDPICMP頭部,但這個(gè)并沒有顯示,直接顯示數(shù)據(jù)大小為176,實(shí)際因該是168+ICMP8字節(jié)頭部。 這里5個(gè)分片數(shù)據(jù)部分都為176,所以176*5=880,而實(shí)際數(shù)據(jù)部分是972+ICMP8字980,所以最后一個(gè)分片的數(shù)據(jù)部分是980-的中出口接口最小的MTU,因?yàn)镸TUMTUMTU在一般的路由器上都有這樣的功能。路徑MTU發(fā)現(xiàn)機(jī)制,這對(duì)實(shí)施 環(huán)境還是之前R1--------R2---------R3R2出接口MTU為200,R1的時(shí)候,把DF位置 郵件訂 MTUofnexthop:200,這對(duì)于一個(gè)的網(wǎng)絡(luò)是很有幫助的,通常我遇到的朋友在實(shí)施的時(shí)候,說流量大的時(shí)候性能非常不好,速度非常慢,而且會(huì)有時(shí)候丟包,這大部分原因是因?yàn)榉制斐傻?,的加本來就很消耗路由器的資源,加上對(duì)分片的處理,情況下,分片也會(huì)加密,而且對(duì)于PAT的穿越性很不好,所以造能下降。這個(gè)是通過debug顯示不出來的,但是cisco路由器上可以通過擴(kuò)展來實(shí)現(xiàn),而且更直R1-------R2---------R3這里我把R2MTU500R1這里的注意是DF位置位,并且使用路徑記錄,設(shè)置包大小的范圍,我這里從100開始到700,間隔100,也是每次發(fā)100大小的包測(cè)試。Rl嚇i119i于打Qer:F.3ddre352:.11.RepeatC?)l_,flt[5]:1D.?.tagr·an·si廷[1m]勹飛嘰 ir勹sec叨怎[2JExtendeclco,訂'.3.17主[n]:5Ol汀Ce.3ddr.e55國1Ite,I-face飛·,f芷,Jfser-\,ice注tDF in二F匠忒 :Dat2patter-n[(心趴D]:`立己Str·ict.Rec,Jr·d,門戶笆t忒p,\·,婦沁e[mre]:閃L,1, ufImp5[9]L亡11=15e,5tr1ct,R砍I:,rd`了1'飛.藝t31“P.verbo5eP.'J沁鈺F,rarg七l:1f51Z邑[n]:沁eep,“7r-157Z它-[6]:1沁泛ep心xsize[1.S氣4:-沁鈕plrlt勺`,,11[lj: 郵件訂 沒超過MTU之前都有路徑記錄,并且數(shù)據(jù)包通過了,當(dāng)在600的時(shí)候,由于超出了MTU的范圍,需要分片,而我又把DF置位了,它就會(huì)提示 umMTU500,就是表示到達(dá)目的的MTU最大為500.所以,特別在做實(shí)施的時(shí)候,不要認(rèn)為隧道建立了,流量能通過了就代表完善了,一定要注意MTU的范圍,這個(gè)可以通過IP頭部+其他頭部信息計(jì)算可以得出來。 郵件訂 IP對(duì)于網(wǎng)絡(luò)層的上層協(xié)議而言(以TCP/IP協(xié)議族為例),網(wǎng)絡(luò)層IP協(xié)議會(huì)檢查每個(gè)從上層協(xié)議MTU現(xiàn)中往往會(huì)對(duì)此加以注意!有些因?yàn)槟承┰蚓蜁?huì)要求我這個(gè)面包不能切片,我要完整地面包,所以會(huì)在IP數(shù)據(jù)頭里面加上一個(gè):DF(DonotFragment)。這樣當(dāng)這個(gè)IP數(shù)據(jù)包在一大這個(gè)數(shù)據(jù)包,然后返回一個(gè)錯(cuò)誤信息給發(fā)送者。這樣往往會(huì)造成某些通訊上的問題,不過幸運(yùn)的是大部分網(wǎng)絡(luò)鏈路MTU都是等于1500或者大于1500。UDPTCPTCPTCP應(yīng)用對(duì)分片有要求---不能分片(DF)。2、 郵件訂 1-1TCP注:URG等參數(shù)指的是ACKURGPSHSINFINRST在TCP報(bào)文中MSSRFC1323RFC793種,MSSkind=2kind=1kind=4、5、6、7ACK及回顯選項(xiàng),但是由于回顯選項(xiàng)已經(jīng)被時(shí)間戳選項(xiàng)取代,同時(shí),目前定義的選擇ACK選項(xiàng)仍未定論,也沒有包括在RFC1323中,所以具體代表什么含義還無定論。在實(shí)際網(wǎng)絡(luò)數(shù)據(jù)傳輸,要求MSS+20TCP包頭+20IP包頭不大于MTU。MSS在TCP報(bào)文中是可選項(xiàng),不是必選項(xiàng),換句話說,MSS是可協(xié)商項(xiàng),而且在協(xié)商過后,該選項(xiàng)內(nèi)容可以改變,也可以沒有;在協(xié)商MSS時(shí),一MSS就是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段。為了達(dá)到最佳的傳輸效能,TCP協(xié)議在建立連MSSTCPMTU(需要減去IP數(shù)據(jù)頭的大小20Bytes和TCP數(shù)據(jù)段的包頭20Bytes),所以往往MSS為1460。通訊雙方會(huì)根據(jù)雙方提供的MSS值得最小值確定為這次連接的最大MSS值。由前面的敘述可知:MTUmtu1500(它是不包含二層頭部的,加上頭部應(yīng)該為1518bytes),當(dāng)然這里說的是很常規(guī)的情況,也有些server,比如server2008,出來的就是jumboframe了,在這里常規(guī)情況。IPMTU是一個(gè)三層概念,它包含MTU的變化范圍很大(68-65535),但也不得不照顧以太網(wǎng)MTU的限制,說白了就是ip對(duì)以太網(wǎng)的妥協(xié)。MSS是TCP里面的一個(gè)概念,它是TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段,不包含包頭部分,它與IPMTU滿足如下關(guān)系:IPMTU=MSS+20bytes(IP包頭)+20bytes(TCP包頭)。當(dāng)然,如果傳輸?shù)臅r(shí)候還承載有其他協(xié)議,還要加些包頭面,簡(jiǎn)言之,mtu就是總的最后發(fā)出去的報(bào)文大小,MSSPPPoEPPP議(點(diǎn)到點(diǎn)連接協(xié)議),它包括6bytesPPPoE2bytesPPPID太網(wǎng)的MTU值為1500,所以上層PPP負(fù)載數(shù)據(jù)過1492字節(jié),也

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論