kping is a tool to test connectivity and measure delays between two end points. It can use connections with TCP, UDP or UDP/QUIC.
kping has been programmed using different languages to check interoperatibility between different libraries and platforms.
Swift version:
developed with swift language using foundation and network framework for the quic protocol.
Available cli and gui application.
Run only over macOS / iOS devices, it is not available in Linux because network framework is not available outside apple devices.
Swift gui macOS:

Swift gui iOS:

Swift cli:
Go version:
Run over unix devices (Linux, macOS), it use quic-go library for the quic protocol.
Available only cli application.
5G testing:
kping 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
Kping is used to verify connectivity in kubernetes clusters, it permit to test in an easy way different types of protocols, port opened, services, etc.
kping 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: kping server <port>
Example: ./kping server 25450
Start a quic server to listen into the specified port, default port is 25450
kping 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: kping <ip_server:port>
Example: ./kping 192.168.2.70:25450
Notes for macOS/iOS
CA Certificate for macOS/iOS
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 for macOS/iOS
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