CS/컴퓨터 네트워크

[컴퓨터 네트워크] Network layer: Data Plane -2

두루두루두 2025. 6. 2. 17:21

목차

  • What's inside a router
    • input ports, switching, output ports
    • buffer management, scheduling

스위치 구조

입력 포트에서 적절한 출력 포트로 패킷 스위칭 (전달/전송)

스위칭 속도 (switching rate): 패킷을 입력 포트에서 출력 포트로 전달할 수 있는 속도

  • 입력/출력 라인 속도 (line rate, R)의 배수로 나타낼 수 있음
  • 입력 포트가 N개이면, 스위칭 속도는 라인 속도의 N배 이상이 되어야 함

세 가지 주요 스위칭 구조 타입

메모리를 통한 스위칭

초기 라우터의 동작 방식

  • 입력 포트에 도착한 패킷을 시스템 메모리에 복사됨
  • 메모리 대역폭 (B)에 의해 스위칭 속도가 제한됨: < B/2
  • 데이터그램이 시스템 버스를 2번씩 사용 (시스템 버스의 공유로 하나의 패킷만 전달 가능)

버스를 통한 스위칭

 

 

라우팅 프로세스의 개입 없이 공유 버스를 통해 입력 포트 메모리에서 출력 포트 메모리로 직접 데이터그램을 스위칭

  • 버스 경쟁: 버스 대역폭에 의해 스위칭 속도가 제한됨

 

버스를 통한 스위칭

 

 

크로스바 스위치 (crossbar switch), 다단계 상호연결망 등 멀티 프로세서 컴퓨터 구조에서 프로세서들을 연결하기 위해 개발된 상호연결망을 활용

  • 다단계 스위치 (multistage switch): 여러 단계의 소형 스위칭 소자로 구성된 n×n 스위치
  • 병렬 처리 활용
    • 스위치 구조에 진입 시 데이터그램을 고정 길이의 청크들로 분해
    • 출력 포트는 청크들을 원래 데이터그램으로 재조립
  • 다중 스위치 구조를 병렬로 실행해 라우터의 스위칭 용량을 확장

 

입력 포트 큐잉

스위칭 속도가 결합된 입력 포트들 보다 느리면, 입력 포트의 버퍼에서 큐잉이 발생

Head-of-the-Line (HOL) 블로킹: 앞에 대기 중인 패킷 때문에 뒤에 있는 다른 패킷이 출력 포트로 스위칭 될 수 없음

출력 포트 큐잉

스위치 구조에서 패킷이 출력 포트의 링크 전송 속도보다 빠르게 전달되면, 버퍼링 (buffering)이 필요함

버퍼 관리

드롭 정책 (drop policy)

  • 사용 가능한 버퍼가 없다면, 어떤 패킷부터 드롭 (삭제)?

패킷 스케줄러 (packet scheduler)

  • 링크에 우선 전송할 패킷 또는 삭제할 패킷을 선택 → 망 중립성 문제

버퍼 관리 (buffer management)

  • drop: 버퍼에 새로운 패킷이 도착했지만, 버퍼가 가득 차 있다면?
    • tail drop: 도착한 패킷을 드롭
    • priority: 우선순위 기반으로 패킷을 드롭
    • random: 임의의 패킷을 드롭
  • marking: 패킷에 혼잡 발생을 표시 (ECN)

스케줄링 정책: FCFS

패킷 스케줄링: 링크에 보낼 다음 패킷을 선택

  • FCFS (first come, first served)
  • 우선순위 (priority)
  • 라운드 로빈 (round robin)
  • 가중 공정 큐잉 (weighted fair queueing)

FCFS: 출력 포트에 도착한 순서대로 패킷을 전송

 

 

 

 

 

우선순위 (priority) 스케줄링

  • 도착한 패킷을 분류해, 우선수위 별로 버퍼링
  • 버퍼링된 패킷이 있는 우선 순위가 가장 높은 버퍼부터 패킷을 전송

 

 

 

 

 

 

라운드로빈 스케줄링

  • 도착한 패킷을 분류하여, 클래스 별로 버퍼링
  • 주기적으로 클래스 버퍼들을 반복적으로 검사하면서, 버퍼링된 패킷이 있는 각 클래스에서 차례대로 하나의 패킷을 전송

 

 

가중 공정 큐잉 (WFQ)

  • 일반화된 라운드 로빈
  • 각 클래스 i는 가중치 𝑤𝑖를 할당 받으며, 각 주기에서 가중치 만큼 서비스 시간을 할당 받음 
  • 트래픽 클래스 당 최소 대역폭을 보장

 

Network Layer: Internet

IP 단편화 (fragmentation)/ 재결합 (reassembly)

링크 계층 프로토콜마다 MTU (maximum transmission unit) 다름

MTU가 작은 링크 프로토콜로 전달되기 전 네트워크 계층에서 IP 데이터그램을 분할 (‘단편화’)

 

식별자 (ID): 원본 데이터그램을 구분에 활용

플래그 (flags): 3bit로 구성

  • 첫 번째 비트: 미사용 (항상 0)
  • 두번째 비트 (don’t fragment): 1이면 단편화 불가능
  • 세번째 비트 (more fragmentation): 마지막 조각이면 0

오프셋 (offset)

  • 조각의 순서를 나타냄

IP addressing: introduction

IP 주소: 각 호스트 또는 라우터의 인터페이스와 관련된 32비트 식별자

인터페이스: 호스트/라우터와 물리적 링크 간의 연결

  • 라우터에는 일반적으로 다수의 인터페이스가 있음
  • 호스트에는 일반적으로 하나 또는 두 개의 인터페이스가 있음 ([예] 이더넷 또는 WiFi)

서브넷

서브넷

  • 중계 라우터를 통과하지 않고 물리적으로 서로 도달할 수 있는 장치의 인터페이스들로 구성된 네트워크

IP 주소의 구조:

  • subnet part: 서브넷을 식별 (n bit)
    • 같은 서브넷에 있는 장치는 동일한 상위 비트를 가짐
    • 서브넷 마스크 (subnet mask)와 AND 연산으로 식별
  • host part: 나머지 하위 비트 (32 - n bit) • 서브넷 안에서 인터페이스를 식별

서브넷 길이와 서브넷 마스크

비 클래스형 주소 지정

CIDR: Classless InterDomain Routing (‘사이다’): 서브넷 주소체계 표기를 일반화

  • 서브넷 부분의 길이가 임의로 변경
  • 주소 형식: a.b.c.d/x (x는 서브넷 부분의 비트 수)