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


20

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

Namun, di dunia di mana sebagian besar komputer berukuran 32-bit, dan memiliki lebih dari cukup memori / ruang kosong untuk beberapa port lagi, mengapa kita masih memiliki banyak port ini? Kami sedang dalam proses pindah ke HTML5, HTTP2.0, IPv6, dan versi 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 bertahun-tahun atau bahkan puluhan tahun lagi, tetapi mengapa semua obrolan tentang peningkatan ini, dan bahkan tidak mengintip lebih banyak port (yang saya, seorang amatir, pernah dengar)?

Satu-satunya 2 alasan yang dapat saya lihat untuk menjaga 65.535 pelabuhan adalah membiarkan bisnis besar mempertahankan sistem lama mereka, yang hampir tidak merupakan alasan yang baik, dan munculnya sistem tertanam, banyak di antaranya kecil, dengan jumlah ruang, memori, dll yang sangat kecil. , segera hadir di Internet, banyak di antaranya sebagai bagian dari Internet of Things. Dengan sistem tertanam ini, mungkin kita bisa membiarkan mereka memiliki lebih sedikit port, dan ketika komputer desktop besar mencoba terhubung ke satu, itu bisa dikatakan lembut, karena sistem tertanam 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 seluruh Internet menggunakan alamat IP publik yang sama, seperti kebangkitan 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 dapat kehabisan port dengan cukup cepat. Kasus spesifik lainnya adalah NAT tingkat operator, di mana satu alamat IP publik diterjemahkan ke dalam beberapa alamat IP pribadi, dan setidaknya satu dari alamat pribadi ini akan diterjemahkan ke dalam set alamat yang lebih pribadi lagi. Sekali lagi, setiap alamat IP pribadi secara teknis memiliki 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 perlu 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 port?

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

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


Saya pikir Anda perlu mengajukan IANA pertanyaan-pertanyaan ini mereka mengontrol sumber daya. Saya pikir Anda perlu membaca panduan TCP / IP juga karena beberapa pemahaman Anda tampaknya cacat.
user9517 mendukung GoFundMonica

1
Ya, saya pikir. Saya mencoba mengatakan sebanyak yang saya mengerti, tetapi seperti yang Anda lihat, saya tidak mengerti segalanya.
trysis

7
Apa yang di luar topik tentang pertanyaan ini? Hanya ingin tahu.
trysis

1
Saya juga berhenti bertanya di situs-situs ini. Segalanya tampak di luar topik akhir-akhir ini ...
Nuno

IPv6 membuat batasan port diperdebatkan dengan menawarkan komputer a / 64 dari alamat yang akan digunakan.
J.Money

Jawaban:


28

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

Header dari protokol layer 4 ini memiliki struktur yang ditentukan secara spesifik , dimana 16 bit digunakan untuk port sumber dan tujuan. Tanpa perubahan yang merusak kompatibilitas pada protokol layer 4 yang bergantung pada seluruh internet, jumlah port tidak dapat diubah. Bahkan SCTP yang lebih baru 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 mendengarkan port TCP (tetapi Anda tidak memiliki banyak), dan Anda terbatas pada 65535 koneksi ke layanan spesifik pada sistem jarak jauh tertentu (lebih rendah dalam praktiknya, lihat port fana ), jadi itu tidak biasa untuk menjalankan batas protokol ini kecuali Anda memiliki sistem yang menciptakan banyak koneksi ke sistem jarak jauh tertentu.


3
Itu selalu turun ke kompatibilitas ke belakang, bukan? Mengapa kita bisa beralih ke IPv6, yang memungkinkan lebih banyak alamat IP itu konyol, tetapi kita tidak dapat memiliki beberapa port lagi? Itu gangguan utama saya.
trysis

2
@trysis Kanan - pindah dari IPv4 ke IPv6 adalah perbandingan yang baik dengan apa yang diperlukan untuk pindah ke versi TCP dan versi UDP dengan bit lebih banyak di header untuk port. Dan jika Anda belum menyadarinya, itu adalah proses yang lambat dan menyakitkan bahkan untuk mendapatkan penyebaran IPv6 di seluruh dunia ke tempat sekarang (dengan 1-2% lalu lintas di seluruh dunia menggunakannya). Untuk IPv4, ada kebutuhan mendesak untuk pindah - mengatasi kelelahan. Kehabisan ruang port pada protokol ini, di sisi lain, bukan masalah umum, jadi tidak ada kebutuhan mendesak untuk membuat perubahan besar yang diperlukan untuk mewujudkannya.
Shane Madden

Oh, itu lebih masuk akal. Terima kasih. Mungkin suatu hari nanti kita akan merasakan kebutuhan itu, tetapi saya kira Anda benar bahwa kebutuhan itu tidak ada sekarang.
trysis

Saya berharap bahwa jika kita pernah mengalami semua masalah itu, kita dapat menemukan sesuatu yang lebih baik daripada pengalamatan port berbasis integer. Sesuatu seperti port berbasis UUID akan luar biasa. Atau ruang nama aktual akan menjadi lebih deskriptif dan menghilangkan potensi konflik antara aplikasi. Bayangkan mengatur port forward untuk namespace "com.windows.local.yourdomain.server001" atau sesuatu seperti itu.
njbair

jadi jika dua PC bersama-sama membuat 65.535 koneksi atau mirip dengan sebuah kupon PC di luar NAT, tidak ada PC lain yang dapat mengaksesnyanernet. Apakah saya benar?
Denis
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.