Network Layer - Data/Control Plane & Router

CODE-K·2025년 2월 8일

컴퓨터 네트워크

목록 보기
3/16

Network Layer

OSI 7 Layer 중 Network Layer


Network Layer 기능

  1. Forwarding
    • Router의 Input으로 받은 Packet을 Router의 Output으로 이동
  2. Routing
    • Source 부터 Destination 까지의 Packet 이동 경로를 결정

Data Plane

  • Local, 각 라우터의 기능
  • 한 라우터의 Input으로 들어온 Datagram을 어떠한 Output으로 출력할 지 결정한다.
  • Forwarding 기능

Control Plane

  • Network 전체 기능
  • Datagram이 Source에서 Destination까지 "어떻게" Router를 지나 갈지 "경로를 결정"
  • Control Plane 방식은 2 가지
    1. Traditional Routing Algorithm
    2. Software-Defined Networking (SDN)

각 Router가 보유하고 있는 "Forwarding Table"의 정보를 통해
Control Plane에서 Source-to-Dest 경로를 결정


Router의 구조

Input을 통해 들어오는 Datagram을 Routing Processor를 통해 적절한 Output Port에 배출.

Router의 Decentrialized Switching 방식 2가지

  • Destination-based Forwarding
    -> IP 주소만을 보고 판단한다.
  • Generalized Forwarding
    -> IP 헤드 정보를 보고 판단.

Destination-based forwarding

Destination-based forwarding
-> Destination 주소의 "범위"에 따라 Output을 결정

Longest Prefix Matching

가장 길게 매칭되는 경로를 Output으로 결정.

예) 11001000 / 00010111 / 00011000 / 10101010 이라는 Dest Address가 있다고 가정
파란색 부분의 주소까지는, 경로 Output 1, 2와 모두 매칭이 가능.
그러나 뒤의 주소를 살펴보면, Output 1과 가장 길게 매칭되는 것을 확인할 수 있다.
따라서, 가장 Dest 주소가 가장 길게 매칭된 Output 1의 Port로 결정된다.


Switching Fabrics

Packet을 Input --> Output 으로 이동시키는 방식.

Switching Fabrics 3가지 방식

  1. Memory를 이용한 Switching

    • 과거에는 CPU를 통하여 switching 처리
    • Packet이 Memory에 복사되어 이를 CPU가 처리한다.
    • SW를 이용하여 처리하기 때문에 속도가 느리다.
  2. Bus를 이용한 Switching

    • 공유 Bus를 이용하여 Input buffer -> Output buffer로 이동한다.
    • HW로 직접 전달이 가능하다. (Firmware)
    • 동시 전송이 어렵다.
  3. Interconnection Network를 이용한 Switching

    • Bus 대역폭으로 제한된 속도 극복
    • N개의 Input port와 N개의 Output port를 연결, 여러 개의 길을 만들어 처리

Input / Output port Queuing

Input Port

Switching Fabric의 처리 속도가 Input port 보다 느려 "Packet이 Queue에 쌓이게 된다".
Queue Buffer가 Overflow되면 "Datagram이 손실" 될 수있다.

Head-of-the-Line(HOL) blocking
-> Queue의 Datagram이 서로 같은 Output으로 나가려고 하면,
다른 Datagram의 배출을 막는다

Output Port

Output도 마찬가지로 Queue에 쌓이는 Datagram이 축적되어 Buffer Overflow가 발생하면, Datagram의 손실로 이어질 수 있다.
이를 위해 어떤 Datagram이 이동하는 것이 가장 좋은 지 결정하는 스케줄링이 필요하다.

profile
개발자 지망생입니다.

0개의 댓글