1. 程式人生 > >RFC792- Internet控制資訊協議(ICMP)中文版

RFC792- Internet控制資訊協議(ICMP)中文版

【介紹】
  在被稱為Catenet的系統中,IP協議被用作主機到主機的資料報服務。網路連線裝置稱為閘道器。這些閘道器通過閘道器到閘道器協議(GGP)相互交換用於控制的資訊。通常,閘道器或目的主機將和源主機通訊,例如,為報告在資料報過程中的錯誤。為了這個目的才使用了ICMP,它使用IP做為底層支援,好象它是一個高層協議,而實際上它是IP的一部分,每一種IP模組必須實現ICMP。
  ICMP訊息在以下幾種情況下發送:當資料報不能到達目的地時,當閘道器的已經失去快取功能,當閘道器能夠引導主機在更短路由上傳送。
  IP並非設計為絕對可靠,這個協議的目的是為了當網路出現問題的時候返回控制資訊,而不是使IP協議變得絕對可靠,並不保證資料報或控制資訊能夠返回。一些資料報仍將在沒有任何報告的情況下丟失。上層協議必須使用自己的差錯控制程式來判斷通訊是否正確。
  ICMP資訊通常報告在處理資料報過程中的錯誤。若要避免資訊無限制地返回,對於ICMP訊息不會單獨成包傳送,而且ICMP資訊只在處理資料報偏移量為0時傳送。

【訊息格式】
  ICMP訊息以基本IP頭髮送。資料的第一個位元組是ICMP型別域;此域的值決定了了其餘資料的格式。任何標記為"未使用"的域都是為以後的擴充套件保留的,在傳送過程中必須全部是0。除非在個別的格式之下,包頭域如下格式:
  .版本:4
  .IHL:Internet頭長度大小以32位字為單位。
  .服務型別:0
  .總長度:包頭長度和資料長度。
  .識別符號(Identification)、標誌(Flags)、段偏移量:在分段時使用。
  .生存週期:以秒計,此域在每臺機器處理資料報時減少,此值必須大於要傳送它的閘道器所消耗的時間。
  .協議:ICMP = 1
  .包頭校驗碼:16位資料反碼和再取反而得。為計算校驗碼,此域應該為0。在將來可以會取代這一域。
  .源地址:建立ICMP資訊的閘道器或主機地址,除非說明,它可以是任何閘道器地址。
  .目的地址:資訊要傳送到的閘道器或主機地址。

【目的不可達資訊】
  1.gif
                   圖1
IP域:目的地址,傳送原始資料報資料的網路地址
ICMP域:
  .
型別:3
  .程式碼:
0 = 網路不可達;
1 = 主機不可達;
2 = 協議不可用;
3 = 埠不可達;
4 = 需要段和DF設定;
5 = 源路由失敗;
  .校驗碼:16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .Internet包頭+源資料報:
  Internet包頭加上源資料的頭64位而得。此資料用於主機匹配資訊到相應的程序。如果高層協議使用埠號,應該假設其在源資料的頭64個位元組之中。
  .說明:
  相應於閘道器的路由表,如果在目的域中指定的網路不可達,如網路距離為無限遠,閘道器會向傳送源資料的主機發送目的不可達訊息。而且,在一些網路中,閘道器有能力決定目的主機是否可達。如果目的地不可達,它將向傳送源資料的主機發送不可達資訊。
  在目的主機,如果IP模組因為指定的協議模組和程序埠不可用而不能提交資料報,目的主機將向傳送源資料的主機發送不可達資訊。
  另外一種情況是當資料報必須被分段傳送,而"不可分段"位開啟,在這種情況下,閘道器必須拋棄此資料報,並向傳送源資料的主機發送不可達資訊。
  程式碼0,1,4和5由閘道器傳送,而程式碼2和3由主機發送。

【超時資訊】
  2.gif


                 圖2
IP域:
目的地址:從源資料報資料中得到。
ICMP域:
  .型別:11
  .程式碼:
  0 = 傳送超時;
  1 = 分段級裝超時。
  .校驗碼:16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .Internet包頭+64位源資料報資料:Internet包頭加上源資料的頭64位而得。此資料用於主機匹配資訊到相應的程序。如果高層協議使用埠號,應該假設其在源資料的頭64個位元組之中。
  .說明:
  如果閘道器在處理資料報時發現生存週期域為零,此資料報必須拋棄。網關同時必須通過超時資訊通知源主機。
  如果主機在組裝分段的資料報時因為丟失段未能在規定時間內組裝資料,此資料報必須拋棄。閘道器傳送超時資訊。
  如果段零不可用則不用傳送超時資訊。
  程式碼0由閘道器傳送,程式碼1由主機發送。

【引數問題訊息】

  3.gif
                   圖3
IP域:
目的地址:從源資料中得到。
ICMP域:
  .型別:12
  .程式碼:
      0 = 指標指向錯誤。
  .校驗碼: 16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .指標:
      如果code = 0,指向有問題的位元組。
  .Internet包頭+64位源資料報資料:Internet包頭+64位源資料報資料:Internet包頭加上源資料的頭64位而得。此資料用於主機匹配資訊到相應的程序。如果高層協議使用埠號,應該假設其在源資料的頭64個位元組之中。
  .說明:
  如果閘道器或主機在處理資料報時發現包頭引數有錯誤以至不能完成工作,它必須拋棄此資料報。一個潛在的原因可以是變數的錯誤。閘道器或主機將通過引數問題訊息通知源主機,此訊息只有在訊息被拋棄時才被髮送。
  指標指向發現錯誤的資料報包頭位元組(可能是選項的中間)。例如,1表示服務型別有錯誤,如果有選項的話,20表示第一個選項的型別有錯誤。
  程式碼0可能從主機或閘道器接收到。

【源擁塞訊息】
  4.gif
                 圖4
IP域:
目的地址:源資料報資料的地址和源網路。
ICMP域:
  .型別:4
  .程式碼: 0
  .校驗碼: 16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .Internet包頭+64位源資料報資料: Internet包頭+64位源資料報資料:Internet包頭加上源資料的頭64位而得。此資料用於主機匹配資訊到相應的程序。如果高層協議使用埠號,應該假設其在源資料的頭64個位元組之中。
  .說明:
  如果沒有緩衝容納,閘道器會拋棄資料報,如果閘道器這樣做了,它會發送源擁塞訊息給傳送主機。如果接收的資料報太多無法處理,目的主機也會發送相應的訊息給傳送主機。此訊息要求傳送發減少傳送速率,閘道器會給每個拋棄的訊息返回源擁塞訊息,在接到此訊息後,傳送主機應該減少傳送速率,直到不再接收到閘道器傳送的源擁塞訊息為止。在此之後,源主機可以再增加發送速率,直到接收到目的主機的源擁塞訊息為止。
  閘道器或主機不會等到已經超過限度後再發送此訊息,而是接近自己的處理極限時就傳送此訊息,這意味著,引發源擁塞訊息的資料報仍然可以處理。
  程式碼0可能會從主機或閘道器接收到。

【重定向訊息】
  5.gif
                 圖5
IP域:
目的地址:源資料報資料的地址和源網路。
ICMP域:
  .型別: 5
  .程式碼:
   0 = 重定向網路的資料報;
   1 = 重定向主機的資料報;
   2 = 重定向網路和服務型別的資料報;
   3 = 重定向網路和主機型別的資料報。
  .校驗碼:
  16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .閘道器Internet地址:
  應該傳送閘道器地址(其在源資料報資料的internet目的網路域中指定)。
  .Internet包頭+64位源資料報資料:
  Internet包頭加上源資料的頭64位而得。此資料用於主機匹配資訊到相應的程序。如果高層協議使用埠號,應該假設其在源資料的頭64個位元組之中。
  .說明:
  閘道器在下面情況下發送重定向訊息。閘道器(G1)從閘道器相連的網路上接收到資料報,它檢查路由表獲得下一個閘道器(G2)的地址(X)。如果G2和指定的接收主機在同一網路上,重定向訊息發出,此訊息建議傳送主機直接將資料報發向閘道器G2,因為這更近,同時閘道器G1向前繼續傳送此資料報。
  因為在資料報中的IP源路由和目的地址域是可選的,所以即使有更好的路由有時也無法發現。
  程式碼0,1,2和3可能會從閘道器傳送。

【回送或回送響應訊息】
  6.gif
                   圖6
IP域:
地址:
回送訊息的源地址是回送響應訊息的目的地址。若要形成一個回送響應訊息,應該將源和目的地址交換,將型別程式碼更改為0,重新計算機校驗碼。
ICMP域:
  .型別:
  8代表回送訊息;
  0代表回送響應訊息。
程式碼:0
  .校驗碼:
  16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .識別符號:如果程式碼=0,幫助匹配回送和回送響應的程式碼可以為0。
  .序列碼:如果程式碼=0,幫助匹配回送和回送響應的序列碼可以為0。
  .說明:
  回送訊息中接收到的訊息應該在回送響應訊息中返回。識別符號和序列碼由回送傳送者使用幫助匹配回送請求的響應。
  程式碼0可能會從主機或閘道器接收到。

【時間戳和時間戳響應訊息】
  7.gif
                    圖7
IP域:
地址:
  時間戳訊息的源地址是時間戳響應訊息的目的地址。若要形成一個時間戳響應訊息,應該將源和目的地址交換,將型別程式碼更改為14,重新計算機校驗碼。
ICMP域:
  .型別:
   13代表時間戳訊息;
   14代表時間戳響應訊息。
  .程式碼:0
  .校驗碼:
  16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .識別符號:如果程式碼=0,幫助匹配時間戳和時間戳響應的程式碼可以為0。
  .序列碼:如果程式碼=0,幫助匹配時間戳和時間戳響應的程式碼可以為0。
  .說明:
  接收到的時間戳附加在響應裡返回,時間是以百萬分之一稱為單位計算,並以標準時午夜開始計時。原時間戳是傳送方傳送前的時間。接收時間戳是回送者接收到的時間,傳送時間是回送者傳送的時間。
  如果時間以百萬分之一秒計無效,或者不能以標準時提供,可以在時間戳的高位元組填充入資料以表示這不是標準資料。識別符號和序列碼由傳送者匹配請求的響應。
  程式碼0可能會從主機或閘道器接收到。
  資訊請求或資訊響應訊息
  8.gif
                   圖8
IP域:
地址:
  資訊請求訊息的源地址是資訊響應訊息的目的地址。若要形成一個資訊響應訊息,應該將源和目的地址交換,將型別程式碼更改為16,重新計算機校驗碼。
ICMP域:
  .型別:
  15代表資訊請求訊息;
  16 代表資訊響應訊息。
  .程式碼: 0
  .校驗碼:
  16位資料(從ICMP型別開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以後會被校驗碼取代。
  .識別符號:如果程式碼=0,幫助匹配資訊請求和資訊響應的程式碼可以為0。
  .序列碼:如果程式碼=0,幫助匹配資訊請求和資訊響應的程式碼可以為0。
  .說明:
  此訊息可以在IP包頭中以源網路地址傳送,但同時目的地址域為0(這表示此網路內)。響應IP模組應該傳送完全指定地址的響應。傳送此訊息是主機尋找到自己所在網路號碼的一種方法。識別符號和序列碼由傳送者匹配請求的響應。
  程式碼0可能會從主機或閘道器接收到。
 
【訊息型別總結】
  l 0 回送響應
  l 3 目的不可達
  l 4 源擁塞
  l 5 重定向
  l 8 回送
  l 11 超時
  l 12 引數問題
  l 13 時間戳
  l 14 時間戳響應
  l 15 資訊請求
  l 16 資訊響應


相關推薦

RFC792- Internet控制資訊協議ICMP中文版

【介紹】  在被稱為Catenet的系統中,IP協議被用作主機到主機的資料報服務。網路連線裝置稱為閘道器。這些閘道器通過閘道器到閘道器協議(GGP)相互交換用於控制的資訊。通常,閘道器或目的主機將和源主機通訊,例如,為報告在資料報過程中的錯誤。為了這個目的才使用了ICMP,它

Internet控制報文協議ICMP之綜述

一、特點:  (1)ICMP本身是網路層的一個協議,但是它的報文不是直接傳送給資料鏈路層,而是要封裝成IP資料報,然後在傳送給資料鏈路層。  (2)從協議體系上看,ICMP的差錯和控制資訊傳輸只是要解決IP協議可能出現的不可靠問題,它不具有普遍意義上的傳輸機制,它也不是傳輸

ICMP網路控制資訊協議

ICMP重定向 •R1傳送一個重定向報文給主機172.16.1.1用R2作為閘道器去到達10.1.1.1 •何時傳送重定向報文: 1.資訊包進入路由器的介面是資訊包被髮送的同一個介面。 2.IP源地址的子網或網路是路由資訊包的下一跳IP地址的相同子網或網路。 3.資料包不來源路由。

Internet控制資訊協議(轉)

Internet控制資訊協議(ICMP) 1.介紹 在被稱為Catenet的系統中,IP協議被用作主機到主機的資料報服務。網路連線裝置稱為閘道器。這些閘道器通過閘道器到閘道器協議(GGP)相互交換用 於控制的資訊。通常,閘道器或目的主機將和源主機通訊,例如,為報告在資料報

TCP/IP詳解---ICMPInternet控制報文協議

基本概念 ICMP(Internet Control Message Protocol,網路控制報文協議),屬於OSI七層模型中的網路層,與IP/UDP同屬一層,可以將其看成IP、UDP協議功能的一個補充,因為以前說過,IP協議是不可靠的,其可靠性需藉

TCP/IP詳解學習筆記5-- ICMPinternet 控制報文協議

1.概述      ICMP是(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議族的一個子協議,用於在IP主機、路由器之間傳遞控制訊息。控制訊息是指網路通不通、主機是否可達、路由是否可用等網路本身的訊息。這些控制訊息雖然並不傳輸使用者資料

ICMP(網路控制資訊協議 internet control message protocol)

1.IMCP協議介紹 前面講到了,IP協議並不是一個可靠的協議,它不保證資料被送達,那麼,自然的,保證資料送達的工作應該由其他的模組來完成。其中一個重要的模組就是ICMP(網路控制報文)協議。 當傳送IP資料包發生錯誤--比如主機不可達,路由不可達等等,ICMP協議將會把錯

七LWIP學習筆記之傳輸控制協議TCP

輸入 post wait syn 快速重傳 擁塞 斷開連接 其他 time 一、協議簡介 1、TCP的必要性 2、TCP的特性 3、連接的定義 4、數據流編號 5、滑動窗口 二、TCP報文 1、報文格式 2、TCP選項 3、緊急數據 4、強迫數據交互 5、報文首部數據結構

ICMPInternet控制報文協議

con 報文 span 技術分享 取值 檢驗和 pro trace 17. ICMP是(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議族的一個IP層子協議,用於在IP主機、路由器之間傳遞控制消息。控制消

ICMP網路控制資訊協議

ICMP(控制資訊協議) Internet Control Message Protocol經常被認為是IP層的一個組成部分。用於在IP主機,路由器之間傳遞控制訊息。 控制訊息是指網路通不通,主機是否可達,路由是否可用等網路本身的訊息。 目的:檢測網路的連線情況。 ICMP報文通常被I P層或更高

圖解TCP/IP協議IP相關技術—DNS、ARP、ICMP、DHCP、NAT、IP隧道

1.DNS DNS(Demain name System)有效管理主機名和IP地址之間的對應關係的系統。 2.ARP ARP(Address Revolution Protocol)是一種解決地址問題的協議,以目標地址為線索,用來定位下一個應該接收資料分包的網路裝置對應的MAC

趣談網路協議ICMP與ping

ICMP協議的格式 (1)ping是基於ICMP協議工作的。ICMP就是網際網路控制報文協議 (2)ICMP報文是封裝在IP包裡面的。本身很簡單。 (3)ICMP報文有很多型別,不同型別有不同的程式碼。最常用的型別是主動請求為8,主動請求的應答為0 ping:查詢報文

Internet資訊服務IIS管理器之常見錯誤解決辦法

錯誤一: HTTP 錯誤 500.24 - Internal Server Error 檢測到在整合的託管管道模式下不適用的 ASP.NET 設定。 解決辦法: 錯誤二: HTTP 錯誤 404.2 - Not Found 由於 Web 伺服器上的“IS

python網路爬蟲與資訊提取Robots協議

Robots協議  例項一京東 例項二亞馬遜緒論 網路爬蟲引發的問題1、網路爬蟲的尺寸爬取網頁 Requests庫爬取網站 Scrapy庫爬取全網 建立搜尋引擎2、網路爬蟲引發的問題1.伺服器效能騷擾2.法律風險3.洩露隱私3、網路爬蟲的限制來源審查:判斷User-Agent

Internet資訊服務IIS管理器--IIS部署釋出網站

1、將網站的資料夾複製到電腦中的某一個目錄下,確保這個目錄不會被經常更改或者刪除,並且資料夾中的檔案不要輕易改動。比如C/D盤根目錄,可以自由指定。 2、再開啟IIS服務之前,先確認電腦上是否開啟了IIS服務,一般Windows不會預設安裝。右鍵點選計算機(我的電腦或此電腦

HTTP協議2HTTP協議中的請求資訊

1:請求行   請求行分為三部分: 請求方式:GET、POST 資源路徑:/servlet/request http協議版本:http/1.1HTTP/0.9 :只接受GET一種請求方法,沒有在通訊中指定版本號,且不支援請求頭。由於該版本不支援POST方法,因此客戶端無法向

ICMP:Internet控制報文協議

ICPM:它傳遞差錯報文以及其他需要注意的資訊如果收到一份UDP資料報而目的埠與某個正在使用的程序不相符,那麼UDP返回一個ICMP不可達報文ICMP差錯報文必須包括生成該差錯報文的資料報IP首部,還必須至少包括跟在該IP首部後面的前8個位元組。當路由器收到一份IP資料報但又

簡單網路管理協議SNMP通過第三方API SNMP++ 提取程序名稱,路徑與PID資訊

書接上文,在此部落格中記錄獲取程序名稱,路徑與PID資訊的子函式 上篇部落格中記錄了初始定義的結構體與其他變數的定義。直接上程式碼段: /*=========================================================== 函式名稱:Ge

傳輸控制協議TCP

byte 排錯 esc 兩個 校驗和 算法 傳輸控制協議 機構 spa 簡介: 傳輸控制協議(TCP)是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,由IETF的RFC 793定義。在簡化的計算機網絡OSI模型中,它完成第四層傳輸層所指定的功能,用戶數

C#基礎知識-流程控制的應用

相關 ats 循環 nbsp 使用 logs 嘗試 exc 設置斷點 流程控制我們在編程中運用到的地方非常的多,在上篇中僅僅只是簡單的介紹每一種的使用,並沒有運用到實例中,很難去理解它真正的作用。下面我們將實際的運用流程控制的代碼寫一些實例相關的程序,加深對流程控制的理解,