Data Plane - Router Architecture

2024. 5. 28. 13:50Computer Science/Networking

Ref : Computer Networking - A top down approach

Data Plane?

- 지역적이고, 라우터 개별적으로 작동하는 기능의 영역.

- 라우터에 도착하는 데이터그램(Network Layer)이 어느 라우터로 나갈지를 결정한다.

 

Control Plane?

- 네트워크단의, 광범위하게 작동하는 로직(기능)의 영역.

- 데이터그램이 라우터들 사이에서 어떻게 전달될지 결정한다.

- Control Plane에는 전통적인 알고리즘 결정 방식과 SDN 방식이 존재한다.

 

Ref : Computer Networking - A top down approach

Router Architecture Overview

- High-speed Switching fabric은 하드웨어 단에서 ns단위로 동작하며, 어떤 라우터의 input port에 들어온 데이터그램을 outputport에 던지는 역할을 한다. 쉽게 말하면, Data Plane의 영역을 담당한다.

- Routing Processor는 반면 ms단위로 동작하며(경우에 따라 다를 수 있음), Control Plane의 영역을 담당한다.

 

Ref : Computer Networking - A top down approach

- 이때 Input port는 다음과 같이 구성된다. Physical Layer단에서 line termination이 일어나고, link layer protocol이 frame을 받아 준다. 그 다음으로는 Header 값들을 이용해서 나갈 포트를 찾아 준다.

- 이때 나갈 포트를 찾을때는 forawrding table을 이용하며, 이때의 table에는 destination의 ip에 따른 행동이 지정되어 있다.(destination-based forwarding)

 

Ref : Computer Networking - A top down approach

- 이때 Output Port를 찾는 과정에는 Destination IP가 사용된다. 그리고 라우터는 각각의 IP를 지정하기 위해서 longest prefix match 방법을 사용한다.

- 위 사진을 참조해 보자. 만약 11001000 00010111 00010111 11111111이라는 Destination IP를 가진 모시깽이(??)가 Input port에 들어왔다 하면, 해당 패킷은 0번 interface로 전출되게 될것이다. 왜냐하면 왼쪽에서 부터 가장 잘 맞기 때문이다!

- 마찬가지로 11001000 00010111 00011100 00000000인 모시깽이는 2번 interface로 전출되게 될 것이다. 왜 1번 interface로 가지 않냐면, 보라색 글자 이후로의 bit가 000~ 을 만족하지 못했기 때문이다. (Longest Prefix가 이런 뜻이다.)

 

Ref : Computer Networking - A top down approach

- 다만 fabric에서의 switching속도가 느리면 Input ports에서 Queueing이 발생할 수 있으며, 이로 인해서 buffer overflow로 인한 Packet lodss가 발생할 수 있다.

- 이때 Queued된 패킷으로 인해 Queue에 쌓인 다른 패킷이 forwarding 되지 못하는 것HOL Blocking이라고 한다.

 

 

Ref : Computer Networking - A top down approach

- 어쨋든 나갈 포트를 찾았으면, 이제 Switching을 시켜줘야 할 것이다. 이때 Switching Rate를 패킷이 Input에서 Output으로 나가는 비율을 말한다.

- Switching Fabric에는 그림에는 나와 있지 않으나 메모리를 사용하는 방법, Bus를 사용하는 방법 혹은 상호 연결된 네트워크를 사용하는 방법이 존재한다.

 

Ref : Computer Networking - A top down approach

- 나갈 포트를 찾은 패킷, 이제 다른 라우터를 향해 나아갈 일 밖에 남지 않았다. 하지만 여기에서도 함정이 있으니, 전송 속도보다 빠르게 fabric이 스위칭을 해주게 된다면 패킷은 또다시 Output Port에서 Queued될 수 밖에 없다.

- 따라서 Overflow로 인해서 Datagram이 손실 될 수 있다. 그러므로 Buffer Management의 중요성이 대두되게 된다.

 

 

- Buffer Management는 크게 drop과 marking을 통해서 이루어진다. drop은 어떤 패킷을 날려버릴지 결정하는 것인데, 우선 순위를 두어서 결정할 수 도 있고 아니면 꼬리에 도착하는 패킷을 날려버릴 수 도 있다.

- marking의 경우는 Router가 어느정도로 혼잡한지를 패킷에 붙여서 전달하는 것을 의미하는데, TCP의 ECN 필드가 대표적이라고 할 수 있을 것이다.

- 그리고 또한 Output Port에서 어떤 패킷을 먼저 보낼지에 대해서도 생각해 봐야 하는데, 이를 Packet Scheduling이라고 한다.

 

FCFS는 그냥 FIFO를 생각하면 편하다.
Priority대로 Queue를 나누고, FIFO대로 가지만 우선순위가 높은 아이를 먼저 보내는 방식이다.
스타레일의 로빈...의 로빈ㅇ은 아니고, 그냥 싱글벙글 돌아가면서 패킷을 보내는 것을 의미한다.
이건 좀 어려울 수 있는데, 클래스 별로 Queue를 나눈 다음에 각 클래스당 가중치를 할당하며 그 비율대로 보내는 것이다.

- Packet Scheduling은 위 슬라이드를 참조하면 쉽게 이해할 수 있다.

 

 

 

 

 

 


* 학부생이 작성한 글인 관계로 오류가 있을 수 있습니다. 덧글이나 메일 주시면 바로 정정하도록 하겠습니다.

'Computer Science > Networking' 카테고리의 다른 글

Control Plane - OSPF, BGP  (0) 2024.05.30
Control Plane - Routing Protocols  (0) 2024.05.30
Data Plane - NAT, DHCP  (0) 2024.05.30
Data Plane - IP Datagram, Subnets  (0) 2024.05.29
Reliable Data Transfer Protocol(rdt)  (0) 2024.04.19