본문 바로가기

컴퓨터네트워크

네트워크층: 데이터전송 - 인터넷 프로토콜(IP) 버전 4

728x90
반응형

인터넷에 대한 각 장치의 연결을 식별하기 위해 TCP/IP  프로토콜 그룹의 IP 계층에서 사용되는 식별자는 인터넷 주소 혹은 IP 주소라고 한다.

IPv4 주소는 32비트 주소로 라우터나 호스트의 인터넷 연결을 범용적이고 유일하게 만들어준다.

IP주소는 장치가 다른 네트워크로 이동하면 IP 주소가 변경되기 때문에 라우터나 호스트가 아닌 연결의 주소이다.

IPv4 주소는 각 인터넷으로의 연결을 하나씩 유일하게 정의한다.

 

주소 공간

IPv4 프로토콜은 주소 공간을 가진다.

주소 공간은 프로토콜에서 사용 가능한 전체 주소의 수이다.

프로토콜이 주소를 정의하기 위해 b비트를 사용한다면,  주소 공간은 2^b가 된다.

 

표기법

IPv4 주소를 나타내기 위해 2진수 표기법, 점 10진수 표기법, 16진수 표기법을 사용할 수 있다.

주소 지정에서 계층구조

전송에 연계된 통신 네트워크에서는 주소 시스템이 계층적으로 되어 있다.

32비트 IPv4 주소는 두 부분으로 구분되는 계층 구조이다.

주소의 첫 번째 부분은 접두사(prefix)로 네트워크를 정의하고, 주소의 두 번째 부분은 접미사(suffix)로 노드를 정의한다.

접두사의 길이는 n비트이고, 접미사의 길이는 (32-n)비트이다.

접두사는 고정되거나 가변 길이를 가진다.

 

클래스 기반의 주소 지정

전체 주소 공간은 A, B, C, D, E 클래스로 5개의 클래스로 구분된다.

 

 클래스 A의 네트워크 길이는 8비트이지만 0으로 고정된 첫 번째 비트는 클래스를 지정하기 때문에 네트워크 식별자로 7비트만 사용가능하다.

 클래스 B의 네트워크 길이는 16비트이지만 (10)_2로 고정된 처음 두 비트가 클래스로 지정되기 때문에 네트워크 식별자로 14비트만 사용이 가능하다.

 클래스 C 주소에서 네트워크의 길이는 24비트이지만 처음 3비트가 클래스를 지정하기 때문에 네트워크 식별자로 21비트만 사용이 가능하다.

 클래스 D는 접두사와 접미사로 구분되지 않고 멀티캐스트 주소로 사용된다. 

 클래스 E는 클래스 D와 마찬가지로 접두사와 접미사로 구분되지 않으며 예약된 주소이다.

 

클래스 기반의 주소는 주소 고갈의 문제로 더 이상 사용되지 않는다. 

 

클래스 없는 주소 지정

인터넷의 성장 및 장기적인 관점에서 해결책으로 더 큰 주소 공간이 필요했다. 장기적인 관점으로 IPv6가 고안되었지만 단기적인 관점의 해결책으로는 클래스 없는 주소 지정 방식의 IPv4 주소가 사용된다.

즉, 주소 고갈을 해결하기 위해 클래스 권한이 제거되었다.

클래스 없는 주소에서는 클래스에 속하지 않는 가변 길이의 블록이 사용된다. 1 주소 블록, 2 주소 블록, 4 주소 블록, 128 주소 블록 혹은 그 이상의 주소 블록을 사용할 수 있다.

클래스 없는 주소 지정에서 전체 주소는 가변 길이의 블록으로 나누어진다. 접두사(Prefix)는 네트워크를 지정하고 접미사(Surffix)는 노드를 지정한다.

 

접두사(Prefix) 길이: 슬래시 표기법 CIDR(Classless interdomain routing)

클래스 없는 주소 지정에서는 접두사(Prefix)의 길이가 주소에 포함되지 않기 때문에 길이를 따로 지정해 주어야 한다. 이 경우 길이 n은 슬래시(/)로 구분하여 주소에 추가된다.

 

주소에서 정보 추출

주소가 주어지면, 주소가 소속된 블록에 대한 주소의 수, 첫 번째 주소 그리고 마지막 주소, 총 3가지 정보를 알아야한다. 

접두사의 길이 n이 주어지므로 세 가지 정보를 쉽게 알 수 있다.

1. 첫 번째 주소를 찾기 위해 제일 왼쪽의 n개의 비트는 유지하고, 제일 오른쪽(32-n)개의 비트는 0으로 설정한다.

2. 마지막 주소를 찾기 위해 제일 왼쪽의 n개의 비트는 유지하고, 제일 오른쪽의 (32-n)개의 비트는 1로 설정한다.

 

주소마스크

블록 내의 주소에서 첫 번째 주소와 마지막 주소를 찾는 다른 방법은 주소 마스크를 사용하는 것이다.

주소 마스크는 32비트의 숫자로 처음 n개의 비트는 1로 설정되고 나머지 (32-n)개의 비트는 0으로 설정된다.

컴퓨터는 (2_(32-n) - 1)의 보수이기 때문에 주소 마스크를 쉽게 찾을 수 있다.

1. 블록 내의 주소 수는 N = Not(Mask) + 1 이다.

2. 블록 내의 첫 번째 주소 = (Any addressed in the block) AND (Mask)

3. 블록 내의 마지막 주소 = (Any addressed in the block) OR [Not (Mask)]

 

네트워크 주소

네트워크 주소인 첫 번째 주소는 패킷을 목적지로 라우팅하는데 사용되기 때문에 중요하다. 

m개의 라우터 인터페이스, m개의 인터넷 네트워크로 구성되어있다고 가정하였을 때, 어떤 발신지 호스트에서 라우터로 패킷이 도착하면 어느 인터페이스를 통해 패킷을 전송해야 하는지 라우터는 알아야한다.

 

네트워크 주소를 알고 나면 라우터는 포워딩 테이블을 참조하여 패킷이 전송될 인터페이스를 찾는다. 네트워크 주소는 실질적인 식발자로 각 네트워크를 구별한다.

 

블록 할당

블록 할당은 ICANN(Internet Corporation for Assigned Names and Numbers)이 결정한다. 

 

서브네팅(subnetting)

서브네팅을 사용하면 더 많은 계층을 만들 수 있다.

일정 범위의 주소를 가진 기관(혹은 ISP)은 부 범위로 나누고, 이를 서브네트워크(혹은 서브넷)에 할당할 수 있다. 

즉, 서브네트워크를 다시 여러 개의 서브-서브네트워크로 나눌 수 있다. 한 개의 네트워크를 서브넷 마스크를 통해 여러 개의 서브넷 네트워크로 분할 하는 것이다. 네트워크 자원을 효율적으로 사용할 수 있는 장점이 있다.

 

설계: 기관에 할당된 전체 주소의 수를 N, 접두사(Prefix)의 길이를 n, 각 서브넷이 할당된 주소의 수를 N_sub, 각 서브넷의 접두사(Prefix) 길이를 n_sub이라고 할 때, 

1) 각 서브네트워크의 주소의 수는 2의 거듭제곱이어야 한다.

2) 각 서브네트워크의 접두사(Prefix)의 길이는 n_sub = 32 - log_2 N_sub 이다.

3_ 각 서브네트워크의 첫 주소는 서브네트워크의 주소 수로 나눌 수 있어야 한다. 이는 더 큰 서브네트워크에 주소를 먼저 할당하면 된다.

주소 집단화

CIDR 기법의 장점은 주소 집단화(address aggregation, 혹은 주소 요약/ 경로 요약)이다.

주소 블록을 더 큰 블록으로 만들기 위해 조합할 때 더 큰 블록의 접두사(Prefix)를 통해 라우팅이 수행 될 수 있다.

각 ISP는 할당받은 주소를 더 작은 서브블록으로 나누어 이를 고객들에게 제공해준다.

비클래스형 주소 할당의 장점 중 하나 이며 서브네팅과 대조적인 개념이다.

 

주 프로토콜과 보조 프로토콜

버전 4에서 네트워크층은 하나의 주 프로토콜과 3개의 보조 프로토콜로 구성된다.

주 프로토콜, 인터넷 프로토콜(Internet Protocol version 4, IPv4)는 패킷화, 포워딩, 그리고 네트워크층에서 패킷 전달을 수행한다.

보조 프로토콜 3개는 ICMP(인터넷 제어 메시지 프로토콜), IGMP(인터넷 그룹 관리 프로토콜), ARP(주소 결정 프로토콜) 이다. 

인터넷 제어 메시지 프로토콜(Internet Control Message Protocol version 4, ICMPv4)는 IPv4를 돕는 프로토콜로 네트워크층의 전송중에 발생하는 오류를 제어한다.

IGMP(Internet Group Management Protocol)는 IPv4의 멀티캐스트를 도와준다.

ARP(Address Resolution Protocol)는 네트워크 주소와 링크 계층 주소를 매핑시킨다.

네트워크층의 프로토콜

IPv4는 신뢰성이 없는 비연결형 데이터그램 프로토콜로 최선의 노력 전달 서비스(best-effort delivery service)이다.

최선의 노력 전달 : IPv4 패킷이 전송중에 훼손 혹은 손실되거나, 순서에 맞지 않게 도착 지연되어 네트워크에 혼잡을 발생시킬 수 있는 것을 뜻한다.

만약 신뢰성이 중요하다면 IPv4는 TCP(전송 제어 프로토콜, Transmission Control Protocol)처럼 신뢰성 있는 전송층(Transport layer) 프로토콜과 함께 사용되어야 한다.

또한 IPv4는 데이터그램 방식의 패킷 교환망 비연결형 프로토콜이다. 이는 각 데이터그램이 독립적으로 전송되며 목적지로 갈 때 서로 다른 경로로 전달 될 수 있음을 의미한다. 이로 인해 데이터그램의 패킷이 순서에 맞지 않게 전송되며  전송 중에 훼손되거나 분실될 수도 있다.

 

반응형