嵌入式面试题:你有没有用过直接基于TCP协议,不借助HTTP、MQTT这类上层协议的项目经历?

首先得明确:HTTP是基于TCP的应用层协议,就像"快递包装"必须用"货车"运输,而TCP就是那个"货车"。

所谓"纯正的TCP",指的是直接基于TCP协议来收发原始字节数据,而不借助HTTP、MQTT这类上层协议,是更底层的通信方式。

纯正TCP的通信流程(举个简单例子)

  1. 建立连接:你的设备(比如STM32+4G)主动向目标服务器的指定IP和端口发起TCP"三次握手",确认双方能正常通信。

  2. 收发原始数据:

◦ 你不需要按HTTP的GET/POST格式打包,直接发任意字节数据(比如直接发12345或者{"temp":25}这种没有HTTP头的内容)。

◦ 服务器也会直接返回原始字节数据,没有HTTP的状态码、响应头这些额外内容。

  1. 关闭连接:数据发完后,双方通过"四次挥手"断开TCP连接。

对比HTTP和纯正TCP

• HTTP:是"带格式的TCP"------必须按照请求行+请求头+请求体的固定格式发数据,服务器也必须按固定格式返回,相当于"快递必须用标准纸箱打包"。

• 纯正TCP:是"裸的TCP"------数据想发什么格式就发什么,没有上层规则限制,相当于"直接把东西扔上货车,不用包装"。

面试时可以这样说:"HTTP本质是在TCP的基础上,给数据加了一层固定的格式规范;而纯正的TCP是直接传输原始数据,没有这些上层的格式要求,比如我们可以直接通过TCP把一段二进制数据发给服务器,不用加HTTP的请求头这些内容。"


没错,MQTT确实是基于TCP的应用层协议,和HTTP属于同一类别的"上层协议",只是设计目标不一样。

可以这么理解:

• TCP是底层的"通信公路",负责把数据可靠地从A送到B,不管数据是什么内容、什么格式。

• MQTT就是在这条公路上跑的"专用物流车"------它有自己的规则(比如固定的报文格式:CONNECT、PUBLISH、SUBSCRIBE这些消息类型),专门为物联网设备设计,特点是轻量、省流量,适合传感器这类小数据、低功耗的场景。

和HTTP对比的话,MQTT更像"物联网版的通信协议",而HTTP更偏向网页、API这类通用场景,但它们的底层都依赖TCP来建立可靠连接。


调取天气API接口的过程确实用到了TCP,这是最常见的网络通信方式之一。

简单来说,天气API一般是基于HTTP/HTTPS协议的,而HTTP/HTTPS的底层传输依赖的就是TCP协议:

  1. 你的设备(比如STM32+4G模块)会先通过TCP和天气API的服务器建立可靠连接(先完成"三次握手"确认通信通路)。

  2. 连接建立后,才会发送HTTP请求(比如GET /api/weather?city=beijing这类请求内容)。

  3. 服务器收到请求后,通过同一个TCP连接返回天气数据,之后连接会按规则关闭(或保持复用)。

你说的"绑定IP和端口号",其实就是TCP连接的必要步骤------IP确定服务器地址,端口号(比如HTTP默认80、HTTPS默认443)确定服务器上的天气API服务进程,这是TCP建立连接的基础条件。

相关推荐
独小乐1 小时前
012.整体框架适配SDRAM|千篇笔记实现嵌入式全栈/裸机篇
c语言·汇编·笔记·单片机·嵌入式硬件·arm·gnu
不吃鱼的羊1 小时前
ADC扫描组Scan Group
单片机
海砥装备HardAus2 小时前
飞控算法中双环串级PID深度解析:角度环与角速度环的协同机制
stm32·算法·无人机·飞控·串级pid
LCMICRO-133108477462 小时前
长芯微LPC556D1完全P2P替代DAC8830,是引脚兼容的16位数模转换器,该系列产品为单通道、低功耗、缓冲电压输出型DAC
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·电压输出型dac
forAllforMe2 小时前
如何用定时器PWM产生SPWM?--电机驱动控制
嵌入式硬件
charlie1145141912 小时前
嵌入式C++教程实战之Linux下的单片机编程(9):HAL时钟使能 —— 不开时钟,外设就是一坨睡死的硅
linux·开发语言·c++·单片机·嵌入式硬件·c
钿驰科技2 小时前
水泵无刷电机驱动板如何实现恒压控制?
单片机·嵌入式硬件
xingzhemengyou12 小时前
STM32 DMA
stm32·单片机·嵌入式硬件
森利威尔电子-3 小时前
森利威尔 SL3160A 降压型 DC - DC 转换器:10V - 150V 宽输入,稳出 5V/2.5A
单片机·嵌入式硬件·集成电路·芯片·电源芯片
清风6666663 小时前
基于单片机与WiFi通信的教室人数与照明上位机监控系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业