网络分层

计算机科学通常专注于将问题折分成较小的问题,希望独立出可以被单独解决的组件。完成后,所需要的只是一组关于这些组件应如何通信以获得更大问题的解决方案的规则。这组规则以及预先商定的数据格式称为 *协议(protocol)。因此,这些层中的每一个都运行一个或多个协议,形成协议栈。网络被分成几层,每一层具有其特定的目的。在网络的早期,不同的人以不同的方式实现他们的网络。在构思互联网时,需要使这些网络无缝通信。 由于它们的构造不同,结果很难。

显然需要就标准协议和接口达成一致,以使互联网正常工作。 标准化网络协议的第一次尝试是在 1977 年,这产生了 OSI 模型。 该模型具有下面几层:

  • 物理层(Physical layer):它定义了数据在物理介质中的电气和物理特性的传输方式。这可以是有线,光纤或无线介质。
  • 数据链路层(Data link layer):它定义了如何在物理介质连接的两个节点之间传输数据。该层处理试图同时访问线路的多方之间的优先级。该层的另一个重要功能是在发送的比特中包括一些冗余,以最小化传输期间的错误。这被称为编码。
  • 网络层(Network layer):它定义了如何在网络之间传输数据包(由多个数据单元组成)。因此,该层需要定义如何唯一地标识主机和网络。
  • 传输层(Transport layer):它定义了可靠地向主机(在相同或不同网络中)传递可变长度消息的机制。该层定义了接收器可以监听的数据包流。
  • 会话层(Session layer):它定义了在主机上运行的应用程序应该如何通信。该层需要区分在同一主机上运行的应用程序并将数据包传递给它们。
  • 表示层(Presentation layer):它定义了数据表示的通用格式,以便不同的应用程序可以无缝链接。在某些情况下,该层还负责安全性。
  • 应用程序层(Application layer):它定义了以用户为中心的应用程序应如何发送和接收数据。如使用 HTTP(应用程序层协议)与 Web 服务器通信的 Web 浏览器(以用户为中心的应用程序)。

下图是这种模型的直观展示。它同时也展示了两个垂直分类,即运行网络堆栈的主机和物理介质(包括电线和网络设备)。每个层都有自己的数据单元,它所处理的信息的表示,并且由于每个层都封装了它下面的数据单元,因此数据单元也被封装。许多位形成一个帧,多个帧形成一个数据包,依此类推,到顶部:

The OSI model and its layers

虽然 OSI 正致力于标准化该模型,但是 Defense Advanced Research Projects Agency(DARPA) 提出了更简单的 TCP/IP 模型(也称为 IP (互联网协议)套件)的完整实现。此模型具有以下层级,从最接近物理介质到最远:

  • 硬件接口层:这是 OSI 模型的第一层和第二层的组合。该层负责管理媒体访问控制,处理比特的传输和接收,重传和编码(网络上的一些文本区分硬件接口层和链路层。这导致五层模型而不是四层。 但实际上很重要。)
  • IP层:该层对应于 OSI 堆栈的第三层。因此,该层负责两个主要任务:寻址主机和网络,以便可以唯一地识别它们并给出源和目标地址,并计算给定一系列约束(路由)的路径之间的路径。
  • 传输层:该层对应于OSI堆栈的第四层。该层将原始数据包转换为数据包流,并提供一些保证:按顺序传送(对于TCP)和随机排序传送(对于UDP)。
  • 应用程序层:该层组合OSI堆栈的五到七层,负责识别进程,数据格式化以及与所有用户级应用程序的接口。

请注意,当我们从一个层移动到另一个层时,特定层处理的定义会发生变化。硬件接口层处理主机发送的比特和字节的集合,IP 层处理数据包(主机以特定格式发送的多个字节的集合),传输层将来自主机上给定进程的数据包聚集在一起到另一个主机上的另一个进程以形成一个段(用于TCP)或数据报(用于UDP),并且应用层构造来自底层流的应用程序特定表示。对于这些层中的每一层,它们处理的数据的表示称为该层的协议数据单元(PDU)。作为此分层的结果,当在主机上运行的进程想要将数据发送到另一个主机时,必须将数据分成单独的块。当块从一层移动到另一层时,每层向块添加一个头(有时是一个尾部),形成该层的PDU。此过程称为封装(encapsulation)。因此,每个层向其上方的层提供一组服务,以协议的形式指定。

现代互联网呈现出一种地理层次结构。想象一下由许多 互联网服务提供商(ISP) 提供服务的许多家庭。这些家庭中的每一个都在 LAN 中(通过以太网,或更常见的是 Wi-Fi)。 ISP连接 WAN 中的许多此类 LAN。每个 ISP 都有一个或多个 WAN ,它们连接起来形成自己的网络。这些由单个业务实体控制的跨越城市的大型网络称为 管理系统(AS)。多个 ISP 之间的路由通常比常规IP路由更复杂,因为它们必须考虑交易协议等事项。这由边界网关协议(BGP) 等专用协议处理。

如前所述,最早和最成功的网络技术之一是以太网。它于 1974 年首次推出,由于其低成本和相对易于维护,它很快成为局域网和广域网的主流技术。 以太网是一种共享媒体协议,所有主机必须使用相同的物理介质来发送和接收帧。帧将传送到所有主机,这将检查目标MAC地址(这些地址将在下一节中描述)是否与其自己的地址匹配。如果是,则接受该帧,否则丢弃该帧。 由于物理介质在任何给定时刻只能携带一个信号,因此帧可能在传输过程中发生碰撞。如果确实发生了这种情况,发送方可以通过在发送帧时感知来自其他主机的传输来感知冲突。然后它中止传输并发送一个阻塞信号,让其他主机知道冲突。

该方案被称为 带有冲突检测的载波侦听多路访问(CSMA/CD)。 以太网的一个问题是它的范围相对较短。根据所使用的物理布线技术,以太网段的最大长度在 100 米到 500 米之间变化。因此,必须连接多个段以形成更大的网络。最常见的方法是在两个相邻的以太网段之间使用第二层交换机。 这些交换机的每个端口形成不同的冲突域,从而降低了冲突的总体概率。 这些交换机还可以监控流量,以了解哪些 MAC 地址在哪些端口上,这样最终,它们将仅在该端口上发送该 MAC 地址的帧(称为学习交换机)。 在现代家庭中,与以太网相比,Wi-Fi 通常是主要的 LAN 技术。