在我正在开发的项目中,当我们从网络读取UDP流时,我们在SMP系统的某些情况下会看到无序问题.我们可以看到它通过嗅探发送器和接收器之间连接的集线器从网络到达.但是,有时从套接字读取时似乎无法到达.在这种情况下是否可以保证UDP数据包,或者应用程序是否应该实现重新排序缓冲区?我们没有在这里设置CPU亲和力,我怀疑这可能有所帮助,但理想情况下我希望所有CPU/hw线程处理网络流量.
UDP不保证任何订购.这是应用程序的责任.事实上,它甚至不保证数据包不会重复/丢弃等.我建议您阅读:http://en.wikipedia.org/wiki/User_Datagram_Protocol
内核做出任何此类保证是没有意义的,特别是如果传入的数据包本身可能出现故障,因为内核可以(合理地)期望应用程序将处理它,如果应用程序需要排序.