据说UDP协议,每个数据包有个最大值,叫SO_MAX_MSG_SIZE,请问这个值对于每个机器都是一样的吗?

screen12 2016-04-22 09:14:59
有进行UDP传输的时候,每个UDP数据包,都有一个最大值的限制,叫做SO_MAX_MSG_SIZE。

请问,这个值对于所有机器都一样?还是各个机器不同?怎样查看服务器上的这个值是多少?
...全文
634 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
screen12 2016-04-22
  • 打赏
  • 举报
回复
引用 1 楼 kinkon007 的回复:
这个是整包的大小,一般是64K,在下层传输的时候会按照系统的MTU进行IP包的分片,其实对每个UDP包来讲也就存在分片还是不分片的情况,这个数值在包里是没有体现的。
可我的VS2008,我看了一个里面的定义,是这样的: #define SO_MAX_MSG_SIZE 0x2003 /* maximum message size */ 从这个数值上看,没有64K啊!自己能修改它吗?在VS2008里修改就能起作用了?
screen12 2016-04-22
  • 打赏
  • 举报
回复
引用 1 楼 kinkon007 的回复:
这个是整包的大小,一般是64K,在下层传输的时候会按照系统的MTU进行IP包的分片,其实对每个UDP包来讲也就存在分片还是不分片的情况,这个数值在包里是没有体现的。
我听说,UDP协议,数据传输时,是有边界的,一个包就是一个包,不能出现数据在粘连。sendto一发就是一个整包,revcfrom一收就是一个整包,只要本机缓冲区够大,都是收完再返回的。 那就是说,如果数据包的大小,不超过发送端的SO_MAX_MSG_SIZE,出不超过接收端的 SO_MAX_MSG_SIZE。就没有问题是吗?接收端的recvfrom会收到一个完整的数据才返回,是吗?
kinkon007 2016-04-22
  • 打赏
  • 举报
回复
getsockopt(s, SOL_SOCKET, SO_MAX_MSG_SIZE, (char *)&iVal, &iSize);
kinkon007 2016-04-22
  • 打赏
  • 举报
回复
这个是整包的大小,一般是64K,在下层传输的时候会按照系统的MTU进行IP包的分片,其实对每个UDP包来讲也就存在分片还是不分片的情况,这个数值在包里是没有体现的。
赵4老师 2016-04-22
  • 打赏
  • 举报
回复
《TCP-IP详解》
kinkon007 2016-04-22
  • 打赏
  • 举报
回复
引用 3 楼 screen12 的回复:
[quote=引用 1 楼 kinkon007 的回复:] 这个是整包的大小,一般是64K,在下层传输的时候会按照系统的MTU进行IP包的分片,其实对每个UDP包来讲也就存在分片还是不分片的情况,这个数值在包里是没有体现的。
我听说,UDP协议,数据传输时,是有边界的,一个包就是一个包,不能出现数据在粘连。sendto一发就是一个整包,revcfrom一收就是一个整包,只要本机缓冲区够大,都是收完再返回的。 那就是说,如果数据包的大小,不超过发送端的SO_MAX_MSG_SIZE,出不超过接收端的 SO_MAX_MSG_SIZE。就没有问题是吗?接收端的recvfrom会收到一个完整的数据才返回,是吗?[/quote] 是的
kinkon007 2016-04-22
  • 打赏
  • 举报
回复
引用 4 楼 screen12 的回复:
[quote=引用 1 楼 kinkon007 的回复:] 这个是整包的大小,一般是64K,在下层传输的时候会按照系统的MTU进行IP包的分片,其实对每个UDP包来讲也就存在分片还是不分片的情况,这个数值在包里是没有体现的。
可我的VS2008,我看了一个里面的定义,是这样的: #define SO_MAX_MSG_SIZE 0x2003 /* maximum message size */ 从这个数值上看,没有64K啊!自己能修改它吗?在VS2008里修改就能起作用了? [/quote] 这个64K是最大值,0x2003并没有超过
内容概要:本文系统研究了移相控制全桥LLC谐振变换器的工作特性,深入分析其在不同工况下的运行机理与性能表现,并基于Simulink平台构建了完整的仿真模型进行验证。文章详细阐述了LLC谐振变换器的电路拓扑结构、工作原理、关键参数设计方法以及移相控制策略的实现机制,重点对电压增益特性、转换效率、软开关实现条件等核心性能指标进行了仿真分析,全面评估了系统在宽输入电压范围内的稳定性、动态响应能力及高效运行区间。; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校研究生、科研机构研究人员以及从事高频开关电源、DC-DC变换器设计的工程技术人员;要求读者具备扎实的电路理论基础和一定的Simulink仿真应用经验。; 使用场景及目标:①深入掌握LLC谐振变换器的基本原理与数学建模方法;②理解并应用移相控制策略以提升高效率DC-DC变换器的性能;③通过仿真实践优化谐振腔参数(如谐振电感、励磁电感、谐振电容)与开关频率配置,提高电源系统的整体能效、功率密度和可靠性,服务于实际工程中的电源产品开发与性能验证。; 阅读建议:建议读者结合提供的Simulink仿真模型同步操作,重点探究谐振元件参数变化对系统增益曲线和ZVS软开关实现条件的影响,尝试调节移相角与开关频率以观察动态响应过程,从而深化对LLC变换器高频软开关特性和控制策略的理解。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧