Selanjutnya untuk jawaban Hello71, mungkin membantu untuk memvisualisasikan port dengan memikirkan struktur alamat dalam sebuah paket. Paket adalah unit data yang dikirimkan di sekitar jaringan. TCP adalah contoh protokol lapisan transport yang menggunakan port, dan umumnya digunakan melalui IP.
Jadi IP memiliki dua komponen pengalamatan - IP sumber dan IP tujuan. TCP menambahkan ini dengan menggunakan port sumber dan port tujuan. Ini adalah port yang memungkinkan mesin penerima untuk membedakan lalu lintas yang ditujukan untuk alamat IP yang sama - yaitu, jika Anda memiliki server yang menerima permintaan web dan email pada satu alamat IP, maka Anda perlu menentukan aplikasi mana yang harus menerima data - layanan email atau layanan web. Jadi mereka mungkin terlihat seperti ini jika satu pengguna melakukan permintaan web dan permintaan email ke server yang sama:
Source IP Source Port Dest IP Dest Port Service
10.1.1.10 23434 192.168.1.1 80 web
10.1.1.10 34343 192.168.1.1 25 incoming email
Layanan web memiliki port 80 dan layanan email memiliki port 25 - mereka "mendengarkan" pada port masing-masing, yang memungkinkan lalu lintas berakhir di tempat yang tepat.
Port sumber adalah "ephemeral" - dalam hal ini dibuat pada saat paket dikirim. Namun, itu masih memiliki tujuan yang bermanfaat. Ini memungkinkan kedua ujung koneksi untuk melacak percakapan terpisah. Pertimbangkan jika pengguna kami mengirim dua permintaan web secara bersamaan:
Source IP Source Port Dest IP Dest Port Service
10.1.1.10 23232 192.168.1.1 80 web request 1
10.1.1.10 23234 192.168.1.1 80 web request 2
Ini membuat layanan web tahu bahwa ini adalah permintaan yang terpisah, tetapi juga, lalu lintas kembali dari server web - halaman web - dikirim kembali ke port sumber masing-masing, yang memungkinkan browser untuk mengetahui permintaan mana yang ditanggapi oleh server.
Perhatikan bahwa ini semua mengacu pada nomor port, dari perspektif TCP / IP, data aktual yang dipindahkan di seluruh port ini bisa berupa apa saja. Itu tidak peduli atau tidak memiliki kesadaran aplikasi, jadi jika Anda memiliki lalu lintas web pada port 25 dan email pada port 80, itu akan menjadi tidak bijaksana.
Terserah aplikasi pengirim dan penerima untuk memastikan data adalah struktur yang tepat, dan di sinilah protokol aplikasi masuk. HTTP adalah contoh protokol aplikasi yang digunakan browser web untuk berkomunikasi dengan server web. Ini adalah protokol yang didefinisikan dengan baik yang memastikan bahwa browser akan mengirim permintaan ke server web mana pun dan server web itu akan memahami dan merespons dengan masuk akal. Tapi apa yang tidak dimasukkan dalam definisi adalah apa-apa tentang bagaimana paket mendapatkan dari A ke B - itu adalah tanggung jawab lapisan sebelumnya - lapisan transportasi, internet dan tautan.
Hm Saya akan berpikir bahwa tempat terbaik untuk memulai adalah dengan melihat IP Suite, alias model TCP / IP. (Mengabaikan lapisan lain dari model OSI untuk tujuan kesederhanaan.)
Pada dasarnya, ini adalah serangkaian lapisan:
Lapisan Aplikasi - HTTP, FTP, POP, SSH, dll.
Lapisan Transportasi - TCP, UDP, dll.
Lapisan Internet - IP, ICMP, dll.
Lapisan Tautan - Ethernet, dll.
Ports, sebagian besar, diimplementasikan pada layer transport (layer 4 - Ya, penomorannya sudah benar.)
Mayoritas tumpukan TCP dan / atau UDP diimplementasikan dalam OS menggunakan sistem dasar penugasan port ke program dan hanya meningkatkan acara dalam program ini ketika paket masuk melalui jaringan. Namun, implementasi apa pun secara teori dapat bekerja; bahkan mungkin dengan tumpukan alternatif hipotetis merenungkan di akademisi.
TCP telah didefinisikan memiliki total 65535 port, yang dapat digunakan program apa pun untuk melakukan apa pun yang mereka inginkan (walaupun banyak OS membatasi penggunaan port di bawah 1024, memberi mereka status khusus ad hoc). Meskipun ada beberapa daftar terbatas, tidak ada standar nyata untuk menentukan siapa yang mendapatkan port apa dan port apa yang menjalankan program apa. Sebuah port, dengan demikian, kurang lebih merupakan angka acak yang diterapkan oleh implementasi yang berbeda dari suatu program untuk disetujui. Tentu saja, para perancang program semacam itu mencoba menghindari pelabuhan yang sudah dipilih oleh program populer lainnya.
Memang itu sama sekali tidak diperlukan untuk menjalankan menggunakan TCP. Beberapa protokol berjalan pada lapisan internet telanjang, atau bahkan lapisan tautan telanjang, terutama untuk tujuan efisiensi, atau karena protokol ini ditemukan sebelum bahkan TCP atau IP ada. Tentu saja, ketika melakukannya, Anda menukar kesederhanaan dan pemeriksaan bug yang ekstensif dari perpustakaan jaringan OS.
Untuk lebih jelasnya, periksa halaman Wikipedia pada model OSI, TCP, dan IP.
sumber
Meskipun pertanyaan ini telah ditandai sebagai dijawab, saya ingin menjawab beberapa pertanyaan tambahan yang diajukan dalam OP.
Tidak ada port yang bukan benda fisik.
Nomor port adalah integer 16-bit unsigned, yang berarti kisaran port yang tersedia untuk digunakan adalah dari 1 hingga 65535 (nomor port 0 dicadangkan dan tidak dapat digunakan). Suatu proses mengaitkan saluran input atau outputnya melalui soket Internet, jenis deskriptor file, dengan protokol transport, nomor port, dan alamat IP. Proses ini dikenal sebagai mengikat, dan memungkinkan pengiriman dan penerimaan data melalui jaringan.
Perangkat lunak jaringan sistem operasi memiliki tugas mentransmisikan data keluar dari semua port aplikasi ke jaringan, dan meneruskan paket jaringan yang tiba ke suatu proses dengan mencocokkan alamat IP paket dan nomor port.
Hanya satu proses yang dapat mengikat ke alamat IP tertentu dan kombinasi port menggunakan protokol transport yang sama. Kegagalan aplikasi umum, kadang-kadang disebut konflik port, terjadi ketika beberapa program berupaya untuk mengikat nomor port yang sama pada alamat IP yang sama menggunakan protokol yang sama.
Paragraf di atas adalah kunci untuk memahami mengapa port / protokol digunakan dalam jaringan. Jika kami tidak memiliki cara untuk menentukan protokol, yang mentransmisikan data melalui nomor port apon yang disepakati - Anda tidak akan dapat melakukan lebih dari 1 hal sekaligus (periksa email Anda dan gunakan web) karena komputer Anda akan memiliki tidak ada cara untuk membedakan antara data untuk klien email Anda dan data untuk situs web yang Anda jelajahi.
Nomor port diberikan dalam berbagai cara, berdasarkan tiga rentang:
Terkenal / Port Sistem (0-1023) - Rentang port ini digunakan oleh proses sistem yang menyediakan jenis layanan jaringan yang banyak digunakan (HTTP / 80, HTTPS / 443, Telnet / 21, SSH / 22)
Port Terdaftar / Pengguna (1024-49151) - Kisaran nomor port dari 1024 hingga 49151 adalah port terdaftar. Mereka ditugaskan oleh IANA untuk layanan spesifik setelah aplikasi oleh entitas yang meminta. (Webmin / 10000, HTTP Proxy / 8080, Remote Desktop Protocol / 3389, dll)
Port Ephemeral / Dynamic / Privat (49152-65535) - Kisaran 49152-65535 berisi port dinamis atau pribadi yang tidak dapat didaftarkan dengan IANA. Rentang ini digunakan untuk tujuan khusus atau sementara dan untuk alokasi otomatis port sementara.
Sehubungan dengan dapat meningkatkan jumlah port yang tersedia, Anda tidak dapat menetapkan port di atas 65535 karena matematika yang memungkinkan jaringan berfungsi (biner) - jadi jawaban untuk pertanyaan ini adalah tidak, Anda tidak dapat meningkatkan jumlah total yang tersedia port di atas 65535.
Dalam ilmu komputer, protokol komunikasi adalah sistem aturan digital untuk pertukaran pesan di dalam atau di antara komputer. Ketika pesan dipertukarkan melalui jaringan komputer, sistem aturan disebut protokol jaringan. Protokol pada dasarnya adalah seperangkat instruksi / perintah / panggilan yang disepakati yang dapat dikomunikasikan oleh dua perangkat jaringan. Pikirkan jika kami tidak menyetujui protokol dan server web hanya mengirim data secara acak ke browser web bahwa browser tidak tahu apa yang harus dilakukan? Untungnya kami memiliki HTTP dan semua browser web yang dibuat telah dibangun ke dalam perangkat lunak sehingga dapat berkomunikasi dengan server web apa pun yang juga berbicara bahasa yang sama (HTTP).
Ya, Anda dapat membuat protokol sendiri. Protokol ditulis dalam berbagai bahasa. Saya bukan pengembang perangkat lunak, tetapi saya cukup yakin bahwa selama bahasa apa pun yang Anda gunakan memiliki perpustakaan yang memungkinkan Anda untuk menulis perangkat lunak yang dapat berkomunikasi melalui TCP / IP (ada suite protokol lain, tetapi TCP / IP adalah yang paling banyak digunakan) Anda dapat menggunakan bahasa itu untuk menulis protokol. Bahasa pemrograman 'C' tampaknya menjadi yang paling umum digunakan untuk menulis protokol. Hal ini disebabkan oleh fakta bahwa banyak protokol jaringan pertama dikembangkan pada UNIX pada tahun 1970-an dan C adalah bahasa yang digunakan UNIX.
Ini sedikit berbeda antara OS. Misalnya, untuk mengubah nomor port yang dijalankan Remote Desktop Protocol di Windows, Anda perlu mengedit registri. Di Linux, banyak layanan jaringan dapat dikonfigurasi secara langsung dari file .conf untuk layanan jaringan tertentu.
Lihat https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ untuk posting blog oleh seseorang yang baru-baru ini mengembangkan protokol jaringan baru dan hal-hal apa yang harus dia lakukan sepanjang jalan.
sumber