差錯與控制報文協(xié)議_第1頁
差錯與控制報文協(xié)議_第2頁
差錯與控制報文協(xié)議_第3頁
差錯與控制報文協(xié)議_第4頁
差錯與控制報文協(xié)議_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第6章 差錯與控制報文協(xié)議,6.1 因特網(wǎng)控制報文協(xié)議 6.2 ICMP報文格式與類型 6.3 ICMP差錯報告 6.4 ICMP控制報文 6.5 ICMP請求與應(yīng)答報文對 6.6 ICMP報文封裝,6.1 因特網(wǎng)控制報文協(xié)議(ICMP),ICMP協(xié)議設(shè)計的最初目的主要是用于IP層的差錯報告,由路由器或信宿以一對一的模式向信源報告?zhèn)鬏斿e誤的原因。 隨著網(wǎng)絡(luò)的發(fā)展,檢測和控制功能逐漸被引入到ICMP協(xié)議中,使得ICMP協(xié)議不僅用于傳輸差錯報告,而且大量用于傳輸控制報文。 ICMP與IP協(xié)議位于同一個層次(IP層),但ICMP報文是封裝在IP數(shù)據(jù)報的數(shù)據(jù)部分進行傳輸?shù)摹?ICMP協(xié)議是IP協(xié)議的補

2、充,用于IP層的差錯報告、擁塞控制、路徑控制以及路由器或主機信息的獲取。,返回,6.2 ICMP報文格式與類型,ICMP報文由首部和數(shù)據(jù)段組成。首部為定長的8個字節(jié),前4個字節(jié)是通用部分,后4個字節(jié)隨報文類型的不同有所差異。ICMP報文的一般格式如圖所示。,ICMP報文雖然細分為很多類,但總的來看可以分為如圖所示的三大類:差錯報告、控制報文和請求應(yīng)答報文。,返回,6.3 ICMP差錯報告,ICMP差錯報告的數(shù)據(jù)區(qū)包含出錯數(shù)據(jù)報的首部及該數(shù)據(jù)報的前64位數(shù)據(jù),這些信息有助于信源或管理人員發(fā)現(xiàn)錯誤原因。 ICMP差錯報告具有以下特點: 1)只報告差錯,但不負責糾正錯誤,糾錯工作留給高層協(xié)議去處理。

3、 2)發(fā)現(xiàn)出錯的設(shè)備只向信源報告差錯。 3)差錯報告作為一般數(shù)據(jù)傳輸,不享受特別優(yōu)先權(quán)和可靠性。 4)產(chǎn)生ICMP差錯報告的同時,會丟棄出錯的IP數(shù)據(jù)報。,形成ICMP差錯報告時有以下例外: 1)ICMP差錯報文本身不會再產(chǎn)生ICMP差錯報告。 2)分片報文的非第一個分片不會產(chǎn)生ICMP差錯報告。 3)組播地址報文不會產(chǎn)生ICMP差錯報告。 4)特殊地址127.0.0.0和0.0.0.0的報文不會產(chǎn)生ICMP差錯報告。,6.3.1 信宿不可達報告,當路由器無法根據(jù)路由表轉(zhuǎn)發(fā)IP數(shù)據(jù)報時或主機無法向上層協(xié)議和端口提交IP數(shù)據(jù)報時,將丟棄當前的數(shù)據(jù)報,并產(chǎn)生信宿不可達差錯報告,向信源報告出錯。信宿

4、不可達報文如圖所示。,信宿不可達報文可能由路由器產(chǎn)生,也可能由信宿機產(chǎn)生。產(chǎn)生信宿不可達報文的原因的16種可能 :,6.3.2 數(shù)據(jù)報超時報告,在數(shù)據(jù)報的傳輸過程中,首部的TTL值用于防止數(shù)據(jù)報因路由表的問題而無休止地在網(wǎng)絡(luò)中傳輸。當TTL值為0時,路由器會丟棄當前的數(shù)據(jù)報,并產(chǎn)生一個ICMP數(shù)據(jù)報超時報告。另外。 在信宿進行分片重組時會啟動重組定時器,一旦重組定時器超時,信宿就會丟棄當前正在重組的數(shù)據(jù)報,然后產(chǎn)生一個ICMP數(shù)據(jù)報超時報告,并向信源發(fā)送該超時報告。,數(shù)據(jù)報超時報告的報文格式與信宿不可達報告的報文格式相同,只是類型和代碼值不同。 數(shù)據(jù)報超時報告的類型和代碼的含義如表所示。類型值

5、11表示是數(shù)據(jù)報超時報文,代碼“0”表示TTL超時,代碼“1”表示分片重組超時。,6.3.3 數(shù)據(jù)報參數(shù)錯報告,數(shù)據(jù)報參數(shù)錯報告是由數(shù)據(jù)報首部字段值不明確或空缺而引起的差錯報告。一旦路由器或信宿機發(fā)現(xiàn)錯誤的數(shù)據(jù)報首部和錯誤的數(shù)據(jù)報選項參數(shù)時,便拋棄該數(shù)據(jù)報,并向信源發(fā)送差錯報告報文。數(shù)據(jù)報參數(shù)錯報文的格式如圖6-4所示。,類型12表明數(shù)據(jù)報參數(shù)錯 代碼“0”表示數(shù)據(jù)報首部中的某個字段的值有錯或不明確,這時ICMP報文首部的指針指向數(shù)據(jù)報中有問題的字節(jié); 代碼“1”表示數(shù)據(jù)報首部中缺少某一選項所必須具有的部分參數(shù),此時的ICMP報文沒有指針字段。 表6-3給出了數(shù)據(jù)報參數(shù)錯報告的類型。 代碼為“

6、0”的參數(shù)錯只能報告一個出錯參數(shù) 代碼為“1”的參數(shù)錯只能報告缺少參數(shù),不能說明缺少哪個參數(shù)。,返回,6.4 ICMP控制報文,ICMP控制報文包括源抑制報文和重定向報文 源抑制報文用于擁塞控制 重定向報文用于路徑控制 下表給出了這兩類報文的類型和作用描述。,6.4.1 源抑制報文,IP協(xié)議采用的是無連接數(shù)據(jù)報方式進行傳輸 發(fā)送方事先并不了解中間的路由器和信宿的處理能力和緩沖區(qū)大小 在數(shù)據(jù)報傳輸過程中沒有采用任何流量控制機制 當大量的數(shù)據(jù)報進入路由器或信宿時,會造成緩沖區(qū)溢出,即出現(xiàn)擁塞(Congestion)。 ICMP利用源抑制的方法來進行擁塞控制。通過源抑制來減緩信源發(fā)出數(shù)據(jù)報的速率。,

7、源抑制報文的格式如圖6-5所示。,源抑制包括三個階段:發(fā)現(xiàn)擁塞階段、解決擁塞階段和恢復階段。 在發(fā)現(xiàn)擁塞階段,路由器對緩沖區(qū)進行監(jiān)測,一旦發(fā)現(xiàn)擁塞,立即向相應(yīng)的信源發(fā)送ICMP源抑制報文。該信源收到源抑制報文后,便知道擁塞已經(jīng)發(fā)生,而且所發(fā)送的數(shù)據(jù)報已經(jīng)丟掉。 在解決擁塞階段,信源根據(jù)收到的源抑制報文中所帶的原數(shù)據(jù)報的首部信息決定對去往某一特定信宿的信息流進行抑制。通常信源在收到源抑制報文后,按一定的規(guī)則降低發(fā)往某信宿的數(shù)據(jù)報傳輸率。 擁塞解除后,信源逐漸恢復數(shù)據(jù)報傳輸速率。,在擁塞控制中以下幾點值得關(guān)注: 1)雖然對于每個因擁塞而丟棄的數(shù)據(jù)報都產(chǎn)生ICMP源抑制報文,但信源只按照自己的時間段

8、進行響應(yīng)。 2)擁塞的解除由信源依據(jù)是否有進一步的源抑制報文到達來進行判斷。 3)擁塞可能是由多個源共同行為的結(jié)果,由于各個信源的發(fā)送速率相差較大,源抑制的效果未必很好。,6.4.2 重定向報文,因特網(wǎng)上的路由器和主機中都存有一個路由表,路由表決定了去往目的地的下一跳路由器的地址。 路由器上的路由表能夠及時地反映網(wǎng)絡(luò)結(jié)構(gòu)的變化,這一特點由路由器之間定期交換路由信息加以保證。 主機因為不能保證全天開機,所以主機中的路由表不能及時反映網(wǎng)絡(luò)結(jié)構(gòu)的變化情況。另外,由于因特網(wǎng)上的主機數(shù)量遠大于路由器的數(shù)量,主機如果參與路由信息的交換,勢必帶來大量的通信開銷。因此主機中的路由表不通過路由協(xié)議進行更新。 但

9、主機所在的網(wǎng)絡(luò)可能和多個路由器相連,主機在發(fā)送信息時也要根據(jù)其路由表來選擇下一跳路由器,為了解決主機路由表的刷新問題,ICMP提供了重定向機制。,主機路由表所給出的下一跳路由器可能并非去往信宿的最佳下一跳路由器,當主機的下一跳路由器收到數(shù)據(jù)報后,該路由器根據(jù)它的路由表判斷本路由器是否是去往信宿的最佳選擇,如果不是,該路由器仍然會向信宿網(wǎng)絡(luò)轉(zhuǎn)發(fā)該數(shù)據(jù)報,但在轉(zhuǎn)發(fā)的同時會產(chǎn)生一個ICMP重定向報文,通知信源修改它的路由表,重定向報文中將給出信源最佳下一跳路由器的IP地址。 主機A根據(jù)重定向報文修改路由表的例子。,ICMP重定向報文的格式如圖所示。 代碼從0到3分別代表不同的重定向方式,具體含義由前

10、面的表6-4給出。 主機開機后在ICMP重定向機制的作用下,經(jīng)過不斷積累逐漸充實和完善其路由表。動態(tài)且優(yōu)化,值得注意的是: 1)ICMP產(chǎn)生重定向報文的時候并不丟棄原數(shù)據(jù)報。 2)ICMP重定向報文由位于同一網(wǎng)絡(luò)的路由器發(fā)送給主機,完成對主機的路由表的刷新。 3)被刷新的路由表項與重定向報文數(shù)據(jù)部分指示的IP數(shù)據(jù)報首部中的信宿地址相關(guān)。內(nèi)容為重定向報文中目標路由器的IP地址。,返回,6.5 ICMP請求與應(yīng)答報文對,ICMP請求與應(yīng)答報文對的出現(xiàn)使得因特網(wǎng)上的任何主機或路由器可以向其他主機或路由器發(fā)送請求并獲得應(yīng)答。 通過ICMP請求與應(yīng)答報文對,網(wǎng)絡(luò)管理人員、用戶或應(yīng)用程序可以對網(wǎng)絡(luò)進行檢測

11、,了解: 設(shè)備的可達性 地址掩碼的設(shè)置 時鐘的同步等情況 目的是利用這些有用的信息,對網(wǎng)絡(luò)進行故障診斷和控制。,ICMP請求與應(yīng)答報文對如表6-5所示。其中的信息請求與應(yīng)答報文已經(jīng)不再使用。,6.5.1 回應(yīng)請求與應(yīng)答報文,回應(yīng)請求與應(yīng)答報文的目的是對網(wǎng)絡(luò)進行診斷和測試。 回應(yīng)請求與應(yīng)答不僅可以被用來測試主機或路由器的可達性,還可以測試IP協(xié)議的工作情況。 TCP/IP網(wǎng)絡(luò)系統(tǒng)所提供的ping命令大多是利用ICMP回應(yīng)請求與應(yīng)答報文來實現(xiàn)的,該命令通常用于測試信宿的可到達性。,ICMP回應(yīng)請求與應(yīng)答報文的格式如圖所示。 類型“8”表明是回應(yīng)請求報文 類型“0”表明是回應(yīng)應(yīng)答報文 協(xié)議未對標識符

12、和序列號字段進行正式定義,通常將標識符和序列號用于匹配請求與應(yīng)答,標識符一般為發(fā)起請求進程的進程ID?;貞?yīng)請求與應(yīng)答報文的標識符和序列號一致。,6.5.2 時間戳請求與應(yīng)答報文,因特網(wǎng)中的各個主機和路由器都是獨立運行的,因此在時鐘上存在著較大的差異,而一些分布式應(yīng)用系統(tǒng)要求各個設(shè)備的時鐘是同步的,ICMP時間戳請求與應(yīng)答報文就是用于設(shè)備間進行時鐘同步的報文對。 用時間戳請求與應(yīng)答報文進行時鐘同步的基本思路是請求方主機通過獲取另一主機的時間戳信息,將該信息和請求方主機的時間戳信息進行比較后,估算兩者的時鐘差異。,請求/應(yīng)答格式如圖。類型13:請求報文,類型14:應(yīng)答報文。 初始時間戳字段用于指示

13、請求方發(fā)出請求的時間 接收時間戳字段用于指示應(yīng)答方主機收到請求的時間 發(fā)送時間戳字段用于指示應(yīng)答方主機發(fā)送應(yīng)答的時間 三個時間戳字段各為32比特長,以毫秒為單位從世界時間午夜0點起計時。時間戳的計數(shù)值不能超過86400000(24小時)。 請求報文:填初始時間戳,接收時間戳和發(fā)送時間戳為0。 應(yīng)答報文:初始時間戳直接從請求報文中復制,接收時間戳和發(fā)送時間戳由應(yīng)答方主機根據(jù)自己接收和發(fā)送時的時鐘填寫。,為了估算請求方與應(yīng)答方之間的時鐘差異,首先要計算出時間戳請求和應(yīng)答的往返延遲,然后據(jù)此計算出單程傳輸延遲,最后由兩設(shè)備的時間戳和單程傳輸延遲計算出兩臺設(shè)備之間的時間差,從而實現(xiàn)時鐘的同步。 往返延

14、遲時間可以用下式計算: 往返時間t當前t初始(t發(fā)送t接收) t接收t初始t當前t發(fā)送 假設(shè)傳輸請求的時延和傳輸應(yīng)答的時延相同,那么單程時延就等于往返時間的一半。,一個時鐘同步的例子:主機A發(fā)出時間戳請求時的初始時間戳為1000毫秒,主機B收到請求時的接收時間戳是1055毫秒,主機B給出應(yīng)答時的發(fā)送時間戳是1057毫秒,主機A收到應(yīng)答時的時間為1030毫秒。主機A可以根據(jù)這些時間戳計算出兩臺主機間的時間差。 往返時間t當前t初始(t發(fā)送t接收) 10301000(10571055)28(毫秒) 單程時延28214 (毫秒) 時間差t接收(t初始單程時延)1055(100014)41 (毫秒)

15、由上面的計算可知:主機B的時鐘比主機A的時鐘快了41毫秒。,6.5.3 地址掩碼請求與應(yīng)答報文,地址掩碼請求與應(yīng)答報文使得一臺主機可以獲得另一臺主機或路由器的子網(wǎng)掩碼。如果能夠獲得本網(wǎng)絡(luò)中路由器的子網(wǎng)掩碼,也就得到了本機所屬子網(wǎng)的掩碼。無盤機通過RARP獲得IP地址后,可以利用地址掩碼請求來獲得子網(wǎng)掩碼。地址掩碼請求與應(yīng)答報文的格式如圖6-11所示。 類型“17”表示地址掩碼請求,地址掩碼請求報文的地址掩碼字段為“0”。類型“18”表示地址掩碼應(yīng)答。,6.5.4 路由器請求與通告報文,初始化路由表的方法: 在配置文件中指定靜態(tài)路由 利用ICMP路由器請求和通告報文來獲得路由器的IP地址。 通過

16、路由器請求和通告報文還可以知道路由器是否處于活動狀態(tài)。 主機在引導以后通過廣播或組播發(fā)出路由器請求報文。一臺或更多臺路由器以路由器通告報文作為響應(yīng)。即使沒有路由器請求報文,路由器也可以定期廣播或組播路由器通告報文。,ICMP路由器請求報文和路由器通告報文的格式如圖。,地址數(shù)字段指明報文所含的地址項的個數(shù)。一個地址項由一個IP地址和一個4字節(jié)的地址優(yōu)先級構(gòu)成。 地址項大小字段指明每個路由器地址項所占32比特字的數(shù)目,一般為2。 生存期字段以秒為單位指明所通告地址的有效時間。 數(shù)據(jù)區(qū)是一到多個地址項。地址項中的優(yōu)先級指出該IP地址作為默認路由器地址的優(yōu)先等級,值越小優(yōu)先級越高。若地址優(yōu)先級為0,則

17、該地址可作為默認路由器地址。優(yōu)先級為0 x80000000時,表明該地址不能作為默認路由器地址使用。,返回,6.6 ICMP報文封裝,向下:雖然ICMP協(xié)議可以接受來自上層的請求,但并不直接封裝來自上層協(xié)議的數(shù)據(jù)。ICMP協(xié)議將請求轉(zhuǎn)變?yōu)镮CMP報文,然后將報文封裝在IP協(xié)議中進行發(fā)送。包含ICMP報文的IP數(shù)據(jù)報首部的協(xié)議字段為“1” 。 向上:IP軟件一旦接收到差錯或控制報文,立即交給ICMP模塊進行處理。ICMP模塊可以形成應(yīng)答報文,也可以交給上層的應(yīng)用程序或協(xié)議去處理。,本章要點,ICMP協(xié)議是IP協(xié)議的補充,用于IP層的差錯報告、擁塞控制、路徑控制以及路由器或主機信息的獲取。 ICM

18、P既不向信宿報告差錯,也不向中間的路由器報告差錯,而是向信源報告差錯。 ICMP與IP協(xié)議位于同一個層次,但ICMP報文被封裝在IP數(shù)據(jù)報的數(shù)據(jù)部分進行傳輸。 ICMP報文可以分為三大類:差錯報告、控制報文和請求/應(yīng)答報文。 ICMP差錯報告分為三種:信宿不可達報告、數(shù)據(jù)報超時報告和數(shù)據(jù)報參數(shù)錯報告。 數(shù)據(jù)報超時報告包括TTL超時和分片重組超時。 數(shù)據(jù)報參數(shù)錯包括數(shù)據(jù)報首部中的某個字段的值有錯和數(shù)據(jù)報首部中缺少某一選項所必須具有的部分參數(shù)。,ICMP控制報文包括源抑制報文和重定向報文。 擁塞是無連接傳輸時缺乏流量控制機制而帶來的問題。ICMP利用源抑制的方法進行擁塞控制,通過源抑制減緩信源發(fā)出

19、數(shù)據(jù)報的速率。 源抑制包括三個階段:發(fā)現(xiàn)擁塞階段、解決擁塞階段和恢復階段。 ICMP重定向報文由位于同一網(wǎng)絡(luò)的路由器發(fā)送給主機,完成對主機的路由表的刷新。 ICMP回應(yīng)請求與應(yīng)答不僅可以被用來測試主機或路由器的可達性,還可以被用來測試IP協(xié)議的工作情況。 ICMP時間戳請求與應(yīng)答報文用于設(shè)備間進行時鐘同步。 主機利用ICMP路由器請求和通告報文不僅可以獲得默認路由器的IP地址,還可以知道路由器是否處于活動狀態(tài)。,返回,RFC involved in this chapter,The Internet Control Message Protocol described here is a TC

20、P/IP standard defined by Postel RFC 792 and updated by Braden RFC 1122. Nagle RFC 896 and Prue and Postel RFC 1016 discuss ICMP source quench messages and how routers should use them to handle congestion control. Mogul and Postel RFC 950 discusses subnet mask request and reply messages Deering RFC 1256 discusses the solicitation and advertisement messages that were used in router discovery.,2011年考研統(tǒng)考題,47(9分)某主機的MAC地址為00-15-C5-C1-5E-28,IP地址為10.2.128.100(私有地址)。題47-a圖是網(wǎng)絡(luò)拓撲,題47-b圖是該主機進行Web請求的1個以太網(wǎng)數(shù)據(jù)幀前80個字節(jié)的十六進制及ASCII碼內(nèi)容。,請參考圖中的數(shù)據(jù)回答以下問題。 (1)Web服務(wù)器的IP地址是什么?該主機的默認網(wǎng)關(guān)的MAC地址是什么? (2)該主機在構(gòu)造題47-b圖的數(shù)據(jù)幀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論