Apakah HTTPS menggunakan TCP atau UDP?

40

Apakah HTTPS menggunakan TCP atau UDP?

Steven
sumber

Jawaban:

41

HTTPS dapat menjalankan protokol transport stream yang andal . Biasanya itu TCP, tetapi bisa juga SCTP. Ini TIDAK diharapkan untuk berjalan di atas UDP, yang merupakan protokol datagram yang tidak dapat diandalkan (pada kenyataannya, meskipun itu bukan nama resminya, itu adalah cara yang baik untuk mengingat apa itu).

Tugas IANA untuk UDP adalah historis; pada saat itu, hampir setiap protokol diberi nomor port TCP dan UDP, bahkan jika diharapkan hanya akan menggunakan satu. Telah ada diskusi tentang penggabungan registrasi nomor port, dan hanya pernah menetapkan satu port ke satu protokol mulai dari sini. Itu untuk membuatnya lebih mudah untuk menyebarkan protokol transportasi masa depan yang jika tidak akan memerlukan pendaftar sendiri. Saya tidak tahu bagaimana diskusi itu berakhir.

Andrew McGregor
sumber
1
Sebagian besar implementasi SSL mengeksposnya sebagai soket SSL, jadi itu berarti TCP. Ada kejadian yang sangat jarang menggunakan transportasi lain.
Nasko
3
Peringatan: jawaban ini sudah usang (9 tahun yang lalu). Lihatlah jawaban tentang protokol QUIC, yang merupakan implementasi yang digunakan Google untuk Chrome. Hanya mengatakan.
ivanleoncz
33

Ini menggunakan TCP. Akan sulit untuk menjalankannya di UDP tanpa jaminan paket datang. Jika paket tidak tiba, data yang dienkripsi tidak akan dapat diuraikan.

sybreon
sumber
4
Atau jika paket tidak sesuai pesanan, karena UDP tidak berisi ketentuan untuk menyusun ulang paket seperti TCP.
janneb
3
Tidak akan -1 Anda karena itu akan menjadi sedikit berlebihan, tetapi perlu dicatat bahwa tidak ada alasan itu tidak dapat dijalankan pada UDP. Mungkin atipikal, tetapi itu mungkin.
ThatGraemeGuy
12

Untuk waktu berikutnya, jika Anda bertanya-tanya apakah layanan port default berjalan pada tcp atau udp, Anda dapat melihat / etc / services di mesin linux.

Deimosfr
sumber
3
Atau mesin Windows, dalam prompt perintah:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy
1
/ Etc / services saya juga mencantumkan 80 / udp. Sebenarnya, banyak layanan telah mengalokasikan kedua port, "berjaga-jaga" saya kira.
Peter Eisentraut
8

Saat ini HTTPS dapat berjalan di atas TCP atau UDP.

Protokol "QUIC" yang baru bertujuan untuk mengganti beberapa koneksi TCP dengan satu koneksi UDP multipleks, dan karenanya dapat menangani SSL dan HTTPS:

HTTPS → SSL → aliran QUIC → UDP → IP

QUIC pada awalnya dikembangkan pada 2012 oleh Google dan sedang menjalani tinjauan IETF. Untuk detail lebih lanjut, lihat Wikipedia.

JP Tosoni
sumber
Ini harus menjadi jawabannya, mengingat skenario saat ini. Misalnya, untuk tujuan percobaan, saya hanya bisa memblokir lalu lintas HTTPS untuk IP tertentu, menggunakan DROPtarget di atas manglemeja, menggunakan udpprotokol untuk aturan.
ivanleoncz
2
+1, tidak berharap untuk belajar sesuatu saat mengklik pertanyaan ini.
T.Coutlakis
7

Model OSI memungkinkan protokol lapisan yang lebih tinggi untuk menjalankan protokol yang mendasari menyediakan layanan yang benar. HTTPS adalah HTTP yang menggunakan keamanan SSL / TLS. SSL / TLS biasanya berjalan di atas TCP, tetapi tidak ada yang menghentikan Anda dari menjalankannya di UDP, SCTP atau protokol layer transport lainnya.

Sebenarnya HTTPS melalui TCP dan UDP keduanya didefinisikan sebagai "terkenal" oleh IANA dan telah memesan nomor port.

Lihat http://www.iana.org/assignments/port-numbers untuk kombinasi port / protokol "resmi".

pehrs
sumber
1
Lihat misalnya tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) untuk mengetahui bagaimana SSL / TLS dapat berjalan di atas UDP.
pehrs
0
  • HTTPS adalah HTTP over TLS over TCP over IP.
  • TLS over UDP adalah implementasi spesifik yang disebut DTLS ; di mana D adalah singkatan dari "Datagram."
Serge Stroobandt
sumber