这一部分讲的其实也是基础,只不过前一篇文章讲的大部分是基础概念,这一篇文章主要讲解处理计算机网络问题的基本方法:
- 层次模型与网络协议
- 网络体系结构
- OSI/RM与TCP/IP
- 具有五层协议的体系结构
- 数据流(包)分析
1. 层次模型与网络协议
计算机网络是个非常复杂的系统。涉及:无差错的信息传送、多个用户共享一条物理线路、按照地址信息,进行路由选择、信息缓冲和流量控制、会话控制、满足各种用户、各种应用的访问要求等。
一般人们采用“层次结构”的方法来描述计算机网络,即:将系统所要实现的复杂功能分化为若干个相对简单的功能,每一项分功能以相对独立的方式去实现。
根据功能进行抽象分层,每个层次所要实现的功能或服务均有明确的规定。即功能层次化(layer) 。
不同系统分成相同层次,对等层次有相同功能。
与网络信息传递相似的邮政系统分层实例:
分层的好处与缺点
好处:
- 灵活性好。
- 结构上可分割开。
- 易于实现和维护。
- 能促进标准化工作。
缺点:
- 降低效率。
- 有些功能会在不同的层次中重复出现,因而产生了额外开销。
层数太少,就会使每一层的协议太复杂;
层数太多,又会在描述和综合各层功能的系统工程任务时遇到较多的困难。
协议
协议(Protocol)的定义:计算机网络同等层次中,通信双方进行信息交换时必须遵守的规则。
协议的三要素:
- 语法(syntax)
- 语义(semantics)
- 时序(timing)
协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,还必须非常仔细地检查这个协议能否应付各种异常情况。
协议的分层结构
ARPANET 的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。
“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题就比较易于研究和处理。
2. 网络体系结构
网络体系结构(Network Architecture) 是网络层次性结构模型及各层通信协议的集合。
体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。
不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。由于网络体系结构的不同,不同公司的设备很难互相连通。
为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。
他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。
OSI 只获得了一些理论研究的成果,在市场化方面却失败了。原因包括:
- OSI 的专家们在完成 OSI 标准时没有商业驱动力;
- OSI 的协议实现起来过分复杂,且运行效率很低;
- OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
- OSI 的层次划分也不太合理,有些功能在多个层次中重复出现。
- 法律上的 (de jure) 国际标准 OSI 并没有得到市场的认可。
非国际标准 TCP/IP 却获得了最广泛的应用。TCP/IP 常被称为事实上的 (de facto) 国际标准。
3. OSI/RM与TCP/IP
ISO/OSI参考模型
低三层与通信双方的端系统有关,高三层向应用进程提供直接支持的功能。
传输层则是连接上、下两组功能,提供完整的端到端的通信服务(传输层是计算机网络体系结构中非常重要的一层)。
OSI理论概念
实体 (entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
OSI模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU (Protocol Data Unit)。这个名词现已被许多非 OSI 标准采用
协议和服务在概念上是不一样的
协议的实现保证了能够向上一层提供服务。
本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。
- 协议是“水平的”,即协议是控制对等实体之间通信的规则。
- 服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
上层使用服务原语获得下层所提供的服务。
TCP/IP 的体系结构
应用层(TCP/IP)
包含OSI模型的应用层、表示层、会话层的所有功能:
- 数据表示
- 数据加密
- 会话控制
传输层(TCP/IP)
传输层定义了两个端到端的协议,TCP和UDP 为应用程序提供可供选择的逻辑信道:
- TCP 提供可靠的字节流信道,是一个面向连接的协议,允许字节流无差错地发往其它机器,还处理流量控制,有连接,类似打电话。
- UDP 提供不可靠的无连接的协议,类似于发信、发电报。
互连网络层(TCP/IP)
网际协议(IP)支持多种网络技术互连为一个逻辑网络,是TCP/IP的关键部分,使主机可以把分组发往任何网络,并使分组独立地传向目标(可能经不同的网络),分组到达的顺序和发送的顺序可能不同。
互连网络层实现的功能:
- 确定路径
- 分组转发.
网络接口层
有多种网络协议,这些协议由硬件(网络适配器)和软件(如网络设备驱动程序)共同实现。
如:以太网或光纤分布式接口(FDDI)协议在这一层,则一层可以分为多个子层。
TCP/IP 体系结构的另一种表示方法
实际上,现在的互联网使用的 TCP/IP 体系结构有时已经发生了演变,即某些应用程序可以直接使用 IP 层,或甚至直接使用最下面的网络接口层。
沙漏计时器形状的 TCP/IP 协议族:
客户进程和服务器进程使用 TCP/IP 协议栈进行通信:
功能较强的计算机可同时运行多个服务器进程 :
OSI/RM与TCP/IP比较
4. 具有五层协议的体系结构
OSI/RM 的七层协议体系结构的概念清楚,理论也较完整,但它既复杂又不实用。
TCP/IP 是四层体系结构:应用层、运输层、网际层和网络接口层,但最下面的网络接口层并没有具体内容。
因此往往采取折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的原理体系结构 。
各层协议的主要功能
- 物理层: 如何在物理媒体上传送比特流。
- 数据链路层: 相邻节点间的线路上无差错地传送以帧(frame)为单位的数据。
- 网络层: 如何将分组(Packet)从源主机通过中间路由器传送到目的主机。
- 运输层: 提供不同主机上通信进程间的数据传输服务。
- 应用层: 如何通过应用进程间的交互来完成特定网络应用。
5. 数据流(包)分析
网络体系结构的分层禁止了不同主机间的对等层之间的直接物理通信。因此,主机A的每一层必须依靠主机A相邻层提供的服务来与主机B的对应层通信(间接或虚拟通信)。
网络体系结构把对等层次之间传送的数据单位称为该层的协议数据单元 PDU (Protocol Data Unit)。这个名词现已被许多非 OSI 标准采用。
任何两个同样的层次把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层”(peer layers)之间的通信。
各层协议实际上就是在各个对等层之间传递数据时的各项规定。
下面将以主机 1 向主机 2 发送数据为例具体讲解: