协议是什么?
一句话简述:协议是计算机之间实现通信所定义的规则,计算机之间按照这种事先达成的约定实现通信。
例:计算机网络体系结构
网络体系结构 | 包含协议 | 主要用途 |
---|---|---|
TCP/IP | IP、ICMP、TCP、UDP、HTTP、TELNET、SNMP、SMTP… | 互联网、局域网 |
IPX/SPX(NetWare) | IPX、SPX、NPC… | 个人电脑局域网 |
AppleTalk | DDP、RTMP、AEP、ATP、ZIP… | 苹果公司现有产品的局域网 |
DECnet | DPR、NSP、SCP… | 前DEC小型机 |
协议有很多种,每一种协议都明确的界定了它的行为规范,协议规定了使用某种媒介进行通讯的具体方式和通讯过程中遇到异常的处理方式。
计算机之间的协议的实现一般使用分组交换的方式。
分组交换是什么?
分组交换是指将大数据分为一个个叫做包的较小单位进行传输的方法。分组交换的灵感是来源于生活中邮寄包裹的行为。我们在邮寄包裹的时候需要提交寄件人地址、收件人地址等信息;同样的,在通信过程中,也会为每个包附上源主机地址、目标主机地址、分组序号等信息放到分包数据的前端、称为“报文首部”。
通信协议会规定报文首部应该写入那些信息、应该如何处理这些信息,接收端主机同样根据这个协议复原数据。
协议由谁制定?
协议的诞生和标准化一开始并没有得到重视,之后由于计算机之间的通信的需求,各家计算机厂商开始研发他们自己的网络产品和网络系统来实现计算机通信。各个厂商之间的使用的网络产品并不相同,所以它们的计算机之间无法实现通信。
为了实现异构计算机之间的通信,ISO制订了一个国际标准OSI,对通信系统进行了标准化。虽然OSI协议并没有得到普及,但是OSI参考模型在网络协议的制定中发挥了很大的作用。
现在流行使用的TCP/IP体系是由IETF所制定的,以当时的大学等研究机构和计算机行业作为中心力量,推进了TCP/IP的标准化进程。使之成为了互联网通信的标准和相关的生产行业所应用的标准。
协议的分层思路
协议的分层是指将计算机之间的通信行为以功能为角度进行层次划分,例如OSI参考模型将通信协议的必要功能分为了7层,能够使一些复杂的协议简单化。在OSI模型中,每个分层都接收它下一层所提供的特定服务,并负责为它的上一层提供特定服务,上下层之间进行交互时所遵循的约定叫做“接口”,同一层之间交互时遵循的约定叫做“协议”。
OSI参考模型是一个理想化的模型,将网络功能划分为七层。这样的好处是各层独立使用,即使某层出现问题也不会波及整个系统,通过细分通信功能,使各层各司其职,每个分层的协议易于实现,灵活性和扩展性都很强。不过分层太细的缺点也是明显的,那就是过分模块化,每个分层共同执行的重复操作占据大量的资源等。
下面通过一个简单的情景模拟来理解分层思路,有两位同学A君和B君,他们通过手机进行通话,那么A君B君也就是人类就是第一层,手机可以笼统的划分为第二层。A君B君使用手机提供的拨号程序和话筒(接口)来使用手机提供的服务,而A君B君之间通话使用的语言和语法就是他们之间通信使用的协议。同样的,手机之间将语音信息和电子信息进行转换的规则就是他们之间使用的协议。
OSI参考模型
分层名称 | 功能 |
---|---|
应用层 | 针对特定应用的协议 |
表示层 | 设备固有数据格式和网络标准数据格式的转换 |
会话层 | 通信管理,负责决定何时建立和断开通信连接 |
传输层 | 管理两个节点(互联的网络终端)之间的通信传输。负责保证可靠传输(确保数据能够可靠的传送到目标地址) |
网路层 | 地址管理和路由选择 |
数据链路层 | 互联设备之间传送和识别数据帧 |
物理层 | 以“0”和“1”代表电压的高低、灯光的闪灭。界定连接器和网线的规格。 |