Classful addressing
클래스 찾기
Two-level addressing
IPv$ 주소지정의 목적은 인터넷 패킷을 위한 (네트워크층의)목적지를 지정하는 것이다.
네트워크 내의 모든 주소는 한 블록에 속하므로 클래스 기반 주소지정에서는 각 주소는 netid와 hostid 부분을 포함한다. Netid는 네트워크를 정의하고 hostid는 네트워크에 연결된 특정 호스트를 정의한다. 다음 그림은 클래스 기반 주소지정에서 IPv4 주소를 보여준다. 클래스 내의 n 비트가 네트워크를 정의하면 32-n 비트는 호스트를 정의한다. 그러나 n의 값은 블록이 속한 클래스에 따른다. n의 값은 클래스가 A,B,C인가에 따라 각각 8, 16 또는 24가 될 수 있다.
Network mask
네트워크 주소를 추출하기 위하여 앞에서 설명한 방법은 개념을 설명하기 위한 것이었다. 인터넷 내의 라우터는 패킷의 목적지 주소에서 네트워크 주소를 추출하기 위하여 보통 알고리즘을 사용한다. 이를 위하여 네트워크 마스크를 사용한다. 클래스 기반 주소지정에서 네트워크 마스크(network mask) 또는 디폴트 마스크(default mask)는 n개의 왼쪽 비트는 1이고 (32-n)개의 오른쪽 비트는 0인 32비트 수이다. 클래스 기반 주소지정에소 n값은 클래스에 따라 다르므로 아래 그림과 같이 세 개의 디폴트 마스크가 있다.
패킷의 목적지 주소에서 네트워크 주소를 추출하기 위해 AND 연산을 사용한다.
Three-level addressing : Subnetting
IP 주소지정은 2계층 주소지정으로 설계 되었다. 인터넷 내의 호스트에 도달하기 위해 먼저 네트워크에 도달해야하고, 그 다음에 호스트에 도달해야한다. 다음의 두 가지 이유로 인해 두 계층보다 많은 계층이 필요함을 알게 되었다.
첫번째로 A,B 클래스의 보안과 관리 때문이고, 두번째로는 C블록이 대부분의 조직이 필요로 하는 크기보다 작으므로 클래스 A,B가 자신들의 블록을 더 작은 블록으로 나누어 C에게 공유하였다. 블록을 작은 블록으로 나누는 개념을 서브넷팅(Subnetting)이라고 부른다.
서브넷팅은 netid의 길이는 증가시키고 hostid의 길이는 감소시킨다. 네트워크를 같은 수의 호스트를 가지는 s개의 서브넷으로 나누면 다음과 같이 각 서브넷의 subnetid를 구할 수 있다.
Supernetting
대부분 기관은 할당받은 블록을 다른 조직과 공유하지 않으므로 서브넷팅은 클래스 기반 주소지정에서 생기는 주소 고갈 문제를 완전히 해결할 수 없다. 클래스C가 블록은 남아있지만 클래스 C블록의 크기는 인터넷에 연결하기 원하는 기관의 요구사항을 만족하기에는 충분히 크지 않으므로 슈퍼넷팅(Supernetting)이라는 해결책이 도입되었다. 슈퍼넷팅을 사용함으로써, 기관은 큰 범위의 주소를 생성하기 위해 몇 개의 클래스 C블록을 신청할 수 있다. 예를 들어, 1000개의 주소가 필요한 기관은 4개의 클래스C 블록을 부여받을 수 있다.
슈퍼넷팅은 두 가지 새로운 문제를 발생시킨다. 첫째로 결합될 수 있는 블록의 수는 2의 거듭제곱이므로, 주소의 낭비가 발생한다. 두 번재로 슈퍼넷팅과 서브넷팅은 인터넷 내에서 패킷라우팅을 더우 복잡하게만든다.
Classless Addressing
Block allocation (블록 할당)
Subnetting (서브넷팅)
Address aggregation (주소 결합)
CIDR 구조의 한 가지 장점은 주소 결합이다. ICANN은 ISP에게 큰 주소 블록을 할당한다. ISP는 할당된 블록을 여러 개의 서브-블록으로 나눈 후에 각 서브-블록을 고객들에게 할당한다. 여러 개의 주소 블록이 하나의 블록으로 결합될 수 있으며 ISP에게 할당될 수 있다.
Special Addresses
주소의 일부 블록은 특수 목적을 위하여 예약된 것이다.
All-Zeros address
하나의 단일 주소로 표현되는 0.0.0.0/32 블록은 IPv4 패킷을 전송하고자 하는 호스트가 자신의 IPv4 주소를 모르는 경우에 통신을 위하여 사용한다.
일반적으로 부트스트랩(bootstrap) 시간에 이 주소를 사용한다. 호스트는 자신의 주소를 알기위하여 이 주소를 발신지 주소로 설정하고 목적지 주소로 제한된 브로드캐스트 주소(limited broadcast address)로 설정한 IPv4 패킷을 부트스트랩 서버(DHCP 서버)로 전송한다.
All-Ones address
하나의 단일 주소로 표현되는 1.1.1.1/32 블록은 현제 네트워크 내의 제한된 브로드캐스트 주소(limited broadcast address)로 예약되었다.
네트워크 내의 모든 다른 호스트에게 메시지를 전송하고자 하는 호스트는 이 주소를 IPv4 패킷의 목적지 주소로 사용한다. 라우터는 브로드캐스팅을 로컬 네트워크로 제한하기 위하여 이런 유형의 주소를 가지고 있는 패킷의 포워딩을 막는다
Loopback Address
127.0.0.0/8 블록은 루프백 주소(loopback address)로 사용된다. 루프백 주소는 컴퓨터 내에 설치된 소프트웨어를 시험하기 위하여 사용되는 주소이다.
클라이언트 프로세스(실행 중인 응용 프로그램)가 동일한 컴퓨터에 있는 서버 프로세스로 메시지를 전송하는 경우에 사용될 수 있다.
Private address
여러 블록이 사설 용도를 위하여 할당되었다. 이 주소들은 전역 네트워크에서 인식되지 않는다. 이 주소들은 네트워크가 분리되어 있거나 또는 주소 변환 기술(NAT: Network Address Translation)을 사용하여 사설 망(private network)을 인터넷에 연결하는 데 사용된다.
'🖥️ Computer Science > Computer Network' 카테고리의 다른 글
Internet Control Message Protocol Version 4 (ICMPv4) (0) | 2024.10.21 |
---|---|
Address Resolution Protocol (ARP) (0) | 2024.10.17 |
Internet protocol Version 4 (IPv4) (0) | 2024.10.10 |
Delivery and forwarding of IP Packets (1) | 2024.10.01 |
Introduction to Network layer (0) | 2024.09.10 |