본문 바로가기
두드리는 개발자 홍차/Network

TIL #026 네트워크 Network layer : Data Plane

by 홍차23 2019. 12. 7.

오늘  한 일>

1. 행정업무 - 서류작성, 보험신고 등

2. 네트워크 공부

 

 

4.1 네트워크 계층 개요

4.1.1 포워딩과 라우팅: 데이터 평면과 제어 평면

 

오늘 공부한 내용은 위 그림에서 Network layer 에 해당한다.

네트워크 계층은 서로 상호작용하는 데이터평면(data plane)제어평면(control plane)의 두 부분으로 나뉜다. 네트워크 계층의 근본적인 역할은 송신 호스트에서 수신 호스트로 패킷을 전달하는 것이다. 이를 위한 주요 기능으로 포워딩(forwarding)라우팅(routing) 이 있다.

  • 포워딩: 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동시킨다. (전달)
  • 라우팅: 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야 한다. 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘(routing algorithm) 이라 한다.

포워딩은 매우 짧은 시간(보통 나노초) 단위를 갖고 대표적으로 하드웨어에서 실행된다. 예) 한 교차로를 지나는 과정

라우팅은 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 종단간 경로를 결정한다. 더 긴 시간(보통 초)단위를 갖고 소프트웨어에서 실행된다. 예) 서울에서 부산까지 여행 계획. 지도를 보며, 일련의 교차로에 연결된 도로에서 이용가능한 경로를 선택하는 것.

 

4.1.2 네트워크 서비스 모델(network service model)

  • 최선형 서비스(best-effort service)

4.2 라우터 내부에는 무엇이 있을까?

  • 입력 포트
  • 스위칭 구조
  • 출력 포트
  • 라우팅 프로세서

4.2.1 입력 포트 처리 및 목적지 기반 전달

  • 최장 프리픽스 매칭 규칙(longest prefix matching rule)

4.2.2 변환기

스위칭 구조를 통해 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(전달)되므로 스위칭 구조는 라우터의 핵심이다.

  • 메모리를 통한 교환
  • 버스를 통한 교환
  • 인터커넥션 네트워크를 통한 교환

*논 블록킹(non-blocking) 스위칭 전략: 스위칭 구조를 병렬로 실행하여 확장. 입력 포트와 출력 포트가 병렬로 작동하는 N개의 스위칭 구조에 연결된다. 입력 포트는 패킷을 N개의 작은 청크로 분해하고 이 N개의 스위칭 구조의 K를 통해 청크를 선택한 출력포트로 보낸다. 이 출력 포트는 K개의 청크를 다시 원래의 패킷으로 재조합한다.

 

4.2.3 출력 포트 프로세싱

4.2.4 어디에서 큐잉이 일어날까?

입력 큐잉

  • HOL(head-of-the-line) 차단

출력 큐잉

  • AQM(active queue management) - 패킷 폐기, 패킷 마킹
  • Random Early Detection

4.2.5 패킷 스케줄링

First-in-First-out

우선순위 큐잉

라운드 로빈과 WFQ

 

4.3 인터넷 프로토콜(IP): IPv4, 주소 지정, IPv6

4.3.1 IPv4 데이터그램 형식

4.3.2 IPv4 데이터그램 단편화

큰 데이터그램을 작은 데이터그램으로 쪼개는 것을 단편화(fragment)라고 한다. IPv4 설계자는 네트워크 라우터가 아닌 종단 시스템에서 데이터그램 재결합을 하도록 결정함. 목적지 호스트가 데이터그램을 재결합할 수 있도록 IPv4 설계자는 식별자, 플래그, 단편화 오프셋  필드를 IP 데이터그램 헤더에 넣었다. 마지막 조각의 플래그 비트는 0, 다른 조각은 1로 설정. 오프셋 필드는 순서와 분실여부를 판단하기 위해서 사용됨.

 

4.3.3 IPv4 주소체계

  • 인터페이스: 호스트 IP가 데이터그램을 보낼 때 링크를 통해 데이터링크를 보내는데, 호스트와 물리적 링크 사이의 경계를 인터페이스라고 한다.

Q) 308p. 4개의 인터페이스가 중계하는 라우터 없이 하나의 네트워크에 연결됨?

 

주소 블록 획득

호스트 주소 획득: 동적 호스트 구성 프로토콜

  • DHCP 서버 발견
  • DHCP 서버 제공
  • DHCP 요청
  • DHCP ACK

4.3.4 네트워크 주소 변환(NAT)

4.3.5 IPv6

IPv6 데이터그램 포맷

IPv4 에서 IPv6 로의 전환 - 주로 터널링 사용

 

4.4 일반적인 포워딩 및 소프트웨어 기반 네트워크 (SDN)

4.4.1 Match

4.4.2 Action

  • 포워딩(forwarding)
  • 드롭핑(dropping)
  • 수정필드(modify-field)

4.4.3 매칭-플러스-액션 작업의 OpenFlow 예

1) 간단한 포워딩

2) 부하 균등화 load balancing

3) 방화벽

 

4.5 요약

네트워크 계층의 데이터 평면 기능. 이 기능은 라우터의 입력 링크 중 하나에 도착하는 패킷이 라우터의 출력 링크 중 하나로 전달되는 방식을 결정하는 퍼 라우터(per-router) 기능이다. 라우터의 내부 동작, 입력 및 출력 포트 기능 및 목적지 기반 포워딩, 라우터의 내부 스위칭 매커니즘, 패킷 대기열 관리 등에 대해 살펴봤다. 전통적인 IP 포워딩(데이터그램의 목적지 주소 기반)과 일반적인 포워딩(포워딩과 다른 기능들이 데이터그램의 헤더에 여러가지 다른 필드 값을 사용하여 실행됨)의 접근방법을 보았다. Ipv4, Ipv6 프로토콜, 인터넷 주소 지정 방식에 대해 공부하였다.

 

출처: 컴퓨터 네트워킹 하향식 접근

 

오늘 느낀 점>

-네트워크는 복잡하고 어렵지만 재밌다.

routes 파일들로 애플리케이션 레벨에서 접하던 내용이 파고 들어갈수록 섬세한 방식으로 설계되어 있음을 깨닫게 된다.

 

 

내일 배울 것>

  • 복습/연습문제 풀기
  • 네트워크 제어평면

댓글