Routing이란?
라우팅은 네트워크에서 경로를 선택하는 프로세스입니다. 컴퓨터 네트워크는 노드라고 하는 여러 시스템과 이러한 노드를 연결하는 경로 또는 링크로 구성됩니다. 상호 연결된 네트워크에서 두 노드 간의 통신은 여러 경로를 통해 이루어질 수 있습니다. 라우팅은 미리 정해진 규칙을 사용하여 최상의 경로를 선택하는 프로세스입니다.
- AWS
라우팅란 무엇입니까? - 네트워크 라우팅 초보자 설명서- AWS
라우팅은 네트워크 통신의 효율성을 높입니다. 네트워크 통신 장애가 발생하면 웹 사이트 페이지가 로드될 때까지 사용자가 기다리는 시간이 길어집니다. 또한 웹 사이트 서버에서 많은 수의
aws.amazon.com
Routing은 데이터 통신의 최적 경로를 찾아내어 네트워크 통신의 효율성을 높이고, 최대한 많은 용량을 사용할 수 있도록 데이터 트래픽을 관리하여 네트워크 장애를 최소화해준다.
데이터는 데이터 패킷의 형태로 네트워크상에서 이동하는데, 이때 패킷은 데이터를 전송하는 하나의 단위 즉, 한 네트워크 회선에서 데이터 한 묶음의 단위을 의미한다. 패킷에는 도착지점에 대한 정보가 포함된 헤더가 존재한다. 데이터 패킷이 목적지에 도착하려면, 우선 라우터는 라우팅 테이블(다양한 네트워크 목적지에 대한 기록을 관리하는 메모리)에서 주소를 찾는다. 이 라우팅 테이블을 조회하면서, 대상 패킷을 목적지까지 보낼 가장 적합한 노선을 찾는 것이다. 라우팅 테이블을 조회하는 과정을 여러 버스 노선표를 비교하면서 가장 적합한 경로를 찾는 과정에 비유할 수 있다. 이후, 라우터는 패킷을 네트워크의 다음 지점으로 전달하거나 이동한다.
그러면, 여기서 Router는 무엇인가?
- Router는 컴퓨터와 네트워크를 도 다른 네트워크에 연결하는 네트워킹 디바이스이다. 주로 아래 세가지 기능을 수행한다.
- 경로 결정 : 지연, 용량 및 속도와 같은 네트워크 지표를 순석 -> 최상의 경로 찾기 시도
- 데이터 전달 : 선택한 경로에 위치한 다음 디바이스로 데이터를 전달하여, 최종적으로 대상에 도달하도록 함
- 로드 밸런싱 : 라우터가 여러 경로를 사용하여 동일 데이터의 패킷의 많은 사본을 전달할 수 있는데, 이 과정 중 데이터 손실로 인한 오류를 줄이고 이중화를 구현하여 트래픽 볼륨을 관리
- 일반적으로 express에서 라우터는 아래와 같은 구조를 가짐 + 샘플 엔드포인트 코드 + 미들웨어
router.METHOD(PATH, HANDLER);
/*
- `router`: express의 라우터를 정의하기 위해 사용합니다.
- `METHOD`: HTTP Method를 나타냅니다. (ex: get, post, put, delete …)
- `PATH`: 실제 서버에서 API를 사용하기 위한 경로를 나타냅니다.
- `HANDLER`: 라우트가 일치할 때 실행되는 함수힙니다.
*/
// routes/goods.js
// localhost:3000/api/ GET
router.get("/", (req, res) => {
res.send("default url for goods.js GET Method");
});
module.exports = router; // 미들웨어로 사용하기 위해 모듈화
// app.js
const goodsRouter = require("./routes/goods");
// localhost:3000/api -> goodsRouter
app.use("/api", [goodsRouter]);
Routing은 두가지 유형으로 구분될 수 있다.
- 정적 라우팅 : 네트워크 관리자가 패킷의 경로를 임의로 결정하여 수동으로 구성하는 라우팅 방식
- 장점 - 라우터의 부하를 경감할 수 있음 / 복잡한 계산이 필요 없어 빠른 라우팅 가능
- 단점 - 관리자가 직접 관리해야 할 것이 많아짐 / 네트워크 환경변화를 고려하지 않음 / 정해진 경로에서 장애가 발생하면, 전체 네트워크 이용에 장애가 발생할 수 있음 / 네트워크 규모가 커질경우, 수동으로 추가해야 해서 시간이 많이 걸림
- 동적 라우팅 : 라우터가 라우팅 프로토콜에 의한 계산에 따라 스스로 라우팅 경로를 결정하는 방식
- 장점 - 작업부담이 적고, 항상 최신 라우팅 정보를 유지할 수 있음 / 네트워느 환경 변화를 고려함
- 단점 - 라우터의 부하가 커서, 정적 라우팅에 비해 느림

Routing의 주요 Protocol
Routing protocol은 router가 패킷을 식별하고 네트워크 경로를 따라 전달하는 방법을 지정하는 규칙 세트이다. Routing protocol은 내부 게이트웨이 프로토콜(Inetrnal Gateway Protocol, IGP)과 외부 게이트웨이 프로토콜(External Gateway Protocol, EGP) 두 가지로 분류된다.
- IGP : 단일 조직 관리자가 제어하는 네트워크인 자율 시스템에서 가장 효과적이며, 아래 지표를 기준으로 라우팅 결정을 내림
- 홉 수 또는 소스와 대상 간의 라우터 수
- 지연 또는 소스에서 대상으로 데이터를 전송하는 데 걸린 시간
- 대역폭 또는 소스와 대상 간의 링크 용량
- Distance Vector
- 이웃 라우터의 주기적 갱신 정보를 라우팅 테이블에 반영
- 목적지까지 도달하는 데 필요한 거리와 방향만 라우팅 테이블에 기록
- 분산 벨만 포드 알고리즘으로 구현 가능
- 예) Routing Information Protocol(RIP) : 홉 수 또는 소스와 대상 간의 라우터 수를 기준으로 네트워크 최단 경로를 결정 (대규모 네트워크 구현에 적합하지 않아 현재는 사용하지 않는 레거시임)
- Link-State Vector
- 각 라우터마다 갈 수 있는 모든 라우터의 최단 경로를 라우팅 테이블에 기록
- 다익스트라 알고리즘으로 구현 가능
- 예) Open Shortest Path First(OSPF): 다른 모든 라우터에서 정보를 수집하여 데이터 패킷의 대상까지 가장 짧고 빠른 경로를 식별
- Distance Vector

- EGP : 두 자율 시스템 간의 정보 전송을 관리하는 데 적합
- Border Gateway Protocol(BGP): 가장 가까운 ASN을 추적하고 대상 주소를 ASN에 매핑
- 인터넷은 서로 모두 연결되어 있는 대규모 자율 시스템(각 기관 등에서 독립적으로 운영하는 네트워크, AS: Autonomous System)의 모음이며, 모든 자율 시스템(AS)에는 Internet Assigned Numbers Authority에 등록하여 할당받는 Autonomous System Number(ASN)가 있음
- Border Gateway Protocol(BGP): 가장 가까운 ASN을 추적하고 대상 주소를 ASN에 매핑
[네트워크] 라우팅
cs-study에서 스터디를 진행하고 있습니다. 사전 개념 라우팅이란 라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기법이다. 라우터
steady-coding.tistory.com
'항해99_10기 > 105일의 TIL & WIL' 카테고리의 다른 글
| [4주차][20221203] node.js에서 mySQL을 사용하기 위해 알아야 하는 것들 : Sequelize, Migration, Model (0) | 2022.12.04 |
|---|---|
| [4주차] [20221203] jwt - refresh token 동작 시나리오, EADDRINUSE 에러 (4) | 2022.12.03 |
| [3주차] [20221201] IP 주소와 port, 그리고 DNS (0) | 2022.12.01 |
| [3주차] [20221130] MongoDB 스키마 설계 (0) | 2022.11.30 |
| [3주차] [20221129] 에러 핸들링 (0) | 2022.11.29 |