网络协议系列之四:IGMP、ICMP和ARP
前言
IGMP協(xié)議是一個組管理協(xié)議,它幫助多播路由器創(chuàng)建以及更新與每一個路由接口相連的忠實成員列表(就是與該路由接口連接頻率較高)。ICMP協(xié)議實際上就是差錯控制協(xié)議,彌補(bǔ)了IP協(xié)議沒有差錯糾正機(jī)制以及差錯報告的缺憾。ARP是一個地址映射協(xié)議,可以把一個IP地址映射為MAC地址。
IGMP協(xié)議
1、IGMP是管理組成員關(guān)系的協(xié)議
2、IGMP報文分為成員關(guān)系報告報文和成員關(guān)系查詢報文。成員關(guān)系查詢報文是為了查找網(wǎng)絡(luò)中活躍的組成員而發(fā)送的報文,而成員關(guān)系報告報文是為了記錄響應(yīng)者在網(wǎng)絡(luò)中的成員關(guān)系而發(fā)送的報文
3、IGMP在路由器上的應(yīng)用:當(dāng)路由器收到一個成員關(guān)系的查詢報文后,路由器會等待接收一個多個報告,報告到達(dá)后路由器根據(jù)當(dāng)前以及到達(dá)報告中的記錄更新路由器的狀態(tài)
4、IGMP能夠為某個源點并且以某個多播組作為終點的分組做出是否轉(zhuǎn)發(fā)的決定。根據(jù)IGMP協(xié)議,有三種情況IGMP協(xié)議會做出轉(zhuǎn)發(fā):
1)如果該網(wǎng)絡(luò)中至少有一臺主機(jī)希望接收這種類型的數(shù)據(jù),會做出轉(zhuǎn)發(fā)
2)如果源地址在不在過濾列表中,意味著IGMP認(rèn)為網(wǎng)絡(luò)中有主機(jī)希望接收這種類型的數(shù)據(jù)分組,所以也會轉(zhuǎn)發(fā)
3)如果源地址在過濾列表中,但是源點計時器還沒有超時,所以IGMP仍然會進(jìn)行轉(zhuǎn)發(fā)
ICMP協(xié)議
1、ICMP報文是一種差錯控制協(xié)議。ICMP報文分為差錯報告報文和查詢報文。差錯報告報文報告了路由器或者主機(jī)在處理IP數(shù)據(jù)報過程可能遇到的問題,查詢報文總是成對成雙出現(xiàn)的,主要幫助主機(jī)或者網(wǎng)絡(luò)管理人員獲取特定的信息
2、ICMP報文的首部為8字節(jié),ICMP數(shù)據(jù)報要被封裝成IP數(shù)據(jù)報才能傳到下一層進(jìn)行傳輸。所以任何一個ICMP報文都包括IP首部和數(shù)據(jù)報的前8個字節(jié)(為什么是8字節(jié)?書上說是包括了端口號和序號信息,但不知道在TCP是怎么處理的。還是繼續(xù)往后看吧)
3、ICMP總是把出錯信息發(fā)送給最初的數(shù)據(jù)源(可以發(fā)送其他數(shù)據(jù)源嗎?答案是不能。因為在數(shù)據(jù)報中唯一可用的地址信息就是發(fā)送地址以及目的地址)
4、差錯報告報文進(jìn)行差錯報告,差錯高高報文會處理5種類型的信息:終點不可達(dá)、源點抑制、超時、參數(shù)問題和改變路由。
終點不可達(dá):當(dāng)路由器無法為一個數(shù)據(jù)找到路由或者主機(jī)無法交付一個數(shù)據(jù)的時候,會報告一個終點不可達(dá)報文
源點抑制:源點抑制報文通知源點,由于路由器或者目的主機(jī)的擁塞,數(shù)據(jù)報已被丟棄,源點必須放慢發(fā)送速度,知道擁塞緩解為止
超時:當(dāng)路由器將數(shù)據(jù)報的生存時間減為0就丟棄這個數(shù)據(jù)報,并向源點發(fā)送一個超時報文;當(dāng)最后的終點沒有在規(guī)定的時間收到全部的分片的時候,就丟棄已收到的分片,并給源點發(fā)送一個超時報文
參數(shù)問題:當(dāng)數(shù)據(jù)報的首部出現(xiàn)二義性的時候會給源點發(fā)送一個參數(shù)問題報文
改變路由:發(fā)送改變路由報文可以更新主機(jī)的路由表
5、查詢報文主要用來進(jìn)行網(wǎng)絡(luò)診斷有回送請求與回答和時間戳請求與回答。回送請求與回答報文可以用來測試兩臺機(jī)器能否彼此通信。一般會使用ping命令測試兩臺主機(jī)的可達(dá)性。時間戳請求與回答可以確定報文的往返時間,在計算的時候可以使用下面公式計算單向時間以及往返時間:
發(fā)送時間 = 接收時間戳 - 原始時間戳
接收時間 = 分組返回時間戳 - 發(fā)送時間戳
往返時間 = 發(fā)送時間 + 接收時間
6、在以下集中情況不會產(chǎn)生ICMP差錯報文:
1)已經(jīng)能夠攜帶ICMP報文的數(shù)據(jù)報
2)對于分片的數(shù)據(jù)報,如果不是第一個分片那么就不產(chǎn)生ICMP差錯數(shù)據(jù)報
3)對于具有多播地址的數(shù)據(jù)報不產(chǎn)生ICMP報文
4)具有特殊地址的數(shù)據(jù)報不產(chǎn)生ICMP報文
ARP協(xié)議
1、ARP把目的主機(jī)的IP地址映射為MAC地址,這樣把IP數(shù)據(jù)報封裝成幀(以太網(wǎng)上對01串的分組定義)后才能通過物理網(wǎng)絡(luò),這時就需要目的主機(jī)的MAC地址,而ARP協(xié)議正是這樣的作用
2、為了找到接收主機(jī)的MAC地址,發(fā)送方會給同一個網(wǎng)絡(luò)的所有主機(jī)發(fā)送一個ARP查詢分組,網(wǎng)絡(luò)上的主機(jī)收到該ARP分組后,只有期待接收的主機(jī)才會返回一個ARP響應(yīng)分組。這個分組包括發(fā)送方的物理地址以及接收方的物理地址(當(dāng)然還有IP地址),這個ARP響應(yīng)分組是單獨發(fā)給源主機(jī)的。
3、如果接收主機(jī)與源主機(jī)不是一個網(wǎng)絡(luò),源主機(jī)需要查找它的路由表,找到下一個路由器的IP地址。如果源主機(jī)中沒有路由表,則會交給默認(rèn)路由器處理ARP查詢分組,這個路由器的IP地址必須是被映射為MAC地址的邏輯地址
4、如果源主機(jī)是路由器,該路由器收到要發(fā)送不同網(wǎng)絡(luò)的數(shù)據(jù)報后,會先檢查自己的路由表,找到下一個路由器的IP地址。下一個路由器的IP就是必須被映射為MAC地址的邏輯地址
————————————————
版權(quán)聲明:本文為CSDN博主「rhwayfunn」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u011116672/article/details/50997806
總結(jié)
以上是生活随笔為你收集整理的网络协议系列之四:IGMP、ICMP和ARP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP:SEQ号与ACK号
- 下一篇: wifi四次握手过程