OSI模型、数据封装以及TCP三次握手四次挥手介绍
1. OSI 模型
1.1 OSI参考模型和TCP/IP模型基本介绍
-
OSI参考模型:由ISO国际标准组织颁布的开放式体系结构,共七层。
层数 分层 功能 L7 应用层 网络服务与最终用户的一个接口 L6 表示层 数据的表示、安全和压缩 L5 会话层 建立,管理,终止会话 L4 传输层 定义传输数据的协议端口号,流量控制,差错校验 L3 网络层 进行逻辑地址寻址,实现不同网络之间的路径选择 L2 数据链路层 建立逻辑连接,进行物理地址寻址,差错校验等功能 L1 物理层 建立连接,维护和断开物理连接
-
TCP/IP模型:共五层。
层数 分层 功能 L5 应用层 建立两端的会话连接 L4 传输层 TCP/UDP 协议(一个稳定/传输效率更快) L3 网络层 IP地址进行寻址 L2 数据链路层 MAC地址进行寻址 L1 物理层 bit流传输
1.2 核心分层
| 层数 | 分层 | 设备 | 功能/关键技术 | 常用协议 |
|---|---|---|---|---|
| L5 | 应用层 | 服务器 | HTTP、HTTPS、FTP、SMTP、SNMP、DNS | |
| L4 | 传输层 | 防火墙 | TCP、UDP | |
| L3 | 网络层 | 路由器 | IP 地址 | IP、ICMP、IGMP、ARP、RARP |
| L2 | 数据链路层 | 交换机、集线器 | MAC地址 | |
| L1 | 物理层 | 网卡、光纤、网线 | 传输介质、接收数据 |
注:
- MAC地址:由16进制表示。在网卡生产出来时,会绑定一个MAC地址,此地址用于表示该网卡在局域网中的位置,通常情况下,不 可更改。
- 在局域网内,网络设备之间的通信,基于MAC地址寻找目标的物理地址。
- IP地址:由10进制表示。表示一个网络设备在万维网中的逻辑位置。
- 在万维网中,基于IP地址寻找目标的逻辑地址。
1.3 OSI分层协议
| 层数 | 分层 | 协议 | 中文 | 端口号 | 功能 |
|---|---|---|---|---|---|
| L7 | 应用层 | HTTP | 超文本传输协议 | 80 | 用于网页浏览等数据传输 |
| HTTPS | 超文本传输安全协议 | 443 | 加密的HTTP,用于安全传输 | ||
| FTP | 文件传输协议 | 控制连接:21 数据连接:20 | 可靠的文件上传下载,支持认证和目录操作 | ||
| TFTP | 简单文件传输协议 | 69(仅用于数据连接) | 简单的文件传输,无认证,用于设备固件更新等 | ||
| SMTP | 简单邮件传输协议 | 25 | 用于发送电子邮件 | ||
| SNMP | 简单网络管理协议 | 161 | 用于网络设备管理和监控 | ||
| DNS | 域名系统 | 53 | 将域名解析为IP地址 | ||
| L4 | 传输层 | TCP | 传输控制协议 | 面向连接的可靠传输,提供流量控制和重传机制 | |
| UDP | 用户数据报协议 | 无连接的简单传输,延迟低但不可靠 | |||
| L3 | 网络层 | IP | 网际协议 | 负责网络寻址和路由,实现数据包的端到端传输 | |
| ICMP | 互联网控制消息协议 | 用于网络连通性测试和错误报告 | |||
| IGMP | 互联网组管理协议 | 管理多播组成员关系 | |||
| ARP | 地址解析协议 | 通过IP地址查找对应的MAC地址 | |||
| RARP | 逆向地址解析协议 | 通过MAC地址查找对应的IP地址 |
注:
- TCP : 面向连接,工作方式是先建立连接,再传输数据。
- UDP : 面向传输,只有简单的数据完整性的校验机制。
- Ping命令基于ICMP协议,测试网络连通性。
2. 数据传输过程中的封装与解封装
2.1 封装/解封装
| 层数 | 分层 | 封装/解封装过程 | 设备 | 封装 |
|---|---|---|---|---|
| L5 | 应用层 | 上层数据 | 服务器 | 数据 |
| L4 | 传输层 | 传输协议头部 + 上层数据 | 防火墙 | 数据段 |
| L3 | 网络层 | IP头部 + 传输协议头部 + 上层数据 | 路由器 | 数据包 |
| L2 | 数据链路层 | MAC头部 + IP头部 + 传输协议头部 + 上层数据 | 交换机、集线器 | 数据帧 |
| L1 | 物理层 | 比特流 | 网卡、光纤、网线 | 比特流 |
注:
- IP头部包含源IP和目标IP。
- MAC头部包含源MAC和目标MAC。
- 数据封装/解封装的目的:将数据安全、准确地传输到目标位置。
3. TCP协议
3.1 TCP协议介绍
- TCP是面向连接的、可靠的进程到进程通信的协议。
- TCP提供全双工服务,即数据可在同一时间双向传输。
- TCP报文段:TCP将若干个字节构成一个分组,叫报文段(Segment),TCP报文段封装在IP数据报中。

| 标志位 | 全称 | 中文 | 功能 |
|---|---|---|---|
| SYN | Synchronize | 同步 | 用于建立连接。在三次握手过程中,SYN=1 表示这是一个连接请求或连接接受报文。 |
| ACK | Acknowledgment | 确认 | 表示确认字段有效。ACK=1 时,表示这是一个确认报文,确认号字段包含有效的下一个期望收到的序列号。 |
| FIN | Finish | 结束 | 用于释放连接。FIN=1 表示发送方已经没有数据要发送了,希望断开连接。 |
| seq | Sequence Number | 序列号 | 用于标识从 TCP 发送端向接收端发送的数据字节流的编号 |
| ack | Acknowledgment Number | 确认号 | 用于确认发送端的信息,实际数据 |
3.2 TCP三次握手、四次挥手
- 三次握手
| 建立连接过程 | 标志位 |
|---|---|
| 客户端 → 服务器 | 发送 [SYN=1, ACK=0, seq=x] |
| 服务器 → 客户端 | 发送 [SYN=1, ACK=1, seq=y, ack=x+1] |
| 客户端 → 服务器 | 发送 [SYN=0, ACK=1, seq=x+1, ack=y+1] |
- 四次挥手
| 断开连接过程 | 标志位 |
|---|---|
| 主动关闭方 → 被动关闭方 | 发送 [FIN=1, ACK=1, seq=u] |
| 被动关闭方 → 主动关闭方 | 发送 [ACK=1, ack=u+1] |
| 被动关闭方 → 主动关闭方 | 发送 [FIN=1, ACK=1, seq=v] |
| 主动关闭方 → 被动关闭方 | 发送 [ACK=1, ack=v+1] |
注:
-
为什么握手是三次,挥手是四次?
答:TCP 连接是全双工的,而建立连接和断开连接时,双方的状态变化并不同步。可能出现一个半断开的特殊状态,一方的数据并没有传输完成。
思维导图:

2442

被折叠的 条评论
为什么被折叠?



