第一章第五节 计算机网络的体系结构
因特网是一个极为复杂的系统,因特网中有包括应用程序、协议、端系统、交换机和链路在内的很多部分共同组成,要描述它可不容易。因此需要一种较好的体系结构来描述,实现它。
Outline
Notes
## 分层结构
- 网络的体系结构(architecture):计算机网络的各层及其协议的集合。
- 层的服务模型(service model):某层向上一层提供的服务(service)
- 每层遵循某些网络协议、依赖底层提供的服务,并通过层内动作完成一种特定的服务/功能;
- 网络体系结构是指从功能上描述计算机网络结构,即分层结构。
- 协议分层具有概念化和结构化的优点
- 有利于识别像计算机网络这种复杂系统的部件及其关系
- 模块化的分层有利于系统的更新和维护
- 有利于各层不同设备之间的通信协议标准化
- 缺点
- 但一个潜在的缺点是某层可能重复其较低层的功能,例如许多协议栈都基于链路和端到端这两种情况提供了差错恢复
- 第二种潜在的缺点是某层的功能可能需要仅在其他层才出现的信息(如时间戳值),这个就违反了分层次的目标。
【分层结构的例子】
- 实体(entity):表示任何可发送或接收信息的硬件或软件进程。
- 协议:是控制两个对等实体进行通信的规则的集合,即协议是“水平的”。
- 同时任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,因此服务是“垂直的”
- 下层协议的实现对上层的服务用户是透明的,下层协议的实现方式的改变对上层没影响,因为接口是不变的。
- 同系统的相邻层实体间通过接口进行交互,通过服务访问点SAP(Service Access Point),交换原语,指定请求的特定服务。
## OSI参考模型
- OSI(Open System Interconnection 开放系统互连)是由国际标准化组织(International Organization for Standardization)于1984年提出的分层网络体系结构模型。
- 目的:支持异构网络系统的互连互通,是异构网络系统互连的国际标准。
- OSI参考模型将网络通信在功能上划分为7层:物理层,链路层,网络层,传输层,会话层,表示层,应用层
OSI | 分层名称 | 功能 | 每层功能概述 |
1 | 物理层 | 以"0","1"代表电压的高低,灯光的闪烁。 界定连接器和网线的规格 | |
2 | 数据链路层 | 互连设备之间传送和识别数据帧 | |
3 | 网络层 | 地址管理和路由选择 |
|
4 | 运输层 | 管理两个节点之间的数据传输。 负责可靠传输(确保数据被可靠地传送到目标地址) | |
5 | 会话层 | 通信管理。负责建立和断开通信连接(数据流动的逻辑通路) 提供了数据交换定界和同步功能 管理传输层一下的分层 | |
6 | 表示层 | 设备固有数据格式和网络标准数据格式的转换 使通信的应用程序能够解释交换数据的含义 | |
7 | 应用层 | 针对特定应用的协议 |
【OSI模型的通信过程】
- 中间系统表示路由器、交换机等设备
- 对等层次之间遵循相关层次的协议进行数据的交换(注意:对等层之间知识逻辑上到达,数据实际上还是通过物理层的链路进行传输)。
- 相邻层之间通过接口来交换数据。
- 我们不难看出,上4层(应用层、表示层、会话层、传输层)直接对应到目的主机对等层次,下3层(网络层、数据链路层、物理层)为中间系统可以实现的层次。
- 我们把上4层称为端-端层(不需要中间系统实现)。注:虽然OSI参考模型的4-7层为端到端层,但并不意味中间系统(如路由器)就绝对不实现这些层次的功能或者运行这些层次的协议,如绝大多数路由器支持以Web(应用层)登陆。
【OSI模型的数据封装】
- 封装及传输步骤解析:(主机A向主机B发送数据)
- 用户数据在主机A交给应用层,应用层根据网络应用及应用层协议不同,可能会加上一些控制信息(AH),即应用层头。这样就构成了一个协议数据单元(PDU)。应用层将应用层的协议数据单元(A-PDU)通过接口发送给表示层。
- 同样,表示层在接受到A-PDU后,再将其加上头表示层规定的一些头部信息(PH)构成了表示层的协议数据单元(P-PDU)。表示层再将P-PDU交给会话层。
- 依次类推,在网络层的协议数据单元交给数据链路层后,注意数据链路层会将其加头加尾,封装成帧,再交给物理层进行传输。
- 主机B的物理层在接收到的信息中,识别出数据链路层的帧,交给链路层处理。链路层在识别帧后去头去尾,还原出网络层的数据单元(N-PDU), 再交给网络层。
- 网络层可以识别出网络层的协议数据单元,去掉头部信息,还原成传输层协议数据单元(S-PDU),再交给传输层。
- 依次类推,数据最后到达应用层后,会被去掉头,还原成主机A用户原始发送的数据,再传递给主机B的用户。
【OSI模型的分组和协议栈】
层 | 信息分组名称 | 协议栈 |
应用层 | 报文(message) |
|
运输层 | 报文段(segment) |
|
网络层 | 数据报(datagram) |
|
链路层 | 帧(frame) |
|
【OSI模型中的数据封装】
- 数据封装其实就是给原始数据加上控制信息,构造协议数据单元(PDU)。
- 控制信息常常包括:
- 地址(Address)信息:标识发送端与接收端
- 差错检测编码(Error-detecting code)信息:用于差错检测或纠正
- 协议控制(Protocol control)信息:实现协议功能的附加信息,如:优先级(priority)、服务质量(QoS)和安全控制等。
## OSI模型中各层次承担的主要功能
【物理层】
在物理层中,定义了如下内容:
- 接口特性
- 机械特性:规定了接口的几何形状等
- 电器特性:规定了接口使用的电平大小等
- 功能特性:规定了接口引脚个数及各项功能等
- 规程特性:定义了接口在工作过程中遵循的相应过程。
- 比特编码:用比特对信息按照一定规则进行编码,用于传输
- 数据率:即数据传输速率
- 比特同步:时钟同步
- 传输模型
- 单工模式(Simplex):只能单向传输,如电视机只能单项接收来自电视台的信号,不能给电视台发送信号。
- 半双工模式(half-duplex):只能交替双向通信,即主机A与主机B可以相互发信息,但是不能同时向对方发信息。如对讲机,说的时候不能发,发的时候不能说。
- 全双工模式(full-duplex):可以同时双向通信,如电话。
【数据链路层】
- 数据链路层主要承担的功能:
- 负责结点-结点(node to node)数据传输
- 组桢(Framing)
- 物理寻址(Physical addressing):在桢头添加发送端或接收端的物理地址标识数据帧的发送端或接收端
- 流量控制(Flow control):匹配发送端与接收端的发送速度与接收速度,避免数据淹没接收端。
- 差错控制(Error control):检测并重传损坏或丢失帧,并避免重复帧。
- 访问(接入)控制(Access control):在任一给定时刻决定哪个设备拥有链路(物理介质)的控制使用权。
【网络层】
- 网络层主要承担的功能:
- 负责源主机到目的主机数据分组(packet)的交付(可能穿越多个网络)。
- 逻辑寻址(Logical addressing):全局唯一逻辑地址,确保数据分组被送达目的主机,如IP地址(穿越多个网络时,链路层的物理寻址并不能用)。
- 路由(Routing):路由器(或网关)互连网络,并路由分组至最终目的主机,进行路径选择。
- 分组转发
【传输层】
- 传输层的主要功能:
- 负责源-目的(端-端)(进程间)完整报文传输
- 报文分段与重组
- SAP寻址:确保将完整报文提交给正确进程,如端口号
- 连接控制:负责端-端的连接控制(建立连接、拆除连接),是一种逻辑连接
- 流量控制:控制端-端传输的速度
- 差错控制:差错检测与纠正
【会话层】
- 会话层:插入控制信息"syn",不单独存在
- 对话控制(dialog controlling):控制对话的建立、维护等
- 同步(synchronization):在数据流中插入“同步控制点“
【表示层】
- 表示层用于处理两个系统之间交换信息的语法与语义问题
- 数据标识转化:转换为主机独立的编码,如数据传输到Mac,则需要将其转换为Mac的编码,传到Win则需要将其转换为Win的编码。
- 加密/解密
- 压缩/解压缩
- 实际上由应用层完成实现
【应用层】
应用层是网络应用软件以及他们的应用层协议停留的地方
应用层支持用户通过用户代理(如浏览器)或网络接口使用网络(服务):如FTH、SMTP、HTTP等
## TCP/IP参考模型
TCP(Transmission Control Protocol):传输控制协议
IP(Internet Protocol):因特尔协议
【五层参考模型的数据封装】
【与OSI模型的关系】
上图列出了TCP/IP与OSI分层之间的大概关系,不难看出,TCP/IP与OSI在分层模块上稍有区别。OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”。
分组数据包经过以太网的数据链路时的大致流程如下图所示:
更多关于 TCP/IP 请移步 《图解 TCP/IP》读书笔记