IPv4アドレスの最後の部分の数字の分布はどの程度均等ですか?


9

作成したWebサイトでリダイレクトスクリプトを実行しています。訪問者の1/3をサイトAに、訪問者の1/3をサイトBに、1/3をサイトCに送信します。

ユーザーのIPv4アドレス(0〜255)の最後の部分を3で割ることで機能し、残りに応じてサイトA、B、またはCにリダイレクトされます。これまでのところ、サイトAの訪問者は109人、サイトBの訪問者は85人、サイトCの訪問者は101人です。

IPv4アドレスの最後のセグメントが完全にランダムに割り当てられていると想定しても正しいですか?

また、最後のセグメントの数値の分布は等しいですか?


最後のセグメントが「完全にランダムに割り当てられている」と思うのはなぜですか。
MrWhite 2012年

1
それは推測です。この推測が正しいかどうかはわかりません。それが私の質問の内容です。
Adjam

なぜラウンドロビンをしないのですか?
Bigbio2002

@ Bigbio2002ユーザーが戻ってくる可能性があるため。ユーザーの動作に影響を与えるため、ユーザーを良いバージョン、次に悪いバージョンに送信することは望ましくありません。
Adjam

回答:


14

IPv4アドレスは、想定しているほど不格好でランダムではありません。

まず、IPv4アドレスは4オクテットに分割され、それぞれが0〜255の範囲です。ただし、0はネットワーク用に予約され、255はブロードキャスト用に予約されているため、これは完全に1〜254に制限されます。 。

次に、IPv4アドレスがブロックで組織およびISPに割り当てられていることを考慮する必要があります。組織とISPは、オクテットのどのビットがネットワークを表し、どのビットが個々のホストを表すかを示すサブネットアドレスに基づいてアドレスを分割します。そう:

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

11.12.0.1から11.12.255.254の範囲のアドレスを持つことができることを意味します。このため:

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

これは、最後のオクテットが常に「ランダム」であるとは限らないことを意味します。

第3に、IPアドレスの割り当て方法は必ずしもランダムではありません。ほとんどのホームユーザーは、DHCPを介してISPによって割り当てられたパブリックIPアドレスを取得します。エンドポイントは、あらかじめ決められたリースを保持しているコンピューター(通常、順次、利用可能なプールから先着順)によって選択されたアドレスを取得します。別の番号が割り当てられるまでの時間(通常は数日)。大規模な組織(企業、政府)は、常に一連のアドレスを持っていることが多く、これらのアドレスは静的であり、変更されません。

上記の情報を与えられてあなたの質問に答えるために:

1)IPアドレスはランダムに割り当てられません。通常、ネットワークとインターネットを介してトラフィックを正しくタイムリーにルーティングできるようにIPアドレスを割り当てるには、ある種の論理的な方法があります。

2)IPv4アドレスの最後のオクテットの分布は、上記の情報(および場合によってはネットワーク管理者の気分)に関連するいくつかの要因に依存するため、等しくありません。最後のオクテットだけに依存して「一意性」を提供することはできません。

Come on IPv6!


5

ネットワークは下から番号が付けられる傾向があるため、最後のオクテットは下端に向かって偏っている可能性があります。より良い方法は、IPアドレス全体を32ビットの符号なし整数として扱い、必要なバケット数でダイビングするときに剰余演算を使用して剰余を取得することです。これにより、後続の(数値的に)それぞれのアドレスが別のバケットに割り当てられます(最後のバケットに到達するとラップアラウンドします)。

例えば:

1.2.3.4 = 16909060
16909060 % 3 = 1

したがって、これは1.2.3.4をバケット1に入れます(バケットの番号は0、1、2です)。1.2.3.5はバケット2に入り、1.2.3.6はバケット0に入ります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.