본문 바로가기
컴퓨터 네트워크

컴퓨터 네트워크 20장 - 라우팅 -

by ChocoPeanut 2017. 4. 24.

컴퓨터 네트워크 20

- 라우팅 -

 

인터넷에는 수많은 호스트가 연결되므로 관리해야 할 라우팅 정보가 많다. 따라서 라우팅 정보를 적절히 관리하여 효율적으로 라우팅 하는 프로토콜이 필요하다.

간단한 라우팅 프로토콜을 먼저 살펴보자.


최단 경로 라우팅

거리 기준은 다양하지만 중간에 거쳐 가는 홉 수로 판단을 한다. 패킷이 목적지로 가는 동안 통과하는 라우터 수가 최소가 되도록 경로를 선택하는 방법을 택한다. 기타 거리 기준으로는 패킷의 전송 지연이나 전송 대역폭, 통신비용도 사용할 수 있다.


플러딩 라우팅

라우터가 입력된 패킷을 출력 가능한 모든 경로로 중개하는 방식을 취한다. 네트워크 패킷이 무한개까지 만들어질 수 있으므로 홉 수를 일정 범위로 제한하여 제거를 해야 한다. 이와 같은 경우는 중요한 데이터를 모든 호스트에게 동시에 전달하는 환경에서 제한적으로 사용한다.

 

이제 거리 벡터 라우팅 프로토콜에 대해서 살펴보자.


거리 벡터 라우팅 프로토콜은 라우터가 자신과 직접 연결된 주변 라우터에게 라우팅 정보를 교환하는 방식을 말한다. 전체 네트워크에 대한 지식을 이웃 라우터에게만 일정 주기로 공유하게 된다. 교환 정보는 전체 네트워크에 속하는 개별 네트워크까지 걸리는 거리 정보를 가진다. 개별 라우터에서 유지하는 필수 정보는 링크 벡터, 거리 벡터, 다음 홉 벡터가 있다.


링크 벡터는 직접 연결된 네트워크에 대한 연결 정보이다. 라우터 x와 직접 연결된 이웃 네트워크에 대한 여녈 정보를 보관한다. 라우터 x가 해당 네트워크와 연결하기 위해 할당한 라우터 포트번호라고 생각할 수 있다.


거리 벡터는 전체 개별 네트워크에 대한 거리 정보이다. 전체 네트워크에 소속된 개별 네트워크들까지의 거리 정보를 보관한다. 일반적으로 개별 네트워크까지 패킷을 전송하는 데 걸리는 최소 전송 지연 시간이다.


다음 홉 벡터는 개별 네트워크로 가기 위한 다음 홉 정보를 의미한다. 개별 네트워크까지 패킷을 전송하는 경로에 있는 다음 홉 정보를 관리한다. 보관하는 정보의 수는 전체 네트워크에 속한 네트워크의 개수로, 거리 벡터의 경우와 같다.

 



다음의 예시를 보게 되면 A 라우터를 기준으로 위의 벡터 값들을 구해보도록 하겠다. 각 라우터의 방향에 대한 포트번호는 네트워크의 숫자와 같다고 가정하겠다.


링크 벡터를 구하면 L(A) = [포트(N1) = 1, 포트(N3) = 3, 포트(N4) = 4]로 둘 수 있다. 링크 벡터는 A 라우터가 연결하고 있는 네트워크와 어떤 포트번호가 연결되어 있는가를 의미한다. 우리는 라우터 방향에 대한 포트번호를 네트워크의 숫자와 같다고 가정하였으니 네트워크 숫자가 해당하는 포트번호가 된다.


거리 벡터를 구해보자. 거리 벡터는 라우터가 각각의 다른 개별 네트워크까지의 거리를 의미하므로 네트워크의 수만큼 가지게 된다.

D(A) = [거리(N1) = 1, 거리(N2) = 2, 거리(N3) = 1, 거리(N4) = 1, 거리(N5) = 2, 거리(N6) = 2]


다음 홉 벡터는 라우터가 개별 네트워크에 가기 위한 이웃한 홉을 의미한다.

H(A) = [다음 홉(N1) = -, 다음 홉(N2) = B, 다음 홉(N3) = -, 다음 홉(N4) = -, 다음 홉(N5) = D, 다음 홉(N1) = E]

N6으로 가는 경우 D라우터와 E라우터 중 두 구간이 모두 가능하나 E의 경로가 더 빠르다는 가정을 하면 E가 선택된다.

 


리 벡터 프로토콜의 대표적인 예시가 RIP(Routing Information Protocol)이다. RIP는 거리 벡터 방식을 사용하는 내부 라우팅 프로토콜 중 가장 가단하게 구현된 프로토콜이다. 소규모 네트워크 환경에 적합하다. 주변 라우터가 제공하는 거리 벡터 정보가 임의의 짧은 시간 내에 모두 도착해야한다. 하지만 현실적으로 구현이 어려움이 있다. 라우팅 정보를 수정하는 경우 거리 벡터 정보가 새로운 네트워크 주소면 적용을 시키고 목적지까지의 지연이 더 적으면 기존 경로를 대체한다. 거리 벡터 정보가 입력되면 등록 정보를 수정한다.

 

거리 벡터 프로토콜의 단점을 개선한 링크 상태 프로토콜이 존재한다. 주변 상황에 변화가 있을 때 주변 라우터까지의 정보를 모든 라우터에게 전달하는 방식을 취한다. 개별 라우터가 이웃 라우터까지의 거리 정보를 구한 후, 이를 네트워크에 연결된 모든 라우터에 통보한다. 정보 전달을 하기 위해 플러딩 기법을 사용한다. 거리 벡터 라우팅 프로토콜의 경우 상태가 많이 변하면 동작 과정에서 시간이 많이 소요가 되는데 링크 상태 프로토콜은 이런 단점을 극복할 수 있다. 대표적으로 OSPF 프로토콜이 있다.

 

외부 라우팅 프로토콜은 앞의 내부 라우팅 용도와 다른 방식을 말한다. 외부 라우팅 프로토콜에서 사용하는 경로 벡터는 경로 관한 거리 정보 값이 필요가 없다. 내부 라우팅 프로토콜과의 차이는 거리에 대한 처리 과정이 없다는 것이다. 외부 라우팅 프로토콜의 경우 목적지 네트워크에 도착하기 위한 자율 시스템에 대한 내용만 포함한다. 단순히 해당 라우터에서 어느 네트워크가 연결 가능한지에 대한 정보만을 제공한다. 대표적인 예로는 BGP가 있는데 인터넷에서 많이 사용된다.