我们都知道在我们的 Windows 中有一个名为 http.sys内核模式驱动程序的大型二进制文件,它为我们进行 HTTP 处理。这基本上就是我们所知道的一切。
但是今天我想:嘿,我们所有的网络东西,比如 TCP/IP 和诸如此类的东西都在这里,在用户空间——ws2_32.dll 的提供者(在 mswsock.dll 中)和它的所有朋友。由于有用户态组件,http.sys 无法使用它们。问题是:他们是怎么做到的?任何信息链接将不胜感激。
我们都知道在我们的 Windows 中有一个名为 http.sys内核模式驱动程序的大型二进制文件,它为我们进行 HTTP 处理。这基本上就是我们所知道的一切。
但是今天我想:嘿,我们所有的网络东西,比如 TCP/IP 和诸如此类的东西都在这里,在用户空间——ws2_32.dll 的提供者(在 mswsock.dll 中)和它的所有朋友。由于有用户态组件,http.sys 无法使用它们。问题是:他们是怎么做到的?任何信息链接将不胜感激。
我想 HTTP.SYS 利用Windows 内核套接字来实现它的目标。也见这里。
在这里找到了一个很好的答案:http: //www.codemachine.com/article_tdi.html
Windows 中的网络似乎比 Winsock 向我们展示的要多得多。
http.sys
仅用作侦听 HTTP/HTTPS 请求的服务器组件 - 基本上 IIS 依赖它来实现良好的性能。它不用于使用 Winsock 库发出任何客户端请求。你可以在这里阅读更多。