有线与无线网卡驱动原理简介
2016-1-22 0:0:0 wondial有线与无线网卡驱动原理简介
有线与无线网卡驱动原理简介 网卡里一个概念叫descripter,它是DMA和CPU交换控制的一个固定结构链表。
在初始化的时候,申请一定数目的和descripter的结构一样大小的内存给网卡。对于收包方向上,还要申请同样数目的packet buffer挂在这些descripter上。发包方向上,只在要发包的时候把要发送的这个packet buffer挂在当前的descripter上,初始化的时候并不需要申请。
初始化还需要对descripter做一些必要的设置。完成以后,在收包方向,只要把这些descripter的控制权从CPU交到DMA的手上,然后DMA负责检测网络上有没有包进来,如果有,会根据设定做一些检查,没有问题就把这个包复制到第一个descripter 里面所带的packet buffer里,产生一个信号通知CPU(一般是interrupt)同时也把这个descripter的控制权交给CPU,DMA自己会跳到下一个descripter上继续同样的监测。一般这个链表是环行的,所以到底以后可以从头再开始,也有的网卡会记住哪个是第一个哪个是最后一个,自己做跳转。 另外一端,CPU如果接收到interrupt或者自己loop查询时,发现有descripter的控制权是自己时,就要去把这个packet buffer取出来,这里可以把内容复制出来,也可以用一个新的把这个packet buffer替换掉,(在descripter里记录只是buffer的指针),很明显这种替换的做法,效率很高,这就是所谓“Zero copy”。当然也有些网卡像realtek 8139系列就没办法做到这一点。因为因为他的descripter 和packet buffer是连在一起的连续空间。
发包方向,初始化时只要descripter填些默认值就可以了。在要发包的时候,才去做具体的事情,包括把packet buffer链到descripter上,再对descripter做必要设置,然后就把控制权交给DMA去处理。DMA发现这个descripter的控制者是自己,就会把这里packet buffer里面的内容发送出去。发送完毕也会发个interrupt信号给cpu,然后把控制权还给cpu。CPU收到这个发送完成的interrupt,就会把这个packet buffer free掉。这里也是"Zero copy"的机制。另外一种做法是在初始化也和接收一样同样也申请packet buffer给descripter,在发送的时候需要把要发送的内容复制到这个packet buffer里,然后发送完成后,就不需要对这个packet buffer做什么特别的事情了。
大概的原理就是这样的,当然还有其他许多东西比如flow control可以再做深入了解,而且每颗芯片都不太一样,需要结合datasheet具体去处理。
无线网卡硬件实现和有线网卡差别很大,但是他的驱动原理其实和有线网卡是一样的,只是多了个RF的模块而已。
如果您的问题还没有解决,可以到 T+搜索>>上找一下答案
相关阅读
- 用友T3用友通系统重装后,没有账套备份,如何恢复账套2019-4-29 8:0:0
- 明细账权限设置时提示“没有操作员”?2019-4-29 8:0:0
- 用友t3用友通填制凭证时报“运行时错误429”2019-4-23 8:0:0
- 用友T3用友通填制凭证带出存货档案2019-4-23 8:0:0
- 用友T3用友通填制凭证中数量单价不符2019-4-23 8:0:0
- 用友T3用友通基金结余结转时报错,错误号为‘运行时错误3021’2019-4-23 8:0:0
- 用友T3用友通基础档案导入2019-4-23 8:0:0
- 用友T3用友通基础信息的删除2019-4-23 8:0:0
- 用友T3用友通基本科目设置和控制科目设置分别是什么-2019-4-23 8:0:0
- 用友T3用友通基本工资参数问题2019-4-23 8:0:0
最新信息
客户端登录不了 客户端登录不了
问题号: | 25280 |
---|---|
适用产品: | T6系列 |
软件版本: | 85-U6普及版3.2 |
软件模块: | 11-系统管理 |
问题名称: | 客户端登录不了 |
问题现象: | <P>客户安装好一台新的服务器,win2003 server ,sql 2000 server,要求我们帮他移服务器。我安装好用友,并引入数据后,发现本地与两台客户端能登录,其他几台客户端不能登录。</P> |
问题原因: | <P>HOSTS设置过还是一样,防火墙关掉还是一样不能登录。后来发现,服务器的1433端口未开放,考虑可能是这个原因。后来再看SQL居然未打补丁SP4。</P> |
关键字: | 客户端登录不了 |
解决方案: | 打SP4,重启,再看,1433端口打开了,可访问了,再打开企业门户,能登录了,且速度很快。数据库SP4一定要打。 |
行业: | 0-通用 |
补丁编号: | |
解决状态: | 2-最终解决方案 |
录入日期: | 2016-03-16 15:23:45 |
最后更新时间: |