cross_sky
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2012-09-07
  • 粉丝0
  • 关注0
  • 积分858分
  • 威望727点
  • 贡献值0点
  • 好评度77点
  • 原创分0分
  • 专家分0分
阅读:1286回复:3

关于如何提高网卡收发数据的效率

楼主#
更多 发布于:2005-03-15 20:15
       不知道怎样提高网卡收发(主要是接收)数据的效率,使网卡能将收到的数据包尽可能多的保存下来。请教高手是重写一个网卡驱动比较好呢还是在原来基础上加一个自己写的协议驱动较好。或者这两者在效果差不多的情况下哪种方法更容易实现?请各位高人不吝赐教!万分感谢!
sky
cross_sky
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2012-09-07
  • 粉丝0
  • 关注0
  • 积分858分
  • 威望727点
  • 贡献值0点
  • 好评度77点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-16 18:20
是不是可以通过修改微端口中的映射缓冲区大小来加快数据传输呢?
sky
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-17 13:55
    协议的驱动好处是不管什么网卡都可以使用,而重写网卡驱动则只能用于特定的网卡。不过重写网卡驱动有一个好处就是可以在miniport层优化接收的性能,否则有可能协议写的再好,miniport的性能上不去也无济于事。
    如果存包的速率低于收包速率那么再大的buffer也最终会溢出而导致丢包,不过大的buffer可以平缓CPU及共享资源调度对收包的影响。
    如果不想因为存保影响收包的效率,那么最好再另外开一个队列,收到的包都存入这个队列,然后另开一个定时器从队列中取包成批保存。
cross_sky
驱动小牛
驱动小牛
  • 注册日期2004-06-17
  • 最后登录2012-09-07
  • 粉丝0
  • 关注0
  • 积分858分
  • 威望727点
  • 贡献值0点
  • 好评度77点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-17 18:11
首先感谢bingjie兄,你说的那种是否就是多包传输呢?另开一个队列是指多加一个环形缓冲区呢还是别的什么?
    那再加一个中间层的驱动,从中间层截获数据能收到所有进入的数据包吗?
sky
游客

返回顶部