【黑金云课堂】FPGA技术教程Vitis开发:TCP以太网通信

一、以太网与 TCP 基础概述

  1. TCP 定位:TCP 是 TCP/IP 传输层核心协议,介于应用层与 IP 网络层之间,具备面向连接、可靠传输、字节流服务三大特性,依托三次握手建连、四次挥手断连、序号 + ACK + 超时重传实现无损有序传输,支撑 HTTP、FTP 等上层协议。
  1. 层级架构:TCP/UDP 位于传输层,下层为 IP、ARP 等网络层协议,再往下是以太网数据链路与物理层。
  1. 以太网帧格式:由 8B 前导码、6B 目的 MAC、6B 源 MAC、2B 类型、46~1500B 数据、4B FCS 校验组成,类型字段区分 IP/ARP 协议,FCS 采用 32 位 CRC 校验。
  1. IPv4 报文头:含版本、首部长度、总长度、协议号(TCP 协议号为 6)、分片标志、IP 地址等关键字段,IP 报文不能超出链路 MTU。

二、TCP 首部

TCP 首部最小 20 字节(固定区)+ 可变选项区,是可靠传输控制核心:

  1. 基础字段:源 / 目的端口、32 位序列号、32 位确认号;序列号标识字节位置,解决报文乱序、重复接收问题,连接初始化采用随机 ISN 序号。
  1. 6 位标志位:URG 紧急、ACK 确认、PSH 推送、RST 重置、SYN 同步、FIN 断开,分别管控紧急数据、连接建立与关闭等行为。
  1. 窗口字段:实现滑动窗口流量控制,接收方通过 ACK 通告剩余缓存容量,限制发送速率;原生 16 位窗口上限 65535 字节,依靠窗口扩大因子扩容。
  2. 校验和 & 紧急指针:校验和含 TCP 正文 + IP 伪首部,校验报文完整性;URG 置 1 时紧急指针标记紧急数据末尾,实现高优先级数据插队传输。
  3. 关键可选参数
    • 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系统移植、驱动编写、应用开发
相关推荐
程序员夏洛6 分钟前
HTTP 2.0 和 3.0 有什么区别?
网络·网络协议·http
Sylvia33.4 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
鼹鼠SDN7 小时前
没有公网 IP,如何在外面访问家里的打印机、摄像头和整个局域网?
网络·网络协议·tcp/ip
幼儿园蛋小黑12 小时前
TCP 并发:从原理到高并发实践
网络·网络协议·tcp/ip
驭渊的小故事15 小时前
网络原理04(http协议详细解析3)(2000详细解析HTTPS的工作原理)
网络·网络协议·http
额额额对了16 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议
IPdodo_16 小时前
2026年爬虫代理 IP 选择指南:从可用率、延迟到成本验收
网络协议·tcp/ip·scrapy·http·https·beautifulsoup·httpx
myy-learn17 小时前
31-TCP并发
服务器·网络·tcp/ip
程序员夏洛17 小时前
HTTP 请求包含哪些内容,请求头和请求体有哪些类型?
网络·网络协议·http
小雪崩17 小时前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip