Memahami Batas Performa Aliran Tunggal TCP
Kalkulator Latensi Bandwidth Jaringan adalah alat online gratis yang menghitung batas performa dunia nyata dari satu aliran TCP berdasarkan kondisi jalur jaringan. Dengan memasukkan kecepatan tautan, waktu pulang-pergi, dan ukuran transfer, Anda dapat langsung mengidentifikasi bottleneck aktif yang membatasi koneksi Anda, melihat throughput TCP yang diharapkan, dan melihat perkiraan total waktu transfer.
Satu aliran TCP menghadapi tiga batas independen, dan batas terendah di antara ketiganya yang akan menentukan hasil akhirnya. Memahami bagaimana batas-batas ini berinteraksi sangat penting untuk mendiagnosis masalah performa jaringan pada tautan berkecepatan tinggi atau berlatensi tinggi.
Parameter Input Jaringan dan TCP
Untuk melakukan kalkulasi, alat ini memerlukan beberapa parameter input yang dikonfigurasi oleh pengguna:
- Kecepatan tautan: Lompatan (hop) paling lambat pada jalur — sering kali merupakan kecepatan terukur dari paket Anda. Input ini harus lebih besar dari nol.
- Waktu pulang-pergi (RTT): Waktu ping ke ujung jauh — gunakan nilai terbesar yang Anda harapkan saat berada di bawah beban. Nilai ini harus lebih besar dari nol.
- Ukuran data: Muatan yang akan dipindahkan — berkas, cadangan, atau kumpulan data. Nilai ini harus lebih besar dari nol.
- Jendela penerimaan: Byte yang dapat disangga oleh penerima. Nilai ini harus lebih besar dari nol dan tidak boleh melebihi 1,073,725,440 byte. Jika dikosongkan, alat mengasumsikan tidak ada batas jendela.
- MSS (byte): Byte muatan per paket. Input ini harus berupa bilangan bulat antara 1 dan 65,495. Jika dikosongkan, overhead dan kehilangan paket akan diabaikan.
- Kehilangan paket (%): Probabilitas rata-rata kehilangan paket. Nilainya harus berada di antara 0 dan 100 persen. Jika dikosongkan atau diisi 0, batas kehilangan paket diabaikan.
- Desimal yang ditampilkan: Mengontrol presisi desimal dari nilai keluaran.
Antarmuka menyediakan tombol Muat contoh untuk mengisi bidang dengan data sampel, serta tombol Bersihkan untuk mereset semua input.
Hasil Perhitungan Throughput dan Waktu Transfer
Setelah data dimasukkan, alat akan menampilkan hasil kalkulasi pada bagian Throughput dan waktu transfer:
- Throughput TCP yang diharapkan: Menampilkan throughput efektif yang disertai sub-label indikator bottleneck aktif, yaitu "dibatasi oleh
‹constraint›". Batas ini secara dinamis dinamai sebagai kapasitas tautan, jendela penerimaan, atau kehilangan paket. - Waktu transfer
- Waktu untuk byte pertama (1 RTT)
- Waktu transfer massal
- Produk bandwidth-delay
- Jendela untuk memenuhi jalur
- Throughput terbatas jendela
- Throughput terbatas kehilangan paket (Mathis)
- Batas tautan setelah overhead
- Efisiensi protokol
Tombol Salin hasil juga tersedia untuk menyalin seluruh data hasil perhitungan ke papan klip Anda.
Rumus dan Substitusi Perhitungan
Alat ini menggunakan rumus-rumus standar jaringan berikut untuk menghasilkan kalkulasi:
- Formula Utama:
throughput = min(laju × eff, window ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = laju × RTT - Efisiensi protokol:
Efisiensi protokol = MSS ÷ (MSS + 78 B) = ‹mss› ÷ ‹frame› = ‹eff› (header paket 40 B + overhead kabel 38 B) - Batas tautan:
Batas tautan = laju × efisiensi = ‹rate› × ‹eff› = ‹value› - BDP:
BDP = laju × RTT = ‹rate› × ‹rtt› = ‹bdp› = ‹bytes› - Jendela untuk memenuhi jalur:
Jendela untuk memenuhi jalur = BDP ÷ 8 = ‹bdp› → ‹window› - Batas jendela:
Batas jendela = jendela ÷ RTT = ‹window› ÷ ‹rtt› = ‹value› - Batas kehilangan (Mathis):
Batas kehilangan (Mathis) = MSS ÷ RTT ÷ √p = ‹mss› ÷ ‹rtt› ÷ √‹p› = ‹value› - Throughput yang diharapkan:
Throughput yang diharapkan = batas terendah = ‹value› → dibatasi oleh ‹constraint› - Waktu transfer:
Waktu transfer = RTT + 8 × ukuran ÷ throughput = ‹rtt› + 8 × ‹size› ÷ ‹throughput› = ‹time›
Aturan Teknis dan Batasan Model
Dalam melakukan estimasi, kalkulator ini menerapkan beberapa aturan dan batasan model berikut:
- Konvensi Unit: Semua unit menggunakan basis desimal (misalnya, 1 kbit = 1,000 bit, 1 MB = 1,000,000 byte). Pengelola berkas sistem operasi umumnya menggunakan unit biner berbasis 1024 (di mana berkas "100 MB" sebenarnya adalah 100 MiB, atau sekitar 104.86 MB desimal).
- Overhead Protokol: Pemodelan overhead didasarkan pada standar Ethernet, dengan menambahkan 78 byte per paket (terdiri dari 40 byte header TCP/IP dan 38 byte overhead fisik kabel).
- Model Kehilangan Mathis: Model Mathis mengasumsikan kehilangan paket yang tersebar merata dan independen. Model ini hanya andal untuk tingkat kehilangan di bawah 1%. Jika kehilangan paket melebihi 1%, alat akan menampilkan catatan sistem "Kehilangan paket di atas 1% berada di luar rentang andal model Mathis — perlakukan batas kehilangan paket sebagai perkiraan yang optimis."
- Skala Jendela TCP (RFC 7323):
- Batas maksimum jendela TCP tanpa skala adalah 65,535 byte. Jika jendela yang diperlukan untuk memenuhi jalur melebihi nilai ini, alat menampilkan catatan "Memenuhi jalur ini membutuhkan jendela
‹window›— di atas batas maksimum tanpa skala sebesar 65,535 byte, sehingga kedua ujung harus menegosiasikan skala jendela TCP (RFC 7323)." - Batas absolut jendela yang dapat dinegosiasikan melalui skala jendela RFC 7323 adalah 1,073,725,440 byte. Jika kebutuhan jendela melebihi batas ini, alat menampilkan catatan "Memenuhi jalur ini membutuhkan
‹window›— melampaui jendela terbesar yang dapat dinegosiasikan oleh TCP (1,073,725,440 byte). Aliran tunggal pada jalur ini tidak akan pernah melebihi‹value›." - Jika peningkatan jendela dapat mengoptimalkan transfer, alat menampilkan catatan "Meningkatkan jendela penerimaan menjadi
‹window›akan memungkinkan transfer ini mencapai hingga‹value›."
- Batas maksimum jendela TCP tanpa skala adalah 65,535 byte. Jika jendela yang diperlukan untuk memenuhi jalur melebihi nilai ini, alat menampilkan catatan "Memenuhi jalur ini membutuhkan jendela
- Pengecualian Model: Perhitungan mengasumsikan keadaan stabil dari satu aliran TCP tunggal. Faktor dunia nyata seperti fase slow start TCP, penyesuaian kontrol kemacetan, penerima yang lambat, dan jabat tangan TLS berada di luar model, sehingga transfer nyata dimulai lebih lambat dan dapat berada di bawah angka-angka ini.
Validasi Input dan Penanganan Kesalahan
Alat ini memvalidasi setiap input secara ketat dan akan menampilkan pesan kesalahan spesifik jika aturan tidak dipenuhi:
- Jika input tidak dapat diproses:
"‹field›: “‹token›” bukan sebuah angka." - Jika kecepatan tautan nol atau negatif:
"Kecepatan tautan harus lebih besar dari nol." - Jika waktu pulang-pergi nol atau negatif:
"Waktu pulang-pergi harus lebih besar dari nol." - Jika ukuran data nol atau negatif:
"Ukuran data harus lebih besar dari nol." - Jika jendela penerimaan nol atau negatif:
"Jendela penerimaan harus lebih besar dari nol." - Jika jendela penerimaan melebihi batas RFC 7323:
"TCP tidak dapat menegosiasikan jendela di atas 1,073,725,440 byte (skala jendela RFC 7323)." - Jika MSS di luar batas:
"MSS harus berupa bilangan bulat dalam satuan byte antara 1 dan 65,495." - Jika kehilangan paket di luar batas:
"Tingkat kehilangan paket harus antara 0 dan 100 persen." - Jika hasil perhitungan melampaui batas sistem:
"Nilai atau hasil antara melebihi rentang angka yang didukung."
Privasi dan Pemrosesan Data
Setiap nilai yang Anda masukkan dihitung langsung di browser ini — tidak ada yang dikirim ke mana pun. Pemrosesan dilakukan sepenuhnya secara lokal pada perangkat Anda untuk menjaga privasi data teknis Anda.
Pertanyaan yang Sering Diajukan (FAQ)
Apakah megabyte di sini sama dengan yang ada di pengelola berkas saya?
Tidak sepenuhnya sama. Halaman ini menggunakan unit desimal, yang merupakan konvensi jaringan: 1 kbit = 1,000 bit dan 1 MB = 1,000,000 byte. Sebagian besar pengelola berkas menghitung dalam unit berbasis 1024, yang sering kali salah dilabeli sebagai MB — berkas "100 MB" di sana biasanya berukuran 100 MiB ≈ 104.86 MB desimal, sehingga membutuhkan waktu sekitar 5% lebih lama untuk dipindahkan daripada yang ditunjukkan oleh angka desimal. Masukkan 104.86 MB di sini agar cocok secara tepat.
Mengapa transfer saya lebih lambat dari kecepatan tautan yang saya bayar?
Satu aliran TCP menghadapi tiga batas independen, dan batas terendah yang akan menentukan hasilnya. Overhead protokol memangkas tautan itu sendiri sekitar 5% — bingkai Ethernet standar membawa 1,460 byte muatan dari 1,538 byte pada kabel. Jendela penerimaan membatasi throughput pada window ÷ RTT, sehingga jendela klasik sebesar 65,535 byte membatasi jalur 50 ms menjadi sekitar 10.5 Mbit/s seberapa pun cepatnya tautan tersebut. Dan kehilangan paket membatasinya pada (MSS ÷ RTT) ÷ √kehilangan. Hasil di atas menunjukkan batas mana yang mengikat angka-angka Anda.
Apa itu bandwidth-delay product, dan mengapa hal itu menentukan ukuran jendela?
BDP — kecepatan tautan × waktu pulang-pergi — adalah jumlah data yang sedang dikirim pada saat tertentu. TCP hanya dapat memiliki maksimal satu jendela tanpa pengakuan yang belum terselesaikan, sehingga jendela yang lebih kecil dari BDP akan membuat jalur kosong sebagian: pada kecepatan 100 Mbit/s dengan RTT 50 ms, jalur tersebut menampung 625 kB, dan jendela sebesar 65,535 byte hampir tidak dapat mengisi sepersepuluhnya. Itulah mengapa jalur yang cepat dan panjang memerlukan skala jendela TCP (RFC 7323), yang menaikkan batas maksimum yang dapat dinegosiasikan dari 65,535 byte menjadi sekitar 1 GB.
Bagaimana kehilangan paket membatasi throughput TCP?
TCP memperlakukan kehilangan paket sebagai kemacetan dan memotong setengah kecepatan pengirimannya pada setiap peristiwa kehilangan paket, sehingga tingkat kehilangan yang sangat kecil sekalipun akan berpengaruh pada jalur yang cepat. Model Mathis memperkirakan batas throughput sebesar (MSS ÷ RTT) ÷ √p — pada kehilangan paket 0.01% di jalur 50 ms dengan MSS 1,460 byte, kecepatannya adalah sekitar 23 Mbit/s, terlepas dari kecepatan tautan. Model ini mengasumsikan peristiwa kehilangan paket yang tersebar merata dan independen; di bawah sekitar 1%, model ini mengikuti realitas dengan baik, dan untuk kehilangan paket yang beruntun (bursty), model ini bersifat optimis.