echoping
v0.3.0
네트워크 안정성을 감지하기 위해 TCP/UDP-데이터그램/QUIC 메시지를 사용하는 golang 네트워크 유틸리티입니다.
실제 생활에서 네트워크 문제를 감지하는 것은 어렵습니다.
echoping
기존 ping
에서 사용하는 ICMP 대신 TCP 및 UDP(Datagram 또는 QUIC) 프로토콜을 사용하고 메시지를 더 자주 보냅니다.
echoping
실제 네트워크 응용 프로그램처럼 작동하며 네트워크 문제를 실제 문제처럼 보고합니다.
./echoping -listen IP:PORT
로 echoping
서버를 시작합니다.echoping
서버를 사용하려면 echoping
클라이언트를 시작하세요. ./echoping -connect SERVER_IP:SERVER_PORT
echoping
클라이언트는 서버에 TCP/UDP-데이터그램/QUIC 요청을 보냅니다.용법:
-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)
서버 출력:
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
클라이언트 출력:
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
"초당 핑"을 의미합니다.loss
항상 0%입니다(물론). ./echoping -listen :12345 -connect 127.0.0.1:12345
Linux에서 지연 및 삭제된 패킷 시뮬레이션: https://stackoverflow.com/questions/614795/simulate-delayed-and-dropped-packets-on-linux