Software Courses/Network

Network : routing algorithms

김 정 환 2021. 1. 8. 00:25
반응형
본 내용은 한양대학교 이석복 교수님의 강의를 참고하여 정리하였습니다. 교재는 Pearson/Addison Wesley에서 출판한 Computer networking : a top-down approach입니다.

 

Routing algorithms

    - 노드 A에서 노드 B로 가는 최소비용 경로를 찾는 방법

 

 

 

알고리즘의 종류

    - 경로 고정 여부

        * Static routing : 관리자가 수동으로 경로를 입력

        * Dynamic routing : 라우터가 상황에 따라 경로를 동적으로 결정

 

    - Gateway 내/외부

        * Interior gateway protocol : AS(Autonomous System) 내에서의 라우팅을 담당

        * Exterior gateway protocol : 서로 다른 AS 사이에서의 라우팅을 담당

 

    - Routing table 관리

        * Distance vetor algorithm : routing table에 목적지까지 가는데 필요한 거리와 방향만 기록 (인접 router)

        * Link state algorithm : 한 router에서 모든 routers로 가는 최단 경로를 찾아서 routing table에 기록 (모든 routers)

 

    -  주요 routing algorithms

 

Link-state algorithm

    - 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘

    - ICMP를 이용해서 브로드캐스트를 통해 네트워크의 노드와 비용을 라우터에게 전달한 뒤 알고리즘 실행

    

    - 다익스트라

최소 비용 경로 트리 구성
forwarding table

 

Distance vector algorithm

    - Distance를 vector로 저장하는 알고리즘

    - Router는 목적지까지의 모든 경로를 테이블에 저장하지 않고, 최단 비용 경로로 가는 인접 라우터만 저장

    - 인접 라우터가 가진 table을 서로 교환하며 table을 갱신

 

    - 방법

 

    - 동작

        * 각 노드는 다음 단계를 반복한다.

        1. 인접 노드들로부터 링크 비용에 변화가 있는 메시지가 올 때까지 대기

        2. 메시지를 받으면, 자신의 노드의 distance vector를 갱신

        3. 자신의 노드의 distance vector에 변화가 생기면, 인접 노드들에게 알림

 

    - 예시

        * 첫 번째 수행에서는 자기 자신과 연결된 노드들 간의 비용만 알고 나머지는 모르기 때문에 무한대 비용

        * 두 번째 수행에서는 자신의 distance vector를 인접 노드들에게 전달, 그리고 자신에서 다른 노드들로 가는 비용 갱신

        * 세 번째 수행에서는 자신의 distance vector가 갱신되었다면, 인접 노드에게 정보 전달, 그리고 변화가 없으므로 종료

 

    - 문제

        * 링크의 비용이 감소할 경우, 업데이트가 빠름

            + 예시

                ~ 수행 1 : 노드 y와 x는 링크의 변화를 인식하고 자신의 distance vector를 수정

                ~ 수행 2 : 인접 노드들에게 변경된 정보 전달하고 인접 노드들도 distance vector 수정

                ~ 수행 3 : 인접 노드들에게 변경된 정보 전달하고 인접 노드들도 distance vector 수정 그리고 종료

                ~ 세 번만에 수행 종료

 

        * 링크의 비용이 증가할 경우, 업데이트가 느림

            + 예시

                ~ 안정화된 상태에서 링크 비용 변화

                ~ 붉은 색으로 된 숫자를 보면 값이 부정확함을 알 수 있다.

                ~ 결과 값이 붉은 색 6인 경우, 이 과정을 44회 반복하면 안정화 된다.

                ~ 결과 값이 붉은 색 5인 경우, 이 과정을 55회 반복하면 안정화 된다.

                ~ Routing looping인 count to infinity 문제 발생 : 계속 증가하게 된다는 의미

 

 

    - 문제 해결

        * 원인 : 한 라우터가 이웃 라우터들의 정보를 다 가지고 있지 못했기 때문이다. (업데이트가 느리기 때문)

 

        * Maximum hop count : 거처가는 라우터의 횟수를 제한한다. 16이상이면 infinite로 간주하여 routing table에서 삭제한다.

 

        * Split horizon : 라우터 B가 라우터 A로부터 정보를 수신 받았을 때, B는 A에게 반대로 동일한 정보를 송신하지 않는다.

 

        * poision reverse : 갱신된 값을 이웃 라우터에게 전달할 때, 갱신된 값의 경로가 이웃 라우터를 거쳐가는 경우에는 갱신 값을 infinite로 보낸다. 위 붉은 색 6이 발생한 경우는, y->z->y->x의 경로이다. 중복된 경로를 가기 때문에 발생한 것이다. 다음 경로는 y->y->z->y->x이다. 따라서, 애초에 라우터 z에서 받은 경로 z->y->x = 6를 infinite로 바꾸면 반복 횟수가 줄어든다.  즉, z에서 받는 경로 중에 y를 거쳐가는 경우가 있으면 그 값을 infinite로 받으면 해결된다.

 

 

 

Link-state와 Distance algorithm 비교

 

 

 

Hierarchical routing (계측적 라우팅)

    - 실제 network는 규모가 상당하기 때문에 Distance network와 Link-state 알고리즘을 바로 적용하기 힘들다.    

    - Distance vector는 링크가 하나 바뀌면 안정화되는 데 대단히 많은 시간이 필요

    - Link state는 노드가 너무 많아서 forwarding table를 만드는 데 대단히 많은 시간 필요

    - 계층적으로 관리 필요

 

    - AS (Autonomous system)

        * 계층적으로 관리하기 위한 각각의 독립적인 네트워크 영역

        * Global unique number

        * forwarding table은 intra-AS algorithm과 inter-AS algorithm에 의해 설정

        * 예시 : SKT, KT, LG U+, etc

 

        * Intra-AS : 같은 AS 내의 라우터는 같은 라우팅 알고리즘 사용

            + 예시 : RIP, OSPF, IGRP

 

        * Gateway router : AS의 가장자리에 있으면서 다른 AS와 링크로 연결되어 있는 라우터

 

        * AS 간의 관계

            + 사용하기 위해 비용을 지출하는 소비자와 네트워크를 제공하는 제공자

 

 

BGP (Border Gateway Protocol)

    - Inter AS routing

    - AS 간에 연결하는 알고리즘

 

    - 선택할 수 있는 경로는 많다.

        * 대학교에서 AS5 또는 AS4 또는 AS3로 갈 수 있다.

        * AS3보다 AS4 또는 AS5로 가는 경로가 더 짧은 수 있겠지만, AS3를 선택하기도 한다. 예를 들어서, customer link를 거칠 때에는 한양대학교에서 비용을 지불하지 않아도 되기 때문이다.

 

 

 

참고

    - distance vector

    - routing looping

    - 블로그 1

반응형

'Software Courses > Network' 카테고리의 다른 글

Link layer : MAC protocol  (0) 2021.01.10
Link layer : overview  (0) 2021.01.10
Network : IP  (0) 2021.01.06
Network : router  (0) 2021.01.06
Network : overview  (0) 2021.01.06