Network

[Network] Network Layer 와 인터넷 주소 (클래스형, 비클래스형)

aliceintr 2021. 4. 3. 09:57
반응형

 

지난 포스팅인 OSI Layer 7에 의 하나의 레이어이자 중요한 레이어 중에 하나인 네트워크 계층의 필요성과 여기서 사용되는 IP 즉 인터넷 주소를 지정하는 방법인 클래스형 비클 래스형 방법에 대해 알아보고자 한다.

지난 포스팅을 참고하려면 아래를 클릭

[Network] - [Network] OSI 7 Layer 개념 overview

 

[Network] OSI 7 Layer 개념 overview

네트워크 표준 중 가장 중요한 컨셉인 OSI 7 Layer7 에 대해서 설명을 해보고자 한다. 프로토콜의 계층구조 : 복잡한 프로토콜의 기능을 특징별로 구성하여 문제점을 수정/교체하거나 성능 개선을

buildgoodhabit.tistory.com

글의 순서는

1. 네트워크 계층의 목적과 필요성

2. 인터넷 주소

3. IPv4 주소

4. 클래스형 주소 지정

5. 비 클래스형 주소 지정


네트워크 계층의 목적과 필요성

네트워크 계층의 필요성

물리계층(1bit를 어떻게 정확히 목적지에 전달할지 에 집중)과 데이터링크 계층(1덩어리의 데이터를 어떻게 오류 없이 전달할지에 집중)은 로컬에서만 동작하며, 하나의 노드에서 다음 노드까지의 데이터 전달만을 진행한다.

그러나 현대 사회에 서버 간의 물리적 거리가 엄청나게 멀고 여러 네트워크 LAN, WAN을 경유해야 되는 상황에서 물리계층과 데이터 링크 계층만을 가지고 데이터를 최종 목적지로 전달하는 것은 어렵다.

따라서 이러한 한계를 해결하기 위해 네트워크 계층이 필요하며 네트워크 계층은 호스트와 호스트 사이의 전달과 라우터에서의 경로를 지정하는 기능을 수행한다.

즉 패킷에 포함된 목적지의 주소 값을 판단해 다음 경로를 설정해 준다.

물리계층과 데이터 계층 간의 통신 표시
인터넷의 네트워크 계층표시

데이터 교환 방식

1) 회선교환 : 데이터 전송 이전에 송신자와 수신자 사이에 물리적 회선을 연결 e.g. 전화선 , =실제로 모든 물리적 서버가 연결되어 있어야 하기 때문에 자원의 낭비가 심하다.- 물리, 데이터링크 계층의 방식이라고 보면 쉽다.

2) 패킷 교환 : 전송할 메시지를 패킷 단위로 분할한다. 송신자로부터 수신자까지 패킷 단위 경로를 판단하고 전달하기 때문에 자원의 효율적 사용이 가능하다. 세부적으로 데이터그램 방식과 가상 회선 방식으로 구분된다. e.g. 인터넷 IP 프로토콜 즉, 네트워크 계층에서 사용되는 방식이다.


인터넷 주소

물리 주소 Physical Address

물리 주소는 데이터 링크 계층에서 사용되며 전송 도중에서 중간 노드에서 변경한다. 지역적으로 유일한 값을 가진다.

논리 주소 Logical Address

논리 주소는 네트워크 계층에서 사용되며 최종 수신지 도착까지 변경되지 않는다. 전체 네트워크에서 유일한 값으로 지정되어있다.

포트 주소 Port Address

전송계층에서 사용하는 주소로서 최종 수신지 내부에서 처리 프로세스를 구분하기 위한 주소 값이다.

별정 주소 Specific Address

응용계층에서 사용하는 주소 개념으로 URL이나 email 주소를 말함.

 

도식화하면 아래와 같다.

 


IPv4 주소

IP 주소의 기본은 TCP/IP 프로토콜을 사용하는 모든 네트워크 장비를 구분하는 주소라 생각하면 쉽다.

이러한 장치를 구분하는 식별자의 역할로서 32bit (4byte)의 길이를 가지고 있으며 4 옥 테트라고도 한다. (1 옥 테트 octet= 8bit)

IPv4 주소 영역 = 2의  32 승 = 4,294,967,296 로서 전 세계 모든 장비에 할당하기에 부족하여 IPv6를 사용한다. (128bit)

8비트로 쪼개어 2진 표기 혹은 점 10진 표기법을 한다.

이러한 아이피 주소를 구하는 데는 비트 연산의 기법이 많이 이용된다.

아래는 비트 연산 법의 방법과 예제이다.

비트 NOT 연산

OR 연산

AND 연산

 

 

 


클래스형 주소 지정

네트워크 주소는 한 인터페이스의 제공 주소인 네트워크 주소(netid)와 그 인터페이스 안의 객체를 구분하는 호스트 주소(hostid)로 구성되어있다.

주소 할당을 요청하는 기관에 netid를 할당하고 그 기관 내부에서 호스트마다 hostid를 할당하여 주소를 배정한다.

이러한 네트워크 주소와 호스트 주소 구분 방식에 따라 클래스를 분류하게 되며 그것은 아래와 같은 구조를 가진다.

주소 공간의 크기를 클래스별로 다르게 하여 용도에 맞는 클래스 주소를 사용하도록 하는 방식이다.

 

1. 클래스 형 주소 지정 = 2단계 주소 지정

 1단계) netid 지정

 2단계) hostid 지정

2. 특정 netid에 대해서 첫 번째 주소는 hostId를 "0"으로 지정

3. 특정 netid에 대해서 마지막 주소는 hostId를 "1111.. 11"로 지정

 

 


Class A

1) 첫 번째 1개 비트 값은 "0"

2) NET ID : 상위 1byte (8bit)로 netId 지정 : 8bit - 1bit(첫 번째 비트 값 0) = 7bit로 표현할 수 있는 블록의 개수는 2^7 = 128개이다. 즉, 전 세계에서 128개의 기관만 class A netID를 사용 가능하다.

3) HOST ID : 2^24 = 16,777,216개 = 블록에 속한 주소 개수

4) 문제점: 128개의 기관에 할당된 블록에 소속된 모든 주소가 사용될 가능성이 거의 없음 ( 16,777,216개)

Class B

1) 첫 번째와 두 번째 비트 값이 "10"

2) NET ID : 상위 2byte(16bit)로 netId 지정 : 16bit - 2bit("10") = 14bit로 표현할 수 있는 블록의 개수는 2^14 = 16,384개이다.

3) HOST ID : 2^(32-16) = 2^16 = 65,536개 = 블록에 속한 주소 개수

4) 문제점: 특정 기관에 할당된 블록에 소속된 모든 주소가 사용될 가능성이 거의 없음 

Class C

1) 첫 번째, 두 번째, 세 번째 비트 값이 "110"

2) NET ID : 상위 3byte(24bit)로 netId 지정 : 24bit - 3bit("110") = 21bit로 표현할 수 있는 블록의 개수는 2^21 = 2,097,152개이다.

3) HOST ID : 2^(32-24) = 2^8 = 256개 = 블록에 속한 주소 개수

4) 문제점: 많은 경우에 클래스 C의 주소 개수 256개로는 부족함

Class D , E

1) Class D : Multi- Casting을 위해서 설계함

2) Class E : 추후에 발생할 용도를 위해 예약하고 비워 둠

 

 


예시문제

1. 블록 내의 주소 값이 73.22.17.25 일 때에 블록 내의 첫 번째 주소와 마지막 주소를 구하라

풀이과정)

1) 73 > 이진법 (8bit /1byte) 표현 : 01001001 > 1번째 비트 값이 "0"이므로 Class A

2) Class A의 netid는 1byte d이므로 73은 유지하고, 나머지 3byte (22.17.25)가 hostid에 해당함

∴ 첫 번째 주소 = 73.0.0,0

    마지막 주소 = 73.255.255.255

 

2. 블록 내의 주소 값이 200.11.8.45 일 때에 블록 내의 첫 번째 주소와 마지막 주소를 구하라

풀이과정)

1) 200 > 이진법 (8bit /1byte) 표현 : 11001000 > 1,2,4번째 비트 값이 "110"이므로 Class C

2) Class C의 netid는 3byte 이므로 200.11.8은 유지하고, 나머지 1byte (45)가 hostid에 해당함

∴ 첫 번째 주소 = 200.11.8.0

    마지막 주소 = 200.11.8.255

 


 

네트워크 주소

블록의 1번째 주소 값으로서 hostid 값이 모두 0인 주소 값, 네트워크를 구분하는 식별자

 

Network Mask (Default Mask)

비클 래스형의 핵심 개념이다. 주소 값을 이용해 네트워크 주소를 찾아낼 때 사용하는 마스크이다.

Destination address와 Network Mask를 이용해서 AND 연산을 하면 Network address를 찾을 수 있다.

예시문제

라우터가 수신한 패킷의 Destination address 가 201.24.67.32이다. 라우터는 패킷의 Network address 주소를 어떻게 찾을 수 있을까?

1) 201 > 이진법 (8bit /1byte) 표현 : 11001001 > 1,2,4번째 비트 값이 "110"이므로 Class C

2) Class C의 Network Mask는 255.255.255.0

3) 201.24.67.32와 255.255.255.0의 And 연산 수행

Destination address | 201.24.67.32 >   binary : 11001001.00011000.01000011.00100000

Network Mask          | 255.255.255.0 > binary : 11111111.11111111.11111111.00000000

_______________________________________________________________________

Network address      |                            binary : 11001001.00011000.01000011.00000000   > Decimal : 201.24.67.0


비 클래스형 주소 지정

비 클래스 형 주소 지정 방법은 아래의 링크에 더 자세히 설명되어 있다.

[Network] - [Network] 서브 네팅 subnetting과 슈퍼 네팅 supernetting

 

[Network] 서브네팅 subnetting 과 슈퍼네팅 supernetting

인터넷 주소의 블록을 나누거나 합치는 개념인 서브네팅과 슈퍼네팅에 대해 알아보도록 하자. 아래 링크는 네트워크 주소와 관련한 이전 글이니 참고하기 바란다. [Network] - [Network] Network Layer 와

buildgoodhabit.tistory.com

 

 

 

반응형