3.5 ICMPv6 報文和報文類型

来源:https://www.cnblogs.com/kmist/p/18116019
-Advertisement-
Play Games

目錄3.5 ICMPv6 報文和報文類型1. ICMPv6 報頭2. ICMPv6 報文類型 3.5 ICMPv6 報文和報文類型 1. ICMPv6 報頭 ICMPv6的報頭由 type(8bit)\ code(8bit)\ checksum(16bit) 和 可變數據組成,由於可變數據太多,這裡 ...


目錄

3.5 ICMPv6 報文和報文類型

1. ICMPv6 報頭

ICMPv6的報頭由 type(8bit)\ code(8bit)\ checksum(16bit)可變數據組成,由於可變數據太多,這裡暫不羅列,由具體協議展開。

image-20240331123223221

struct icmp6hdr {

	__u8		icmp6_type;
	__u8		icmp6_code;
	__sum16		icmp6_cksum;
	...
}

在 ICMPv6 的消息分類中,Type欄位的最高位為0時(0-127),表示錯誤消息,為1時(128-255),表示信息消息。ICMPv4 中則使用error欄位來表示。

2. ICMPv6 報文類型

下麵是ICMPv6 報文的類型。(部分)

image-20240331140444535

在 ICMPv6 中,沒有像 ICMPv4 一樣的數組icmp_pointers[]來註冊各種消息的處理函數,而是使用一個大的 switch 來選擇不同消息類型的處理函數。

TYPEID 消息類型 處理函數
1 ICMPV6_DEST_UNREACH icmpv6_notify
2 ICMPV6_PKT_TOOBIG icmpv6_notify
3 ICMPV6_TIME_EXCEED icmpv6_notify
4 ICMPV6_PARAMPROB icmpv6_notify
128 ICMPV6_ECHO_REQUEST icmpv6_echo_reply
129 ICMPV6_ECHO_REPLY ping_rcv
130 ICMPV6_MGM_QUERY igmp6_event_query
131 ICMPV6_MGM_REPORT igmp6_event_report
132 ICMPV6_MGM_REDUCTION --
133 NDISC_ROUTER_SOLICITATION ndisc_rcv
134 NDISC_ROUTER_ADVERTISEMENT ndisc_rcv
135 NDISC_NEIGHBOUR_SOLICITATION ndisc_rcv
136 NDISC_NEIGHBOUR_ADVERTISEMENT ndisc_rcv
137 NDISC_REDIRECT ndisc_rcv

處理函數進行歸納有:

查詢處理: icmpv6_echo_reply() \ ping_rcv() \ igmp6_event_query() \ igmp6_event_report()

差錯處理: icmpv6_notify()

鄰居發現函數處理:ndisc_rcv() 後文展開。

  • icmpv6_echo_reply() 負責處理echo請求。
  • ping_rcv() 負責處理echo應答。這個方法同ICMPv4 共用,是個雙棧函數。
  • igmp6_event_query() 負責處理組播偵聽者查詢,後文展開。
  • igmp6_event_report() 負責處理組播偵聽者報告, 後文展開。
  • icmpv6_notify() 負責處理接收到的錯誤消息,並且統計。
  • ndisc_rcv() 所有鄰居發現類函數都有這個函數處理。後文展開。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • gRPC是一個現代的開源高性能遠程過程調用(RPC)框架,它可以高效地連接數據中心內和跨數據中心的服務,支持負載平衡、跟蹤、運行狀況檢查和身份驗證。 gRPC通過使用 Protocol Buffers 作為數據傳輸格式,實現了在不同平臺上的通信,並支持雙向流和流式傳輸。RPC 是遠程過程調用的縮寫, ...
  • 到目前為止,Orleans7的核心概念基本已經學完,我準備使用Orleans7做一個項目實戰,來總結自己的學習效果。 項目效果 通過Orleans7來完成一個貪吃蛇游戲,要求如下: 可以多人線上玩 貪吃蛇可以上/下/左/右改方向 貪吃蛇吃完食物,身體長度+1 項目暫定架構 初步設想,此游戲包括一個O ...
  • 概念 在Orleans中,Streaming是一組API和功能集,它提供了一種構建、發佈和消費數據流的方式。 這些流可以是任何類型的數據,從簡單的消息到複雜的事件或數據記錄。Streaming API允許你定義、發佈和消費這些流,而無需關心底層的傳輸機制或數據存儲。 每個流都有一個唯一的標識符,稱為 ...
  • 概述:WPF中通過`Style`實現TextBox水印文本,使用`WatermarkTextBox`類及`ControlTemplate`。這個示例通過`VisualStateManager`在文本框失去焦點且內容為空時顯示水印文本。通過`Watermark`屬性簡化水印文本設置,提高可維護性。 在 ...
  • 概述:WPF中按名稱或類型查找控制項可通過通用類庫實現。提供的`ControlFinder`類庫包含方法,可輕鬆在VisualTree中查找並操作WPF控制項。通過示例展示了按名稱和按類型查找按鈕和文本框的用法,增強了控制項查找的便捷性。 在WPF中,按名稱或類型查找控制項通常涉及使用FindName方法或 ...
  • 在WPF開發中,經常聽到各種屬性,如:依賴屬性,附加屬性,CLR屬性,那這些不同類型的屬性,具體又有什麼作用呢?今天以一些簡單的小例子,簡述一下WPF開發中,各種屬性的相關概念和應用,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 這是我本人編寫的一個排序演算法,主要就是解決複雜多組數字組合的這種文件名或者字元串的排序,排序主要規則就是從前往後對每一組數據進行排序,效果及截圖如下: 以下是使用方法: 第一步 搜索和安裝我的Nuget包 搜索和安裝zmjtool這個包,我寫的,如下圖: 第二步 使用HMSorter的Sort方法進 ...
  • Ubuntu 22.04 自帶ufw 無需下載 ufw是Uncomplicated Firewall的縮寫,是一個用戶友好的命令行工具,用於管理Ubuntu系統上的防火牆。通過ufw命令,用戶可以輕鬆地配置防火牆規則、查看當前的防火牆狀態、啟用或禁用防火牆等操作,幫助用戶保護系統安全並控制網路流量。 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...