CS/Network

5-2. 네트워크 계층과 라우팅 : 인터넷 주소 기법

pizzz 2022. 12. 23. 10:15

인터넷 주소 기법

 

세가지 호스트 식별자

- 호스트명 (예 : 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주소 포함

 

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)

255.255.252.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