dpdk
文章平均质量分 80
小狮子安度因
个人站点:http://huangyanjie.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DPDK用户态协议栈-TCP Posix API 2
到目前为止,IP/TCP和IP/UDP的协议栈都写完了,但是没有并发效果;这个后面会解决。下一步是探索一下协议的扩展,写一个dns服务器来看一下如何基于tcp或者udp来扩展协议。原创 2024-12-12 21:20:45 · 596 阅读 · 0 评论 -
DNS的实现1
DNS是一个分布式数据库,用于将域名和IP地址相互映射。域名解析:将用户输入的域名转换为对应的IP地址,使得浏览器或其他网络设备可以加载用户请求的网页或服务。分级管理:支持域名的分级管理,如顶级域名(.com、.net等)、二级域名(如example.com中的example)等。可扩展性:允许新的域名和IP地址不断加入,以适应互联网的发展。原创 2024-12-10 20:16:44 · 716 阅读 · 0 评论 -
dpdk用户态协议栈-手动实现Epoll
在之前的协议栈中,无论是tcp还是udp,都只能是单连接,无法并发地接收数据。想要解决这个问题,有以下几个方案:开多个线程IO多路复用下面我会分别实现一下Linux环境下上面三种做法,最后选择在REPStack中我们选择哪一种。这里直接用我以前写的代码了。原创 2024-12-10 20:14:30 · 1447 阅读 · 0 评论 -
DPDK用户态协议栈-Tcp Posix API 1
/return 0;return 0;原创 2024-12-01 22:28:52 · 637 阅读 · 0 评论 -
DKDP用户态协议栈-kni
KNI的原理是将用户空间和内核空间之间的数据传输最小化,以降低网络处理的延迟和开销。在我们使用多线程对同一张arp表进行读取和写入的时候,不可避免的带来了线程安全的问题。为了防止死锁带来的问题,这里我们在插入arp的时候设置锁,解决线程安全的问题。内核回写:如果需要将修改后的数据包发送出去,应用程序可以通过KNI接口将数据包写回内核网络协议栈,并选择相应的物理网卡进行发送。抓包可以看到,在我们开启了混杂模式之后,内核是可以接收到icmp的数据包的,所以证明我们的kni启动其实是没有问题的。原创 2024-08-18 21:22:15 · 938 阅读 · 0 评论 -
Epoll的实现原理
Epoll是Linux IO多路复用的一种IO管理机制。内核的实现代码在Linux内核源码的中。是比select和poll更高性能的一种IO管理机制。原创 2024-08-18 21:21:05 · 1272 阅读 · 0 评论 -
DPDK用户态协议栈-KNI
KNI的原理是将用户空间和内核空间之间的数据传输最小化,以降低网络处理的延迟和开销。在我们使用多线程对同一张arp表进行读取和写入的时候,不可避免的带来了线程安全的问题。为了防止死锁带来的问题,这里我们在插入arp的时候设置锁,解决线程安全的问题。内核回写:如果需要将修改后的数据包发送出去,应用程序可以通过KNI接口将数据包写回内核网络协议栈,并选择相应的物理网卡进行发送。抓包可以看到,在我们开启了混杂模式之后,内核是可以接收到icmp的数据包的,所以证明我们的kni启动其实是没有问题的。原创 2024-08-17 20:34:36 · 1020 阅读 · 0 评论 -
DPDK如何赋能EtherCAT
EtherCAT(Control Automation Technology)是由德国BECKHOFF自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点,支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片,主站使用标准的以太网控制器。EtherCAT是一种工业以太网技术,看到的大多数应用场景都是伺服电机。因为是基于以太网的技术,所以EtherCAT相比于CAN总线而言,速率上要快不少。EtherCAT可以达到100M的速率,而CAN只有1M。原创 2024-07-23 16:57:00 · 1145 阅读 · 0 评论 -
用户态协议栈02-arp reply实现
在上一节中发送udp包的时候,需要向物理机的arp表中添加一个静态的arp记录。这在生产环境中显然是不可以的。在内核的协议栈中,会将自己的ip和mac在局域网中进行广播,并且记录其他电脑的ip和mac。在需要发送数据包的时候,查询arp表来获取目标的地址构建发送数据包。在实现arp reply之后,dpdk可以回复收到的arp数据包,让对方在arp表中添加一条动态的记录,这样就不需要添加静态的arp记录了。原创 2024-06-16 23:31:08 · 1426 阅读 · 0 评论 -
用户态协议栈03-icmp实现
ICMP使用IP的基本支持,就像它是一个更高级别的协议,但是,ICMP实际上是IP的一个组成部分,必须由每个IP模块实现。是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP(Internet Control Message Protocol)Internet控制。这里我们依然是做的基础的回复包,效果是使用物理机进行。操作的时候,可以收到数据返回,所以我们只是打了一个。控制消息是指网络通不通、协议簇的一个子协议,用于在IP。原创 2024-06-21 00:18:40 · 569 阅读 · 0 评论 -
用户态协议栈04-定时arp-table的实现
后续对当前代码进行一些架构优化,并且添加别的协议,tcp还是比较麻烦的昨天去面试,是一家头部的智能家具公司。虽然说应该是过了,但是回答的比较业余,要把八股文提上日程了哈哈哈。原创 2024-06-22 03:02:01 · 1281 阅读 · 0 评论 -
用户态协议栈05—架构优化
用户态协议栈05—架构优化。原创 2024-06-22 03:03:14 · 703 阅读 · 0 评论 -
用户态协议栈06-TCP三次握手
最近由于准备软件工程师职称考试,然后考完之后不小心生病了,都没写过DPDK的博客了。今天开始在上次架构优化的基础上增加TCP的协议栈流程。百度百科:TCP即传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于的传输层通讯协议。这里最需要关注的就是,在我们使用Linux的Posix API创建TCP的Socket时,我们通常会这样操作:其中的参数的意思就是创建流式套接字。在写UDP的时候,只需要单纯的发送一个一个报文就可以,因为UDP是面向数据包的。TCP原创 2024-06-23 02:10:30 · 1266 阅读 · 0 评论 -
DPDK关于光纤通讯的资料收集
利用光与光纤传递信息的一种方式,有线通讯的一种传输容量大,保密性好等优点将发送的信息输入到发送机中,将信息叠加或调制到作为信息信号载体的载波,然后将调制的载波传输媒质发送到接收端,接收机调节出原来的信息主要领域光纤电缆光器件光设备光通信仪表光通信集成电路通信步骤发射机:产生光信号光纤传递信号:必须确保光信号在光纤中不会衰减或者严重变形接收机:接受光信号,转化为电信号。原创 2024-07-03 21:41:35 · 969 阅读 · 0 评论 -
用户态协议栈01-udp收发
dpdk的用户态udp协议栈原创 2024-02-26 16:01:16 · 1335 阅读 · 0 评论 -
dpdk03-概念补充
dpdk概念补充原创 2023-11-24 18:16:06 · 847 阅读 · 0 评论 -
dpdk00-前期准备
dpdk前期准备原创 2023-11-24 15:23:22 · 185 阅读 · 0 评论 -
dpdk02-环境设置
dpdk环境准备原创 2023-11-24 15:08:03 · 603 阅读 · 0 评论 -
dpdk01-安装
dpdk的安装,详细步骤。原创 2023-11-24 14:35:13 · 437 阅读 · 0 评论
分享