DPDK Qos之报文处理流水线

原创翻译,转载请注明出处。

下面是一个支持Qos的复杂报文处理流水线的图;

流水线是通过DPDP可重用的软件库构建出来的。在流水线里实现QoS主要是如下模块:policer,dropper,shceduler。下面是这些模块的功能性描述。

#  模块                        功能描述
1  Packet I/O Rx&Tx         从网卡端口接收/发送报文,Intel 1/10GbE轮询模式(PMD)
2  Packet parser            确定报文的协议栈,检查报文头的完整性
3  Flow classification      映射输入报文到一个已知的流,使用hash函数(jhash,CRC等)精确匹配表查找和用桶处理冲突。
4  Policer                  报文统计,使用srTCM(RFC2697)或者trTCM(RFC2698)
5  LoadBalancer             分发报文给每个工作者,并使得每个工作者负载均衡。保持对每个工作者的传输流的亲和性与报文在流的顺序。
6  Worker threads           特定上层应用程序工作量的代称(比如IP协议栈)
7  Dropper                  使用随机丢弃或者带权随机丢弃算法来拥塞管理。丢包是基于当前调度器队列负载级别和报文优先级,如果拥塞,首先丢弃低优先级报文
8  Hierarchical Scheduler   5级分层调度(级别是:出端口,子端口,流水线,流分类和队列),有成千上万(典型是64K)的叶子节点(队列)。在子端口和流水线实现了流量整形,在流分类实现严格优先级,在每个流水线的流分类的队列里实现WRR(加权循环)。

下面列出的基础模块始终在整个报文处理流水线中使用
#    模块             功能描述
1   Buffer manager    支持全局缓冲区池和每个线程的私有的缓存
2   Queue manager     支持在流水线之间传递消息
3   Power saving      支持在低利用率期间节能

在每个特定应用程序需要的性能级别上,流水线块到CPU核的映射是可配置的,并且这些特性对每一个流水线块都是开启的。当其他的块可能映射到同一个CPU核时,有些流水线块可能会消耗多个CPU核(即每个CPU核运行不同的块实例来处理不同的收包)。

时间: 2024-08-17 06:05:30

DPDK Qos之报文处理流水线的相关文章

DPDK QoS之分层调度器

原创翻译,转载请注明出处. 分层调度器的时机主要体现在TX侧,正好在传递报文之前.它的主要目的是在每个网络节点按照服务级别协议来对不同的流量分类和对不同的用户的报文区分优先级并排序. 一.概述分层调度器跟以前使用网络处理器实现的每条流或一组流的报文队列和调度的流量管理器很相似.它看起来像在传输之前的一个临时存储了很大数量报文的缓冲区(入队操作).当网卡TX请求更多报文去发送的时候,这些报文递交给网卡TX的预定义的SLA的报文选择逻辑模块之后会删除.(出队操作). 分层调度器对大数量的报文队列做了

DPDK QoS_meter 源码阅读

main.c /* SPDX-License-Identifier: BSD-3-Clause * Copyright(c) 2010-2016 Intel Corporation */ #include <stdio.h> #include <getopt.h> #include <rte_common.h> #include <rte_eal.h> #include <rte_malloc.h> #include <rte_mempoo

超文本传送协议HTTP

1. HTTP的操作过程: HTTP是面向事务的应用层协议.HTTP协议本身是无连接的,为了保证数据的可靠传输,HTTP使用了面向连接的TCP作为运输层协议.所以,在发送HTTP报文之前都需要先建立TCP连接.在建立TCP连接的三次握手的前两部分完成后,万维网客户就把HTTP请求报文作为三次握手的第三个报文的数据发送给万维网服务器,服务器收到HTTP请求后,就把所请求的文档作为响应报文返回给客户.从此可看出,请求一个万维网文档所需的时间是该文档的传输时间加上两倍往返时间RTT. HTTP/1.0

什么是IPv6技术?

1  引言 IPv4地址即将耗尽,因此需要移转至IPv6的讨论,过去数年来一直不曾中断.IPv4和IPv6在报文结构.报文字段 意义以及地址配置诸多方面都有显著的不同,这给从IPv4到IPv6过渡时期Internet的运作带来了极大的困难.当前接入网技术上几乎所有的应用都 是构建在IPv4上,要全面转换成IPv6,不是一朝一夕之功,而是一个长期渐进的过程.考虑到支持IPv6业务与支持现有IPv4业务的需求将长期共 存,接入网也将在较长时期同时支持IPv4业务和IPv6业务.怎样最方便.最有效地实

802.11N协议解析(二)

3.    MAC层关键技术 3.1  帧聚合 帧聚合技术包含针对MSDU的聚合(A-MSDU)和针对MPDU的聚合(A-MPDU): 3.1.1      A-MSDU A-MSDU技术是指把多个MSDU通过一定的方式聚合成一个较大的载荷.这里的MSDU可以认为是Ethernet报文.通常,当AP或无线客户端从协议栈收到报文(MSDU)时,会打上Ethernet报文头,我们称之为A-MSDU Subframe:而在通过射频口发送出去前,需要一一将其转换成802.11报文格式.而A-MDSU技术

Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上

前言 诞生及优势 MQTT由Andy Stanford-Clark(IBM)和Arlen Nipper(Eurotech,现为Cirrus Link)于1999年开发,用于监测穿越沙漠的石油管道.目标是拥有一个带宽有效且使用很少电池电量的协议,因为这些设备是通过卫星链路连接的,当时这种设备非常昂贵. 与HTTP及其请求/响应范例相比,该协议使用发布/订阅体系结构.发布/订阅是事件驱动的,可以将消息推送到客户端.中央通信点是MQTT代理,它负责调度发送者和合法接收者之间的所有消息.向代理发布消息的

MQTT协议探究(二)

1 回顾与本次目标 1.1 回顾 MQTT控制报文的基本格式 WireShark进行抓包分析了报文 报文分析: CONNECT--连接服务器 CONNACK--确认连接请求 PINGREQ--心跳请求 PINGRESP--心跳响应 DISCONNECT--断开连接 1.2 本节目标 SUBSCRIBE--订阅主题 SUBACK--订阅确认 UNNSUBSCRIBE--取消订阅 UNSUBACK--取消订阅确认 PUBLISH--发布消息(Qos0,服务质量等级下一节再说吧) 2 MQTT控制报文

MQTT协议探究(三)

1 回顾与本次目标 1.1 回顾 主题通配符 主题语义和用法 WireShark进行抓包分析了报文 报文分析: SUBSCRIBE--订阅主题 SUBACK--订阅确认 UNNSUBSCRIBE--取消订阅 UNSUBACK--取消订阅确认 PUBLISH--发布消息(Qos0,服务质量等级下一节再说吧) 1.2 本节目标 服务质量等级 PUBLISH--发布消息(Qos1 Qos2) PUBACK--发布确认 PUBREC--发布收到 PUBREL--发布释放 PUBCOMP--发布完成 2

玩转PubSubClient MQTT库

1.前言 ????在ESP8266学习系列中,博主一直使用HTTP协议.HTTP连接属于短连接,而在物联网应用中,广泛应用的却是MQTT协议.所以,本篇我们将学习Arduino平台上的MQTT实现库 -- PubSubClient. 2.MQTT协议 2.1 简介 ????MQTT协议(Message Queuing Telemetry Transport),翻译过来就是遥信消息队列传输,是IBM公司于1999年提出的,现在最新版本是3.1.1.MQTT是一个基于TCP的发布订阅协议,设计的初始