协议和标准
一、疑问
学到TCP/IP的时候竭力搞懂“协议”的含义,当碰到以太网标准的时候,又疑惑“标准”是什么?
当然我并不是不知道平时说的“标准”是什么意思,毕竟GB开头的国标产品随处可见。
我只是疑惑为什么TCP/IP这里用“协议”,而到了以太网这里,或者说IEEE802.3,就要叫“标准”?
TCP/IP改叫标准行不行?IEEE802.3标准改叫协议行不行?或者两者都叫标准,又或者都叫协议行不行?
很显然,不行,不然没必要这么区分。
但是为什么不行?这就是要深入探究的问题。
二、标准和协议相同的类比
在我前面的文章 协议和私有协议中把协议类比成语言。
那标准是否也可以做这种类比?
好像也可以。
在同一标准下的产品才能组合起来,标准不一样就像互相之间有了屏障。
比如插头和插座,它们都是有国标的,任何按照相应国标生产出来的插头和插座可以任意互相匹配。
可不可以不按照国标生产?当然可以,但是这样就没有办法进入这类国标产品的圈子和它们混用。
可不可以定义自己的插头插座标准?当然可以,但是一样的道理,这种产品只能自己跟自己玩(私有标准或者叫内部标准)。
这样一对比,好像标准和协议也没什么差别嘛。
三、标准和协议最大的差别
但是感觉是不会骗人的,它们肯定不一样,只是我还没发现,或者说脑中已经有了朦胧的印象还在等待它慢慢走近。
终于,强烈跳动的第六感实在压不住了,脑中突然跳出一句话:
在协议产生之前无法进行通信,但是在标准产生之前已经有大量的产品问世了!
简单的一句话,其实已经道出了两者的差别。
先有协议后有通信,先有产品后有标准。
协议是马前卒,标准是马后炮。
有了TCP/IP,才有了异构网络间的通信,不谈TCP/IP和网络,同一厂商设备的内部通信,没有协议能进行通信吗?当然不行!永远是先有协议后有通信!
就像人类,要先有语言才有对话沟通。那语言出现之前就没有沟通吗?有,可以用肢体比划和发出特定的声音,但这种方式是不过是和语言一样的另一种“协议”罢了。和语言一样,一定要有双方共同认可的沟通规则在前,才有沟通在后!
那“标准”呢?有哪种产品是先制定了行业标准或者国家标准,然后再按标准去生产的吗?从来没有!所以标准的一个特点就是“滞后性”。永远是先有各个厂家各种产品的群雄混战,然后才有行业标准或者国家标准出台,大家按照标准生产产品,最终形成一个行业生态。
就像个人电脑的发展(详见:个人电脑进化简史)一样,一开始百花齐放(其实叫千奇百怪更合适),直到IBM采用通用的标准部件并开放技术资料,形成了事实上的PC标准后,PC产业才得以一飞冲天。
所以,一定是产品在前,标准在后。
这就是我今天想到的两者最大的不同。
四、“标准”的定义
说了这么多,还没给“标准”下个定义,我也没有好的总结。
- 权威的“标准”定义
- 国家标准GB/T 3935.1—83
定义:
标准是对重复性事物和概念所做的统一规定,它以科学、技术和实践经验的综合为基础,经过有关方面协商一致,由主管机构批准,以特定的形式发布,作为共同遵守的准则和依据。
- 国家标准GB/T 3935.1-1996
《标准化和有关领域的通用术语 第一部分:基本术语》中对标准的定义:
为在一定范围内获得最佳秩序,对活动或其结果规定共同的和重复使用的规则、导则或特性的文件。该文件经协商一致制定并经一个公认机构的批准。它以科学、技术和实践经验的综合成果为基础,以促进最佳社会效益为目的。
- 国际标准化组织(ISO)
ISO的标准化原理委员会(STACO)先后以“指南”的形式对“标准”的定义作出统一规定:
标准是由一个公认的机构制定和批准的文件。它对活动或活动的结果规定了规则、导则或特殊值,供共同和反复使用,以实现在预定领域内最佳秩序的效果。
- 缝合怪定义:
为在一定范围内获得最佳秩序,由一个公认的机构制定和批准的文件,对重复性事物和概念所做的统一规定,就是标准。
五、“协议”的定义
- 协议的定义:
协议,意思是共同计议,协商;经过谈判、协商而制定的共同承认、共同遵守的文件。
- 通信协议的定义:
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
六、另一个角度对比协议和标准
还是拿语言来对比。
两个人都说中文就能沟通,但能说这两个人一定都是中国人吗?肯定不能,那怎么才能判断是不是中国人?看国籍。
也就是说,语言只是两人沟通的“协议”,但国籍才是判定身份的“标准”。
这也引出了看待标准的一个新的角度:标准的目的是创建一种手段来确定某物是否确实是标准化物的一个实例。
这个人是不是中国人?看国籍就行,跟他说哪种语言没有关系。
这个网络是不是以太网?看是否符合IEEE802.3标准就行,跟它使用哪种通信协议没有关系。
以太网可以使用TCP/IP,也可以使用其他协议。
反过来,TCP/IP可以运行在以太网上,也可以运行在其他类型的网络上。
这么看,标准像是一种身份,而协议像是一种技能。
所以,有技能的去当马前卒,有身份的都是马后炮。
嗯,一点没错。
本文来自博客园,作者:GPL-技术沉思录,转载请注明原文链接:https://www.cnblogs.com/polin/p/17189781.html