IP 주소란?
네트워크 환경에서 컴퓨터(노드)간 통신하기 위해 각 컴퓨터에 부여된 네트워크 상 주소. 컴퓨터는 ip주소라는 주소체계를 통해 컴퓨터를 식별함.
IP 주소 체계는 IPv4와 IPv6으로 나뉨
IPv4
IPv4는 *8비트씩 4블럭으로 이루어져 있는 주소체계며 현재 주로 활용되고 있는 주소체계
8비트는 10진수로 표현하면 0~255 (2^8 = 256) 까지의 값을 가짐. 즉, 0~255가 4블럭으로 이루어져 있다 생각하면 된다
ip 주소를 확인하기 위해 cmd창에 ipconfig를 쳐보자.
xxx.xxx.xx.xx와 같은 형태로 나오게 된다. 하지만 생성할 수 있는 ip주소의 개수는 한정되어 있고 IP 주소를 할당받을 필요가 있는 기기는 증가하고 있다. 이런 문제를 해결하기 위해 나온 IP 주소체계가 IPv6다.
IPv4는 A, B, C, D, E 총 5개의 클래스로 나눌 수 있다. 그중 D와 E는 실제로 사용되는 일이 거의 없고, A, B, C 클래스에 속한 IP가 주로 사용된다. 클래스는 하나의 IP주소에서 네트워크 영역과 호스트 영역을 나누는 방법이자, 약속이다.
EX) 200.140.100.1이란 IP 주소가 있다고 가정해 보자. 200.140.100은 네트워크 영역이고 1은 호스트 IP라는 사실을 알 수 있다. 여기에서 네트워크 주소와 호스트 주소를 구분할 수 있는 건 바로 클래스 때문이다.
200.140.100.1 IP가 C클래스 이기 때문에 200.140.100 은 네트워크 주소이고, 1은 호스트 주소란 사실을 알아낸 것이다.
=> 이렇게 IP주소에는 클래스라는 개념이 있고 이 클래스의 개념을 알아야 어디까지가 네트워크 영역이고 호스트IP 영역인지 알 수 있다
IP주소를 3개의 클래스로 나누는 이유는 네트워크 크기에 따른 구분이라 생각하면 된다.
하나의 네트워크에서 몇개의 호스트 IP까지 가질 수 있는가에 따라서 클래스를 나눌 수 있다.
IP 주소 클래스는 A클래스, B클래스, C클래스, D클래스 E클래스로 나눠져 있다. 그러나. 하지만 보통 A, B, C 3개 정도만 알고있으면 충분하다 (나머지 D, E 클래스는 멀티캐스트용, 연구용으로 사용)
A클래스, B클래스, C클래스
A클래스
먼저 A클래스는 하나의 네트워크가 가질 수 있는 호스트 수가 제일 많은 클래스다.
IP주소를 32자리 2진수로 표현했을때, 맨 앞자리 수가 항상 0 인 경우가 바로 A클래스다.
즉 0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx 와 같이 되어있습니다. x는 0또는 1이다.
여기서 A클래스에서 가질 수 있는 IP범위는
0000 0000. 0000 0000. 0000 0000. 0000 0000~0111 1111. 1111 1111. 1111 1111. 1111 1111
이를 십진수로 표현하면 0.0.0.0~127.255.255.255 까지 입니다.
A클래스에서 첫번째 옥테드는 네트워크 부분을 나타내고 나머지 부분은 호스트 부분을 나타냅니다.
또 A클래스에서 네트워크 주소는 가장 작은 네트워크인 1.0.0.0 과 가장 큰 네트워크인 126.0.0.0 까지로 규정되어 있으며(0xxx xxxx에서 x가 가질수 있는 경우의 수가 네트워크 범위. 여기서 127은 제외) 참고로 네트워크에서 0은 호스트 부분이라는 뜻입니다.
IP주소 중에서 1부터 126으로 시작하는 네트워크는 A클래스라고 생각하면 됨. 그리고 호스트 주소가 가질 수 있는 갯수는 (2^24)-2개.
(-2 이유는 모두가 1인경우 브로드캐스트 주소로 사용하고 모두 0인경우엔 네트워크 주소로 사용하기 때문)
EX) A클래스로 11.0.0.0 네트워크 주소를 할당 받았다고 하자. 여기서 11. 은 네트워크이 되고 나머지 0.0.0 에 호스트 IP를 할당할 수 있다. 십진수 0.0.0 은 2진수로 표현하면 총 24개의 2진수로 표현이 가능하고 이는 곧 2^24 개의 호스트 IP를 가질 수 있다는 뜻이다.
십진수로 나타내면 11.0.0.0 ~ 11.255.255.255다. 하지만 여기서 11.0.0.0 은 네트워크 주소를 표현하기 위해서 호스트IP로 사용하면 안 된다. 또, 11.255.255.255 역시 브로드캐스트 주소로 사용하기 때문에 호스트 IP로 사용하면 안 된다. 따라서 (2^24) - 2를 해주는 것이다. A클래스에 대해서 모두 배웠고 B클래스, C클래스도 같은 원리로 진행된다.
B클래스
B클래스는 반드시 10으로 시작합니다. 2진수로 표현하면
10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx입니다.
B클래스의 IP 범위는 128.0.0.0 ~ 191.255.255.255까지고
네트워크 범위는 10xx xxxx. xxxx xxxx 에서 x들이 가질 수 있는 경우의 수다. (2^14 개)
호스트 주소 범위는 xxxx xxxx. xxxx xxxx 에서 x들의 경우의 수인 (2^16)-2개다.
(-2 는 네트워크 주소, 브로드캐스트 주소 사용으로 인해 호스트 주소에서 제외.)
C클래스
C클래스는 반드시 110으로 시작합니다. 2진수로 표현하면
110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx 입니다.
C클래스의 IP 범위는 192.0.0.0 ~ 223.255.255.255 까지이고
네트워크 범위는 110x xxxx. xxxx xxxx. xxxx xxxx 에서 x들이 가질 수 있는 경우의 수다. (2^21 개)
호스트 주소 범위는 xxxx xxxx 에서 x들이 가질 수 있는 경우의 수 (2^8)-2 개다.
(-2 는 네트워크 주소, 브로드캐스트 주소 사용으로 인해 호스트 주소에서 제외)
구분 | 2진수 시작은? (s 네트워크, h 호스트) | 네트워크 시작번호 (개수) | 호스트 범위 (개수) |
A클래스 | 0sss ssss. hhhh hhhh. hhhh hhhh. hhhh hhhh (0 시작, 네트워크 : 7bit, 호스트 : 24bit) |
1~126 시작 (2^7-1개: 127은 제외라 -1) |
2^24 -2 (-2 네트워크, 브로드캐스트 주소 제외) |
B클래스 | 10ss ssss .ssss ssss. hhhh hhhh. hhhh hhhh (10 시작, 네트워크 : 14bit, 호스트 : 16bit) |
128.0~191.255 시작 (2^14개) |
2^16 -2 (-2 네트워크, 브로드캐스트 주소 제외) |
C클래스 | 110s ssss. ssss ssss. ssss ssss. hhhh hhhh (110 시작, 네트워크 : 21bit, 호스트 : 8bit) |
192.0.0~223.255.255 시작 (2^22개) |
2^8 -2 (-2 네트워크, 브로드캐스트 주소 제외) |
(네트워크 범위가 커질수록 호스트 주소 범위는 작아짐 반비례 관계)
EX 1) 10.2.5.1
클래스 : A
네트워크 부분 : 10.0.0.0
호스트 부분 : 2.5.1
IPv6
IPv6는 16비트씩 8개의 블럭으로 이루어져 있는 주소체계며 현재 많이 활용되고 있지는 않지만, IP주소 고갈 문제의 해결을 위한 미래를 위한 주소체계다.
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
IPv6 주소는 2^128개의 주소를 만들 수 있다. (2^128=340,282,366,920,938,463,463
,374,607,431,768,211,456)
참고: https://limkydev.tistory.com/168
[Network] IP주소 클래스(A,B,C class)란?
*선행지식 2018/11/10 - [전공지식/Network] - [Network] IP주소란? (IP클래스를 이해하기 전 IP주소에 대해서 먼저 아셔야 이해하기 쉽습니다.) 1) IP주소의 클래스란? 지난시간 IP주소에 대해 배웠는데 잠시
limkydev.tistory.com
'CS' 카테고리의 다른 글
WIFI 보안 방식 (0) | 2021.08.04 |
---|---|
서브넷 마스크 (0) | 2021.08.04 |
LINUX 파일 시스템 (0) | 2021.07.28 |
쿠키, 세션 개념 및 차이점 (0) | 2021.07.28 |
MIME 개념 정리 (0) | 2021.07.28 |