TCP 多路复用或代理

网络工程 tcp
2022-03-04 21:01:48

好的,TCP一个多路复用协议……我有几个应用程序需要连接到一个只接受 16 个并发 TCP 连接的设备。

我完全控制应用程序和它们之间的网络以及在此处输入预格式化文本的设备...

我可以在我的应用程序和我的设备之间放置什么来一方面接受超过 16 个连接,另一方面仍然限制为 16 个连接?

+--------+                         +-----+
| App 1  |---(10cnx on tcp/1234)---|     |
+--------+                         |     |                         +-----+
                                   | ??? |---(16cnx on tcp/1234)---| HSM |
+--------+                         |     |                         +-----+
| App 2  |---(10cnx on tcp/1234)---|     |
+--------+                         +-----+

对我来说似乎不可能,但在之后,我想知道......

2个回答

我可以在我的应用程序和我的设备之间放置什么来一方面接受超过 16 个连接,另一方面仍然限制为 16 个连接?

理解相关应用协议的应用级网关。

假设 TCP 连接携带某种请求/响应协议,网关将需要识别每个请求和响应的开始和结束,合并来自不同客户端的请求流以将它们发送到设备,并以某种方式跟踪哪个请求属于哪个客户端,因此它可以将响应发送回正确的客户端。

您将需要应用程序协议逻辑。

做到这一点的一种方法是将其构建为 HTTP 应用程序.. 如果你这样做了你的??? 盒子可以是一个 HTTP 中介,它在背面使用 HTTP/2。那么你只需要在那一侧有一个连接(并且你可以在 http/2 中任意复用活动会话)。