OSI 七层网络模型

OSI 七层网络模型

概述

七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。有的人也会将应用层、表示层和会话层合并为应用层,将物理层和数据链路层合并为物理层。每一层都会遵守不同的协议,不同的协议之间通过封装、解封装、加解密等方式进行通信。

物理层

物理层主要是跟物理介质打交道。

物理层的设备包括集线器、中继器、调制解调器、网卡、网桥、交换机等。

物理层的作用是实现比特流的传输,它规定了 0 和 1 的电信号的表示方法、传输距离、传输速率、传输方式、传输媒介等。

数据链路层

数据链路层主要是负责将数据从一台计算机传输到另一台计算机。主要包括建立连接、进行硬件地址寻址、差错校验。

通过将比特流组合成帧,用 MAC 地址标识发送方和接收方,并将帧通过物理介质传输。

MAC 地址是指网络接口卡的物理地址,MAC 地址长度为 48 位,通常用十六进制表示。

数据链路层的协议有 PPP、 Ethernet、FDDO 等。

网络层

网络层是最重要的一层,该层控制数据链路层与传输层之间的信息转发、建立、维持和终止网络的连接。

数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进出路由等控制将信息从一个网络设备传送到另一个网络设备。

  1. 寻址:使用 IP 地址进行寻址,IP 地址长度为 32 位,通常用十进制表示。
  2. 路由:网络层使用路由表进行路由选择,路由表中记录了网络中各个设备的 IP 地址和下一跳路由器的 IP 地址。
  3. 转发:当数据包到达网络层时,网络层检查数据包的目的 IP 地址,并根据路由表选择下一跳路由器,然后将数据包发送给下一跳路由器。
  4. 封装:网络层将数据包封装成数据帧,并添加首部信息,如源 IP 地址、目的 IP 地址、传输层协议类型、数据包长度等。
  5. 分段:当数据包长度超过网络传输的最大数据包长度时,网络层将数据包分段,并在分段后重新封装成数据帧。
  6. 重传:当数据包在网络中传输过程中丢失时,网络层会自动重传。
  7. 错误控制:网络层使用差错校验、流量控制、拥塞控制等机制来保证数据包的可靠传输。

网络层的协议有 IP、ICMP、IGMP、ARP、RIP 等。

传输层

传输层是网络层之上的一层,主要负责向应用层提供可靠的端到端的通信。

传输层的主要协议有 TCP、UDP。

TCP

TCP 协议是一种面向连接的、可靠的、基于字节流的传输层协议。

TCP 协议提供可靠的、按序到达的数据流服务,它建立连接、维护连接、断开连接、数据流的顺序、数据流的完整性、数据流的错误控制等功能。

TCP 协议的特点是建立连接后,通信双方必须互相握手,然后才能开始通信。

UDP

UDP 协议是一种无连接的、不可靠的、基于数据报的传输层协议。

UDP 协议提供不可靠的、无序到达的数据流服务,它不建立连接、不维护连接、不保证数据流的顺序、不保证数据流的完整性、不保证数据流的错误控制等功能。

UDP 协议的特点是无连接,通信双方不必握手,直接就可以通信。

会话层

会话层主要负责建立、管理和终止会话。

  1. 建立会话:会话层建立连接时,首先建立会话,并为通信双方分配会话标识符。
  2. 管理会话:会话层管理连接的建立、维护、终止。
  3. 终止会话:会话层终止连接时,释放连接资源。

数据在这一层叫做报文段,报文段包含源端口号、目的端口号、序列号、确认号、数据、校验和等信息。

会话层的协议有 SSL 、TLS 等。

表示层

表示层主要负责对数据进行编码、加密、解密、压缩、解压缩等处理。

表示层会在在发送之前进行加密,在接收之后进行解密。表示层还会将图片、视频等编码成计算机能读懂的编码。

表示层的协议有 JPEG、MPEG、ASN.1 等。

应用层

应用层是最常用的一层,主要负责向用户提供各种应用服务。包括 AJAX 发送 HTTP 请求、域名系统 DNS 解析,文件传输 FTP、电子邮件 SMTP 等。

应用层的协议有 HTTP、FTP、SMTP、SNMP、Telnet、SSH、TFTP 等。

相关推荐
代码讲故事3 分钟前
多种方法实现golang中实现对http的响应内容生成图片
开发语言·chrome·http·golang·图片·快照·截图
旧曲重听125 分钟前
最快实现的前端灰度方案
前端·程序人生·状态模式
默默coding的程序猿34 分钟前
3.前端和后端参数不一致,后端接不到数据的解决方案
java·前端·spring·ssm·springboot·idea·springcloud
夏梦春蝉40 分钟前
ES6从入门到精通:常用知识点
前端·javascript·es6
归于尽1 小时前
useEffect玩转React Hooks生命周期
前端·react.js
G等你下课1 小时前
React useEffect 详解与运用
前端·react.js
我想说一句1 小时前
当饼干遇上代码:一场HTTP与Cookie的奇幻漂流 🍪🌊
前端·javascript
funnycoffee1231 小时前
Huawei 6730 Switch software upgrade example版本升级
java·前端·华为
小鱼小鱼干1 小时前
【Tauri】Tauri中Channel的使用
前端
拾光拾趣录1 小时前
CSS全面指南:从基础布局到高级技巧与实践
前端·css