我的这个系统包含很多不同阶段的管道。 具体来说,我有很多不同的进程通过tcp-ip进行通信;消息被交换 通过面向分组的协议(可以在单个线协议数据单元中将更多消息填充在一起 如果满足某些条件);我也控制流队列 - 如果我发送失败,套接字是非阻塞的 我将消息排队甚至在发送队列中合并它们; 当然在运行时发生的事情取决于下面的tcp ip控制流,所以我也想模拟tcp ip队列。 所以问题是 - 有人可以分享他们对如何为我的系统进行模拟的想法吗? 我曾想过为它制作一个模拟器 - 即:每个队列都有一个队列数据结构的程序 我有我的模型,每次刻度我根据我对sytstem的理解使模型发展 即,如果我模型中tcp缓冲区的数据结构说它有足够的空间,我会减少消息号 在输出队列中减少tcp缓冲区模型中的可用空间计数器的大小,依此类推 - 然后我制作 tcp缓冲区为空,其速率基于tcp链路的带宽 (当然我假设我正在抽取大量数据,这是tcp链接的唯一参数 是带宽)。 建立这样的东西似乎付出了很多努力,我不确定这是我需要的。 也许我最好使用某种excel电子表格模型,但我不确定如何构建它。
答案 0 :(得分:0)
使用discrete event simulation工具或库创建模型可能会更有用但更简单。您仍然必须以模型理解的形式复制应用程序的大部分结构,但是可以获得用于注入不同消息速率分布的工具,并且可以更轻松地使用不同的场景。
答案 1 :(得分:0)
您可以使用Ronald Szeto's TCP Simulator。它有一个Java接口。我不会尝试使用配对队列这么复杂。只需为您的系统建模,然后使用此模拟器为底层网络条件建模,并将它们链接在一起,就像在操作系统中一样。我假设你的应用程序中的每一个都可能没有在你的真实系统上有单独的网络队列。