위 그림은 H1 호스트와 H2 사이를 이루는 간단한 네트워크를 보여 준다. H1에서 H2로 정보를 보낸다고 가정하고, 호스트와 중계 라우터에서 네트워크 계층의 역할을 생각해 보자.
- H1 네트워크 계층은 H1의 트랜스포트 계층으로부터 세그먼트를 받아 각 세그먼트를 데이터그램으로 캡슐화하고, 인접한 라우터 R1에게 데이터그램을 보낸다.
- 수신 호스트 H2의 네트워크 계층은, 세그먼트를 추출하여 H2의 트랜스포트 계층으로 전달한다.
각 라우터의 데이터 평면 역할은 입력 링크에서 출력 링크로 데이터그램을 전달하는 것이다.
네트워크 제어 평면의 근본적 역할은 데이터그램이 송신 호스트에서 목적지 호스트까지 잘 전달되게끔 로컬과 퍼 라우터 포워딩을 조정하는 것이다.
포워딩과 라우팅 개념
아래는 네트워크 계층의 중요한 두 가지 기능이다. (라우터에서 실행된다.)
포워딩(전달) : 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시켜야 한다.
ex) R1 라우터는 패킷을 H2로 가는 경로에 있는 라우터로 전달해야 한다. 포워딩은 데이터 평면에 구현된 가장 보편적이고 중요한 기능이다. 주로 몇 나노초 단위를 가지기 때문에 일반적으로 하드웨어에서 실행된다.
라우팅 : 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야 한다. 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘이라 한다. 라우팅은 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단간 경로를 결정하기 때문에 초 단위를 가지고 보통 소프트웨어에서 실행된다.
라우터에서 반드시 필요한 요소는 포워딩 테이블이다.
포워딩 테이블이란?
패킷의 헤더값을 추출하고, 그 값을 바탕으로 라우터 내부의 다양한 출력 링크 중 어떤 링크로 패킷을 이동시킬지 결정해주는 테이블이다.
라우터는 도착하는 패킷 헤더의 필드값을 조사하여 패킷을 포워딩한다. 이 값을 포워딩 테이블의 내부 색인으로 사용한다. 아래 그림을 보면 데이터그램의 헤더값이 0110인 패킷이 라우터의 2번 출력링크로 전달됨을 볼 수 있다.
제어 평면 기초 개념
제어 평면에 있는 라우팅 알고리즘은 라우터의 포워딩 테이블의 내용을 결정한다.
한 라우터의 라우팅 알고리즘 기능은 다른 라우터의 라우팅 알고리즘과 소통하며 포워딩 테이블의 값들을 계산한다.
서로 다른 라우터들 끼리 어떻게 소통이 이루어 질까?
라우팅 프로토콜에 따라서 라우팅 정보에 포함된 라우팅 메시지를 교환하면서 이루어 지게 된다.
(제어 평면의 라우팅 알고리즘과 라우터들간의 소통에 대해서는 5장에서 자세히 다루게 됩니다.)
위 그림을 보면 제어 평면에 라우팅 알고리즘이 사라졌다.
'원격 컨트롤러'가 포워딩 테이블을 계산하고 배분하는 동안 데이터 평면의 라우팅 기기는 포워딩만을 수행한다. 이를 SDN(Software Defined Networking) 중심이라고 한다. 네트워크가 소프트웨어적으로 정의되었을 때, 포워딩 테이블을 계산하는 컨트롤러는 라우터와 상호작용을 하며 소프트웨어에서 실행되기 때문이다.
기본 네트워크 서비스 모델
트랜스포트 계층의 입장에서는 네트워크 계층이 패킷을 전달해준다는 것을 믿을 수 있을까?
호스트에서 보낸 순서와 동일하게 패킷을 전송할까?
등의 물음에 대한 답은 네트워크 계층이 제공하는 서비스 모델에 따라 결정된다는 것이다.
네트워크 계층에서 제공할 수 있는 서비스들은 다음과 같다.
- 보장된 전달 : 이 서비스는 패킷이 출발지에서 목적지까지 도착하는 것을 보장한다.
- 지연 제한 이내의 보장된 전달 : 호스트간의 특정 지연 제한 안에 도착을 보장한다. (timeout 이전 도착)
- 순서화 패킷 전달 : 패킷이 목적지에 송신된 순서로 도착하는 것을 보장한다.
- 최소 대역폭 보장 : 송신호스트가 비트들을 특정한 비트 속도 이하로 전송하는 한 모든 패킷이 목적지 호스트까지 전달됨을 보장한다.
- 보안 서비스 : 출발지에서 암호화, 목적지에서 복호화를 할 수 있게 하여 트랜스포트 계층의 모든 세그먼트들에 대해 기밀성을 제공한다.
인터넷 네트워크 계층은 '최선형 서비스' 라고 알려진 서비스를 제공한다.
최선형 서비스는
1. 패킷을 보내는 순서대로 수신됨을 보장할 수 없고
2. 목적지까지의 전송 자체도 보장할 수 없고,
3. 호스트간의 지연방지도 보장되지 않고,
4. 보장된 최소 대역폭 또한 없다.
하지만 적절한 대역폭이 제공되는 '인터넷 기반 최선형 서비스 모델'이 넷플릭스, VoIP, 스카이프, 페이스 타임과 같은 실시간 어플리케이션에서 실행될 만큼 충분히 좋다고 입증되고 있다.
라우터 vs 링크 계층 스위치
1장에서 access 네트워크와 직접적으로 연결된 링크 계층 스위치를 봤을 것이다. 이는 라우터와 같은 패킷 스위치의 개념이다.
링크 계층 스위치는 링크 계층 프레임의 필드 값에 근거하여 포워딩을 결정한다.
반면에 라우터는 네트워크 계층의 데이터그램의 필드값에 근거하여 포워딩을 결정한다. 이 둘을 확실히 구분해야 한다.
'CS > Network' 카테고리의 다른 글
[Network] 네트워크 계층 : SDN(Software-Defined Networking) (0) | 2021.10.08 |
---|---|
[Network] 네트워크 계층 : 라우터(Router) (0) | 2021.10.01 |
[Network] 트랜스포트 계층 : 흐름제어, TCP 연결 (0) | 2021.09.28 |
[Network] 트랜트포트 계층 : TCP 연결 (연결 지향형) (0) | 2021.09.24 |
[Network] 트랜스포트 계층 : 다중화와 역다중화 (0) | 2021.09.17 |