IP/TCP 层封装背后的硬件/软件

IP/TCP 层封装背后的硬件/软件

我读过的每个教程都在谈论各层如何相互“通信”,但从未提及硬件/软件接收、添加和发送各层控制数据。

哪些硬件和软件接收/封装/发送与 IP/TCP 各层相关的数据?

例如,我的路由器在哪一层工作?什么软件将文本文件转换为 SMTP?我的计算机中用于流量控制/传输的软件是什么/在哪里?

答案1

Layer 1 - Physical - Signaling 

Layer 2 - Data Link - Switching (Ethernet frames) 

Layer 3 - Network - Routing (IP packets)

Layer 4 - Transport - Multiplexing (TCP segments)

Layer 5 - Session

Layer 6 - Presentation

Layer 7 - Application

之所以没有提及具体的软件/硬件实现,是因为这是制定标准的全部意义所在。每一层都不关心上层和下层如何实现其功能,只要数据按照标准呈现即可。它可以是软件、硬件、固件、机械非电子设备,甚至可以是人工(谷歌搜索“信鸽上的 TCP”就是一个不太严肃的例子)。

在现实世界中,所涉及的特定软件和硬件也千差万别。完全有可能用软件实现所有功能(便宜但速度慢)。也完全有可能用硬件实现所有功能(速度快但价格昂贵)。专用网络设备(如 Cisco 路由器等)在硬件上执行的功能比运行 Linux 配置为路由器的 PC 要多。

通常,第 1 层和大部分第 2 层都保证在硬件中执行。第 3 层主要在企业级路由器(例如思科路由器)的硬件中完成。许多 NIC 都带有称为“TCP 卸载引擎”的功能,该功能可以通过 NIC 上的硬件加速大部分第 3 层和第 4 层。沃尔玛的消费级路由器通常完全在软件中执行路由功能。第 5、6 和 7 层通常不在硬件中完成,如果在硬件中完成,则执行这些操作的设备称为“加速器”。

答案2

哪些硬件和软件接收/封装/发送与 IP/TCP 各层相关的数据?

以太网硬件通常只用于最低层,即物理层和链路层。根据其 MAC 地址,硬件将只接受匹配的单播帧。以太网设备驱动程序通常负责为该设备提供软件接口。该设备通常可以从排列在链接(圆形)环中的缓冲区读取和写入完整的以太网帧,并且驱动程序要么服务中断,要么轮询状态以查看缓冲区环状态的任何变化(即读取或写入帧操作完成)。

该软件统称为协议栈。它是内核中内置的程序和函数的集合。它们的调用方式与任何软件层次结构一样。当用户程序进行套接字 R/W 系统调用时,将调用顶层应用程序例程。此子例程/程序层次结构与任何其他结构良好的软件一样,强制模块化、松散耦合和高内聚。

协议中的每一层都由一个或多个(嵌套的)过程调用执行,直到数据包存储在帧缓冲区中,准备由硬件输出。成功写入完成后,状态将返回给用户的调用。

例如,我的路由器在哪层工作?

互联网被描述为TCP/IP 模型

  • 应用层
  • 传输层
  • 网络层
  • 链路层
  • 物理层

您的路由器根据 IP 地址(即 Internet 层)定向数据包。但路由器有自己的协议栈来执行其他服务,例如基于 Web 的配置实用程序。网络上的每个主机可能都有完整的协议栈;这些层并不分布在网络主机/设备之间。

什么软件可以将文本文件转换为 SMTP?

您的邮件程序与应用程序层交互。

我的计算机中用于流量控制/运输的软件是什么/在哪里?

可能是传输层,TCP 在此运行。

相关内容