【IPv6】IPv6协议

一、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.mzph.cn/news/197068.shtml

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

相关文章

Leetcode周赛374补题(3 / 3) - EA专场

不愧是EA的题&#xff0c;我最爱的模拟人生……好难&#xff0c;呜呜 目录 1、找出峰值 - 暴力枚举 2、需要添加的硬币的最小数量 - 思维 贪心 3、统计完全子字符串 - 滑窗 分组循环 1、找出峰值 - 暴力枚举 2951. 找出峰值 class Solution {public List<Integer> …

kubernetes监控GPA安装部署

本文在于指导如何对k8s的监控GPA(Grafana&#xff0c;prometheus以及alertmanager)进行安装部署。 1. 介绍 Prometheus 在真正部署Prometheus之前&#xff0c;应了解一下Prometheus的各个组件之间的关系及作用&#xff1a; 1&#xff09;MertricServer&#xff1a;是k8s集群…

Sentinel基础知识

Sentinel基础知识 资源 1、官方网址&#xff1a;https://sentinelguard.io/zh-cn/ 2、os-china: https://www.oschina.net/p/sentinel?hmsraladdin1e1 3、github: https://github.com/alibaba/Sentinel 一、软件简介 Sentinel 是面向分布式服务架构的高可用流量防护组件…

探究Logistic回归:用数学解释分类问题

文章目录 前言回归和分类Logistic回归线性回归Sigmoid函数把回归变成分类Logistic回归算法的数学推导Sigmoid函数与其他激活函数的比较 Logistic回归实例1. 数据预处理2. 模型定义3. 训练模型4. 结果可视化 结语 前言 当谈论当论及机器学习中的回归和分类问题时&#xff0c;很…

浅谈Python+requests+pytest接口自动化测试框架的搭建

框架的设计思路 首先要明确进行接口自动化需要的步骤&#xff0c;如下图所示&#xff1a; ​然后逐步拆解需要完成的工作&#xff1a; 1&#xff09;了解分析需求&#xff1a;了解接口要实现的功能 2&#xff09;数据准备&#xff1a;根据开发文档确定接口的基本情况&#x…

Python + Appium框架原生代码实现App自动化测试

Step1&#xff1a;首先介绍下pythonappium的框架结构 如下截图所示 . (1)&#xff1a;apk目录主要放置待测app的apk资源&#xff1b; (2)&#xff1a;config目录主要放置配置文件信息&#xff0c;包含&#xff1a;数据库连接配置、UI自动化脚本中所需的页面元素信息及app启…

(C语言)判定一个字符串是否是另一个字符串的子串,若是则返回子串在主串中的位置。

要求&#xff1a; &#xff08;1&#xff09;在主函数中输入两个字符串&#xff0c;调用子函数cmpsubstr()判断&#xff0c;并在主函数输出结果。 &#xff08;2&#xff09;子函数的返回值为-1表示未找到&#xff0c;否则返回子串的位置&#xff08;起始下标&#xff09;。 …

Shell数组函数:数组(一)

一、数组简介&#xff1a; 变量&#xff1a;用一个固定的字符串&#xff0c;代替一个不固定字符串。数组&#xff1a;用一个固定的字符串&#xff0c;代替多个不固定字符串。 二、类型 普通数组&#xff1a;只能使用整数作为数组索引关联数组&#xff1a;可以使用字符串作为…

多表操作、其他字段和字段参数、django与ajax(回顾)

多表操作 1 基于对象的跨表查 子查询----》执行了两句sql&#xff0c;没有连表操作 2 基于双下滑线的连表查 一次查询&#xff0c;连表操作 3 正向和反向 放在ForeignKey,OneToOneField,ManyToManyField的-related_namebooks&#xff1a;双下滑线连表查询&#xff0c;反向…

Redis Hash数据类型

Redis Hash数据类型 几乎所有的主流编程语言都提供了哈希(hash)类型&#xff0c;它们的叫法可能是哈希、字典、关联数组、映射。在 Redis 中&#xff0c;哈希类型是指值本身又是一个键值对结构&#xff0c;形如key “key”&#xff0c;value {ffield1, value1 }, … {fieldN…

LoadBalancer将服务暴露到外部实现负载均衡purelb-layer2模式配置介绍

目录 一.purelb简介 1.简介 2.purelb的layer2工作模式特点 二.layer2的配置演示 1.首先准备ipvs和arp配置环境 2.purelb部署开始 &#xff08;1&#xff09;下载purelb-complete.yaml文件并应用 &#xff08;2&#xff09;查看该有的资源是否创建完成并运行 &#xff…

GCN,GraphSAGE 到底在训练什么呢?

根据DGL 来做的&#xff0c;按照DGL 实现来讲述 1. GCN Cora 训练代码&#xff1a; import osos.environ["DGLBACKEND"] "pytorch" import dgl import dgl.data import torch import torch.nn as nn import torch.nn.functional as F from dgl.nn.pytorc…

Linux系统安装Python3环境

1、默认情况下&#xff0c;Linux会自带安装Python&#xff0c;可以运行python --version命令查看&#xff0c;如图&#xff1a; 我们看到Linux中已经自带了Python2.7.5。再次运行python命令后就可以使用python命令窗口了&#xff08;CtrlD退出python命令窗口&#xff09;。 2…

数据结构——二叉树(相关术语、性质、遍历过程)

遍历操作 二叉树的层次遍历-CSDN博客 二叉树的基本操作-CSDN博客 二叉树的先序遍历非递归实现-CSDN博客 后序遍历的非递归方式实现-CSDN博客 二叉树&#xff1a;已知先序中序求后序或者其他&#xff08;秒解&#xff09;-CSDN博客 因为之前发过一遍&#xff0c;我就不复制…

MES物料的动态批次管理漫谈

在制造企业中&#xff0c;原辅材料占产品制造总成本基本在60%以上&#xff0c;特殊材料加工企业可能达到80%以上&#xff0c;按“2/8管理原则”管理好物料就基本做好制造企业的成本管理&#xff0c;这也许是很多企业向“数字化转型”的一个主要原因&#xff0c;希望借助数字信息…

智能指针与动态内存

动态内存 new placement new 是 C 中的一种内存分配方式&#xff0c;它允许在给定的内存地址上构造对象&#xff0c;而不是在默认的堆上分配新的内存。这对于某些特殊的内存管理场景非常有用&#xff0c;例如在特定的内存池中分配对象。 C11 引入了 "new auto" 语法…

LiveGBS流媒体平台GB/T28181功能-概览中负载信息直播、回放、播放、录像、H265、级联查看负载会话列表

LiveGBS常见问题-概览中负载信息具体表示什么直播、回放、播放、录像、H265、级联等 1、负载信息2、负载信息说明3、会话列表查看3.1、会话列表 4、搭建GB28181视频直播平台 1、负载信息 实时展示直播、回放、播放、录像、H265、级联等使用数目 2、负载信息说明 直播&#x…

4.grid_sample理解与使用

pytorch中的grid_sample 文章目录 pytorch中的grid_samplegrid_samplegrid_sample函数原型实例 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; grid_sample 直译为网格采样&#xff0c;给定一个mask patch&#xff0c;根据在目标图像上的…

Http和WebSocket

客户端发送一次http请求&#xff0c;服务器返回一次http响应。 问题&#xff1a;如何在客户端没有发送请求的情况下&#xff0c;返回服务端的响应&#xff0c;网页可以得服务器数据&#xff1f; 1&#xff1a;http定时轮询 客户端定时发送http请求&#xff0c;eg&#…

2023经典软件测试面试题

1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xff0c;你应该怎样解决&#xff1f; 首先&#xff0c;将问题提交到缺陷管理库里面进行备案。 然后&#xff0c;要获取判断的依据和标准&#xff1a; 根据需求说明书、产品说明、设计…