日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

使用IP選項(xiàng)實(shí)現(xiàn)Traceroute程序

【使用IP選項(xiàng)實(shí)現(xiàn)Traceroute程序】1.現(xiàn)今的Traceroute
現(xiàn)在的traceroute的實(shí)現(xiàn)是這樣的:主機(jī)先發(fā)出一個(gè)TTL(TimeToLive , 生存時(shí)間)為1的數(shù)據(jù)包 。接著數(shù)據(jù)包經(jīng)過(guò)第一跳之后到達(dá)一個(gè)路由器 , 此時(shí)路由器將發(fā)回一個(gè)ICMP錯(cuò)誤消息[1] , 以說(shuō)明這個(gè)數(shù)據(jù)包不能繼續(xù)向前傳送 , 因?yàn)槠銽TL已經(jīng)過(guò)期了 。然后traceroute程序又發(fā)出一個(gè)TTL為2的數(shù)據(jù)包 , 這個(gè)數(shù)據(jù)包經(jīng)過(guò)兩次跳躍后其TTL過(guò)期 。這個(gè)過(guò)程不斷重復(fù) , 直到數(shù)據(jù)包到達(dá)目的主機(jī) 。此過(guò)程的目的就是要記錄下所有發(fā)出ICMP超時(shí)消息的消息源 , 據(jù)此就可以確定出數(shù)據(jù)包到達(dá)目的主機(jī)的路徑了 。
這個(gè)算法的優(yōu)點(diǎn)是所有的路由器都能夠發(fā)出TTL超時(shí)消息 , 因而不需要非凡的代碼以支持此算法 。而其缺點(diǎn)在于:發(fā)出的數(shù)據(jù)包的數(shù)目(2n個(gè) , 其中n是數(shù)據(jù)包跳躍次數(shù))(譯注:可能包含了路由器發(fā)送的超時(shí)消息) , 花費(fèi)在用連續(xù)的數(shù)據(jù)包記錄較近路由的時(shí)間 , 以及路徑在這個(gè)檢測(cè)過(guò)程中可能會(huì)發(fā)生改變這個(gè)事實(shí) 。同時(shí) , 這個(gè)算法并不能跟蹤檢測(cè)數(shù)據(jù)包返回時(shí)的路徑 , 而這個(gè)路徑很可能與外出路徑不同 。
2.將來(lái)的Traceroute
這個(gè)被提議的traceroute實(shí)現(xiàn)將使用一種不同的算法來(lái)達(dá)到相同的目的 , 即得到到達(dá)目的主機(jī)的路徑 。由于新的traceroute實(shí)現(xiàn)采用了一種專(zhuān)用的ICMP消息 , 所以用戶(hù)還可以得到一些以前(使用老的traceroute)得不到的額外信息 。
2.1基本算法
這里 , 我們將定義一種新的IP選項(xiàng)——Traceroute選項(xiàng) 。若此選項(xiàng)存在在一個(gè)ICMP應(yīng)答(或任何其他)數(shù)據(jù)包中 , 在下文中稱(chēng)之為“外出數(shù)據(jù)包”(OutboundPacket) , 則會(huì)使路由器給這個(gè)外出數(shù)據(jù)包的源端發(fā)出一個(gè)新定義的ICMPTraceroute消息 。這樣 , 通過(guò)n 1個(gè)數(shù)據(jù)包(而不是2n個(gè)) , 這個(gè)外出數(shù)據(jù)包所經(jīng)過(guò)的路徑就可以被其發(fā)送端記錄下來(lái) 。路徑的改變并不影響這個(gè)算法的有效性 , 同時(shí) , 該算法還答應(yīng)對(duì)外出數(shù)據(jù)的應(yīng)答 , 下文稱(chēng)之為“返回?cái)?shù)據(jù)包”(ReturnPacket) , 進(jìn)行跟蹤 , 只要外出數(shù)據(jù)包的目的主機(jī)在發(fā)送應(yīng)答數(shù)據(jù)時(shí)保留原來(lái)的IPTraceroute選項(xiàng)就可以了 。
這個(gè)方法的不足之處在于必須把traceroute功能加到路由器中去 。而好處是這種機(jī)制能夠很輕易的加入到新版本的IP協(xié)議中去 。
2.2IPTraceroute選項(xiàng)格式
(譯注:為方便對(duì)比 , 我將英文和中文的格式都列了出來(lái) , 下同)
F(復(fù)制到分片標(biāo)志 , copytofragments):
0(不復(fù)制到分片)
C(類(lèi)別 , class):
2(調(diào)試&測(cè)量)
數(shù)字(Number):
18(F C Number=82)
ID標(biāo)識(shí)號(hào)(IDNumber):
這是由外出數(shù)據(jù)包發(fā)送者指定的任意一個(gè)數(shù)值 , 其目的在于可以讓程序識(shí)別與自身發(fā)出數(shù)據(jù)包對(duì)應(yīng)的ICMPTraceroute消息 。這個(gè)數(shù)值與IP頭部的標(biāo)識(shí)號(hào)沒(méi)有關(guān)系 。
源IP地址(OriginatorIPAddress):
發(fā)送外出數(shù)據(jù)包的主機(jī)地址 。這是必須的 , 因?yàn)槁酚善饕鶕?jù)這個(gè)地址發(fā)送返回?cái)?shù)據(jù)包 。含有源站選路(SourceRoute)選項(xiàng)的外出數(shù)據(jù)包同樣需要這個(gè)字段 。
外出跳躍計(jì)數(shù)(OutboundHopCount , 簡(jiǎn)稱(chēng)OHC):
外出數(shù)據(jù)包已經(jīng)通過(guò)的路由器數(shù)目 。外出數(shù)據(jù)包的目的主機(jī)不增加這個(gè)字段的值 。
返回跳躍計(jì)數(shù)(ReturnHopCount , 簡(jiǎn)稱(chēng)RHC):
返回?cái)?shù)據(jù)包已經(jīng)通過(guò)的路由器數(shù)目 。返回?cái)?shù)據(jù)包的目的主機(jī)不增加這個(gè)字段的值 。
2.3ICMPTraceroute消息格式
類(lèi)型(Type):
30
代碼(Code):
0-外出數(shù)據(jù)包轉(zhuǎn)發(fā)成功
1-前面已沒(méi)有路由器 , 數(shù)據(jù)包被拋棄
校驗(yàn)和(Checksum):
對(duì)首部中每個(gè)16位字進(jìn)行二進(jìn)制反碼求和的結(jié)果 。在計(jì)算校驗(yàn)和之前 , 應(yīng)當(dāng)先把此字段填零 , 然后填入計(jì)算結(jié)果 。

推薦閱讀