본문 바로가기

CS/네트워크

[네트워크] 라우팅(routing)

2021년 10월 26일에 작성된 글입니다.

🔀 라우팅(routing)

패킷이 출발지에서 목적지까지 거칠 최적의 경로를 선택하는 과정

🏣 라우터(router)

패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전송시키는 제3계층(network layer) 장비

🤝 라우팅 프로토콜(routing protocol)

데이터 전송을 위해 목적지까지 갈 수 있는 여러 경로 중 최적의 경로를 설정해주는 라우터 간의 상호 통신규약

RIP(Routing Information Protocol)

AS(Autonoumous System; 자율 시스템) 내에서 사용하는 거리 벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜

    • Bellman-Ford 알고리즘 사용
    • 최대 홉 수(hop count)를 15개로 제한
    • UDP (520 포트) 사용
    • 30초마다 전체 라우팅 정보를 브로드캐스팅

규모가 크고 복잡한 TCP/IP 네트워크 RIP의 단점을 개선하기 위해 자신을 기준으로 링크 상태 알고리즘을 적용하여 최단 경로를 찾는 라우팅 프로토콜

OSPF(Open Shortest Path First)

    • Dijkstra 알고리즘 사용
    • 홉 카운트 무제한

AS 상호 간에 경로 정보를 교환하기 위한 라우팅 프로토콜

BGP(Border Gateway Protocol)

  • 변경 발생 시 대상까지의 가장 짧은 경로를 경로 벡터 알고리즘을 통해 선정하고, TCP (179 포트) 연결을 통해 AS로 라우팅 정보를 신뢰성 있게 전달
  • ISP 사업자들 상호 간에 주로 사용
  • 라우팅 비용(CPU 부하)이 많이 들고, 라우팅 테이블의 크기가 커서 메모리 사용량이 많음

💻 라우팅 알고리즘(routing algorithm)

목적지까지 최적 경로를 산출하기 위한 법칙

📏 거리 벡터 알고리즘(distance vector algorithm)

인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정

    • Bellman-Ford 알고리즘 사용
    • 각 라우터가 업데이트될 경우마다 전체 라우팅 테이브을 보내라고 요청하지만 수신된 경로 비용 정보는 이웃 라우터에게만 보내짐
    • 직접 연결된 이웃들에 대한 링크 비용 정보만 갖고 시작
    • 계산 및 이웃과의 정보 교환 과정을 반복함
    • 분산형(decentralized)

링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성

🚦 링크 상태 알고리즘(link state algorithm)

  • Dijkstra 알고리즘 사용
  • 네트워크를 일관성 있게 파악할 수 있으나 거리 벡터 알고리즘에 비하여 계산이 더 복잡하고 트래픽을 광범위한 범위까지 전달
  • 모든 라우터가 완전한 토폴로지(topology) 및 비용 정보를 가짐
  • 중앙집중형(global)

'CS > 네트워크' 카테고리의 다른 글

DNS Recursive Query를 직접 해보자  (0) 2024.09.04