计算机网络如何协议与划分层次?

2016-07-12 875 0 编辑:Monster 来源:互联网

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

(1)语法,即数据与控制信息的结构或格式;

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

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

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

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

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

现在假定我们在主机1和主机2之间通过一个通信网络传送文件。这是一件比较复杂的工作,因为需要做不少的工作。

我们可以把要做的工作划分为三类。第一类工作与传送文件直接有关。例如,发送端的文件传送应用程序应当确信接收端的文件管理程序己做好接收和存储文件的准备。若两个主机所用的文件格式不一样,则至少其中的一个主机应完成文件格式的转换。这两件工作可用一个文件传送模块来完成。这样,两个主机可将文件传送模块作为最高的一层。在这两个模块之间的虚线表示两个主机系统交换文件和一些有关文件交换的命令。

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

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

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

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

(2)灵活性好。当任何一层发生变化时(例如由于技术的变化),只要层间接口关系保持不变,则在这层以上或以下各层均不受影响。此外,对某一层提供的服务还可进行修改。当某层提供的服务不再需要时,也可以将这层取消。

(3)结构上可分割开。各层都可以采用最合适的技术来实现。

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

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

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

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

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

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

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

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

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

我们把计算机网络的各层及其协议的集合,称为网络的体系结构(architecture)。换种说法,计算机网络的体系结构就是这个计算机网络及其构件所应完成的功能的精确定义[GREE82]。需要强调的是:这些功能究竟是用何种硬件或软件完成的,则是一个遵循这种体系结构的实现((implementation)的问题。体系结构的英文名词architecture的原意是建筑学或建筑的设计和风格。它和一个具体的建筑物的概念很不相同。例如,我们可以走进一个明代的建筑物中,但却不能走进一个明代的建筑风格之中。同理,我们也不能把一个具体的计算机网络说成是一个抽象的网络体系结构。总之,体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。


本站文章均为深正网站建设摘自权威资料,书籍,杂志或原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享到社交网站,引用和转载,我们谢绝直接复制和抄袭!感谢您...

学习课堂

PHP array_chunk 怎样将一个数组分割成多个?

array_chunk() 将一个数组分割成多个数组,其中每个数组的单元数目由 size 决定。最后一个数组的单元数目可能会少几个。得到的数组是一个多维数组中的单元,其索引从零开始...

2017-10-16
2016-07-26
2016-09-20
2017-07-24

动态更新

【签约】深圳市优万电子商务有限公司网站建设

优万家经营电子商务;服装、电子数码产品、电器、鞋帽、化妆品、办公用品、纺织品、日用百货、酒店用品、办公用品的技术开发与销售;国内贸易;货物及技术进出口等等

2017-04-21
2017-11-15
2015-03-02
2017-10-18

资讯知识

WEB前端开发人员须知的常见浏览器兼容问题及解决技巧

所谓的浏览器兼容性问题,是指网站设计过程中因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果。所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题...

>2016-08-03
>2017-09-14
>2017-06-23
>2017-08-18
亲,请您联系我们吧

您的疑问,只要您主动联系,将为您得到最专业,最全面的解答,欢迎您询问...