Mengapa kecepatan unduhan lambat di detik-detik awal?

14

Ketika Anda mengunduh file yang cukup besar, Anda dapat melihat bahwa pada detik-detik awal, kecepatan unduhan meningkat hingga akhirnya mencapai nilai rata-rata. Mengapa?

serius
sumber
2
Bisakah Anda membagikan beberapa nama aplikasi yang Anda gunakan di tempat Anda melihat perilaku ini? Mungkin ada jawaban yang berbeda tergantung pada perangkat lunak yang berbeda.
DuckMaestro

Jawaban:

19

Dua hal:

  1. Ada beberapa overhead dalam negosiasi dan pengaturan transfer, terutama dengan protokol seperti FTP. FTP sebenarnya membuat saluran TCP kedua secara eksklusif untuk transfer data, jadi jabat tangan 3 arah kedua harus dilakukan, dll.

  2. Sebagian besar koneksi TCP diatur ke "startup lambat" . Kode TCP agak merasa jalan sampai ke ukuran segmen maksimum yang akan bekerja untuk rute antara dua host.

Bruce Ediger
sumber
1
Saya tidak berpikir item # 1 adalah penjelasan yang cukup, setidaknya tidak dengan FTP, karena sebagian besar klien yang saya lihat hanya menghitung kecepatan pada saluran data, bukan pada saluran kontrol. Kami juga tidak tahu apakah penanya merujuk secara khusus ke FTP.
DuckMaestro
17

Metode untuk menghitung kecepatan unduhan bervariasi dari satu perangkat lunak ke perangkat lunak lainnya. Hal pertama yang perlu diingat adalah kecepatan selalu dihitung dalam konteks durasi waktu tertentu. Beberapa perangkat lunak mungkin menampilkan kecepatan pengunduhan selama seluruh waktu pengunduhan (bisa berjam-jam), sementara perangkat lunak lain mungkin menampilkan kecepatan pengunduhan hanya untuk beberapa xdetik terakhir. Semakin pendek durasi waktu untuk perhitungan kecepatan, semakin real-time nilainya.

Lebih lanjut, ketika unduhan pertama dimulai, ada pilihan untuk dibuat apakah perangkat lunak mengasumsikan kecepatan awal 0, atau apakah perangkat lunak mengasumsikan (dan menampilkan) tidak ada kecepatan awal apa pun sampai memiliki lebih banyak data untuk membuat perkiraan.

Dalam situasi yang telah Anda jelaskan, mungkin saja perangkat lunaknya seperti yang disebutkan di atas, sehingga perlu beberapa saat agar nilai yang dihitung rata-rata naik (dari 0) ke nilai yang lebih akurat.

DuckMaestro
sumber
1
Bingo - "ada kekurangan data untuk mendapatkan pengukuran sejak awal" terdengar paling benar. Saya pikir sebagian besar pengunduh cukup pintar untuk menunda mengambil metrik sampai file tersebut benar-benar diunduh (sebagai lawan dari @Bruce).
new123456
13

Ini disebut tcp windowing, pada pengiriman paket yang sukses jendela jumlah data akan meningkat ini akan terus terjadi sampai kesalahan dalam transmisi terjadi itu tergantung pada kecepatan dan keandalan koneksi, aplikasi hanya menghitung berapa lama transfer akan memakan waktu pada tingkat saat ini jendela tcp akan memungkinkan

squareborg
sumber