jujuwon
시크릿주주
jujuwon
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • 🔠 프로그래밍언어 (35)
      • ☕️ Java (19)
      • 🐠 Python (15)
      • 🍠 Kotlin (1)
    • 🔙 Backend (16)
      • 🌿 Springboot (12)
      • 🐳 Docker (1)
      • ☁️ AWS (3)
    • 💼 CS (12)
      • 📶 Network (12)
    • 🕹 알고리즘 (14)
      • 📑 스터디 (2)
      • 💁🏻‍♂️ 백준 (9)
      • 👨🏼‍🔬 프로그래머스 (3)
    • 📚 Book (8)
      • 🔎 오브젝트 (4)
      • 🧪 TDD (2)
      • 📜 논문 (2)
    • 🔐 보안 (7)
      • 👾 Pwnable (7)
    • 📝 회고 (4)
    • 🧩 etc. (10)
      • ⚠️ issue (2)
      • 💡 꿀팁 (7)
      • ✏️ 끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
jujuwon
💼 CS/📶 Network

Network :: Routing protocol

Network :: Routing protocol
💼 CS/📶 Network

Network :: Routing protocol

2022. 12. 9. 11:33
반응형

목표

목적지까지 가는 가장 좋은 path 를 찾아내는 것

좋은 path 란 ? 비용이 적게 들거나, 가장 빠르거나, least congested 하거나 !

 

분류

Q. global or decentralized information ?

  • global → link state algorithm
  • decentralized → distance vector algorithm

Q. static or dynamic ?

  • static
  • dynamic

 

Link state algorithm

Dijkstra’s algorithm

특정 출발지에서부터 모든 노드로 최단 경로 찾기 알고리즘 !

특정 출발지에서 목적지까지 가는 경로 중 최소 비용으로 갈 수 있는 경로를 찾는 것

표기 방법

  • C(x, y) : x 에서 y 까지 가는데 드는 비용
  • D(w) : w 까지 가는데 드는 비용
  • P(v) : 바로 앞 전 노드
  • N’ : 최소 비용을 가지도록 하는 경로에 있는 노드의 집합

아래는 출발지를 u 로 잡고 다익스트라 알고리즘을 돌렸을 때의 결과값이다.

 

 

예시를 하나 더 해보자.

이거 이해되면 다익스트라 마스터 ?

 

 

이렇게 다익스트라 알고리즘을 통해 u 노드에서 출발하는 최단거리를 계산하고 나면

아래와 같은 최단 거리 결과값들이 나온다.

 

 

이게 바로 Link state 알고리즘

전체 노드와 경로 정보를 다 알고 시작한다 !

 

문제점

노드 개수 N 에 따라 O(N^2) 의 시간복잡도를 가진다.

다익스트라 알고리즘은 특정 경로를 많이 사용하게 되어 비용이 변화하면 또 다시 계산해야 하고,

다시 계산된 값으로 경로를 새로 세팅해 또 그 경로를 많이 사용하게 되면 비용이 변화하는..

순환적인 문제가 생길 수 있다 → oscillation 문제 발생 가능

 

Distance vector algorithm

Bellman-Ford equation (dynamic programming)

x 에서 y 까지 가는 비용 중 가장 비용이 적은 경로 선택 !

 

 

전체 노드 사이의 경로 비용은 모르지만,

인접한 노드 하나하나씩 비용의 최솟값을 계산해나가는 것 !

주기적으로 본인과 붙어있는 노드들에게 정보를 알려주고,

정보를 받은 노드는 다시 계산해서 라우팅 테이블을 반복적으로 만들어내는 것이 키 아이디어이다.

 

OSPF

intra-AS routing in the Internet

하나의 네트워크 안에서 동작 !

autonomous system → AS (a.k.a. domain)

AS 내부에서 돌아가는 시스템 → IGP (Interior gateway protocol)

  • RIP
  • OSPF
  • IGRP

그 중 대표적인 게 OSPF !

OSPF : Open Shortest Path First

  • link-state 알고리즘을 사용
  • 3계층 IP 바로 위에 존재한다.
  • 특정 노드까지 가는 여러 개의 길을 제공
  • 계층적 구조

 

BGP

routing among the ISPs

AS 사이에서 동작하는 프로토콜

BGP : Border Gateway Protocol

  • 인터넷에서 표준처럼 사용되고 있음
    • eBGP : 외부와 통신
    • iBGP : 내부 AS 에서 통신
  • “I am here” 정보를 계속 서로 주고받음

 

 

BGP message

  • OPEN
  • UPDATE
  • KEEPALIVE
  • NOTIFICATION

BGP 는 TCP 커넥션 위에서 동작 !

따라서 연결 OPEN, KEEPALIVE 와 같은 메시지가 필요하다.

BGP 에서 Route 를 선택하는 전략 (아래 순차적으로)

  • policy 우선
  • path 가 작은 걸 선택
  • 가장 가까운 NEXT-HOP 라우터를 선택 : hot potato routing
  • 그 외 전략
hot potato routing : AS 를 빨리 벗어날 수 있는 쪽으로 선택하는 전략
뜨거운 감자가 내 손에 있다 → 빨리 다른 사람 줘야 돼 ..! 너무 뜨거워..

 

728x90
반응형
저작자표시
  • Dijkstra’s algorithm
  • 문제점
  • Bellman-Ford equation (dynamic programming)
  • BGP message
  • BGP 에서 Route 를 선택하는 전략 (아래 순차적으로)
'💼 CS/📶 Network' 카테고리의 다른 글
  • Network :: UDP
  • Network :: Pipelined protocol
  • Network :: SDN
  • Network :: IPv6
jujuwon
jujuwon

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.