我有一个简单的 C# 应用程序,它在单接收方、单发送方场景中使用 UDP 多播。目标是在本地网络环境中尽可能快地传递消息。
我使用过 SocketAsyncEventArgs/SendAsync/ReceiveAsync、BeginSend/BeginReceive、Threads/Send/Receive,并尝试过 PGM 和 UDP 多播。
每次实现尝试都可以通过本地发送和本地接收重复传递最多约 1000 条消息。之后,性能开始呈指数下降。1000 条消息需要百分之几秒,而 10,000 条消息可能需要 2-10 秒。
有没有人有高性能 UDP/PGM 多播的经验?获得最大吞吐量的最佳设计是什么?
更新
现在,它只是一个在本地运行的程序——1 个应用程序,1 个发送者和 1 个接收者。测试消息为 4 个字节。