简单来说,就是手机、无线路由器等设备通过多种网络协议实现通信。网络协议就是为了通信各方能够互相交流而定义的标准或规则,设备只要遵循相同的网络协议就能够实现通信。那网络协议又是谁规定的呢?ISO 制定了一个国际标准 OSI , 其中的 OSI 参考模型常被用于网络协议的制定。
OSI 参考模型
OSI 参考模型将网络协议提供的服务分成 7 层,并定义每一层的服务内容,实现每一层服务的是协议,协议的具体内容是规则。上下层之间通过接口进行交互,同一层之间通过协议进行交互。OSI 参考模型只对各层的服务做了粗略的界定,并没有对协议进行详细的定义,但是许多协议都对应了 7 个分层的某一层。所以要了解网络,首先要了解 OSI 参考模型。
TCP/IP 是以 OSI 参考模型的物理层和数据链路层的功能是透明的为前提制定的,并未对这两层进行定义,所以可以把物理层和数据链路层合并称为网络接入层。网络接入层是对网络介质的管理,定义如何使用网络来传送数据。但是在通信过程中这两层起到的作用不一样,所以也有把物理层和数据链路层分别称为硬件、网络接口层。TCP/IP 分为四层或者五层都可以,只要能理解其中的原理即可。
设备之间通过物理的传输介质互连, 而互连的设备之间使用 MAC 地址实现数据传输。采用 MAC 地址,目的是为了识别连接到同一个传输介质上的设备。
网络层
相当于 OSI 模型中的第 3 层网络层,使用 IP 协议。IP 协议基于 IP 地址转发分包数据,作用是将数据包从源地址发送到目的地址。
网络传输中,每个节点会根据数据的地址信息,来判断该报文应该由哪个网卡发送出去。各个地址会参考一个发出接口列表, MAC 寻址中所参考的这张表叫做 MAC 地址转发表,而 IP 寻址中所参考的叫做路由控制表。MAC 地址转发表根据自学自动生成。路由控制表则根据路由协议自动生成。MAC 地址转发表中所记录的是实际的 MAC 地址本身,而路由表中记录的 IP 地址则是集中了之后的网络号(即网络号与子网掩码)。
IP
IP 是跨越网络传送数据包,使用 IP 地址作为主机的标识,使整个互联网都能收到数据的协议。IP 协议独立于底层介质,实现从源到目的的数据转发。IP 协议不具有重发机制,属于非可靠性传输协议。
ICMP
用于在 IP 主机、路由器之间传递控制消息,用来诊断网络的健康状况。
ARP
从数据包的 IP 地址中解析出 MAC 地址的一种协议。
传输层
相当于 OSI 模型中的第 4 层传输层,主要功能就是让应用程序之间互相通信,通过端口号识别应用程序,使用的协议有面向连接的 TCP 协议和面向无连接的 UDP 协议。
四至七层交换机负责处理 OSI 模型中从传输层至应用层的数据。以 TCP 等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理。例如,视频网站的一台服务器不能满足访问需求,通过负载均衡设备将访问分发到后台多个服务器上,就是四至七层交换机的一种。还有带宽控制、广域网加速器、防火墙等应用场景。
数据链路层设备有二层交换机、网桥等。二层网络设备只转发数据,通过识别数据的 MAC 地址进行转发。二层交换机接收数据后,对数据最外层封装的以太网头部信息进行查看,看到数据的目的 MAC 地址后,把数据帧从对应端口发送出去。交换机并不会对数据帧进行解封装,只要知道 MAC 地址信息就可以正确地将数据转发出去。
网络层设备有路由器、三层交换机等。三层网络设备只转发数据,通过识别数据的 IP 地址进行转发。路由器接收数据后,首先查看最外层封装的以太网头部信息,当目的 MAC 地址是自己时,就会将以太网头部解封装,查看数据的 IP 地址。根据 IP 路由表做出转发决定时,路由器会把下一跳设备的 MAC 地址作为以太网头部的目的 MAC 地址,重新封装以太网头部并将数据转发出去。