协议层次及其服务模型

  • 因特网由大量的应用程序和协议,各种类型的端系统,分组交换机以及各种类型的链路级媒体组成。

    1.5.1 Layered Architecture

    分层的体系结构

  • 在某层执行 / 完成了一定的操作

  • 使用直接下层的服务
  • 利用分层体系结构,能够构建一个大且复杂但是较为良好稳定的部分;也可叫做模块化;使得某层提供的服务易于改变。
  • 只要该层对其上层提供相同的服务,并且使用来自下层的相同的服务。
  • 当某层的实现发生变化时,该系统的其余部分保持不变。
  • 改变后,仅以不同的方式实现功能,且不影响其他组件是分层的另一个优点。

    1. 协议分层

  • 为了给网络协议的设计者提供一个稳定的结构,网络设计者以分层 (layer) 的形式组织协议以及实现这些协议的硬件和软件。

  • 某层给他上一层提供服务 (service),所谓一层的服务模型。 每层通过在该层中执行某些动作或使用直接下层的服务来提供服务。
    • 例如,由第 n 层提供的服务可能包括报文从网络的 一边到另一边的可靠交付。
    • 这可能是通过使用第 n - 1 层的边缘到边缘的不可靠报文传送 服务,加上第几层的检测和重传丢失报文的功能来实现的。
  • 一个协议层能够用软件、硬件或两者的结合来实现。
  • 诸如 HTTP 和 SMTP 这样的应用层协议几乎总是在端系统中用软件实现,运输层协议也是如此。
  • 因为物理层和数据链路层 负责处理跨越特定链路的通信,它们通常在与给定链路相关联的网络接口卡(例如以太网或 WiFi 接口卡)中实现。
  • 网络层经常是硬件和软件实现的混合体。
  • 一个第 n 层协议也分布在构成该网络的端系统、分组交换机和其他组件中。第 n 层协议的不同部分常常位于这些网络组件的各部分中。

  • 协议分层具有概念化和结构化的优点。

  • 分层提供了 一种结构化方式来讨论系统组件。
  • 模块化使更新系统组件更为容易。
  • 分层的一个潜在缺点是一层可能冗余较低层的功能。
    • 许多协议栈在基于每段链路和基于端到端两种情况下,都提供了差错恢复。
  • 第二种潜在的缺点是某层的功能可能需要仅在其他某层才出现的 信息(如时间戳值),这违反了层次分离的目标。

  • 各层的所有协议被称为协议栈 (protocol stack)。

  • 因特网的协议栈由 5 个层次组成:物理层、链路层、网络层、运输层和应用层。
  • 自顶向下方法 (top-down approach),首先处理应用层,然后向下进行处理。

a) 应用层

  • 应用层是网络应用程序及它们的应用层协议 (HTTP, SMTP, FTP等) 存留的地方。
    • 借助于特定的应用层协议即域名系统 (DNS) 将端系统名字转换成 32 bit 的网络地址。
    • 创建并部署我们自己的新应用层协议是非常容易的
  • 应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组,称为报文 (message)。

b) 运输层

  • 因特网的运输层在应用程序端点之间传送应用层报文
  • 运输层的分组称为报文段 (segment)
  • 在因特网中,有两种运输协议,即 TCP 和 UDP ,利用其中的任一个都能运输应用层报文。

  • TCP向它的应用程序提供了面向连接的服务。

    • 应用层报文向目的地的确保传递和流量控制(即发送方/接收方速率匹配)
  • TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络 拥塞时,源抑制其传输速率。

  • UDP协议向它的应用程序提供无连接服务。

    • 一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。

c) 网络层

  • 因特网的网络层负责将称为数据报 (datagram) 的网络层分组从一台主机移动到另一台主机。
  • 在一台源主机中的因特网运输层协议(TCP或UDP)向网络层递交运输层报文段和目的地址。
  • 因特网的网络层包括著名的网际协议IP,该协议定义了在数据报中的各个字段以及端 系统和路由器如何作用于这些字段。
  • IP 仅有一个,所有具有网络层的因特网组件必须运行 IP。
  • 因特网的网络层也包括决定路由的路由选择协议,它根据该路由将数据报从源传输到目的地。
  • 因特网具有许多路由选择协议。
    • 因特网是一个网络的网 络,并且在一个网络中,其网络管理者能够运行所希望的任何路由选择协议。
  • 尽管网络层包括了网际协议和一些路由选择协议,但通常把它简单地称为IP层。
  • 网络层将收到来自每个不同的链路层协议的不同服务。

d) 链路层

  • 因特网的网络层通过源和目的地之间的一系列路由器路由数据报。
  • 为了将分组从一个 节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。
  • 在每个节点,网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。在该下一个节点,链路层将数据报上传给网络层。

  • 由链路层提供的服务取决于应用于该链路的特定链路层协议。

    • 某些协议基于链 路提供可靠传递,从传输节点跨越一条链路到接收节点。
    • 这种可靠的传递服务不同于TCP的可靠传递服务,TCP提供从一个端系统到另一个端系统的可靠交付。
  • 链 路层的例子包括以太网、WiFi和电缆接入网的DOCSIS协议。
  • 数据报从源到目的地传 送通常需要经过几条链路,一个数据报可能被沿途不同链路上的不同链路层协议处理。
  • 把链路层分组称为帧(frame)

e) 物理层

  • 然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层的任务是将该帧中的一个个比特从一个节点移动到下一个节点。
  • 这层中的协议仍然是链路相关 的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体相关
    • 以太 网具有许多物理层协议:一个是关于双绞铜线的,另一个是关于同轴电缆的,还有一个是关 于光纤的
    • 跨越这些链路,移动一个比特是以不同的方式进行的

2. OSI 模型

  • 因特网协议栈不是唯一的协议栈。
  • 国际标准化组织(ISO)提出计算机网络围绕 7 层来组织,称为开放系统互联 (OSI) 模型。

image.png

  • 模型包括 7 层:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。

    1. 表示层的作用是使通信的应用程序能够解释交换数据的含义。
      1. 这些服务包括数据压缩和数据 加密(它们是自解释的)以及数据描述(这使得应用程序不必担心在各台计算机中表示/ 存储的内部格式不同的问题)。
    2. 会话层提供了数据交换的定界和同步功能,包括了建立检查点和恢复方案的方法。
  • 缺少的服务由开发者决定是否加上。

    1.5.2 Encapsulation

    封装

image.png

  • 数据从发送端系统的协议栈向下,沿着中间的链 路层交换机和路由器的协议栈上上下下,然后向上到达接收端系统的协议栈
  • 路由器和链路层交换机都是分组交换机
  • 与端系统类似,路由器和 链路层交换机以多层次的方式组织它们的网络硬件和软件
  • 路由器和链路层交换机并不 实现协议栈中的所有层次

  • 链路层交换机实现了第一层和第二层;路由 器实现了第一层到第三层

    • 因特网路由器能够实现IP协议(一种第三层 协议),而链路层交换机则不能
  • 尽管链路层交换机不能识别IP地 址,但它们能够识别第二层地址,如以太网地址
  • 主机实现了所有5个层 次,这与因特网体系结构将它的复杂性放在网络边缘的观点是一致的。

封装 (encapsulation) 的概念

  • 在发送主机端,一个应用层报文 (application-layer message) M 被传送给运输层。
  • 运输层收取到报文并附上附加信息 (运输层首部信息 H1),该首部将被接收端的运输层使用。
  • 应用层报文和运输层首部信息一起构成了运输层报文段 (transport-layer segment)。
  • 运输层报文段因此封装了应用层报文。
    • 附加信息也许包括了下列信息:
      • 允许接受运输层向上向适当的应用程序交付报文信息
      • 差错检测位信息
        • 该信息让接收方能够判断报文中的比特是否在途中被改变。
  • 运输层向网络层传递该报文段
  • 网络层增加了如源和目的端系统地址等网络层首部信息 Hn,生成了网络层数据报 (network-layer datagram)
    • 该数据报被传递给链路层
    • 链路层增加自己的里娜鲁曾首部信息并生成链路层帧 (link-layer frame)
  • 每一层,一个分组具有两种类型的字段:首部字段和有效载荷字段 (payload field)。
    • 有效载荷通常来自上一层的分组。
  • 中文书Pg 37 给出了一个类比解释了上述信息的行为,有兴趣可以去看看。

**

  • 封装的过程现实中更为复杂
    • 一个大报文能够被划分为多个运输层的报文段 (这些报文段可被划分为多个网络层数举报)。
    • 在接收端,必须从连续的数据报中重构报文段。