【黑金云课堂】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系统移植、驱动编写、应用开发
相关推荐
W.W.H.3 小时前
Ping 与 TCP:网络连通性探测的两种维度
网络·网络协议·tcp/ip
FPGA小徐3 小时前
FPGA 电赛信号叠加与分离项目 完整工程包
fpga开发
FPGA小徐3 小时前
FPGA在做信号处理相比cpu的优势对比
fpga开发
Szime3 小时前
AD9218国产替代方向:双通道10位105MSPS ADC深智微科技选型经验
fpga开发
江鸟的坚持3 小时前
xilinx xadc 例化
fpga开发·xadc·xilinx xadc
IpdataCloud4 小时前
担心IP查询泄露隐私?用离线查询工具安全查IP,数据不出内网
网络协议·tcp/ip·安全
明德扬4 小时前
AD采集卡适配方案交流:模块、板卡与FPGA示例工程支持
fpga开发
北极星日淘4 小时前
Python代理池动态适配日淘爬虫|解决高频抓取IP封禁终极方案(含完整源码)
爬虫·python·tcp/ip
码农飞哥4 小时前
RocketMQ消费接口设计实战:为什么HTTP回调接口必须吞掉所有异常,始终返回成功?
网络协议·http·中间件·消息队列·rocketmq