通信网络/OSI 参考模型
此页面将讨论 OSI 参考模型
层 | 它做了什么 |
---|---|
应用层 | 应用层是计算机用户将看到并与其交互的部分。此层是程序员开发的“应用程序”。 |
表示层 | 表示层负责将数据格式化为人类可读的格式,以及翻译不同的语言等。 |
会话层 | 会话层将维护不同的连接,以防单个应用程序想要连接到多个远程站点(或与单个远程站点建立多个连接)。 |
传输层 | 传输层将处理数据传输,并将区分面向连接的传输(TCP)和无连接的传输(UDP)。 |
网络层 | 网络层允许不同的机器在逻辑上相互寻址,并允许计算机之间可靠地传输数据(IP)。 |
数据链路层 | 数据链路层是确定数据如何通过物理通道发送的层。数据链路协议的例子包括“以太网”和“PPP”。 |
物理层 | 物理层由构成传输系统物理硬件的物理电线或天线组成。物理层实体包括 Wi-Fi 传输和 100BaseT 电缆。 |
OSI 模型允许不同的开发人员制作产品和软件与其他产品接口,而无需担心底层是如何实现的。每层都与上层和下层有指定接口,因此每个人都可以处理不同的领域,而无需担心兼容性。
更高层先处理数据,因此更高层的协议将按降序接触数据包。假设我们有一个使用传输层中的 TCP 协议、网络层中的 IP 以及数据链路层中的以太网的终端系统。这是数据包的创建方式
1. 我们的应用程序创建一个数据包
- |数据|
2. TCP 创建一个 TCP 数据包
- |TCP 标头|数据|
3. IP 创建一个 IP 数据包
- |IP 标头|TCP 标头|数据|CRC|
4. 以太网创建一个以太网帧
- |以太网标头|IP 标头|TCP 标头|数据|CRC|
在接收端,各层以相反的顺序接收数据
1. 以太网层读取并删除以太网标头
- |IP 标头|TCP 标头|数据|CRC|
2. IP 层读取 IP 标头并检查 CRC 是否有错误
- |TCP 标头|数据|
3. TCP 层读取 TCP 标头
- |数据|
4. 应用程序读取数据。
需要注意的是,多个 TCP 数据包可以压缩到单个 IP 数据包中,多个 IP 数据包可以组合成以太网帧。
网络层负责逐跳传输消息。主要的互联网层协议存在于此层。互联网协议 (IP) 是所有协议中的主要组成部分,但我们还将讨论其他协议,例如地址解析协议 (ARP)、动态主机配置协议 (DHCP)、网络地址转换 (NAT) 和互联网控制消息协议 (ICMP)。网络层不保证数据的可靠通信和传递。
网络层负责逐跳传输数据报,从一个站点发送到另一个站点,直到消息到达目的地。每台计算机都应该分配一个唯一的 IP 地址作为接口,以便在网络中识别自己。当消息从传输层到达时,IP 会查找消息地址,执行封装并在末尾添加一个标头以形成数据报,然后传递给数据链路层。接收端也一样,IP 会执行解封装并删除网络层标头,然后发送到传输层。网络模型如下图所示
图 1 OSI 模型中的网络层
当数据报从源发送到目的地时,以下是 IP 如何处理数据报传输的简单步骤
- 上层应用程序向网络层发送一个数据包。
- 通过校验和进行数据计算。
- IP 标头和数据报构造。
- 通过网关路由。
- 每个网关的 IP 层都会执行校验和。如果校验和不匹配,数据报将被丢弃,并将错误消息发送回发送机器。在此过程中,如果 TTL 减到 0,也会发生同样的结果。而且,在数据报沿着互联网工作传递的每一个停靠点,都会确定目的地地址的路由路径。
- 数据报到达目的地的网络层。
- 执行校验和计算。
- 取出 IP 标头。
- 消息传递给上层应用程序。
图 2 网络层中的 IP 特性
在网络层中,存在其他协议,例如地址解析协议 (ARP) 和互联网控制消息协议 (ICMP),但是,IP 在所有协议中占有很大一部分。
图 3 网络层中的互联网协议
此外,IP 是一个无连接协议,这意味着每个数据包都作为独立个体并独立通过互联网。存在顺序,但没有对数据包传输的顺序进行跟踪,因此无法保证,因此传输不可靠。
TCP/ IP 模型