✒️ 0. 들어가기 전
오늘은 라우팅에 대해 이야기 해본다.
데이터 전송에서 핵심적인 역할을 하는 라우팅.
데이터 패킷이 출발지에서 목적지까지 가장 효율적인 경로로 이동할 수 있게 해주는 라우팅에 대해 알아보자.
✒️ 1. 라우팅이란?
💡 네트워크에서 데이터 패킷을 보낼 때 최적의 경로를 선택하는 과정 -> 라우터의 역할
네트워크 라우팅은 하나 이상의 네트워크에서 경로를 선택하는 프로세스이다.
패킷 하나가 보통 출발지에서 목적지로 가는 동안 여러개의 라우터를 거치며 여러번의 라우팅이 수행된다. (초당 수백만번)
✒️ 2. 라우팅의 기본 원리
아래 이미지를 보며 생각해보자.
컴퓨터 A에서 B로 데이터를 전송할 때, 여러 가능한 경로 중 어느 것이 가장 효율적인지 결정해야 한다.
단순히 생각하면 네트워크 2, 4 를 사용하는 것이 더 빨라보이기도 한다.
하지만 그렇게 단순한 일은 아니다...
고려되는 요소에는 단순히 물리적 거리뿐만 아니라 네트워크의 속도, 혼잡도 등 다양한 요인들도 포함되기 때문이다.
네트워크 라우터에서는 지속해서 이런 어려운 선택을 계속해서 하게 된다.
라우터는 계속해서 패킷의 이동 방향을 지정해준다고 했다.
허나, 어떤 알고리즘을 통해서 라우팅 되는걸까...?
✒️ 3. 라우팅 테이블
라우터는 내부에 라우팅 테이블을 가지고 있어, 이를 참조하여 각 패킷의 최적 경로를 결정한다.
마치 열차 승객이 시간표를 보고 어떤 열차를 탈지 결정하는 것과 비슷하다.
라우팅 테이블은 IP 주소를 기반으로 라우터의 위치, 목적지 등을 저장한 테이블이다.
여기에는 다양한 네트워크에 대한 정보와 해당 네트워크에 연결하는 방법이 포함되어 있다.
위 사진을 봐보자. PC1, Router A, PC3 가 eth3 를 통해 연결되어 있다.
PC1(10.0.0.4)이 101.25.67.0 네트워크에 있는 PC3(101.25.67.7)에 패킷을 보내려고 한다고 하자.
이 때 RouterA를 거쳐 전달되게 된다.
라우팅 테이블의 구성 요소를 자세히 알아보자.
💡 라우팅 테이블의 구성 요소
- 네트워크 대상(Network Destination) : 목적지 네트워크의 IP 주소
> 101.25.67.0이 네트워크 대상 주소이다.
- 서브넷 마스크(Netmask) : 대상 주소를 설명할 때 쓰이는 값.
> 255.255.255.0이 서브넷 마스크 이므로, 101.25.67.0 네트워크에 속한 호스트는 101.25.67.1 ~ 101.25.67.254 범위의 IP 주소를 가질 수 있다.
> 101.25.67.0이 대상이며, 서브넷이 255.255.255.0이므로, 101.25.67.7인 PC 3도 이 대상 주소에 포함된다는 것을 알 수 있다.
- 게이트웨이(Gateway): 이 장치와 연결되어있는 홉, 패킷이 전달되는 다음 IP 주소(외부 네트워크와 연결된 장치)
만약 목적지가 로컬 네트워크라면 “연결됨(connected)”라고 표기 되며 다른 네트워크라면 해당 네트워크의 게이트웨이를 가리킨다.
- 인터페이스(interface): 게이트웨이로 가기위해 거치는 장치 / 10.0.0.2는 eth3을 통해 접근이 가능.
- 메트릭(Metric): 우선순위라고도 불리며 패킷 전송을 위해 최적의 경로가 선택되도록 참고되는 값. 동일한 라우팅테이블 요소가 2개 있을 때 이 값이 낮은 요소가 선택된다.
메트릭은 일반적으로 홉 수(hop count)가 들어가며 지연시간, 처리량 등이 들어갈 수 있다.
(최적의 경로를 찾는 것 ? > 메트릭이 낮은 값이 선택되는 것)
💡 홉(hop)이란?
홉(hop)은 네트워크에서 출발지와 목적지 사이에 위치한 장치를 의
홉 카운트(hop count)는 데이터가 출발지와 목적지 사이에서 통과해야 하는 홉의 개수를 의미한다.
💡 라우팅 테이블의 종류
정적 라우팅 테이블: 네트워크 관리자가 수동으로 설정하며 변경되지 않는다.
동적 라우팅 테이블: 네트워크 상황에 따라 자동으로 업데이트된다.
이는 GPS 내비게이션이 실시간 교통 상황을 반영하여 경로를 조정하는 것과 유사하다.
✒️ 4. 주요 라우팅 프로토콜
💡 기본 프로토콜
- IP (Internet Protocol): 데이터 패킷의 출발지와 목적지 주소를 지정하는 가장 기본적인 프로토콜
💡 내부 라우팅 프로토콜
- OSPF (Open Shortest Path First): 네트워크 내에서 가장 빠른 경로를 동적으로 찾는 프로토콜
- RIP (Routing Information Protocol): 홉 수를 기준으로 최단 경로를 찾는 프로토콜
💡 외부 라우팅 프로토콜
- BGP (Border Gateway Protocol): 서로 다른 대규모 네트워크 간의 라우팅 정보를 교환하는 프로토콜
📝 면접 예상 질문
라우팅이란 무엇이며, 그 과정은 어떻게 이루어지나요?
정적 라우팅과 동적 라우팅의 차이점은 무엇인가요?
주요 라우팅 프로토콜에는 어떤 것들이 있나요?
라우터가 패킷을 전달할 때 고려하는 요소는 무엇인가요?
# 참고 링크
https://www.cloudflare.com/ko-kr/learning/network-layer/what-is-routing/