Bagikan melalui


Masalah Antarmuka Pengguna untuk Aplikasi Winsock IPv6

Salah satu perubahan yang paling jelas dari IPv4 ke IPv6 adalah ukuran alamat IP. Banyak antarmuka pengguna menyediakan kotak dialog yang memungkinkan pengguna memasukkan alamat IP, seperti yang dicontohkan pada gambar berikut.

kotak alamat ipv4 umum di antarmuka pengguna

Mengatasi di IPv6, karena banyak faktor seperti panjang, kompleksitas, dan signifikansi bagian dalam ruang alamat IPv6, tidak kondusif untuk modifikasi atau spesifikasi oleh pengguna. Oleh karena itu, kebutuhan untuk memberi pengguna kemampuan menentukan alamat mereka sendiri berkurang. Selain itu, karena kompleksitas yang terkait dengan pengalamatan IPv6, memberi administrator kemampuan menentukan informasi alamat IPv6 tidak mungkin terjadi berdasarkan per simpul.

Menampilkan alamat IPv6 di UI tidak dapat disempurnakan, dan oleh karena itu pengembang harus mempertimbangkan variabilitas dalam ukuran alamat IPv6 saat memodifikasi aplikasi untuk mendukung IPv6.

Bagian lainnya membahas perbedaan antara prediksi panjang alamat IPv4 dan pertimbangan panjang alamat IPv6. Bagian ini mengasumsikan alamat IPv6 ditampilkan dalam representasi heksadesimalnya.

Alamat IPv4 dapat diprediksi dalam ukuran, karena mereka dengan kaku mengikuti notasi desimal putus-putus, seperti yang diilustrasikan contoh alamat berikut:

10.10.256.1

Alamat IPv6 tidak begitu dapat diprediksi, karena konvensi alamat IPv6 yang memungkinkan penggunaan titik dua (::) untuk mewakili serangkaian nol. Dengan demikian, representasi alamat IPv6 berikut sama dengan alamat IPv6 yang sama:

1040:0:0:0:0:0:0:1
1040::1

Kemampuan untuk mewakili serangkaian nol dengan titik dua menghasilkan panjang yang tidak dapat diprediksi untuk IPv6 tertentu, yang mengharuskan pemrogram mempertimbangkan kemampuan ini saat membuat tampilan antarmuka pengguna alamat IPv6. Tentu saja, pengembang harus memastikan bahwa antarmuka pengguna mampu menampilkan alamat IP yang tidak menggunakan titik dua untuk mewakili serangkaian nol (alamat pertama di bawah), serta mampu menampilkan alamat IPv6 terpanjang yang mungkin (alamat kedua di bawah ini, dengan alamat IPv4 yang disematkan) saat membuat antarmuka pengguna berkemampuan IPv6 mereka. Perhatikan juga, bahwa menambahkan pengidentifikasi Cakupan (ID) ke alamat berikut akan meningkatkan panjangnya sebanyak sebelas karakter lain:

21DA:00D3:0010:2F3B:02AA:00FF:FE28:9C5A
0000:0000:0000:0000:0000:ffff:123.123.123.123

Pertimbangan penting lainnya adalah apakah alamat berbasis nama lebih tepat daripada alamat IPv6 berbasis angka. Jika alamat berbasis nama lebih tepat, pertimbangan untuk konvensi penamaan harus dibangun ke dalam antarmuka pengguna, termasuk pemeriksaan kesalahan input yang sesuai untuk tugas tersebut.

Ada kompleksitas lain yang terkait dengan menampilkan alamat IPv6 yang harus dipertimbangkan pengembang saat memodifikasi aplikasi mereka, dan saat merancang representasi antarmuka pengguna alamat IPv6. Beberapa pertimbangan ini adalah sebagai berikut:

  • Haruskah alamat berisi semua urutan nol, atau menggunakan notasi titik dua?
  • Apakah lebih tepat untuk menggunakan representasi alamat berbasis angka atau representasi berbasis nama?
  • Apakah pengguna tertarik untuk membedakan aspek tertentu dari skema pengalamatan, seperti awalan subnet, pengidentifikasi cakupan, atau subbidang lainnya?
  • Apakah pengguna tertarik untuk menentukan aspek lain dari alamat, seperti pengidentifikasi TLA, pengidentifikasi NLA, atau pengidentifikasi SLA?
  • Apakah antarmuka pengguna Anda akan mampu membedakan alamat IPv6 yang disematkan, dan jika demikian, bagaimana alamat tersebut akan ditangani dan ditampilkan? Apakah Anda akan membedakan antara alamat yang kompatibel dengan IPv4 dan alamat IPv6 yang dipetakan IPv4 saat menampilkan informasi alamat kepada pengguna?

Ada pertimbangan lain juga, dan pengembang harus mempertimbangkan audiens pelanggan mereka dengan hati-hati saat mengembangkan antarmuka pengguna alamat IP.

Praktik Terbaik

  • Pengembang harus mempertimbangkan pendekatan yang sesuai untuk setiap antarmuka pengguna saat memodifikasi aplikasi mereka untuk mendukung IPv6. Memastikan bahwa antarmuka pengguna berisi panjang yang cukup untuk menampilkan alamat IPv6 sangat penting, seperti halnya menentukan apakah alamat tersebut berbasis nomor atau nama.
  • Jika memungkinkan, gunakan fungsi Winsock dan IP Helper yang ada saat menggunakan alamat IPv6 daripada menerapkan kembali logika ini. Misalnya, fungsi RtlIpv6AddressToString, RtlIpv6AddressToStringEx, RtlIpv6StringToAddress, dan RtlIpv6StringToAddressEx dapat digunakan untuk mengonversi antara alamat IPv6 dan representasi string dari alamat IPv6 ini.

Kode yang Harus Dihindari

  • Elemen antarmuka pengguna yang bergantung pada alamat berukuran IPv4 harus menjalani pengawasan, dan bagian dari pengawasan tersebut harus mencakup apakah informasi yang Anda berikan (di bawah IPv4) sesuai untuk IPv6.
  • Kemampuan untuk menentukan alamat IP juga harus bergantung pada apakah IPv4 sedang digunakan, atau IPv6 tersedia. Jika IPv6 tersedia, apakah sesuai untuk menentukan alamat berbasis angka (heksadesimal) atau alamat berbasis nama?

Tugas Pengkodian

Untuk merevisi basis kode yang ada dari IPv4 ke interoperabilitas IPv4 dan IPv6

  1. Lakukan tinjauan visual antarmuka pengguna, cari elemen apa pun yang bergantung pada panjang tertentu untuk string alamat IP. Kontrol dengan notasi desimal bertitik empat bagian yang mudah diidentifikasi mudah ditemukan, tetapi yang lain tidak. Mungkin ada tempat di mana alamat IP dapat ditampilkan, seperti dalam kotak dialog, di mana alamat IPv6 mungkin kehabisan ruang tampilan.
  2. Setelah menemukan salah satu kontrol ini, lihat apakah sesuai untuk menampilkan alamat saat menggunakan IPv6. Jika memungkinkan bahwa IPv4 atau IPv6 sedang digunakan, pastikan antarmuka pengguna dapat mengakomodasi keduanya. Ganti atau perbesar kontrol apa pun dengan kontrol antarmuka pengguna yang dapat menampilkan seluruh alamat IPv6.
  3. Tindak lanjuti dengan pengujian antarmuka pengguna untuk memastikan perubahan yang memungkinkan tampilan alamat IPv6 mempertahankan kegunaan yang dimaksudkan saat menggunakan alamat IPv4. Selain itu, uji lokasi tampilan alamat protokol, seperti kotak dialog informasi, untuk memastikan mereka menangani alamat IPv6 dengan benar.

Panduan IPv6 untuk Aplikasi Soket Windows

Mengubah Struktur Data untuk Aplikasi Winsock IPv6

Soket Dual-Stack untuk Aplikasi Winsock IPv6

Panggilan Fungsi untuk Aplikasi Winsock IPv6

Penggunaan Alamat IPv4 Hardcoded

Protokol Yang Mendasar untuk Aplikasi IPv6 Winsock