라우팅 프로토콜의 주요임무는 라우팅 테이블을 만다는 것이라고 할 수 있다. 또한 라우팅에서는 라우팅 테이블을 보는것이 중요임무이다. 라우팅 프로토콜은 AS(자율 시스템, Autonomous System)를 기준으로 내부 게이트웨이 프로토콜
과 외부 게이트웨이 프로토콜
로 나뉘게 된다.
라우팅 정보들을 모아 라우팅 테이브를 만들때 모든 라우팅 정보들을 모아서 만드는 것이 아닌 그 기관 내에 통신장비끼리만 라우팅정보를 주고받아서 라우팅 정보를 만들게 된다.
모든 인터넷에 있는 라우팅 정보를 모아서 최적의 경로를 만드는 것은 트래픽 양이 엄청나게 늘어나기 때문에 현실적으로 불가능하게 된다. 여기서 어떤 영역까지 라우팅 정보를 주고받을지에 대해 정하게되는데 AS는 라우팅 정보를 주고받을 수 있는 영역으로 그 각 기관을 AS라고 볼 수 있다. AS는 하나의 기관 내부를 나타내는 것으로 네트워크와 라우터의 집합으로 구성된다.
라우팅 입장에서 인터넷은 수 많은 AS들이 서로 연결되어
있는 집합체라고 할 수 있다
라우팅들이 연결되어 있을 때, 그 거리의 최단 거리
를 갖는 경로로서 경로를 계산하기 위해 Bellman-Ford알고리즘
을 사용한다.
라우터 입장에서 현재 알고있는 네트워크의 정보를 이웃하는 라우터
하고만 주기적으로 공유하게 된다.
* 그림 출처
위의 그림을 보면 각 A, B, C, D, E, F 라는 라우터들이 존재한다. A라는 라우터를 보면 네트워크 1, 2, 3번에 연결되어있다. 그럼 A라는 라우터는 주기적으로 연결되어있는 라우터인 B, E, F 에게 "난 네트워크 1, 2, 3번과 연결되어 있어!" 하고 알려주게 된다. 그럼 그 정보를 받은 B, E, F는 A가 연결되어 있는 네트워크가 뭔지 알게되고 그 정보와 또 이웃하는 라우터의 정보를 합쳐 새로운 라우팅 테이블을 만들 수 있게 된다.
* 정리 *
1. A 라우터 "난 네트워크 1, 2, 3번과 연결되어 있어!"라고 B, E, F 라우터에게 전달
2. B, E, F 라우터들은 그 정보와 연결되어있는 다른 라우터들의 정보를 합침
3. B, E, F는 합쳐진 정보로 새로운 라우팅 테이블 만듬!
각각의 라우터들에게 구성되어있는 라우팅 테이블을 보자면
* 그림 출처
A 라우터 입장에서는 A로 갈때 본인에게 가는거니 비용이 0, B로 갈때는 비용이 5... E로 갈때는 어떻게 갈지 모르게 되어있다.
* 그림 출처
C 의 입장에서 비용을 보면 A로 갈때 2가 들게 되어있다. A가 C에게 정보를 받게되면 모두 각각 2씩 비용을 더하게 되고 A가 가지고 있던 기존의 테이블과 하나하나 비교를 하게 된다.
A의 입장에서 기존의 본인에게 보낼때는 비용이 0이고 C를 통해서 보내게 될 경우 비용이 4가 된다. 그렇게 되면 C를 통해서 보낼 필요가 없으니 최종 테이블에서 A에서 A로 가는 비용은 0이 되게 된다.
또한 기존 테이블에서 E 로 갈 때의 정보는 없었는데 C에게 받은 정보를 보니 비용이 6이 든다고 되어있으니 최종 테이블에선 A에서 E로 갈때는 비용이 6이 든다고 저장을 하게 된다.
이렇게 정보를 하나하나 비교하며 최적의 경로를 파악해 라우팅 테이블을 구성하게 되는 것이다.
홉수
로 한다(위에서 비용을 들어 설명할때 어떤건 2, 혹은 3이런씩으로 설명했다면 홉수로 할 경우에는 무조건 1로써 B로 갈땐 링크가 2개다. C로 갈땐 링크가 3개다 이런씩으로 정리)16
으로 한다각각의 라우터들이 라우팅 정보를 주고 받으면서 전체 네트워크의 구성도를 그리게 되고 그를 통해 경로를 구하는 방법이다. 여기서 Dijkstra's 최단 경로 알고리즘
을 사용하여 라우팅 테이블을 구축하게 된다.
* 그림 출처
위 그림을 보면 각각의 라우터들이 라우팅 정보를 주고 받음으로써 모든 라우터들이 같은 모양의 전체 네트워크의 구성도를 그리게 된다. 그 다음 자기 위치에서의 최단경로를 구하여 라우팅 테이블을 만든다.
* 내용출처: 쉽게배우는 네트워크 강의(한국직업방송)