본문 바로가기

컴퓨터 사이언스/네트워크

[모바일 컴퓨팅] Addressing

IP Address (IPv4 기준)

- 네트워크 인터페이스의 고유한 글로벌 주소이다.

- 32 bit long identifier, network number(network prefix) + host number -> 2 tier architecture

- Dotted Decimal Notation으로 표기된다.

- 0.0.0.0 - 255.255.255.255

- 네트워크는 패킷이 어디로 가야 할지(forward)를 결정하기 위해 주소를 사용한다.

- 라우터는 IP 주소를 기반으로 패킷을 보내는 네트워크 장치이다.

(스위치 - 데이터링크 레이어, 라우터 - 네트워크 레이어)

Network Prefix and Host Number

- network prefix는 네트워크를 가리키고, host number는 해당 네트워크 안의 특정한 호스트를 가리킨다.

- network prefix의 크기는 93년 이전엔 절대적으로 규정되어있었다. (class-based addressing)

93년 이후로는 netmask를 따른다.

 

ex)

IP address: 166.104.239.96

network address: 166.104.0.0

Host number: 239.96

Netmask: 255.255.0.0

Prefix or CIDR notation: 166.104.239.96/16 (상위 16비트가 넷마스크)

 

 

Classful IP Address의 문제점

- Class C network들이 널리 쓰이게 되며, 1993년 라우팅 테이블의 크기가 라우터의 용량을 넘어섰다.

- 큰 네트워크에 비해 너무 적은 네트워크 주소를 갖게 된다. (Class A, Class B의 주소를 못 쓰기 때문에)

- 네트워크 주소의 한정된 유연성

Class A, B는 너무 많은 주소를 갖고 (Overkill)

Class C의 주소는 불충분하다.

Class A는 2^7=128 개의 네트워크 수, 2^24=16,777,216 개의 호스트 수

Class B는 2^14=16384 개의 네트워크 수, 2^16=65,536 개의 호스트 수

Class B는 2^21=2,097,152 개의 네트워크 수, 2^8=256 개의 호스트 수

 

Subnetting

- 한 organization이 독립적으로 관리되는 여러 네트워크를 가진다면?

1. 각 네트워크에 대해 별도의 네트워크 주소를 할당해준다.

관리가 어렵다

organiation의 외부에서 각 네트워크의 주소에 접근할 수 있어야 한다.

2. IP 주소 체계에 또 다른 레벨의 계층을 만든다. -> subnetting

 

Subnetting의 주소 지정

- organization의 각 부분은 IP 주소의 범위로 할당된다. (subnets or subnetworks)

- 각 subnet의 주소들을 지역적으로 관리할 수 있다.

 

Subnetting의 기본 아이디어

- IP 주소의 host number를 subnet number와 (더 작은) host number로 나눈다.

- Subnet은 organization안에서 자유롭게 지정될 수 있다.

- 내부적으로, subnet은 분리된 네트워크로 다뤄진다.

- subnet 구조는 organization 외부에서 볼 수 없다.

 

Subnetmask (extended network prefix = subnetmask)

ex)

Network IP address : 166.102.0.0/16

Subent IP address : 166.104.239.0/24

Host IP address : 166.104.239.96

이때, host의 subnet mask는 255.255.255.0 (ff ff ff ff 00)

 

Subnetting이 없다면, 모든 호스트는 다른 호스트들이 같은 네트워크에 있다고 생각한다.

Subnetting이 있다면, 호스트는 같은 extended network prefix (network prefix + subnet number에 속하는 호스트가 같은 네트워크 안에 있다고 생각한다.

 

라우터

- 라우터는 패킷이 도착하는 input interface들과 패킷이 분리돼 나가는 output interface들로 구성된다.

- input과 output을 연결해주는 상호연결 form이 있다.

- 패킷을 상응하는 output interface로 전달한다(forward). (라우팅 테이블 이용)

- 대역폭(bandwith)과 buffer spae resources를 관리한다.

 

subnetting의 이점

- 라우터의 복잡도를 줄여준다. 외부 라우터는 내부 서브넷에 대해서 몰라도 된다.

때문에 외부 라우터의 라우팅 테이블의 복잡도는 줄어들 것이다.

 

VLSM (Variable Length Subnet Mask) 가변 길이 서브넷 마스크

- 모든 서브넷이 동일한 서브넷 마스크 길이를 가질 필요는 없다.

- 서로 다른 서브넷 마스크들은 다른 네트워크 범위 크기의 뷰로 이어진다.

 

Broadcast Address

- IPv4의 각 subnet은 subnet broadcast address로 특별한 주소를 보존해놓는다.

- Host Field 비트를 모두 1로 채운 것이 그렇다.

하지만, 이 주소를 누가 악의적으로 이용해 subnet broadcast를 할 수 있기 때문에 보안에 취약하다.

때문에 router가 허용하지 않는 경우가 많다.

 

3개의 큰 문제점

- 1994년, class B의 절반이 이미 할당되었다. 1995년에 class B가 고갈될 것으로 예상되었다.

- 32-bit IPv4 주소 체계는 2000년대 초반까지 예상되는 인터넷의 크기를 다루기에 부적절하다고 생각되었다.

- 글로벌 라우팅 테이블의 엔트리의 수가 1995년 65000에 달했고 점점 증가하고 있었다. 점점 더 많은 class A, B, C 라우팅 엔트리가 생겨나며 라우팅 성능이 고통받고 있었다.

 

CIDR (Classless Inter-Domain Routing)

- 목표

IP 주소 할당을 재구조화하여 효율을 높인다.

router aggregation을 허용하여, 라우트 테이블 엔트리의 수를 최소화한다.

- IP 주소에 network prefix의 길이가 임의적으로 유지되어야 한다(kept arbitrary).

- IP address에 network prefix의 길이가 무조건 함께 제공되어야 한다.

- prefix는 인터넷 확장력의 key다.

- address는 contiguous chunks(연속적인 덩어리)로 할당된다.

- 라우팅 프로토콜과 패킷 포워딩은 prefix에 기반한다.

- CIDR 표기법은 주소 블록을 표기하기에 적합하다.

- 라우팅 테이블에 CIDR address blocks를 사용한다. (router aggregation)

- Backbone ISP(Internet Service Provider)가 큰 block의 IP 주소 공간을 얻은 후, 그들의 고객에게 블럭을 나누어 준다.

 

Reserved or (by convention) special addresses

- 루프백 인터페이스

127.0.0.1 ~ 127.. 255.255.255는 loopback interface로 예약돼 있다.

대부분의 시스템은 127.0.0.1을 loopback interface로 사용한다.

loopback interface는 'localhost'라는 이름과 연결돼있다.

- Broadcast address

host number가 전부 1인 주소 ex) 128.143.255.255

네트워크의 모든 호스트에게 전달한다.

보안 취약점이 있기 때문에 대부분의 라우터는 이를 무시한다.

 

Test / Experimental addresses (private addresses)

- 실험적 사용을 위해 특정 주소 범위는 예약되어있다.

해당 주소를 목적지로 하는 패킷들은 무조건 드롭되어야 한다.

class A 10.0.0.0 - 10.255.255.255

class B 172.16.0.0 - 172.31.255.255

class C 192.168.0.0 - 192.168.255.255

 

Convention (but not a reserved address)

Default gateway의 host number는 1로 세팅되어있다. ex) 192.0.1.1