[컴퓨터네트워크] Distance Vector Routing | 거리-벡터(DV) 라우팅

2023. 4. 19. 20:12·In Computer/컴퓨터네트워크

Routing Protocols | 라우팅 프로토콜

라우터 간 통신 방식을 규정하는 통신 규약으로 주로 경로설정을 위한 라우팅(포워딩) 테이블 작성을 한다.

Distance Vector Routing | 거리-벡터(DV) 라우팅

  • 거리-벡터 라우팅에서 각 라우터는 인접한 이웃에 대한 정보를 포함하는 자체 최소 비용 트리를 생성한다. 이 트리는 불완전하지만 이웃 간에 교환되면서 점점 더 완전해지고 전체 인터넷을 나타내게 된다.
  • 거리 벡터 라우팅에서 라우터는 지속적으로 모든 이웃에게 전체 인터넷에 대해 알고 있는 정보를 알려준다. 그러나 이 정보는 불완전할 수 있다.
  • 간단히 말하면, 거리-벡터 라우팅에서 각 라우터는 인접한 이웃들과 정보를 교환하면서 전체 네트워크에 대한 정보를 점차 완성해 나가는 것이다.

Bellman-Ford Equation

DV 라우팅의 핵심은 Bellman-Ford 방정식이다.

이 방정식은 소스 노드와 중간 노드 사이의 비용과 중간 노드와 대상 노드 사이의 최소 비용이 제공될 때 일부 중간 노드(a, b, c, ..)를 통해 소스 노드 x와 대상 노드 y 사이의 최소 비용(최단 거리)을 찾는데 사용된다.

왼쪽은 트리를, 오른쪽은 DV로 표현한 것이다.

  • u[ ] : 라우터 u의 전체 거리 벡터
  • u[x] : 라우터 u에서 라우터 x까지 거리(최소 경로 비용), 네트워크의 각 라우터가 거리 벡터의 인덱스

distance vector Example

DV Update | 거리 벡터 업데이트

New B

A와 B의 거리는 2의 비용이 발생 한다. 각 A테이블에 +2 거리 비용 만큼 계산한 값과 old B와 비교 한다.

이 때, A테이블의 d값은 5가 됨으로, old B테이블이 A테이블을 거쳐서 인덱스 D로 가는 거리는  New B테이블의 D는 5가 된다.

Distans Vector Routing에서 라우팅 테이블 작성 순서

initialize → Share → 벨드 포드 공식에 의한 update → Share

Distans Vector Routing의 문제점 

Two-node의 instability(불안정성)이 있다.

Count to Infinity(무한 계산 문제)

  • 이웃 라우터를 경유하는 경로로 최소 경로 비용을 갱신하고, 해당 이웃 라우터에게 다시 전송하는 과정이 반복되는 문제

문제 발생 이유

  • 링크가 고장나거나 비용이 증가할 때 발생
  • 이웃 라우터가 자신을 경유하는 최소 경로 비용 전송
  • 2개의 이웃 라우터 간에 순환 경로(loop path) 발생

문제점 Example

출처_한국기술교육대학교박승철교수

Solution | 해결법

Split Horizon

A가 X-A 거리를 업데이트 한 후 B로 전송하고, 다시 B가 A한테 전송하지 않는다.

Poison Reverse

A가 업데이트 후, B에게 전달한다. B는 업데이트 후, A에게 ∞(무한대)를 전달한다. (A가 기반으로 보낸 데이터를 다시 쓰지 못하게 하기 위함) → 이로써 둘 다 ∞(무한대)를 가지게 되어 라우터들이 고장이 난 사실을 빠르게 인지하게 된다.

출처_한국기술교육대학교박승철교수

But, 3개 이상의 노드의 불완전성은 여전히 문제가 된다. (Three-Node Instability)

경로 비용이 무한대로 증가(다시 무한 순환 구조가 됨)

출처_한국기술교육대학교박승철교수

 

'In Computer/컴퓨터네트워크' 카테고리의 다른 글
  • [컴퓨터네트워크] Path-Vector Routing | 패스 벡터 라우팅
  • [컴퓨터네트워크] Link State Routing | 링크 상태 라우팅
  • [컴퓨터네트워크] Intra and Interdomain Routing
  • [컴퓨터네트워크] Transmssions in Unicast | 유니캐스트
팽이리
팽이리
Study_Blog
  • 팽이리
    Pang_ Study
    팽이리
  • 전체
    오늘
    어제
    • All Study (67)
      • In Computer (66)
        • 컴퓨터구조 (21)
        • 컴퓨터네트워크 (39)
        • Dreamhack (6)
      • Cording (1)
        • C∕C++ (1)
      • 자격증 (0)
        • GA4 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    처리율
    계층화된 작업
    네트워크 성능
    ip datagram
    closed loop
    컴퓨터 네트워크
    TCP/IP
    혼잡제어
    패킷 스위치 기법
    Big Endian
    네트워크 지연
    어셈블리어
    컴퓨터구조
    데이터를 처리하는 논리 회로
    open loop
    프로토콜 모음
    Network Layer
    ipv4 options
    Virtual-Circuit Approach
    프로토콜
    문자열 복사 예제
    컴퓨터네트워크
    header format
    CPU time
    routing protocol
    논리 설계 기본
    Little Endian
    처리량
    Datagram Approach
    네트워크 혼잡 제어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
팽이리
[컴퓨터네트워크] Distance Vector Routing | 거리-벡터(DV) 라우팅
상단으로

티스토리툴바