您當(dāng)前位置: 主頁(yè) > 資訊動(dòng)態(tài) > IT知識(shí)庫(kù) >
ICMP
ICMP(Internet Control Message Protocol)Internet控制報(bào)文協(xié)議。它是TCP/IP協(xié)議簇的一個(gè)子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息。控制消息是指網(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對(duì)于用戶數(shù)據(jù)的傳遞起著重要的作用。
ICMP協(xié)議的功能只要有:
· 確認(rèn)IP包是否到達(dá)目標(biāo)地址
· 通知在發(fā)送過(guò)程中IP包被丟棄的原因
ICMP的報(bào)文分為兩類(lèi),一類(lèi)是ICMP詢問(wèn)報(bào)文;一類(lèi)是ICMP差錯(cuò)報(bào)告報(bào)文
常見(jiàn)ICMP類(lèi)型
ICMP
ICMP(Internet Control Message Protocol)Internet控制報(bào)文協(xié)議。它是TCP/IP協(xié)議簇的一個(gè)子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對(duì)于用戶數(shù)據(jù)的傳遞起著重要的作用。
ICMP協(xié)議的功能只要有:
· 確認(rèn)IP包是否到達(dá)目標(biāo)地址
· 通知在發(fā)送過(guò)程中IP包被丟棄的原因
ICMP的報(bào)文分為兩類(lèi),一類(lèi)是ICMP詢問(wèn)報(bào)文;一類(lèi)是ICMP差錯(cuò)報(bào)告報(bào)文
常見(jiàn)ICMP類(lèi)型
不發(fā)送ICMP差錯(cuò)報(bào)文的情況:
· 對(duì)于第一個(gè)ip分片后的所有ip分片報(bào)文不發(fā)送ICMP差錯(cuò)報(bào)文
· 對(duì)具有組播地址的數(shù)據(jù)報(bào)不發(fā)送ICMP報(bào)文
· 對(duì)具有特殊地址(127.0.0.0或0.0.0.0)不發(fā)送ICMP差錯(cuò)報(bào)文
ICMP 協(xié)議多應(yīng)用在 ping 和 tracert 命令:
· ping 命令使用 ICMP 回送請(qǐng)求和應(yīng)答報(bào)文:在網(wǎng)絡(luò)可達(dá)性測(cè)試中使用的分組網(wǎng)間探測(cè)命令 ping 能產(chǎn)生 ICMP 回送請(qǐng)求和應(yīng)答報(bào)文。目的主機(jī)收到 ICMP 回送請(qǐng)求報(bào)文后立刻回送應(yīng)答報(bào)文,若源主機(jī)能收到 ICMP 回送應(yīng)答報(bào)文,則說(shuō)明到達(dá)該主機(jī)的網(wǎng)絡(luò)正常。
· 路由分析診斷 tracert 使用了 ICMP時(shí)間超過(guò)報(bào)文:tracert 命令主要用來(lái)顯示數(shù)據(jù)包到達(dá)目的主機(jī)所經(jīng)過(guò)的路徑。通過(guò)執(zhí)行一個(gè) tracert 到對(duì)方主機(jī)的命令,返回?cái)?shù)據(jù)包到達(dá)目的主機(jī)所經(jīng)歷的路徑詳細(xì)信息,并顯示每個(gè)路徑所消耗的時(shí)間。
舉個(gè)例子:
ICMP Destination Unreachalbe
看下回送請(qǐng)求和回送應(yīng)答的報(bào)文
icmp request
icmp reply
ARP協(xié)議
地址解析協(xié)議(Address Resolution Protocol),只要通過(guò)目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址。
通信過(guò)程:
· 主機(jī)A要和主機(jī)B進(jìn)行通信,首先要知道主機(jī)B的mac地址,所以會(huì)發(fā)送ARP廣播
· 其他主機(jī)收到后,發(fā)現(xiàn)找的不是自己,就會(huì)丟棄
· 主機(jī)B拆包后,發(fā)現(xiàn)找的是自己,會(huì)進(jìn)行單播回應(yīng),并記錄在自己的ARP緩存表中
ARP解析
ARP表
代理ARP
代理ARP一般就是通過(guò)網(wǎng)關(guān)設(shè)備,使用自己的 MAC 地址來(lái)對(duì)另一設(shè)備的ARP請(qǐng)求作出應(yīng)答。
為什么需要代理ARP?
先要了解,路由器的重要功能之一就是隔離廣播域,阻止廣播包擴(kuò)散,否則會(huì)造成網(wǎng)絡(luò)風(fēng)暴。
ARP請(qǐng)求是個(gè)廣播包,如果目標(biāo)地址在同一個(gè)局域網(wǎng)內(nèi),就會(huì)收到應(yīng)答。但是如果目標(biāo)地址不在同一個(gè)局域網(wǎng),該如何處理?路由器就提供了代理ARP解決這個(gè)問(wèn)題。
代理ARP
兩臺(tái)主機(jī)PC1和PC2,PC1發(fā)送ARP請(qǐng)求PC2的MAC地址時(shí),由于路由器不轉(zhuǎn)發(fā)廣播包,ARP請(qǐng)求只能到達(dá)路由器。如果路由器啟用了代理ARP功能,并知道PC2屬于它連接的網(wǎng)絡(luò),那么路由器就用自己接口的MAC地址代替PC2的MAC地址來(lái)對(duì)主機(jī)PC1進(jìn)行ARP應(yīng)答。
RARP協(xié)議
反向地址轉(zhuǎn)換協(xié)議(Reverse Address Resolution Protocol)允許局域網(wǎng)的物理機(jī)器從網(wǎng)關(guān)服務(wù)器的ARP表或者緩存上請(qǐng)求其 IP 地址。即:根據(jù)其MAC地址尋找IP地址。
RARP
免費(fèi)ARP
在獲取或變更IP地址時(shí),向外發(fā)出一個(gè)ARP,但請(qǐng)求的目標(biāo)IP為本地。
一個(gè)主機(jī)可以通過(guò)它來(lái)確定另一個(gè)主機(jī)是否設(shè)置了相同的 IP地址。正常情況下發(fā)送免費(fèi)ARP請(qǐng)求不會(huì)收到ARP應(yīng)答,如果收到了一個(gè)ARP應(yīng)答,則說(shuō)明網(wǎng)絡(luò)中存在與本機(jī)相同的IP地址的主機(jī),發(fā)生了地址沖突。
ARP欺騙
通過(guò)廣播向局域網(wǎng)的其他主機(jī)廣播一個(gè)偽造的網(wǎng)關(guān)MAC地址和IP地址對(duì)應(yīng)表,局域網(wǎng)其他主機(jī)收到這個(gè)偽造的信息之后就會(huì)更新自己的ARP表。這樣,當(dāng)這些主機(jī)向外發(fā)送報(bào)文時(shí),雖然會(huì)根據(jù)正確的網(wǎng)關(guān)的IP地址發(fā)包,但實(shí)際上卻發(fā)送到了一個(gè)錯(cuò)誤的MAC地址上,導(dǎo)致數(shù)據(jù)包無(wú)法發(fā)送出去,從而出現(xiàn)無(wú)法上網(wǎng)等情況。
可以通過(guò)設(shè)置靜態(tài)的MAC->IP對(duì)應(yīng)表,不再接收廣播收到的ARP信息。
不發(fā)送ICMP差錯(cuò)報(bào)文的情況:
· 對(duì)于第一個(gè)ip分片后的所有ip分片報(bào)文不發(fā)送ICMP差錯(cuò)報(bào)文
· 對(duì)具有組播地址的數(shù)據(jù)報(bào)不發(fā)送ICMP報(bào)文
· 對(duì)具有特殊地址(127.0.0.0或0.0.0.0)不發(fā)送ICMP差錯(cuò)報(bào)文
ICMP 協(xié)議多應(yīng)用在 ping 和 tracert 命令:
· ping 命令使用 ICMP 回送請(qǐng)求和應(yīng)答報(bào)文:在網(wǎng)絡(luò)可達(dá)性測(cè)試中使用的分組網(wǎng)間探測(cè)命令 ping 能產(chǎn)生 ICMP 回送請(qǐng)求和應(yīng)答報(bào)文。目的主機(jī)收到 ICMP 回送請(qǐng)求報(bào)文后立刻回送應(yīng)答報(bào)文,若源主機(jī)能收到 ICMP 回送應(yīng)答報(bào)文,則說(shuō)明到達(dá)該主機(jī)的網(wǎng)絡(luò)正常。
· 路由分析診斷 tracert 使用了 ICMP時(shí)間超過(guò)報(bào)文:tracert 命令主要用來(lái)顯示數(shù)據(jù)包到達(dá)目的主機(jī)所經(jīng)過(guò)的路徑。通過(guò)執(zhí)行一個(gè) tracert 到對(duì)方主機(jī)的命令,返回?cái)?shù)據(jù)包到達(dá)目的主機(jī)所經(jīng)歷的路徑詳細(xì)信息,并顯示每個(gè)路徑所消耗的時(shí)間。
舉個(gè)例子:
ICMP
看下回送請(qǐng)求和回送應(yīng)答的報(bào)文
icmp request
icmp
ARP協(xié)議
地址解析協(xié)議(Address Resolution Protocol),只要通過(guò)目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址。
通信過(guò)程:
· 主機(jī)A要和主機(jī)B進(jìn)行通信,首先要知道主機(jī)B的mac地址,所以會(huì)發(fā)送ARP廣播
· 其他主機(jī)收到后,發(fā)現(xiàn)找的不是自己,就會(huì)丟棄
· 主機(jī)B拆包后,發(fā)現(xiàn)找的是自己,會(huì)進(jìn)行單播回應(yīng),并記錄在自己的ARP緩存表中
ARP解析
ARP表
代理ARP
代理ARP一般就是通過(guò)網(wǎng)關(guān)設(shè)備,使用自己的 MAC 地址來(lái)對(duì)另一設(shè)備的ARP請(qǐng)求作出應(yīng)答。
為什么需要代理ARP?
先要了解,路由器的重要功能之一就是隔離廣播域,阻止廣播包擴(kuò)散,否則會(huì)造成網(wǎng)絡(luò)風(fēng)暴。
ARP請(qǐng)求是個(gè)廣播包,如果目標(biāo)地址在同一個(gè)局域網(wǎng)內(nèi),就會(huì)收到應(yīng)答。但是如果目標(biāo)地址不在同一個(gè)局域網(wǎng),該如何處理?路由器就提供了代理ARP解決這個(gè)問(wèn)題。
代理ARP
兩臺(tái)主機(jī)PC1和PC2,PC1發(fā)送ARP請(qǐng)求PC2的MAC地址時(shí),由于路由器不轉(zhuǎn)發(fā)廣播包,ARP請(qǐng)求只能到達(dá)路由器。如果路由器啟用了代理ARP功能,并知道PC2屬于它連接的網(wǎng)絡(luò),那么路由器就用自己接口的MAC地址代替PC2的MAC地址來(lái)對(duì)主機(jī)PC1進(jìn)行ARP應(yīng)答。
RARP協(xié)議
反向地址轉(zhuǎn)換協(xié)議(Reverse Address Resolution Protocol)允許局域網(wǎng)的物理機(jī)器從網(wǎng)關(guān)服務(wù)器的ARP表或者緩存上請(qǐng)求其 IP 地址。即:根據(jù)其MAC地址尋找IP地址。
RARP
免費(fèi)ARP
在獲取或變更IP地址時(shí),向外發(fā)出一個(gè)ARP,但請(qǐng)求的目標(biāo)IP為本地。
一個(gè)主機(jī)可以通過(guò)它來(lái)確定另一個(gè)主機(jī)是否設(shè)置了相同的 IP地址。正常情況下發(fā)送免費(fèi)ARP請(qǐng)求不會(huì)收到ARP應(yīng)答,如果收到了一個(gè)ARP應(yīng)答,則說(shuō)明網(wǎng)絡(luò)中存在與本機(jī)相同的IP地址的主機(jī),發(fā)生了地址沖突。
ARP欺騙
通過(guò)廣播向局域網(wǎng)的其他主機(jī)廣播一個(gè)偽造的網(wǎng)關(guān)MAC地址和IP地址對(duì)應(yīng)表,局域網(wǎng)其他主機(jī)收到這個(gè)偽造的信息之后就會(huì)更新自己的ARP表。這樣,當(dāng)這些主機(jī)向外發(fā)送報(bào)文時(shí),雖然會(huì)根據(jù)正確的網(wǎng)關(guān)的IP地址發(fā)包,但實(shí)際上卻發(fā)送到了一個(gè)錯(cuò)誤的MAC地址上,導(dǎo)致數(shù)據(jù)包無(wú)法發(fā)送出去,從而出現(xiàn)無(wú)法上網(wǎng)等情況。
可以通過(guò)設(shè)置靜態(tài)的MAC->IP對(duì)應(yīng)表,不再接收廣播收到的ARP信息。
相關(guān)文章