请教在公网上最合适的UDP包大小

tangrh 2004-12-27 03:35:19
UDP传输不可靠这是大家公认的,但由于它速度快,开销相对小,而且UDP打洞的成功概率一般情况下又会大于TCP打洞成功概率,因此众多P2P软件能够使用UDP时肯定使用UDP。我有这么一个疑问,假设现在A和B通过公网已经能够进行UDP包的交互,并且有一大块连续数据(如文件)要传输,那么如何确定这个UDP包的最合适大小,使得我们实现自定义可靠传输时重传的概率最小,而底层组包成功率也相对较高(太大的包在网络上传输必定要拆包,而到接收端,协议栈又要把它组合起来,如果拆太多,完整收齐组合的可能性肯定降低了,搞惯了TCP,UDP的处理还真是太麻烦而且不太习惯)。请大家畅所欲言,一起来分析分析。另外TCP一般是采用发送端超时重传(未收到确认的情况下),我想UDP下如果实现成接收端主动要求重传是否实现起来更方便点呢?比如现在完整接收100,最新收到105,那我就直接要求发送端重发101-104,这样是否可行呢?
最近要做这么一个东西(真正的P2P),还没有多少眉目,希望大家多捧场。
...全文
3460 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
boyzhang 2005-07-04
  • 打赏
  • 举报
回复
GZ
greentest 2005-06-05
  • 打赏
  • 举报
回复
mark
realsuperliu 2005-01-18
  • 打赏
  • 举报
回复
弱弱的问一下,什么叫打洞?
qyii 2005-01-18
  • 打赏
  • 举报
回复
没有最合适吧...只有更合适!呵呵~
毕竟各网络环境时时刻刻都在变啊!
tangrh 2005-01-18
  • 打赏
  • 举报
回复
看来要结了
yesry 2004-12-30
  • 打赏
  • 举报
回复
1043
tangrh 2004-12-30
  • 打赏
  • 举报
回复
????呵呵,不解,还有很多困惑啊
cnpeople 2004-12-30
  • 打赏
  • 举报
回复
取最小的MTU
tangrh 2004-12-30
  • 打赏
  • 举报
回复
现在很想问why,而不想问怎么做
tangrh 2004-12-29
  • 打赏
  • 举报
回复
继续讨论,谁实践过啊,继续吧
zyg0 2004-12-29
  • 打赏
  • 举报
回复
忘了,文件传送的时候不是1个net下的也不要紧,就用点对点。如果不支持net的话,还得用tcp
zyg0 2004-12-29
  • 打赏
  • 举报
回复
to : qyii(向范敬宜同志学习!)
我的那个方法是避免不了完全丢包的那种情况,但是那种情况很少的,如果是互联网的话我会采用另一种方法
1.尽量小包。我用1k没有问题,但是最好是1k以下的,网络环境有时候不好,反正我采用的是1k
2.包头包头是必不可少的,如果想实现bt那种的断点续传的话就要+2各包头,1个是包的大小,一个是序号
3,重要的信息采用tcp发送,如文件的总长度,以便于以后的和包和以后的重发。
4,接收完包后在接到不完全包时就叫服务器从发,在接到包序号少的情况也从发
我个人见解,vc我不怎么样,要是vb的话,我恐怕能实现,但是现在我没有时间,项目太紧
Sander 2004-12-28
  • 打赏
  • 举报
回复
实际上每个公网的router都有MTU,可能不同,但都是1k,或512,而你的程序首先1k测试(自动测试)丢包率超出你设定的数据,就改小的packet.
--------------------------------------
另外,我想问的问题是:http://community.csdn.net/Expert/topic/3660/3660951.xml?temp=.4984705
----------
哪位有实现过 “用UDP实现可靠文件传输” 的完整的封装类

“用UDP实现可靠文件传输”的相关连接:
http://blog.csdn.net/pclili/archive/2004/12/12/213631.aspx
希望高手赐教!

zyg0 2004-12-28
  • 打赏
  • 举报
回复
只是本人的见解,没有什么最好的p2p方案,最好的 方案是tcp和udp结合用,tcp发指令,udp传大消息,文件,如果不支持net都改tcp 至少qq现在是怎么做的
晕,怎么是vb版
whwjn 2004-12-28
  • 打赏
  • 举报
回复
今天blog怎么打不开了?
godsaveme888 2004-12-28
  • 打赏
  • 举报
回复
多找点临床验证,好坏环境皆要
zyg0 2004-12-28
  • 打赏
  • 举报
回复
在公网我测试最大的 包是1k,因为多了就 会丢包,建议单位越小越好,我设置2k tcp 都有问题(仅限于某些网络环境,的某些机器 如adsl,我家机器)
qyii 2004-12-28
  • 打赏
  • 举报
回复
像BT一样...对每个包计算特征码.把特征码传过去,先进行特征码校验.通过C,S双方确定特征码无误!再由一方发送相应的包.收方收到后,可以按先后次序用对应包的特征码进行校验.

哈哈哈...这也太BT了吧!不过对于两个内网,又要通信.没办法啦!
zyg0啊,我想说的是你在VB版那个方法是防止不了UDP掉包的...

不过自己没实力...连windows网络编程也没看完!谈不上写网络程序,所以随便吹吹牛!大家当没看见好了!
qyii 2004-12-28
  • 打赏
  • 举报
回复
有意思...
暂时没什么话说,等着大的进展消息.
碧螺春的马甲 2004-12-28
  • 打赏
  • 举报
回复
公司内部局域网内 UDP 还会丢吗?因该不会了吧?
加载更多回复(15)
内容概要:本文围绕“基于超局部模型与自抗扰ESO观测器的无模型预测电流控制改进策略”展开研究,提出一种结合超局部模型(ULM)与扩张状态观测器(ESO)的无模型预测电流控制(MFPCC)改进方法,旨在提升永磁同步电机(PMSM)电流环的动态响应性能与抗干扰能力。该策略利用超局部模型对系统行为进行局部逼近,避免依赖精确数学模型,同时引入自抗扰控制中的ESO实时观测并补偿系统内外部扰动,有效抑制参数摄动、负载变化及模型不确定性带来的影响。研究通过Simulink搭建完整的控制系统仿真模型,对传统MFPCC与所提改进策略进行对比分析,验证了新方法在电流跟踪精度、响应速度和鲁棒性方面的优越性。; 适合人群:具备电机控制、现代控制理论及Simulink仿真基础的电气工程、自动化及相关专业的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于高性能电机驱动系统中电流环控制器的设计与优化;②为无模型控制与自抗扰控制的融合应用提供技术参考;③支撑相关课题的仿真验证、论文复现与创新方法研究。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制结构与参数整定过程,重点关注ESO的观测性能与扰动补偿机制,并可通过改变负载条件、参数偏差等工况进行鲁棒性测试,进一步掌握该改进策略的核心优势与适用边界。
内容概要:本文围绕Scratch图形化编程平台,详细阐述了《人体感应灯光系统》这一贴近生活的AI科创作品的设计与教学应用。通过模拟真实智能家居中人体感应灯的工作原理,利用Scratch的侦测、逻辑判断、亮度特效调节等功能,实现了人物靠近自动亮灯、延时熄灭及环境亮度自适应等仿真功能。文章系统拆解了从场景搭建、核心逻辑设计、分层编程实现到调试优化的完整开发流程,并提供了基础版与进阶版可直接导入的源码,支持零基础快速上手与高阶创新拓展。同时构建了“基础—进阶—高阶”三层阶梯式教学体系,适配常规课堂、创客社团与赛事培优等多元教学场景,推动中小学AI教育的生活化、实践化与创新化发展。 适合人群:小学高年级至初中阶段学生,信息技术教师,创客教育从业者,以及参与青少年科创赛事的师生。 使用场景及目标:①作为中小学人工智能通识课程的教学案例,帮助学生理解智能感应与控制逻辑;②用于校内创客社团开展项目式学习;③支撑学生参加AI科创类赛事,完成高质量作品创作与答辩准备;④布置为课后综合实践作业,提升动手能力与科技素养。 阅读建议:建议结合提供的Scratch源码进行实践操作,在复现基础上尝试参数调优与功能扩展,如增加音效提示、多区域感应等,深化对编程逻辑与智能系统设计的理解。

18,357

社区成员

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

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