학교 공부/컴퓨터 네트워크
Computer Networks Lecture #2 -Introduction to control plane in network layer
wqdsdsf
2024. 9. 27. 17:41
*Forwarding (데이터 전달)
패킷을 라우터의 입력 포트에서 적절한 출력 포트로 이동시키는 과정입니다. 이는 데이터 평면에서 이루어집니다.
*Routing (라우팅)
패킷이 출발지에서 목적지까지 가는 경로를 결정하는 과정입니다. 이는 제어 평면에서 이루어집니다.
*데이터 평면 (Data Plane)
로컬, 라우터별 기능:
각 라우터에서 개별적으로 작동합니다.
데이터그램 전송 결정:
라우터의 입력 포트에 도착한 데이터그램이 출력 포트로 어떻게 전달될지를 결정합니다.
*제어 평면 (Control Plane)
네트워크 전체 논리:
네트워크 전반에 걸쳐 데이터그램이 출발지에서 목적지까지 어떻게 라우팅될지를 결정합니다.
두 가지 제어 평면 접근법:
전통적 라우팅 알고리즘: 각 라우터에 구현됩니다.
소프트웨어 정의 네트워킹(SDN): 원격 서버(컨트롤러)에 구현됩니다.
Data plane과 Control Plane의 차이점
Data plane : 패킷의 전달에 초점을 맞추고 있으며 주로 빠른 처리를 위해 설계 되었다.
Control Plane : 네트워크 전반의 경로 최적화를 목표로 하며, 각 라우터가 상호작용하여 전체 경로를 계획합니다.
*네트워크 제어 평면 구조의 두 가지 접근 방식:
Per-router control (전통적인 방식): 각 라우터가 독립적으로 제어를 수행합니다.
Logically centralized control (SDN, 소프트웨어 정의 네트워킹): 논리적으로 중앙 집중화된 방식으로 제어를 수행합니다.
*Per-router control plane
개별 라우터 제어: 각 라우터에 있는 라우팅 알고리즘 구성 요소들이 제어 평면에서 상호작용합니다.
로컬 포워딩 테이블: 도착하는 패킷 헤더의 값을 기반으로 출력 포트를 결정합니다.
데이터 평면과 제어 평면: 데이터 평면은 실제 패킷 전달을 담당하고, 제어 평면은 라우팅 결정을 내립니다.
*Software-Defined Networking (SDN) 제어 평면
원격 컨트롤러: 네트워크의 중앙 집중식 제어 장치로, 라우터에 포워딩 테이블을 계산하고 설치합니다.
제어 평면과 데이터 평면: 제어 평면은 네트워크의 경로를 설정하고, 데이터 평면은 실제 패킷 전달을 처리합니다.
CA (Control Agent): 각 라우터에 배치되어 원격 컨트롤러와 통신하며, 포워딩 테이블을 업데이트합니다.
패킷 헤더 값: 도착하는 패킷의 헤더 값을 기반으로 경로를 결정합니다.
*Per-router control plane && Software-Defined Networking 차이점
Per-router Control Plane Software-Defined Networking (SDN)
각 라우터에 개별적으로 구현됨 중앙 집중식으로 관리됨 (컨트롤러)
독립적인 라우팅 결정 네트워크 전체의 논리적 관점에서 결정
복잡한 라우터 설정 필요 컨트롤러에서 네트워크 정책 관리 가능
변화에 대한 적응이 느림 빠르고 유연한 네트워크 구성 가능
*데이터그램을 송신자에서 수신자로 전송하는 "채널"에 대한 서비스 모델
개별 데이터그램 서비스 예시:
보장된 전달: 데이터그램이 반드시 목적지에 도달하도록 보장.
40ms 이하 지연으로 보장된 전달: 특정 시간 내에 전달을 보장.
데이터그램 흐름에 대한 서비스 예시:
순서대로 데이터그램 전달(순서화 패킷 전달): 데이터그램이 전송된 순서대로 도착.
최소 대역폭 보장: 특정 대역폭을 유지.
패킷 간 간격 변화 제한: 패킷 전송 간격을 일정하게 유지.
보안서비스
Best Effort 서비스 모델:
보장 없음: 데이터그램이 목적지에 성공적으로 전달될 것이라는 보장이 없습니다.
타이밍 및 순서 보장 없음: 데이터그램의 전달 시간이나 순서에 대한 보장이 없습니다.
대역폭 보장 없음: 종단 간 흐름에 사용 가능한 대역폭에 대한 보장이 없습니다
*사용하는 이유
단순성과 유연성: 복잡한 품질 보장 없이도 다양한 네트워크 환경에서 작동할 수 있습니다.
비용 효율성: 추가적인 품질 보장 메커니즘 없이 운영되므로 비용이 절감됩니다.
확장성: 다양한 규모의 네트워크에서 쉽게 적용할 수 있습니다
충분한 대역폭 제공: 실시간 애플리케이션의 성능을 대부분의 경우 "충분히 좋게" 유지합니다.
복제된 분산 서비스: 데이터 센터와 콘텐츠 배포 네트워크가 클라이언트 네트워크와 가까운 위치에서 서비스를 제공합니다.
혼잡 제어: 탄력적인 서비스의 혼잡 제어가 도움이 됩니다.
*룩업 : 라우터가 패킷을 올바른 출력 포트로 전달하기 위해 사용하는 과정으로,
라우팅 테이블에서 목적지 주소에 해당하는 정보를 검색하는 것을 의미
라우터 내부
입력 포트 (Router Input Ports):
들어오는 물리적 링크를 종료하는 물리 계층 기능을 수행합니다.
데이터 링크 계층 기능을 수행하여 들어오는 링크의 다른 쪽과 상호 운용합니다.
패킷을 스위칭 패브릭으로 전달하기 위해 "룩업" 및 포워딩 기능을 수행합니다
라인 종료 (Line Termination):
물리 계층에서 비트 수준의 수신을 처리합니다.
링크 계층 프로토콜 (Link Layer Protocol):
이더넷과 같은 링크 계층 프로토콜을 사용하여 수신 데이터를 처리합니다.
룩업 및 포워딩 (Lookup, Forwarding):
패킷의 헤더 필드 값을 사용하여 입력 포트 메모리에 있는 포워딩 테이블에서 출력 포트를 찾습니다.
"매치 플러스 액션" 방식으로 동작하며, 입력 포트 처리를 라인 속도에서 완료하는 것이 목표입니다.
*매치 플러스 액션 : 데이터그램 헤더값과 매치 조건 사이의 매치를 기반으로 라우터가
데이터그램을 전달하고 조작하는 방법을 명시한다.
사용 예시 : 포워딩, 로드 밸런싱, 방화벽
매치 (Match):
들어오는 패킷의 헤더 필드를 검사하여 특정 조건과 일치하는지를 확인합니다.
예를 들어, 목적지 IP 주소, 소스 IP 주소, 포트 번호 등이 포함될 수 있습니다.
액션 (Action):
매치된 패킷에 대해 미리 정의된 작업(포워딩, 삭제, 필드 수정)을 수행합니다.
큐잉 (Queueing):
데이터그램이 스위칭 패브릭으로 전달되는 속도보다 빠르게 도착할 경우 입력 포트에서
큐잉을 수행합니다.
입력 큐잉:
스위칭 구조의 패킷 처리 속도가 입력 포트의 패킷 도착 속도보다 느릴 때 발생합니다.
입력 포트에서 스위칭 패브릭으로 패킷을 전달할 수 없을 때, 패킷은 대기열에 저장됩니다.
출력 큐잉:
여러 입력 포트에서 동일한 출력 포트로 패킷이 동시에 전송될 때 발생할 수 있습니다.
출력 포트는 한 번에 하나의 패킷만 전송할 수 있기 때문에 대기열이 형성됩니다.
출력 포트 (Router Output Ports):
스위칭 패브릭에서 받은 패킷을 저장하고, 이를 나가는 링크로 전송합니다.
입력 포트와 반대의 데이터 링크 및 물리 계층 기능을 수행합니다.
고속 스위칭 패브릭 (High-Speed Switching Fabric):
네트워크 노드로 들어오는 데이터를 올바른 포트로 이동시켜 다음 네트워크 노드로 전달하는
하드웨어 및 소프트웨어의 조합입니다.
패킷 전송:
입력 링크에서 출력 링크로 패킷을 전송하는 역할을 합니다.
* 세 가지 주요 스위칭 패브릭 유형:
메모리 기반 교환(Memory-Based):
패킷이 메모리에 저장된 후, CPU가 이를 처리하여 올바른 출력 포트로 전송합니다.
첫 세대 라우터:
전통적인 컴퓨터 구조를 기반으로 하며, CPU의 직접 제어 하에 스위칭이 이루어졌습니다.
패킷 처리:
패킷이 시스템 메모리에 복사됩니다.
CPU가 패킷을 처리하여 적절한 출력 포트로 전달합니다.
속도 제한:
메모리 대역폭에 의해 제한됩니다.
각 데이터그램 당 두 번의 버스 교차가 발생하여 속도가 느려질 수 있습니다
(속도는 메모리 bandwidth에 의해 제한된다)_.
버스 기반 교환 (Bus-Based)(스위칭 속도는 버스의 bandwidth에 의해 제한):
모든 포트가 공통 버스를 통해 연결되며, 버스를 통해 패킷이 전송됩니다.
데이터그램 전송:
입력 포트 메모리에서 출력 포트 메모리로 데이터그램이 공유 버스를 통해 전달됩니다.
버스 경쟁 (Bus Contention):
동시에 여러 패킷이 다른 입력 포트로 라우터에 도착하면 한번에 하나의 패킷만
버스를 통과할 수 있기 때문에 하나를 제외한 모든 패킷은 대기함.
스위칭 속도는 버스의 대역폭에 의해 제한됩니다.
상호연결 네트워크를 통한 교환(Interconnection Network)(bus bandwidth의 제약을 극복)
-대규모 데이터 센터나 고성능 네트워크 환경에서 효율적인 데이터 처리를 가능
복잡한 네트워크 구조를 사용하여 다수의 포트를 연결하고, 병렬로 패킷을 처리합니다.
크로스바 및 클로스 네트워크:
크로스바는 3x3 구조를 보여주며, 각 입력이 각 출력과 직접 연결될 수 있습니다.
다단계 스위치 (Multistage Switch):
여러 작은 스위치 단계를 통해 n x n 스위치를 구성합니다
(N개의 입력 포트를 N개의 출력 포트에 연결).
그림에서는 8x8 다단계 스위치가 작은 크기의 스위치로 구성된 예시를 보여줍니다.
병렬 처리 탐색:
여러 스위칭 플레인을 병렬로 사용하여 속도와 확장성을 향상시킵니다.
데이터그램을 고정 길이 셀로 분할하여 입력합니다.
기본 네트워크를 통해 셀을 전환하고, 출력에서 데이터그램을 재조립합니다.
*라우팅 프로세서 (Routing Processor):
라우팅 프로토콜을 실행하고 라우팅 정보 및 포워딩 테이블을 유지합니다.
라우터 내에서 네트워크 관리 기능도 수행합니다.
*입력 포트 큐잉
출력 포트 경합:
왼쪽 그림에서는 여러 입력 포트에서 동일한 출력 포트로 전송하려는 데이터그램이
있을 때 발생하는 문제를 보여줍니다. 출력 포트로는 한 번에 하나의 데이터그램만
전송할 수 있기 때문에, 아래쪽의 빨간색 패킷이 차단됩니다.
헤드-오브-라인(HOL) 차단:
오른쪽 그림에서는 HOL 차단 문제를 설명합니다. 앞줄에 있는 패킷이 전송되지 못하면 그 뒤에
있는 패킷도 전송되지 못하는 상황을 나타냅니다. 여기서는 초록색 패킷이 차단됩니다.
스위치 패브릭의 속도:
스위치 패브릭이 입력 포트의 합보다 느리면, 입력 큐에서 큐잉이 발생할 수 있습니다.
이로 인해 입력 버퍼 오버플로우로 인한 지연 및 손실이 발생할 수 있습니다.
HOL 차단:
큐의 앞부분에 있는 데이터그램이 다른 데이터그램의 이동을 방해합니다.
이는 네트워크 성능 저하의 원인이 될 수 있습니다.
*출력 포트 큐잉
버퍼링:
스위치 패브릭에서 데이터그램이 링크 전송 속도보다 빠르게 도착할 때 필요합니다.
버퍼가 부족할 경우 어떤 데이터그램을 드롭할지 결정하는 드롭 정책이 필요합니다.
혼잡과 버퍼 부족으로 인해 데이터그램이 손실될 수 있습니다.
스케줄링 규율:
전송을 위해 대기 중인 데이터그램 중에서 선택합니다.
우선순위 스케줄링은 누가 최고의 성능을 받을지와 네트워크 중립성에 영향을 미칩니다.
추가 설명
버퍼 오버플로우:
도착률이 출력 라인 속도를 초과할 때 버퍼링이 발생합니다.
출력 포트 버퍼 오버플로우로 인해 지연 및 손실이 발생할 수 있습니다.
큐(Queue): 패킷이 대기하는 영역입니다.
링크(Link): 패킷이 전송되는 서버 역할을 합니다.
*버퍼 관리:
드롭(Drop):
버퍼가 가득 찼을 때 어떤 패킷을 추가할지 또는 드롭할지를 결정합니다.
테일 드롭(Tail Drop): 도착한 패킷을 드롭하는 방식입니다.
우선순위(Priority): 우선순위에 따라 패킷을 드롭하거나 제거합니다.
마킹(Marking):
혼잡을 신호하기 위해 어떤 패킷을 마킹할지를 결정합니다.
예를 들어, ECN(Explicit Congestion Notification)이나 RED(Random Early Detection) 방식
*패킷 스케줄링:
네트워크에서 어떤 패킷을 다음으로 전송할지 결정하는 과정입니다.
스케줄링 기법:
선입선출(First Come, First Serve, FCFS): 가장 먼저 도착한 패킷을 먼저 처리합니다.
우선순위(Priority): 패킷의 중요도에 따라 우선순위를 부여하여 처리합니다.
라운드 로빈(Round Robin): 각 패킷을 순차적으로 처리하여 공정성을 유지합니다.
가중치 공정 큐잉(Weighted Fair Queuing): 각 흐름에 가중치를 부여하여 공정하게 처리합니다.
선입 선출 스케줄링: FCFS (First Come, First Serve)
패킷이 도착한 순서대로 출력 포트로 전송됩니다.
우선순위 스케줄링(Priority)
도착하는 트래픽을 클래스별로 분류하고 큐에 저장합니다.
패킷의 헤더 필드를 사용하여 분류할 수 있습니다.
높은 우선순위 큐에 있는 패킷을 먼저 전송합니다.
각 우선순위 클래스 내에서는 FCFS(First Come, First Serve) 방식으로 처리됩니다.
큐 구조:
높은 우선순위 큐와 낮은 우선순위 큐로 나뉘어 있습니다.
도착한 패킷은 우선순위에 따라 적절한 큐에 저장됩니다.
높은 우선순위의 패킷이 먼저 처리됩니다.
라운드 로빈(Round Robin) 스케줄링
도착하는 트래픽을 클래스별로 분류하여 큐에 저장합니다.
패킷의 헤더 필드를 사용하여 분류할 수 있습니다.
서버는 주기적으로 각 클래스 큐를 스캔하며,
각 클래스에서 하나의 완전한 패킷을 차례로 전송합니다.
큐 구조:
여러 색상의 큐가 있으며, 각 색상은 다른 클래스의 트래픽을 나타냅니다.
서버는 각 큐를 순환하며, 각 큐에서 하나씩 패킷을 선택하여 전송합니다.
가중치 공정 큐잉(Weighted Fair Queuing, WFQ)
일반화된 라운드 로빈 방식으로, 각 트래픽 클래스에 가중치를 부여하여 공정하게 처리합니다.
각 트래픽 클래스별로 최소 대역폭을 보장합니다.
큐 구조:
여러 큐가 있으며, 각각의 큐는 다른 트래픽 클래스를 나타냅니다.
각 큐는 해당 클래스의 가중치에 따라 서비스됩니다.