爱问知识人 爱问教育 医院库

无线网卡是怎么接受路由器的信号的?

首页

无线网卡是怎么接受路由器的信号的?

无线网卡是怎么接受路由器的信号的?

提交回答
好评回答
  • 2018-03-10 21:52:01
      网卡里一个概念叫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的模块而已。
       。

    魏***

    2018-03-10 21:52:01

类似问题

换一换
  • 通讯服务 相关知识

  • 数码产品
  • 电子数码
  • 电子数码产品

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):