網工必懂的ICMP協議

福建廈門微思網絡始于2002年,面向全國招生!

主要課程:華為、思科、紅帽、Oracle、VMware、CISP安全系列、PMP.......

網絡工程師實用課程華為HCIA課程介紹

網絡工程師使用課程華為HCIP課程介紹

網絡工程師使用課程華為HCIE課程介紹

因特網控制報文協議ICMP(Internet Control Message Protocol)是一個差錯報告機制,是TCP/IP協議簇中的一個重要子協議,通常被IP層或更高層協議(TCP或UDP)使用,屬于網絡層協議,主要用于在IP主機和路由器之間傳遞控制消息,用于報告主機是否可達、路由是否可用等。這些控制消息雖然并不傳輸用戶數據,但是對于收集各種網絡信息、診斷和排除各種網絡故障以及用戶數據的傳遞具有至關重要的作用。

為什么需要ICMP?

在數據傳輸的過程中,IP提供盡力而為的服務,指為了把數據包發送到目的地址盡最大努力。它并不對目的主機是否收到數據包進行驗證,無法進行流量控制和差錯控制。因此在數據包傳輸過程中,產生各種錯誤在所難免。為了更有效地轉發IP數據包和提高數據包交付成功的機會,ICMP應運而生。使用ICMP,當網絡中數據包傳輸出現問題時,主機或設備就會向上層協議報告差錯情況和提供有關異常情況的報告,使得上層協議能夠通過自己的差錯控制程序來判斷通信是否正確,以進行流量控制和差錯控制,從而保證服務質量。

ICMP如何工作?

從技術角度來說,ICMP就是一個差錯報告機制,其工作機理也比較簡單,即當數據包處理過程出現差錯時,ICMP向數據包的源端設備報告這個差錯,它既不會糾正這個差錯,也不會通知中間的網絡設備。因為ICMP報文被封裝在IP數據包內部,作為IP數據包的數據部分通過互聯網傳遞。IP數據包中的字段包含源端和最終的目的端,并沒有記錄報文在網絡傳遞中的全部路徑(除非IP數據包中設置了路由記錄選項)。因此當設備檢測到差錯時,它無法通知中間的網絡設備,只能向源端發送差錯報告。

源端在收到差錯報告后,它雖然不能判斷差錯是由中間哪個網絡設備所引起的,但是卻可以根據ICMP報文確定發生錯誤的類型,并確定如何才能更好地重發傳遞失敗的數據包。

ICMP報文格式如圖所示,每一個ICMP消息都將包含引發這條ICMP消息的數據包的完全IP包頭,ICMP報文則作為IP數據包的數據部分封裝在IP數據包內部。ICMP包頭中包含的三個固定字段就是源端設備確定發生錯誤的類型的主要依據。

  • Type字段表示ICMP消息的類型;
  • Code字段表示ICMP消息類型細分的子類型;
  • Checksum字段表示ICMP報文的校驗和。

不同的Type和Code值表示不同的ICMP報文類型,對應了數據包處理過程中可能出現的不同錯誤情況,不同類型的ICMP報文又分為差錯報文和查詢報文兩種,如ICMP報文分類表所示。

此外,我們還要認識到,ICMP協議在以下情況下不會產生ICMP差錯報文:

  • ICMP差錯報文不會產生ICMP差錯報文(但ICMP查詢報文可能會產生ICMP差錯報文),此條規定主要為了防止ICMP消息的無限產生和傳遞;
  • 目的地址是廣播地址或多播地址的IP數據報文;
  • 作為鏈路層廣播的數據包;
  • 不是IP分片的第一片;
  • 源地址不是單個主機的數據包,也就是說,源地址不能為零地址、環回地址、廣播地址或多播地址。


ICMP報文格式

表1-1 ICMP報文分類

ICMP的典型應用

IP數據報及其他應用程序通過ICMP報文可以實現多種應用,其中Ping程序和Tracert(Traceroute)程序最為常見。此外,在網絡管理和監測中,網絡質量分析NQA(Network Quality Analysis)技術更加充分應用了ICMP。

Ping

Ping程序是最常見的用于檢測IPv4和IPv6網絡設備是否可達的調試手段,它使用ICMP的echo信息來確定:

  • 遠程設備是否可達;
  • 與遠程主機通信的來回旅程(round-trip)的延遲;
  • 報文包的丟失情況。

Tracert

Tracert程序主要用于查看數據包從源端到目的端的路徑信息,從而檢查網絡連接是否可用。當網絡出現故障時,用戶可以使用該命令定位故障點。

Tracert利用ICMP超時信息和目的不可達信息來確定從一個主機到網絡上其他主機的路由,并顯示IP網絡中每一跳的延遲(這里的延遲是指:分組從信息源發送到目的地所需的時間,延遲也分為許多的種類——傳播延遲、傳輸延遲、處理延遲、排隊延遲等)。

NQA

網絡質量分析NQA(Network Quality Analysis)是一種實時的網絡性能探測和統計技術,可以對響應時間、網絡抖動、丟包率等網絡信息進行統計。NQA能夠實時監視網絡服務質量,在網絡發生故障時進行有效的故障診斷和定位。

利用不同類型的ICMP報文,NQA實現了Ping和Tracert功能的擴展和增強,可以實現對網絡運行狀況的準確測試,輸出統計信息。比如NQA的ICMP測試、ICMP Jitter測試和Trace測試等。

  • ICMP測試ICMP測試是通過發送ICMP Echo請求報文和Echo響應報文來判斷目的地的可達性、計算網絡響應時間及丟包率,從而清晰地反映出網絡性能及暢通情況。ICMP測試提供類似于命令行下的Ping命令功能,但輸出信息更為豐富。
  • ICMP Jitter測試ICMP Jitter測試是以ICMP報文為承載,通過記錄在報文中的時間戳信息來統計時延、抖動、丟包的一種測試方法。Jitter(抖動時間)是指相鄰兩個報文的接收時間間隔減去這兩個報文的發送時間間隔。
  • Trace測試NQA的Trace測試用于檢測源端到目的端的轉發路徑,并沿該路徑記錄源設備到中間各個設備的時延等信息。Trace測試類似于Tracert命令功能,但輸出信息更為豐富。每一跳信息中能夠顯示平均時延、丟包、最后一個包接收時間等信息。

ICMP安全

ICMP對于網絡安全具有極為重要的意義。ICMP本身非常簡單,它并不具有驗證機制,這也導致它非常容易被用于攻擊交換機、路由器等網絡設備。

ICMP攻擊

目前ICMP攻擊絕大部分都可以歸類為拒絕服務攻擊(Denial of Service, DOS),其中最為常見的是ICMP泛洪攻擊,是指攻擊者在短時間內向目標設備發送大量的ICMP虛假報文,導致目標設備忙于應付無用報文,而無法為用戶提供正常服務,其過程如下圖所示。


ICMP泛洪攻擊

ICMP泛洪攻擊具體又可分為針對帶寬的DOS攻擊和端口掃描攻擊(針對連接的DOS攻擊)兩類:

  • 針對帶寬的DOS攻擊攻擊者發送大量偽造的ICMP Echo請求報文,交換機、路由器等網絡設備的CPU需要響應這種報文,會占用大量的帶寬和CPU資源,這種DOS攻擊和其他DOS攻擊一樣,消耗設備的資源而使得設備無法提供正常服務。ICMP Echo響應報文具有較高的優先級,在一般情況下,網絡總是允許內部主機使用Ping命令。 這種攻擊僅限于攻擊網絡帶寬,單個攻擊者就能發起這種攻擊。更厲害的攻擊形式,如smurf,可以使整個子網內的主機對目標主機進行攻擊,從而擴大ICMP流量。
  • 端口掃描攻擊(針對連接的DOS攻擊)端口掃描是指攻擊者發送大量的端口掃描報文,交換機需要回應大量的ICMP目的不可達報文,這種攻擊既消耗系統的資源,同時攻擊者能夠很輕易獲得設備開啟的端口,然后可以針對這些端口進行攻擊,可以影響所有IP設備的網絡連接。

此外,還有針對主機的DOS攻擊,又被稱為Ping-of-Death,主要是攻擊操作系統的漏洞。

由于在早期的階段,路由器對包的最大尺寸都有限制,許多操作系統在TCP/IP棧的實現中,對ICMP包的最大長度規定為64KB,并且在對ICMP包頭進行讀取之后,要根據該包頭里包含的信息來為有效載荷生成緩沖區。當收到畸形的、聲稱自己的尺寸超過ICMP報文最大長度的包,接收方設備根據這個信息將分配超過64KB的有效載荷,就會出現內存分配錯誤,導致TCP/IP堆棧崩潰,從而產生宕機。

根據這個原理,可以簡單通過發送一個非法的ICMP Echo請求報文,就可以使目標系統崩潰或重啟。許多系統包括Windows、Unix、Macintosh ,還有一些交換機、路由器和打印機,都容易遭受此類攻擊。如果用戶使用的操作系統的版本過于陳舊,請確保打好了補丁。

ICMP攻擊防范

ICMP協議在網絡數據傳輸和網絡管理與監測中具有極為重要的作用,同時其本身對于網絡安全也具有極為重要的意義。因此,為了減輕設備處理ICMP報文的壓力以及防范ICMP攻擊,ICMP攻擊防范技術尤為重要。目前主要采用ICMP報文限速、ICMP報文合法性檢查、丟棄不需要處理的ICMP報文和不響應不可達報文來防范攻擊,保護設備的CPU資源。

  • 報文限速ICMP報文限速包括端口限速、VLAN限速和全局限速,同時也實現芯片的限速,通過多個維度來保證ICMP的洪泛攻擊。
  • 合法性檢查&丟棄不需要處理的報文對于一些不合法的ICMP報文,比如TTL為0、ICMP類型為15、16、17的報文,都直接丟棄,同時可配置丟棄一些不常用或基本不使用的ICMP報文,包括TTL為1、帶選項、不可達的ICMP報文。
  • 不響應不可達報文在用戶通過發送大量端口不可達或網絡不可達報文攻擊設備時,設備收到這些報文后可以不響應,直接丟棄,以保護CPU資源。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716186.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

更詳細的軟件測試理論基礎:流程,開發、測試模型,測試分類,測試用例及其設計方法,缺陷

文章目錄 一、測試流程二、開發模型1、 瀑布模型2、增量模型3、快速模型4、其他 三、測試模型1、V模型2、W模型 四、測試分類五、測試用例 test case六、測試用例設計方法1、等價類劃分法2、邊界值分析法3、因果圖法4、判定表法5、正交法6、場景法7、流程分析法8、錯誤推測法方…

數據分析-Pandas數據的探查面積圖

數據分析-Pandas數據的探查面積圖 數據分析和處理中,難免會遇到各種數據,那么數據呈現怎樣的規律呢?不管金融數據,風控數據,營銷數據等等,莫不如此。如何通過圖示展示數據的規律? 數據表&…

第16章-DNS

目錄 1. 域名 1.1 產生背景 1.2 概述 1.3 域名的樹形層次化結構 2. DNS 2.1 概述 2.2 工作機制 3. DNS查詢模式 3.1 遞歸查詢: 3.2 迭代查詢: 4. 相關知識點 4.1 集中式DNS 4.2 國內通用DNS 4.3 配置DNS代理 1. 域名 1.1 產生背景 ① IP…

【Excel PDF 系列】iText 庫直接實現表格 PDF

你知道的越多,你不知道的越多 點贊再看,養成習慣 如果您有疑問或者見解,歡迎指教: 企鵝:869192208 文章目錄 前言生成表格 PDF 效果引入 pom 配置代碼實現定義 CreateExcelToPdfModel 對象主方法 前言 最近遇到生成 E…

Java必須掌握的繼承中的構造方法和this super關鍵字(含面試大廠題和源碼)

在Java中,繼承中的構造方法和關鍵字this、super是面試中經常涉及的重要話題。下面是一個潛在的大廠面試題,以及可能的解答和討論。 面試題: 請解釋Java中繼承中構造方法的作用以及關鍵字this和super的使用場景。請提供示例代碼加以說明。 …

EchoServer回顯服務器簡單測試

目錄 工具介紹 工具使用 測試結果 工具介紹 github的一個開源項目,是一個測壓工具 EZLippi/WebBench: Webbench是Radim Kolar在1997年寫的一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的…

ARMv8-A電源管理Power management

目錄 一、ARMv8-A電源管理概述 二、idle管理 2.1 電源和時鐘 Standby-待機 Retention-保持 Powerdown-關機 Dormant mode-休眠模式 Hotplug-熱插拔 三、動態電壓和頻率調節 四、匯編語言power指令 五、電源狀態協調接口 一、ARMv8-A電源管理概述 許多ARM系統是移動…

二維碼門樓牌管理系統:城市數字化管理的新里程碑

文章目錄 前言一、二維碼門樓牌管理系統的構成二、二維碼門樓牌管理系統的功能三、二維碼門樓牌管理系統的應用四、二維碼門樓牌管理系統的未來發展 前言 隨著城市管理的數字化、智能化水平不斷提升,二維碼門樓牌管理系統作為一種創新的城市管理方法,正…

JavaScript 學習總結(17)—— 前端開發規范之命名規范、html 規范、css 規范、js 規范

前言 一個好的程序員肯定是要能書寫可維護的代碼,而不是一次性的代碼,怎么能讓團隊當中其他人甚至一段時間時候你再看你某個時候寫的代碼也能看懂呢,這就需要規范你的代碼了。我是有一點強迫癥的人,上周我們后端給我了一個CanUsename的接口(該接口的目的是判斷輸入的目的…

Ubuntu20.04: UE4.27 中 Source Code 的編輯器下拉框沒有 Rider選項

問題描述 最近想用 Rider 作為 UE4 開發的 IDE,但安裝好 Rider 后,發現編輯器下拉框中沒有 Rider 的選項,我檢查了 UE4 的插件,發現 Rider Integration 插件已經安裝且啟用的。 環境:Ubuntu 20.04 UE4.27 Rider2023…

應急加電電源車-在航空航天、武器等多領域的應用

應急加電電源車是一種專門設計用于在緊急情況下為其他設備提供電力支持的車輛。它通常由電池或燃料電池驅動,可以在沒有外部電源的情況下為其他設備提供持續的電力供應。這種車輛在災難救援、野外作業、軍事行動等領域具有廣泛的應用。 應急加電電源車通常具有以下…

WordPress建站入門教程:如何在本地電腦搭建WordPress網站?

前面跟大家分享了『WordPress建站入門教程:如何安裝本地WordPress網站運行環境?』,接下來boke112百科就繼續跟大家分享本地電腦如何搭建WordPress網站。 小皮面板(phpstudy)的“軟件管理 – 網站程序”雖然可以一鍵部…

Springboot+vue的高校教師教研信息填報系統(有報告)。Javaee項目,springboot vue前后端分離項目。

演示視頻: Springbootvue的高校教師教研信息填報系統(有報告)。Javaee項目,springboot vue前后端分離項目。 項目介紹: 采用M(model)V(view)C(controller&am…

數據審計 -本福德定律 Benford‘s law (sample database classicmodels _No.6)

數據審計 -本福德定律 Benford’s law 準備工作,可以去下載 classicmodels 數據庫資源如下 [ 點擊:classicmodels] 也可以去我的博客資源下載 文章目錄 數據審計 -本福德定律 Benfords law 前言一、什么是 本福德定律?二、數學公式三、應用…

最新會聲會影2024旗艦版系統配置要求

大家好呀!小編今天給大家帶來了一個超級實用的信息,關于會聲會影2024旗艦版的系統配置要求! 會聲會影2023-安裝包: https://souurl.cn/gtyDFc 會聲會影2023-安裝包: https://souurl.cn/ZQ6QWp 會聲會影2022-安裝包&a…

Java零基礎-反序列化和序列化

哈嘍,各位小伙伴們,你們好呀,我是喵手。 今天我要給大家分享一些自己日常學習到的一些知識點,并以文字的形式跟大家一起交流,互相學習,一個人雖可以走的更快,但一群人可以走的更遠。 我是一名后…

回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測

回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測 目錄 回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 1.Matlab實現CPO-BiTCN-B…

mc生存插火把

題目描述 話說有一天 linyorson 在“我的世界”開了一個 nn 的方陣,現在他有 m 個火把和 k 個螢石,分別放在 (x1,y1)~(xm,ym) 和 (o1,p1)~(ok,pk)的位置,沒有光并且沒放東西的地方會生成怪物。請問在這個方陣中有幾個點會生成怪物&#xf…

Vue開發實例(六)實現左側菜單導航

左側菜單導航 一、一級菜單二、二級菜單三、三級菜單1、加入相關事件 四、菜單點擊跳轉1. 創建新頁面2. 配置路由3. 菜單中加入路由配置4、處理默認的Main窗口為空的情況 五、動態左側菜單導航1、動態實現一級菜單2、動態實現二級菜單 一、一級菜單 在之前的Aside.vue中去實現…

SRIO--IP講解及環回測試

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、IP例化文件二、SRIO環回工程搭建三、板級驗證3.1 板級驗證環節3.2 系統所需硬件3.3 ILA波形前言 本章將為大家介紹 “Serial RapidIO Gen2 ”IP 的使用以及配置方法。“Serial RapidIO Ge…