5-2. 네트워크 계층과 라우팅 : 인터넷 주소 기법
인터넷 주소 기법
세가지 호스트 식별자
- 호스트명 (예 : www.naver.com)
- IP주소 (예 : 203.241.176.13) : IPV4(MAC주소 32비트사용), IPV6등
- MAC주소(또는 물리적 하드웨어 주소, 48비트) : LAN카드의 NIC(네트워크 인터페이스카드)에 쓰여있음, 수정 불가
- 호스트명
- 프로토콜은 이해하지 못함
- 사용자가 사용하기 편하도록 문자열로 구성되어 있음
- 호스트명은 도메인명을 포함 (호스트명 + 도메인명)
- mail.naver.com / blog.naver.com (mail, blog등이 호스트명)
- 도메인명은 점으로 구분되는 일련의 간단한 이름으로 구성
- 호스트명은 자신의 도메인 내에서 유일해야 함
- IP주소
- 각 호스트는 적어도 하나의 IP주소가 할당
- TCP/IP프로토콜이 호스트를 유일하게 식별하기 위해 사용하는 32비트(IPV4) 이진수
- 개별 호스트에 할당된 IP주소의 중요한 특성은 그 호스트를 포함하고 있는 네트워크에서 유일
- MAC주소
- LAN과 같은 물리적 네트워크에서 LAN에 연결된 각 호스트는 유일한 MAC주소 갖고 있음
- NIC 제조될 때 할당
- 48비트 MAC주소 사용
주소변환
- 인터넷이 제대로 동작하기 위해 반드시 필요한 두 가지 종류의 주소 변환
- 호스트명 -> IP주소 -> MAC주소
- 호스트명 -> IP주소 변환 : DNS(Domain Name System) 사용
- IP주소 -> MAC주소 변환 : ARP(Address Resolution Protocol) 사용 (모든 LAN에 연결되어 있는 모든 호스트에 설치되어 있음)
IP 주소
송신측 호스트 -> 목적지 호스트로 IP데이터그램 전송하기 위해 라우팅 기능 수행
- IP 프로토콜에서 라우팅 기능을 수행하기 위해 송수신측 호스트의 IP주소 이용
- IP 데이터그램 헤더에 송신측 호스트의 IP주소와 목적지 호스트의 IP주소 포함
- 32비트 길이, 네트워크 ID + 호스트 ID 로 구성
- 네트워크 ID의 왼쪽 비트들은 IP주소가 어느 클래스에 속해있는지를 나타냄
- 클래스A : 0
- 클래스B : 10
- 클래스C : 110
- 클래스D : 1110 -> 멀티캐스트용으로 사용
*멀티캐스트용 : 특정 Sender가 특정 N명의 수신자에게 보내고자 할 때 클래스 D사용
클래스A (0~127)
가장 작은 경우 00000000 (0)
가장 큰 경우 01111111 (127)
ex) 35.x.x.x
* 8비트씩 구성(IPV4 32비트 사용)
net id = 35
host id = 2^24 (네트워크에 할당할 수 있는 호스트 갯수, 즉 호스트를 만들수있는 경우의 수)
*모든 값이 0이거나 1인 경우 제외 -2
실제 = 2^24 -2
클래스B (128~191)
가장 작은 경우 10000000 (128)
가장 큰 경우 10111111 (191)
ex) 141.223.x.x
net id = 141.223
host id = 2^16 = 65536
*모든 값이 0이거나 1인 경우 제외 -2
실제 = 65534개 호스트 할당 가능
클래스C (192~223)
가장 작은 경우 11000000 (192)
가장 큰 경우 11011111 (223)
ex) 203.241.176.x
net id = 203.241.176
host id = 2^8 = 256
*모든 값이 0이거나 1인 경우 제외 -2
실제 = 254개 호스트 할당 가능
클래스D (224~239)
가장 작은 경우 11100000 (224)
가장 큰 경우 11101111 (239)
ex) 234.15.155.6
멀티캐스트용 주소
서브넷(Subnet)
- 원래 IP주소는 네트워크 ID와 호스트 ID로 2단계 계층만 허용
-> 인터넷을 구성하고 있는 네트워크의 수가 상대적으로 적을 땐 충분
- 인터넷은 수천, 수만의 네트워크를 포함하여 여기에 수백만의 호스트가 연결
- TCP/IP주소 방식은 엄청나게 많은 네트워크를 수용하기 위해서 서브넷의 개념고안
호스트 ID (서브넷 ID + 호스트 ID)
호스트 ID중 몇비트를 서브넷ID로 지정해서 사용
- 2^6 = 64 -> 64-2 = 62개의 분리된 네트워크 만들 수 있음
- 같은 클래스B 네트워크 ID사용하지만 다른 서브넷 ID값 사용
서브넷 마스크(Mask)
- IP주소 중 몇 비트가 네트워크를 나타내기 위해 사용되는지, 몇 비트가 호스트를 나타내기 위해 사용되는지를 가리키는 값
- 네트워크와 서브넷을 가리킬 때 대응하는 각 비트 위치에 1, 호스트를 가리키기위해 0을 나타내는 32비트 자료구조
- 클래스B의 점-십진 표기를 사용한 서브넷 마스크는 255.255.252.0 -> 서브넷을 사용했는지 확인가능 (255.255.0.0)
- 서브넷 사용하지 않는 등급 A,B,C에 대한 서브넷 마스크
클래스A : 255.0.0.0
클래스B : 255.255.0.0
클래스C : 255.255.255.0
서브넷ID의 선택
- 서브넷 ID 필드의 길이는 구성하려는 네트워크 수와 네트워크 각각에 포함하고자 하는 호스트 수에 근거하여 선택
예) 6비트 서브넷 ID를 가진 클래스 B주소
- 동일한 네트워크ID를 사용하여 62개의 다른 서브넷 사용가능 (2^6 -2)
- 16(네트워크ID) + 6(서브넷ID) + 10(호스트ID)
- 네트워크 당 1022(2^10 -2) 호스트 까지 연결
예제1) 인터넷에 연결되어 있는 어떤 컴퓨터 A의 IP주소는 130.97.16.132, 서브넷 마스크 값은 255.255.255.192 일 때
a) A의 호스트ID값은?
b) 서브넷의 총 개수는?
c) 하나의 서브넷에 존재하는 호스트의 최대개수는?
a)
IP주소 이진수 10000010 | 01100001 | 00010000 | 10000100
서브넷 마스크 11111111 | 11111111 | 11111111 | 11000000
net id = 26bit
host id = 6bit
답) 000100, 4
b)
130 -> 클래스B
255.255.0.0 -> 서브넷 마스크 255.255.255.192
10비트 사용
답) 2^10 - 2 = 1022
c)
호스트ID 6비트 할당
답) 2^6 - 2 = 62
예제2) 다음 IP주소의 클래스는 무엇인가
a) 9.4.3.47
b) 203.42.62.1
c) 103.88.77.22
d) 151.101355
3) 222.127.16.4
풀이)
0~127 -> A
128~191 -> B
192~223 -> C
224~239 -> D
답)
a) 9.4.3.47 --> A
b) 203.42.62.1 --> C
c) 103.88.77.22 --> A
d) 151.101355 --> B
3) 222.127.16.4 --> C