자료실

iperf 대역폭 측정 프로그램

낭만리베로TM 2022. 5. 24. 12:22

iperf 대역폭 측정 프로그램

 

 

특징


TCP
대역폭 측정
MSS/MTU 크기 및 관찰된 읽기 크기를 보고합니다.
소켓 버퍼를 통한 TCP 창 크기 지원.
pthread 또는 Win32 스레드를 사용할 수 있는 경우 다중 스레드입니다. 클라이언트와 서버는 여러 개의 동시 연결을 가질 수 있습니다.


UDP
클라이언트는 지정된 대역폭의 UDP 스트림을 생성할 수 있습니다.
패킷 손실 측정
지연 지터 측정
멀티캐스트 가능
pthread를 사용할 수 있는 경우 다중 스레드입니다. 클라이언트와 서버는 여러 개의 동시 연결을 가질 수 있습니다. (Windows에서는 작동하지 않습니다.)
적절한 경우 K(킬로-) 및 M(메가-)으로 옵션을 지정할 수 있습니다. 따라서 131072바이트 대신 128K입니다.
전송할 데이터의 양이 아닌 지정된 시간 동안 실행할 수 있습니다.
보고되는 데이터 크기에 가장 적합한 단위를 선택합니다.
서버는 단일 테스트 후에 종료하지 않고 다중 연결을 처리합니다.
지정된 간격으로 주기적, 중간 대역폭, 지터 및 손실 보고서를 인쇄합니다.
서버를 데몬으로 실행합니다( 보안 데몬으로 실행 하려면 Nettest 를 확인하십시오).
서버를 Windows NT 서비스로 실행
대표적인 스트림을 사용하여 링크 계층 압축이 달성 가능한 대역폭에 어떤 영향을 미치는지 테스트하십시오.
유용한 함수 및 C++ 클래스 의 라이브러리입니다 .

 

 

명령줄 옵션환경 변수 옵션설명클라이언트 및 서버 옵션서버별 옵션클라이언트별 옵션기타 옵션

-f, --형식 [bkmaBKMA] $IPERF_FORMAT 대역폭 숫자를 인쇄할 형식을 지정하는 문자입니다. 지원되는 형식은 다음과 같습니다. 적응형 형식은 킬로와 메가 중에서 적절하게 선택합니다. 대역폭 이외의 필드는 항상 바이트를 인쇄하지만 그렇지 않으면 요청된 형식을 따릅니다. 기본값은 'a'입니다. 
참고: 여기에서는 바이트를 처리할 때 Kilo = 1024, Mega = 1024^2 및 Giga = 1024^3입니다. 일반적으로 네트워킹에서 Kilo = 1000, Mega = 1000^2, Giga = 1000^3이므로 비트를 다룰 때 이것을 사용합니다. 이것이 정말로 귀찮다면 -fb를 사용하고 계산을 수행하십시오.
-i, --간격 # $IPERF_INTERVAL 주기적 대역폭, 지터 및 손실 보고서 사이의 간격 시간(초)을 설정합니다. 0이 아니면 마지막 보고 이후 대역폭의 간격 (초)마다 보고됩니다. 0이면 정기 보고서가 인쇄되지 않습니다. 기본값은 0입니다.
-l, --len #[KM] $IPERF_LEN 읽거나 쓸 버퍼의 길이입니다. Iperf는 len 바이트 배열을 여러 번 작성하여 작동합니다 . 기본값은 TCP의 경우 8KB, UDP의 경우 1470바이트입니다. UDP의 경우 이것은 데이터그램 크기이며 IPv6 주소 지정을 사용할 때 단편화를 피하기 위해 1450 이하로 줄여야 합니다. -n  -t 옵션 도 참조하십시오 .
-m, --print_mss $IPERF_PRINT_MSS 보고된 TCP MSS 크기(TCP_MAXSEG 옵션을 통해)와 종종 MSS와 상관되는 관찰된 읽기 크기를 인쇄합니다. MSS는 일반적으로 MTU(TCP/IP 헤더의 경우 40바이트)입니다. 종종 IP 옵션의 추가 헤더 공간으로 인해 약간 더 작은 MSS가 보고됩니다. MTU에 해당하는 인터페이스 유형(이더넷, FDDI 등)도 인쇄됩니다. 이 옵션은 많은 OS에서 구현되지 않지만 읽기 크기는 여전히 MSS를 나타낼 수 있습니다.
-p, --포트 # $IPERF_PORT 서버가 수신 대기하고 클라이언트가 연결할 서버 포트입니다. 이것은 클라이언트와 서버 모두에서 동일해야 합니다. 기본값은 ttcp와 동일한 5001입니다.
-u, --udp $IPERF_UDP TCP 대신 UDP를 사용합니다. -b 옵션 도 참조하십시오 .
-w, --window #[KM] $TCP_WINDOW_SIZE 소켓 버퍼 크기를 지정된 값으로 설정합니다. TCP의 경우 TCP 창 크기를 설정합니다. UDP의 경우 데이터그램이 수신되는 버퍼일 뿐이므로 수신 가능한 가장 큰 데이터그램 크기를 제한합니다.
-B, --바인드 호스트 $IPERF_BIND 이 시스템의 주소 중 하나인 host 에 바인딩 합니다. 클라이언트의 경우 아웃바운드 인터페이스를 설정합니다. 서버의 경우 수신 인터페이스를 설정합니다. 이것은 다중 네트워크 인터페이스가 있는 멀티홈 호스트에서만 유용합니다. UDP 서버 모드의 Iperf의 경우 이는 멀티캐스트 그룹에 바인딩하고 가입하는 데에도 사용됩니다. 멀티캐스트의 경우 224.0.0.0 ~ 239.255.255.255 범위의 주소를 사용하십시오. -T 옵션 도 참조하십시오 .
-C, --호환성 $IPERF_COMPAT 호환성 모드를 사용하면 이전 버전의 iperf와 함께 사용할 수 있습니다. 이 모드는 상호 운용성을 위해 필요하지 않지만 적극 권장됩니다. 대표적인 스트리밍을 사용하는 경우 1.7 서버가 충돌하거나 원하지 않는 연결 시도가 발생할 수 있습니다.
-M, --mss #[KM} $IPERF_MSS TCP_MAXSEG 옵션을 통해 TCP MSS(최대 세그먼트 크기) 설정을 시도합니다. MSS는 일반적으로 MTU(TCP/IP 헤더의 경우 40바이트)입니다. 이더넷의 경우 MSS는 1460바이트(1500바이트 MTU)입니다. 이 옵션은 많은 OS에서 구현되지 않습니다.
-N, --노드 지연 $IPERF_NODELAY TCP 지연 없음 옵션을 설정하여 Nagle 알고리즘을 비활성화합니다. 일반적으로 이것은 텔넷과 같은 대화형 응용 프로그램에 대해서만 비활성화됩니다.
-V (v1.6 이상부터) . IPv6 주소에 바인딩
서버 측:
$ iperf -s -V 클라이언트 측:
$ iperf -c <서버 IPv6 주소> -V
 

참고: 버전 1.6.3 이상에서는 특정 IPv6 주소를 -B 옵션으로 바인딩할 필요가 없으며 이전 1.6 버전에서는 바인딩할 필요가 없습니다. 또한 이 옵션을 사용하는 대부분의 OS에서는 IPv4 매핑된 주소를 사용하는 IPv4 클라이언트에도 응답합니다.
-s, --서버 $IPERF_SERVER 서버 모드에서 Iperf를 실행합니다.
-D (v1.2 이상부터) . 서버를 데몬으로 실행(Unix 플랫폼)
서비스를 사용할 수 있는 Win32 플랫폼에서 Iperf는 서비스로 실행을 시작합니다.
-R (Windows만 해당, v1.2 이상부터) . Iperf 서비스를 제거합니다(실행 중인 경우). 
-o (Windows만 해당, v1.2 이상부터) . 지정된 파일로 출력을 리디렉션합니다. 
-c, --클라이언트 호스트 $IPERF_CLIENT Iperf가 서버 모드에 있는 경우 -c로 호스트를 지정하면 지정된 호스트 에 대해 Iperf가 수락할 연결이 제한 됩니다. UDP에서는 잘 작동하지 않습니다.
-P, --병렬 # $IPERF_PARALLEL 닫기 전에 서버에서 처리할 연결 수입니다. 기본값은 0(연결을 영원히 수락한다는 의미)입니다.
-b, --대역폭 #[KM] $IPERF_BANDWIDTH 전송할 UDP 대역폭(비트/초)입니다. 이것은 -u 옵션을 의미합니다. 기본값은 1Mbit/초입니다.
-c, --클라이언트 호스트 $IPERF_CLIENT 호스트 에서 실행 중인 Iperf 서버에 연결하여 클라이언트 모드에서 Iperf를 실행 합니다 .
-d, --dualtest $IPERF_DUALTEST 이중 테스트 모드에서 Iperf를 실행합니다. 이렇게 하면 서버가 -L 옵션 에 지정된 포트의 클라이언트에 다시 연결됩니다 (또는 기본적으로 클라이언트가 서버에 연결된 포트로 설정됨). 이것은 즉시 수행되므로 테스트를 동시에 실행합니다. 대체 테스트를 원하면 -r을 시도하십시오.
-n, --num #[KM] $IPERF_NUM 전송할 버퍼 수입니다. 일반적으로 Iperf는 10초 동안 보냅니다. -n 옵션은 이것을 무시하고 시간에 관계없이 len 바이트 배열을 num 번 보냅니다. -l  -t 옵션 도 참조하십시오 .
-r, --tradeoff $IPERF_TRADEOFF 절충 테스트 모드에서 Iperf를 실행합니다. 이렇게 하면 서버가 -L 옵션 에 지정된 포트의 클라이언트에 다시 연결됩니다 (또는 기본적으로 클라이언트가 서버에 연결된 포트로 설정됨). 이것은 클라이언트 연결 종료 후에 수행되므로 테스트를 번갈아 실행합니다. 동시 테스트를 원하면 -d를 시도하십시오.
-t, --time # $IPERF_TIME 전송할 시간(초)입니다. Iperf는 일반적으로 시간 초 동안 len 바이트 배열을 반복적으로 전송하여 작동합니다 . 기본값은 10초입니다. -l  -n 옵션 도 참조하십시오 .
-L, --listenport # $IPERF_LISTENPORT 이것은 서버가 클라이언트에 다시 연결할 포트를 지정합니다. 기본적으로 클라이언트에서 서버에 연결하는 데 사용되는 포트입니다.
-P, --병렬 # $IPERF_PARALLEL 서버에 대한 동시 연결 수입니다. 기본값은 1입니다. 클라이언트와 서버 모두에서 스레드 지원이 필요합니다.
-S, --tos # $IPERF_TOS 나가는 패킷에 대한 서비스 유형입니다. (많은 라우터는 TOS 필드를 무시합니다.) '0x' 접두사가 있는 16진수, '0' 접두사가 있는 8진수 또는 10진수로 값을 지정할 수 있습니다. 예를 들어 '0x10' 16진수 = '020' 8진수 = '16' 십진수입니다. RFC 1349에 지정된 TOS 번호는 다음과 같습니다. 
-T, --ttl # $IPERF_TTL 나가는 멀티캐스트 패킷의 TTL(Time-to-Live)입니다. 이것은 본질적으로 통과할 라우터 홉의 수이며 범위 지정에도 사용됩니다. 기본값은 1, 링크 로컬입니다.
-F (v1.2 이상부터) . 대표적인 스트림을 사용하여 대역폭을 측정합니다. 예:- 
$ iperf -c <서버 주소> -F <파일 이름>
-I (v1.2 이상부터) . -F와 동일하며 stdin에서 입력합니다.
-h, --도움말   명령 요약을 출력하고 종료합니다.
-v, --버전   버전 정보를 인쇄하고 종료합니다. POSIX 스레드로 컴파일된 경우 'pthreads', Microsoft Win32 스레드로 컴파일된 경우 'win32 스레드', 스레드 없이 컴파일된 경우 '단일 스레드'를 인쇄합니다.

 

 

 

 

위 화면은 실제 테스트 화면..

 

각 구간에 각각의 노트북이나 PC를 설치해서 구간측정을 할 수 있습니다.

 

 

 

IPERF 대역폭 측정프로그램.zip
0.13MB

 

 

 

 

 

 

반응형