1.1 什么是网络协议
1. 简单来说,网络协议就相当于任意两台计算机之间指定达成的一种“约定”,这个“约定”规定了进行网络通信时发送的数据格式以及进行数据打包、拆封数据包的方式等,只要遵守协议的实现,那么两台计算机就可以实现网络通信,即使两台计算机的系统不同、CPU不同甚至是网络硬件设备不同。
在古代传递机密文件时,有一种类似于协议的通信方式:
(1)在A、B两地各放置一个书架,并且保证书架上所放置的书籍、书籍内容、书籍摆放顺序必须完全相同。(指定协议)
(2)然后A发送一份信件,信件的原文字内容要依据书架上的内容进行加密处理,文字要从书架上的书籍中选取,处理后的信件内容就只有书籍的位置和文字所在的页码以及行列位置,这样的内容人是完全无法理解的。(依据协议对数据进行打包发送)
(3)当信件发送到B地时,在将信件上的记录信息通过B地的书架进行与A地同样的方法进行翻译处理,就可以得到可以理解的原文字内容。(依据协议进行拆封数据包还原)
2. 分组交换协议:分组交换协议指的是将所需要传输的一个大的数据整体,分割为一个个小单位的数据包,然后依次传输这些数据包。
每一个分组中的每一个数据包都会有一个报文首部,这部分数据保存发送数据的源主机地址以及接收数据的目标主机地址。
3. 通信协议通常会规定报文首部应该写入哪些数据信息,以及如何处理这些信息,也就是约定了发送数据的源主机如何构造报文首部和接收主机如何处理解析报文首部,双方必须保证对报文首部保持一致的定义和解释。
1.2 OSI参考网络模型的协议分层
1. 协议分层:在OSI网络模型中,计算机网络协议依据负责的功能被分为7层,在该模型中每一层都能接受其下一层所提供的特定服务,并且能为其上一层提供特定服务。上下层服务之间进行交互时所遵循的约定被称为“接口”,同一层之间的交互约定被称为“协议”。
2. 为什么协议分层:协议分层的理念其实与软件开发中的模块化思想相同,七层网络协议组合共同工作实现通信,但每一层之间又是独立的,也就是说某一层的更改并不会引起其他层的变化,只需要保证变更层协议与上下层交互的接口一致即可,而且分层详细界定了每一层的具体责任与功能。
3. OSI网络模型中各层作用(功能):
(1)第7层——应用层:为应用程序提供服务并且规定应用程序中相关的细节,比如文件传输协议、电子邮件协议等。
(2)第6层——表示层:将应用程序中的数据转换为适合于网络传输的数据格式,也就是下层中进行传输的数据格式,或者将来自下层的数据转换为上层能够处理的数据格式,也就是说该层主要负责数据格式转换。表示层接收到应用层发来的数据后,需要将接收的数据进行格式转换,将其转换为“网络通用的标准数据格式”,因为不同系统或者应用对于同一段字节流的解释可能是不同的,最简单的例子就是字符编码,如果发送方应用发送的是utf-8编码的汉字,而接受方应用对于接收数据的处理是采用编码ISO-8859-1那么就一定会产生乱码。所以表示层这里就是要将应用层传过来的数据转换为一个“网络通用的标准数据格式”,这样接收方也采用同样的“网络通用的标准数据格式”就能保证数据在应用层的正确表示。转换完毕后就将数据交给会话层处理。
(3)第5层——会话层:通信管理,负责确定如何建立、断开通信连接,以及数据分割等数据传输相关的管理。
(4)第4层——传输层:管理两个节点之间的数据传输,进行建立、断开连接,负责可靠传输
(5)第3层——网络层:将数据传输到目标地址,目标地址是多个网络通过路由器连接而形成的的一个地址。因此这一层主要负责寻址和路由选择。
(6)第2层——数据链路层:负责物理层上互联的节点之间的通信传输。将0/1序列划分为有意义的数据帧进行传输
(7)第1层——物理层:负责将0/1比特流转换为电压的高低、灯光的闪灭。
4. OSI参考模型通信处理过程简单介绍:如下如所示,发送方从应用层自顶向下层层处理传输数据,发送到接收方时,再从物理层自底向上层层处理传输数据,在应用层进行展示。(实际发送过程肯定要复杂得多)
2.1 面向有连接型和面向无连接型
1. 面向有连接型:指的是在发送数据之前,必须先保证在收发主机之间有一条已连接的通信线路(比如TCP协议)。
2. 面向无连接型:指的是不要求必须要先建立连接,发送方可以随时发送数据,不需要关心接收方是否收到数据,也不关心接收方是否存在(比如UDP协议)。
2.2 电路交换与分组交换
1. 电路交换:该技术应用于老式的电话网,两台计算机通过电路来建立连接实现通信,直到断开连接,但是在一台计算机使用一个电路连接进行收发数据期间是独占整条线路进行数据传输的,其他计算机只能等待该计算机断开连接后才能建立连接收发数据,也就是说并发性很差。所以出现了分组交换技术
2. 分组交换:分组交换协议正是应用在这里,将要发送的数据分成一个个小的数据包,并且按顺序发送,每一个数据包都会通过所携带的报文首部中的信息正确的被路由到目标主机,这样就可以让多个用户同时在一条线路上进行收发数据,如下图所示
3. 地址在互联网通信中,每一个主机都必须要有一个唯一标示的“地址”,在网络中可以通过这个地址找到任意一台主机。在TCP/IP协议中,使用的是mac地址、IP地址以及端口号的组合来作为主机的地址标示。
3.1 地址的性质
1. 唯一性:即在一个通信网络中,不允许有两个相同地址的通信主机存在。
2. 层次性:地址分层其实就相当于写自己的家庭住址一样,国家-省份-市区-县区-乡镇,IP地址就采用了地址分层,地址分层最大的好处就是可以快速定位主机。
1. 通信媒介与数据链路:计算机之间通过电缆或是电磁波(无线网络)来进行链接和传输数据的媒介,进而构成网络系统。
2. 网卡:任何一台计算机连接网络都必须要有网卡(网络接口卡、网络适配器、NIC)。
3. 中继器:OSI模型的第一层——物理层,由电缆传输过来的光信号或电信号经由中继器进行处理后在传输给另一条电缆。
4. 网桥/2层交换机:网桥是OSI模型中的第2层——数据链路层,用来连接两个网络的设备。网桥依据MAC物理地址进行处理
5. 路由器/3层交换机:对应第3层——网络层,连接两个网络,并进行分组报文转发的设备。
6. 4-7层交换机:对应传输层到应用层,用来处理从传输层到应用层的数据。
7. 网关:负责将传输层到应用层中的数据进行转换和转发的设备,和4-7层交换器相同,都是处理传输层以上的数据