Shine's dev log

Network layer 개요 본문

컴퓨터 네트워크

Network layer 개요

dong1 2021. 2. 28. 01:28

1. Network layer

 

TCP/IP 프로토콜 스택에서 Transport layer 아래에 위치하며, 컴퓨터 네트워크의 핵심이라고 볼 수 있는 Network layer에 대하여 알아보자.

 

Network layer

 

 

 

2. Network layer의 핵심 기능

 

Network layer의 핵심 기능은 크게 두가지가 있다.

 

 1) Forwarding

  - data plane이 담당

  - 패킷이 들어왔을 때, 내보내는 액션을 취하는 기능

 

 2) Routing

  - control plane이 담당

  - 들어온 패킷을 어디로 보낼지 판단하는 기능

  - 라우터가 길을 판단하기 위해서는 라우터끼리 메시지로 길을 그려야 함 (Routing protocol)

 

 

 

3. Data plane & Control plane

 

 1) Data plane

  - 적용 범위가 라우터 내부 local 에서만 일어나며, 각각의 라우터마다 동작

  - input으로 도착한 datagram이 어떻게 output으로 forwarding 될지 결정

 

 2) Control plane

  - 적용 범위가 네트워크 전체

  - 라우터끼리 표(forwarding table)이용해 결정하는 전통적인 방식과, 중앙의 똑똑한 서버를 이용하는 SDN 방식 존재

 

 

 

4. 라우터의 구조

 

라우터는 아래 그림과 같은 구조를 가지고 있다.

 

router structure

 

Routing을 담당하고 관리하는 소프트웨어 형태의 routing processor와 Forwarding을 담당하는 하드웨어 형태의 high speed switching fabric이 존재한다.

 

 

 

5. forwarding table

 

Control plane에서 Routing을 진행할 때 사용하는 표이다.

각각의 라우터마다 모두 가지고 있으며, IP 헤더에 적힌 목적지를 보고 link를 연결해주는 역할을 한다.

 

forwarding table

 

forwarding table은 목적지의 주소가 가장 비슷한 곳을 골라 보내는 longest prefix matching을 기준으로 동작한다.

예를 들어 위의 forwarding table에서 "11001000 00010111 00011000 10101010" 주소를 가진 datagram은 prefix가 가장 길게 일치하는 1번 link를 통해 빠져나갈 것이다.

 

 

 

6. Netwrok service model

 

네트워크 레이어가 제공하는 서비스들로는 기본적으로 패킷을 순서대로, 빠트리지 않고 책임지고 보내는 서비스, 최소 bandwidth를 보장해주는 서비스, 일정 delay이내로 패킷을 보내주는 서비스 등이 있다.

 

이전에 사용하던 ATM(Asynchronous Transfer Mode) 프로토콜들은 위와같은 다양한 서비스를 지원해주었지만, 우리가 흔히 쓰는 IP 프로토콜은 이러한 서비스를 지원하지 않고 그냥 단순히 동작한다.

그대신 IP는 이러한 다양한 서비스를 TCP에게 맡기는 것이다.

 

 

 

7. Router input/output port

 

라우터 내부의 input/output ports의 구조를 살펴보면 아래와 같다.

 

router input/output port

 

input ports에서, fabric으로 포워딩해주는 속도가 datagram이 도착하는 속도보다 느리면 buffering이 발생한다.

output ports에서, fabric에서 도착하는 속도가 transmission 되는 속도보다 느리면 buffering이 발생한다.

 

특히 output ports에서 buffering이 발생하여 대기하다가 기회가 생겨 빠져나갈 때, 어느 패킷이 가장 먼저 빠져나갈지를 정하는 기준을 패킷 스케쥴링이라 한다.

 

일반적으로 FIFO(First-In First-Out) 방식을 채택하지만, 경우에 따라 특정 weight를 줘서 계산하는 WFQ 방식도 가능하다.

 

buffering이 길어져서 특정 패킷을 버려야 할 상황이 오면 tail이나 head의 패킷을 버리며, 버려지기 전에 미리 경고를 주는 Active queue management 방식도 존재한다.

 

 

 

8. HOL Blocking (Head Of the Line)

 

패킷이 들어올 때, 앞에있는 (나와 연관 없는) 패킷때문에 대기하는 상황을 HOL Blocking이라 한다.

 

HOL Blocking

 

예를 들어 위의 그림에서 input 1, 3의 빨간 두 패킷이 경쟁하느라, input 3의 초록색 패킷이 대기하는 상황이 발생하는데 이를 HOL Blocking이라 한다.

 

 

오늘 배운 내용을 정리해보면,

 

1. TCP/IP 프로토콜 스택에서 3계층에는 Network layer가 있다.

 

2. 크게 routing을 하는 control plane과 forwarding을 하는 data plane으로 나눌 수 있다.

 

3. 라우터는 다양한 기능을 한다.

 

위 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.

'컴퓨터 네트워크' 카테고리의 다른 글

IP addressing (CIDR, DHCP)  (0) 2021.03.04
IP 프로토콜 (IP header, fragmentation)  (0) 2021.03.03
TCP congestion control  (0) 2021.02.26
TCP 연결 (3 way-handshake)  (0) 2021.02.25
TCP Flow Control  (1) 2021.02.24