본문 바로가기
Computer Science/컴퓨터 네트워크

컴퓨터 네트워크: IPv4 Address - Classful Addressing

by 청량리 물냉면 2021. 12. 1.
반응형

IPv4 Address

2. Classful Addressing

IP주소(or 인터넷 주소): TCP/IP 프로토콜의 IP layer에서 인터넷에 연결된 각 장치를 식별하기 위해 사용되는 식별자.

IPv4 주소: 32bits. 전세계에 하나분인 유일한 주소. 2^32(약 40억)개의 IP주소가 존재. 

 

 

Occupation of address space

2^32 = 약 40억개 주소 존재Class A: 2^31, 약 20억개 , 50%

Class B: 2^30, 약 10억개 , 25%

Class C: 2^29, 약 5억개 , 12.5%

...(생략)

 

 

Finding the class of address

Q1. 주어진 주소에 대한 Class 찾기

a. 00000001 00001011 00001011 11101111 = Class A

b. 11000001 10000011 00011011 11111111 = Class C

c. 10100111 11011011 10001011 01101111 = Class B

 

Q2. 주어진 주소에 대한 Class 찾기

a. 227.12.14.87

b. 193.14.56.22

c. 14.23.120.8

 

a.  The first byte is 227 (224 ~ 239) = Class D

b.  The first byte is 193 (192 ~ 223) = Class C

c.  The first byte is 14 (0 ~ 127) = Class A

 

 

Netid and hostid

  • 클래스 별로 Netid, Hostid의 비율이 다르다.
  • Netid는 고정비트이며 Hostid는 사용자가 사용할 수 있는 네트워크 주소를 나타내는 비트이다.
  • A Class: 00000000 00000000 00000000 00000000 (파란색 글자: netid)
  • B Class: 00000000 00000000 00000000 00000000 
  • C Class: 00000000 00000000 00000000 00000000 

 

Blocks in Class A

A Class: 00000000 00000000 00000000 00000000

  • 1byte는 netid, 나머지 3byte는 host id.
  • 관리자는 3byte를 통해 대략 1,600만개의 ip주소를 사용자에게 부여할 수 있다.  (2^24) 
  • A Class는 32bit 중 맨 앞 비트가 항상 0으로 시작한다. 00000000 00000000 00000000 00000000
  • 따라서 Class A의 최대 비트수는 127.255.255.255가 된다.  ☞01111111 11111111 11111111 11111111
  • 범위: 0.0.0.0 ~ 127.255.255.255

 

Blocks in Class B

B Class: 10000000 00000000 00000000 00000000

  • 2byte는 netid, 2byte는 host id.
  • 관리자는 2byte를 통해 대략 65,000개의 ip주소를 사용자에게 부여할 수 있다. (2^16) 
  • B Class는 32bit 중 맨 앞 두 비트가 항상 10으로 시작한다. 10000000 00000000 00000000 00000000
  • 따라서 Class B의 최대 비트수는 191.255.255.255가 된다.  ☞10111111 11111111 11111111 11111111
  • 범위: 128.0.0.0 ~ 191.255.255.255

 

Blocks in Class C

C Class: 11000000 00000000 00000000 00000000

  • 3byte는 netid, 1byte는 host id.
  • 관리자는 1byte를 통해 256개의 ip주소를 사용자에게 부여할 수 있다. (2^8) 
  • C Class는 32bit 중 맨 앞 세 비트가 항상 110으로 시작한다. 11000000 00000000 00000000 00000000
  • 따라서 Class C의 최대 비트수는 223.255.255.255가 된다.  ☞11011111 11111111 11111111 11111111
  • 범위: 192.0.0.0 ~ 223.255.255.255

 

Two-level addressing in classful addressing

 

 

Information extraction in classful addressing

첫번째 byte를 보고 class를 찾을 수 있다.  

A: 0 ~ 127

B: 128 ~ 191

C: 192 ~ 223

 

 

Example 5.13

블록의 주소가 73.22.17.25일 때, 블록의 주소 갯수, 첫 번째 주소, 마지막 주소는?

 

주소의 첫번째 byte가 73이므로 해당 블록은 class A에 속해있다.

1. 블록의 주소 갯수: class A이므로 n = 8, 따라서 N = 2^(32-8) = 16,212,216
2. 블록의 시작 주소를 찾으려면 맨 처음 1byte(8비트)를 유지하고 맨 오른쪽 24비트를 모두 0으로 설정한다. 첫 번째 주소는 73.0.0.0/8이며, 여기서 8은 n의 값이다.
3. 마지막 주소를 찾기 위해 맨 처음 1byte(8비트)를 유지하고 맨 오른쪽 24비트를 모두 1로 설정한다. 마지막 주소는 73.255.255.255/8

 

*Network address: 시작 주소, 네트워크를 대표하는 주소

*Special: 마지막 주소, broadcast용.

시작/마지막 주소는 특별한 주소로 사용자에게 할당하지 않는다. 

 

 

Example 5.14

블록의 주소가 180.8.17.9로 주어질 때 블록의 주소 갯수, 첫 번째 주소, 마지막 주소는?

 

주소의 첫번째 byte가 180이므로 해당 블록은 class B에 속해있다.

1. 블록의 주소 갯수: class B이므로 n = 16, 따라서 N = 2^(32-16) = 65,536
2. 블록의 시작 주소를 찾으려면 맨 왼쪽 2byte(16비트)를 유지하고 맨 오른쪽 16비트를 모두 0으로 설정한다. 첫 번째 주소는 180.8.0.0/16이며, 여기서 16은 n의 값이다.
3. 마지막 주소를 찾기 위해 맨 왼쪽 2byte(16비트)를 유지하고 맨 오른쪽 16비트를 모두 1로 설정한다. 마지막 주소: 180.8.255.255/16

 

 

Example 5.15

블록의 주소가 200.11.8.45로 주어질 때 블록의 주소 갯수, 첫 번째 주소, 마지막 주소는?

 

주소의 첫번째 byte가 200이므로 해당 블록은 class C에 속해있다.

1. 블록의 주소 갯수: class C이므로 n = 24, 따라서 N = 2^(32-24) = 256
2. 블록의 시작 주소를 찾으려면 맨 왼쪽 3byte(24비트)를 유지하고 맨 오른쪽 8비트를 모두 0으로 설정한다. 첫 번째 주소는 200.11.8.0/24이며, 여기서 24는 n의 값이다.
3. 마지막 주소를 찾기 위해 맨 왼쪽 3byte(24비트)를 유지하고 맨 오른쪽 8비트를 모두 1로 설정한다. 마지막 주소: 200.11.8.255/24

 

 

Sample Internet

하나의 라우터에는 여러 개의 주소가 할당될 수 있다. 

 

 

Network addresses

라우팅 테이블(routing table)

컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시키는 목적으로 사용된다. 라우팅 프로토콜의 가장 중요한 목적이 바로 이러한 라우팅 테이블의 구성이다.

가장 단순한 모델인 hop-by-hop 라우팅 방식에서, 각 라우터의 라우팅 테이블은 모든 목적지 정보에 대해 해당 목적지에 도달하기 위해서 거쳐야 할 다음 라우터의 정보를 가지고 있다.

제한된 저장공간에 수많은 목적지로의 노선을 저장해야하는 요구사항은 라우팅 테이블 구성에서 큰 어려움으로 다가온다. 라우팅에서 하나의 중요한 기본 가정은 유사한 주소는 비슷한 주소의 목적지는 인접해있으리라는 것이며, 이는 다수의 목적지 주소를 하나의 라우팅 테이블 항목에 관리할 수 있게 해준다.

(출처: 위키백과 '라우팅 테이블')

 

→ 라우팅 테이블에는 네트워크의 시작주소만을 적는다. 

 

 

Network mask

네트워크 주소 추출 방법 -> mask 이용

 

 

Finding a network address using the default mask

목적지 주소와 해당 class의 mask를 and 연산하면 netid는 살고 hostid는 0으로 초기화된다.

 

 

Example 5.16

라우터는 목적지 주소 201.24.67.32의 패킷을 수신한다. 라우터가 패킷의 네트워크 주소를 찾는 방법은?


해당 주소는 클래스 C에 속하기 때문에 라우터가 네트워크 주소를 찾기 위해서는 클래스 C의 기본 마스크인 255.255.255.0을 적용해야 한다.

 

 

Example 5.18 (subnetting 전)

  • 위 그림은 subnetting 전의 클래스 B 주소를 사용하는 네트워크를 보여준다.
  • 하나의 네트워크는 216개의 호스트로 구성되어 있으며, 전체 네트워크는 하나의 연결을 통해 인터넷의 라우터 중 하나에 연결된다.
  • '/16'는 netid의 길이를 나타낸다. (class B)

 

 

Example 5.19 (subnetting 후)

  • 위 그림은 예제 5.18의 네트워크를 subnetting한 후의 네트워크이다.
  • 전체 네트워크는 여전히 동일한 라우터를 통해 인터넷에 연결되어 있다.
  • 네트워크는 개인 라우터를 사용하여 네트워크를 네 개의 하위 네트워크로 나눈다.
  • 외부 인터넷들은 여전히 이들을 하나의 네트워크로 본다.(네트워크 주소, 즉 네트워크 시작 주소를 대표 주소로 간주한다.)
  • 내부적으로 네트워크는 4개의 하위 네트워크로 구성되어 있다. 각 하위 네트워크는 이제 214개의 호스트를 가질 수 있다.(216 - 2(시작, 마지막 주소) = 214)
  • 위 네트워크는 4개의 다른 단과대가 존재하는 대학 캠퍼스에 비유할 수 있다.
  • subnetting 후, 각 단과대는 자체 하위 네트워크를 가지고 있지만, 여전히 전체 캠퍼스는 외부 인터넷을 위한 하나의 네트워크이다. ex) ㅇㅇ대 -> ㅇㅇ대 자연대, ㅇㅇ대 사범대, ㅇㅇ대 공대, ㅇㅇ대 경영대...
  • /16 와 /18은 netid와 subnetid의 길이를 나타낸다.

앞 2byte는 10진수, 뒤 2byte는 2진수

 

 

Network mask and subnetwork mask

 

Example 5.20

예제 5.19에서는 클래스 B 네트워크를 4개의 sub네트워크로 나누었다.

클래스 B이므로 n = 16

n1 = n2 = n3 = n4 = 16 + log4(log(분할네트워크갯수), 몇 비트를 subnet을 위해 할당해야 하는지 알아내기 위한 로그) = 18. 총 18비트를 봐야 sub 네트워크의 주소를 알 수 있다. 즉, subnet mask는 18개의 1과 14개의 0을 가진다(subnet mask = 11111111.11111111.11000000.00000000).

subnet 마스크는 255.255.192.0으로 클래스 B의 네트워크 마스크(255.255.0.0)와 다르다.

예제 5.19 site router의 라우팅 테이블

 

 

Example 5.21

예제 5.19에서 클래스B의 네트워크를 4개로 분할했다. 그 중 subnet 2의 주소 중 하나가 141.14.120.77이므로 서브넷 주소는 다음과 같이 찾을 수 있다.

1, 2, 4번째 바이트의 값은 AND 연산을 사용하여 계산된다. 3번째 바이트의 값은 AND 연산을 통해 계산한다.

*subnet 네트워크 주소를 구할 때는 주소를 binary로 바꾼 후 계산하면 훨씬 계산이 편리하다. 

 

 

Comparison of subnet, default

Class C 기준 subnet, default mask 비교

 

서브넷 구성 시 네트워크를 8개의 서브블록으로 나누려면 총 8비트가 필요하다. 따라서 n(=24) + log8(=3) = 27

서브넷마스크27개의 1과 4개의 0으로 이루어져 있다. 

기본 마스크24개 (=n)의 1과 7개의 0으로 이루어져 있다


자료 출처

 

TCP/IP Protocol Suite 4th Edition Slide
(Behrouz A. Forouzan 저, McGraw-Hill, 2010)

 

 

참고

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=haks2198&logNo=220136675560 

 

아이피 클래스(IP Class)에 대하여...

아이피 클래스에 대해서 알아보자. 컴퓨터를 하면서 "어떻게 내 ip는 이렇게 할당받았을까?" 라는 생각을 ...

blog.naver.com

 

반응형