1. 程式人生 > >網路協議系列之四 IGMP ICMP和ARP

網路協議系列之四 IGMP ICMP和ARP

                     

前言

IGMP協議是一個組管理協議,它幫助多播路由器建立以及更新與每一個路由介面相連的忠實成員列表(就是與該路由介面連線頻率較高)。ICMP協議實際上就是差錯控制協議,彌補了IP協議沒有差錯糾正機制以及差錯報告的缺憾。ARP是一個地址對映協議,可以把一個IP地址對映為MAC地址。

IGMP協議

1、IGMP是管理組成員關係的協議 2、IGMP報文分為成員關係報告報文和成員關係查詢報文。成員關係查詢報文是為了查詢網路中活躍的組成員而傳送的報文,而成員關係報告報文是為了記錄響應者在網路中的成員關係而傳送的報文 3、IGMP在路由器上的應用:當路由器收到一個成員關係的查詢報文後,路由器會等待接收一個多個報告,報告到達後路由器根據當前以及到達報告中的記錄更新路由器的狀態 4、IGMP能夠為某個源點並且以某個多播組作為終點的分組做出是否轉發的決定。根據IGMP協議,有三種情況IGMP協議會做出轉發: 1)如果該網路中至少有一臺主機希望接收這種型別的資料,會做出轉發 2)如果源地址在不在過濾列表中,意味著IGMP認為網路中有主機希望接收這種型別的資料分組,所以也會轉發 3)如果源地址在過濾列表中,但是源點計時器還沒有超時,所以IGMP仍然會進行轉發

ICMP協議

1、ICMP報文是一種差錯控制協議。ICMP報文分為差錯報告報文和查詢報文。差錯報告報文報告了路由器或者主機在處理IP資料報過程可能遇到的問題,查詢報文總是成對成雙出現的,主要幫助主機或者網路管理人員獲取特定的資訊 2、ICMP報文的首部為8位元組,ICMP資料報要被封裝成IP資料報才能傳到下一層進行傳輸。所以任何一個ICMP報文都包括IP首部和資料報的前8個位元組(為什麼是8位元組?書上說是包括了埠號和序號資訊,但不知道在TCP是怎麼處理的。還是繼續往後看吧) 3、ICMP總是把出錯資訊傳送給最初的資料來源(可以傳送其他資料來源嗎?答案是不能。因為在資料報中唯一可用的地址資訊就是傳送地址以及目的地址) 4、差錯報告報文進行差錯報告,差錯高高報文會處理5種類型的資訊:終點不可達、源點抑制、超時、引數問題和改變路由

。 終點不可達:當路由器無法為一個數據找到路由或者主機無法交付一個數據的時候,會報告一個終點不可達報文 源點抑制:源點抑制報文通知源點,由於路由器或者目的主機的擁塞,資料報已被丟棄,源點必須放慢傳送速度,知道擁塞緩解為止 超時:當路由器將資料報的生存時間減為0就丟棄這個資料報,並向源點發送一個超時報文;當最後的終點沒有在規定的時間收到全部的分片的時候,就丟棄已收到的分片,並給源點發送一個超時報文 引數問題:當資料報的首部出現二義性的時候會給源點發送一個引數問題報文 改變路由:傳送改變路由報文可以更新主機的路由表 5、查詢報文主要用來進行網路診斷有回送請求與回答和時間戳請求與回答。回送請求與回答報文可以用來測試兩臺機器能否彼此通訊。一般會使用ping命令測試兩臺主機的可達性。時間戳請求與回答可以確定報文的往返時間,在計算的時候可以使用下面公式計算單向時間以及往返時間:

傳送時間 = 接收時間戳 - 原始時間戳接收時間 = 分組返回時間戳 - 傳送時間戳往返時間 = 傳送時間 + 接收時間
  • 1
  • 2
  • 3

6、在以下集中情況不會產生ICMP差錯報文: 1)已經能夠攜帶ICMP報文的資料報 2)對於分片的資料報,如果不是第一個分片那麼就不產生ICMP差錯資料報 3)對於具有多播地址的資料報不產生ICMP報文 4)具有特殊地址的資料報不產生ICMP報文

ARP協議

1、ARP把目的主機的IP地址對映為MAC地址,這樣把IP資料報封裝成幀(乙太網上對01串的分組定義)後才能通過物理網路,這時就需要目的主機的MAC地址,而ARP協議正是這樣的作用 2、為了找到接收主機的MAC地址,傳送方會給同一個網路的所有主機發送一個ARP查詢分組,網路上的主機收到該ARP分組後,只有期待接收的主機才會返回一個ARP響應分組。這個分組包括髮送方的實體地址以及接收方的實體地址(當然還有IP地址),這個ARP響應分組是單獨發給源主機的。 3、如果接收主機與源主機不是一個網路,源主機需要查詢它的路由表,找到下一個路由器的IP地址。如果源主機中沒有路由表,則會交給預設路由器處理ARP查詢分組,這個路由器的IP地址必須是被對映為MAC地址的邏輯地址 4、如果源主機是路由器,該路由器收到要傳送不同網路的資料報後,會先檢查自己的路由表,找到下一個路由器的IP地址。下一個路由器的IP就是必須被對映為MAC地址的邏輯地址