https://www.stevenjlee.net/2020/06/14/이해하기-라우팅-routing-그리고-라우팅-프로토콜-routing-protocol-l3/
라우팅 (Routing)
네트워크 세계에서의 라우팅(Routing)이란, 패킷에 포함된 주소 등의 상세 정보를 이용하여 목적지까지 데이터 또는 메세지를 체계적으로 다른 네트워크에 전달하는 경로 선택 (Path Determination) 그리고 스위칭 (Switching)하는 과정을 의미한다.
쉽게 말해서,
라우팅이란 데이터가 전달되는 과정에서 여러 네트워크들을 통과해야하는 경우가 생길 수 있는데, 여러 네트워크들의 연결을 담당하고 있는 라우터 장비가 데이터의 목적지가 어디인지 확인하여 빠르고 정확한 길을 찾아 전달해주는 것이다.
📌 라우팅을 너무 어렵게 생각할 필요는 없다.
우리가 처음 가보는 장소를 찾아가기 위해 하는 모든 행동들을 라우터가 패킷을 전달하는 라우팅 과정에 비교해보면 쉽게 이해할 수 있다. 예를 들어 새로 생긴 맛집을 찾아가려고 한다는 가정을 해보자.
우리가 가장 먼저 하는 것은 아마 그 곳이 어느 동네에 있는지 주소는 무엇인지를 확인하는 일일 것이다. 그런 뒤에 목적지인 맛집이 있는 동네로 가기 위해 가장 편하고 빠른 교통수단과 경로는 어디인 지를 생각할 것이다. 지하철을 타기로 했다면 몇호선을 어느 방면으론 타야하는 지 정확한 방향을 확인한 후에 선택한 교통수단을 이용하여 목적지로 출발한다.
방금 위에서 본 과정을 라우터가 수신한 패킷을 전달하기 위한 과정으로 비교해서 생각해보자. 우리가 맛집의 정확한 위치를 파악하는 것처럼 전달받은 패킷을 전달하기 위해 라우터도 가장 먼저 목적지가 어디인지 IP주소를 확인한다. 그런 뒤에 가장 빠른 경로가 어디인 지를 확인하고 그 경로로 가기 위해서는 자신의 어느 인터페이스로 패킷을 내보내야 하는 지 결정할 것이다. 그런 뒤에 결정한 인터페이스로 패킷을 전달하면 그 패킷은 또 다른 라우터로 전달되어 위와 같은 과정을 목적지 네트워크에 도착할 때까지 반복할 것이다.
이처럼 데이터를 목적지까지 전달하기 위한 모든 일련의 과정을 통틀어 라우팅(Routing)이라고 한다.
❓패킷: 데이터를 전송하는 하나의 단위. 즉, 한 네트워크 회선에서 데이터 한 묶음의 단위이다.
❓라우트: 라우팅에 의한 결과
라우팅을 하기 위해서 필요한 것
- 출발지와 목적지의 네트워크 정보
만약 장비가 목적지가 있는 네트워크의 존재를 모른다면 경로 설정을 해줄 수가 없을 것이고, 그렇기 때문에 전달이 불가능해질 것이다.
- 목적지로 가는 모든 경로
출발지와 목적지 사이의 어떤 경로들이 있는 지 알고 있어야 그 중에서 최적 경로를 선택할 수 있다.
- 최적 경로
데이터를 전달하기 위해서 모든 경로를 사용할 필요가 없기 때문에 학습한 경로 중 가장 최적의 경로를 하나 선택한다. 이 경로를 저장하는 곳을 Routing Table이라고 부르며 L3장비는 이 Table정보를 사용하여 패킷을 전달한다.
- 지속적인 네트워크 상태 확인
데이터를 전달해주려는 경로가 어딘 지는 알지만 만약 그 경로가 다운된 상태라서 사용할 수 없는 경우라면?
Routing Table에 저장된 경로로 전달이 가능한 상태인지 지속적으로 네트워크 상태를 확인해서 네트워크 정보를 항상 올바른 최신 정보로 유지해야한다.
라우팅 테이블 (Routing Table)
https://jjh347292.tistory.com/52
목적지까지 갈 수 있는 모든 가능성있는 경로들 중에서 가장 효율적이라고 판단되는 경로 정보는 패킷을 전달할 때 바로 참고해서 사용할 수 있도록 따로 모아두는데, 이 공간을 라우팅 테이블(Routing Table)이라고 한다.
라우터(Router)는 패킷의 목적지와 목적지를 가려면 어느 인터페이스로 가야하는 지를 자신의 라우팅 테이블에 가지고 있고, 패킷의 목적지 주소를 라우팅 테이블과 비교하여 어느 라우터에게 넘겨줄 지를 판단하게 된다. 따라서 라우팅 프로토콜(Routing Protocol)의 가장 중요한 목적이 바로 라우팅 테이블 구성이다.
❓라우팅 프로토콜(Routing Protocol): 라우터들끼리 경로 정보를 교환하는 프로토콜
라우팅 테이블 구성
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=dreamxpeed&logNo=221671848467
https://butter-shower.tistory.com/21
- 정적 라우팅
정적 라우팅은 수동으로 라우팅 테이블을 만드는 방법이다.
입력된 라우팅 정보가 수정하기 전에는 이전의 값이 변하지 않고 고정된 값을 유지하며, 라우팅 정보는 관리자가 수동으로 입력한다.
장점
관리자에 의한 라우팅 정보만을 참조하기 때문에 라우터 자체의 부담이 없어 속도가 빠르며 안정적이고, 메모리 소모도 적다. 또, 라우터간의 데이터 교환이 없으므로 네트워크의 대역폭을 절약할 수 있다.
외부에 자신의 정보를 알리지 않기 때문에 보안에도 강하다.
단점
네트워크에 대한 각 경로를 일일이 수동으로 추가해주어야하므로 매우 번거롭다.
정해진 경로에 장애가 발생할 경우 네트워크 전체에 장애가 발생할 수 있다.
- 동적 라우팅
동적 라우팅은 접하는 라우터들이 라우팅 정보를 서로 교환하여 라우팅 테이블을 자동으로 만드는 방법이다.
장점
라우터가 서로 라우팅 정보를 주고받아 자동으로 라우팅 테이블을 작성하기 때문에 관리자는 초기 설정만 해주면 돼서 간단하다.
네트워크 규모가 커져도 자동으로 라우팅 테이블을 갱신하기 때문에 규모가 큰 네트워크에서 사용이 가능하다.
단점
다른 라우터들과 계속 통신하기 때문에 많은 대역폭을 소비한다.
'Study > CS' 카테고리의 다른 글
[CS] API란? (0) | 2022.04.10 |
---|---|
[CS] Rest API: URL 디자인 가이드 (0) | 2022.02.11 |
[CS] REST API, REST-ful이란? (0) | 2021.12.14 |
[CS] DAO / DTO(VO)란? (0) | 2021.12.08 |
[CS] 계층화 아키텍쳐(Layered Architecture) (0) | 2021.12.07 |