Bagaimana distribusi angka di bagian terakhir dari alamat IPv4?

9

Saya memiliki skrip pengalihan yang beroperasi di situs web yang saya buat. Ia mengirim 1/3 pengunjung ke situs A, 1/3 pengunjung ke situs B dan 1/3 ke situs C.

Ini bekerja dengan membagi bagian terakhir dari alamat IPv4 pengguna (0-255) dengan 3, dan mereka diarahkan ke situs A, B atau C tergantung pada sisanya. Sejauh ini situs A telah memiliki 109 pengunjung, situs B telah memiliki 85 dan situs C telah memiliki 101.

Apakah saya benar dengan berasumsi bahwa segmen terakhir dari alamat IPv4 ditetapkan secara acak?

Juga, apakah distribusi angka untuk segmen terakhir sama?

Adjam
sumber
Apa yang membuat Anda berpikir bahwa segmen terakhir "ditugaskan secara acak"?
MrWhite
1
Itu sebuah tebakan. Saya tidak yakin apakah dugaan ini benar. Itulah isi pertanyaan saya.
Adjam
Mengapa tidak melakukan round robin saja?
Bigbio2002
@ Bigbio2002 Karena pengguna mungkin kembali. Saya tidak ingin pengguna dikirim ke versi yang baik, maka versi yang buruk, karena ini akan mempengaruhi perilaku pengguna.
Adjam

Jawaban:

14

Alamat IPv4 tidak begitu canggung dan acak seperti yang Anda asumsikan.

Pertama, alamat IPv4 dipisahkan menjadi 4 oktet, masing-masing berkisar dari 0 hingga 255. Namun, ini tidak sepenuhnya terjadi karena 0 adalah nomor yang disediakan untuk jaringan dan 255 disediakan untuk siaran, yang benar-benar membatasi Anda hingga 1-254 .

Kedua, Anda harus mempertimbangkan bahwa alamat IPv4 ditetapkan dalam blok untuk organisasi dan ISP yang kemudian membagi mereka berdasarkan alamat subnet yang menggambarkan bit mana dalam oktet yang mewakili jaringan dan bit mana yang mewakili host individu. Begitu:

Network: 11.12.0.0
CIDR: 11.12.0.0/16
Subnet: 255.255.0.0
Hosts provided: 65534

Berarti Anda bisa memiliki alamat mulai dari 11.12.0.1 hingga 11.12.255.254. Karena ini:

Three separate hosts, same network, but same last octet:
11.12.10.20
11.12.20.20
11.12.30.20

Ini berarti Anda tidak dapat selalu mengandalkan oktet terakhir sebagai 'acak'.

Ketiga, cara penetapan alamat IP tidak selalu acak. Sebagian besar pengguna rumahan akan mendapatkan alamat IP publik yang ditetapkan oleh ISP mereka melalui DHCP, di mana titik akhir mereka akan mendapatkan alamat yang dipilih oleh komputer (biasanya secara berurutan, pertama datang / pertama dilayani dari kumpulan yang tersedia) di mana mereka mengadakan sewa untuk yang telah ditentukan sebelumnya. jumlah waktu (biasanya beberapa hari) sebelum mereka diberikan nomor lain. Organisasi besar (bisnis, pemerintah) akan sering memiliki satu set alamat dari mana mereka berasal dan alamat ini statis dan tidak akan berubah.

Untuk menjawab pertanyaan Anda, berikan informasi di atas:

1) Alamat IP tidak ditetapkan secara acak. Biasanya ada semacam metode logis untuk menetapkan IP yang ditujukan untuk memungkinkan perutean lalu lintas yang benar dan tepat waktu di jaringan dan internet.

2) Distribusi oktet terakhir dari alamat IPv4 tergantung pada sejumlah faktor yang berkaitan dengan informasi di atas (dan mood administrator jaringan, dalam beberapa kasus) dan, oleh karena itu, tidak sama. Anda tidak bisa hanya mengandalkan oktet terakhir untuk memberikan 'keunikan'.

Come on IPv6!

Justin Pearce
sumber
5

Oktet terakhir cenderung condong ke arah ujung bawah, karena jaringan cenderung diberi nomor dari bawah. Skema yang lebih baik adalah memperlakukan seluruh alamat IP sebagai integer unsigned 32bit dan menggunakan operasi modulo untuk mendapatkan sisanya ketika menyelam dengan jumlah ember yang Anda inginkan. Ini akan menetapkan setiap alamat berikutnya (secara numerik) ke ember yang berbeda (membungkus ketika ember terakhir tercapai).

Sebagai contoh:

1.2.3.4 = 16909060
16909060 % 3 = 1

Jadi ini akan menempatkan 1.2.3.4 ke dalam ember 1 (di mana ember diberi nomor 0, 1, dan 2). 1.2.3.5 akan masuk ke bucket 2, dan 1.2.3.6 akan masuk ke bucket 0.

Mgorven
sumber