Pertanyaan Mengapa Hanya Ada 65.535 Pelabuhan, dan Akankah Kita Memiliki Lebih Banyak? [Tutup]


Saya memahami alasan asli di balik memiliki 65.535 port per alamat IP: ini adalah angka tertinggi yang dapat direpresentasikan dengan angka 16-bit, atau 2-byte, dan itu tidak dapat dibayangkan bahwa komputer akan dapat menyimpan lebih banyak dari itu untuk sesuatu yang sepele seperti port, atau sesuatu seperti itu. Port sebenarnya mungkin membutuhkan lebih dari 1 bit, karena setiap port dapat dibuka, diblokir, "disembunyikan", atau yang lain, tetapi untuk beberapa alasan orang selalu mengatakan port beroperasi dengan angka 16-bit. Jika saya memiliki bagian yang salah ini, tentu saja beri tahu saya.

Namun, di dunia di mana sebagian besar komputer 32-bit, dan memiliki lebih dari cukup memori / ruang untuk cadangan untuk beberapa lebih banyak port, mengapa kita masih memiliki banyak port ini? Kami sedang dalam proses pindah ke HTML5, HTTP2.0, IPv6, dan versi lain yang pasti berbeda, jadi mengapa tidak sama dengan port? Banyak dari ini memungkinkan lebih dari 16 bit; sebenarnya, IPv6 memungkinkan 16 byte! Saya mengerti bahwa banyak dari ini adalah bertahun-tahun atau bahkan puluhan tahun lagi, tetapi mengapa semua obrolan tentang peningkatan ini, dan bahkan tidak mengintip tentang lebih banyak port (yang saya, seorang amatir, pernah dengar)?

Satu-satunya 2 alasan yang dapat saya lihat untuk menjaga 65.535 port adalah membiarkan perusahaan besar mempertahankan sistem lama mereka, yang hampir tidak merupakan alasan yang baik, dan munculnya sistem yang tertanam, banyak dari mereka yang kecil, dengan jumlah ruang, memori, dll yang sangat kecil. , segera masuk ke Internet, banyak sebagai bagian dari Internet of Things. Dengan sistem yang tertanam ini, mungkin kita bisa membiarkan mereka memiliki lebih sedikit port, dan ketika komputer desktop besar mencoba untuk menghubungkannya, itu bisa dikatakan menjadi lembut, karena sistem embedded bayi hanya dapat menggunakan ~ 65.000 port.

Di sisi lain, saya dapat memikirkan beberapa alasan bagus untuk memiliki lebih banyak port, sebagian besar berkaitan dengan NAT dan sistem lain di mana lebih dari 1 alamat IP pribadi harus berkomunikasi dengan bagian Internet lainnya menggunakan alamat IP publik yang sama, seperti munculnya VM di komputer yang sama, semua menggunakan alamat IP yang sama. Secara teknis, setiap alamat IP VM memiliki 65.535 port, tetapi pada kenyataannya mereka semua menggunakan port host. Dalam kasus seperti ini, sistem ini bisa kehabisan port dengan cepat. Kasus spesifik lainnya adalah NAT carrier-grade, di mana satu alamat IP publik diterjemahkan ke dalam beberapa alamat IP pribadi, dan setidaknya satu dari alamat pribadi ini diterjemahkan ke dalam kumpulan alamat pribadi lainnya. Sekali lagi, setiap alamat IP pribadi secara teknis memiliki set sendiri 65.535 port, tetapi ini adalah ilusi, seperti ketika data keluar ke Internet publik, mereka menggunakan port IP publik. Saya tidak yakin kita perlu NAT, per se, tetapi kita akan membutuhkan sesuatu seperti itu untuk menghemat alamat bahkan dengan jumlah besar IPv6 akan memberi kita. Ketika kita memiliki kasus seperti ini, bisakah kita bahkan tidak memiliki lebih dari 65.535 pelabuhan?

Jadi, mengapa kita masih memiliki hanya 65.535 pelabuhan, dan apakah ada rencana untuk memperbolehkan lebih banyak?

P.S. Saya tahu secara teknis ada 65.536 port per alamat IP, tetapi port 0 biasanya tidak digunakan untuk apa pun.


12
2018-05-02 04:51




Saya pikir Anda perlu bertanya kepada IANA pertanyaan-pertanyaan ini mereka mengendalikan sumber daya. Saya pikir Anda perlu membaca Panduan TCP / IP juga karena beberapa pemahaman Anda kelihatannya cacat. - Iain
Ya, saya pikir. Saya mencoba mengatakan sebanyak yang saya pahami, tetapi seperti yang Anda lihat, saya tidak mengerti segalanya. - trysis
Apa yang diluar topik tentang pertanyaan ini? Hanya ingin tahu. - trysis
Saya juga menyerah mengajukan pertanyaan di situs-situs ini. Semuanya sepertinya tidak populer hari ini ... - Nuno


Jawaban:


Port adalah bagian dari protokol layer 4 yang digunakan - TCP atau UDP, untuk sebagian besar; itu tidak berhubungan dengan pengalamatan memori dari komputer yang sebenarnya, jadi jangan bingung dengan pengalamatan 32 atau 64 bit dari sistem operasi modern.

Header dari protokol lapisan 4 ini struktur yang ditentukan secara khusus, tepatnya 16 bit digunakan untuk port sumber dan tujuan. Tanpa perubahan pemecah kompatibilitas ke lapisan 4 protokol yang seluruh internet bergantung pada, jumlah port tidak dapat diubah. Bahkan yang lebih baru SCTP memiliki batasan 16 bit pada port.

Perlu diingat bahwa protokol ini mengidentifikasi lalu lintas berdasarkan tidak hanya pada port penerima, tetapi juga IP penerima dan port pengirim dan IP; Anda terbatas pada 65535 port TCP yang mendengarkan (tetapi Anda tidak memiliki banyak), dan Anda terbatas pada 65535 koneksi ke layanan tertentu pada sistem remote tertentu (lebih rendah dalam prakteknya, lihat port ephemeral), jadi tidak biasa menjalankan batasan pada protokol ini kecuali Anda memiliki sistem yang membuat banyak koneksi ke sistem remote tertentu.


24
2018-05-02 05:10



Itu selalu turun ke kompatibilitas mundur, bukan? Mengapa kita bisa mengubah ke IPv6, yang memungkinkan lebih banyak alamat IP itu konyol, tetapi kita tidak bisa memiliki beberapa port lagi? Itu adalah gangguan utama saya. - trysis
@trysis Right - pindah dari IPv4 ke IPv6 adalah perbandingan yang baik dengan apa yang diperlukan untuk berpindah ke versi TCP dan versi UDP dengan lebih banyak bit di header untuk port. Dan jika Anda belum melihat, itu adalah proses yang lambat dan menyakitkan untuk bahkan mendapatkan penyebaran IPv6 di seluruh dunia ke tempat sekarang (dengan 1-2% lalu lintas di seluruh dunia menggunakannya). Untuk IPv4, ada kebutuhan yang mendesak untuk bergerak - mengatasi kelelahan. Kehabisan ruang port pada protokol ini, di sisi lain, bukanlah masalah umum, jadi tidak ada kebutuhan mendesak untuk melakukan perubahan besar yang diperlukan untuk mewujudkannya. - Shane Madden♦
Oh, itu lebih masuk akal. Terima kasih. Mungkin suatu hari kita akan merasakan kebutuhan itu, tetapi saya kira Anda benar bahwa kebutuhan itu tidak ada di sana sekarang. - trysis
Saya berharap bahwa jika kita pernah melalui semua masalah itu, kita bisa mendapatkan sesuatu yang lebih baik daripada pengalamatan port berbasis integer. Sesuatu seperti port berbasis UUID akan luar biasa. Atau ruang nama sebenarnya akan lebih deskriptif dan menghilangkan potensi konflik antar aplikasi. Bayangkan pengaturan port maju untuk namespace "com.windows.local.yourdomain.server001" atau sesuatu seperti itu. - njbair
jadi jika dua PC bersama-sama membuat 65.535 koneksi atau serupa dengan beberapa PC di luar NAT, tidak ada PC lain yang dapat mengakses internet. Apakah saya benar? - Dina