qping-5g

qping is a ping utility to test the QUIC protocol available in go and Swift.
qping support RFC 9000 QUIC: A UDP-Based Multiplexed and Secure Transport
Available implementation in go and swift help to test 5G networks low latency using QUIC protocols, measure RTT, MTU and Bandwith. go implementations are suitable for use in machines running Linux or macOS while swift implementation is helpfull to do the test over iOS devices with 5G connectivity as well as macOS

macOS Version:

iOS Version:

qping server mode

In «server» mode qping act as a server listening for QUIC connection. Open a new connection for each client and listen for the request, the server reply to each client request

Use: qping server Example: ./qping server 25450

Start a quic server to listen into the specified port, default port is 25450

Example: ./qping server

– macOS – Swift

Developed version with Swift language using Apple library Network and NWProtocolQUIC. This version run over macOS 12.0+

– Linux – Go

Developed version with go language. This version use quicgo library. This version run over Linux servers.

qping client mode

qping is a client written in go and swift to connect to a server using QUIC. The client send requests to the server and receive from the server answers to measure rtt. You need a qping acting as server to reply to client requests.

Use: qping <ip_server>: Example: ./qping 192.168.2.70:30000

– macOS – Swift

Developed version with Swift language using Apple library Network and NWProtocolQUIC. This version run over macOS 12.0+

– iOS – Swift

Developed version with Swift language using Apple library Network and NWProtocolQUIC. This version run over iOS 15+

– Linux – Go

Developed version with go language. This version use quicgo library. This version run over Linux servers.

CA Certificate

You must change the CA certificate and use your own. You can follow this link to read whow to do it: https://developer.apple.com/documentation/network/creating_an_identity_for_local_network_tls

#L4S

L4S to decrease latency time, activate L4S in macOS or iOS

macos: % sudo defaults write -g network_enable_l4s -bool true % sudo defaults read network_enable_l4s

iOS iphone: Activade in settings –> Development –> L4S

Here you can find how to test L4S with apple deviceshttps://developer.apple.com/documentation/network/testing_and_debugging_l4s_in_your_app