이전 정리글까지는 4계층인 Transport layer에 대해서 정리하며, 4계층의 프로토콜 TCP, UDP에 대해서 자세히 알아보았다. 이번 글부터는 3계층인 Network layer에 대해서 정리해볼 예정이다.
1. Network Layer의 service와 protocol
먼저, 기억해야 될 점은 각 계층은 하위 계층에 의존한다는 점이다. 이에 따르면, Transport Layer는 Network Layer에 의존한다. 그렇다면, Network Layer는 Transport Layer에 어떤 서비스를 제공할까? 다음 그림을 살펴보자.

4계층에서 생성하는 데이터 단위는 segment다. 4계층은 segment를 통해 process to porcess 통신을 담당한다. 3계층에서는 이 segment를 받아 3계층의 헤더를 붙여 encapsulation을 진행 한뒤, 3계층의 데이터 단위인 datagram으로 link layer에 전달한다. 이를 sender와 receiver 입장에서 정리하면 다음과 같다.
- sedner : 4계층으로부터 segment를 받아 datagram으로 encapsulation을 진행해 2계층으로 전달한다.
- receiver : 수신한 datagram을 segment로 demultiplexing 후 4계층에 전달한다.
이제부터는 3계층이 담당하는 network core의 동작 방식, 특히 3계층의 switch 역할을 하는 router에서 데이터가 어떻게 흐르는지를 살펴볼 것이다.
2. Network Layer의 핵심 기능
네트워크 계층의 2가지 핵심 기능이 존재한다. 앞서, Network core관련 정리글에서도 확인할 수 있듯이 forwarding과 routing이다. Forwarding과 Routing에 대해 간략하게 다시 설명하면 다음과 같다.
- Forwarding : packet들을 router의 input link에서 적절한 output link로 옮기는 것(한 라우터 내부에서 일어나는 일)
- Routing : packet이 source에서 destination까지의 경로를 결정하는 것(routing algorithm 활용)


왼쪽 그림처럼 Input으로 들어와 1~7의 output 중 어디로 나갈지 결정하는 것이 forwarding,
오른쪽 그림처럼 source~destination까지 최단 경로를 rouing algorithm을 통해 계산한 뒤 결정하는 과정이 routing이다.
3. Data plane, Control plane
네트워크 계층은 크게 Data plane과 Control plane으로 나뉜다. 이번 글에서는 둘에 대해 간략히 정리하고 data plane에 대해 먼저 정리한 뒤, control plane에 대해서 정리할 예정이다.
- Data palne : 라우터 내에서 지역적으로 일어난다.
- datagram이 router에 도착해서 어떤 ouput port로 나가는 지 결정하는 역할을 수행한다.
- 이 때 사용되는 것이 Forwarding table이다.
- Control plane : 네트워크 전역적인 로직이다. datagram이 source에서 destination까지 수많은 경로 중 어느 경로로 이동할지 결정하는 역할(두 가지 control-plane 버전이 있다.)
- Traditional routing algorithm : 라우터 내부에서 일어남
- SDN(software-defined networking) : (원격)서버에서 실행됨
Forwarding table이 작성되는 과정은 routing algroithm을 계산한 뒤, 계산된 routing algorithm을 보고 작성되며, 어느 input port에서 outport로 나갈 지 결정한다.
우리가 주목해야 할 점은, 이 routing algorithm이 한 컴퓨터에서만 계산되지 않고 한 컴퓨터에서만 계산되는 것이 아니라
모든 라우터가 각자 계산을 수행하는 분산 알고리즘이라는 것이다. 즉 계산하는 컴퓨터마다 서로 다른 계산 결과를 일시적으로 가지고 있을 수 있다. 그 결과는 각각 공유를 해야되고, 공유된 결과를 보고 다시 경로를 최신화하는 과정을 반복하게 된다. 이런 과정이 Traditional routing algorthim이라고 한다.
이와 대비되는 개념이 바로 최근 등장한 SDN(Software-Defined Networking)이다. SDN은 각각의 라우터가 독립적으로 경로를 계산하는 것이 아니라, 중앙의 컨트롤러가 모든 경로를 계산한 뒤, 각 라우터에 전달함으로써 라우팅에 프로그래밍 가능성(Programmability)을 부여하는 구조이다. 이 방식은 유연성을 제공하지만, 컨트롤러에 계산 부담이 집중된다는 단점도 존재한다. 이러한 내용은 Control Plane 파트에서 더 자세히 다룰 예정이다.
4. Network 서비스 모델
Network 서비스는 "best effort" 서비스 모델이다. 즉, 최선의 노력을 하지만 100%를 보장할 수 없다는 것이다. 다음과 같은 것들을 100% 보장하지 못한다.
- 성공적으로 datagram이 목적지에 도착하는 것
- 시간 내에 또는 순서에 맞게 도착하는 것
- end-end 흐름을 가능할 수 있게 하는 bandwidth
다음 상황들을 가정해보자.
1. datagram의 도착을 100% 보장한다
> 도착을 100% 보장한다는 것은 인터넷을 사용하는 사용자에게 있어서는 매우 좋은 상황이다. 그렇지만 100% 도착을 보장하기 위해서는 복잡한 프로토콜과 많은 비용이 필요하다.
2. 40msec이내에 도착을 보장한다.
>시간 보장을 통해 지연에 대해서 민감한 application(실시간 게임 등)에 적합하지만, 세밀한 제어와 큰 자원이 필요하다.
3. datagram이 순서대로 도착하는 것을 보장한다.
> datagram이 요청 순서대로 도착하는 것을 보장하는 것은 사용자 입장에서는 또 매우 좋은 상황이다. 1,2와 마찬가지로 구현이 쉽지 않다.
4. 전송 bandwidth(대역폭) 보장
> bandwidth를 보장하는 것은 inter-packet spacing을 일정하게 유지하는 것이다. Inter-packet spacing은 말 그대로 packet 사이 간격을 말한다. 즉, 연속적인 두 패킷 사이의 시간차인데, bandwidth를 보장하면, inter-packet spacing은 고정값이 되고, 도착하는 대로 데이터를 끌어다 쓰면 되니, 사용자 입장에서는 buffer 용량을 줄여도 안정적인 수신이 가능하다는 뜻이다. 그렇지만 현실적으로 모든 흐름에 대해 대역폭을 보장하는 것은 쉽지 않고 비용이 크다.
위와 같은 것들을 보장하지 않고 best effort로 제공하려고 하는데, 사실 이를 보장하기 위한 시도는 많이 있었다. 다음 표를 한 번 살펴보자.

표를 위에서 부터 한 번 살펴보자.
- Internet은 표의 맨 위에서 볼 수 있듯이, QoS 중 어느 것도 보장하지 않는다.
- ATM은 Asynchronous Transfer Mode라는 기술인데, 이 기술을 통해서 앞서 언급했던 QoS들 중 loss, order, timing을 보장하려고 노력했지만, 현재는 쓰이고 있지 않다.
- Intserv Gauranteed라는 기술을 이용한 Internet도 존재했는데, 모든 QoS를 보장하려고 했지만, 더 이상 연구가 진행되고 있지는 않다고 한다.
- Diffserv라는 기술을 이용한 Internet 기술은 가능한 차등화된 요금제로 서비스를 제공하려고 한 것이다. 돈을 더 내면 우선순위를 높여 서비스를 제공하는 것이다.
위와 같은 노력에도 불구하고, 현재까지도 Internet은 best effort 모델을 유지하고 있다. 이는 네트워크 설계가 단순하고 확장성이 좋으며, 광섬유 기반 링크 발전을 통해 대역폭도 충분히 확보되었기 때문이다. 결과적으로 Network Layer에서 QoS를 보장해야 할 부담이 줄어든 것이다.
'학교공부 > [컴퓨터 네트워크]' 카테고리의 다른 글
| [컴퓨터 네트워크] - Network Layer_IP (3) | 2025.06.05 |
|---|---|
| [컴퓨터 네트워크] - Network Layer_라우터의 구조 및 기능 (2) | 2025.06.03 |
| [컴퓨터 네트워크] -Transport layer _ Transport layer의 진화 (0) | 2025.06.02 |
| [컴퓨터 네트워크] - Transport layer_TCP Congestion control (0) | 2025.05.31 |
| [컴퓨터 네트워크] - Transport layer_TCP Handshake (0) | 2025.05.27 |