我需要估计使用UDP编写的测量应用程序的带宽。 我对数字有很好的理解,但不知道如何把它们放在一起。 我检查了一些这样的吞吐量计算器,但是大多数是针对TCP的,所以不完全适用。
您应该问的问题是,您需要每秒处理多less个请求。 这个数字从你的问题中缺失,因此原来的问题不能得到适当的回答。
然而,在你的问题中有几个数字我可以给出答案。
首先你提到一个100字节的请求大小和200字节的回复大小。 回应大于请求的UDP服务可能会被滥用于reflection攻击。 在devise基于UDP的协议时,这是必须考虑的事情。
另一个重要的考虑是可能将一个stream浪包误解为一个请求。
你提到使用80个线程的可能性。 基于TCP的服务主要使用大量的线程,因为它们通常被devise为每个连接都需要一个线程,而这个线程可能会花费很多时间来等待客户端。
基于UDP的服务中不会发生这种等待期。 这意味着如果您希望所有80个线程并行进行实际处理,则只应使用80个线程。 它需要一个相当强大的机器来并行执行80个线程的实际处理。
如果你没有先做自己的客户IP地址validation,而是处理繁重的处理,那么你将成为DoS攻击的一个简单目标。
如果你正在实现一个基于UDP的协议,并且你正在使用多个线程,那么你可能做错了。