【IPv6】IPv6协议

news2024/11/17 17:23:02

一、IPv6数据报格式

这是与v4报头的对比

1.8bit的版本保留了,v4版本就是4,v6就是6。

2.v6去除了v4的首部长度字段,因为v6的首部长是固定的40字节。

3.服务类型(Type of Service, ToS)和通信类型(Traffic Class)使用类似,都是8bit。

复习:v4中的服务类型分为前6bitDCSP差分服务代码点字段和后2bitECN显式拥塞控制字段。

DSCP字段用于标记数据包以实现QoS,例如网络中一些需要低延迟高吞吐量的包,比如实时音视频流,使这些包得以优先处理。

ECN显式拥塞控制,如果网络中的一个设备监测到即将发生拥塞,他就会把转发的包的ECN位设置,这样到达了接收端之后,接收端会在TCP的ACK包里设置ECN-Echo(ECE)标志,告诉发送方有拥塞,发送方收到后就会通过减少发送方窗口大小来降低发送速率,发送端还会在随后的一个或多个TCP数据包中设置Congestion Window Reduced(CWR)标志,表明它已经采取了措施来响应拥塞。如何减少发送方窗口大小:先减少ssthresh到原来的一半,然后再将发送窗口设置为ssthresh的大小,这个过程就类似于正常丢包之后的处理。

这两个v6中都类似。

4.流标签,这是ipv6的新字段,是一个16bit的标签字段,发送方可以将同属于一个流的包设置为同样的流标签,以使这些包再通过路由器时得到相同的处理。路由器如何根据流标签来处理包是一张表,由网络设备管理员设置,以达到某种QoS。

5.标识、标志、分段偏移在v4中作为ip数据报分段、重组的实现。在v6中对分段操作使用了别的操作方式,所以删除了这三个字段。

6.v4的总长度和v6的有效载荷长度类似。但是区别在于,v4的总长度是v4的头加上所有上层数据的长度;v6的有效载荷长度不包括40字节的头,包括了剩下的所有扩展头加上上层数据的长度。

7.下一个首部,这是v6新增的字段,和v6的扩展头标有关。下一首部这8bit指示的是下一个首部是什么,可能是扩展头标或是上层数据,以下表格对应了扩展头标和上层数据的标识。

8.跳数限制就是原来的TTL。

9.协议原来是指示上层协议的,现在下一首部包含了这一信息。

10.v6去除了校验和字段,因为校验和被认为是冗余的操作,ip提供的是尽力而为的服务,差错控制应该是底层链路层或者高层传输层去做,这样做简化了v6头,也大大减少了路由器处理包的时间,因为原来每一跳都要重新算一遍校验和。

二、路由器如何处理v4和v6包

复习:v4:路由器收到包之后,检查校验和,如果不一样,就直接丢弃,这里不会发icmp差错控制报文。然后ttl-1,然后处理首部选项字段的值,然后根据路由表确定下一跳,如果找不到,比如没有配默认路由,或者一些其他原因,就会把包丢掉,然后发ICMP目的地不可达。然后处理分组问题,复习:v4里的分片是因为该网络的路径MTU小于ip数据报的长度,所以要分片。那么谁能检测到这个呢?答案是路由器,同属于一个包每转发到一个路由器,只要大小超过了MTU,就又要分片,然后最后在接收方重组。所以回到刚才,路由器如果发现标志位的禁止分片置1了,且ip数据报的大小大于了路径MTU,那么就会丢弃,然后发ICMP目的地不可达。这里没问题了,就会重新计算首部校验和,因为有字段变化了,比如ttl,所以要重新填充校验和字段。之后就能转发了。

v6:没有校验和了,直接递减跳数限制,然后根据下一首部依次处理,然后路由,然后处理分片的问题,然后就转发了。

三、扩展头标

扩展头标定义了一系列的功能,但不是所有的功能都需要路由器处理,例如IPsec的AH和ESP,就只需要目的地处理就行,但是路由器只能按序处理(链表结构),所以把需要路由器处理的扩展头标要放到前面,目的地处理的要放到后面。

这是v6扩展头标的基本格式

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

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

相关文章

【Linux下如何生成coredump文件】

一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢&#…

贝叶斯网络 (人工智能期末复习)

文章目录 贝叶斯网络(概率图模型)定义主要考点例题- 要求画出贝叶斯网络图- 计算各节点的条件概率表- 计算概率- 分析独立性 贝叶斯网络(概率图模型) 定义 一种简单的用于表示变量之间条件独立性的有向无环图(DAG&am…

操作系统概述及发展史、Linux内核、发行版及应用领域

一、 操作系统(Operation System,OS) 裸机:没有安装操作系统的计算机 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言…

工程师业余生活之制作蔬菜盆景

工程师业余生活陶冶情操之制作蔬菜盆景 (蔬 果 盆 景 裝 點 家 居) 市場上好多蔬菜瓜果,稍用一些心思,將一些價廉的蔬果製成別致的盆景, 便能使家居充滿自然氣息,增添生活情趣。以下介紹幾種製作方法: 【番薯盆景】 (番薯又名地…

人工智能_机器学习060_核函数对应数学公式_数据空间错位分割_简单介绍_以及核函数总结---人工智能工作笔记0100

我们之前做的都是线性分类问题,那么需要一根线来分割类别,但是,如果出现了,环形数据,我们知道,在二维中我们就无法分割了,那么有没有什么办法分割呢? 实际上是有的,可以看到,我们可以把数据进行升维,可以看到,如果把数据升高到2维度以上,可以看到,神奇的一幕出现了,这个时候,因…

每日3道PWN(第一天)

环境准备 我现在用的是kali 现阶段工具:checkesc、IDA、比较完善的python环境 下载工具的话,我这里不提供了 buuctf——test_your_nc1 参考wp: BUUCTF PWN-----第1题:test_your_nc_buuctf test_your_nc-CSDN博客 查看的资料:…

风格迁移网络修改流程(自用版)

一. AdaAttN-Revisit Attention Mechanism in Arbitrary Neural Style Transfer(ICCV2021) 下载vgg_normalised.pth打开visdom python -m visdom.server在 train_adaattn.sh 中配置 content_path、style_path 和 image_encoder_path,分别表…

深入理解Zookeeper系列-4.Watcher原理

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理🔥如果感觉博主的文章还不错的话&#xff…

深入浅出理解kafka

1.Kafka简介 Kafka 本质上是一个 MQ(Message Queue),使用消息队列的优点: 解耦:允许独立的扩展或修改队列两边的处理过程。可恢复性:即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系…

LinuxBasicsForHackers笔记 -- 控制文件和目录权限

对于每个文件和目录,我们可以指定文件所有者、特定用户组以及所有其他用户的权限状态。 不同类型的用户 在Linux中,root用户是拥有一切权力的。 root 用户基本上可以在系统上执行任何操作。 系统上的其他用户具有有限的能力和权限,并且几乎…

使用正则表达式时-可能会导致性能下降的情况

目录 前言 正则表达式引擎 NFA自动机的回溯 解决方案 前言 正则表达式是一个用正则符号写出的公式,程序对这个公式进行语法分析,建立一个语法分析树,再根据这个分析树结合正则表达式的引擎生成执行程序(这个执行程序我们把它称作状态机&a…

GitHub项目推荐-Deoldify

有小伙伴推荐了一个老照片上色的GitHub项目,看了简介,还不错,推荐给大家。 项目地址 GitHub - SpenserCai/sd-webui-deoldify: DeOldify for Stable Diffusion WebUI:This is an extension for StableDiffusions AUTOMATIC1111 w…

IDEA 下载mysql驱动下载在不下来

结合一下 https://www.cnblogs.com/dadian/p/11936056.htmlhttps://www.cnblogs.com/dadian/p/11936056.html并且下载的 在idea改名 加入 加入到库 等待一会就要你输入sql的root和密码了,就OK

React创建项目

React创建项目 提前安装好nodejs再进行下面的操作,通过node -v验证是否安装 1.设置源地址 npm config set registry https://registry.npmmirror.com/2.确认源地址 npm config get registry返回如下 https://registry.npmmirror.com/3.输入命令 npx create-re…

SpringCloud | Dubbo 微服务实战——注册中心详解

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 |Eureka,Nacos,Consul,Zookeeper在Spring Cloud和Dubbo中实战 引言 在项目开发过程中,随着项目不断扩大,也就是业务的不断增多,我们将采用集群&#xf…

(C语言)通过循环按行顺序为一个矩阵赋予1,3,5,7,9,等奇数,然后输出矩阵左下角的值。

#include<stdio.h> int main() {int a[5][5];int n 1;for(int i 0;i < 5;i ){for(int j 0;j < 5;j ){a[i][j] n;n 2;}}for(int i 0;i < 5;i ){for(int j 0;j < i;j )printf("%-5d",a[i][j]);printf("\n");}return 0; } 运行截图…

Win7 旗舰版打开Rustdesk软件提示无法启动程序 ,计算机中丢失api-ms-win-shcore-scaling-|1-1-1.dll

环境: Win7 旗舰版 64位 Rustdesk1.19自编译客户端 问题描述: Win7 旗舰版打开Rustdesk软件提示无法启动程序 ,计算机中丢失api-ms-win-shcore-scaling-|1-1-1.dll "api-ms-win-shcore-scaling-|1-1-1.dll" 是一个系统动态链接库文件,它是Windows操作系统的一…

迪文串口5使用查询方式发送数据

迪文屏串口5寄存器如下 发送数据我采用的不是中断&#xff0c;而是查询发送标志位实现的。 串口5不像串口2一样&#xff08;串口2可以位寻址&#xff0c;串口5不行&#xff09;&#xff0c;所以如果采用查询模式&#xff0c;需要判断寄存器的数据&#xff0c;我的写法比较简单…

tex中的边框

文章目录 利用tcolorbox宏包给公式加框 利用tcolorbox宏包 tcolorbox可以创建一个盒子的环境&#xff0c;例如&#xff1a; \documentclass{article} \usepackage{tcolorbox} \begin{document}\begin{tcolorbox}[left1cm, right1cm, top0.5cm, bottom0.5cm,colbackblue!10!wh…