计算机网络是一个非常复杂的系统。
从输入网址到网页显示出来要经历许多节点,URL地址解析为IP地址就需要全世界的DNS服务器协同合作。再到TCP协议的三次握手,如果网络发生故障还需要进行重传;这个过程还会涉及到操作系统的协议栈,协议栈把包交给网卡,网卡会将包转换为电信号并通过网线发送出去。而且再真实的网络世界中也涉及到交换机、路由器等等设备。
分层可以将庞大的系统划分成不同的部分,这些一个一个的部分更加容易研究解决,各层之间可以采用更加合适的技术去实现。
通过设定某个体系标准,遵守这个标准的任何系统都可以进行通信;当某层发生变化时,只需要关注上下两层之间交互的接口即可,只要接口适配,就可以进行更改而不影响其它层级。
OSI体系结构
OSI模型并不是事实上的标准,基于TCP/IP的互联网是实际在用的标准。由于没有人使用,没有符合OSI七层模型的产品,所以OSI在市场化方面无疑失败了。
我们这里只做简单的介绍。
| 作用 | 协议/设备 | |
|---|---|---|
| 应用层 | 主要和应用软件进行交互 | HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3 |
| 表示层 | 负责数据格式转换,包括数据的加密和解密,压缩解压缩 | Telnet, Rlogin, SNMP, Gopher |
| 会话层 | 通信管理,负责网络中连接的建立、维护、终止 | SMTP, DNS |
| 运输层 | 提供可靠和不可靠的数据传输服务 | TCP、UDP |
| 网络层 | 地址管理与路由选择 | |
| 数据链路层 | 设备之间互联传输帧 | |
| 物理层 | 底层二进制流传输 |
TCP/IP 网络模型
后来为什么有了TCP/IP模型?
OSI参考模型并不是一个流行被广泛采用的标准。由于OSI参考模型实现复杂,由专家来制定,缺乏商业驱动力,致使OSI参考模型没有得到广泛应用。
TCP/IP模型是事实上的国际标准,先投入使用,经过实践发现问题、解决问题而形成了一个标准。
TCP/IP模型总共分为应用层、传输层、网络层、网络接口层。
应用层
应用层对应OSI参考模型的应用层、表示层、会话层。
提供面向用户的服务,比如HTTP、HTTPS、FTP、Telnet、SSH、SMTP、DNS等。
在操作系统层面,应用层工作在用户态。
传输层
传输层主要是为应用层提供可靠或者不可靠的数据传输。
其中最主要的协议是TCP、UDP。
TCP是面向连接的提供可靠数据传输的协议,主要用于文件传输等对数据传输准确性高的场景。
UDP是不可靠传输协议,主要用于视频直播的场景,可以容忍一定的数据丢失。
网络层
网络层主要负责路由和寻址。
什么是路由?什么是寻址?
在能够选择的多条道路之间选择一条最短的路径就是路由的工作。
靠IP地址来找到计算机的位置,这就是选址。
为了保证正常的通信,找到计算机的位置需要IP地址。
IP地址由32位的整数来表示,形如192.168.0.1
网络接口层
网络接口层对应OSI参考模型的链路层和物理层。
主要为网络层提供链路级别的传输服务,工作在网卡这个层次,利用MAC地址来标识设备。