读书频道 > 网站 > 网页设计 > 计算机网络教程:自顶向下方法
1.2.1 场景
12-12-29    奋斗的小年轻
收藏    我要投稿   
本书作者Forouzan是计算机教育领域的知名专家,他在这本经典著作中,利用Internet协议分层和TCP/IP协议簇,采用自顶向下的方法,首先说明应用层协议是怎样交换信息的,再解释消息是怎样分解成比特和信号并通过In...立即去当当网订购

1.2  协议分层

当谈到Internet时,我们总能听到的一个词汇就是协议(protocol)。协议定义了发送者、接收者和所有中间设备为了高效通信需要遵循的规则。当通信简单时,我们可能只是需要一个简单的协议;当通信复杂时,我们可能需要把任务划分到不同层,每层需要一个协议,也就是说需要协议分层(protocol layering)。

1.2.1  场景

为了更好地理解为什么需要协议分层,我们来看两种简单的场景。

场景一

在第一个场景中,通信如此简单以至于它能够在一层中实现。假设Maria和Ann是拥有很多共同想法的邻居。Maria和Ann之间的通信发生在一个层次中,她们面对面并使用相同的语言,如图1-9所示。


 

即使在这个简单的场景中,我们也可以看到需要遵循一系列的规则。第一,Maria和Ann了解当她们相遇时应该互相问候。第二,她们明白她们应该限制使用的词汇在她们友谊的层次上。第三,一方知道当另一方讲话时,她应该抑制自己讲话。第四,每一方都知道应该是对话而不是独角戏:双方都应该有机会对某一问题发表看法。第五,当她们分别时,应该交换一些祝福语。

我们可以看到,Maria和Ann使用的协议与课堂上老师和学生的通信不同。第二种情况中,大部分情况下是独角戏;除非学生有问题,老师的谈话会占用大部分时间。在这种情况下,协议应该规定学生应该举手并等待被允许说话。这种情况下的通信通常非常正式,同时限制在讲授的前提下。

场景二

在第二个场景中,我们假设公司提拔了Ann,但是她需要到距离Maria很远的城市上班。由于这两位朋友着手进行一个新的项目以便退休后启动新生意,因此她们希望继续她们的通信、交换她们的想法。她们决定定期通过邮局使用信件继续交换她们的想法。但是,即使信件被拦截,她们也不希望她们的想法被其他人知道。她们一致同意采用一种加密/解密技术。信件的发送者对信件加密,使之对入侵者不可读;信件的接收者对信件解密,从而得到原始的信件。我们将在第10章讨论加密/解密方法,但是现在我们假设Maria和Ann采用了一种技术,该技术在一个人不拥有密钥的情况下很难解密信件。现在我们可以说Maria和Ann之间的通信在3个层次上进行,如图1-10所示。我们假设Ann和Maria每个人拥有3台机器(机器人),这3台机器分别在每一层执行任务。


 

我们假设Maria向Ann发送第一封邮件。Maria在第3层对机器谈话,仿佛这台机器就是Ann,并且在听她谈话。第3层机器聆听Maria所说的内容并形成了明文(用英文书写的邮件),传递给第2层机器。第2层机器接收明文,对它进行加密并形成密文,传递给第1层机器。第1层机器,大概是个机器人,接收密文,把它放入一个信封中,添加发送者和接收者地址,然后进行邮寄。

在Ann的一端,第1层机器从Ann的信箱中取出邮件,通过发送者的地址得知该邮件来自于Maria。机器从信封中取出密文并将它投递给第2层机器。第2层机器解密这个信息,形成明文并将明文传递给第3层机器。第3层机器接收明文并仿佛Maria正在说话一样将它读出来。

协议分层允许我们将一个复杂的任务分解成几个较小的、简单的任务。例如,在图1-10中,我们可以只使用一台机器完成所有3台机器的工作。可是,如果Maria和Ann判定这台机器所做的加密/解密不足以保护她们的秘密,那么她们需要更换整台机器。在现在的情况下,她们只需要更换第2层的机器,另外两台机器能够保持不变。这种方法称为模块化(modularity)。在这个示例中,模块化意味着独立的层次。一层(一个模块)可以定义为一个具有输入和输出的黑盒子,我们不必关心输入如何变成输出。如果给定相同的输入,两台机器提供相同的输出,那么它们可以相互替换。例如,Ann和Maria可以从两个不同的厂商购买第2层机器。只要这两台机器能把相同的明文变成相同的密文,相同的密文变成相同的明文,那么它们就可以相互替换。

协议分层的优越性之一是它允许我们将服务从实现中分离出来。一层需要能够接收较低层的一系列服务,同时向较高层提供服务,而我们不关心这一层是如何实现的。例如,Maria可以决定不为第1层购买机器(机器人);她可以自己做这些工作。只要Maria能够在两个方向上完成第1层提供的任务,通信系统就可以工作。

协议分层的另一个优越性无法在简单的示例中体现,但是当我们讨论Internet中的协议分层时能够展现出来。这个优越性就是通信不只是用于两个端系统,中间系统只需要一些层次而不是所有的层次。如果不使用协议分层,形成的中间系统就不得不像端系统一样复杂,这样就会提高整个系统的造价。

协议分层有不足之处吗?有人说单一层次使工作更加容易。对每一层来说,没有必要向上一层提供服务并使用下一层的服务。例如,Ann和Maria可以寻找或建造一台机器来完成这三种任务。可是,正像前面提到的那样,如果某一天她们发现她们的编码被攻破,那么每人都不得不用新机器替换整个机器,而不是只更换第2层的机器。

协议分层原则

让我们讨论一些协议分层原则。第一个原则就是如果想要双向通信,那么我们需要每一层能够实现两个相反的任务,每个方向上一个。例如,第3层的任务就是听(在一个方向上)和说(在另一个方向上),第2层需要能够加密和解密,第1层需要发送和接收邮件。

在协议分层中我们需要遵循的第二个原则是两端每一层中的两个对象应该相同。例如,两端第3层的对象应该为明文信件。两端第2层的对象应该为密文信件。两端第1层的对象应该为一封邮件。

逻辑连接

在遵循以上两个原则之后,每层之间的逻辑连接如图1-11所示。这意味着我们拥有层到层的通信。Maria和Ann可以认为每一层有一个逻辑(想象的)连接,通过这个连接她们可以发送那一层创建的对象。我们将看到逻辑连接的概念将帮助我们更好地理解数据通信与网络中遇到的分层任务。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站