建设银行大丰支行网站,怎么注册域名备案,wordpress中文免费企业模板,网站关键词搜索排名优化TCP/IP 协议
TCP/IP 协议 知识点主要包括#xff1a;分层结构、核心协议、工作机制、应用示例#xff08;含 C/C 编程#xff09;、常见问题排查等#xff0c;适用于嵌入式、上位机、网络编程学习或系统开发。 一、什么是 TCP/IP#xff1f;
TCP/IP 是互联网通信协议族分层结构、核心协议、工作机制、应用示例含 C/C 编程、常见问题排查等适用于嵌入式、上位机、网络编程学习或系统开发。 一、什么是 TCP/IP
TCP/IP 是互联网通信协议族协议栈的总称并非单一协议而是一组网络协议的统称。它是现代网络通信如网页、FTP、邮件、IoT、嵌入式上位机通信等的基础。 二、TCP/IP 协议栈分层结构
TCP/IP 模型通常分为 4 层对应 OSI 7 层的压缩版
TCP/IP 层功能常见协议应用层 (Application)提供具体应用服务HTTP, FTP, SSH, DNS, MQTT传输层 (Transport)端到端可靠/不可靠数据传输TCP可靠, UDP不可靠网络层 (Internet)负责寻址与路由IP, ICMP, ARP链路层 (Link)负责硬件传输如以太网帧Ethernet, PPP, Wi-Fi 三、核心协议详解
IP 协议Internet Protocol
作用提供主机之间的寻址与数据转发特点不可靠、无连接数据包结构包括源 IP、目的 IP、TTL、标识、分片等
TCP 协议Transmission Control Protocol 作用提供可靠、面向连接的端到端传输 特点 三次握手建立连接四次挥手断开连接流量控制、拥塞控制、超时重传 应用场景Web 服务、文件传输、远程登录
UDP 协议User Datagram Protocol
作用提供无连接、不可靠但轻量的数据传输特点无握手、发送即忘、延迟低应用场景实时音视频、游戏、广播、嵌入式下位机通信 四、TCP 三次握手 / 四次挥手
三次握手建立连接
Client → Server发送 SYN同步Server → ClientSYN ACK确认Client → ServerACK
四次挥手关闭连接
Client → ServerFINServer → ClientACKServer → ClientFINClient → ServerACK 握手建立连接可靠性挥手确保数据传输完整关闭。 五、C/C Socket 编程基于 TCP/IP
TCP 服务器C
int server_fd socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in addr {};
addr.sin_family AF_INET;
addr.sin_port htons(12345);
addr.sin_addr.s_addr INADDR_ANY;bind(server_fd, (struct sockaddr*)addr, sizeof(addr));
listen(server_fd, 5);int client_fd accept(server_fd, NULL, NULL);char buffer[1024];
read(client_fd, buffer, sizeof(buffer));
write(client_fd, Hello Client, 12);TCP 客户端C
int sock socket(AF_INET, SOCK_STREAM, 0);struct sockaddr_in server {};
server.sin_family AF_INET;
server.sin_port htons(12345);
inet_pton(AF_INET, 127.0.0.1, server.sin_addr);connect(sock, (struct sockaddr*)server, sizeof(server));send(sock, Hello Server, 12, 0);
recv(sock, buffer, sizeof(buffer), 0);六、TCP/IP 与嵌入式上位机通信
场景上位机下位机通信方式STM32 ↔ PCQt/Console程序STM32 LwIP TCP ServerTCPESP32 ↔ 上位机Python/CESP32 Arduino TCP ServerTCP网关 ↔ 云端平台REST/gRPC/MQTT网关 Linux/C 编写 TCP 客户端TCP 或 TLS 七、TCP/IP 数据封包结构简图
以太网帧└─IP 数据包└─TCP 段└─应用数据如 HTTP/自定义协议每一层加一层包头层层封装形成所谓“协议栈”。 八、TCP 常见问题 调试工具
常见问题
连接不上 → 防火墙或监听地址不对接收阻塞 → 对方未发送数据或没 flush粘包/拆包 → 使用 length-prefix 协议或自定义帧尾
常用调试工具
工具功能netstat查看端口占用tcpdump抓包分析 TCP/IP 层数据Wireshark图形化协议分析利器nc / ncat快速测试 TCP 连接 九、TCP/IP 与 RPC 结合
TCP 是实现 RPC 框架的主力协议之一。
例如
gRPC → 基于 HTTP/2 Protobuf TCPThrift → TCP 二进制协议自定义 RPC → TCP 自定义帧格式 方法映射 十、总结
维度TCPUDP是否可靠✅ 是有重传❌ 否丢包不管是否连接✅ 是握手❌ 否无连接适合应用HTTP、文件传输、数据库实时游戏、直播、传感器广播是否顺序✅ 保证顺序❌ 不保证