Java 拆分TCP网络流量

Java 拆分TCP网络流量,java,routing,Java,Routing,我有一个通过JMS队列和主题生成和接收数据的IP地址系统。目前,此系统配置为使用IP x.x.x.x连接到代理 我想对两个不同的代理使用相同的系统S:换句话说,我想使用一种网络拆分器,它接收来自S的流量,并将其转发到x.x.x.x,以及第二个JMS代理的另一个地址y.y.y.y。系统必须完全不知道拆分操作。要求不是使用jms代理、jms代理的网络,也不是一般使用代理拓扑。这样做的原因是要足够通用,以便在接下来的步骤中尽可能管理JMS以外的协议。JMS连接使用具有相互身份验证的TCP+TLS 系统

我有一个通过JMS队列和主题生成和接收数据的IP地址系统。目前,此系统配置为使用IP x.x.x.x连接到代理

我想对两个不同的代理使用相同的系统S:换句话说,我想使用一种网络拆分器,它接收来自S的流量,并将其转发到x.x.x.x,以及第二个JMS代理的另一个地址y.y.y.y。系统必须完全不知道拆分操作。要求不是使用jms代理、jms代理的网络,也不是一般使用代理拓扑。这样做的原因是要足够通用,以便在接下来的步骤中尽可能管理JMS以外的协议。JMS连接使用具有相互身份验证的TCP+TLS

系统S由Linux和Windows服务器组成

我希望在软件级别这样做,以应对网络和服务器的虚拟化

实现这一目标的最佳策略是什么?是否有您推荐的特定软件/库,最好是java


谢谢

这是一个好问题,但图书馆的建议往往过于主观。也就是说,这是一个很好的问题。你能同时打开与X和Y的连接吗?当s收到一个数据包时,它可以将其发送给任何一个?谢谢@AnubianNoob。嗯,我想打开到X或Y的连接,但不同时打开到X和Y的连接。这是由运行在S中的软件的运行方式决定的,它只能处理一个代理。如果一次只能打开一个连接,那么您就必须这样做,对吗?S获取一个数据包,打开到X或Y的连接,然后发送该数据包。没有两个连接,你真的不能做任何其他事情…好吧,我的想法是在S和{X,Y}之间使用一种sw路由器:类似于RouterOS的东西。我不需要像防火墙这样的高级功能:只需将来自S的流量分成两个不同的地址,来回。这有意义吗?