Network Layer - Control plane(1)

CODE-K·2025년 2월 8일

컴퓨터 네트워크

목록 보기
4/16

Network Layer의 기능
1) Forwarding
2) Routing

두 기능 중 Control Plane = Routing을 담당

Data Plane의 Router 정보들을 토대로
Control Plane에서 Forwarding Table을 통해 Source-to-Dest의 최적 경로를 계산한다.

Control plane 처리 방식
1) Per-router control
2) lolgically centralized control (Software defined networking)

Per-router control

Forwarding table의 정보를 토대로 짜여진 최단 경로 알고리즘을 이용하여 경로를 계산

Logically centralized control

Software로 구현된 경로 설정에 따라 경로를 계산

Routing 알고리즘

1) Static (수동 Routing)

  • Router가 관리자에 의하여 바뀜. -> 느리다.
  • 복잡한 SW 구현이 필요하지 않다.
  • 소규모, 변화가 거의 없는 Network 환경.
  • Routing 트래픽에 의하여 대역폭의 소모가 필요하지 않다.
  • Internet에서는 사용이 불가하다.

2) Dynamic (동적 Routing)

  • Router의 변경이 빠르다.
  • 자동적으로, 주기적으로 업데이트한다.
  • 초기에는 관리자가 Router를 초기화하고, 이후 자동 업데이트.
  • 현재는 대부분 동적 Routing을 사용한다.

Dynamic Routing 종류

1) Global

  • Router가 전체 네트워크의 구조와 연결 비용 등의 정보인 Topology를 알고 있음
  • 자신이 속해 있는 네트워크 안의 Router는 서로가 서로의 정보를 모두 알고 있다
  • "Link-state algorithm" 사용

2) Decentralized

  • Router가 자신과 물리적으로 연결된, 이웃 Router의 정보,
    목적지까지의 비용만 알고 있음
  • "Distance vector algorithm" 사용
  • 각 Router는 네트워크 전체의 Topology와 Link-state 정보를 유지한다.

  • 각 Router는 네트워크 전체의 Link-state 정보를 이용하여 목적지까지 최적 경로를 계산.

  • 최적 경로를 기반으로 각 Router의 Routing table을 구성한다.

  • 나와 직접 연결된 이웃 Router의 정보
  • 내 이웃의 Link state 정보
  • Router가 LSA를 생성하는 경우
    1 ) 이웃 Router의 State 정보가 변경되었을 때
    2 ) Link-state를 주기적으로 체크 및 업데이트
  • Router는 LSA를 자신이 속한 네트워크 내의 모든 Router에게 전달
  • 각 Router는 수신한 LSA를 기반으로, 전체 네트워크 Topology 설정
  • 두 node 간의 최소 경로 비용을 계산할 때는 Dijkstra's Algorithm 사용

Distance vector Algorithm

  • Distance vector 방식은 한 Router가 자신과 물리적으로 연결된 이웃 Router의 정보를 알고
    이를 기반으로 최단 비용 경로를 구하는 방식이다.
  • 즉, 한 Router를 기반으로 연쇄적으로 이웃 Router의 정보들을 토대로 최단 비용 경로를
    계산하여야 한다.

한 node X에서 목적지인 node Y 까지의 값은
-> X에서 이웃한 node V까지 비용 + V에서 Y까지의 비용
으로 바꾸어 표현할 수 있다.

X->Y 까지의 경로는 다양한 경로 방식 있으며,
이웃한 node들을 거쳐 목적지까지 가는 수많은 경로 중에서 최단 경로를 찾는 방식이
Distance vector 방식이다.

Distanse vector 특징

1 ) Iterative, Asynchronous

  • 각 Router는 자신의 이웃과의 경로 비용과 전체 비용 만을 알고 있기 때문에,
    특정 Router의 경로 비용이 바뀌었을 때, 연쇄적으로 각 Router들의 경로 비용이 변화하게
    되고, 이를 토대로 전체 경로 비용이 변화하게 된다.

  • Link-state 방식에서는 모든 Router가 전체 정보를 알기 때문에, 특정 Router의 변화를
    전체 Router가 LSA를 통해 알게 되고, 이는 동기적이다.
    반면 Distance vector에서는 이 변화가 비동기적이다.

2 ) Distributed

  • 각 Router는 전체 경로 비용이 변화했을 때만 이웃에게 변화를 알린다.

Distance vector 방식의 문제점

  • Good news travels fast

    1 ) Y->X의 비용이 4에서 1로 감소
    2 ) Z에서는 Y를 통해 X로 가는 경로의 비용이 줄어든 것을 확인
    3 ) Z->X의 비용이 1+1 = 2 로 갱신

    이러한 상황에서는 문제가 없다. 단, 다음의 내용을 보자.

  • Bad news travels slow

    1 ) Y->X의 경로 비용이 60으로 증가
    2 ) Y가 Z를 확인하니 Z->X의 값이 1+4 = 5로 되어있음
    3 ) Y->X의 비용을 Z를 통한 값인 1+5 = 6으로 갱신
    4 ) Z 입장에서 Y를 통한 X까지의 경로 비용이 6으로 증가, Z->X 비용 1+6 = 7로 갱신
    5 ) Y는 Z의 비용이 갱신되니, 자신 또한 1 + 7 = 8로 갱신
    ....
    이와 같이 계속 반복적으로 경로 비용이 갱신되어
    비용이 다른 경로의 비용보다 높아질 때 까지 반복된다.

profile
개발자 지망생입니다.

0개의 댓글