2011-06-05 44 views
0

我有一个任务来衡量客户端和服务器之间丢弃的UDP消息的数量。客户端和服务器是用Java编写的。该任务是通过使用不同的大小和数字来测量丢失了多少数据包。如何测量丢弃的UDP消息的数量?

该分配表示“服务器”应计算已丢弃了多少条消息。我不明白这是怎么可能的,因为这些消息是UDP--因此,服务器怎么可能知道一条消息被丢弃?

+5

您可以在服务器可以跟踪的每个客户端源UDP数据包中放置一个序列号。 – 2011-06-05 16:29:03

回答

1

如果来自客户端的数据报,说有多少数据包到目前为止已发送的,会到达服务器,服务器可以计算的话,可能不是吗?

+0

序列号是否有内置功能?我开始挖掘,但它似乎是通过在消息本身之前编写序列来手动完成的? – 2011-06-05 16:37:50

+0

@Google UDP数据报中的消息格式取决于程序员,即你;)。 '在消息本身之前编写序列[编号]的确是解决方案。 – phihag 2011-06-05 16:43:36

+0

谢谢,我会放弃它。 :) – 2011-06-05 16:46:38

1

一个复杂的方式:您可以创建应用程序级别的可靠性。

接收机应回复ack。如果发件人没有得到超时值,则认为它已被删除。

(添加术语:复杂)

+1

但是,这将无法区分丢弃的消息和丢弃的ACK。 – phihag 2011-06-05 16:32:41

+0

你是对的,我的想法很复杂,创建一个抽象的tcp-like层sholud是非常昂贵的。 – asyard 2011-06-05 16:38:04

+0

我相信这是一些telnet和ftp程序如何使UDP更可靠。这非常复杂,但是感谢帖子! – 2011-06-05 16:41:44