Linux 内核源码分析---IPv6 数据包

news2024/9/20 13:17:40

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

由于IPv4最大的问题在于网络地址资源不足,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。互联网数字分配机构(IANA)在2016年已向国际互联网工程任务组(IETF)提出建议,要求新制定的国际互联网标准只支持IPv6,不再兼容IPv4。

IPv6地址分为3类:单播地址、任意播地址及组播地址。

  • 单播
    在单播寻址模式下,IPv6 接口(host)在网段中唯一标识。 IPv6 数据包包含源 IP 地址和目标 IP 地址。 主机接口配备有在该网络段中唯一的 IP 地址。当网络交换机或路由器接收到单个主机的单播 IP 分组时,它发出其连接到该特定主机的输出接口之一 。
  • 组播
    IPv6 组播模式与 IPv4相同。 目的地为多个主机的数据包在特殊的多播地址上发送。 所有对该组播信息感兴趣的主机需要首先加入该组播组。 加入组的所有接口接收组播数据包并对其进行处理,而对组播数据不感兴趣的其他主机则忽略组播信息。
  • 任播
    IPv6 引入了一种新型的寻址,称为 Anycast 寻址。 在此寻址模式下,多个接口(host)被分配相同的任播 IP 地址。 当主机希望与配备有任播 IP 地址的主机通信时,它发送单播消息。 在复杂的路由机制的帮助下,在路由成本方面,该单播消息被递送到最接近发送方的主机。

IPv6地址由被划分为 8 个 16 位块的 128 位组成,共计 128 位。
IPv6 地址格式类似于:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx(其中x为十六进制位)。
在这里插入图片描述

特殊地址
地址0:0:0:0:0:0:0:0/128不指定任何内容,称为未指定地址。 简化后,所有的0被压缩为:: / 128
在IPv4中,地址0.0.0.0与网络掩码0.0.0.0表示默认路由。 相同的概念也适用于IPv6,地址0:0:0:0:0:0:0:0,网络掩码全0表示默认路由。 应用IPv6规则后,此地址压缩为:: / 0
IPv4中的环回地址由127.0.0.1127.255.255.255系列表示。 但在IPv6中,只有0:0:0:0:0:0:0:1/128表示环回地址。 环回地址后,可以表示为:: 1/128

映射IPv4地址的IPv6地址格式为:开头 80 位全为 0,接下来的 16 全为1,余下的 32 位为IPv4地址。

IPv6地址是 IPv4 的 4 倍,但IPv6地址的头部仅比 IPv4 的头部大2倍。 IPv6 报头有一个固定报头和零个或多个可选(扩展)报头。 所有必要的信息,对路由器是必不可少的保存在固定报头。 扩展报头包含可选信息,帮助路由器了解如何处理数据包/流。

IPv6报头:每个 IPv6 数据包都以 IPv6 报头开头,IPv6报头的长度固定为 40 字节(320位)。
在这里插入图片描述
版本(4位):表示Internet协议的版本,即0110。
流量类(8位):这8位分为两部分。 最重要的6位用于服务类型,以便让路由器知道应该向该分组提供什么服务。 最低有效2位用于显式拥塞通知(ECN)。
流标签(20位):此标签用于维护属于通信的数据包的顺序流。 源标记序列以帮助路由器识别特定分组属于特定信息流。 此字段有助于避免数据包的重新排序。 它是为流媒体/实时媒体设计的。
有效负载长度(16位):该字段用于告诉路由器特定分组在其有效载荷中包含多少信息。 有效载荷由扩展报头和上层数据组成。 使用16位,可以指示高达65535个字节; 但是如果扩展报头包含逐跳扩展报头,则有效载荷可能超过65535字节,并且此字段设置为0。
下一个报头(8位):该字段用于指示扩展报头的类型,或者如果扩展报头不存在,则它指示上层PDU。 上层PDU的类型的值与IPv4的相同。
跳跃限制(8位):此字段用于无限期地停止数据包在网络中循环。 这与IPv4中的TTL相同。 跳跃限制字段的值在它通过链路(路由器/跳跃)时递减1。 当字段达到0时,数据包被丢弃。
源地址(128位):此字段指示数据包的发起方的地址。
目的地址(128位):此字段提供数据包的预期收件人的地址。

在这里插入图片描述

接收IPv6数据包:IPv6 数据包的主接收方法为ipv6_rcv(),它是所有IPv6数据包的处理程序。
在这里插入图片描述

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

https://cloud.tencent.com/developer/article/2067425
https://www.cnblogs.com/kmist/p/18116023

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

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

相关文章

看图学sql之sql中的子查询

 where子句子查询 语法: SELECT column_name [, column_name ] FROM table1 [, table2 ] WHERE column_name OPERATOR(SELECT column_name [, column_name ]FROM table1 [, table2 ][WHERE]) 子查询需要放在括号( )内。O…

课后作业-第四次

1.将web-ssrfme.zip解压缩在Ubuntu下 Docker-compose up -d 更新后的镜像重新启动容器 2.拉取成功ssrfme镜像 3.使用端口访问文件, 可以看到有一个过滤条件,它限制了file,dict协议,127.0.0.1和localhost 也不能用,…

中仕公考怎么样?2025年国考现在准备来得及吗?

2025年国考时间线 2024年10月发布公告——2024年11月报名确认——2024年11月打印准考证——2024年12月笔试——2024年3月现场资格审查——2024年3-4月面试——2025年5月补录环节 考试科目: 笔试的主要科目是:行测申论 ①行测:常识、言语理解、判断推理、数量关系…

2025智能电动窗帘推荐!电动窗帘应该如何选择?看一篇窗帘省钱攻略!一体化电动窗帘

史新华 智能家居已经走进我们的生活。 智能马桶、智能穿衣镜、语音茶吧机、小爱音箱、天猫精灵这些家居好物让生活更加精致,智能窗帘走进千家万户还会远吗?! 我最开始关注电动窗帘,就是从住酒店开始的,经常出差的同学…

uni-app里引入阿里彩色矢量图标(Symbol),却发现图标显示为黑白

当使用uniapp并尝试引入阿里iconfont的彩色图标时,发现图标显示为黑白。原因是Fontclass模式不支持彩色图标。 解决方法是下载Symbol模式的SVG文件,使用iconfont-tools进行转换,然后在项目中全局引入转换后的CSS文件,最终在组件中…

探索联邦学习:保护隐私的机器学习新范式

探索联邦学习:保护隐私的机器学习新范式 前言联邦学习简介联邦学习的原理联邦学习的应用场景联邦学习示例代码结语 前言 在数字化浪潮的推动下,我们步入了一个前所未有的数据驱动时代。海量的数据不仅为科学研究、商业决策和日常生活带来了革命性的变化&…

Datawhale X 李宏毅苹果书 AI夏令营_深度学习基础学习心得

本次学习了深度学习中的局部最小值 1、书上说有时候模型一开始就训练不起来,不管怎么更新参数损失都不下降。我之前遇到过这种情况,大概是做一个数据很不平衡的二分类,正负样本比例大概为9:1,模型倾向于全部预测为正样…

docker-compose自动化部署前后端项目--最终篇

docker-compose部署 一个项目肯定包含多个容器,每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜 像和启动容器,快速的部署项目。 使用docker-compose部署主要是编写 docker-compose.yml 脚本。 项目结构 不论是 Dockerfil…

set的所有操作

1.基本概念 2.构造和赋值 3.大小和交换 4.插入和删除 5.查找和统计 6.set和multiset的区别 7.pair对组创建 用p.first和p.second调用前后两个属性。 8.仿函数实现降序排列 自定义数据类型也一样用仿函数:

【ubuntu20.4 常用经验分享】

文章目录 背景:问题解答1、软件替换3、办公4、提供多少价值 总结 背景: 个人AI深度学习,在windows下很不方便,容易各种莫名错误,各种生态也不好 那么linux是一个选择,开始时候时保守安装了双系统&#xff…

QTableView的一行里添加两个按钮

我是光明正大地抄,作者说的欢迎转载 作者:李鹏 出处:http://www.cnblogs.com/li-peng/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接&#xff0…

基于Android Studio 多功能记事本-MySQL版

目录 一、项目演示 二、开发环境 三、项目详情 四、项目完整源码 一、项目演示 基于Android Studio 多功能记事本--MySQL版 二、开发环境 三、项目详情 1.启动页 这段代码主要实现了以下功能: 1. **延迟跳转**:在 StartActivity 中,使用…

polarctf靶场[WEB]cookie欺骗、upload、签到

[web]cookie欺骗 考点:cookie值 工具:Burp Suite抓包 根据题目提示,cookie欺骗,所以要在cookie值寻找关键 进入网页之后,说只有admin用户才能得到flag,而我们此时只属于普通访客 我们查看cookie值&…

如何使用ssm实现视频点播系统设计与实现+vue

TOC ssm142视频点播系统设计与实现vue 绪论 1.1 研究背景 信息化的世界,对于互联网就是一个无国界的传播过程。视频信息也像其他很多网络交流工具一样,时刻在给每一个人带来信息全球化的过程中自由发布个性化信息平台,这就是互联网给人们…

VTK随笔四:VTK基本数据结构

一、可视化数据的基本特点 离散性:为了让计算机能够获取、处理和分析数据,必须对无限、连续的空间体进行采样,生成有限的采样数据点,这些数据以离散点的形式存储,采样的过程是一个离散化的过程。数据具有规则或不规则…

东南大学和东北大学

其实我五点多就醒了,生物钟天生如此,没办法。 只是在人家家里,不方便过早地有动静,而我的脑子,也还在酒力影响之下,并没有完全清楚,所以又闭目养神了一会儿。 看了几次时间,终于6点了…

高仿115资源网dz论坛模板

源码介绍 高仿115资源网dz论坛模板,首先去DZ论坛下个PHP版本安装好,把我们提供的模版上传到[template]目录。 本套模板是dz论坛仿115资源网开发的模板,dz论坛是腾讯旗下的论坛系统,非常的好用。 源码下载 高仿115资源网dz论坛模…

C++ STL 关联容器

系列文章目录 CSTL迭代器iterator设计 https://blog.csdn.net/surfaceyan/article/details/126772555 C STL 序列式容器(一 vector list) https://blog.csdn.net/surfaceyan/article/details/126860166 C STL 序列式容器(二 deque slist) https://blog.csdn.net/surfaceyan/ar…

Vue中的methods方法与computed计算属性的区别

在创建的 Vue 应用程序实例中,可以通过 methods 选项定义方法。应用程序实例本身会代理 methods 选项中的所有方法,因此可以像访问 data 数据那样来调用方法。在模板中绑定表达式只能用于简单的运算。如果运算比较复杂,可以使用 Vue.js 提供的…

求解向量中连续子向量的最大和

开篇 本篇文章旨在求解向量中n个连续子向量的最大和。题目来源是《编程珠玑》第8章《算法设计技术》。 问题描述 输入:具有n个浮点数的向量x; 输出:输入向量的任何连续子向量中的最大和; 例如:输入向量为31,-41,59,26,-53,58,97,-93,-23,84; 那么输出就是从59到97五…