协议
前言:TCP/IP是一组通信协议的总称,我们要学习它首先要知道什么是协议。
1.协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。
就如同人与人间的对话一样,若用户A只会说汉语,而用户B只会说英语,那么就会无法沟通
image.png
但是当他们都适用英语或者都是用英语的时候,就实现了相互通信,可以认为人类依据了语言实现了相互通信,那么在计算机通信中,我们通过计算机通信协议实现相互通信
image.png
2.协议的标准化
标准化是指使不同厂商所生产的异构产品之间具有兼容性、便于使用的规范化过程。协议的标准化使所有遵循标准协议的设备不再因为计算机硬件或操作系统的差异而无法通信。我们所知道的有国际标准OSI(Open Systems Interconnection开放式通信系统互联网参考模型)和业界标准TCP/IP(Transmission Control Protocol 传输控制协议/Internet Protocol 网际协议族群)。
3.协议的分层
- 为什么要进行协议分层?
协议分层就如同计算机软件中的模块化开发,分层可以将每个分层独立使用,即使系统中某些分层发生变化也不会波及到整个系统,因此可以构造一个扩展性和灵活性都较强的系统。另外,通过分层能够细分通信功能,更易于实现每个分层的协议,并界定各个分层的具体责任和义务 - 分层的劣势
过分的模块化使处理变得更加沉重以及每个模块都不得不实现相似的处理逻辑等问题。 - 分层的一些概念
每个分层都接收由它下一层所提供的特定的服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时锁遵循的约定叫做“接口”。同一层之间的交互锁遵循的约定叫做“协议”。 -
理解分层
关于协议的分层的优点,我们再以A和B电话聊天为例,只考虑语言层和通信设备层这两个分层情况进行简单的说明。
image.png
这个图表面上实现的是A和B的通话,但是实际上A和B都只是对着各自的电话的麦克风在说话。他们所用的语言协议作为麦克风的音频输入,在通信设备层被转换成电波信号传送出去了,传送到对方的电话后,又被通信设备层转换为音频输出,传递给了对方,因此A和B其实是利用电话之间通过音频转化声音的接口实现了对话。
在整个过程中实际是电话在做中介,如果A电话所传出的电子信号不能转换成与B的电话机相同频率的声音的话,B听到声音后可能不能确定是否与A在进行汉语通话,所以就要求所处在通信设备层的A和B的电话机遵循相同的协议。
假设语言层相同,改变了通信设备层,比如A和B使用汉语,设备都改为对讲机,此时通信设备层就要学会使用无线电协议,因为语言层仍旧使用汉语协议,因此A和B完全可以和以往打电话时一样进行正常通话。
image.png
那么假设通信设备层相同,语言层改为英语会话时,很显然电话本身不会受限于使用者使用的语言,因此与使用汉语通话时完全一样可以进行正常通话。
image.png