Ein Golang-Netzwerkdienstprogramm, das TCP/UDP-Datagram/QUIC-Nachrichten verwendet, um die Netzwerkstabilität zu erkennen.
Es ist schwierig, Netzwerkprobleme im wirklichen Leben zu erkennen.
echoping verwendet die Protokolle TCP und UDP (Datagram oder QUIC) anstelle von ICMP, das beim herkömmlichen ping verwendet wird, und sendet Nachrichten häufiger.
echoping funktioniert eher wie eine echte Netzwerkanwendung und meldet Netzwerkprobleme wie eine echte.
echoping Server mit ./echoping -listen IP:PORTechoping Clients, um den echoping -Server zu verwenden: ./echoping -connect SERVER_IP:SERVER_PORTechoping Client sendet TCP/UDP-Datagram/QUIC-Anfragen an den ServerVerwendung:
-connect string
Connect to 'tcp://ip:port/,udp://ip:port/,quic://ip:port/' (can be repeated, use comma as delimiter), or use 'ip:port' for all TCP/UDP/QUIC
-listen string
Listen both TCP and UDP on ip:port (UDP also works for QUIC)
-listen-tcp string
Listen TCP on ip:port
-listen-udp string
Listen UDP on ip:port (UDP also works for QUIC)
-loss-ratio string
The simulated UDP loss ratio on client side (must be used with "-connect"). "0.1"" means 10% packet loss, "0.1,0.2" means 0.1 for sending and 0.2 for receiving
-payload-size int
The payload size of ping request (default 1300)
-ping-interval duration
The interval between ping requests sent by client (default 20ms)
Serverausgabe:
2020/12/26 01:24:54 server stat udp:127.0.0.1:52032 (20201226-012449.458182): pps=10.0, tmperr=0
2020/12/26 01:24:54 server stat tcp:127.0.0.1:56524 (20201226-012449.458231): pps=10.0, tmperr=0
Client-Ausgabe:
2020/12/26 01:24:54 client stat udp:127.0.0.1:12345 (20201226-012449.458182): pps=11.0, recv=0.01MB/s, loss=0.0%, round-trip time (ms): avg=0.4, min=0.2, max=0.6, stddev=0.1
2020/12/26 01:24:54 client stat tcp:127.0.0.1:12345 (20201226-012449.458231): pps=11.0, recv=0.01MB/s, loss=0.0%, round-trip time (ms): avg=0.3, min=0.2, max=0.4, stddev=0.1
pps bedeutet „Ping pro Sekunde“loss von TCP und QUIC beträgt (natürlich) immer 0 % ./echoping -listen :12345 -connect 127.0.0.1:12345
Simulieren Sie verzögerte und verworfene Pakete unter Linux: https://stackoverflow.com/questions/614795/simulate-delayed-and-dropped-packets-on-linux