본문 바로가기

전공 테트리스/데이터통신 및 네트워크

[네트워크] 7. Network Layer : Data Plane

네트워크 레이어 기능 
- 포워딩
-라우팅
 
네트워크 레이어
- data plane
- control plane
> per-router control plane
> SDN control plane
 
네트워크 레이어 서비스 모델
 
라우터 구조
 
입력 포트 기능
-  목적지 기반 포워딩
-  longest 프리픽스 매칭 규칙
 
스위칭 구조
- 메모리를 통한 교환
- 버스를 통한 교환
- 인터커넥션 네트워크를 통한 교환
 
입력포트 큐잉
출력포트 큐잉
버퍼 메니지먼트
 
패킷 스케줄링
- FCFS
- priority
- round robin
- WFQ (Weighted Fair Queueing)
 
사이드 바: 네트워크 중립성
 
 
 

Overview

 
네트워크 레이어 
- data plane (데이터 영역)
- control plane (제어 영역)
 
라우터 내부
- input 포트, output 포트, 스위칭
- 버퍼 관리, 스케쥴링
 
ip : 인터넷 프로토콜
- 데이터그램 포맷
- 어드레싱
- 네트워크 주소 translation
- IPv6
 
일반화된 포워딩, SDN (IP패킷의 헤더 보고 매치하고 어떤 동작할지 결정)
- Match + action
- 오픈플로우 : match+action in action
 
middlebox
 
 


 
 
 

4.1 네트워크 계층 개요

 
세그먼트를 송신자에서 수신자에게 전송
 
송신자 : 세그먼트를 데이터그램으로 캡슐화하고 링크 레이어로 전송 (세그먼트에 헤더 추가해서 아래로 전달)
[송신자의 네트워크 계층은 트랜스포트 계층으로부터 세그먼트를 받아 각 세그먼트를 데이터그램으로 캡슐화하고(네트워크 계층의 패킷), 인접한 라우터에게 데이터그램을 보낸다.]
 
수신자 : 세그먼트를 트렌스포트 레이어 프로토콜로 전송 (링크 레이어로 들어온 걸 한 계층 올려서 확인 후, 헤더 빼고 트렌스포트 계층으로 전달)
[수신자의 네트워크 계층은 트랜스포트 계층 세그먼트를 추출하여 수신자의 트랜스포트 계층으로 전달한다.]
 
네트워크 레이어 프로토콜은 인터넷 디바이스 어디에나 있다! ** 호스트, 라우터
 
라우터
- 지나가는 모든 IP 데이터그램의 헤더 필드를 조사 (헤더 필드의 목적지 보고 경로 결정) 
- 입력 포트에서 데이터그램을 출력 포트로 이동시킨다. (종단간 통로를 통해 데이터그램을 전송한다.)
 
⭐ 중요한 것은 네트워크 레이어에서 중간 라우터들이 네트워크 레이어 역할을 수행한다.
⭐ 네트워크에서도 포트라는 용어를 쓴다. 접점? 인터페이스? 혹은 링크로 혼용하여 사용 (계층에 따라 같은 용어도 다른 쓰임새를 가진다.)
 
 
 

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

 

네트워크 레이어 기능의 2가지 핵심 키 (포워딩, 라우팅)

 
네트워크 레이어 기능
- 포워딩 (데이터 평면) :
패킷을 라우터의 입력 링크(포트)에서 적절한 라우터의 출력 링크로 전달
 
- 라우팅 (제어 평면) :
들어온 패킷의 목적지 소스를 통해 라우트(경로) 결정
[네트워크 전반에 걸쳐(=전역적) 출발지에서 목적지까지 데이터그램의 종단간 경로를 결정하는 것]
라우팅 알고리즘 사용
 
비유 : 여행가기
- 포워딩:
교차로에 들어가서 어디로 갈지 결정하는 과정
- 라우팅:
전체적인 큰 그림을 보고 출발지부터 목적지까지 어디를 거쳐 갈 것인지 결정하는 과정
 
 

네트워크 레이어 : 데이터 평면, 제어 평면

 
데이터 평면 (포워딩)
- 지엽적. 라우터 당 기능
- 라우터의 입력 포트에 도착하는 데이터그램을 라우터 출력 포트로 어떻게 전달할지 결정 (교차로)
 
제어 평면 (라우팅)
- 네트워크 전반에 걸쳐... 로직
- 어디와 연결되어 있는지 정보를 쌓아둠
- 소스에서 목적지까지의 루트 결정(종단간 경로)
 
> 제어 평면의 두 가지 접근
 
a. 전통적인 라우팅 알고리즘 (대부분)
라우터 안에 내장됨 (각 라우터가 분산적으로 알아서 동작)
 
b. SDN (Software Defined Network)
(먼) 서버에 내장됨...
// 최적화에는 좋지만 서버는 전문가의 관리가 필요해서 어려움.. 시장경제 관련 새 상품
 
 
 

Per - router 제어 평면

각각의 모든 라우터는 제어 영역에서 상호작용하는 각 라우팅 알고리즘을 가지고 있음.
라우터팅 알고리즘 -> 라우터의 포워딩 테이블 결정 -> 패킷의 헤더 정보를 보고 포워딩
 
라우팅 알고리즘은 라우터의 포워딩 테이블의 내용을 결정한다.
다른 라우터의 라우팅 알고리즘과 소통하며 포워딩 테이블의 값을 계산한다.
-> 어떻게? 라우팅 프로토콜에 따라 라우팅 정보에 포함된 라우팅 메시지를 교환하며 소통...!
 
 
 

SDN 제어 평면  (소프트웨어적으로 정의된 네트워크)

먼 컨트롤러는 라우터의 포워딩 테이블을  '계산하고', '설치한다'
 
- 제어 평면 : 느린 속도도 괜찮음. 경로가 끊어져도 천천히 업데이트
- 데이터 평면 : 포워딩 동작. 빠른 속도 지원(로컬)
 
- CA (Control Agent) : 데이터를  먼 컨트롤러에게 올리고 각각에게 나눠줌
 
 

    
데이터 평면로컬(지엽적)포워딩 
제어 평면네트워크 전반라우팅 

 
 
 

4.1.2 네트워크 서비스 모델

QoS (Quality Of Service)
 
인터넷 네트워크 계층은 best-effort sevice를 제공
 
- 순서대로 X .. 오더
- 목적지까지 성공적인 데이터그램 전송 보장 x... 로스
- 종단 시스템 간 지연 보장 x.... 타이밍
- 최소 대역폭 x.... 밴드위스
 
 
 
 
 

4.2 라우터 내부 구조

# 포트라는 용어는 물리적 입출력 라우터 인터페이스를 의미
# 네트워크 어플리케이션 및 소켓과 관련된 소프트웨어 포트와는 분명히 다르다!
 
- 입력포트
- 출력포트
- 스위칭 구조
 
 
<입력 포트>
- 물리 계층; 라인 종단 (비트 레벨 수용)
- 링크 계층 프로토콜; 수신 (이더넷)
- 검색, 포워딩, 큐잉
- 스위치 구조
 
decentralized switching
입력 포트 메모리/ 의 포워딩 테이블/ 의 헤더 필드을 이용하여  출력 포트 검색...  // match 및 action
match = 목적지 ip 주소 찾기
action = 스위칭 구조를 통해 지정된 출력 포트로 전달
입력 포트 큐잉 : 데이터그램이 스위치 구조로 포워딩 속도보다 빠르게 도착하면 발생
목적지 기반 포워딩 = 전통적.... 오직 목적지 ip 주소 기반으로 전달
일반적인 포워딩 = 헤더 필드의 any set에 기반하여 포워딩
 

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

 
입력포트에서.. 검색은 라우터 동작의 핵심
 
라우터는 입력 포트 메모리의 포워딩 테이블의 헤더 필드를 사용하여 출력 포트를 검색 -> match하고
스위칭 구조를 통해 출력 포트로 포워딩한다... -> action
// 입력포트로 데이터그램이 포워딩 속도보다 빠르게 도착하면 입력 포트 큐잉이 발생하는 것
이렇게 match 과정이 끝나면 action.. 즉 포워딩을 해줘야 하는데
 
<match.. 목적지 기반... 전통적 방식... longest prefix matching>
a. 목적지 기반 포워딩에서는
ip 주소만 기반으로 검색하고.. 여기서 32비트를 사용하는데
링크 계층으로 전달하기 위한 링크 인터페이스는 4가지를 사용. 0~3
이런식으로 포워딩 테이블에서 라우터는 패킷의 ip 주소의 프리픽스를 짝이 맞는 테이블의 엔트리와 대응시킴
> 대응하는 엔트리가 존재하면 해당 링크로 포워딩
> 0,1,2 중 대응하는 엔트리가 없으면 otherwise는 3번이고... 이는 longest prefix matching임
   TCAMs (Ternary Content Addressable Memories) 를 사용하여 매칭
* content addressable = 1클락 사이클에 주소 반환.. 빠르고 비싼 메모리임... 주로 시스코 같은 곳에서 사용
 * 시간 복잡도 : O(1)
 
스위칭 패브릭
스위칭 구조를 통해 패킷이 입력 포트에서 출력 포트로 전달됨
- 메모리를 통한 스위칭 : 가장 단순, CPU를 직접 제어, 시스템 메모리에 패킷 복사, 메모리 대역폭에 제한
- 버스를 통한 스위칭 : 버스의 대역폭(속도)에 제한, 직접 출력포트로 공유 버스를 통해 패킷 전송, 라벨과 일치하는 포트만 패킷 유지, 
- 인터커넥션 네트워크를 통한 스위칭: 병렬적 패킷 전달, 쪼개서 들어와서 나중에 리어셈블..