为什么计算机网络需要进行分层
- 各层独立工作,层之间通过接口联系,降低协议工作的复杂程度
- 提高灵活性,任何一层的改变不影响其他层
- 每层的实现技术可以不同,减少了实现的复杂度
- 易于维护,每层可以单独进行调试
- 还便于标准化
分层原则:
信宿机第n层收到的对象应该与信源机第n层发出的对象完全一致
典型分层模型
- OSI七层模型
- TCP/IP四层模型
OSI七层模型
层次 | 名称 | 功能描述 |
---|---|---|
7 | 应用层(Application) | 主要为各种各样的网络应用提供网络服务(Email,FTP,微信) |
6 | 表示层(Presentation) | 将信息表示为一定形式的数据流(将信息转换为比特)完成的任务有压缩与解压缩,加密解密等 |
5 | 会话层(Session) | 它负责通信主机间的会话的建立,管理和拆除(协调通信双方会话) |
4 | 传输层(Transport) | 是参考模型的核心层之一,负责通信主机间的端到端连接(对于TCP来说,其还负责提供可靠的传输,差错恢复,拥塞控制等额外功能) |
3 | 网络层(Network) | 是另一个核心层,功能是通过IP地址以及最优路径,将每一个每一个分组从信源机一路送至目的机 |
2 | 数据链路层(Data Link) | 提供介质访问服务(通过物理地址识别通信主机,提供可靠的帧传递,并作差错控制,流控等) |
1 | 物理层(Physical) | 提供透明的比特流(光信号,电信号,无线信号…)传递,物理流只关心比特流传输,不关心比特流包含内容 |
每一层都利用它下层的服务,为它的上层提供服务
TCP/IP参考模型
TCP/IP协议 | OSI参考模型 |
---|---|
应用层(Telent,FTP,SNTP协议) | 会话层,表示层和应用层 |
传输层(TCP,UDP协议) | 传输层 |
网络层(ICMP,IP,ARP协议) | 网络层 |
数据链路层 | 物理层和数据链路层 |
数据如何传输?
涉及到:发送方,接收方和中间的信号通道(用于传输比特流)
发送方:
进行封装/打包:将信息打包,从最高层逐渐下行到最底层
在每一层上,数据都被加上头部信息,用于传递信息
- 在OSI模型上三层,信息表示为数据流(DataStream)
- 传输层,切割为数据段,加上段头(包含端口号等)
- 网络层,添加分组头部(包含寻址主机的IP地址等),形成分组(包)
- 数据链路层,添加帧头(包含寻址主机所需的物理地址(MAC),校验等信息)形成帧
- 物理层,帧转为比特流
上述黄色标注为数据在各层存在形式,称为数据协议单元PDU
接收方:
进行解封装/解包,从最底层逐渐上行到最高层提取出信息
解封装的过程就是封装的你想过程,在每层去掉头部信息,最终还原出应用层的输出:信息
实体(Entity):
每层中活动的元素,可能是硬件也可能是软件,负责完成对应层的封装或解封装任务。
对等实体:收发双方对应层上的实体互称对等实体
虚拟通信(对等通信)
只看收发双方的对应层,发现收发双方对应层(即对等实体之间)之间好像有一根直接的通道(虚拟通道),沿虚拟通道,PDU从发放到达收方。
服务,协议和接口之间的关系
参考模型上每一层都为上一层提供服务,以接口的形式供上层调用。协议作用于对应层之间