최근 네트워크 성능지표 측정을 위한 툴인 mtr과 IPerf3를 사용할 일이 생겨 각각에 대해 용도와 사용방법 등에 대해 기재해놓고자 한다.
1. mtr
개요
My Traceroute의 약자로, traceroute와 ping을 합쳐놓은 네트워크 진단 툴이다.
traceroute와 같이 목적지까지 가기 위해 거쳐가는 network hop을 표시해주면서, 각각의 hop 마다 기본적인 통계치를 표시해준다. (Packet Loss, Send Count, Latency)
traceroute와 같은 이러한 네트워크 추적 툴은 ICMP Time Exceed packets이 돌아오는 것을 보거나, ICMP Echo Reply packet을 통해 각 hop에 위치한 라우터의 IP를 가져올 수 있다. TCP로 traceroute하는 경우는 SYN Packet이 주로 사용된다고 한다.
설치
설치방법은 윈도우는 winmtr을 설치하면 되고, linux의 경우 각각의 배포판에 맞는 패키지 관리방법에 따라 mtr package를 설치해주면 된다. (상세 설치방법은 인터넷에 많다)
사용방법
WinMTR : Host에 목적지 IP를 입력하여 실행
mtr : mtr [destination ip], tcp protocol 수행 등 다양한 옵션이 제공되니 help 또는 man page를 참조할 것
기타, 결과분석(Packet Loss, Network Latency)
winmtr은 ICMP 기반으로만 제공이 된다. 만약 특정 장비에서 ICMP Protocol을 막아두었거나 ICMP Echo Reply를 막아놓았을 경우에는 응답없음이 표시되게 되므로, 이러한 경우에는 TCP 기반의 툴을 사용하도록 하자. (tracetcp, tcptraceroute 등)
mtr 결과값 해독에 대해 잘 작성해둔 블로그가 있어 해당 내용을 발췌하고자 한다.
Packet Loss
일반적으로 Packet Loss는 목적지에 도달하지 못한 패킷의 비율을 추적한다. 일반적으로 하나의 hop의 packet loss는 문제가 되지 않으며, 이외에는 아래와 같은 원인으로 인해 문제가 발생할 수 있다.
- Single occurrence of packet loss : ISP rate limits 또는 route CPU busy로 인해 발생.
- Minimal packet loss from ISP rate-limiting : 전체적으로 packet loss가 미미하게 발생하는 경우.
- Significant and pervasive packet loss : 여러 Hop에 걸쳐 연속적으로 Packet Loss가 발생하는 경우. 이 경우에는 추가적인 분석이 필요하다.
Network latency
일반적으로는 hop마다 대기시간이 증가하나, 특정경로부터 최종 목적지까지 latency가 급증하는 경우는 해당 경로부터 잠재적으로 문제가 있을 가능성이 높다.
2. iPerf3
개요
iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks.
For each test it reports the bandwidth, loss, and other parameters. (iPerf3 공식 홈페이지 참조)
설치
해당 URL에서 다운받으면 된다. 단, Client와 Server 모두 다운되어야 하며 동일한 버전을 쓰는 것이 권장된다.
(+ iPerf3는 iPerf2와 호환되지 않는다)
사용방법
server와 client 간에는 테스트에 사용할 port가 오픈되어 있어야 한다. (default : TCP 5201)
server에서 아래와 같이 iperf3를 서버 모드로 실행시키고
iperf3 -s
client에서는 아래와 같이 client 모드로 기동시켜서 테스트를 진행한다.
iperf3 -c [server_ip]
위의 명령어를 수행하면 client → server 로 bandwidth를 측정한 것이므로, server → client 로도 성능을 측정하기 위해서는 아래와 같이 명령어를 수행한다.
iperf3 -c [server_ip] -R
위 사용사례 외에도 정말 많은 옵션이 있으므로, 공식 홈페이지를 참조한다.
결과분석
해당 도큐먼트에 따르면 bandwidth란 maximum transfer throughput capacity of a network로 정의된다. 즉, 한 번에 주고받을 수있는 데이터의 양을 측정 한 것이라고 할 수 있다.
즉, iPerf3가 제공하는 가장 기본적인 결과값은 Sender에서 Receiver로 전송 시의 Bandwidth이며, 여기에 부가적으로 Retr(Retry) 및 Cwnd(Congestion Window, 송신자가 보낼 수 있는 Segment의 크기)를 표현해준다고 할 수 있다.
※ Bandwidth는 한번에 주고 받을 수 있는 크기일뿐, 실제로 처리된 처리량인 Throughput이 아니다. Throughput은 지정된 기간 내에 출발지에서 목적지로 전송할 수 있는 데이터의 양을 나타낸다. 즉, 얼마나 많은 패킷이 시간 내에 목적지에 성공적으로 도달했는 지를 나타내는 지표로, Latency와 직접적인 연관이 있다.
Data throughput meaning is a practical measure of actual packet delivery while bandwidth is a theoretical measure of packet delivery.
참고문서
aws.amazon.com/ko/premiumsupport/knowledge-center/vpc-fix-network-issues-ec2-windows/
EC2 Windows 인스턴스와 온프레미스 호스트 간의 네트워크 성능 문제 해결
참고: 문제 해결을 시작하기 전에 소스 및 대상 IP 주소를 확인합니다. 대상이 URL인 경우, nslookup 명령을 사용하여 IP 주소를 확인합니다. 일부 URL은 동적 IP 주소를 사용하므로 IP 주소가 변경될
aws.amazon.com
How does "traceroute over TCP" work, what are the risks, and how can it be mitigated?
There is a utility called tcptraceroute, and this enhancement called intrace that is used just like a standard traceroute, but it works over TCP. How is the syn flag in TCP used to achieve tracero...
security.stackexchange.com
'OS Management > Windows' 카테고리의 다른 글
HeidiSQL Table Column Export and Import (0) | 2021.03.16 |
---|---|
Troubleshooting - Iometer 사용법 (0) | 2021.01.15 |