tcptracerte參數_TCP/IP詳解學習筆記(4)-ICMP協議,ping和Traceroute【轉】

1.IMCP協議介紹

前面講到了,IP協議并不是一個可靠的協議,它不保證數據被送達,那么,自然的,保證數據送達的工作應該由其他的模塊來完成。其中一個重要的模塊就是ICMP(網絡控制報文)協議。

當傳送IP數據包發生錯誤--比如主機不可達,路由不可達等等,ICMP協議將會把錯誤信息封包,然后傳送回給主機。給主機一個處理錯誤的機會,這 也就是為什么說建立在IP層以上的協議是可能做到安全的原因。ICMP數據包由8bit的錯誤類型和8bit的代碼和16bit的校驗和組成。而前 16bit就組成了ICMP所要傳遞的信息。書上的圖6-3清楚的給出了錯誤類型和代碼的組合代表的意思。

盡管在大多數情況下,錯誤的包傳送應該給出ICMP報文,但是在特殊情況下,是不產生ICMP錯誤報文的。如下

ICMP差錯報文不會產生ICMP差錯報文(出IMCP查詢報文)(防止IMCP的無限產生和傳送)

目的地址是廣播地址或多播地址的IP數據報。

作為鏈路層廣播的數據報。

不是IP分片的第一片。

源地址不是單個主機的數據報。這就是說,源地址不能為零地址、環回地址、廣播地 址或多播地址。

雖然里面的一些規定現在還不是很明白,但是所有的這一切規定,都是為了防止產生ICMP報文的無限傳播而定義的。

ICMP協議大致分為兩類,一種是查詢報文,一種是差錯報文。其中查詢報文有以下幾種用途:

ping查詢(不要告訴我你不知道ping程序)

子網掩碼查詢(用于無盤工作站在初始化自身的時候初始化子網掩碼)

時間戳查詢(可以用來同步時間)

而差錯報文則產生在數據傳送發生錯誤的時候。就不贅述了。

2.ICMP的應用--ping

ping可以說是ICMP的最著名的應用,當我們某一個網站上不去的時候。通常會ping一下這個網站。ping會回顯出一些有用的信息。一般的信息如下:

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

Reply from 10.4.24.1: bytes=32 time<1ms TTL=255

Ping statistics for 10.4.24.1:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

ping這個單詞源自聲納定位,而這個程序的作用也確實如此,它利用ICMP協議包來偵測另一個主機是否可達。原理是用類型碼為0的ICMP發請 求,受到請求的主機則用類型碼為8的ICMP回應。ping程序來計算間隔時間,并計算有多少個包被送達。用戶就可以判斷網絡大致的情況。我們可以看到, ping給出來了傳送的時間和TTL的數據。我給的例子不太好,因為走的路由少,有興趣地可以ping一下國外的網站比如sf.net,就可以觀察到一些 丟包的現象,而程序運行的時間也會更加的長。

ping還給我們一個看主機到目的主機的路由的機會。這是因為,ICMP的ping請求數據報在每經過一個路由器的時候,路由器都會把自己的ip放到該數 據報中。而目的主機則會把這個ip列表復制到回應icmp數據包中發回給主機。但是,無論如何,ip頭所能紀錄的路由列表是非常的有限。如果要觀察路由, 我們還是需要使用更好的工具,就是要講到的Traceroute(windows下面的名字叫做tracert)。

3.ICMP的應用--Traceroute

Traceroute是用來偵測主機到目的主機之間所經路由情況的重要工具,也是最便利的工具。前面說到,盡管ping工具也可以進行偵測,但是,因為ip頭的限制,ping不能完全的記錄下所經過的路由器。所以Traceroute正好就填補了這個缺憾。

Traceroute的原理是非常非常的有意思,它受到目的主機的IP后,首先給目的主機發送一個TTL=1(還記得TTL是什么嗎?)的UDP(后面就 知道UDP是什么了)數據包,而經過的第一個路由器收到這個數據包以后,就自動把TTL減1,而TTL變為0以后,路由器就把這個包給拋棄了,并同時產生 一個主機不可達的ICMP數據報給主機。主機收到這個數據報以后再發一個TTL=2的UDP數據報給目的主機,然后刺激第二個路由器給主機發ICMP數據 報。如此往復直到到達目的主機。這樣,traceroute就拿到了所有的路由器ip。從而避開了ip頭只能記錄有限路由IP的問題。

有人要問,我怎么知道UDP到沒到達目的主機呢?這就涉及一個技巧的問題,TCP和UDP協議有一個端口號定義,而普通的網絡程序只監控少數的幾個號碼較 小的端口,比如說80,比如說23,等等。而traceroute發送的是端口號>30000(真變態)的UDP報,所以到達目的主機的時候,目的 主機只能發送一個端口不可達的ICMP數據報給主機。主機接到這個報告以后就知道,主機到了,所以,說Traceroute是一個騙子一點也不為過:)

Traceroute程序里面提供了一些很有用的選項,甚至包含了IP選路的選項,請察看man文檔來了解這些,這里就不贅述了。

---------------------

作者:積木

來源:CSDN

原文:https://blog.csdn.net/goodboy1881/article/details/670761

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276132.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276132.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276132.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[實踐系列]Promises/A+規范

前言 [實踐系列] 主要是讓我們通過實踐去加深對一些原理的理解。 實踐系列-前端路由 實踐系列-Babel原理 有興趣的同學可以關注 實踐系列 。 求star求follow~ 什么是Promise ? Promise是JS異步編程中的重要概念&#xff0c;異步抽象處理對象&#xff0c;是目前比較流行Javas…

Web Components 上手指南

現在的前端開發基本離不開 React、Vue 這兩個框架的支撐&#xff0c;而這兩個框架下面又衍生出了許多的自定義組件庫&#xff1a;Element&#xff08;Vue&#xff09;Ant Design&#xff08;React&#xff09;這些組件庫的出現&#xff0c;讓我們可以直接使用已經封裝好的組件&…

隱藏網頁文件的后綴(IIS測試通過)!

網上很多網站會看到如這樣的地址: /content?actadd&id1 /column?actedit&id2 原本是 /content.asp?actadd&id1 /column.asp?actedit&id2 這樣的效果就是在iis上做了下手腳&#xff0c;使用了rewrite重寫組件&#xff0c;就可以實現。 rewrite.rar轉載于:ht…

Linux下查看文件內容的ASCII碼以檢查內容的編碼一致

轉載鏈接&#xff1a;http://blog.csdn.net/tiantang46800/article/details/6460567 ascii查詢方式&#xff0c;查看文件以ascii顯示&#xff0c;od命令 隨著計算機飛速的發展&#xff0c;很多人開始學習Linux&#xff0c;怎樣才能學好Linux&#xff0c;一定要學好Linux的命令…

乘基取整法是什么_十進制小數轉二進制小數乘2取整法的直觀理解

乘2取整法介紹舉例&#xff1a;0.35轉換成二進制0.3520.7 取0(d1)0.721.4 取1(d2)0.420.8 取0(d3)0.821.6 取1(d4)0.621.2 取1(d5)0.220.4 取0(d6)直到滿足規定的位數為止所以(0.35)10(0.d1d2d3d4d5d6)2(0.010110)2這個方法不難掌握&#xff0c;就是有點不好理解&#xf…

如何遠程連接Windows和linux服務器

linux的方法在下面 Windows服務器遠程連接 登錄控制臺查看服務器系統是什么系統例如阿里云的ECS服務器 Windows系統可以使用微軟自帶的遠程工具進行連接&#xff0c;可以連接的系統有Windows server 和Windows 7-10 等等系列&#xff1b;Windows系統&#xff0c;例如Windows10系…

URL是什么

URL是什么意思&#xff1f; 懸賞分&#xff1a;0 - 提問時間2006-3-12 08:14我在玩QQ空間的時候&#xff0c;在添加音樂時會有一個添加URL的地方‘&#xff5e;我是想問那是什么意思&#xff1f;&#xff1f;&#xff1f;提問者&#xff1a; caoyiwang1107 - 魔法學徒 一級 其他…

手把手教你接入前端熱門抓包神器 - whistle

大家好&#xff0c;我是若川&#xff0c;今天推薦騰訊前端團隊的這篇好文。whistle 是一個基于 Node.js 的跨平臺網絡調試工具。最近隨著 Nohost 的開源&#xff0c;有不少同學問了 whistle 相關的問題&#xff0c;本篇文章將結合幾個常見的業務場景介紹如何在本地前端項目開發…

Linux命令之hexdump - ”十六“進制查看器

轉載鏈接&#xff1a;http://codingstandards.iteye.com/blog/805778 用途說明 hexdump命令一般用來查看”二進制“文件的十六進制編碼&#xff0c;但實際上它的用途不止如此&#xff0c;手冊頁上的說法是“ascii, decimal, hexadecimal, octal dump“&#xff0c;這也就是本文…

使用數據增強技術提升模型泛化能力

在《提高模型性能&#xff0c;你可以嘗試這幾招...》一文中&#xff0c;我們給出了幾種提高模型性能的方法&#xff0c;但這篇文章是在訓練數據集不變的前提下提出的優化方案。其實對于深度學習而言&#xff0c;數據量的多寡通常對模型性能的影響更大&#xff0c;所以擴充數據規…

關于不同用戶進入系統報錯的請求

我自己搞了個系統,用超級用戶進入系統正常,用普通用戶進入系統就報錯,Microsoft JET Database Engine (0x80040E07) 標準表達式中數據類型不匹配。 /xs/huiyuan/huiyuan_bf.asp, 第 203 行 代碼如下請各位高手幫忙 <% if request.Cookies("shiwei_username")"…

React 與 Vue 框架的設計思路大 PK

大家好&#xff0c;我是若川。今天分享一篇框架設計思路的好文。關于我 大家好我是花果山的大圣&#xff0c;今天很榮幸&#xff0c;有機會跟大家分享一下很多年輕人感興趣的話題《 Vue 和 React 設計思想 PK》,個人水平有限&#xff0c;如果有理解不到位的請傾盆&#xff0c;大…

php foreach id是否存在數組_請糾正這 5 個 PHP 編碼小陋習

在做過大量的代碼審查后&#xff0c;我經常看到一些重復的錯誤&#xff0c;以下是糾正這些錯誤的方法。在循環之前測試數組是否為空$items [];// ...if (count($items) > 0) {foreach ($items as $item) {// process on $item ...}}foreach以及數組函數 (array_*) 可以處理…

1161轉進制(C語言)

一&#xff1a;題目 二&#xff1a;思路分析 1.首先該題目讓我們使用遞歸求十進制轉其他進制 2.其次&#xff0c;我們要知道十進制轉換為其他進制怎么轉換&#xff0c;以例題所給的數據為例 由此圖可以看出&#xff0c;十進制轉換為其他進制&#xff0c;是輾轉相除法&#xf…

PHP異常處理

轉載鏈接&#xff1a;http://www.blogdaren.com/post-2030.html 版權聲明&#xff1a;除非注明&#xff0c;本文由( manon )原創&#xff0c;轉載請保留文章出處 本文鏈接&#xff1a;PHP register_shutdown_function函數詳解 腳本時常死掉,而且并不總是那么好看. 我們可不想…

應對無協議脫歐 葡萄牙機場將為英籍旅客設快速通道

中新網1月18日電 據臺灣《聯合報》援引英媒報道&#xff0c;英國首相特蕾莎?梅的脫歐協議遭下院否決后&#xff0c;英國無協議脫歐的可能性變大。葡萄牙總理科斯塔17日表示&#xff0c;里斯本當局正對機場開設特殊通道進行規劃&#xff0c;使英國旅客無論英國最后如何脫歐&…

javascript 日期控件

http://www.my97.net/dp/index.asp轉載于:https://www.cnblogs.com/Ken-Cai/archive/2010/04/08/1707080.html

6輪字節前端校招面試經驗分享

大家好&#xff0c;我是若川。最近金三銀四&#xff0c;今天分享一篇字節前端校招面試經驗的輕松好文&#xff0c;相信看完會有所收獲。也歡迎點擊下方卡片關注或者星標我的公眾號若川視野因為我錯過了2020年的秋招&#xff08;ps: 那時候連數據結構與算法都還沒學完&#xff0…

redis存opc_Redis集群的三種模式

一、主從模式通過持久化功能&#xff0c;Redis保證了即使在服務器重啟的情況下也不會損失(或少量損失)數據&#xff0c;因為持久化會把內存中數據保存到硬盤上&#xff0c;重啟會從硬盤上加載數據。但是由于數據是存儲在一臺服務器上的&#xff0c;如果這臺服務器出現硬盤故障等…

斥資近1億港元,小米二次回購

1月21日消息&#xff0c;小米集團發布公告稱&#xff0c;公司于1月18日回購了984.96萬股B類普通股股票&#xff0c;占已發行股份0.041%&#xff0c;平均價為每股B類股10.1527港元&#xff0c;總計斥資近1億港元。 這也是繼1月17日首次回購后&#xff0c;小米集團連續兩日出手進…