# 网络处理器 **Repository Path**: network-intelligent-perception/network-processor ## Basic Information - **Project Name**: 网络处理器 - **Description**: 本仓库为网络空间安全学院程光教授课题组网络处理器方向研究内容,包括基于Srv6的带内网络测量、面向可编程数据平面的段路由网络遥测等内容 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-06 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网络处理器 #### 介绍 本仓库为网络空间安全学院程光教授课题组网络处理器方向研究内容,包括基于Srv6的带内网络测量、面向可编程数据平面的段路由网络遥测等内容。 #### SR-Based INT - 介绍 随着业务应用的推陈出新和用户规模的不断增长,网络呈现出“高速率、大规模、多接入、不可预期”的特点。传统网络管控方式和手段已经难以解决现有网络和未来网络的挑战。因此,网络管理者迫切需要颠覆传统网络监测及故障排除方法,提出能够应对网络状态测量、网络失效检测、故障定位与恢复等场景用例的实时灵活的测量解决方案。 带内测量是近几年兴起的一种混合测量方法,通过路径中间交换节点对数据包依次插入元数据(Measure metadata)的方式完成网络状态采集。相较于传统网络测量方案,带内测量能够对网络拓扑、网络性能和网络流量实现更细粒度的测量。 但带内网络遥测也存在很多问题。带内网络遥测的一个主要缺点是由于缺乏合适的载体,导致数据包的开销过大。每个交换机都要向数据包添加信息,因此数据包开销随路径长度线性增加。此外,每个交换机所需的遥测数据越多,开销就越高:在具有5个跃点的通用数据中心拓扑中,每个交换机请求两个测度需要48字节的开销。当更多的开销用于存储遥测数据时,更少的位可用于承载数据包有效载荷并停留在最大传输单元(MTU)之内。此时,需要一种新技术解决该问题。 目前为了解决INT开销过大的问题,Basat提出了基于P4语言的PINT方法,通过概率计算的方法,极大程度得减小了开销,但PINT系统主要针对测量精度要求不高的情形,不够通用;此外,Shaofei曾提出一种将SR和INT结合的方法,但该方法未实现自适应测量,无法在运行时自行调整INT采样率,INT测度,依旧存在改进的空间。 在本仓库中,首次提出了**基于SRv6的轻量级自适应带内遥测方法**。通过研究如何减轻INT和SR的开销,将两者无缝结合以实现轻量级且自适应的遥测方法。在本项工作中,通过设计INT的元数据,使其长度等于Srv6中的Segment字段,然后在每一跳中根据监控服务器下发的流表将相应的SID修改成相应的INT元数据。最后由结果分析器分析遥测结果并反馈给监控服务器,监控服务器据此下发新的流表从而实现自适应测量。模型的具体使用流程如下图所示: ![框架图](%E5%9F%BA%E4%BA%8ESrv6%E7%9A%84%E5%B8%A6%E5%86%85%E7%BD%91%E7%BB%9C%E6%B5%8B%E9%87%8F/Picture/WechatIMG111.jpeg) #### SR-Based INT - 软件架构 本工作主要通过修改Linux内核代码实现。 - SegLocal_demo.c 中 给出了对Linux原内核的修改。 - newTopo.py 中给出了生成随机拓扑的脚本代码,可直接在IDE中运行。 读者可将Linux内核相应部分代码进行替换然后重新更新内核即可运行。 后续模块如路径规划模块、自适应模块代码正在编写中。 #### SR-Based INT - 前端控制界面展示 ![前端控制界面展示](%E5%9F%BA%E4%BA%8ESrv6%E7%9A%84%E5%B8%A6%E5%86%85%E7%BD%91%E7%BB%9C%E6%B5%8B%E9%87%8F/Picture/WechatIMG113.png)