社区
Linux_Kernel
帖子详情
求一个高效的网卡数据转发程序
DX_deepblue
2014-07-08 09:44:57
要求把eth1上面的数据全部转发到eth2上面去,自己写了几个都不理想,要么丢包,要么卡死,有没有哪位大神可以帮我写一个的,可以用libcap也可以用libnet,谢谢了,还可以用iptables
...全文
402
9
打赏
收藏
求一个高效的网卡数据转发程序
要求把eth1上面的数据全部转发到eth2上面去,自己写了几个都不理想,要么丢包,要么卡死,有没有哪位大神可以帮我写一个的,可以用libcap也可以用libnet,谢谢了,还可以用iptables
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FreshBird
2014-12-25
打赏
举报
回复
楼主自己写是有什么特殊需求吗? 搜索引擎搜“linux 网卡 桥接”,得到的结果可以用不?
wfwater
2014-12-21
打赏
举报
回复
要高效还用走libcap,iptables?直接将skb的dev从eth1改为eth2不就可以了嘛
nfme
2014-12-20
打赏
举报
回复
这几个都是基于链路层之上的...再高效,kernel都实现得差不多了..要不弄个hnat吧(硬件转发....ahteros专利哦>.)
qq120848369
2014-12-15
打赏
举报
回复
ipvs不是轻松搞定么。
pluton
2014-12-15
打赏
举报
回复
你这个有点像端口镜像
nothing_impossible
2014-12-11
打赏
举报
回复
你上传了lxSendPacket_v2.2.5,能否把源码放出来让大家学习?也可以和tcpreplay对比对比啊。
dingzhengshengbobo
2014-07-16
打赏
举报
回复
楼主,你把自己写的程序共享出来吧,o(∩∩)o...哈哈,我刚好在学
inurlcn
2014-07-10
打赏
举报
回复
mark 一下
likeyiyy
2014-07-08
打赏
举报
回复
多高效?要求是多少?
网卡
的工作原理是发送给
网卡
的
数据
,
网卡
按什么协议把他
转发
给系统吗,用啥协议,怎么实现的
网卡
按以太网协议工作,通过硬件地址(MAC地址)在局域网内识别和
转发
数据
帧。操作系统的驱动
程序
与
网卡
硬件交互,将
数据
包从
网卡
传递到系统内存,并通过网络栈传递到应用
程序
。如果目的地址与
网卡
的MAC地址匹配或是广播地址,
网卡
会接受这个帧。中断:当
数据
到达
网卡
时,
网卡
生成
一个
中断信号,通知CPU有新的
数据
。它会将
数据
从
网卡
的缓冲区读到系统内存中,并传递给操作系统的网络栈。轮询:在高性能环境中,有时使用轮询技术,CPU定期检查
网卡
的状态,而不是等待中断。
网卡
有自己的硬件地址,即MAC地址,用于局域网内的通信。
网络
数据
被
网卡
接收后在电脑内部的流转过程
网络
数据
被
网卡
接收后在电脑内部的流转过程
tun虚拟
网卡
该怎么玩不该怎么玩
tun设备多用来在用户态模拟网络
转发
设备,比如隧道的端点,路由器,NAT网关等,但作为
转发
设备的模拟,其编程模型和作为
数据
始发站的服务器编程模型有着大不同。 我们先看一下最简单的tun
程序
模型: tun字符设备和TCP/UDP socket连接作为文件描述符被均等地poll,将从
一个
fd收到的
数据
经过加工之后写入另
一个
fd。 但这种思路是错误的。是不是觉得性能底下,而tun设备有多队列模式,可以将
一个
tun虚拟
网卡
打开为多个文件描述符,下面的样子: 但还是不对。哪里出了问题呢?接下来我基于上述的 单体结
网卡
与本地计算机(包括输入输出设备、CPU、内存等)的交互
网卡
与本地计算机的交互是
一个
复杂而
高效
的过程,它涉及到底层硬件、操作系统、驱动
程序
等多个组件的协同工作。通过DMA技术、网络协议栈、上下文切换等机制,
网卡
能够
高效
地接收、处理和传递网络
数据
,并与输入输出设备、CPU等本地计算机组件进行无缝的交互。这种交互是计算机实现网络通信和
数据
处理的基础。
通用
网卡
驱动:装机必备
网卡
驱动
程序
是操作系统与网络接口卡(NIC)之间的桥梁,它允许计算机与网络环境中的其他设备进行通信。驱动
程序
提供了硬件识别、
数据
传输、配置管理等功能,是确保网络连接稳定与
高效
运行的关键组件。硬件抽象层(HAL),是指在操作系统中为硬件提供的一组服务接口,它允许软件通过这些接口与硬件设备进行通信,而无需关心硬件的物理实现细节。HAL作为一种抽象,使得上层的应用
程序
和操作系统核心可以以统一的方式与各种硬件交互,提供了
一个
硬件无关的编程环境。
Linux_Kernel
4,465
社区成员
17,462
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章