차곡차곡 성 쌓기
article thumbnail
Published 2025. 2. 27. 18:29
[네트워크] 4 계층 : Network 계층 CS

▪︎ 4-1: 네트워크 계층 개요

학습 목표 : 네트워크 계층 서비스의 원리를 데이터 평면에 초점을 맞추어 이해한다

  • 네트워크 계층 서비스 모델
  • forarding과 routing
  • 라우터의 동작 원리
  • 일반적인 포워딩

▫︎ 네트워크 계층

네트워크 계층은 IP주소를 관리한다.

  • 세그먼트에 출발지 IP 주소, 목적지 IP 주소가 들어있다.
  • 송신측에서 segment를 datagram으로 캡슐화
  • 수신측은 transport 계층에 segement를 전달
  • 네트워크 계층은 모든, 호스트, 라우터에 존재한다
    • IP 주소를 보고 어디로 fowaring 할지 정해야하기 떄문
  • 라우터는 지나가는 모든 IP datagram의 헤더를 검사한다

▫︎ 두가지 주요 기능

  1. `포워딩(forwarding)`: 라우터의 입력으로 들어오는 패킷을 적절한 라우터로 보냄
    • 비유 : 계획한 것에 따라 한 교차로를 지나는 과정
  2. `라우팅(routing)`: 패킷이 출발지에서 목적지까지 거칠 경로를 결정
    • 비유 : 출발지에서 목적지까지의 여행을 계획하는 과정

▫︎ 데이터 영역, 제어 영역

`데이터 영역`

  • fowarding 기능 - 보통 물리적
  • 라우터의 입력 포트에 도착한 datagram이 출력 포트에 전달된 방법을 결정

`제어 영역`

  • routing logic - 보통 SW적
  • 출발 호스트에서 목적 호스트까지 라우터들에서 datagram이 어떤 경로 거칠지 결정
  • 두 접근법
    • 전통적 라우팅 알고리즘 : 라우터 내부에 구현
    • 소프트웨어 정의 네트워크(SDN): 원격 서버에 구현

▫︎ 개별 라우터의 제어 영역

각각의 모든 라우터들에 위치한 라우팅 알고리즘 요소들이 제어 영역에서 상호작용함

  • 각각의 라우터들은 `포워딩 테이블`이 있음
  • 또한 `라우팅 알고리즘`을 탑재하고 있어, 라우터간 서로 제어 메시지를 주고 받으며 포워딩 테이블을 결정
  • 포워딩 테이블에는 IP 헤더(IP 주소)에 따라 어느 라우터로 갈지 결정되어 있음

 

 

 

▪︎ 4-2: 라우터의 내부

▫︎ 라우터 개요

두 개의 층으로 분리

  • `라우팅 프로세서` : 라우팅 제어 영역으로 경로 결정, SW
  • `스위칭` : 포워딩 담당, HW

역할

  • 빠르게 적절한 라우터를 찾아주고, 빠르게 스위칭을 해주어서 전달해야함
  • 라우팅 프로세서에서 라우팅 테이블을 만듦

▫︎ 입력 포트의 기능

해당 포트는 TCP/IP에서 사용하는 포트개념과는 아예 다름, 네트워크와 연결된 라인을 뜻함

구조는 차례대로 물리계층, 데이터 링크 계층, 네트워크(큐) 계층으로 구성됨

  • 라인 종단을 통해 물리적 신호가 들어옴
  • 링크 계층으로 이더넷, 와이파이 등로 전달 받음
  • 빨간색 부분에서 헤더의 값(목적 주소)를 이용하여 출력 포트를 검색
    • 목적지 기반 전송 : 목적지 IP 주소에 기반(전통적)
    • 일반적인 전송 : 헤더 필드의 여러가지 값을 조합

▫︎ 목적지 기반 전송

다음과 같은 포워딩 테이블이 각 라우터마다 존재함.

최장 프리릭스 대응(longest prefix matching)

💡주어진 목적지 주소에 대해서 forwaind table을 검색할 때 가장 길게 매치된 주소를 사용한다.

 

▫︎ 스위치 구조

목적 : 입력 버퍼의 패킷을 적절한 출력 버퍼로 전달

종류 : memory, bus, crossbar, 하이퍼큐브, 다단계 스위칭 등

1. 메모리 통한 스위칭

  • 메모리에 저장됐다가 내보내기 때문에 속도가 느림
  • 초창기 이용

2. 버스를 통한 스위칭

  • 동시 전달할 수 없는 것이 한계점
  • 속도는 버스 대역폭에 의해 제약을 받음

3. Crossbar 스위칭

  • 버스가 여러개인 개념, 버스 대역폭 제한을 그복
  • 동시 전달이 가능
  • 발전된 개념 : datagram을 고정 길이의 cell로 단편화하여 스위칭

▫︎ 큐잉

입력 포트 큐잉

스위치 구조가 입력 포트보다 느리면 → 입력 큐에 큐잉 발생, 손실 발생

  • Head-of-the-line(HOL) 차단을 겪게됨
  • 큐 앞쪽의 다른 데이터 그램때문에 뒤에 들어온 데이터그램이 전달되지 못함

출력 포트 큐잉

스위치로부터의 도착 속도가 출력 링크 속도를 넘으면 버퍼링(임시 저장소에 저장) 필요

  • 출력 포트 버퍼가 넘치면 큐잉(지연)과 손실 발생
  • 스케줄링 정책으로 무엇으로 먼저 처리할지, 어떤 패킷을 폐기할지 구분 필요

▫︎ 스케줄링 정책

FIFO 사용

폐기 정책

  1. tail drop : 새로 도착하는 패킷 버림, 꼬리 버리기
  2. priority : 우선순위 처리, 큐를 여러개 두어서 우선순위로 받음
  3. random : 무작위 버림. 은근 동작을 잘해서 많이 사용

▫︎ 우선순위 정책

  1. 큐를 여러 개 두어서, 우선순위 높은 큐부터 처리
    • 한계 : 우선순위가 낮은 큐는 굶어 죽을 수 있음
  2. Round Robin : 번갈아가며 실행
    • 공평하게 처리기회를 줌
    • 한계 : 우선순위 큐를 두는 의미가 없음
  3. Weighted Fair Queuing(WFQ)
    • 각 클래스마다 가중치를 두어서 높은 것을 더 많이 처리
    • 빨간색은 3번, 녹색은 2번 등 처리개수를 다르게 처리

 

'CS' 카테고리의 다른 글

[네트워크] 네트워크 기초 용어 정리  (0) 2025.02.27
profile

차곡차곡 성 쌓기

@nagrang

포스팅이 좋았다면 좋아요