Mee*_*Moo -1 networking tcp network-adapter tcpip internet-connection
我是从 Windows 的角度来问的,但任何角度都很好。
计算机与 TCP 接口所需的全部是 NIC 吗?他们是否还需要某种与 TCP 相关的软件,或者该软件是否包含在 NIC 设备驱动程序中?
内核中内置了对 TCP/IP 的支持。实现相互叠加的不同网络协议的所有软件位称为“网络堆栈”。
因此,当您的应用程序调用“[BSD] Sockets API”来进行网络连接时,它会调用主要在内核中运行的代码。
某些 NIC 可以直接在 NIC 硬件中处理 TCP/IP 处理的某些部分,从而卸载一些工作,因此不必由 CPU 上的内核处理。这些被称为“TCP 卸载引擎”,或者有时特定类型的卸载有自己的名称,例如“硬件校验和”、“大量接收卸载”(LRO)、“传输分段卸载”(TSO) 等。 内核的网络堆栈必须支持让这些东西由 NIC 处理,并且 NIC 驱动程序必须支持告诉内核 NIC 可以处理什么,并告诉 NIC 在内核请求时执行该操作。但是驱动程序本身并没有做太多实际工作,因为驱动程序在内核中运行,因此如果内核中的 NIC 驱动程序而不是内核中的正常网络堆栈执行此操作,则不会真正从 CPU 卸载任何内容。内核。
在某些情况下,将网络堆栈的某些功能从内核移出并移至“用户空间”(即由操作系统提供的在应用程序上下文中运行的库实现,而不是在内核上下文中实现)可能会更有效。这可以提高效率,因为不必经常在应用程序内存和内核内存之间复制数据包数据。因此,网络堆栈的某些部分现在可以在内核之外的用户空间中找到。但它仍然由操作系统的内置网络库提供。
归档时间: |
|
查看次数: |
378 次 |
最近记录: |