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