전공공부/컴퓨터망 (Computer Network)

[컴퓨터망] Network Layer (1) - Routing & Forwarding

jooona 2021. 1. 26. 23:33
반응형

네트워크 계층(Network Layer, NL)은 TCP/IP 5 계층에서 데이터 링크 계층(Link Layer)과 전송 계층(Transport Layer) 사이에 위치하는 계층입니다. 이번 글에서부터는 네트워크 계층에 대해 공부해보려고 합니다.

1. 네트워크 계층이란?

네트워크 계층은 상위 계층인 전송 계층으로부터 세그먼트(Segment)를 전달받아 패킷(Packet)으로 만들어 데이터 링크 계층으로 내려보내 주거나 (송신 측), 데이터 링크 계층으로부터 패킷을 받아 세그먼트로 만들어 전송 계층으로 올려 보내 주는 역할을 합니다 (수신 측). 여기서 패킷은 데이터그램(Datagram)과 같은 의미로 혼용하여 사용합니다. 

 

네트워크 계층에서는 라우터(Router)를 이용해 패킷을 목적지까지 운반합니다. 라우터는 자신을 통과하는 모든 패킷의 헤더 정보를 확인하고 다음 라우터로 해당 패킷을 전달해주는 역할을 합니다.

 

네트워크 계층의 가장 큰 두 가지 역할은 라우팅(Routing)포워딩(Forwarding)입니다. 라우팅출발지로부터 목적지까지의 경로를 설정해주는 일입니다. 그리고 이렇게 만든 경로를 통해 패킷을 이동시키기 위해 라우터는 라우팅 알고리즘을 이용해 포워딩 테이블이라는 것을 만들어줍니다. 여기서 포워딩 테이블은 각각의 라우터가 자신에게 들어온 패킷을 어디로 보내주어야 하는지를 알려주는 테이블입니다. 

 

포워딩은 라우터로 들어온 패킷의 헤더를 검사하여 IP 주소를 확인하고, 포워딩 테이블의 IP 주소와 비교하여 어디로 보내줄지를 정해주는 과정입니다. 라우팅은 패킷의 출발부터 도착까지의 전체 일정을 관리하는 일이라면, 포워딩은 바로 다음 목적지로 보내주는 과정이라고 생각할 수 있습니다. 라우팅은 소프트웨어가, 포워딩은 하드웨어가 담당합니다.

 

2. 데이터 평면 (Data Plane)과 컨트롤 평면 (Control Plane)

네트워크 계층은 데이터 평면(Data Plane)과 컨트롤 평면(Control Plane), 그리고 관리 평면(Management Plane)으로 나누어집니다. 관리 평면은 논외로 하고, 여기서 데이터 평면은 포워딩과 관련된 영역이고, 컨트롤 평면은 라우팅과 관련된 영역입니다. 

 

컨트롤 평면에서 각각의 라우터들의 라우팅 알고리즘들은 상호작용을 하면서 출발지로부터 목적지까지 경로를 만들어 줍니다. 라우팅에 관한 내용은 나중에 더 자세히 알아볼 예정입니다.

 

데이터 평면은 각각의 라우터들이 별개로 가지고 있는 기능으로, 라우터의 입력 포트로 들어온 패킷을 적절한 출력 포트로 보내주는 역할을 합니다. 라우터에는 큐(Queue)가 존재하여, 포워딩이 완료되기 전에 다음 패킷이 라우터에 도착하면, 큐에서 자신의 차례를 대기하게 됩니다. 

 

포워딩에도 두 가지 종류가 존재합니다. 하나는 목적지 기반의 포워딩(Destination-based Forwarding)이고 하나는 일반화된 포워딩(Generalized Forwarding)입니다. 목적지 기반의 포워딩은 이름 그대로 목적지의 IP 주소를 기반으로 포워딩을 해주는 것이고, 일반화된 포워딩은 패킷의 헤더 필드의 어떤 값들을 기반으로 포워딩을 해주는 것입니다. 

 

3. 목적지 기반의 포워딩 (Destination-based Forwarding)

목적지 기반의 포워딩은 IP 주소만을 이용하여, 컨트롤 평면에서 만들어 낸 포워딩 테이블을 이용해 포워딩을 해주는 방식입니다. 아래와 같이 포워딩 테이블이 존재하면, IP 주소를 확인하여 해당하는 Link Interface로 전달해주는 것입니다. 여기서 Link Interface는 연결된 출구의 번호라고 생각하시면 될 것 같습니다.

 

최대한 포워딩을 빨리 하는 것이 라우터의 성능을 좌우할 수 있기 때문에, 최대한 빠르게 테이블에서 해당되는 엔트리를 찾아주는 것이 중요합니다. 

 

반응형