亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

traceroute工作原理

系統(tǒng) 2117 0
?
traceroute , 也就是 trace route,跟蹤路由。這個(gè)程序最早是Van Jacobson實(shí)現(xiàn)的。源代碼在網(wǎng)上能夠找到,只是我還沒(méi)有去找。 基本的原理 是IP路由過(guò)程中對(duì)數(shù)據(jù)包TTL(Time to Live,存活時(shí)間)的處理。當(dāng)路由器收到一個(gè)IP包時(shí),會(huì)改動(dòng)IP包的TTL(及由此造成的頭部檢驗(yàn)和checksum變化)。每收到一個(gè)包,檢查這個(gè) 的TTL是否是0或1。假設(shè)是,表明這個(gè)包還沒(méi)有到達(dá)目的地,并且剩余時(shí)間不多了,肯定是到不了目的地了。這樣路由器就簡(jiǎn)單地丟棄這個(gè)包,并給源主機(jī)發(fā)送 ICMP通知,說(shuō)這個(gè)包已經(jīng)超時(shí)了。ICMP的通知信息里包括當(dāng)前路由器發(fā)送時(shí)所用的IP。

  這樣就能夠通過(guò)構(gòu)造數(shù)據(jù)包,來(lái)間接檢查到 達(dá)一個(gè)主機(jī)時(shí)經(jīng)過(guò)了哪些路由。一開(kāi)始發(fā)送一個(gè)TTL為1的包,這樣到達(dá)第一個(gè)路由器的時(shí)候就已經(jīng)超時(shí)了,第一個(gè)路由器就發(fā)通知說(shuō)包超時(shí),這樣就能夠記錄下 所經(jīng)過(guò)的第一個(gè)路由器的IP。然后TTL加1,安全通過(guò)第一個(gè)路由器,而第二個(gè)路由器的的處理與第一個(gè)同樣,丟包,發(fā)通知說(shuō)包超時(shí)了,這樣記錄下第二個(gè)路 由器IP,由此能夠一直進(jìn)行下去,直到這個(gè)數(shù)據(jù)包到達(dá)目標(biāo)主機(jī),由此打印出全部經(jīng)過(guò)的路由器。

  在通信中,IP層僅僅負(fù)責(zé)數(shù)據(jù)的路由與傳 輸,并不處理數(shù)據(jù)包的內(nèi)容。比如ICMP,或TCP,UDP,這些協(xié)議是依賴IP層的傳輸功能來(lái)傳送數(shù)據(jù)的。在通信兩方的主機(jī)中,收到這些協(xié)議的數(shù)據(jù)包 后,一般在通信的相應(yīng)主機(jī)上,會(huì)有程序來(lái)處理這些數(shù)據(jù)。而直接的IP數(shù)據(jù)報(bào)是沒(méi)實(shí)用處的(win2000的驅(qū)動(dòng)層能夠直接使用IP報(bào)而不須要加上其它協(xié) 議,可是通常是不會(huì)這樣用的)。因此traceroute程序發(fā)送一個(gè)UDP包來(lái)試探。對(duì)路由器來(lái)說(shuō),UDP數(shù)據(jù)報(bào)僅僅是IP數(shù)據(jù)報(bào)的一種,它并不關(guān)心 UDP數(shù)據(jù)報(bào)的詳細(xì)內(nèi)容。直到這個(gè)包到達(dá)目的端的主機(jī)會(huì),目的主機(jī)的內(nèi)核會(huì)解析UDP數(shù)據(jù)報(bào),并查找數(shù)據(jù)報(bào)中要求port是否已經(jīng)有進(jìn)程在使用。假設(shè)找到,則 通知進(jìn)程有數(shù)據(jù)到達(dá)。而假設(shè)找不到,則發(fā)送一個(gè)"目的port不可達(dá)"的ICMP錯(cuò)誤數(shù)據(jù)回到源主機(jī)。

  這樣就能夠全然確定下來(lái)。 trcertroute建立一個(gè)UDP數(shù)據(jù)包,不斷改動(dòng)TTL值并發(fā)送出去,假設(shè)收到"超時(shí)錯(cuò)",表示剛剛到達(dá)的是路由器,而假設(shè)收到的是"port不可達(dá)"錯(cuò)誤,表示剛剛到達(dá)的就是目的主機(jī)。這樣路由跟蹤完畢,程序結(jié)束。

有幾個(gè)細(xì)節(jié)

  1.局域網(wǎng)的路由是相對(duì)穩(wěn)定的,因此用traceroute打印出來(lái)的響應(yīng)時(shí)間相差不大。而假設(shè)用來(lái)跟蹤廣域網(wǎng)的路由,因?yàn)閺V域網(wǎng)的路由信息是動(dòng)態(tài)變化的,并且并不能確定是發(fā)送路徑耗時(shí)還是返回路徑耗時(shí)較多,因此時(shí)間與路由信息僅僅能做為參考。

   2.TTL 的選擇。假設(shè)把TTL設(shè)得足夠大,是不是一定能夠打印出全部路由,比方一個(gè)數(shù)據(jù)包經(jīng)過(guò)300個(gè)路由器才到達(dá)目的端。當(dāng)然在現(xiàn)有網(wǎng)絡(luò)環(huán)境下不太可能出現(xiàn)要經(jīng) 過(guò)這么多路由的情況。而TTL信息在IP數(shù)據(jù)報(bào)中僅僅有一個(gè)字節(jié),也就是最多能設(shè)定到255(256以后又又一次從0開(kāi)始)。設(shè)定這個(gè)信息的目的,就是防止一 些僵而不化的數(shù)據(jù)報(bào)在網(wǎng)絡(luò)漫上無(wú)目的的游蕩而不消失。數(shù)據(jù)報(bào)每經(jīng)過(guò)一個(gè)路由器,路由器就把TTL減1(或在該路由器被處理前經(jīng)過(guò)的秒數(shù)),總有一個(gè)時(shí)候會(huì) 被減到1,然后路由器會(huì)把它丟棄。

  3.traceroute的是以收到"port不可達(dá)"為標(biāo)志來(lái)結(jié)束的。前提是發(fā)出的UDP數(shù)據(jù)報(bào)中要求 的port在目的主機(jī)上沒(méi)有進(jìn)程在使用。而假設(shè)目的主機(jī)上正好有進(jìn)程在使用這個(gè)port,接收這個(gè)包并按正常方式處理,這樣traceroute就收不到"port不 可達(dá)"的錯(cuò)誤了。為了避免出現(xiàn)這樣的情況,UDP數(shù)據(jù)報(bào)的port非常高(書(shū)中的實(shí)現(xiàn)是初始值33435,以后每發(fā)送一次再加1,port號(hào)最大能夠到65535)。 普通程序一般不會(huì)使用這些高port。問(wèn)題是假如真的存在這樣的情況時(shí),traceroute會(huì)怎么處理?而好像Solaris系統(tǒng)可能會(huì)使用高port,這時(shí)又怎 么樣。

  4. 在發(fā)送過(guò)程中,要經(jīng)過(guò)很多的路由,到達(dá)目的主機(jī)前,可能還要經(jīng)過(guò)網(wǎng)關(guān),防火墻,以及其它比如IDS的過(guò)濾,發(fā)送包能不能到達(dá)目的主機(jī)還是個(gè)問(wèn)題。而即使到 達(dá)了,發(fā)送的ICMP信息能不能返回也是個(gè)問(wèn)題。由于沿途經(jīng)過(guò)的關(guān)卡太多,遇上黑洞路由器,不轉(zhuǎn)發(fā)這些信息的話,那就一點(diǎn)辦法也沒(méi)有了。

   書(shū)中還提到原來(lái)的traceroute里有一個(gè)選項(xiàng),能夠指定數(shù)據(jù)包經(jīng)過(guò)的路由器。假設(shè)是寬路由,則僅僅要經(jīng)過(guò)指定的路由就可以。而假設(shè)是嚴(yán)路由,則必須按 指定的順序經(jīng)過(guò)指定的路由器。由于這個(gè)選項(xiàng)可能導(dǎo)致某個(gè)固定的路由處理信息太多,在發(fā)布的源代碼里已經(jīng)取消了。可是能夠找到補(bǔ)丁,還是能夠用起來(lái)的。從比較 的結(jié)果看,似乎指定路由器反而不如讓路由器採(cǎi)用默認(rèn)路由處理得快。而對(duì)于嚴(yán)路由來(lái)說(shuō),要成功就要更難一些,由于并不一定你指定的路由器正好有條目到接下來(lái) 的路由器。

?

?

ping 程序是利用icmp的回復(fù)請(qǐng)求來(lái)探測(cè)遠(yuǎn)端主機(jī)是否可達(dá)。(并不能繼續(xù)推斷port是否可達(dá)。要想查看port,就要使用掃描器了。)win2000里的網(wǎng)絡(luò)庫(kù)里已 經(jīng)提供網(wǎng)絡(luò)函數(shù)庫(kù)(icmp.dll)能夠?qū)崿F(xiàn)利用icmp來(lái)探測(cè)遠(yuǎn)端主機(jī)。相比起使用管道來(lái)讀ping的結(jié)果,或者嵌入ping源代碼,這個(gè)是最簡(jiǎn)單的方 法了(沒(méi)辦法,人懶)。ping事實(shí)上另一個(gè)R選項(xiàng),用來(lái)記錄經(jīng)過(guò)的路由,曾經(jīng)一直不知道。(ping www.google.com -r 7)記錄經(jīng)過(guò)的7個(gè)路由器。依照分析,依據(jù)所在環(huán)境限制最多能夠記錄8~9個(gè)項(xiàng)目。

  除了回顯請(qǐng)求外,還能夠利用icmp來(lái)實(shí)現(xiàn)時(shí)間請(qǐng)求。在icmp的數(shù)據(jù)包中能夠包括發(fā)送時(shí)間,目的主機(jī)收到后再附上自身當(dāng)時(shí)時(shí)間才發(fā)回。這樣能夠做一個(gè)時(shí)間校驗(yàn),并能夠推斷源與目的之間的通訊速度。因?yàn)樵敿?xì)的內(nèi)容部分比較煩,類型太多,一下子記不住各個(gè)類型的意思。

  一般用ping的時(shí)候僅僅是用了它的最簡(jiǎn)單的功能:檢查主機(jī)能不能連到。事實(shí)上使用它所提供的其它選項(xiàng),能夠?qū)崿F(xiàn)很多細(xì)節(jié)上的控制,比如數(shù)據(jù)包長(zhǎng)度,TTL,路由記錄,寬/嚴(yán)路由經(jīng)過(guò)路由等。

?

traceroute工作原理


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久99国产一区二区三区 | 97午夜理伦片在线影院 | 免费观看黄色的网站 | 国内精品久久久久久麻豆 | 久久99热只有视精品6国产 | 日韩手机看片 | 久久在线免费 | 亚洲欧美一区二区三区麻豆 | 看全色黄大色大片免费视频 | 五月婷久久 | www.久久在线 | 在线 中文字幕 日韩 欧美 | 天天干天天要 | 日韩美a一级毛片 | 99资源在线| 欧美美女一区二区三区 | 美女个护士一级毛片亚洲 | 99久久精品费精品国产一区二区 | 成人免费一级毛片在线播放视频 | 日韩欧美精品综合一区二区三区 | 色婷婷婷丁香亚洲综合不卡 | 人人揉揉香蕉大免费不卡 | 久久99精品国产免费观看 | 一级特黄aaa大片在 一级特黄aaa大片在线观看 | 天天干夜干 | 欧美午夜精品一区二区三区 | 国产二区精品视频 | 51国产福利视频在线观看 | 国产成人亚洲精品91专区手机 | 久久国产高清 | 欧美vs日韩vs国产在线观看 | 天天操夜夜操视频 | 国产伦理一区 | 日本中文字幕在线看 | 日韩综合在线 | 亚洲精品不卡视频 | 神马影院我不卡手机 | 好看的亚洲视频 | 九九精品热线免费观看6 | 国产在线不卡视频 | 欧美日本成人 |