udp包最大数据长度是多少

您所在的位置:网站首页 udp报头用户数据长度是多少 udp包最大数据长度是多少

udp包最大数据长度是多少

2024-07-07 01:25| 来源: 网络整理| 查看: 265

原文地址:https://blog.csdn.net/caoshangpa/article/details/51530685

每个udp包的最大大小是多少?     65507 约等于 64K

为什么最大是65507?     因为udp包头有2个byte用于记录包体长度. 2个byte可表示最大值为: 2^16-1=64K-1=65535     udp包头占8字节, ip包头占20字节, 65535-28 = 65507

如果要发送的udp报文大于65507怎么办?     需要在应用层由开发者自己分片发送. 分片的粒度最大65507字节. 系统的sendto函数是不支持大于65507字节的单包发送的.

UDP包头格式:

 

用php测试结果如下, 当大小为65508时报错.

.... socket_sendto return : 65506 will send data len : 65507 ... socket_sendto return : 65507 will send data len : 65508 ... //=================< 这里报错

PHP Warning:  socket_sendto(): unable to write to socket [90]: Message too long in /data/home/nemo/code/test/server_test/udp_client.php on line 25

测试代码:

   



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3