一、以太网与 TCP 基础概述
- TCP 定位:TCP 是 TCP/IP 传输层核心协议,介于应用层与 IP 网络层之间,具备面向连接、可靠传输、字节流服务三大特性,依托三次握手建连、四次挥手断连、序号 + ACK + 超时重传实现无损有序传输,支撑 HTTP、FTP 等上层协议。


- 层级架构:TCP/UDP 位于传输层,下层为 IP、ARP 等网络层协议,再往下是以太网数据链路与物理层。

- 以太网帧格式:由 8B 前导码、6B 目的 MAC、6B 源 MAC、2B 类型、46~1500B 数据、4B FCS 校验组成,类型字段区分 IP/ARP 协议,FCS 采用 32 位 CRC 校验。

- IPv4 报文头:含版本、首部长度、总长度、协议号(TCP 协议号为 6)、分片标志、IP 地址等关键字段,IP 报文不能超出链路 MTU。
二、TCP 首部
TCP 首部最小 20 字节(固定区)+ 可变选项区,是可靠传输控制核心:
- 基础字段:源 / 目的端口、32 位序列号、32 位确认号;序列号标识字节位置,解决报文乱序、重复接收问题,连接初始化采用随机 ISN 序号。

- 6 位标志位:URG 紧急、ACK 确认、PSH 推送、RST 重置、SYN 同步、FIN 断开,分别管控紧急数据、连接建立与关闭等行为。

- 窗口字段:实现滑动窗口流量控制,接收方通过 ACK 通告剩余缓存容量,限制发送速率;原生 16 位窗口上限 65535 字节,依靠窗口扩大因子扩容。
- 校验和 & 紧急指针:校验和含 TCP 正文 + IP 伪首部,校验报文完整性;URG 置 1 时紧急指针标记紧急数据末尾,实现高优先级数据插队传输。
- 关键可选参数
- MSS :以太网常用 1460B(MTU1500 - IP 头 20 - TCP 头 20),握手协商单段最大载荷,规避 IP 分片;
- 窗口扩大因子:握手协商,突破原生窗口大小限制,适配高速网络。
三、连接机制
TCP 依靠 三次握手(SYN / SYN+ACK / ACK) 建立连接,四次挥手(FIN / ACK / FIN / ACK) 断开连接,由 SYN、FIN 等标志位控制流程。
💡 完整视频讲解可前往 ALINX 视频号进行直播回看
更多细节欢迎关注我们黑金云课堂全年免费直播课,
黑金云课堂六月直播日历 我们将在每周二、三、四,同步推进 Verilog开发、Vitis开发、Linux开发三大系列,带你从零开始,稳扎稳打掌握 FPGA 开发全流程!
| 系列 | 内容定位 |
|---|---|
| Verilog开发 | 硬件描述语言基础、逻辑设计、仿真调试 |
| Vitis开发 | Zynq软硬件协同、外设驱动、网络协议栈 |
| Linux开发 | 嵌入式Linux系统移植、驱动编写、应用开发 |