![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DPDK
文章平均质量分 53
DPDK编程笔记
yuechuji001
这个作者很懒,什么都没留下…
展开
-
DPDK实现TCP/IP协议(二)--拥塞控制
DPDK主要用于在用户空间加速数据包处理。DPDK可以通过其提供的加速数据包处理能力来构建自己传输层协议或优化现有协议。DPDK本身并不提供拥塞控制机制,但可以使用DPDK来实现现代化的拥塞控制算法,结合传统TCP/IP协议栈,加速数据包的发送和接收。原创 2024-08-04 17:37:05 · 172 阅读 · 1 评论 -
DPDK实现TCP/IP协议(一)----组包
在DPDK中,采用struct rte_ether_hdr定义以太网协议头。以下是DPDK中以太网头的结构体。DPDK中IP协议头的结构体。DPDK中IP协议头的结构体。原创 2024-08-03 15:21:22 · 601 阅读 · 0 评论 -
DPDK实现数据包的收发
DPDK(Data Plane Development Kit)允许应用程序直接访问网卡,从网卡数据缓冲区获取数据。1.配置hugepage。原创 2024-08-02 20:21:25 · 584 阅读 · 0 评论 -
DPDK实现TCP/IP协议(三)---丢包
序列号分析:通过分析序列号和确认号来识别丢包。如果一个具有较高序列号的数据包在具有较低序列号的数据包之前到达,就可以推断出有数据包丢失。检测重复ACK:当发送方收到连续三个或以上的重复ACK时,它假定数据包丢失。ACK超时:为期望的数据包设置超时。如果数据包在指定时间内未到达,则认为其丢失负确认(NACK):使用NACK来显式地指示丢失的数据包,当检测到序列中断时发送NACK根据序列号// 丢包检测逻辑i < nb_rx;i++) {// 提取IP头部。原创 2024-08-05 16:17:08 · 311 阅读 · 0 评论 -
DPDK简单配置启动示例
分配一组数据包缓冲区,并使用 rte_eth_tx_burst 函数一次性发送这些数据包。配置第一个可用的以太网设备 (port_id = 0) 的接收和发送队列。该结构体包含多个字段,用于描述以太网设备的配置信息。该结构体包含多个字段,用于描述接收队列的配置信息。– max_rx_pkt_len: 最大接收数据包长度。成功时返回指向创建的内存池的指针,失败时返回 NULL。– split_hdr_size: 拆分的头部大小。配置第一个以太网设备的发送队列。配置第一个以太网设备的接收队列。原创 2024-07-21 16:42:54 · 655 阅读 · 0 评论 -
hugepage配置
由于hugepagesz 默认为2M,需要修改hugepagesz >2M ,GRUB_CMDLINE_LINUX后需要增加参数default-hugepagesz=1G修改默认hugepagesz ,否则可能无法分配hugepages。以hugepagesz = 1G hugepages=10为例,hugepagesz * hugepages = 10G =10240M,需要10G的内存空间,实际只能分配出5个hugepage。查看可用的内存大小,以M为单位。当内存free空间等于5891时。原创 2024-07-19 17:21:48 · 168 阅读 · 0 评论 -
dpdk无坑环境搭建
ubuntu终端下执行命令。原创 2024-07-18 20:41:23 · 122 阅读 · 0 评论 -
问题解决:dpdk-19.08.02编译报错
这个原因是由于找不到pci_set_dma_mask函数。可用命令检查uname -r内核版本是否支持。原创 2024-07-17 23:55:45 · 122 阅读 · 0 评论 -
问题解决:error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
问题解决原创 2024-07-16 00:05:22 · 168 阅读 · 0 评论