协议、服务、服务原语、接口

  Andrew S.Tanenbaum著的的计算机网络(第四版)24页图1.14用两个哲学家交流的例子来比喻协议层次这个问题。先借用这个例子来说明这几个名词的意思。下面先画出哲学家交流的例子。

   描述图片:哲学家A懂英语和乌尔都语,哲学家B懂法语和汉语。翻译员A懂英语和荷兰语,翻译员B懂法语和荷兰语。秘书A和秘书B负责传输文字消息。 现在哲学家A要把自己“I like rabbits(英语版)”这件事情用英语传达给哲学家B。那么根据图片的知识:哲学家A将这段消息传给翻译员A,翻译员翻译成荷兰语后,再交给秘书A,秘书A将翻译后的消息用传真或其他什么传输介质传递给秘书B,秘书B把收到的消息交给翻译员B,翻译员B翻译成法语,交给哲学家B 。至此哲学家B收到了来自哲学家A的消息“j 'aime les lapins(法语版)”。

      很显然,哲学家A与哲学家B之间的这种交流过程是对网络中两个对等实体间通信过程的一个很形象的描述。

那么第一:协议在这个例子中如何体现了?(为了抛开拗口的协议定义,直接说比喻)

    翻译员A和翻译员B是一个对等实体,A必须把上面的一级传递下来的信息翻译成一种翻译员B能看懂的文字。并且,秘书A也必须和秘书B商量双方能实现收发的方式来完成消息的传递。根据翻译员,秘书的情况。最后,翻译员A,B达成一致的协议:大家都把消息翻译成荷兰文吧。秘书A和秘书B组后达成一致协议,咱们用传真收发吧。所以,这里协议就是:秘书A和秘书B之间规定把文字翻译成荷兰文和秘书A与秘书B都必须用传真这两条规定。  

      第二:服务是如何在这个例子中体现的??

     当哲学家A要发消息给哲学家B时,他只需把消息写好,然后交给翻译员B就行了,其他的事情都有翻译员B来完成?这里,翻译员B给哲学家A提供的服务就是:将哲学家A要发送给哲学家B的消息翻译,并发送给哲学家B。很显然:翻译A要把消息发送给哲学家B,还需要吩咐秘书A用传真机传真,所以,秘书A会对翻译A提供服务:把一段消息传真给对方。秘书B收到传真后,把消息提交给翻译B,翻译B把消息翻译成法语,提交给哲学家B。所以,服务就是:翻译员提供给哲学家的”翻译“,秘书提供给翻译员的“收发消息”。

    显然:“翻译”和“收发消息”这些服务具体怎么实现,都是在协议里实现的,这个例子中,协议规定了翻译成荷兰文,使用传真收发。

第三:服务原语?

     原语这里就是:哲学家告诉翻译员“把这些消息翻译后交给对方”,翻译员告诉秘书把消息传递给对方,以及秘书收到消息后告诉翻译员“消息已收到,交给你”等这种类似的命令。

第四:接口

  借口就是:哲学家告诉翻译员“把这些消息翻译后交给对方”时,不能很随意的表达,必须用规定的语句给翻译员说,也就是说这些命令都是有格式,有固定语法结构的,这个命令的语法结构和格式就是接口。

posted @ 2013-04-23 12:19  我是蜗牛在爬树  阅读(2189)  评论(0编辑  收藏  举报