【黑金云课堂】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系统移植、驱动编写、应用开发
相关推荐
AI 编程助手GPT2 小时前
curl 返回成功就能收文件?用本地 HTTP 验证错误页与超时
网络·网络协议·http
流浪0013 小时前
计算机网络篇16:传输层——TCP 报头属性字段:16 位窗口大小撑起流量控制,六个标志位标识报文类型
网络协议·tcp/ip·计算机网络·urg紧急指针·tcp报头
9527华安5 小时前
FPGA实现ARINC818总线协议,基于GT Transceivers Wizard高速收发器,提供7套工程源码和技术支持
fpga开发·transceivers·arinc818
从琳开始9895 小时前
网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的
java·网络·tcp/ip·java-ee·php
小蘇的FPGA6 小时前
fpga-wide-data-crc32
fpga开发
Jongkhurun6 小时前
以太网的最小帧长为什么是 64 字节:从 CSMA/CD 冲突窗口推导 64 Byte
网络协议
落雨无风18 小时前
fpga板级调试常见问题
fpga开发
honsor19 小时前
SNMP 读取以太网温湿度传感器数据,监控平台对接实操
物联网·网络协议·tcp/ip
Yves..1 天前
HTTP 协议学习笔记:从报文结构到抓包实践
网络协议·http·fiddler
沫璃染墨1 天前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互