zoukankan      html  css  js  c++  java
  • windows 系统中的 afd 驱动

    afd 的全称是 Ancillary Function Driver for WinSock,是 windows 系统网络部分的核心工具。同 Linux 类似,windows 的 socket 最终也是被映射为一个文件,而 windows 中所有 socket 文件的操作,如创建、销毁、读写等,都是通过 afd 来完成的。windows 系统从 xp 到 win10,网络部分的实现架构已经有了很多的改进,但是,其中 afd 的地位始终没有改变 。

    从这个操作系统的功能分层上看,在 afd.sys 之上的,都是一个个的系统库实现(dll)。

     

    afd 创建新的 socket 后,分配给每个 socket 一个缓存区域,可以通过更改下面的注册表项,来改变收发缓存区域的大小:

    [HKEY_LOCAL_MACHINE SYSTEM CurrentControlSetServicesAfdParameters]
    
    DefaultReceiveWindow = 16384
    DefaultSendWindow = 16384

    从实验结果来看,修改后,windows 下 UDP 的 burst 性能提升显著(突发大量报文时,因为缓存被塞满,以后到来的 UDP datagram 都被扔掉)。说明,通过这种方法,来改变 winsock 网络接收缓存大小是有效的。

    参考:

    http://mista.nu/blog/?p=655

    http://smallvoid.com/article/winnt-winsock-buffer.html

  • 相关阅读:
    44.分治算法练习:  一元三次方程求解
    44.分治算法练习:  一元三次方程求解
    44.分治算法练习:  一元三次方程求解
    MVC-04 视图(1)
    MVC-03 控制器(5)
    MVC-03 控制器(4)
    MVC-03 控制器(3)
    MVC-03 控制器(2)
    MVC-03 控制器(1)
    MVC-02 路由
  • 原文地址:https://www.cnblogs.com/pied/p/8465243.html
Copyright © 2011-2022 走看看