0

We are designing a Mutliple Client-Server Model for The Server is supposed to :

  1. Transfer the configuration file (size of 2000Kb) to client
  2. Send the UDP/TCP port information for further communication
  3. Receive the statistical data back from the client every 2 second

We are planning for using UDP (mainly due to speed).
I am looking forward for some design options using UDP and suggestions related how to go about with the implementation.

4

1 回答 1

3

使用 UDP(主要是由于速度)

== 在这种情况下决策不佳。让我们考虑一下与您正在做的事情相关的 UDP 可能被认为更快的一些原因,以及 UDP 与 TCP 相比所施加的约束。

在某些情况下,UDP 在理论上更快,因为它节省了一些 [blah blah] IP 级别的东西。伟大的。但是,您得到了您所支付的费用,并且您无需为 UDP 支付的几件事是:

  1. 持久连接。

  2. 一致的连接(即信息按发送顺序到达的连接)。

但是根据您的规格,在我看来您需要这两者,因此您将不得不以其他方式为它们付费。

您需要 #1 因为您正在接受来自特定来源的持续数据流。使用 TCP,这非常简单:客户端连接并开始发送。使用UDP,没有持续的服务器<->客户端关系,所以决定什么信息属于谁的唯一方法是IP和MAC地址,这可能不是一个非常健壮的方法。

作为补偿,您必须 A) 向每个样本添加更多数据,识别客户端,以及 B) 进行更多用户空间处理,以识别每条数据的所有者。

您需要#2,因为如果时间关系是随机的(样本 A 比样本 B 早 2 秒,反之亦然?),每两秒采样一次数据(可能)没有意义。作为补偿,您必须 A) 向每个样本添加更多数据,指示时间排序,以及 B) 对每个部分进行更多用户空间处理,以正确排序样本。

使用TCP

于 2013-08-30T12:49:47.830 回答