Bagaimana cara kerja port dengan IPv6?

143

Notasi quad bertitik IPv4 konvensional memisahkan alamat dari port dengan titik dua, seperti dalam contoh server web ini pada antarmuka loopback:

127.0.0.1:80

tetapi dengan notasi IPv6 alamat itu sendiri dapat berisi titik dua. Misalnya, ini adalah bentuk pendek dari alamat loopback:

::1

Bagaimana port (atau fungsional yang setara) diekspresikan dalam representasi tekstual dari alamat IPv6 / titik akhir port?

Peter Wone
sumber

Jawaban:

33

Protokol yang digunakan dalam IPv6 sama dengan protokol di IPv4. Satu-satunya hal yang berubah antara kedua versi adalah skema pengalamatan, DHCP [DHCPv6] dan ICMP [ICMPv6]. Jadi pada dasarnya, apa pun yang terkait TCP / UDP, termasuk kisaran port (0-65535) tetap tidak berubah.

Sunting: Port 0 adalah port yang dicadangkan dalam TCP tetapi ada. Lihat RFC793

Andrew Moore
sumber
6

Mereka sama, bukan? Sekarang saya kehilangan kepercayaan pada diri saya sendiri tetapi saya benar-benar berpikir IPv6 hanyalah sebuah perubahan pengalamatan. TCP dan UDP masih ditangani karena mereka berada di bawah IPv4.

Oli
sumber
3
Ini bukan hanya perubahan alamat. Seharusnya membawa beberapa fitur keren (misalnya global multicast). Tapi ya, itu transparan untuk lapisan atas.
Tarnay Kálmán
4
Itu "hanya" perubahan alamat. Apa yang Anda bicarakan adalah mengalamatkan :) Tapi alasannya menyangkut / membingungkan orang adalah bahwa desain jaringan memperlakukan "pengalamatan" sebagai alamat dan "layanan" sebagai nomor port. Tetapi Anda tidak dapat melakukan apa pun dalam TCP atau UDP tanpa keduanya, sehingga sebagian besar orang berusaha agar pengalamatan tingkat soket berfungsi, dan tidak dapat memahami mengapa orang terus mengarang atau mengubah pembatas: spasi, lalu titik, lalu titik dua, lalu menumbuk tanda-tanda? Jadi, ya, saya bisa melihat IPv6 membuat orang khawatir.
benc
6

Saya cukup yakin bahwa port hanya memiliki bagian dalam tcp dan udp. Jadi persis sama bahkan jika Anda menggunakan protokol IP baru

srist
sumber
1
DCCP dan SCTP juga memiliki port, tetapi port di SCTP sedikit berbeda karena pengidentifikasi asosiasi tambahan.
james woodyatt
6

Wikipedia menunjukkan bahwa sintaks alamat IPv6 termasuk titik dua dan memiliki bentuk pendek yang mencegah penguraian dengan panjang tetap, dan oleh karena itu Anda harus membatasi bagian alamat dengan []. Ini sepenuhnya menghindari kesalahan parsing aneh.

(Diambil dari hasil edit yang dilakukan Peter Wone dengan pertanyaan aslinya.)

Ajedi32
sumber
5

Saya akan mengatakan referensi terbaik adalah Format untuk Alamat IPv6 Literal di URL di mana penggunaan [] didefinisikan.

Juga, jika itu untuk pemrograman dan kode, khususnya Java, saya akan menyarankan ini membaca Kelas untuk definisi java / net / URL Inet6 di mana penggunaan alamat Inet4 di konotasi Inet6 dan kasus-kasus lain disajikan secara rinci. Untuk kasus saya, alamat IPv4-dipetakan Dari bentuk :: ffff: wxyz, untuk alamat IPv6 digunakan untuk mewakili alamat IPv4 juga memecahkan masalah saya. Itu memungkinkan program asli untuk menggunakan struktur data alamat yang sama dan juga soket yang sama ketika berkomunikasi dengan kedua IPv4 dan IPv6 node. Ini adalah kasus di pengaturan default Amazon cloud Linux.

zhrist
sumber