协议和私有协议
协议是什么?
假设每个人都只会一种语言,那么任何两个人交流就要说同一种语言才能沟通起来,一个说中文一个说英文就沟通不起来。同一种语言的背后是什么?是语音、文字和语法上相同的规则。比如老师对学生说“请把书翻到第三章”,那学生就要听懂这个语音,看懂“第三章”的文字,理解这句话的意义,两方的沟通才能达到目的。他们必须运用一套相同的语言规则沟通才能顺畅。
计算机网络中的“协议”就像我们平时说的语言。对话的各方要说同一种语言才能沟通,同样的,网络中的设备也要使用同一种协议才能通信。
所以,可以给协议下个定义:为了达到某个目标,所有的参与方共同遵守的规则就是协议。
可不可以不遵守某个协议?当然可以,但是这样就会被排除在使用这个协议的圈子之外。比如一群人用中文聊得热火朝天,张三只会说英语,那他就没有办法加入聊天。同样的,一群外国人在聊天,李四只会说中文也一样没有办法加入群聊。
Internet使用的协议是TCP/IP,要想加入Internet就要遵守TCP/IP,就是这个道理。
可不可以自己发明出一个协议?当然可以,但是这样只能和使用这个协议的参与者组成圈子。
还拿语言来说明,你甚至可以自己发明一种语言去教会别人,然后你们就用这种语言单独交流。哦,等等,这不就是暗号吗?没错!暗号是参与方为了达到私密沟通的目的而共同遵守的一套特殊语言代码。
如果说通用的语言属于公共协议,那么暗号就是私有协议。
网络设备不只要为Internet服务,还要为其他的用处服务,比如和控制端进行通信等。那么他们为了进行Internet通信要遵守TCP/IP这个公共协议,为了其他的通讯就要有自己的“暗号”——私有协议。
我们不妨把目光再放宽一点,跳出网络通信的范围。
在计算机内部,各个部件之间要不要通信?当然要,比如CPU和内存之间,主板和存储设备之间等,它们的交互也有一定的规则。常见的SCSI协议,NVMe协议,USB协议,显示器的HDMI接口规范等都属于协议。
可以说,要进行通信,就要有协议。
全行业通用的叫公共协议,只有某家内部使用的就是私有协议。
百科定义:
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
本文来自博客园,作者:GPL-技术沉思录,转载请注明原文链接:https://www.cnblogs.com/polin/p/17184478.html