计算机网络的体系结构
计算机网络是个非常复杂的系统。
相互通信的两个计算机系统必须 高度协调工作才行,而这种“协调”是相当复杂的。
分层可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。 即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI 。
实际上非国际标准 TCP/IP 却获得了最广泛的应用。
计算机网络中的数据交换必须遵守事先约定好的规则这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。网络协议 (network protocol),简称为**协议,*是为进行网络中的数据交换而建立的规则、标准或约定。
网络协议的三个组成要素 :
语法数据与控制信息的结构或格式 。
语义需要发出何种控制信息,完成何种动作以及做出何种响应。
同步事件实现顺序的详细说明。
协议的两种形式 :文字描述和程序代码,这两种不同形式的协议都必须能够对网络上信息交换过程做出精确的解释。
层次式协议结构
好处:
- 各层之间是独立的
- 灵活性好
- 结构上可以割开
- 已于实现和维护
- 能促进标准化工作
缺点:
- 降低效率
- 有些功能会在不同的层次中重复出现,因而产生了额外开销。
层数太少,就会使每一层的协议太复杂。层数太多,又会在描述和综合各层功能的系统工程任务时遇到较多的困难。OSI 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层。但最下面的网络接口层并没有具体内容。
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构 。
两个主机之间收发数据的过程
假定主机1发送数据,主机2接受数据
- 应用进程数据先传送到应用层 加上应用层首部,成为应用层 PDU(PDU (Protocol Data Unit):协议数据单元。OSI 参考模型把对等层次之间传送的数据单位称为该层的协议数据单元PDU。)
- 应用层 PDU 再传送到运输层 加上运输层首部,成为运输层报文
- 运输层报文再传送到网络层 加上网络层首部,成为 IP 数据报(或分组)
- IP 数据报再传送到数据链路层 加上链路层首部和尾部,成为数据链路层帧
- 数据链路层帧再传送到物理层 最下面的物理层把比特流传送到物理媒体
- 电信号(或光信号)在物理媒体中传播 从发送端物理层传送到接收端物理层
- 物理层接收到比特流,上交给数据链路层
- 数据链路层剥去帧首部和帧尾部 取出数据部分,上交给网络层
- 网络层剥去首部,取出数据部分 上交给运输层
- 运输层剥去首部,取出数据部分 上交给应用层
- 应用层剥去首部,取出应用程序数据 上交给应用进程
- 主机2收到了主机1发送的数据
实体、协议、服务和服务访问点
实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
–AT------------------------
协议和服务在概念上是不一样的 :
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
上层使用服务原语获得下层所提供的服务。
同一系统相邻两层的实体进行交互的地方,称为服务访问点 SAP (Service Access Point)。
服务访问点SAP是一个抽象的概念,它实际上就是一个逻辑接口。
OSI把层与层之间交换的数据的单位称为服务数据单元 SDU (Service Data Unit)。
SDU 可以与 PDU 不一样,例如,可以是多个SDU 合成为一个 PDU,也可以是一个 SDU 划分为几个 PDU。
TCP/IP体系结构的演变
实际上,现在的互联网使用的 TCP/IP体系结构有时已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层。