본문 바로가기

컴퓨터네트워크

네트워크층: 데이터 전송 - IP 패킷의 포워딩

728x90
반응형

포워딩(forwarding)은 패킷을 다음 홉(최종 목적지나 중간 연결 장치)으로 전달하는 것을 의미한다.

IP 프로토콜은 원래 비연결형 프로토콜로 설계되었지만, 요즘에는 연결형 프로토콜로 바뀌는 경향이 있다.

a) IP가 비연결형 프로토콜로 사용될 때, 포워딩은 IP 데이터그램의 목적지 주소를 기반으로 수행한다.

b) IP가 연결형 프로토콜로 사용될 때 포워딩은 IP 데이터그램에 있는 레이블을 기반으로 포워딩을 수행한다.

 

목적지 주소 기반 포워딩

일반적으로 사용되고 있는 방식으로 포워딩을 위해 포워딩 테이블을 가진 호스트나 라우터가 필요하다.

호스트가 전송할 패킷이 있거나 라우터가 포워딩할 패킷을 수신한 경우 포워딩 테이블을 참조하여 패킷을 전달할 다음 홉을 찾는다.

클래스 없는 주소 지정에서 모든 주소 공간은 클래스가 없는 하나의 개체이다. 이것은 패킷을 포워딩할 때 관련된 블록에서 정보 테이블의 한 행이 필요하다는 것을 의미한다.

클래스 없는 포워딩 테이블은 마스크, 네트워크 주소, 인터페이스 번호, 다음 라우터에 대한 IP 주소라는 4개의 정보를 포함해야한다.

클래스 없는 주소 지정에서 간단한 포워딩 모듈

주소 집단화(address aggregation)

테이블의 크기가 증가하면 테이블을 검색하기 위한 시간이 증가하는 문제를 완화하기 위해 주소 집단화 기법이 설계되었다.

R1은 각각 64개의 주소를 사용하는 4개의 기관에 연결되어있다. 2^(32-26)

R2는 R1에서 먼 곳에 위치한다.

패킷이 해당 기관에 정확하게 라우팅되어아 하므로 R1의 라우팅 테이블은 길어지게 된다. 반면 R2는 짧은 라우팅 테이블을 가질 수 있다.

R2에서는 목적지 주소가 140.24.7.0과 140.24.7.255 사이에 있는 패킷은 기관의 수와 상관없이 m0 인터페이스를 통하여 송신된다. 이때, 네 기관의 주소 블록이 1개의 큰 블록으로 집단화되므로 주소 집단화라 불린다.

각 기관이 1개의 블록으로 집단화될 수 없는 주소를 가지고 있다면 R2의 라우팅 테이블은 길어지게 될 것이다.

 

가장 긴 마스크 매칭(longest mask matching)

만약 한 기관(Organization)이 다른 세 기관과 지리적으로 가깝지 않다면 어떻게 될까?

클래스 없는 주소체계에서 라우팅은 가징 긴 마스크 매칭 원리를 사용하므로 집단화가 가능하다.

이 원리는 라우팅 테이블이 가장 긴 마스크에서 가장 짧은 마스크의 순으로 정렬된다는 것을 의미한다.

 

 

 

 

 

 

계층적 라우팅(Hierarchical Routing)

라우팅 테이블이 커지는 문제를 해결하기 위하여 라우팅 테이블에 계층구조를 도입할 수 있다.

라우팅 테이블이 인터넷 구조와 같이 계층구조 개념을 가지고 있다면 라우팅 테이블의 크기는 감소될 수 있다.

클래스가 없는 라우팅에서는 클래스 없는 주소체계의 규칙만 따르면 계층구조의 레벨은 제한되지 않는다.

 

 

 

지리적 라우팅(geographical routing)

포워딩 테이블의 크기를 더욱 축소하기 위해 지리적 라우팅을 포함하여 계층적 라우팅의 개념을 확장한다.

먼저 전체 주소 공간을 작은 수의 큰 블록으로 나눈다. 이 후 아메리카, 유럽, 아시아, 아프리카 등에 각각 1개의 블록을 할당한다. 유럽 외부 ISP의 라우터들은 라우팅 테이블에 유럽으로 가는 패킷을 위하여 1개의 항목만 가지고 있으면 되며 아메리카 등 동일하다.

 

포워딩 테이블 검색 알고리즘

클래스 없는 주소체계에서는 목적지 주소에 네트워크 정보가 없다. 긴 접두사 매칭(longest prefix match) 방법으로 라우팅 테이블을 순회하며 목적지 주소를 찾는다면 탐색에 시간이 많이 걸린다.

해결책으로 탐색을 위한 자료구조를 변경할 수 있다. 리스트를 사용하는 대신에 트리 혹은 2진트리와 같은 다른 자료구조를 사용할 수 있다.

 

레이블 기반 포워딩

연결형 네트워크(가상 회선 방법)에서 교환기는 패킷에 부착된 레이블을 기반으로 패킷을 포워딩한다.

라우팅은 기본적으로 테이블 내용에 대한 탐색을 기반으로 하는 반면에, 교환은 인덱스를 활용한 테이블 접근방식에 의해 수행된다.

 

 

 

 

 

 

 

 

 

다중 프로토콜 레이블 교환(MPLS, Multi-Protocol Label Switching)

이 표준에서 라우터와 교환기로 작동하는 MPLS 라우터가 인터넷 내의 전통적인 라우터를 대치할 수 있게 되었다.

MPLS는 라우터로 동작할때는 목적지 주소에 기반하여 패킷을 포워드하고, 교환기로 동작할 때는 레이블에 기반하여 패킷을 포워딩한다.

 

새로운 헤더

IP와 같은 프로토콜을 사용하여 연결혈 교환을 시뮬레이션하기 위해 가장 먼저 필요한 일은 레이블을 포함할 수 있는 새로운 필드를 패킷에 추가하는 것이다.

IPv4 패킷에서는 이러한 확장이 가능하지 않으나 IPv4 패킷을 MPLS 패킷으로 캡슐화하는 것이다. 마치, MPLS가 데이터링크층과 네트워크층 사이에 존재하는 것처럼 작동하는 것이다.

IP 패킷이 MPLS 패킷의 페이로드로 캡슐화되고 MPLS 헤더가 추가된다.

MPLS

MPLS 헤더는 실제로 곧 설명될 다중 레벨 계층적 교환에서 사용되는 서브헤더 스택에 해당한다.

레이블의 스택으로 구성된 MPLS 헤더

레이블(Label) : 20비트 필드로 라우터 내의 라우팅 테이블을 인덱스하기 위하여 사용되는 레이블을 정의한다.

Exp : 3비트 필드로 실험 목적으로 예약되어 있다.

S : 1비트 스택 필드로 스택 내의 서브헤더의 상황을 정의한다. 값이 1인 경우 헤더가 스택 내에서 가장 마지막임을 의미한다.

TTL : 8비트 필드로써 IP데이터그램의 TTL필드와 유사하다. 방문된 라우터는 이 필드의 값을 1씩 감소시킨다. 이 값이 0이 되면, 순환(looping)을 방지하기 위하여 패킷은 폐기된다.

 

반응형