> 실행 순서
1. 서버 모드로 iperf3를 실행
# iperf3 -s
2. 서버 192.168.100.180 으로 시험 패킷을 전송
# iperf3 -c 192.168.100.180 -t 900
예제)
server # iperf3 -i 5 -s
client # iperf3 -i 5 -t 6000 -u -c SERVERIP
client# iperf3 -c {ip} -u --bytes 10000M --verbose
======================================================
- 서버 모드로 iperf3 실행하기
iperf3를 서버 모드로 실행하기 위해서는 -s 파라메터를 지정합니다. 서버의 성능은 대역폭 혹은 전송량으로 표기되는데-f 파라메터 뒤에 소문자 m, g, t 등을 사용하면 대역폭으로-f 파라메터 뒤에 대문자 M, G, T 등을 사용하면 전송량으로 표기합니다.
iperf2는 기본적으로 5201 포트로 수신을 합니다만다른 포트를 사용하기 위해 -p 파라메터와 포트 번호를 지정할 수도 있습니다.
- 서버 모드로 iperf3를 실행
# iperf3 -s
- 서버 모드로 iperf3를 실행하되 대역폭을 Mbps로 표기
# iperf3 -s -f m
- 서버 모드로 iperf3를 실행하되 대역폭을 Gbps로 표기
# iperf3 -s -f g
- 서버 모드로 iperf3를 실행하되 전송량 GB/sec로 표기
# iperf3 -s -f G
- 기본 포트(5201)가 아닌 지정된 포트로 서버 구동
# iperf3 -s -f g -p 1234
-----------------------------------------------------------
Server listening on 1234
-----------------------------------------------------------
클라이언트 모드로 iperf3 실행하여 시험 수행하기
서버를 구동했다면 이제 클라이언트를 구동할 차례입니다. 옵션은 서버로 쓸때와 비슷한데요접속 대상 iperf3 서버 IP를 -c 옵션으로 지정한다는 정도의 차이가 있습니다.
- 서버 192.168.100.180 으로 시험 패킷을 전송
# iperf3 -c 192.168.100.180
- 서버 192.168.100.180를 1234번 포트로 연결하여 시험 패킷을 전송
# iperf3 -c 192.168.100.180 -p 1234
- 시험 패킷을 전송하되 단위를 Mbps로 표기
# iperf3 -c 192.168.100.180 -p 1234 -f m
- 시험 패킷을 전송하되 단위를 MB/sec로 표기
# iperf3 -c 192.168.100.180 -p 1234 -f M
iperf3는 TCP 시험을 수행합니다.
이때는 다음과 같이 -u 옵션을 사용하면 됩니다.
서버는 -u 옵션을 사용하지 않아도 되고, 클라이언트에서만 -u 옵션을 사용하면 됩니다.
---------------------------------------------------------------------------------------------------------
$ iperf3 -c 192.168.100.180 -p 1234 -f M -u
Connecting to host 192.168.100.180, port 1234
[ 4] local 192.168.100.180 port 32888 connected to 192.168.100.180 port 1234
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 116 KBytes 0.11 MBytes/sec 82
[ 4] 1.00-2.00 sec 129 KBytes 0.13 MBytes/sec 91
.........생략
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 1.24 MBytes 0.12 MBytes/sec 0.006 ms 0/897 (0%)
[ 4] Sent 897 datagrams
iperf Done.
---------------------------------------------------------------------------------------------------------
시험 심화 : 다중 TCP 연결 시험
현실의 서버들은 단일 TCP 연결이 아니라 다중 TCP 연결을 쓰게 됩니다. iperf3는 이런 상황을 대비하여 다중 스트림을 쏠 수 있는 기능도 제공합니다.-t 옵션을 사용하면서 뒤에 스트림 숫자를 지정해 주면 됩니다.
$ iperf3 -c 192.168.100.180 -p 1234 -f m -P 20
## 옵션 설명
Client & Server
-p, --port [port_number (default: 5201)]
서버 : 서버의 포트 번호
클라이언트 : 접속할 서버의 포트 번호
-f, --format [kmKM]
출력포맷 지정
k=kbits, m=mbits, K=KBytes, M=MBytes
-i, --interval [interval (default: 1)]
[interval] 초마다 결과 출력
-F, --file [file_name]
서버 : 받은 데이터를 버리지 않고 [file_name]이름으로 파일로 저장
클라이언트 : 의미없는 데이터가 아닌 [file_name]으로 지정된 파일을 전송
Server
-s, --server
서버 모드로 iperf3를 실행
-D, --daemon
데몬으로 서버를 실행
-1, --one-off
클라이언트가 한번 접속한 뒤 전송을 마치면 서버를 종료하는 모드
Client
-c, --client
클라이언트 모드로 iperf3를 실행
-u, --udp
UDP를 사용하여 iperf를 실행 (default: TCP)
-b, --bandwidth [bits]
세션의 대역폭을 [bits]/sec로 지정. (UDP default: 1Mbits/sec, TCP default: unlimited)
-t, --time [sec (default: 10)]
전송 시간(초) 설정
-n, --bytes [bytes]
전송할 총 [bytes]를 지정.
-M, --set-mss [MSS]
TCP [MSS(Maximum Segment Size)]를 지정
-N, --no-delay
TCP Nagle 알고리즘 off
-C, --linux-congestion [congestion_model]
TCP congestoin control 모델을 설정 (cubic 등)