본문 바로가기

별걸다하는 IT/네트워크_소켓_통신

IP주소 클래스 종류(A클래스, B클래스 등등..)란 무엇인가?

반응형

안녕하세요

오늘도 간단한 네트워크 포스팅을 들고 왔는데요.

오늘은 'IP클래스'에 대해 이야기를 해보려고 합니다.

종종 IT시험에도 출제되는 주제기도 하죠?

참고로 이 포스팅을 수월하게 이해하기 위해서는, 네트워크주소와 호스트주소의 개념이 필요합니다.

 

IP클래스란 무엇이냐 왜 나온 것이냐

IPv4 주소체계를 사용하다가 IP가 부족해져서 IPv6가 나온건데요

 

IPv4, IPv6 주소체계에 대한 건 아래 포스팅에서 자세히 설명하고 있으니 궁금하신 분은 참고해서 보는걸 추천드려요.

2020.03.31 - [별걸다하는 IT/네트워크_소켓_통신] - [네트워크] IP주소란? IPv4와 IPv6. IP주소는 왜 필요한가? 내 컴퓨터 IP 확인하는 법

 

IP클래스는 예전에 IPv4를 사용했을 때 IP를 할당하는 방법이였어요. 

지금은 더 이상 사용되지 않고, 클래스 방식이 아닌 CIDR 방식으로 할당하도록 1993년도에 바뀌었는데요.

물론 만들어진 이유도 있고, 사용되지 않는 이유도 있겠죠?

오늘은 그 히스토리를 알아볼거예요.

 

IP는 0.0.0.0부터 255.255.255.255까지 약 43억개 경우의 수가 존재하는데요

 

이 많은 IP를 사람들에게 어떻게 나눠줄까??!?가 요점입니다

회사원이 200명 이내인 중소기업 A회사에 필요한 IP개수와,

인원이 20000명이 넘어가는 대형기업 B회사에 필요한 IP수는 당연히 다르겠죠~

같은 회사면 같은 네트워크를 사용해야하는데~ 직원이 200명이라 한 네트워크에 속하는 IP 200개를 받았는데

이후에 한 명이 더 입사하면 어떻게해~~!

 

직원이라는게 퇴사하기도 하고 추가되기도 하는거고 딱 그 수만큼 IP개수를 가지고 있을 수가 없어요. 

또 회사마다 일일이 직원을 조사해서 나눈다는 것도 말이 안되고..

아무튼 위 예시에서 A네트워크에는 호스트수가 200개 이상이여야하는거고

B네트워크에는 호스트수가 20000개 이상이여야 하는거죠.

 

예전에 어떻게 IP를 나눠줄까 생각한 방법이,

IP를 큰 뭉텅이 몇개

그거보다 작은 뭉텅이 몇개..

그거보다 작은 뭉텅이 몇개.. 이렇게 효율적으로 쪼개놨다가

필요할 상황에 맞춰 나눠주는거 어때? 이 할당 방식이 IP클래스 방식이예요.

 

그래서 IP를 어떻게 나눈건데 - 클래스!

클래스에는 A,B,C,D,E가 있는데요. 이게 바로 큰 뭉텅이, 작은 뭉텅이 이런식으로 나누고 사이즈별로 이름을 붙인거라 생각하면 돼요. 각 클래스는 어떻게 나뉘어 만들어진걸까요? 

그림 출처: https://www.routerfreak.com/definitive-guide-ip-address-classes/

IP전체를 A와 나머지로 쪼갭니다. 

그 나머지를 반으로 또 쪼개서 B와 나머지로 나눠요.

거기서 남은 나머지를 또 반으로 쪼개서 C와 나머지로 나눕니다.

요렇게 동일한 방법으로 E까지 가는거예요

그림 출처: https://www.redbubble.com/i/canvas-print/A1-A2-A3-A4-A5-A6-A7-reminder-by-StudioRenate/16009488.5Y5V7

실생활에도 잘 찾아보면 요런 방식이 꽤 있는데요.

한 예로, 우리가 아는 A4, A3, A2,. A1 용지크기 개념이랑 똑같은겁니다!

 

즉 A클래스는 큰 뭉텅이 몇개로 구성된 그룹인데

큰뭉텅이 크기 * 개수 =  IPv4전체개수의 반개가 된다!

B클래스는 중간 뭉텅이 몇개로 구성된 그룹인데 

중간뭉텅이 크기 * 개수 = IPv4전체개수 반개의 반개다.

 

IP 각 클래스의 IP 범위

즉 하나의 클래스는 몇 개의 호스트 IP를 가지는가에 따라서 나눠집니다.

A클래스는 전체 IP를 반띵한거라했죠?

 

반띵을 어떻게 할까요? 전체 IPv4를 반띵하기 전에 작은 수를 예시로 이해하고 갑시다.

4자리 bit로 예시를 들면 0000이 최소 1111이 최대예요.

즉 최대 가지수는 2의 4승해서 16개가 됩니다. (0000, 0001, 0010, 0011 ~1111일때까지.)

그럼 16의 반띵은 8개인데 

0000(0)부터 0111(7)까지가 8개, 1000(8)부터 1111(15)까지가 8개

결론적으로 최상위 비트 하나를 변경하면 반으로 나눠집니다

만약 IP가 전체 16개였다면, A클래스는 0000부터 B클래스 주소 전까지, B클래스는 1000부터 나머지가 되겠죠

 

동일원리로, IPv4는 bit로 표현했을 때

000000000.000000000.000000000.000000000~11111111.11111111.11111111.11111111예요.

 

■ A클래스는

00000000.00000000.00000000.00000000 부터

01111111.11111111.11111111.11111111 까지

■ B클래스는

10000000.00000000.00000000.00000000 부터

10111111.11111111.11111111.11111111 까지 

■ C클래스는

11000000.00000000.00000000.00000000 부터

11011111.11111111.11111111.11111111 까지

■ D클래스는

11100000.00000000.00000000.00000000 부터

11101111.11111111.11111111.11111111 까지

■ E클래스는

11110000.00000000.00000000.00000000 부터

11111111.11111111.11111111.11111111 까지가 됩니다.

 

자, A클래스와 B클래스를 비교해볼께요

IPv4가 0000~부터 1111~까지인데 이를 반으로 나눠 A클래스와 나머지로 나눈거죠.

0000~부터 1000~전까지가 반이 된거고 다른 반은 1000~부터 1111~ 요렇게 된거예요.

반으로 나누니까 최상위 비트가 차이나는 걸 알 수 있어요.

B클래스는 그 나머지 1000~에서부터 1111~까지를 반띵한거라

1100~부터가 된 것을 추측할 수 있어요. 

 

요렇게 나눈 클래스 범위를 10진수로 다시 정리해보면 첫 번째 옥탯이 위처럼 된답니다.

8bit가 모두 0일 때는 0이고 모두 1일때에는 10진수로 255예요.

즉 클래스 A의 IP전체 범위는 0.0.0.0부터 127.255.255.255가 되는거죠

클래스 B는 128.0.0.0부터 191.255.255.255, 클래스 C는 192.0.0.0부터 223.255.255.255 요런식으로 범위가 나눠지는거예요.

 

클래스의 네트워크 영역과 호스트 영역

각 클래스에 대한 개념이 잡혔을거라고 생각합니다.

근데 클래스는 뭉텅이 몇개로 이뤄져있다 하지 않았나?

맞아요 뭉텅이 뭉텅이가 네트워크라고 하면 (A회사, B회사, C회사 이런개념..)

하나의 뭉텅이 안에 들어있는 개수는 호스트라고 생각하면 됩니다. (직원 100명 개개인)

사진 출처: https://www.geeksforgeeks.org/introduction-of-classful-ip-addressing/

A클래스의 경우 할당 가능한 IP의 개수는 IPv4 주소 개수 반띵인 2,147,483,648개인데요

A클래스의 경우 호스트 크기가 가장 커야하기 때문에 (뭉텅이가 가장 큼)

첫 번째 옥탯 말고 뒤의 세 옥탯을 모두 호스트주소로 사용하고 있어요.

 

A회사에 베인 사원 컴퓨터와 디바 과장 컴퓨터가 있으면

베인 사원 컴퓨터의 IP와 디바 과장 컴퓨터의 IP는 동일한 네트워크에 있을 테니 첫 번째 옥탯 값은 동일하겠죠.

만약 베인 사원 컴퓨터 IP가 25.0.16.24이면 네트워크 IP는 25, 호스트 IP는 0.16.24가 되는건데요.

디바 과장 컴퓨터 IP는 베인 것과 네트워크 IP가 같아야하니까 25로 동일하고 호스트 주소가 다르겠죠?

디바 과장 IP는 따라서 25.0.16.32 요런식으로 부여될거예요.

A클래스의 경우, 뒤의 3 옥탯 즉 24bit를 호스트 주소로 사용하고 있기 때문에

1개 네트워크 당 호스트 개수는 2의 24승 결과 값인 16,777,216이 됩니다.

저 노란색 봉다리 개수, 즉 네트워크의 개수는 2의 8승 해서 128개입니다.

(사용 불가한 대표IP, 브로드캐스트IP, 와일드카드IP 이런거 다 고려하지 않고 봤을때~) 

요런식으로 계산하면 돼요~!

 

IP주소 누가 할당해주나

클래스IP에 대한 부분은 어느정도 정리가 되었을거라고 생각이 되는데요

IP할당에 대해서 짧게 얘기하고 넘어가봅시다. IP는 누가할당해주는걸까요?

전세계의 IP관리 할당하는 기관은 IANA입니다.

우리나라에 있는 KISA(한국 인터넷 진흥원)이 IANA기관에서 우리나라에서 사용할 IP대역을 할당받아오는데요.

KISA는 IP를 받아와서, ISP업체에게 IP를 할당해줍니다.

그리고 ISP업체(인터넷 서비스 사업자)가 회사같은 클라이언트에게 IP를 할당해주는거랍니다.

반응형

왜 이제는 클래스 기반 IP주소를 안써?

현재 안쓰더라도, 왜 바뀌었는지 문제점이 뭐였는지 알아야하기 때문에 우리는 공부해야 합니다!

 

인터넷회사에서 우리 회사의 PC가 100대가 있다라고 가정해봅시다.

그때 ISP업체에서 우리 회사에서 사용할 IP대역을 192.193.194.0(c클래스)를 할당해주면

C클래스에서 호스트 아이디로 사용할 수 있는 개수가 254개예요.

근데 우리 회사 직원은 100명밖에 없는데...?

즉 254-100 = 154개의 IP가 남게되는거죠.

클래스IP 할당방식은 IP가 낭비된다 라는 문제를 갖게 되는 거예요.

 

내가 사용하지도 않은건데 이렇게 갖고 있으면

결국 다른 고객한테 부여할 IP가 모잘라지는거겠죠? IP개수는 한정되어있으니까요.

클래스는 그 대역 자체를 줘버리면 다른 영역한테 남는 IP를 사용하게 할 수 가 없어요.

실제로 2015년도에 북미기관인 ARIN에서는 IP가 고갈되었다고 밝혔었죠.

삼성본사한테 A클래스를 줘도 삼성에서 사용하는 IP가 아무리 많아도 천육백만이 되지는 않을거예요.

많이 남아돌텐데 그걸 처리를 못한다..!! 예전에야 IP가 절대 다 차지 않을거라 생각해서 신경안썼다면 IPv4 개수도 부족한 지금 이거 심각한 이슈인겁니다. 

그래서 개발된 것이 서브넷팅이예요.

 

[요약]

즉 클래스 기반의 IP사용은 IP를 효율적으로 사용할 수 없어, 현재는 클래스 기반의 IP사용이 극히 드물다.

IP낭비를 최소화하기 위해 서브넷마스크라는 개념이 도입이되었고, 이는 IP낭비를 최소화할 수 있다

 

간단하게 작성하려했는데 괜히 글이 길어졌네요 후.. 시간이 훌쩍..

도움이 되었나요? 광고보답 공감, 댓글은 작성자에게 큰 힘이 됩니다.

반응형