P4学习(七)实验四:Explicit Congestion Notification

目录

  • 一. 实验目的
  • 二.前置知识略概
  • 三. 实验过程
    • 1. Topo
    • 2. Egress
  • 三. 实验结果
    • 1.启动监听服务端
    • 2.发送数据包
    • 3.查看h2.log的数据
    • 4.Iperf模拟Flood超过门限
  • 四.为什么要在Egress上进行ecn的配置

一. 实验目的

ECN allows end-to-end notification of network congestion without dropping packets. If an end-host supports ECN, it puts the value of 1 or 2 in the ipv4.ecn field. For such packets, each switch may change the value to 3 if the queue size is larger than a threshold. The receiver copies the value to sender, and the sender can lower the rate.


需求提取;

1.在header中增加ecn的field
2. 动态调整ecn的value,以适应网络状况

二.前置知识略概

一种网络通信协议的功能,用于在网络出现拥堵时提供拥堵通知。ECN 允许网络中继设备(如路由器)在检测到即将发生拥堵时,通过标记数据包来通知发送端和接收端。这样,数据发送方可以降低其发送速率,以减轻网络拥堵,从而提高网络整体性能。

在 TCP/IP 协议中,ECN 通过在 IP 头部和 TCP 头部中设置特定的位来实现。当ECN被启用且网络设备感知到拥堵趋势时,它会标记经过的数据包。接收方收到标记的数据包后,会通过 TCP 确认消息通知发送方。随后,发送方降低其发送速率,以减轻对网络的负担。这个过程帮助避免了传统的拥塞控制机制中的丢包,从而提高了数据传输的效率和稳定性。

三. 实验过程

1. Topo

在这里插入图片描述

2. Egress

在这里插入图片描述

这个没啥好说的,就是改个字段的值而已


来看看standard_metadata里面的字段

在这里插入图片描述
每个字段的含义:

  1. ingress_port: 数据包进入交换机的端口号。
  2. egress_spec: 决定数据包将从哪个端口离开交换机的指定字段。
  3. egress_port: 数据包实际离开交换机的端口号。
  4. clone_spec: 用于指定克隆操作的参数,如克隆的数据包应该发送到哪个端口或组。
  5. instance_type: 数据包类型的指示器,例如,正常数据包、克隆的数据包、多播数据包等。
  6. drop: 一个标记位,如果设置为1,则数据包会被丢弃。
  7. recirculate_port: 如果数据包需要重新进入处理流程,这个字段指定它应该进入的端口。
  8. packet_length: 数据包的总长度。
  9. enq_timestamp: 数据包被放入传输队列时的时间戳。
  10. enq_qdepth: 数据包入队时队列的深度。
  11. deq_timedelta: 数据包在队列中等待的时间长度。
  12. deq_qdepth: 数据包出队时队列的深度。
  13. ingress_global_timestamp: 数据包进入交换机时的全局时间戳。
  14. lf_field_list: 用于逻辑复制操作的字段列表的标识符。
  15. mcast_grp: 指定数据包所属的多播组。
  16. resubmit_flag: 如果这个位被设置,数据包将被重新提交给 ingress 处理流程。
  17. egress_rid: 出口复制 ID,用于多播和复制操作。
  18. checksum_error: 指示数据包是否有校验和错误。

更多的自己去specification里找

三. 实验结果

1.启动监听服务端

在这里插入图片描述

2.发送数据包

在这里插入图片描述

3.查看h2.log的数据

在这里插入图片描述

0x1:我们取的是tos的后两位作为cen的filed字段,所以这里的ecn=1;

4.Iperf模拟Flood超过门限

在这里插入图片描述
在这里插入图片描述

四.为什么要在Egress上进行ecn的配置

注:此内容可能有错误,仅为个人整理资料的答案

  1. 网络状态的实时感知:Egress 阶段更接近于数据包实际离开交换机的时刻,因此在这个点进行标记可以基于最新的网络状态信息(如队列长度、传输速率等)。这有助于更准确地判断是否需要进行拥塞通知。

  2. 避免不必要的处理延迟:如果在 ingress 或 parse 阶段进行标记,每个进入交换机的数据包都需要经过拥塞检测处理,即使这些数据包可能不会遇到任何拥塞。这可能导致不必要的处理延迟。相比之下,只在出口处处理那些实际可能会引起拥塞的数据包,可以更高效地利用处理资源。

  3. 拥塞的精确识别和响应:在 egress 阶段,交换机可以根据特定出口的队列情况来判断是否存在拥塞。不同出口可能面临不同的网络条件,因此在 egress 阶段进行标记可以更精确地识别和响应各个出口的拥塞情况。

  4. 减少跨交换机的标记不一致性:如果在 ingress 阶段进行标记,随着数据包经过网络中的多个交换机,每个交换机都可能基于自身的状态对数据包进行重新标记,导致标记的不一致性。而在 egress 阶段标记可以减少这种不一致性,因为标记是基于数据包即将离开网络的那一点的状态。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android SeekBar 进度条圆角

先看下效果图&#xff1a; 之前&#xff1a; 优化后&#xff1a; 之前的不是圆角是clip切割导致的 全代码&#xff1a; <SeekBarandroid:layout_width"188dp"android:layout_height"wrap_content"android:background"null"android:focusa…

专门为机器学习开发的jpy语言

这本来是一个为工科教学专门开发的附属品&#xff0c;并不是说Python或Java有多不好&#xff0c;根本上它就是一个Java工程教材&#xff0c;但又要结合人工智能。因此&#xff0c;出现了这样一个包容性的怪胎&#xff0c;可以用python一样的语法与Java一起编写。 没流行起来的一…

一个使用pyqt的word文档查重工具

一个使用pyqt的word文档查重工具 使用场景代码使用截图打包好的软件下载链接结尾 使用场景 有时我们在借鉴一篇文档之后还不想有太多重复&#xff0c;这个时候可以使用这个工具对两个word文档进行对比 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWind…

[RK-Linux] 移植Linux-5.10到RK3399(十)| 配置AP6256模组使能WIFI、BT功能

手上 ROC-RK3399-PC Pro 使用蓝牙 WIFI 模组是 AP6256。 一、AP6256 模组介绍 AP6256是正基科技(AMPAK)推出的一款低成本、低功耗的双模模块,它集成了Wi-Fi和蓝牙功能。这款模块支持SDIO接口,具有以下特点: 1、型号:AP6256 2、接口:SDIO(Secure Digital Input/Outp…

搜维尔科技:【简报】元宇宙数字人赛道,优秀作品赏析《大福太郎》

这次采用亮眼的浅粉做为发色&#xff0c;为了贴合她小警察的身分 给了她一顶特制的警帽&#xff0c;上面有大福的荧光蓝叶片作为标 志&#xff0c;而在配件及裙子上也加入了许多科技元素的小巧思。 学校&#xff1a; 朝阳科技大学&#xff08;台湾&#xff09; 选手&#xff…

排序算法经典模型: 梯度提升决策树(GBDT)的应用实战

目录 一、Boosting训练与预测 二、梯度增强的思想核心 三、如何构造弱学习器和加权平均的权重 四、损失函数 五、梯度增强决策树 六、GBDT生成新特征 主要思想 构造流程 七、梯度增强决策树以及在搜索的应用 7.1 GDBT模型调参 7.1.1 框架层面参数 n_estimators su…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1(附项目源码)

本篇最终效果演示 文章目录 本篇最终效果演示系列目录前言环境素材绘制地形 实现人物移动指示显示物品名称源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1&#xff08;附项目源码&#xff09; 【制作100个unity游戏之23】实现类似七日杀、森…

申万宏源基于 StarRocks 构建实时数仓

作者 &#xff1a;申万宏源证券 实时数仓项目组 小编导读&#xff1a; 申万宏源证券有限公司是由新中国第一家股份制证券公司——申银万国证券股份有限公司与国内资本市场第一家上市证券公司——宏源证券股份有限公司&#xff0c;于 2015 年 1 月 16 日合并组建而成&#xff0c…

【若依】关于对象查询list返回,进行业务处理以后的分页问题

1、查询对象Jglkq返回 list&#xff0c;对 list 进行业务处理后返回&#xff0c;但分页出现问题。 /*** 嫁功率考勤查询*/RequiresPermissions("hr:kq:list")PostMapping("/list")ResponseBodypublic TableDataInfo list(Jglkq jglkq) throws ParseExcepti…

简单高效 Learn LaTeX 009 - LaTex Cite Notes (30 mins) 引用与注释

这一集里介绍了对文献引用的表示方法&#xff0c;和添加注释文本的方法&#xff1a; https://www.ixigua.com/7298100920137548288?id7304342671428944403&logTag495628805c8329a41ffa

JVM系列-6.java垃圾回收

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术、JVM原理&#x1f525;如果感觉博主的文…

PyTorch深度学习实战(32)——DCGAN详解与实现

PyTorch深度学习实战&#xff08;32&#xff09;——DCGAN详解与实现 0. 前言1. 模型与数据集分析1.1 模型分析1.2 数据集介绍 2. 构建 DCGAN 生成人脸图像小结系列链接 0. 前言 DCGAN (Deep Convolutional Generative Adversarial Networks) 是基于生成对抗网络 (Convolution…

香港代理IP为何受欢迎?

香港代理IP深受用户欢迎的原因主要有以下几点&#xff1a; 1&#xff0c;地理位置优势&#xff1a;香港位于亚洲的中心地带&#xff0c;与中国大陆、东南亚和其他亚洲国家都有良好的网络连接。这使得使用香港代理IP可以实现较快的网络连接速度和较低的延迟&#xff0c;特别是对…

架构篇24:排除架构可用性隐患的利器-FMEA方法

文章目录 FMEA 介绍FMEA 方法FMEA 实战小结 前面的专栏分析高可用复杂度的时候提出了一个问题&#xff1a;高可用和高性能哪个更复杂&#xff0c;根据墨菲定律“可能出错的事情最终都会出错”&#xff0c;架构隐患总有一天会导致系统故障。因此&#xff0c;我们在进行架构设计的…

shopee的AI学习之路——GPTs通过AdInteli 广告变现

GPTs|AdInteli 广告变现 一、什么是 AdInteli AdIntelli 是一个旨在为生成 GPTs 接入广告并实现变现的平台。它连接了全球最大的广告联盟&#xff0c;允许广告商进行竞价&#xff0c;确保展示最有价值的广告。AdIntelli 采用 AI 驱动的收入生成技术&#xff0c;优化广告选择。…

【github】使用github action 拉取国外docker镜像

使用github action 拉取国外docker镜像 k8s部署经常用到国外镜像&#xff0c;如果本地无法拉取可以考虑使用github action环境 github action的ci服务器在国外&#xff0c;不受中国防火墙影响github action 自带docker命令运行时直接将你仓库代码拉取下来 步骤 你的国内dock…

SAP PO平台配置

多个系统分配 &#xff1a; XPATH : /p1:mt_ERP_ZSSF_HFM_001/sapClient SPACE : p1 http://lstech.com/erp/IF0523/ZSSF_HFM_001

qml与C++的交互

qml端使用C对象类型、qml端调用C函数/c端调用qml端函数、qml端发信号-连接C端槽函数、C端发信号-连接qml端函数等。 代码资源下载&#xff1a; https://download.csdn.net/download/TianYanRen111/88779433 若无法下载&#xff0c;直接拷贝以下代码测试即可。 main.cpp #incl…

HDMI之ALLM

概述 ALLM(Auto Low-latency Mode)即自动低延迟模式,在自动低延迟模式下智能电视的用户不用根据电视播放的内容手动来切换低延迟模式,而会根据电视播放的内容自动启用或者禁用低延迟模式。这里的启用或者禁用低延迟功能通常是信号源设备控制的(如游戏设备 Xbox One,或 PS5…

LIMS源码,实验室信息系统源码,后端框架:asp.net

LIMS(laboratory information management system)即实验室信息管理系统是实验室管理科学发展的成果&#xff0c;是实验室管理科学与现代信息技术结合的产物&#xff0c;是利用计算机网络技术、数据存储技术、快速数据处理技术等&#xff0c;对实验室进行全方位管理的计算机软件…
最新文章