IP 주소체계 정리(feat. 지하철 Wifi)

Halim Kim·2021년 6월 2일
0

CS기초 - Network

목록 보기
2/3

지하철 Wifi는 IP 주소를 몇개나 할당할 수 있나?

요즈음, 네트워크와 관련해서 궁금한 것이나 헷갈리는 것이 생기면 바로바로 왜 그런 것인지 생각하고 찾아보려는 노력을 하고 있다.

어제인가 생각 난 것인데, 지하철의 Wifi는 IP 주소를 어떻게 할당하는지가 궁금해졌다. 보통 Wifi는 192로 시작하는 Class C의 IP 주소를 사용하기 때문에 Host 파트인 8 bit로 IP 주소를 할당해야 한다.(브로드캐스팅용과 네트워크 주소 그 자체를 빼면 2^8 - 2 = 254개의 주소를 할당 할 수 있다.)

그런데 지하철에는 사람이 엄청 많은데 어떻게 Class C로 IP 주소를 사람들 모두에게 할당할 수 있는걸까? 그래서 지하철은 Class B를 써서 Host 파트를 더 늘리나 싶었지만, 오늘 아침 지하철에서 한번 IP 주소를 확인해보니 192로 시작하는 Class C의 주소였다. (다시 생각해보니까 지하철 한칸에 아무리 많아도 200명도 안될 것 같긴하다.)

진짜로 찾아보니 160명이 지하철 혼잡도 100%라고 한다. 그런데 출근길의 지하철 객차의 혼잡도가 200%가 넘을 때도 있다고 하는데, 이 말은 320명이 넘게 한 객차에 있다는 말이된다. 그렇다면 Class C로는 IP 주소를 다 할당하지 못할텐데 기회가 되면 실험을 해봐야겠다.

참고 : 지하철에는 맨끝 객차에 중계기(Repeater)가 있고 객차마다 Wifi 공유기가 설치되어 있다고 한다. (중계기는 약해진 신호를 받아 다시 강하게 전달해주는 역할을 함.)

사실 이런 고민들을 학창 시절, 컴퓨터 네트워크와 컴퓨터 통신 수업을 들을 때 했어야 했는데 그러지 않았던 것이 아쉽다. 그랬으면 공부할 때 이해도 더 잘되고 기억에도 오래 남을 수 있었을텐데..

네트워크 수업 때 IP 주소체계를 처음 들었을 때, 이해가 잘 되지 않았다. 지금 생각해보면 위와 같이 실생활에 적용해보면 쉽게 알 수 있었을 것이라는 생각이 든다.

IP 주소 체계

IP는 크게 IPv6와 IPv4 두가지로 나뉜다. IPv6는 IPv4의 고갈 문제 때문에 주소의 크기를 확장시킨 것이라고 짧게 설명을 마치겠다.

IPv4는 32 bit로 이루어져있으며 클래스로 구분을 한다. 클래스는 A,B,C,D,E 총 5개로 나뉘어진다. IPv4의 32 bit 중 가장 앞쪽에 1이 몇개인지에 따라 클래스를 구분할 수 있다. A Class는 맨 앞에 1이 0개, B는 1개, C는 2개 이런 방식이다. 아래에 IP 주소를 이진수로 표현해놓은 것에 볼드체를 해놓았다.

Class A

이진수 : 00000001.x.x.x

1을 넣은 이유는 Class A는 Network 파트가 8 bit까지인데, 모두가 0이면 특수한 용도의 주소로 사용되기 때문이다.

  • 범위 : 1.0.0.0~126.255.255.255
  • Network Part : 맨 앞 8 bit
  • Host Part : 나머지 24 bit
  • 할당 가능 IP 개수 : 2^24 - 2개

Class B

  • 이진수 : 10000000.x.x.x
  • 범위 : 128.0.0.0~191.255.255.255
  • Network Part : 맨 앞 16 bit
  • Host Part : 나머지 16 bit
  • 할당 가능 IP 개수 : 2^16 - 2개

Class C

  • 이진수 : 11000000.x.x.x
  • 범위 : 192.0.0.0~223.255.255.255
  • Network Part : 맨 앞 24 bit
  • Host Part : 나머지 8 bit
  • 할당 가능 IP 개수 : 2^8 - 2개(254개)

    A, B, C Class까지가 일반적으로 사용되는 IP 주소 Class이다.

Class D

  • 이진수 11100000.x.x.x
  • 범위 : 224.0.0.0~239.255.255.255

멀티캐스팅 용도로 사용되는 Class이다.

Class E

  • 이진수 11110000.x.x.x
  • 범위 : 240.0.0.0~255.255.255.255

연구개발 목적으로 사용되는 Class이다.

Class 범위 계산

처음에는 범위도 외워야 하는 줄 알았다. 그러나 조금만 더 생각해보면 쉽게 계산할 수 있다는 것을 알 수 있다. 예를 들면 Class C의 경우 범위가 192.0.0.0~223.255.255.255인데, Class C의 경우 맨 앞의 비트가 110이어야 하고 111이 되면 안된다. 그렇기 때문에 Class C Network 파트의 최댓값은 이진수로 11011111223인것을 알 수 있다.

그러니까 Class C의 주소는 192.0.0.0~223.255.255.255의 범위를 가지는 것이고 다른 Class들도 마찬가지이다.

특수 목적 IPv4 주소

위의 A, B, C Class에서 할당 가능 IP 개수를 보면 Host 파트가 24, 16, 8 bit임에도 2^24개, 2^16개, 2^8개의 IP 주소를 할당할 수 없다. 이는 특수한 목적의 IPv4 주소가 따로 지정되어 있기 때문인데, Host 파트의 경우 전부 0이면 네트워크 주소 그 자체를 가리키고, 전부 1이면 그 네트워크 내에 모든 주소로 브로드캐스트를 하기 위한 용도로 사용된다.

특수 목적 IPv4 주소는 아래의 표와 같이 정리할 수 있다.

특수 주소Network PartHost Part
Network 주소특정0
직접 브로드캐스팅 하기 위한 주소특정모두 1
제한된 브로드캐스팅을 위한 주소모두 1모두 1
이 네트워크에 있는 이 호스트모두 0모두 0
이 네트워크에 있는 특정 호스트모두 0특정
Loop Back127상관 없음

CIDR

이 포스팅에서 IPv4의 주소 체계를 이야기했고, Class가 어떻게 나누어지는지 설명하였다. 그러나 현재는 IP 주소를 Class로 나누지 않고 CIDR(Classless Inter-Domain Routing)이라는 기법을 사용한다. 이에 대해서는 AWS로 VPC라는 가상의 네트워크를 생성하면서 설명했으니 참고하길 바란다.
https://velog.io/@halim_limha/AWS-VPC-EC2-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC

profile
나는 하림

0개의 댓글