一、协议初识和网络协议分层(TCP/IP四层模型)
我们知道一台计算机里面有很多的硬件,正是这些硬件之间互相配合协同工作才能让我们的计算机健康的运行,当然这里面也离不开软件对硬件的管理。
假设我们脑洞大一点,把计算机里面的各个硬件拉出来,各自放到很远很远的地方,而计算机依旧能正常运行,靠的就是协议,而协议本质就是一种约定,硬件和硬件之间也有协议,比如磁盘的HBA协议,磁盘和内存IO时也有协议,所以协议不仅仅是网络专属的,计算机体系结构里面也有协议,那计算机内部不就相当于一个小型的网络吗?各个设备通过网线连接,设备之间有协议约定,所以各个设备能够正常通信,以便于计算机为用户提供良好的服务,所以网络和计算机是不分家的,体系结构中有网络,网络中有体系结构!
认识协议
实际在网络中,所有的网络问题本质都是传输距离变长了,如果传输距离很短,那还需要担心发送数据会丢失吗?或者对方接收不到数据,又或者对方没有接收到完整的数据,这些问题自然就不用考虑了,因为传输距离很短,中间的障碍很少,出错的概率很低。而当传输距离过长的时候,就容易导致出现问题,比如传输信号减弱从而导致数据丢失,所以一旦长距离传输的时候,就会引入新的通信问题,而为了尽可能的减少通信的成本,就需要定制协议!!!
我们提前做好约定,达成双方的共识,让通信的两台主机之间约定好协议,而协议就会降低通信的成本。
所以说 “协议”本质就是一种约定,通信双方只要曾经做过某种约定,之后就可以使用这种约定来完成某种事情。而网络协议是通信计算机双方必须共同遵从的一组约定,因此我们一定要将这种约定用计算机语言表达出来,此时双方计算机才能识别约定的相关内容 。
那协议该由谁来定制呢?
计算机生产厂商那么多,操作系统厂商也有那么多,磁盘厂商也有很多,其他硬件设备的厂商也有很多,那如果每个厂商都有自己的协议,生产出来的各式各样的计算机还如何通信呢?只能一个厂商里面的计算机才能通信,这显然是不行的,所以此时就需要一个人站出来,定制统一的网络协议标准,这个网络协议就是TCP/IP协议,1983年TCP/IP协议正式替代NCP,成为大部分因特网共同遵守的网络协议标准。
正所谓“一流的企业做标准,二流的企业做品牌,三流的企业做产品”。但是标准的定制有一部分是公益性、开源性的,它制定标准的目的是为了让我们的世界变得更好;而标准的定制还有一部分是具有一定盈利性质的,当你需要使用这项技术时就会收取部分专利费,此时就能将曾经做的技术投入进行变现。
所以在1977年国际标准化组织提出了OSI七层网络模型,那为什么要进行分层呢?
因为在网络数据传输的过程中,需要面临很多方面的问题,比如物理层,驱动层,软件层,用户层等等都有各自需要解决的网络传输问题,而分层其实就是进行解耦,每一层都是功能比较集中,高内聚的模块,用于处理该层面临的网络传输问题,层与层之间是低耦合的。
并且每一层都有自己匹配的协议,每一层协议都用于处理当前层的传输问题。
虽然是七层模型,但实际使用时,将上三层压为一层,统称为应用层,所以我们平常所说的都是TCP/IP四层或五层模型,物理层我们不考虑。
TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词,它还包括许多协议,共同组成了TCP/IP协议簇。TCP/IP通讯协议采用了五层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的WiFi无线网使用的电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)就是工作在物理层的。
数据链路层: 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。数据链路层底层的网络通信标准有很多,如以太网、令牌环网、无线LAN等。交换机(Switch)就是工作在数据链路层的。
**网络层:**负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间数据传输的线路(路由)。路由器(Router)就是工作在网络层的。
传输层:负责两台主机之间的数据传输。例如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。
应用层: 负责应用程序间沟通。比如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层的。
可以看到,它们的下面几层几乎是没有区别的,操作系统对应的是传输层和网络层,数据链路层和物理层都是对应在驱动层的,而TCP/IP协议当中的应用层就对应到OSI七层协议当中的应用层、表示层和会话层。
一般而言:
对于一台主机,它的操作系统内核实现了从传输层到物理层的内容。
对于一台路由器,它实现了从网络层到物理层的内容。
对于一台交换机,它实现了从数据链路层到物理层的内容。
对于集线器,它只实现了物理层的内容。
其实现在的网络各层设备早已突破了先前TCP/IP五层模型的限制。
————————————————
领取专属 10元无门槛券
私享最新 技术干货