TCP/IP简介与数据流
Source: Dev.to
1. 数据流
数据流在计算机网络中指的是数据包在设备之间的结构化移动、管理和转换,以确保高效、无错误的传输。
数据流通常包括在源端准备数据、通过网络基础设施(路由器 / 交换机)传输数据,以及在目的端重新组装数据。
传输方向
数据流可以按方向进行分类:
| 模式 | 描述 | 示例 |
|---|---|---|
| Simplex | 仅单向传输 | 计算机 → 打印机 |
| Half‑Duplex | 双向,但不能同时进行 | 对讲机 |
| Full‑Duplex | 同时进行的双向通信 | 电话通话 |
封装与解封装
封装
将协议相关信息(头部和尾部)添加到数据中,随着数据在网络协议栈中从发送方 向下 传输的过程。
解封装
在接收方进行的相反过程,每一层移除其对应的头部/尾部,以恢复原始数据。
2. 网络层概述
第 1 层 — 物理层

物理层负责在物理介质上发送原始二进制数据(0 和 1)。
传输类型
- 无线电传输 – Wi‑Fi、蓝牙(短距离)
- 微波传输 – 蜂窝网络(4G、 5G)
- 光纤传输 – 高速长距离通信

光纤熔接机使用电弧永久连接两根光纤电缆,最大限度地降低信号损耗。
第 2 层 — 数据链路层
数据链路层(OSI 模型的第 2 层)处理局域网通信,并使用 MAC 地址 对设备进行标识。它将来自物理层的原始比特组织成 帧,并确保节点到节点的可靠传输。
关键要点
| 方面 | 描述 |
|---|---|
| 子层 | LLC – 处理网络协议和流控;MAC – 管理硬件地址和介质访问 |
| 帧封装 | 将网络层数据包封装为带有头部(源/目的 MAC)和尾部(错误检查)的帧 |
| 物理寻址 | 使用 48 位十六进制 MAC 地址在 LAN 中标识设备 |
| 错误控制 | 检测/纠正错误(例如帧检验序列 / CRC) |
| 流量控制 | 调节数据速率,防止发送方过快导致接收方负荷过重 |
| 访问控制 | 决定在任意时刻哪个设备可以使用物理介质 |
快速参考
| 项目 | 细节 |
|---|---|
| 设备 | 交换机 |
| 地址类型 | MAC 地址(48 位十六进制) |
| 帧格式 | 以太网头部 |
| 范围 | 局域网(LAN) |
重要提示
- MAC 地址的设计目标是 投递,而非安全。
- 它们可以被 伪造。
MAC 地址伪造
- 设备可以冒用其他 MAC 吗? 可以——这称为 MAC 伪造。
- 交换机为何接受它: 交换机工作在第 2 层,不会对 MAC 源进行身份验证。
第 2 层安全机制
| 机制 | 功能说明 |
|---|---|
| 端口安全(Port Security) | 限制每个端口的 MAC 地址数量;将 MAC 绑定到特定端口;违规时可禁用端口 |
| 802.1X 认证 | 通过 RADIUS 服务器进行设备认证;比基于 MAC 的安全更强 |
| DHCP 监听(DHCP Snooping) | 跟踪合法的 DHCP 分配;阻止恶意 DHCP 服务器 |
| 动态 ARP 检查(DAI) | 验证 ARP 包;防止 ARP 伪造 |
| 网络访问控制(NAC) | 检查设备合规性;强制执行安全策略 |
第 2 层安全(续)…
Source: …
安全结论 – 第 2 层旨在实现高效通信,而非安全。真正的安全依赖于多层防御(深度防御)。
第 3 层 — 网络层
网络层(第 3 层)使用 IP 地址和路由实现网络之间的通信。它管理逻辑寻址、数据包路由和转发,以确保数据在不同、相互连接的网络之间传输。
关键方面
| 方面 | 描述 |
|---|---|
| 路由 | 确定从源到目的地的最有效路径 |
| 逻辑寻址 | 使用 IP 地址在网络中唯一标识设备(区别于 MAC 地址) |
| 分包 | 在发送端将传输层段封装成数据包,在接收端重新组装 |
| 转发 | 将数据包从路由器的输入接口移动到相应的输出接口 |
| 协议 | IP、ICMP、IGMP(以及其他) |
设备
- 路由器 – 在网络之间转发数据包(WAN)
地址类型
- IP 地址(IPv4 或 IPv6)
IP 地址欺骗(第 3 层)
类似于 MAC 欺骗,IP 地址也可以被伪造。
| 场景 | 影响 |
|---|---|
| A – 同网冲突 | 两台设备使用相同的 IP → IP 冲突 → 网络不稳定 |
| B – 虚假源 IP | 设备发送伪装成其他 IP 的数据包 → 冒充,可能导致拒绝服务或中间人攻击 |
IP 欺骗对策
- 第 3 层安全机制
- 入口 / 出口过滤 – 丢弃源‑IP 地址范围无效的报文。
- 单播逆向路径转发 (uRPF) – 检查报文是否从正确的接口到达;丢弃伪造的报文。
- IPSec – 添加身份验证和加密;通过密码学方式验证发送者身份。
- TTL 监控 – 检测异常的跳数值。
- 防火墙规则 –
- 在公共侧阻止私有 IP 地址。
- 在外部接口阻止内部 IP 地址。
第4层 – 传输层
传输层在应用程序之间提供通信。它实现端到端的数据传输,确保可靠性、顺序以及无错误的交付。它处理分段、流量控制和错误纠正,并通过 TCP、UDP 等协议将数据从会话层传递到网络层。
关键职责与功能
- 分段与重组 – 将会话层的大数据单元拆分为更小的段,并在目的地重新组装。
- 服务点寻址(端口) – 使用端口号将流量定向到特定应用程序(例如 HTTP、FTP)。
- 连接控制 – 提供面向连接的服务(TCP)以实现可靠交付,或面向无连接的服务(UDP)以实现更快的尽力而为交付。
- 流量控制 – 调节传输速度,防止发送方过快而使接收方不堪重负。
- 错误控制 – 检测错误并触发重传,以保持数据完整性。
- 复用与解复用 – 允许多个应用程序同时共享单一网络连接。
协议
| 协议 | 类型 | 典型用例 |
|---|---|---|
| TCP | 面向连接、可靠 | Web 浏览、电子邮件、文件传输 |
| UDP | 无连接、尽力而为 | 流媒体、游戏、VoIP |
关键概念: 端口号标识处理该流量的应用程序或服务。
第5层 – 会话层
会话层管理、维护并终止不同设备上应用程序之间的连接(会话)。它建立对话,创建用于恢复的检查点,并支持单工、半双工或全双工模式的数据交换。
关键方面
- 会话管理 – 建立、维护并终止连接。
- 对话控制 – 控制通信流,支持全双工或半双工交换。
- 同步与恢复 – 插入检查点;故障发生后,仅需重新传输最后一个检查点之后的数据。
- 协议 – NetBIOS、RPC(远程过程调用)、PPTP。
第6层 – 表示层
表示层充当网络的“翻译器”,确保从一个系统的应用层发送的数据能够被另一个系统的应用层理解。
主要职责
- 数据翻译 – 在不同格式之间转换(例如,EBCDIC ↔ ASCII),以实现互操作通信。
- 加密与解密 – 使用诸如 SSL/TLS 等协议来保护数据。
- 数据压缩 – 减小数据大小以提升传输速度(例如,JPEG、MPEG、GIF)。
常见协议与标准
| 类别 | 示例 |
|---|---|
| 文本/数据 | ASCII, EBCDIC, XML, JSON |
| 安全 | SSL, TLS |
| 图像 | JPEG, PNG, GIF, TIFF |
| 视频/音频 | MPEG, AVI, MIDI |
Source: …
第七层 – 应用层
应用层是 OSI 模型中最高的层,直接与终端用户软件(网页浏览器、电子邮件客户端等)交互,以发起网络通信。它解释用户意图并管理应用层协议,实现数据交换、身份验证和资源共享。
关键方面
- 功能 – 为应用程序提供服务,使软件能够发送/接收数据,而无需成为具体的应用本身。
- 协议 – HTTP/HTTPS(网页)、SMTP/IMAP(电子邮件)、FTP(文件传输)、DNS(名称解析)。
- 交互 – 将用户请求转换为网络兼容的格式,反之亦然。
- 安全与负载均衡 –
- Web 应用防火墙(WAF)可防御应用层攻击(例如 HTTP 洪水)。
- 基于内容的负载均衡根据请求特征分配流量。
示例: 当用户点击链接时,网页浏览器使用 HTTP/HTTPS(第七层)请求页面。