OSITCP/IP
模型&协议
在互联网发展的早期,不同的计算机厂商有不同的网络传输协议,例如:IBM的SNA协议、苹果的AppleTalk协议等,这些协议互不兼容,导致虽然不同的产商计算机在物理层面是链接的,但是在网络上基本无法完成正常通信。这就导致一个用户如果使用了某个厂商的某个网络产品,就得用这个厂商的相关的网络产品。如果厂商更换协议或者停产或者更换厂商的设备,那么就要换掉整套网络设备。
协议
上述的情况明显不利于行业的发展,于是开始有公司和组织开始研究基于异构机型的网络通信技术。但是在使用不同的CPU、OS、网络部件差异化计算机上去使用同一套技术实现明显是不现实的。那么假设不规定具体的技术,而是事先形成某种“约定”,不同的厂商只要使用自己的技术按照“约定”实现相应的功能即可。这种”“约定”我们称作协议,协议规定了某项技术需要遵守的规则,在计算机网络中,主要是规定了数据格式化和处理的规则。例如分组交换协议,就是规定了传输过程中被分割的数据包的报文头部应该写入哪些信息和这些信息应该如何处理等。
协议的重要性
协议的重要性不言而喻,计算机与人不同,我们用不同的语言沟通的过程中可以自行将对方的语言(假如了解对方的语言)翻译成自己能够理解的内容,但对于计算机来说,数据从物理层捕获到电信号/数据信号到应用程序,需要经过事先定义的好的规则层层转码才能得到,计算机的各个组件需要严格遵守规则才能完成通讯。因此不同格式的数据对于计算机来说就是无法理解的语言(就像各地的方言)而网络通信协议则是规定了计算机通信的规则(就像大家都用普通话)。根据协议来设计和开发计算机软硬件就可以实现差异化产品的通讯。
模型
模型就是对现实或虚拟的事物的逻辑抽象,用规范、简化的模式来描述某个事物。放到网络通信中,模型就是用来描述计算机网络数据传输和格式化的逻辑抽象。模型定义了标准的框架,描述了整个通信的过程,定了通信过程的标准和规范。
协议就是实现模型的具体规则,针对模型各部分的功能,详细的描述了数据的顺序、格式、错误处理等等的内容,即描述了实现的规则,又保证了有效性和可靠性。
而模型则是为设计协议提供了指导原则,模型提供了框架和原则,让协议设计者可以设计出符合规范和标准的协议。
OSI模型
为了解决差异化计算机间通讯的标准化问题,ISO(国际标准化组织)制定了OSI(Open Systems Interconnection)开放式通信系统互联参考模型,基于该模型定义的OSI协议虽然并没有得到很好的普及,但是该模型却用于后续的很多网络协议的制定中。
OSI模型将整个计算机网络体系划分为7层架构:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,层级上下级关系如下: