Shine's dev log

라우팅 알고리즘 (Link state & Distance vector) 본문

컴퓨터 네트워크

라우팅 알고리즘 (Link state & Distance vector)

dong1 2021. 7. 14. 23:38

1. 라우터의 기능

 

라우터는 크게 들어온 패킷들을 전송해주는 Forwarding 기능과, 어느 link로 패킷을 보낼지 결정하는 Routing 기능이 있다.

 

어차피 한 라우터 내에서 일어나는 과정이기 때문에 나누는 것이 의미가 없긴 하지만, Forwarding을 담당하는 부분을 data plane, Routing을 담당하는 부분을 control plane이라고 부른다.

 

라우터의 기능

 

 

 

2. 경로 설정 방법

 

여러 라우터들이 있는 네트워크 환경에서 어느 link를 따라 패킷을 전송하는 것이 가장 효율적인지 결정하는 방식은 크게 두가지로 나눌 수 있다.

 

1) Link state 알고리즘 (Global)

 

 - 전체 link 상태를 아는 경우 활용 가능

 - 전체 link 상태를 알고있는 상태에서 결정하므로 정확하다.

 - 전체 link 상태를 알기 위해 메모리, 속도 등의 오버헤드가 발생한다.

 - 대표적으로 Dijkstra's 알고리즘이 존재한다.

 

 

2) Distance vector 알고리즘 (Decentralized)

 

 - 각 라우터가 자신과 연결된 라우터만 아는 경우 활용 가능

 - 전체 link 상태를 모르므로 정확도가 떨어진다.

 - 메모리, 속도 등의 오버헤드가 적다.

 - 대표적으로 Bellman-Ford 알고리즘이 존재한다.

 

 

여러 알고리즘을 통해 패킷을 적절한 라우터로 전송하면, 해당 라우터에 연결된 subnet 속에서 link layer 프로토콜을 통해 정확한 컴퓨터에게 패킷이 전달되게 된다. (라우터 간의 패킷 전송은 network layer)

 

 

오늘 배운 내용을 정리해보면,

 

1. 라우터는 Forwarding과 Routing 기능이 존재한다.

 

2. 라우터들 사이의 경로를 결정할때는 Global 형식의 Link state 알고리즘과 Decentralized 형식의 Distance vector 알고리즘을 활용할 수 있다.

 

 위 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.