• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

网络协议与层次划分

网络基础 彭东稳 9年前 (2015-09-22) 22980次浏览 已收录 0个评论

一、网络协议与标准

为了使数据可以在网络上从源传递到目的地,网络上所有设备需要“讲”相同的“语言”描述网络通信中“语言”规范的一组规则就是协议。协议可以理解为规则;而标准可以理解为一致同意的规则。

因特网的标准化工作对因特网的发展起到了非常重要的作用。因特网在指定其标准上也很担忧特色,其中一个很大的特点是面向公众。因特网所有的RFC文档都可从因特网上免费下载,而且任何人都可以用电子邮件随时发表对某个文档的意见或建议。这种方式对因特网的迅速发展影响很大。

1992年由于因特网不再归美国政府管辖,因此成立了一个国际性组织叫做因特网协会,简称ISOC。以便对因特网进行全面管理以及在世界范围内促使发展和使用。ISOC下面有一个技术组织叫做因特网体系机构委员会IAB,负责管理因特网有关协议的开发。而IAB下面又设有两个工程部:因特网工程部IETF和因特网研究部IRTF

还有如:ISO(国际标准化组织)、ANSI(美国国家标准化局)和IEEE(电气和电子工程师学会)等,其中IEEE有一项标准就是我们常用“EEE 802局域网标准”

IEEE 802.3

IEEE 802.3u标准,百兆快速以太网标准

IEEE 802.3z标准,光纤介质实现千兆以太网标准规范

IEEE 802.3ab标准,双绞线实现千兆以太网标准规范

IEEE 802.3ae标准,光纤介质实现万兆以太网标准

IEEE 802.3an标准,双绞线实现万兆以太网标准

IEEE 802.11

IEEE 802.11a,载波频率5GHz,速率最高可达54Mbps

IEEE 802.11b,载波频率2.4GHz,速率最高可达11Mbps

IEEE 802.11g,载波频率为2.4GHz,速率最高可达54Mbps

IEEE 802.11n,最高可达600Mbps

在计算机网络中要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则。这些规则明确了所交换的数据的格式以及有关的同步问题。这里所说的同步不是狭义的而是广义的,即在一定的条件下应当发生什么事件,如发送一个应答信息。因而同步含有时序的意思。这些为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。网络协议也可简称为协议。更进一步讲,网络协议主要由以下三个要素组成:

语法,即数据与控制信息的结构或格式。

语义,即需要发出何种控制信息,完成何种动作以及做出何种响应。

同步,即事件实现顺序的详细说明。

由此可见,网络协议是计算机网络的不可缺少的组成部分。实际上,只要我们想让连接在网络上的另一台计算机做点说明事情,例如利用万维网下载一个文件,我们都需要有协议。但是当我们经常在自己的主机上进行文件存盘操作时,就不需要任何网络协议。除非这个用来存储文件的磁盘是网络上的某一个文件服务器的磁盘。

协议通常有两种不同的形式。一种是使用便于人来阅读和理解的文字描述。另一种是使用让计算机能够理解的程序代码。这两种不同形式的协议都必须能够对网络上信息交换过程做出精确解释。

其次ARPANET的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。通过一个例子来说明划分层次的概念。

假定主机1和主机2之间通过一个通信网络传送文件。这是一件比较复杂的工作,因为需要做不少的工作。我们可以将要做的工作划分为三类,第一类工作与传送文件直接有关。例如,发送端的文件传送应用程序应当确信接收端的文件管理程序已做好接收和存储文件的准备。若两个主机所用的文件格式不一样,则至少其中的一个主机应完成文件格式的转换。这两件工作可用一个文件传送模块来完成。这样,两个主机可将文件传送模块作为最高的一层。如图:

网络协议与层次划分

在这两个模块之间的虚线表示两个主机系统交换文件和一些有关文件交换的命令。

但是,我们并不想让文件传送模块完成全部工作的细节,这样会使文件传送模块过于复杂。可以再设立一个通信服务模块,用来保证文件和文件传送命令可靠地在两个系统之间交换。也就是说,让位于上面的文件传送模块利用下面的通信服务模块所提供的服务。我们还可以看出,如果将位于上面的文件传送模块换成电子邮件模块,那么电子邮件模块同样可以利用在它下面的通信服务模块所提供的可靠通信的服务。

同样道理,我们再构造一个网络接入模块,让这个模块负责做与网络接口细节有关的工作,并向上层提供服务,使上面的通信服务模块能够完成可靠通信的任务。

从上述简单例子可以更好地理解分成可以带来很多好处。如:

1. 各层之间是独立的,某一层并不需要知道它的下一层是如何实现的,而仅仅需要知道该层通过层间接口所提供的服务。由于每一层只实现一种相对独立的功能,因而可将一个难以处理的复杂问题分解为若干个较容易处理的更小一些的问题。这样,整个问题的复杂程度就下降了。

2. 灵活性好,当任何一层发生技术上的变化时,只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。

3. 结构上可分割,各层都可以采用最合适的技术来实现

4. 易于实现和维护,这种结构使得实现和调试一个庞大而又复杂的系统变得易于处理,因为整个的系统已被分解为若干个相对独立的子系统。

5. 能促进标准化工作,因为每一层的功能及其所提供的服务都已有了精确的说明。

分层时应注意使每一层的功能非常明确,若层数太少,就会使每一层的协议太复杂。但层数太多又会在描述和综合各层功能的系统工程任务时遇到较多的困难。通常各层所要完成的功能主要有以下一些,可以只包括一种或多种。

1. 差错控制,使得和网络对等端的相应层次的通信更加可靠。

2. 流量控制,使得发送端的发送速率不要太快,要使接收端来得及接收。

3. 分段和重装,发送端将要发送的数据块划分为更小的单位,在接收端将其还原。

4. 复用和分用,发送端几个高层会话复用一条底层的连接,在接收端再进行分用。

5. 连接建立和释放,交换数据前先建立一条逻辑连接,数据传送结束后释放连接。

PS:分层当然也有一些缺点,例如,有些功能会在不同的层次中重复出现,因而产生了额外开销。

通常把计算机网络的各层及其协议的集合,称为网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义。总之,体系结构是抽象的,而实现则是具体的是真正在运行的计算机硬件和软件。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (0)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!