接收与发送ipv6数据包

一、ipv6的概念   

        IPv6 是英文 “Internet Protocol Version 6”(互联网协议第 6 版)的缩写,是互联网工程任务组(IETF)设计的用于替代 IPv4 的下一代 IP 协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址。

        由于 IPv4 最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6 的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。

        互联网数字分配机构(IANA)在 2016 年已向国际互联网工程任务组(IETF)提出建议,要求新制定的国际互联网标准只支持 IPv6,不再兼容 IPv4。

以下是关于IPv6四种地址类型的讲解:


1. 单播地址(Unicast Address)

  • 定义:唯一标识一个网络接口,发送到单播地址的数据包会精确传输到该地址对应的接口。

  • 特点

    • 点对点通信:类似于IPv4的单播,用于一对一的直接通信(如浏览网页、发送邮件)。

    • 地址分类:IPv6单播地址包括全球单播地址(类似IPv4公网地址)、链路本地地址(用于本地链路通信)等。

  • 示例2001:db8::1 是一个全球单播地址。


2. 任意播地址(Anycast Address)

  • 定义:同一地址分配给多个接口,但数据包仅发送到“最近”的一个接口(基于路由协议计算的路径最优性)。

  • 特点

    • 服务冗余与负载均衡:常用于提高服务可用性(如DNS根服务器、CDN节点)。

    • 路由优化:路由器自动选择最短路径,用户无需感知具体服务节点。

  • 注意:IPv6任意播地址格式与单播地址相同,需通过配置实现功能区分。


3. 组播地址(Multicast Address)

  • 定义:标识一组接口,发送到组播地址的数据包会传输到该组所有接口。

  • 特点

    • 一对多通信:适用于视频会议、实时数据分发等场景。

    • 地址格式:IPv6组播地址以 ff00::/8 开头(如 ff02::1 表示链路本地所有节点)。

    • 组成员动态管理:接口可自由加入或离开组播组。

  • 对比IPv4:IPv6原生支持组播,无需依赖额外协议(如IGMP)。


4. IPv6无广播地址

  • 原因:IPv6取消了广播机制,改用组播实现类似功能。

  • 替代方案

    • 所有节点组播地址ff02::1(链路本地范围)可替代IPv4的广播。

    • 优势:减少网络拥塞,仅需通信的节点监听组播组,避免广播风暴。

  • 地址解析:IPv6使用**邻居发现协议(NDP)**替代ARP,通过组播请求完成地址解析(如MAC地址查询)。


总结对比(IPv4 vs. IPv6)

类型IPv4IPv6
单播支持(如192.168.1.1)支持(如2001:db8::1)
广播支持(如255.255.255.255),由组播替代(如ff02::1)
组播支持(依赖IGMP)原生支持(地址以ff00开头)
任意播非正式支持原生支持

        IPv6 地址分为 3 类:单播地址、任意播地址及组播地址。IPv6 地址由 8 个部分组成,每部分 16 位,共计 128 位。IPv6 地址格式类似于:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(其中 x 为十六进制位)。在 Linux 中,IPv6 地址使用。

1.ipv6报头 

        每个ipv6数据包都以ipv6包头开头,ipv6报头的长度固定40字节。整体结构如下图:

         在Linux中结构ipv6hdr定义如下:

2.特殊 地址类型以及用途

IPv6特殊地址类型及用途详解

1. 链路本地单播地址(Link-Local Unicast Address)
  • 格式fe80::/64

  • 用途

    • 用于同一物理链路上的设备通信(如路由器邻居发现、本地服务发现)。

    • 每个IPv6接口必须自动生成一个链路本地地址,无需手动配置。

  • 示例fe80::1a2b:3c4d:5e6f:7a8b


2. 全局单播地址(Global Unicast Address)
  • 通用格式

    | 全局路由前缀(n位) | 子网ID(m位) | 接口ID(128-n-m位) |
  • 用途

    • 用于互联网上的全局通信(类似IPv4公网地址)。

    • 由ISP或网络管理员分配。

  • 示例2001:0db8:85a3:0000:0000:8a2e:0370:7334


3. 环回地址(Loopback Address)
  • 地址::1

  • 用途

    • 用于本地主机的自我通信(类似IPv4的127.0.0.1)。

    • 测试网络协议栈是否正常工作(如ping ::1)。


4. 未指定地址(Unspecified Address)
  • 地址::

  • 用途

    • 在初始化过程中,设备未分配地址时作为源地址。

    • 关键应用:重复地址检测(DAD,Duplicate Address Detection),避免地址冲突。


5. 映射IPv4的IPv6地址(IPv4-Mapped IPv6 Address)
  • 格式::ffff:<IPv4地址>

    • 结构:前80位为0,接下来16位为ffff,最后32位为IPv4地址。

  • 用途

    • 允许IPv6设备与IPv4设备通信(双栈环境下)。

    • 例如:::ffff:192.168.1.1 表示IPv4地址192.168.1.1


对比总结

地址类型IPv6地址示例功能
链路本地地址fe80::1a2b:3c4d:5e6f本地链路通信,必选地址
全局单播地址2001:db8::1234全球互联网通信
环回地址::1本地协议栈测试
未指定地址::临时源地址,DAD检测
映射IPv4地址::ffff:192.168.1.1IPv4与IPv6兼容通信

二、接收ipv6数据包

        ipv6数据包的主要接受方法是ipv6_rcv(),它是所有ipv6数据包的处理程序。

接收的流程如下:

 

三、发送ipv6数据包

         IPv6 传输路径很像 IPv4 传输路径,使用方法名称基本都很像,在 IPv6 中,也有两个从第 4 层发送 IPv6 数据包的主方法:一个是方法ip6_xmit(),由 TCP、流控制传输协议和数据报拥塞控制协议使用;一个是方法ip6_append_data(),由 UDP 和原始套接字等使用。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龙虎榜——20250321

今日A股龙虎榜方向分析 根据2025年3月21日龙虎榜数据&#xff08;涨停56家&#xff0c;跌停31家&#xff09;&#xff0c;市场呈现结构性分化行情&#xff0c;资金聚焦海洋经济、机器人、锂电等主线&#xff0c;部分个股遭机构大幅抛售。以下是具体方向解析&#xff1a; 一、资…

springboot milvus search向量相似度查询 踩坑使用经验

1.前提提要&#xff1a;java的pom 版本为&#xff1a;2.4.9 milvus 版本是&#xff1a;2.4.13-hotfix 2.先来工具类方法 /*** 向量搜索* param client* param query* return*/public SearchResp search(NonNull MilvusClientV2 client, NonNull VectorCondition query) {final …

[网络安全] 滥用Azure内置Contributor角色横向移动至Azure VM

本文来源于团队的超辉老师&#xff0c;其系统分析了Azure RBAC角色模型及其在权限滥用场景下的攻击路径。通过利用AADInternals工具提升用户至Contributor角色&#xff0c;攻击者可在Azure VM中远程执行命令&#xff0c;创建后门账户&#xff0c;实现横向移动。文中详述了攻击步…

Android Compose 基础布局之 Box 和 Stack 源码深度剖析(九)

Android Compose 基础布局之 Box 和 Stack 源码深度剖析 一、引言 1.1 Android 开发中布局的重要性 在 Android 应用开发里&#xff0c;布局是构建用户界面&#xff08;UI&#xff09;的关键环节。良好的布局设计能够提升用户体验&#xff0c;使应用界面更加美观、易用且具有…

知识蒸馏:让大模型“瘦身“而不失智慧的魔术

引言&#xff1a;当AI模型需要"减肥" 在人工智能领域&#xff0c;一个有趣的悖论正在上演&#xff1a;大模型的参数规模每年以10倍速度增长&#xff0c;而移动设备的算力却始终受限。GPT-4的1750亿参数需要价值500万美元的GPU集群运行&#xff0c;但现实中的智能设备…

多路FM调频广播解调器:多路电台FM广播信号一体化解调处理方案

多路FM调频广播解调器&#xff1a;多路电台FM广播信号一体化解调处理方案 支持OEM型号开放式协议支持二次开发设计 北京海特伟业科技有限公司任洪卓发布于2025年3月21日 在信息传播领域&#xff0c;FM调频广播媒体以其独特的优势持续发挥着重要作用。为了应对日益增长的多路…

如何在Spring Boot中设置HttpOnly Cookie以增强安全性

引言 在Web开发中,Cookie是用于在客户端和服务器之间传递信息的重要机制。然而,Cookie的安全性一直是一个备受关注的问题。特别是当Cookie中存储了敏感信息(如会话ID)时,如何防止这些信息被恶意脚本窃取就显得尤为重要。HttpOnly属性是增强Cookie安全性的一种有效手段。本…

LangManus:新一代开源智能体框架如何让AI开发更简单?

你是否想过&#xff0c;代码生成、数据分析甚至系统调试&#xff0c;都能由一个“AI助手”自动完成&#xff1f;最近&#xff0c;一款名为LangManus的开源项目在开发者社区掀起热议。它不只是一个工具库&#xff0c;更是一个能自主思考、执行复杂任务的智能体框架。无论是企业内…

【STM32】SPI通信协议W25Q64Flash存储器芯片(学习笔记)

通信接口部分有介绍SPI&#xff1a;【STM32】USART串口协议&串口外设-学习笔记-CSDN博客 SPI通信协议 SPI通信 SPI&#xff08;Serial Peripheral Interface&#xff09;是由Motorola公司开发的一种通用数据总线四根通信线&#xff1a;SCK&#xff08;Serial Clock&…

批量合并 PPT 文件,支持合并成单个文件也支持按文件夹合并

合并多个 PPT 为一个 PPT 文档是我们经常会碰到的需求&#xff0c;合并后不仅更容易管理&#xff0c;在某些场景&#xff08;比如批量打印&#xff09;下也非常的有用&#xff0c;那当我们需要批量合并多个 PPT 文档地时候&#xff0c;我们有没有比较高效的方法呢&#xff1f;今…

LDAP从入门到实战:环境部署与配置指南(下)

#作者&#xff1a;朱雷 接上篇&#xff1a;《LDAP从入门到实战&#xff1a;环境部署与配置指南&#xff08;上&#xff09;》 链接: link 文章目录 2.5.添加账号2.6.停止服务2.7.使用TLS证书2.7.1. TLS 证书2.7.2. TLS 配置2.7.3. 服务器配置 2.8.使用安全连接的反向代理 2.5…

发现一个好用的Vue.js内置组件

目录 一、这个好用的内置组件是什么&#xff1f; 二、这个组件的主要功能 三、怎么使用&#xff1f; 四、使用注意事项 五、我的使用场景 一、这个好用的内置组件是什么&#xff1f; 今天在优化我的平台应用时&#xff0c;发现一个好用的组件标签--<keep-alive>。 …

dart学习记录5(类、对象)

1.获取运行时对象类型 使用Object 属性的 runtimeType&#xff0c;它返回一个 Type 对象。 print(a 的类型是 ${a.runtimeType});⚠️警告 在测试对象的类型时建议使用object is Type比测试 object.runtimeType Type 更稳定。 2.实例变量的声明 class Point {double? x;…

启明星辰春招面试题

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

Live555+Windows+MSys2 编译Androidso库和运行使用

下载 wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz tar -xzvf live555-latest.tar.gz加入版本控制 git init git add . git commit -a -m "first init" git log修改config.android-arm64 cd live vim config.android-arm64 ./genMakefile…

实用工具-Stirling-PDF

windows桌面版参考这个文档 Getting Started | Stirling-PDF 安装包推荐使用迅雷下载&#xff0c;先转存到迅雷网盘在使用迅雷下载速度嘎嘎快。 github:https://github.com/Stirling-Tools/Stirling-PDF Stirling-PDF 是一个强大的、基于 Web 的开源 PDF 处理工具&#xff0c…

借助AI Agent实现数据分析

在当今数据驱动的世界中&#xff0c;数据分析已成为企业决策、科学研究和社会治理的核心工具。然而&#xff0c;随着数据量的爆炸式增长和复杂性的提升&#xff0c;传统的数据分析方法面临着效率低下、成本高昂和人力不足等挑战。AI技术的快速发展&#xff0c;尤其是AI Agent的…

JavaScript实现一个函数,将数组扁平化(flatten),即把多维数组转为一维数组。

大白话实现一个函数&#xff0c;将数组扁平化&#xff08;flatten&#xff09;&#xff0c;即把多维数组转为一维数组。 思路 实现数组扁平化的基本思路是遍历数组中的每个元素&#xff0c;如果元素是数组&#xff0c;就递归地将其扁平化并添加到结果数组中&#xff1b;如果元…

麒麟操作系统安装人大金仓数据库

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 在当前数字化转型和信息安全备受重视的背景下&#xff0c;众多公司积极推进国产化改造进程。在操作系统领域&#xff0c;统信、open 欧拉、中标麒麟、银河麒麟等国产操作系统崭露头角&#xff0c;逐…

开发SAPUI5 Fiori应用并部署到SAP系统

首先新建一个项目文件夹 在VScode中打开 打开SAP Fiori&#xff08;需要先下载安装&#xff0c;参考上上一篇文章&#xff09; ,选择已添加的SAP S4 ERP系统 ,点击创建Firoi应用。 如果没有添加系统的&#xff0c;点击添加按钮&#xff0c;添加即可&#xff0c;注意&#xff…