为什么要有计算机网络体系结构?

179 阅读3分钟

image.png

计算机网络是一个非常复杂的系统。

从输入网址到网页显示出来要经历许多节点,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地址来标识设备。