esp32tcpclient最大传输的数据长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了esp32tcpclient最大传输的数据长度相关的知识,希望对你有一定的参考价值。

参考技术A 我是直接进行测试的,把ESP32设置为AP模式,使用两个手机都连接到这个AP上。
两个手机使用快传软件进行传输大文件,速度基本稳定在2MB/S多,而ESP8266只能稳定在1MB/S多.
基本就是这样一个速度,但是要是想到达这样一个速度,还得看软件是怎么写的

tcp/ip的一些概念

MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。以太网的MTU值是1500 bytes。

首先计算最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes。

 

 

传输层:

对于UDP协议来说,整个包的最大长度为65535,其中包头长度是65535-20=65515。

对于TCP协议来说,整个包的最大长度是由最大传输大小(MSS,Maxitum Segment Size)决定,MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以往往MSS为1460。通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

 

IP层: 

对于IP协议来说,IP包的大小由MTU决定(IP数据包长度就是MTU-20(包头长度)。 MTU值越大,封包就越大,理论上可增加传送速率,但 
MTU值又不能设得太大,因为封包太大,传送时出现错误的机会大增。

一般默认的设置,PPPoE连接的最高MTU值是1492,

而以太网 (Ethernet)的最高MTU值则是1500,而在Internet上,默认的MTU大小是576字节

以上是关于esp32tcpclient最大传输的数据长度的主要内容,如果未能解决你的问题,请参考以下文章

ESP-C3入门10. 创建TCP Client

ESP-C3入门10. 创建TCP Client

低功耗蓝牙(ESP32 和 Android 智能手机之间):数据传输很慢

esp32图传只有10帧

使用 esp32 接入点流式传输 UDP 数据包会导致大量数据包丢失

网络编程