1

我有这个系统,它由许多不同的阶段组成。具体来说,我有很多不同的进程通过 tcp-ip 进行通信;消息通过面向数据包的协议进行交换(如果满足某些条件,可以将更多消息填充到单个有线协议数据单元中);我也控制了流队列——套接字是非阻塞的,如果我无法发送我的队列消息,甚至将它们合并到发送队列中;当然,运行时发生的事情取决于下面的 tcp ip 控制流,所以我也想对 tcp ip 队列进行建模。所以问题是 - 任何人都可以分享他们对如何为我的系统进行模拟的想法吗?我想为它制作一个模拟器 - 即:一个为我的模型中的每个队列提供队列数据结构的程序,对于每次滴答,我都会根据我对系统的理解使模型演变,即如果我的模型中 tcp 缓冲区的数据结构说它有足够的空间,我会减少输出队列中的消息编号并减少可用空间计数器tcp 缓冲区模型由消息的大小等等 - 然后我根据 tcp 链路的带宽以一定的速率使 tcp 缓冲区为空(当然我假设我正在抽取大量数据和tcp 链路的唯一参数是带宽)。构建这样的东西似乎需要付出很多努力,我不确定它是否是我需要的。也许我最好使用某种 excel 电子表格模型,但我不确定如何构建它。如果我的模型中的 tcp 缓冲区的数据结构表明它有足够的空间,我会减少输出队列中的消息编号,并将 tcp 缓冲区模型中的可用空间计数器减少消息的大小,等等 - 然后我做tcp 缓冲区以基于 tcp 链路带宽的速率清空(当然,我假设我正在抽取大量数据并且 tcp 链路的唯一参数是带宽)。构建这样的东西似乎需要付出很多努力,我不确定它是否是我需要的。也许我最好使用某种 excel 电子表格模型,但我不确定如何构建它。如果我的模型中的 tcp 缓冲区的数据结构表明它有足够的空间,我会减少输出队列中的消息编号,并将 tcp 缓冲区模型中的可用空间计数器减少消息的大小,等等 - 然后我做tcp 缓冲区以基于 tcp 链路带宽的速率清空(当然,我假设我正在抽取大量数据并且 tcp 链路的唯一参数是带宽)。构建这样的东西似乎需要付出很多努力,我不确定它是否是我需要的。也许我最好使用某种 excel 电子表格模型,但我不确定如何构建它。依此类推 - 然后我根据 tcp 链路的带宽以一定的速率使 tcp 缓冲区清空(当然,我假设我正在抽取大量数据并且 tcp 链路的唯一参数是带宽)。构建这样的东西似乎需要付出很多努力,我不确定它是否是我需要的。也许我最好使用某种 excel 电子表格模型,但我不确定如何构建它。依此类推 - 然后我根据 tcp 链路的带宽以一定的速率使 tcp 缓冲区清空(当然,我假设我正在抽取大量数据并且 tcp 链路的唯一参数是带宽)。构建这样的东西似乎需要付出很多努力,我不确定它是否是我需要的。也许我最好使用某种 excel 电子表格模型,但我不确定如何构建它。

4

2 回答 2

0

通过使用离散事件仿真工具或库,您可能会得到一个仍然有用但更简单的模型。您仍然必须以模型理解的形式复制应用程序的大部分结构,但要获得用于注入不同分布的消息速率的工具,并且可能更容易处理不同的场景。

于 2009-03-02T13:26:58.660 回答
0

You could use Ronald Szeto's TCP Simulator. It has a Java interface to it. I wouldn't try to get so complicated with paired queues. Just model your system, and then use this simulator to model the underlying network conditions, and link them together as you would have in your OS. I'm assuming you probably don't have separate network queues on your real system for every one in your application.

于 2009-03-02T14:14:05.660 回答