IP 주소란?
- 인터넷 주소로 전 세계 주소를 IANA에서 대륙별로 할당, 관리한다.
- 네트워크 장비 식별을 위해 고유한 IP 주소 사용
- 32bit로 이루어진 주소 (약 43억개)
- bit는 2진수 한자리(0 or 1)
- 2진수 8자리를 묶어서 1Byte 혹은 1옥텟이라 부름
- 1옥텟은 8비트로 2^8이 되니 32bit인 IP주소 개수는 2^32으로 약 43억개
- 따라서 0.0.0.0 ~ 255.255.255.255(호스트ID) 까지 사용!
- 실제 네트워크 장비는 IP주소로 2진수를 사용하지만 사람이 볼때는 10진수로 변환해 표기(Dotted Decimal Notation)
IP 주소 Class
- A 클래스
- 처음 한 비트는 항상 0 -> 따라서 십진수로 1~127
- 그러나 첫 옥텟이 0과 127로 시작하는 주소는 예약이 되어있어 1~126까지가 클래스A
- 첫 8비트를 네트워크 ID로 사용하기 때문에 호스트 ID는 2^24로 약 1670만개의 개수를 가진다.
- B 클래스
- 처음 두 비트는 항상 10으로 고정(128~191)
- 두 옥텟을 네트워크 ID로 사용하기에 호스트 ID 개수는 2^16 = 65536개
- C 클래스
- 처음 세 비트는 110(192~223)
- 첫 세 옥텟을 네트워크 ID로 사용하기에 호스트 ID 개수는 256개
A, B, C 는 가용한 호스트 ID 개수를 통해 알 수 있듯 각각 대, 중, 소형 네트워크에 적합하다.
D는 멀티캐스트 통신을 위해, E는 연구용을 위해 사용되는 주소다.
호스트 ID가 모두 0인 주소는 네트워크를 나타내는 네트워크 주소이고, 모두 1인 주소는 네트워크의 모든 호스트로 데이터를 전달하기 위한 브로드캐스트 주소다. (사용할 수 없다.)
서브넷 마스크란
- IP주소에서 네트워크 ID와 호스트ID를 구분하기 위해 사용
- 32 비트로 구성되어 있으며 표기법 또한 IP주소와 동일
- 네트워크 ID는 1로, 호스트 ID는 0으로 표기
- A 클래스 - 255.0.0.0
- B 클래스 - 255.255.0.0
- C클래스 - 255.255.255.0
- Prefix를 통해 다른 방법으로 표현할 수 있다.
- IP 주소 뒤에 네트워크 ID 비트 개수를 나타내면 된다.
- 클래스 A의 경우 10.10.10.10 / 8 로 표기
Subneting
- IP 주소를 효율적으로 나누어 사용하기 위한 방법
- 50개의 호스트 ID가 필요한 네트워크를 구성해야할 때, C 클래스를 이용해 64개씩 4개의 호스트 ID를 구성한다면 버려지는 IP주소를 최대한 줄여 다른 네트워크에 활용할 수 있다.
- 이때 호스트 ID의 왼쪽 부터 서브넷 구분 비트를 할당해 서브넷팅한다.
- 예를 들어 192.168.10.0 / 24 의 C 클래스 IP 주소를 절반으로 나누려 한다면, 다음과 같다.
- 먼저 2진수로 풀어쓴다.
- 호스트 ID의 비트 하나만 서브넷 구분 비트로 할당한다.
- 0~127 // 128~255 두 개의 그룹으로 나누어진다. 중요한 것은 서브넷 구분비트까지 네트워크 ID에 들어가는데, 이에 따라 0과 128은 네트워크 주소 /. 127, 255 는 브로드캐스트 주소가 된다 직접 이진수로 표현해보면 쉽게 이해된다.
- 따라서 실제 장비에 할당 가능한 주소는 1~126, 129~254까지만 가능하다.
- 또 서브넷 마스크를 표현할 때 서브넷 구분 비트까지 표현해주어야 한다. 위의 경우는 255.255.255.128 프리픽스로는 / 25
- C 클래스 주소를 64개씩 4개로 서브네팅하려면 서브넷 구분 비트를 2개를 주면 된다. 주의할 점은 네트워크 주소, 브로드캐스트 주소와 S/M 표기일 것이다.
- 서브네팅을 이해하고 있다면, 주소 나누기와 호스트 ID 범위 구하기가 가능해야 할 것!
'개발 > 네트워크' 카테고리의 다른 글
TCP/IP 4계층과 OSI 7계층, 전송 계층의 handshake (0) | 2023.05.03 |
---|---|
HTTP 통신의 이해 (0) | 2023.01.06 |