?? rfc792.txt
字號:
組織:中國互動出版網(http://www.china-pub.com/)
RFC文檔中文翻譯計劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:顧國飛(ggfei ggfei@263.net)
譯文發布時間:2001-3-30
版權:本中文翻譯文檔版權歸中國互動出版網所有??梢杂糜诜巧虡I用途自由轉載,但必須保留本文檔的翻譯及版權信息。
Network Working Group J. Postel
Request for Comments: 792 ISI
September 1981
Updates: RFCs 777, 760
Updates: IENs 109, 128
RFC792- Internet控制信息協議(ICMP)
(RFC792 INTERNET CONTROL MESSAGE PROTOCOL)
目錄
1.介紹 2
2.消息格式 2
3.目的不可達信息 3
4.超時信息 3
5.參數問題消息 4
6.源擁塞消息 5
7.重定向消息 6
8.回送或回送響應消息 7
9.時間戳和時間戳響應消息 8
10.消息類型總結 9
11.參考資料 10
1.介紹
在被稱為Catenet的系統中,IP協議被用作主機到主機的數據報服務。網絡連接設備稱為網關。這些網關通過網關到網關協議(GGP)相互交換用于控制的信息。通常,網關或目的主機將和源主機通信,例如,為報告在數據報過程中的錯誤。為了這個目的才使用了ICMP,它使用IP做為底層支持,好象它是一個高層協議,而實際上它是IP的一部分,每一種IP模塊必須實現ICMP。
ICMP消息在以下幾種情況下發送:當數據報不能到達目的地時,當網關的已經失去緩存功能,當網關能夠引導主機在更短路由上發送。
IP并非設計為絕對可靠,這個協議的目的是為了當網絡出現問題的時候返回控制信息,而不是使IP協議變得絕對可靠,并不保證數據報或控制信息能夠返回。一些數據報仍將在沒有任何報告的情況下丟失。上層協議必須使用自己的差錯控制程序來判斷通信是否正確。
ICMP信息通常報告在處理數據報過程中的錯誤。若要避免信息無限制地返回,對于ICMP消息不會單獨成包發送,而且ICMP信息只在處理數據報偏移量為0時發送。
2.消息格式
ICMP消息以基本IP頭發送。數據的第一個字節是ICMP類型域;此域的值決定了了其余數據的格式。任何標記為"未使用"的域都是為以后的擴展保留的,在傳送過程中必須全部是0。除非在個別的格式之下,包頭域如下格式:
·版本:4
·IHL:Internet頭長度大小以32位字為單位。
·服務類型:0
·總長度:包頭長度和數據長度。
·標識符(Identification)、標志(Flags)、段偏移量:在分段時使用。
·生存周期:以秒計,此域在每臺機器處理數據報時減少,此值必須大于要傳送它的網關所消耗的時間。
·協議:ICMP = 1
·包頭校驗碼:16位數據反碼和再取反而得。為計算校驗碼,此域應該為0。在將來可以會取代這一域。
·源地址:創建ICMP信息的網關或主機地址,除非說明,它可以是任何網關地址。
·目的地址:信息要發送到的網關或主機地址。
3.目的不可達信息
圖1
IP域:目的地址,發送原始數據報數據的網絡地址
ICMP域:
·類型:3
·代碼:
0 = 網絡不可達;
1 = 主機不可達;
2 = 協議不可用;
3 = 端口不可達;
4 = 需要段和DF設置;
5 = 源路由失??;
·校驗碼:16位數據(從ICMP類型開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以后會被校驗碼取代。
·Internet包頭+源數據報:
Internet包頭加上源數據的頭64位而得。此數據用于主機匹配信息到相應的進程。如果高層協議使用端口號,應該假設其在源數據的頭64個字節之中。
·說明:
相應于網關的路由表,如果在目的域中指定的網絡不可達,如網絡距離為無限遠,網關會向發送源數據的主機發送目的不可達消息。而且,在一些網絡中,網關有能力決定目的主機是否可達。如果目的地不可達,它將向發送源數據的主機發送不可達信息。
在目的主機,如果IP模塊因為指定的協議模塊和進程端口不可用而不能提交數據報,目的主機將向發送源數據的主機發送不可達信息。
另外一種情況是當數據報必須被分段傳送,而"不可分段"位打開,在這種情況下,網關必須拋棄此數據報,并向發送源數據的主機發送不可達信息。
代碼0,1,4和5由網關發送,而代碼2和3由主機發送。
4.超時信息
圖2
IP域:
目的地址:從源數據報數據中得到。
ICMP域:
·類型:11
·代碼:
0 = 傳送超時;
1 = 分段級裝超時。
·校驗碼:16位數據(從ICMP類型開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以后會被校驗碼取代。
·Internet包頭+64位源數據報數據:Internet包頭加上源數據的頭64位而得。此數據用于主機匹配信息到相應的進程。如果高層協議使用端口號,應該假設其在源數據的頭64個字節之中。
·說明:
如果網關在處理數據報時發現生存周期域為零,此數據報必須拋棄。網關同時必須通過超時信息通知源主機。
如果主機在組裝分段的數據報時因為丟失段未能在規定時間內組裝數據,此數據報必須拋棄。網關發送超時信息。
如果段零不可用則不用發送超時信息。
代碼0由網關發送,代碼1由主機發送。
5.參數問題消息
圖3
IP域:
目的地址:從源數據中得到。
ICMP域:
·類型:12
·代碼:
0 = 指針指向錯誤。
·校驗碼: 16位數據(從ICMP類型開始)的反碼和再取反而得。為計算校驗碼,校驗碼域應該為零。這些零在以后會被校驗碼取代。
·指針:
如果code = 0,指向有問題的字節。
·Internet包頭+64位源數據報數據:Internet包頭+64位源數據報數據:Internet包頭加上源數據的頭64位而得。此數據用于主機匹配信息到相應的進程。如果高層協議使用端口號,應該假設其在源數據的頭64個字節之中。
·說明:
如果網關或主機在處理數據報時發現包頭參數有錯誤以至不能完成工作,它必須拋棄此數據報。一個潛在的原因可以是變量的錯誤。網關或主機將通過參數問題消息通知源主機,此消息只有在消息被拋棄時才被發送。
指針指向發現錯誤的數據報包頭字節(可能是選項的中間)。例如,1表示服務類型有錯誤,如果有選項的話,20表示第一個選項的類型有錯誤。
代碼0可能從主機或網關接收到。
6.源擁塞消息
圖4
IP域:
目的地址:源數據報數據的地址和源網絡。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -