如何使用 IPerf3 和多个 socat 代理测量网络吞吐量

如何使用 IPerf3 和多个 socat 代理测量网络吞吐量

我有一个充当“奇怪的” TLS 代理的特定设备,我想使用 IPerf3 测量它的吞吐量。

被测设备是“Peter”。它有一个 API 可以触发与两个 TLS 服务器的连接。它会将负载从一个通道代理到另一个通道。

我可以在“Alice”上运行 IPerf,并在它之前将 socat 作为 TLS 代理。在“Bob”上运行 TLS 服务器到 TCP 服务器(最奇怪的部分),但它失败并显示“iperf3:错误 - 无法连接流:连接被拒绝”。如果我在两端使用 netcat 而不是 iperf,一切都会按预期工作。

我尝试测试没有“Peter”的设置,以便直接从 Alice 连接到 Bob,但也没有成功。有什么想法吗?

这里没有彼得:

iperf3 -s -p 15001 --verbose -d
socat -v -v -d -d -b 131072 -g openssl-listen:8443,reuseaddr,fork,cert=server.crt,key=server.key,verify=0,ignoreeof       tcp-listen:16000,reuseaddr,ignoreeof
socat -v -v -d -d -b 131072 -g tcp4:127.0.0.1:15001,ignoreeof   openssl-connect:127.0.0.1:8443,cert=server.crt,key=server.key,verify=0,cafile=server.crt,ignoreeof
iperf3 -c 127.0.0.1 -4 -p 16000 --verbose -t 5 --forceflush -d -Z

设置:

                                                                                                        
             Alice                               Peter                                Bob               
                                                                                                        
                                                                                                        
   IPerf  ┌──────────┐  TLS             TLS   ┌────────────┐  TLS            TLS  ┌───────────┐   IPerf 
   Server │          │ Server     2    Client │            │ Client    3    Server│           │   Client
          │          ├────────────────────────┤            ├──────────────────────┤           │         
          │          │                        │            │                      │           │         
          └──────────┘                        └────────────┘                      └───────────┘         
             socat                                   ▲                               socat              
           tcp <> tls-server                         │                            tls-server  tcp-server
                                                  1  │                                                  
                                                                                                        
                                              Command to connect                                        
                                              Alice and Bob via 2 TLS channels                          

没有彼得:

           Alice                                Bob                
                                                                   
                                                                   
 IPerf  ┌──────────┐  TLS              TLS  ┌───────────┐   IPerf  
 Server │          │ Client           Server│           │   Client 
        │          ├────────────────────────┤           │          
        │          │                        │           │          
        └──────────┘                        └───────────┘          
           socat                               socat               
         tcp <> tls-client                  tls-server  tcp-server 

答案1

我认为你不能这样做。iPerf 在服务器模式下运行,而在客户端模式下运行。因为它使用自己的守护进程和进程,所以它不能绑定到另一个守护进程或进程。

您只能测量整个服务器的网络吞吐量

相关内容