请问如何修改UDP数据包最大长度?

__羊眸__
Posts: 4
Joined: Fri Jul 02, 2021 7:01 am

请问如何修改UDP数据包最大长度?

Postby __羊眸__ » Wed Jul 14, 2021 1:33 am

本人在用ESP32-CAM和ESP-WROVER-KIT做局域网视频传输时,由于一帧图片数据太大,导致一帧数据被分割成多个1460个字节,请问在哪能修改1460字节这个限制?
根据UDP协议,从UDP数据包的包头可以看出,UDP的最大包长度是2^16-1的个字节。由于UDP包头占8个字节,而在IP层进行封装后的IP包头占去20字节,所以这个是UDP数据包的最大理论长度是2^16 - 1 - 8 - 20 = 65507字节。
谢谢

QQ26750452
Posts: 16
Joined: Thu May 13, 2021 1:48 pm

Re: 请问如何修改UDP数据包最大长度?

Postby QQ26750452 » Thu Jul 15, 2021 5:19 am

网络模型是分层的,绝大多数以太网模块和交换机,都限制了包大小不如1536bytes,2048bytes等等。
你说的65535指的不是这个MTU大小,它指的是IP报文大小。其实超过MTU的IP报文,必须拆分/重组才能传输到对端的。
而拆分/重组是要消耗大量RAM的!要想修改MTU来传输图片这种多媒体需求,不是一个好方案。
你可能要基于TCP流来传输这类信息,或者启用协议栈的拆分/重组功能(坚决不推荐)。

Who is online

Users browsing this forum: No registered users and 84 guests