计算机网络(二) 网络体系结构
实体和协议
实体
具有一定功能的软、硬件单元都能称为实体。
特殊地,在网络模型中,同一层次的两个设备被称为对等实体,它们遵循相同的规范、需要完成相似的工作,因此可以通过协议进行通信。
协议
为实现对等实体之间数据交换而建立的规则、标准或约定的集合。
协议的三要素:
- 语法: 信息的结构、格式。
- 语义: 规定某些信息应该如何解释。
- 同步(或时序): 为了实现某个目的,应该以如何顺序触发事件。
网络体系结构
网络体系结构负责对网络功能的分层,以及每一层需要完成的工作定义及其协议,标准的规定。
三种主要的网络体系结构:
- 国际标准化组织 ISO/OSI 参考模型 (七层体系结构)
- TCP/IP 协议
- 建议的五层体系结构
其中,七层体系结构因为过于复杂和冗余,少有商业组织实践它的标准。TCP/IP 目前被广泛地采用。五层体系结构是前面两者的混合,用于教学目的。
服务
体系结构中,每个层完成的工作和任务被定义为服务。
服务是网络体系结构中不同层次之间控制和数据交换的方式。底层为上层提供服务,上层通过服务控制底层。
服务接入点
Service Access Point(SAP) ,在同一系统中相邻两层实体之间交换信息的地方。服务访问点是一个抽象的概念,是一个逻辑上的接口。
服务模式
- 面向连接的服务:
通信双方可以互相持有对方的信息,方便对通信过程进行交流、控制。面向连接的服务需要三个阶段:建立连接、数据传输、断开连接。 - 面向无连接的服务:
无需建立连接,复杂度低。数据有可能丢失。对于实时性的应用(例如视频)非常合适。
需要注意:与电话服务这种连接相比,网络中大多数面向连接的服务是虚拟的,建立连接并不会直接占用信道资源,换言之,多个连接可以共享一个信道资源。
协议数据单元、服务数据单元
- 发送方和接收方在等层次之间传送的数据单位被称为该层的协议数据单元 PDU(Protocal Data Unit)
- 同一节点内层与层之间交换的数据单位被称为服务数据单元 SDU(Service Data Unit)
ISO/OSI 参考模型 (七层体系结构)
ISO提出了一个标准的网络体系结构框架,即著名的开放系统互联参考模型 (Open Systems Interconnection Reference Model, OSI/RM)
由底层到高层分别是:
- 物理层:由物理传播介质和相关设备组成,为上层提供可用的信道。PDU 是 比特(bit)。
- 数据链路层:将网络层的数据可靠地传输到相邻结点。由于数据链路层只需要关注相邻结点的数据传输(即在同一个物理网络中的数据传输),因此它使用物理寻址(如硬件地址 MAC)。为了实现它提供的服务,数据链路层需要完成将数据组合成数据块(帧的封装)、处理物理层的传输差错、调节发送速率以使之与接收方相匹配等。PDU 是 帧(frame)。
- 网络层:实现跨物理网络的主机之间的通信。网络层使用的是逻辑地址(如IP地址),主要完成的工作包括定址、路由、数据转发。PDU 是 分组(packet)。
- 传输层:为上层提供可靠的数据传输服务,如建立连接、数据分段与重组、流量控制、错误检测等。PDU 是 报文(message)。举例来说,在数据分段时,传输层会在报文头部添加分段信息,以便接收端重组。
- 会话层:负责两个进程之间会话的控制,如发送什么数据、何时发送数据、是否建立连接等。PDU 不再单独命名。
- 表示层:负责双方数据形式的协商、数据的表示。如各种数据编码(ASCII、UTF-8等)、数据格式、加密算法、压缩算法等都属于表示层的范畴。
- 应用层:负责协定数据的整体格式,如邮件的格式(标题、内容、附件)、表单的格式(姓名、年龄、联系方式)等。
物理层、数据链路层和网络层的概念比较难懂,有一张图可以很好的解释这些概念:
数据包在路由器之间转发需要经过以下过程 读取网络包头的 IP 地址、查询路由表获取下一跳的 IP 地址、通过 ARP 协议将 IP 地址映射为 MAC 地址、使用新的 MAC 地址封装数据帧、发送数据帧到交换机(家用路由器一般集成了交换机的功能,所以这里的交换机可以是外部的也可以是内部的)、交换机转发数据帧到目标路由器、循环...
通过上述过程,我们就能理解链路层和网络层分别负责的工作。
TCP/IP 体系结构
TCP/IP 体系结构的分层比七层体系结构简单的多。
- 网络接口层:忽略了物理层和链路层的区别,对它们进行合并,只关心它们的服务提供的可操作的接口。
- IP层:主要解决路由选择、阻塞控制和网络互联等问题。该层最重要的协议称为 IP 协议。
- 传输层:与七层网络协议的定义相同。这里 TCP/IP 明确定义了两个协议:TCP 和 UDP。前者是面向连接的数据控制协议,后者则不面向连接。
- 应用层:合并了回话层、表示层和应用层。
简述一下 TCP 和 UDP 的特点:
TCP:
- 数据不丢失、顺序正确。
- 需要额外的开销以维持连接(如 QQ 的心跳包)。
- 需要很多建立连接的步骤、比较繁琐。
UDP:
- 数据可能丢失。
- 开销较小。
- 简单快速。
五层体系结构
为了在教学中区分数据链路层和物理层,物层体系结构就是在 TCP/IP 体系结构的基础上拆分出数据链路层和物理层。