请教在公网上最合适的UDP包大小
UDP传输不可靠这是大家公认的,但由于它速度快,开销相对小,而且UDP打洞的成功概率一般情况下又会大于TCP打洞成功概率,因此众多P2P软件能够使用UDP时肯定使用UDP。我有这么一个疑问,假设现在A和B通过公网已经能够进行UDP包的交互,并且有一大块连续数据(如文件)要传输,那么如何确定这个UDP包的最合适大小,使得我们实现自定义可靠传输时重传的概率最小,而底层组包成功率也相对较高(太大的包在网络上传输必定要拆包,而到接收端,协议栈又要把它组合起来,如果拆太多,完整收齐组合的可能性肯定降低了,搞惯了TCP,UDP的处理还真是太麻烦而且不太习惯)。请大家畅所欲言,一起来分析分析。另外TCP一般是采用发送端超时重传(未收到确认的情况下),我想UDP下如果实现成接收端主动要求重传是否实现起来更方便点呢?比如现在完整接收100,最新收到105,那我就直接要求发送端重发101-104,这样是否可行呢?
最近要做这么一个东西(真正的P2P),还没有多少眉目,希望大家多捧场。