创建框架是否由设备驱动程序完成?

网络工程 以太网 网络 第 2 层
2022-02-11 03:49:52

如果我没记错的话,TCP 和 IP 数据包通常是由内核中运行的软件创建的。因此,当我作为用户打开 TCP/IP 类型的套接字并发送消息时,内核会处理所有这些协议的细节,例如将消息拆分为数据包、添加 TCP 和 IP 标头等。

现在,如果我理解正确,第 2 层帧是特定于技术的 - 因此,如果您使用以太网、WiFi 或任何其他第 2 层技术,帧看起来会有所不同。所以我的问题是:这是否意味着第 2 层协议标头是由 NIC 设备驱动程序生成和处理的?

1个回答

或多或少,是的。应用程序将简单地将其数据向上传递到堆栈。由后续层将消息分解为数据包,对下一层有足够的了解,以免使其成为不可能。(即一个 TCP 数据包可以是 64k,但以太网接口的 MTU 是 1500,所以不要给它更多。)每一层将添加它的协议需要的任何内容。

(一些第 2 层协议并不真正关心他们所传递的内容。例如,ATM 会将有效负载分解为所需的尽可能多的单元。)