580 likes | 727 Views
Chapter 9 網際網路控制訊息 通訊協定. 目標. 本章結束後,您將能夠: 熟悉 ICMP 訊息的格式 知道錯誤回報訊息的各種類型 知道詢問訊息的各種類型 可以去計算 ICMP 的檢查碼 知道如何使用 ping 和 traceroute 指令 了解 ICMP 套件中的各模組及其交互運作的情況. 9.1 訊息類型. ICMP 的訊息可分為兩大類: 錯誤回報訊息 ( error-reporting message ) 詢問訊息 ( query message )
E N D
目標 本章結束後,您將能夠: • 熟悉 ICMP 訊息的格式 • 知道錯誤回報訊息的各種類型 • 知道詢問訊息的各種類型 • 可以去計算 ICMP 的檢查碼 • 知道如何使用ping 和 traceroute 指令 • 了解 ICMP 套件中的各模組及其交互運作的情況
9.1 訊息類型 • ICMP 的訊息可分為兩大類: • 錯誤回報訊息 ( error-reporting message ) • 詢問訊息 ( query message ) • 錯誤回報訊息回報路由器或目的端主機在處理 IP 封包時可能遇到的問題。 • 詢問訊息協助一台主機或網路管理者獲得另一台主機或路由器的相關訊息。
9.2 訊息格式 ICMP 訊息包含一個 8 位元組的標頭及一個非固定長度的資料區。儘管每種訊息的標頭格式不盡相同,但前面 4 個位元組都是一樣的。
9.3 錯誤回報 IP 為一種非可靠性的通訊協定,也就是說,IP 並不關心錯誤檢查與錯誤控制。ICMP 的設計就是為了補足這些缺點,然而 ICMP 並不是改正錯誤,它只是回報而已,錯誤的更正留給上層的通訊協定來處理。 本節所討論的主題包括: • 無法到達目的地 • 來源端放慢 • 時間超過 • 參數問題 • 轉址
請注意: ICMP 總是將錯誤訊息送回原始的傳送者。
請注意: • 以下是 ICMP 錯誤訊息的相關重點: • 針對攜帶 ICMP 錯誤訊息的資料包,不會再產生一個 ICMP 錯誤訊息。 • 針對非第一個片段的資料包,不會產生 ICMP 錯誤訊息。 • 針對一個使用群播位址的資料包,不會產生 ICMP 錯誤訊息。 • 針對使用特殊位址如 127.0.0.0 或 0.0.0.0 的資料包,不會產生 ICMP 的錯誤訊息。
請注意: 在無法到達目的地的訊息中,若其代碼為 2 或 3 者,只能由目的端主機產生。其他的無法到達目的地的訊息均由路由器產生。
請注意: 路由器無法完全偵測到所有妨礙封包傳送的問題。
請注意: IP 協定沒有流量控制的機制。
請注意: 來源端放慢訊息告知來源端,資料包因為某個路由器或目的端主機發生壅塞的狀況而被移除,來源端應該放慢傳送的速度,直到壅塞情況有所改善。
請注意: 對每個被移除的資料包,都要送出一個來源端放慢訊息。
請注意: 當一台路由器接收到一個存活時間為 0 的資料包時,路由器就移除這個資料包並送出一個時間超過的訊息給原始的傳送端。
請注意: 如果目的端主機在設定的時間內,沒有收到全部的片段,則目的端主機就移除已收到的片段,並送出一個時間超過的訊息給原始的傳送端。
請注意: 在時間超過的訊息中,路由器使用代碼 0來表示存活時間值是 0。目的端主機使用代碼 1來表示有些片段沒有在預設的時間內到達。
請注意: 參數問題訊息是由路由器或目的端主機產生。
請注意: 一台主機通常在開機時,只有小小的路由表,再慢慢地更新與變大。而轉址訊息是可以達成此一結果的工具之一。
請注意: 轉址訊息是由路由器傳送給 在同一區域網路上的一台主機。
9.4 詢問 ICMP 也可以診斷某些網路問題,這是藉由詢問 ( query )訊息來完成。詢問訊息有四對。這些 ICMP 的詢問訊息是由一個節點送出,然後目的節點以特定格式加以回應。 本節所討論的主題包括: • 回應要求與答覆 • 時間戳記要求與答覆 • 位址遮罩要求與答覆 • 路由器請求與公告
請注意: 一個回應要求訊息可由路由器或主機送出,而回應答覆的訊息由收到回應要求訊息的主機或路由器送出。
請注意: 網路管理者也可以用回應要求及回應答覆訊息來檢查 IP 通訊協定的運作。
請注意: 回應要求及回應答覆訊息可以用來測試能否到達某一台電腦,通常藉由ping 指令來達成。
請注意: 即使兩台機器的時間不同步,時間戳記要求與時間戳記答覆訊息還是可以用來計算資料包在來源端與目的端機器之間的往返時間 (RTT)。
請注意: 如果已經知道正確的單程時間,則時間戳記要求與時間戳記答覆訊息可以用來同步雙方機器時鐘的時間。
9.5 檢查碼 以 ICMP 而言,檢查碼是以整個訊息來計算 ( 包括標頭與資料 )。 本節所討論的主題包括: • 檢查碼的計算 • 檢查碼的測試
範例1 圖9.19 說明了計算檢查碼的過程,以回應要求訊息為例,整個訊息被分為多個 16 位元的字組,這些字組被加總起來後,求其補數而獲得檢查碼,即可放到檢查碼欄位內。
9.6 除錯工具 我們介紹兩種使用 ICMP 的除錯工具:ping和traceroute。 本節所討論的主題包括: • Ping • Traceroute
範例2 我們使用 ping程式來測試 fhda.edu伺服器,其結果如下: 接下一張投影片
範例3 在第2個範例中,我們想知道 adelphia.net郵件伺服器是否還活著並可以正常運作,其結果如下: 接下一張投影片