1. IP 주소
1) 기본
4 Bytes로 이뤄진 32bit(2진수)로 구성
2) 범위
0.0.0.0 ~255.255.255.255 (2의 32제곱, 약 43억개의 IP 주소가 가능)
* 1 byte = 8 bit, 255 = 2 의 8 제곱근 - 1
3) 구성
network ID / host ID
목적지 IP를 찾아올 때 먼저, network ID 로 network를 찾은 다음 host ID 로 network 내 host를 찾는 방식이다.
첫번째 byte의 첫번째 값 |
범위 | 8bit(1byte) |
8bit |
8bit |
8bit |
|
class A | 0 | 0~127 | network ID |
Host ID |
||
class B | 10 |
128~191 | network ID |
Host ID |
||
class C | 110 | 192~223 | network ID |
Host ID |
||
class D | 1110 | 224~239 | Multicast address |
|||
class E | 1111 | 240~255 | Reserved for future use |
사무실에서 많이 사용하는 IP 인 192.168.*.* 은 classC 로 3번째 byte까지 networkID로 3번째 byte까지 같아야 같은 network이다.
4) packet 전달
목적지와 발신지가 같은 network 라면, packet을 직접 전달하는 것이 가능하나, 다른 network라면, 불가능하다.
5) public IP / private IP
|
public IP |
private IP |
사용 환경 |
internet |
internet이 연결되지 않는 사설 network |
고유성 여부 |
고유 |
사설 network 내에서만 고유 - IP 주소의 낭비 막기 |
범위 |
class 내 public IP 범위가 있음 |
class 내 private IP 범위가 있음 class A : 10.0.0.0~10.255.255.255 class B : 172.16.0.0~172.31.255.255 class C : 192.160.0.0~192.168.255.255 |
비고 |
|
internet 연결을 해야 한다면, NAT(Network Access Translation) 을 통해 private IP 를 public IP 로 변환하는 것이 가능하다. |
2. subnet mask
1) 구성
- 32 bit 로 구성
- network ID 의 범위 : bit 가 모두 1
- host ID 의 범위 : bit 가 모두 0
ex) IP주소가 192.168.3.5 라면, 해당 IP 는 class C 로 3 byte까지 network ID가 된다. 따라서 subnet mask 는 255.255.255.0 이 된다.
2) 목적
- 특정 IP 주소의 network ID 와 host ID 의 구별을 쉽게 하기 위함
3. subnetting
1) 목적
- broadcasting domain 의 크기를 줄여, traffic을 감소시키고, 관리를 편리하게 하기 위함
2) 방식
- 2단계 계층 구조(network ID / host ID)
-> 3단계 계층 구조(network ID / subnet ID / host ID)
이때 network ID를 변경할 경우, 외부에서 해당 network를 찾아오지 못한다.
subnet ID 는 host ID 의 일부 bit를 network ID 처럼 사용하는 것이다. network ID를 변경하면, 발신지에서 목적지 IP를 찾아올 때, 해당 network를 찾지 못하게 된다.
이때 subnet ID 가 모두 0 이거나, 모두 1인 경우는 사용하지 못한다. 0 인 경우는 network address 와 subnet address가 중복될 수 있기 때문이며, 1인 경우는 broadcasting address 와 subnet address가 중복될 수 있기 때문이다. 따라서 subnet 이 생성될 수 있는 경우의 수에서 항상 2를 빼야 한다. 그리고 subnet ID 가 모두 0 이거나, 모두 1인 경우는 해당 IP 주소를 사용할 수 없기 때문에, 2/전체 경우의 수 만큼의 IP 주소는 사용할 수 없다.
예를 들어 subnet ID 가 2자리라면, 가능한 subnet은 2의 2제곱근 - 2 = 2 개 (IP 주소 중 2/4개는 사용할 수 없다.)
subnet ID 가 3자리라면, 가능한 subnet은 2의 3제곱근 - 2 = 6개 (IP 주소 중 2/8 개는 사용할 수 없다.)
3) 예시 문제
한 host의 IP 주소가 206.120.6.0 인 network가 있다. 여기서 30개의 host와 4개의 subnet을 만들려고 한다. subnet mask의 값은 어떻게 되어야 하는가? |
a. 206.120.6.0 은 206 >=192 이므로, class C 이며, network ID는 3byte 까지이다.
b. 4개의 subnet을 만들려면, 4 번째 byte의 세번째 자리까지가 subnet ID가 되어야 한다.
그렬 경우 2의 3제곱근(8) - 2 = 6 개의 subnet을 만들 수 있다.
c. 30개의 host를 만들려면, host ID 가 최소한 5 bit는 되어야 한다.
30 = 2의 5제곱근(32)-2(모두 0인 경우는 network address, 모두 1인 경우는 broadcasting address로 사용자가 지정할 수 없다.)
따라서 앞 3byte까지는 network ID, 4번째 byte의 3번째 bit까지는 subnet ID, 4~8번째 bit는 host ID가 되어야 한다.
이때 network ID 와 subnet ID 는 같은 속성을 가지므로, subnet mask 는 255.255.255.224.0 이 되어야 한다. (224 = 2의 7 제곱근 + 2의 6제곱근 + 2의 5제곱근)
'Programming Theory > Network' 카테고리의 다른 글
L4 스위치의 Load Balancing 정책 (0) | 2015.10.26 |
---|---|
전문 항목 유형 (0) | 2015.03.02 |
network 명령 (0) | 2014.12.28 |
IP/ARP/RARP/ICMP protocol (0) | 2014.12.28 |
UDP protocol (0) | 2014.12.27 |