Dengan asumsi Anda tidak menghitung pengaturan koneksi (seperti yang Anda tunjukkan dalam pembaruan Anda), itu sangat tergantung pada sandi yang dipilih. Overhead jaringan (dalam hal bandwidth) akan diabaikan. Overhead CPU akan didominasi oleh kriptografi. Di Core i5 ponsel saya, saya dapat mengenkripsi sekitar 250 MB per detik dengan RC4 pada satu inti. (RC4 adalah apa yang harus Anda pilih untuk kinerja maksimum.) AES lebih lambat, memberikan "hanya" sekitar 50 MB / s. Jadi, jika Anda memilih cipher yang benar, Anda tidak akan berhasil membuat satu core saat ini sibuk dengan overhead crypto bahkan jika Anda memiliki jalur 1 Gbit yang sepenuhnya digunakan. [ Sunting : RC4 tidak boleh digunakan karena tidak lagi aman. Namun, dukungan perangkat keras AES sekarang ada di banyak CPU, yang membuat enkripsi AES sangat cepat pada platform semacam itu.]
Namun, pembentukan koneksi berbeda. Bergantung pada implementasinya (mis. Dukungan untuk TLS start palsu), itu akan menambah pulang-pergi, yang dapat menyebabkan keterlambatan yang nyata. Selain itu, crypto yang mahal terjadi pada koneksi pertama (CPU yang disebutkan di atas hanya dapat menerima 14 koneksi per core per detik jika Anda dengan bodohnya menggunakan kunci 4096-bit dan 100 jika Anda menggunakan kunci 2048-bit). Pada koneksi berikutnya, sesi sebelumnya sering digunakan kembali, menghindari crypto yang mahal.
Jadi, untuk meringkas:
Transfer pada koneksi yang dibuat:
- Keterlambatan: hampir tidak ada
- CPU: dapat diabaikan
- Bandwidth: dapat diabaikan
Pembentukan koneksi pertama:
- Penundaan: perjalanan bolak-balik tambahan
- Bandwidth: beberapa kilobyte (sertifikat)
- CPU pada klien: sedang
- CPU di server: tinggi
Perusahaan koneksi selanjutnya:
- Penundaan: perjalanan pulang-pergi tambahan (tidak yakin apakah satu atau beberapa, mungkin tergantung pada implementasi)
- Bandwidth: dapat diabaikan
- CPU: hampir tidak ada