计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决,计算机整个体系从上到下都是按照严格的层次结构设计的
1 TCP/IP与OSI参考模型
- OSI参考模型注重“通信协议必要的功能是什么”,而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序”
应用层 | 应用层 DNS,URI,HTML,HTTP, TLS/SSL,FTP,SSH | 应用程序 |
表示层 | ||
会话层 | ||
传输层 | 传输层 TCP,UDP,UDP-Lite,SCTP,DCCP | 操作系统 |
网络层 | 互联网层(网络层) ARP,IP,ICMP | |
数据链路层 | 网络接口层(数据链路层) | 设备驱动程序与网络接口 |
物理层 | 硬件(物理层) |
2 TCP/IP分层模型
分层名称 | 功能 |
---|---|
硬件(物理层) | TCP/IP的最底层是负责传输的硬件,例如以太网、电话线等 TCP/IP是在网络互连的设备之间能够通信的前提下才被提出的协议 |
网络接口层(数据链路层) | 网络接口层利用以太网中的数据链路层进行通信,因此属于接口层,把它当做让NIC(网卡/网络适配器)起作用的“驱动程序“也无妨。驱动程序是在操作系统与硬件之间起桥梁作用的软件 |
互联网层(网络层) | 互联网层使用IP协议,它相当于OSI参考模型中的第3层网络层。IP协议基于IP地址转发分包数据 TCP/IP分层中的互联网层与传输层的功能通常由操作系统提供 |
传输层 | 传输层最主要的功能就是能够让应用程序之间实现通信 通过端口号识别不同的应用程序 |
应用层 | TCP/IP分层中,将OSI参考模型中的会话层、表示层和应用层的功能都集中到了应用程序中实现 TCP/IP应用的架构绝大多数属于客户端/服务端模型。提供服务的程序叫服务端,接受服务的程序叫客户端 |
3 OSI参考模型中各个分层的作用
分层名称 | 功能 | 备注 |
---|---|---|
应用层 | 针对特定应用的协议 为应用程序提供服务并规定应用程序中通信相关的细节 包括文件传输、电子邮件、远程登录等协议 | 为计算机用户提供服务 |
表示层 | 主要负责数据格式的转换 将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式 | 进行“统一的网络数据格式”与“某一台计算机或某一款软件特有的数据格式”之间相互转换的分层 数据处理(编解码、加密解密、压缩解压缩) |
会话层 | 负责建立和断开通信连接,以及数据的分割等数据传输相关的管理 | 会话层决定建立连接和断开连接的时机 管理(建立、维护、重连)应用程序之间的会话 |
传输层 | 起着可靠传输的作用 确保数据被可靠的传送到目标地址 | 传输层进行实际的建立和断开处理并保证数据传输的可靠性 为两台主机进程之间的通信提供通用的数据传输服务 |
网络层 | 目标地址可以是多个网络通过路由器连接而成的某一个地址 因此这一层主要负责寻址和路由选择,将数据传输到目标地址 | 网络层负责将整个数据发送到最终目标地址 路由和寻址(决定数据在网络的游走路径) |
数据链路层 | 负责物理层面上互连的、节点之间的通信传输 | 数据链路层只负责发送一个分段内的数据 管理相邻节点直接的数据通信 |
物理层 | 负责0,1比特流(0,1序列)与电压的高低、光的闪灭之间的互换 | 利用传输介质为数据链路层提供支持,实现相邻计算机节点之间比特流的透明传送 |
4 为什么计算机网络要分层?
如果要一种协议规定所有的功能和作用,那么该协议的具体实施和编程就会变得非常复杂,无法轻易实现,相比之下,按照网络分层,明确定义每层协议的作用和责任以后,针对每层具体的协议进行编程会更加有利于该协议的实现,也有利于后续对这些协议进行扩展和性能上的优化。分层也简化了每个协议的具体实现。
- 「各层之间相互独立」:各层之间相互独立,各层之间不需要关心其他层是如何实现的,只需要知道自己如何调用下层提供好的功能就可以了(可以简单理解为接口调用)「。这个和我们对开发时系统进行分层是一个道理。」
- 「提高了整体灵活性」 :每一层都可以使用最适合的技术来实现,你只需要保证你提供的功能以及暴露的接口的规则没有改变就行了。「这个和我们平时开发系统的时候要求的高内聚、低耦合的原则也是可以对应上的。」
- 「大问题化小」 :分层可以将复杂的网络间题分解为许多比较小的、界线比较清晰简单的小问题来处理和解决。这样使得复杂的计算机网络系统变得易于设计,实现和标准化。 「这个和我们平时开发的时候,一般会将系统功能分解,然后将复杂的问题分解为容易理解的更小的问题是相对应的,这些较小的问题具有更好的边界(目标和接口)定义。」
5 OSI模型总结
![l5WqZ.png](https://ss.im5i.com/2021/09/29/l5WqZ.png)
Reference
- 《图解TCP/IP》
- 为什么网络要分层?每一层的职责、包含哪些协议?