IPv4 주소의 마지막 부분에서 자릿수 분포는 얼마나됩니까? 3으로 나누면 작동하며 나머지 부분에 따라

내가 만든 웹 사이트에서 작동하는 리디렉션 스크립트가 있습니다. 사이트 A 방문자 1/3, 사이트 B 방문자 1/3, 사이트 C 1/3을 보냅니다.

사용자 IPv4 주소 (0-255)의 마지막 부분을 3으로 나누면 작동하며 나머지 부분에 따라 사이트 A, B 또는 C로 리디렉션됩니다. 지금까지 사이트 A에는 109 명의 방문자가 있었고 사이트 B에는 85 명이 있고 사이트 C에는 101 명이있었습니다.

IPv4 주소의 마지막 세그먼트가 완전히 무작위로 할당되었다고 가정하면 정확합니까?

또한 마지막 세그먼트의 숫자 분포는 동일합니까?



답변

IPv4 주소는 당신이 생각하는 것처럼 서투르고 무작위 적이 지 않습니다.

첫째, IPv4 주소는 각각 0에서 255까지의 4 옥텟으로 분리됩니다. 그러나 0은 네트워크에 예약 된 번호이고 255는 브로드 캐스트에 예약되어 있으므로 실제로는 1-254로 제한됩니다. .

둘째, IPv4 주소는 조직 및 ISP에 블록 단위로 할당 된 다음 8 진수의 비트가 네트워크를 나타내는 비트와 개별 호스트를 나타내는 비트를 나타내는 서브넷 주소를 기반으로 해당 주소를 세분화하는 것을 고려해야합니다. 그래서:

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

즉, 마지막 옥텟을 항상 ‘무작위’로 계산할 수는 없습니다.

셋째, IP 주소 할당 방법이 항상 무작위 인 것은 아닙니다. 대부분의 가정 사용자는 DHCP를 통해 ISP가 할당 한 공용 IP 주소를 얻습니다. 여기서 엔드 포인트는 컴퓨터가 선택한 주소 (일반적으로 사용 가능한 풀에서 처음 온 / 먼저 제공됨)를 가져옵니다. 다른 번호가 할당되기까지의 시간 (보통 며칠). 대기업 (기업, 정부)은 종종 자신이 항상 오는 주소 집합을 가지게되며 이러한 주소는 정적 인 것이며 변경되지 않습니다.

위의 정보를 바탕으로 질문에 대답하려면 다음을 수행하십시오.

1) IP 주소는 임의로 할당되지 않습니다. 일반적으로 네트워크와 인터넷에서 트래픽을 정확하고시기 적절하게 라우팅 할 수 있도록 IP 주소를 할당하는 일종의 논리적 방법이 있습니다.

2) IPv4 주소의 마지막 옥텟의 분포는 위의 정보 (및 경우에 따라 네트워크 관리자의 분위기)와 관련된 여러 가지 요인에 따라 달라 지므로 동일하지 않습니다. ‘고유성’을 제공하기 위해 마지막 옥텟에만 의존 할 수는 없습니다.

Come on IPv6!


답변

마지막 옥텟은 네트워크가 하단에서 번호를 매기는 경향이 있기 때문에 하단으로 치우칠 수 있습니다. 더 나은 방법은 전체 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에 들어갑니다.


답변