什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络是一个非常复杂的系统。从技术上涉及两大技术:通信技术和计算机技术。从物理构成上,涉及许多组成部分。比如主机(hosts)、路由器(routers) 、 各种链路(links) 、应用(applications) 、 协议(protocols) 、硬件、软件……
那么是否存在一种系统结构能够有效地描述这样一个复杂的网络,让我们一看就很容易理解计算机网络。这样的结构有利于我们去分析、讨论或学习网络相关的内容。
到目前为止,普遍认为去刻画或描述一个复杂系统的有效结构就是分层结构。
网络体系结构是从功能上描述计算机网络结构。并不是从物理硬件上去描述计算机。这样的网络体系结构 (network architecture)是分层结构。每层遵循某个/些网络协议完成本层功能。因此,计算机网络体系结构是计算机网络的各层及其协议的集合。在功能层次上,并不关心到底是怎样实现功能的,所以它是抽象的体系结构。
简单来说,就是分层。能够直观的展现出分了哪些层,每个层是什么功能,这些功能是通过什么协议实现的,层与层之间有什么关系。
或者说分层结构的优点有哪些?
结构清晰,有利于识别复杂系统的部件及其关系。
在计算机网络中,按照分层结构所提出的这样一个体系结构通常来说,我们把它称为参考模型。比如说某某网络体系结构,我们可能更多时候说某某参考模型。
分层结构也体现了模块化的思想。模块化可以很好的封装内部,对外开放接口,至于内部是如何实现的,外部是看不到的。这种分层易于系统更新、维护。任何一层内部的实现改变了,只要它对其它层提供的服务或者使用其它层提供的服务的方式或接口不发生改变。那么就不会影响其他层。比如登机过程的改变并不影响航空系统的其它部分(层)。
有利于标准化。
那分层是否有不利之处,或者说分层太多什么不好?我们想一下,如果一个社会系统分层太多,可能会导致这个系统的效率太低。比如我们要办个事,需要经过一层一层审批,这个层次越多,审批过程就越长,效率就越低。
实体(entity) 表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
相同层次的实体之间要交换信息,它们交换信息要遵循协议。换句话说,协议定义了同层之间的两个实体如何交流。所以,协议是“水平的”。
任一层实体需要使用下层服务,遵循本层协议,实现本层功能,向上层提供服务,服务是“垂直的”。
两个相邻的层次之间,存在服务和被服务这样的关系。本层实现的功能以服务的方式提供给上一层。
下层协议的实现对上层的服务用户是不可见的。
比如我们去点餐,我们点完后并不关心食物在厨房是怎么被做出来的。我们只知道点完后就可以等待享用食物了。
同系统的相邻层实体间通过接口进行交互,通过服务访问点 SAP (Service Access Point),交换原语,指定请求的特定服务。
下一篇文章来介绍一些著名的参考模型。