Iperf adalah alat pengukur dan pengoptimalan kinerja jaringan.
Aplikasi iperf adalah program lintas platform yang dapat memberikan metrik kinerja jaringan standar. Iperf terdiri dari klien dan server yang dapat menghasilkan aliran data untuk menilai throughput antara dua titik akhir dalam satu atau kedua arah.
Output iperf tipikal mencakup laporan waktu yang dicap dari jumlah data yang diangkut dan throughput yang diukur.
Iperf2
Iperf2 adalah alat pengukuran responsif dan throughput jaringan yang mendukung TCP dan UDP. Salah satu tujuannya adalah untuk menjaga agar basis kode iperf berfungsi pada berbagai platform dan sistem operasi.
Ini adalah arsitektur multi-threaded yang tumbuh secara proporsional dengan jumlah CPU atau inti dalam suatu sistem yang dengan hal tersebut dapat memperoleh dan melaporkan kinerja jaringan menggunakan strategi berdampak tinggi dan rendah.
Fitur Iperf2
- Mendukung interval laporan yang lebih kecil (100 us atau lebih besar, konfigurasikan –enable-fastsampling untuk keluaran waktu interval presisi tinggi)
- Mendukung SO_RCVTIMEOUT untuk laporan server terlepas dari tidak ada paket
- Dukung SO_SNDTIMEO saat mengirim sehingga penulisan soket tidak akan memblokir di luar -t atau -i
- Mendukung SO_TIMESTAMP untuk cap waktu paket tingkat kernel
- Mendukung latensi akhir/akhir dalam format mean/min/max/stdev (UDP) (-e diperlukan) (mengasumsikan jam klien dan server disinkronkan, misalnya dengan Precision Time Protocol ke osilator OCXO per Spectracom)
- Mendukung aliran terbatas tingkat TCP (melalui -b) menggunakan ember token yang disederhanakan
- Mendukung paket per detik (UDP) melalui pps sebagai unit, (mis. -b 1000pps)
- Tampilkan PPS di laporan klien dan server (UDP) (-e diperlukan)
- Mendukung penjadwal waktu nyata sebagai opsi baris perintah (–waktu nyata atau -z, mengasumsikan hak pengguna yang tepat)
- Tampilkan waktu loop target di header klien awal (UDP)
- Tambahkan dukungan lokal tautan ipv6 (mis. iperf -c fe80::d03a:d127:75d2:4112%eno1)
- Payload ipv6 UDP default ke 1450 byte per satu frame ethernet per payload
- Dukungan lalu lintas isochronous (melalui –isochronous) dan frame burst dengan lalu lintas bit rate (vbr) variabel dan id bingkai
- Dukungan multicast SSM untuk v4 dan v6 menggunakan -H atau -ssm-host, mis. iperf -s -B ff1e::1 -u -V -H fc00::4
- Histogram latensi untuk paket dan bingkai (mis. –udp-histogram=10u,200000, 0,03, 99,97)
- Dukungan untuk pengiriman berjangka waktu mulai per –txstart-time <unix.epoch time>
- Dukungan untuk klien yang meningkatkan ip tujuan dengan -P melalui –incr-dstip
- Dukungan untuk memvariasikan beban yang ditawarkan menggunakan distribusi normal log di sekitar mean dan standar deviasi (per -b <mean>,<stdev>),
- Honor -T (ttl) untuk unicast dan multicast
- UDP menggunakan nomor urut 64 bit (meskipun masih beroperasi dengan 2.0.5 yang menggunakan nomor seq 32b.)
Sistem operasi yang didukung Iperf2
- Linux, Windows 10, Windows 7, Windows XP, MacOS, Android dan beberapa OS set-top box.
Download Iperf2
Iperf3
Aplikasi Iperf3 adalah penulisan ulang iperf dari awal untuk membuat basis kode yang lebih kecil dan lebih sederhana.
iPerf3 adalah alat untuk mengukur bandwidth maksimum yang mungkin pada jaringan IP secara real time. Hal ini memungkinkan Anda untuk menyempurnakan berbagai pengaturan waktu, buffer, dan protokol (TCP, UDP, SCTP dengan IPv4 dan IPv6). Dan juga akan memberikan laporan bandwidth, kerugian, dan metrik lainnya untuk setiap pengujian.
Fitur Iperf3
- TCP dan SCTP (Ukur bandwidth, Laporkan ukuran MSS/MTU dan ukuran baca yang diamati, Dukungan untuk ukuran jendela TCP melalui buffer soket).
- UDP (Klien dapat membuat aliran UDP dari bandwidth yang ditentukan, Mengukur kehilangan paket, Ukur delay jitter, Mampu multicast)
- Klien dan server dapat memiliki beberapa koneksi simultan (opsi -P).
- Server menangani beberapa koneksi, daripada berhenti setelah satu pengujian.
- Dapat berjalan untuk waktu yang ditentukan (opsi -t), daripada sejumlah data yang akan ditransfer (opsi -n atau -k).
- Cetak periodik, bandwidth menengah, jitter, dan laporan kerugian pada interval tertentu (opsi-i).
- Jalankan server sebagai daemon (opsi -D)
- Gunakan aliran representatif untuk menguji bagaimana kompresi lapisan tautan memengaruhi bandwidth yang dapat dicapai (opsi -F).
- Sebuah server menerima satu klien secara bersamaan (iPerf3) beberapa klien secara bersamaan (iPerf2)
- Abaikan TCP slowstart (opsi -O).
- Tetapkan bandwidth target untuk UDP dan (baru) TCP (opsi -b).
- Setel label aliran IPv6 (opsi -L)
- Setel algoritma kontrol kemacetan (opsi -C)
- Gunakan SCTP daripada TCP (–sctp option)
- Output dalam format JSON (opsi -J).
- Tes pembacaan disk (server: iperf3 -s / klien: iperf3 -c testhost -i1 -F nama file)
- Tes penulisan disk (server: iperf3 -s -F nama file / klien: iperf3 -c testhost -i1)
Sistem operasi yang didukung Iperf3
- Windows, Linux, Android, MacOS X, FreeBSD, OpenBSD, NetBSD, VxWorks, Solaris
Download Iperf3
Artikel Menarik Lainnya
Iperf2 vs Iperf3
Feature | Iperf 2 | Iperf 3 |
Traffic types | ||
TCP traffic | Y | Y |
UDP traffic | Y | Y |
SCTP traffic | N | Y |
IPv4 | Y | Y |
IPv6 | Y | Y |
Multicast traffic (including SSM) | Y | N |
TCP connect only | Y | N |
Layer 2 checks | Y | N |
Output options | ||
Human format | Y | Y |
JSON output | N | Y |
CSV (basic only) | Y | N |
Hide IP addresses in output (v4 only) | Y | N |
Client side server reports | N | Y |
Traffic profiles | ||
Fair queue rate limiting | Y | Y |
Write rate limiting | Y | Y |
Read rate limiting (TCP) | Y | N |
Bursts | Y | Y |
Isochronous (video) TCP/UDP | Y | N |
Reverse roles | Y | Y |
Bidirectional traffic | Y | Y |
Full duplex same socket | Y | N |
TCP bounceback w/optional working load(s) | Y | N |
Low duty cycle traffic with server side stats | Y | N |
TCP_NOTSENT_LOWAT with select() (using the –tcp-write-prefetch option) | Y | N |
TCP near congestion (experimental) | Y | N |
Metrics | ||
Throughput | Y | Y |
Responsiveness per second (RPS) | Y | N |
UDP packets (total/lost) | Y | Y |
UDP Jitter | Y | Y |
Packet latencies UDP | Y | N |
Frame/burst latencies TCP/UDP | Y | N |
Write-to-read latencies TCP | Y | N |
Network power (latency/throughput) | Y | N |
InP – Bytes in queues (Little’s law) | Y | N |
TCP CWND | Y | N |
TCP retries | Y | Y |
TCP RTT | Y | Y |
Send side write delay histograms | Y | N |
UDP packets per second | Y | N |
Latency histograms | Y | N |
TCP connect times | Y | N |
TCP response per interval | Y | N |
Sum only output | Y | N |
Other | ||
Multi-threaded design | Y | N |
Parallel -P technique | Threads | Processes |
Real-time scheduling | Y | N |
-t support for server | Y | N |
TAP virtual interface support (receive only) via –tap-dev | Y | N |
CPU affinity | N | Y |
Zero copy | N | Y |
IPv6 Flow label | N | Y |
–omit option (skip first samples per time in seconds) | N | Y |
Incr dst ip option with -P | Y | N |
Incr dst ip option with -P | Y | N |
Incr dst port option with -P | Y | N |
Incr src port option with -P | Y | N |
Device or interface binding | Y | Y |
Source port binding | Y | N |
Scheduled tx start time | Y | N |
Delay tx start time | Y | N |
User password | N | Y |
Permit keys | Y (TCP only) | N |
UDP stateless | Y | N |
Python framework (asyncio) | Y (flows) | N |
Testing WiFi thru 100G | Y | N/A |
Scaling to 1000+ threads | Y | N/A |