|
我想让udp支持tcp的顺序保证机制。
首先假设我发送过来的upd段都提供了类似tcp的段序号。
于是我在应用层做了一个类似SLAB内存分配器的缓冲管理。
因为UDP的段大小限制为64KB,于是我设置了一组缓冲区64KB的3个,32KB的3个,16KB的3个,8KB的3个,4KB的3个。
这样如果udp段不是顺序到达的话,我就可以按照它最接近的大小放入相应的缓冲区,然后等待下一个udp段的到来。
这样按照udp发送过来的段大小,我可以最多保证将不是所需要的却到达的udp段缓冲至15个,最少只能缓冲3个,如果后边3个都是64KB大小的udp段的话。
如果我最终还是没有等待到那个需要的udp段的话,我就只能要求服务器重传。
大家有没有更好的建议,大家觉得这种方式速度上快不快? |
|