电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

DMA网卡零拷贝实现的设计与

DMA网卡零拷贝实现的设计与_第1页
1/5
DMA网卡零拷贝实现的设计与_第2页
2/5
DMA网卡零拷贝实现的设计与_第3页
3/5
精品文档---下载后可任意编辑本文主要阐述基于 Intel 网卡零拷贝的实现过程, 通常情况下网络数据包到达用户应用程序要经过如下几个过程: 1.网卡的物理硬件从物理媒体(通常情况下网线)上接收到得信号(数据帧)首先放在网卡自己的一个缓冲区(网卡RAM),在这一过程中通常要进行帧校验(比如 FCS), 帧过滤等。2.假如网卡支持 DMA 就会启动 DMA 操作,把收到的数据帧通过 DMA 操作放到我们事先申请好的 buffer 中,DMA 操作由硬件自动完成,当然用户要提供给 DMA 硬件操作必要的参数,包括 DMA 地址,DMA 大小等,有可能还有地址对齐等要求。DMA 的具体操作后面详细描述。3.这一步是 DMA 零拷贝最重要的一个环节,就是把网卡接收到的数据帧直接映射到用户层,不需要经过内核协议栈的处理。后面详细描述。网卡数据从网络到 Linux 内核的路径简要分析:网卡的主要工作原理:发送数据时,计算机把要传输的数据并行写到网卡的缓存,网卡对要传输的数据进编码(10M 以太网使用曼切斯特码,100M 以太网使用差分曼切斯特码),串行发到传输介质上.接收数据时,则相反。对于网卡而言,每块网卡都有一个唯一的网络节点地址,它是网卡生产厂家在生产时烧入 ROM(只读存储芯片)中的,我们把它叫做 MAC 地址(物理地址),且保证绝对不会重复。MAC 为 48bit,前 24 比特由 IEEE 分配,是需要钱买的,后 24bit 由网卡生产厂家自行分配.我们日常使用的网卡都是以太网网卡。目前网卡按其传输速度来分可分为 10M 网卡、10/100M 自适应网卡以及千兆(1000M)网卡。假如只是作为一般用途,如日常办公等,比较适合使用 10M 网卡和 10/100M 自适应网卡两种。假如应用于服务器等产品领域,就要选择千兆级及更高级别的网卡。本文主要讲解的是 Intel 82571 千兆网卡的网卡驱动:Linux 内核目录:关于这款网卡的硬件信息:更详细的信息可以通过 lspci -vvv 查看。从上面的信息可以看出这块网卡是基于 pci 总线的。数据接收流程图:INIT_WORK(&adapter->reset_task, e1000_reset_task);INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task);INIT_WORK(&adapter->downshift_task, e1000e_downshift_workaround);INIT_WORK(&adapter->update_phy_task, e1000e_update_phy_task);INIT_WORK(&adapter->print_hang_task, e1000_print_hw_hang);大概的流程框架就是这个样子的了,现在一边对比源码一边解析相关的功能。e1000_init_mo...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

DMA网卡零拷贝实现的设计与

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部