해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)
✅ 라우터 내의 포워딩 과정에 대해 설명해 주세요.
- 패킷 수신: 라우터는 네트워크 인터페이스를 통해 패킷을 수신한다.
- 헤더 분석: 수신한 패킷의 IP 헤더를 분석하여 목적지 IP 주소를 확인한다.
- 포워딩 테이블 조회: 라우터는 목적지 IP 주소와 일치하는 항목을 찾기 위해 포워딩 테이블을 조회한다.
- 적절한 인터페이스 선택: 포워딩 테이블에 기반하여 패킷을 어떤 인터페이스로 보내야 할지를 결정한다. 선택된 인터페이스는 다음 홉으로 패킷을 전송한다.
- 패킷 전송: 패킷이 결정된 인터페이스를 통해 다음 홉으로 전송된다.
홉(Hop): 데이터 패킷이 출발지에서 목적지로 이동하는 동안 거쳐가는 각 네트워크 장치(주로 라우터 또는 스위치)
✅ 라우팅과 포워딩의 차이는 무엇인가요?
▶ 라우팅
라우팅(Routing): 네트워크 경로를 결정하는 과정이다. 라우터는 네트워크 상의 여러 가능한 경로 중에서 패킷을 목적지까지 보내기 위해 가장 적합한 경로를 선택한다.
🔽 과정
- 라우팅 테이블 구축: 라우터는 다양한 라우팅 프로토콜을 사용하여 네트워크의 경로 정보를 수집하고, 이를 바탕으로 라우팅 테이블을 만든다.
- 경로 선택: 라우팅 테이블을 참고하여 패킷을 목적지로 보내기 위한 최적의 경로를 선택한다.
라우팅 프로토콜: 라우터 간 정보를 교환하고, 최적의 경로를 결정하기 위해 사용하는 규칙과 절차의 집합이다.
▶ 포워딩
포워딩(Forwarding): 패킷을 실제로 전달하는 과정이다.
🔽 과정
- 패킷 수신: 라우터는 네트워크 인터페이스로 들어오는 패킷을 수신한다.
- 포워딩 테이블 조회: 수신한 패킷의 목적지 IP 주소에 따라 포워딩 테이블을 조회한다.
- 적절한 인터페이스로 전송: 포워딩 테이블에서 지정된 인터페이스를 통해 패킷을 다음 홉(다음 라우터나 최종 목적지)으로 전송한다.
▶ 라우팅과 포워딩의 차이점
라우팅(Routing) | 포워딩(Forwarding) | |
정의 | 네트워크에서 데이터 패킷을 목적지까지 전달하기 위한 최적의 경로를 결정하는 과정 | 라우팅에서 결정된 경로에 따라 패킷을 실제로 전달하는 과정 |
기능 | 네트워크의 전체 구조와 다양한 경로를 고려하여, 패킷을 전송하기에 가장 적합한 경로를 선택 | 라우터가 수신한 패킷을 포워딩 테이블을 참조하여 적절한 출력 인터페이스로 전송 |
수행 | 계산과 논리적인 결정이 필요하므로, 라우터의 소프트웨어(운영체제 및 라우팅 프로토콜)에서 실행 | 라우팅 테이블을 기반으로 패킷을 실제 전송하는 작업으로, 라우터의 하드웨어에서 수행 |
결과 | 라우팅 테이블 생성 | 패킷을 목적지까지 전달하기 위해 다음 홉으로 전송 |
주기 | 네트워크 환경이 변화할 때 또는 주기적으로 수행 | 패킷이 도착할 때마다 실시간으로 수행 |
▶ 라우팅과 포워딩 예시
내비게이션을 설정할 때, 전체적인 관점에서 가장 효율적인 경로를 결정하는 것이 라우팅이고, 그 경로를 따라 이동하면서 특정 구간에서 어디로 갈지를 결정하는 것이 포워딩이다.
✅ 라우팅 알고리즘에 대해 설명해 주세요.
라우팅 알고리즘: 네트워크에서 데이터 패킷을 목적지까지 가장 효율적으로 전달하기 위해 최적의 경로를 선택하는 방법 또는 절차를 의미한다.
▶ 라우팅 알고리즘의 유형
- 정적 라우팅(Static Routing)
- 설명: 정적 라우팅은 네트워크 관리자가 수동으로 라우팅 테이블에 경로를 설정하는 방식이다. 경로가 고정되어 있으며, 네트워크 환경이 변하더라도 경로가 자동으로 변경되지 않는다.
- 장점: 간단하고 예측이 가능하며, 소규모 네트워크에서 유용하다.
- 단점: 네트워크 환경이 변경되면 수동으로 경로를 수정해야 하므로, 대규모 네트워크에서는 비효율적일 수 있다.
- 동적 라우팅(Dynamic Routing)
- 설명: 동적 라우팅은 라우터들이 라우팅 프로토콜을 사용하여 서로 정보를 교환하고, 네트워크의 상태에 따라 자동으로 라우팅 테이블을 갱신하는 방식이다.
- 장점: 네트워크의 변화에 유연하게 대응할 수 있으며, 대규모 네트워크에서 매우 효율적이다.
- 단점: 더 복잡하고, 라우터 간의 정보 교환으로 인한 오버헤드가 발생할 수 있다.
▶ 동적 라우팅 알고리즘의 종류
- 거리 벡터 라우팅(Distance Vector Routing)
- 설명: 각 라우터는 인접한 라우터들로부터 받은 거리 정보를 사용하여 경로를 결정한다.
- 장점: 구현이 간단하다.
- 단점: 네트워크 규모가 커질수록 성능 저하되고, 루프가 발생할 가능성이 있다.
- 링크 상태 라우팅(Link State Routing)
- 설명: 네트워크 내 모든 라우터들이 서로 링크 상태 정보를 교환하여 전체 네트워크 구조를 파악하고, 각 라우터가 최단 경로를 계산한다.
- 장점: 네트워크 상태 변화에 빠르게 대응하며, 대규모 네트워크에서도 효율적이다.
- 단점: 구현이 복잡하고, 초기 구동 시간이 오래 걸릴 수 있다.
- 경로 벡터 라우팅(Path Vector Routing)
- 설명: 라우터 간의 경로 정보와 네트워크 정책을 기반으로 최단 경로를 계산한다.
- 장점: 구현이 간단하고, 작은 네트워크에서는 빠른 수렴이 가능하다.
- 단점: 대규모 네트워크에서는 수렴 시간이 오래 걸리거나, 라우팅 루프가 발생할 수 있다.
거리: 라우팅에서 목적지까지의 비용을 의미한다. 예를 들어, 라우터 A에서 목적지 B까지의 거리가 3홉이라고 하면, A에서 B까지 패킷이 3개의 중간 라우터를 거친다는 것을 의미한다.
경로: 출발지에서 목적지까지 패킷이 지나가는 실제 네트워크 장치들의 순서를 의미한다. 예를 들어, 경로가 [AS1, AS2, AS3]이라고 하면, 패킷이 AS1, AS2, AS3을 순차적으로 거쳐 목적지에 도달하는 것을 의미한다.
✅ 포워딩 테이블의 구조에 대해 설명해 주세요.
▶ 포워딩 테이블(Forwarding Table)
- 넷마스크: 네트워크 주소의 범위를 나타내는 서브넷 마스크이다.
- 목적지 네트워크 주소: 패킷의 목적지 IP 주소를 식별한다.
- 다음 홉: 패킷이 전달되어야 할 다음 목적지의 IP 주소이다.
- 출력 인터페이스: 패킷을 다음 홉으로 전달하기 위해 사용되는 라우터의 네트워크 인터페이스이다.
▶ 라우팅 테이블과 포워딩 테이블의 차이점
많은 글에서 라우팅 테이블과 포워딩 테이블이 구분 없이 사용되곤 한다. 그러나 정확히 말하면, 라우팅 테이블과 포워딩 테이블은 명확히 구분된다. 예를 들어, Riverbed(OPNET) Modeler에서는 라우팅 테이블이 각 라우팅 프로토콜에 의해 생성되고 관리되는 정보인 반면, 포워딩 테이블은 이 라우팅 테이블의 정보를 기반으로 IP 계층에서 생성되고 관리된다.
위 그림처럼 라우팅 테이블과 포워딩 테이블은 완전히 분리된 상태로 저장되며, 서로 다른 역할을 한다. 하지만 대부분의 경우, 포워딩 테이블에는 라우팅 테이블에 저장된 내용과 동일한 정보가 저장되기 때문에, 이 둘을 혼용하여 사용하는 경우가 많다.
📍 문제 출처
Tech-Interview / 03-NETWORK.md
📍 참고 자료
'Programming > Network' 카테고리의 다른 글
[Network] 서브넷 마스크, 게이트웨이 (0) | 2024.08.26 |
---|---|
[Network] 로드밸런서 (0) | 2024.08.26 |
[Network] Stateless, Connectionless (0) | 2024.08.18 |
[Network] SOP, CORS (0) | 2024.08.18 |
[Network] DNS (0) | 2024.08.18 |