Chapter4 : Network Layer: The Data Plane(1)

jiwon·2021년 12월 27일
0

컴퓨터네트워크

목록 보기
8/13
post-thumbnail

4.1 Overview of network layer

data plane- forwarding
control plane- routing

네트워크의 전통적 라우터엔 data plane과 control plane 모두 존재. host의 라우터에는 data plane만 존재

Network layer

네트워크 레이어는 호스트에도, 라우터에도 있지만 기능이 다름.
sending 호스트: encapsulate segment into datagram
중간 라우터: 각 패킷의 헤더를 보고 forward datagram
receving 호스트: decapsulate datagram into segment

core nw의 핵심 delivery

  • CS (circuit switch nw)
  • PS (packet switch nw)

※virtual circuit(ATM)
같은 메세지에 속한 패킷이면 같은 path. 리소스 예약 가능. PS에 CS의 장점을 섞었으나 복잡해서 실패

※Datagram NW(internet)
네트워크에선 심플, 엣지에서 복잡. 복잡한건 end host가....
"elastic" → no guaranteed bw/delay=minimal service guarantees (best effort. 최선은 다해볼게..)
다양한 2계층 프로토콜 지나가기 좋다.
datagram nw은 connectionless service 제공

Datagram network

no call setup at nw layer
네트워크에선 심플, 엣지에서 복잡. 복잡한건 end host가....

"elastic" → no guaranteed bw/delay=minimal service guarantees (best effort. 최선은 다해볼게..)
다양한 2계층 프로토콜 지나가기 좋다.

datagram nw은 connectionless service 제공
라우터: no state about e2e connection (connectionless service)
라우터는 congestion feedback도 안한다. tcp가 추측해서 컨트롤.

forwarding table(FIB)를 보고 패킷을 개별적, 독립적으로 forwarding. 라우터의 FIB를 매치해 output port 찾아 forwarding

※forwarding=switching=input 버퍼에서 output 버퍼로 pkt 보내기

Network layer:data plane, control plane

data plane
forwarding. local, per-router. input port로 들어온 data를 output port로 보내는 과정.

control plane
routing. nw wide logic. 여러개 라우터를 거치는 nation wide view. 라우터들이 메세지를 주고 받으며 e2e path 결정

2개의 control plane approach

  • traditional routing 알고리즘: 라우터에 구현. dst ip addr based forwarding
  • software defined networking: 원격 서버에 구현. SDN. generalized forwarding

destination based forwarding은...
per router control plane: 같은 머신 안에 control plane과 data plane이 모두 있다. dst ip addr만 보고 forwarding.

generalized forwarding은...
logically centralized control plane: control plane과 data plane이 분리되어 있다. control plane은 한 라우터에 있지 않음. remote하게 제어한다. control plane이 data plane 제어하고, data plane은 forwarding만 해준다.

4.2 What's inside a router

Router architecture overview

(※per router인 경우)
라우터의 구조: input port + output port + switching + routing processor

control plane은 sw처리하기 때문에 속도 느림
data plane은 하드웨어상으로 user data 지나가게 하므로 빠름

Switching fabric

여러 포트가 엮여있어서 fabric이라고 표현.

switch rate
얼마나 빨리 switch 하는가
측정:multiple of input/output line rate (대략 RxN. R은 링크 개수. N은 포트개수)

interconnection network
스위칭 보드의 디자인..
초기: 중앙에서 read/write (오래걸림)
발전: 하드웨어 Bus (동시통신이 안됨)
최근: interconncetion network. 서로 다른 output port로 가는 경우에는 여러 패킷을 동시에 스위칭 가능! (같은 포트로 가는 경우엔 HOL blocking)

Input port function


physical 레이어: link가 달려서 R rate로 신호가 온다. bit로 변환해준다.
link layer: framing. 줄줄히 들어오는 bit들에서 하나의 body(datagram)만 nw에 물려준다.
nw 레이어: store & forward. datagram이 들어옴. switching rate에 따라 나감. input 버퍼의 들어오는 속도는 R. 나가는 속도는 switch rate B (RxN). 대게 B가 더 커서 ingress 버퍼에서는 오버플로우x

decentralized switching
FIB look up:들어온 datagram의 헤더를 보고 FIB에서 dst ip addr에 맞는 output port 찾아 switching 해줌 → "match plus action"
중앙에서 계산한 RIB 값을 FIB에 뿌려놓기 때문에 control 보드까지 가지 않고, 가입자 보드 안의 FIB보고 결정할 수 있다.

Head of the Line blocking(HOL blocking)

input queue에서 앞에 잇는 애때문에 blocking 일어나는 현상. 동시에 못가서 그 뒤로있는 애들 다 줄줄이 한타임씩 밀린다. crossbar interconnection nw의 단점

Output port

β: link rate R = data 나가는 속도
α: pkt arrival rate=들어오는 속도
α > β면 loss 발생

packet scheduler
output 큐에서 대기하는 패킷 나가는 순서 조절
FCFS: First Come First Service(인터넷)
network neutrality: 망 중립성 원칙. 어떤 가입자든 트래픽 속도 공평하게!

How much buffering at routers?

오버플로우가 일어나지 않으려면 output버퍼의 사이즈는 어느정도여야할까?

average buffering equal to "typical" RTT times link capacity C
RTT는 num of hop → nw 크기에 비례

tcp flow(N) 값을 반영해야 한다는 최근 주장... 왜? flow control 하는 tcp가 많을 수록 버퍼 용량 관리 되므로!

그러므로 버퍼크기는 (RTT x C)/√N

profile
개발 공부합니다. 파이팅!

0개의 댓글