data <-> control plane
data plane
- per-router function: 라우터 각자의 기능
- input port에 도착한 datagram을 어떻게 output port에 forwarding할 것인지
control plane
- network-wide logic
- source-destination사이에서 어떻게 routing이 될지 결정하는 영역
- traditional routing 알고리즘 = per-router control plane
- SDN: centralized approach임.
서버에서 해당되는 path를 라우터에 알려줌
Network layer functions
Network-layer는 forwarding 과 routing 두가지 function을 수행한다.
forwarding은 data plane에서 일어나며, routing은 control plane에서 일어난다.
control plane에서 가능한 두가지 방법:
-
per-router control(구식)
각각의 라우터들이 라우팅 알고리즘을 수행하면서 서로 데이터(자료)를 교환하며 forwarding table을 만듬
-
logically centralized control(software defined networking)
중앙에서 forwarding 테이블을 만듬.
수집한 자료를 control agency가 원격 컨트롤러에게 보내어, 해당 자료를 바탕으로 forwarding table을 만들어 라우터들에게 보냄
Router
![](https://velog.velcdn.com/images/pkw3136/post/c4560824-9cd9-433d-9a27-7b249fd69e43/image.png)
- physical layer: bit level reception(line termination) 시그널->데이터
- link layer: link layer protocol(Ethernet) 데이터그램을 받아옴
- decentralized switching: looking,forwarding,queueing
header field의 value를 사용하여 output port를 찾아냄
Destination-based forwarding
Longest Prefix Matching방식 사용: shortest path일 확률이 크다.
모든 table을 검색하면 복잡도가 높기 때문에 TCAM이라는 하드웨어를 사용하여 테이블 사이즈에 상관없이 1clock만에 address를 찾아낼 수 있다.
Switching fabrics
switching rate: input link-> output link로 전달하는 speed
N input , R incoming rate -> NR
- memory읽고 쓰는방식: 속도 제한
- bus구조: collision(contention)발생 가능
- interconnection network: multiprocessor구조, multistage switch 사용
- switch fabric이 input port보다 느리면 queueing이 발생할 수 있다.
- Head of Line Blocking: 같은 output port 로 전달되는 datagram이 있을 경우 다른 패킷을 block한다.
output port queueing
큐잉이 발생할 수 있다.
drop될때 어떤 데이터그램을 drop해야 할 것인가? drop policy
스케줄링 알고리즘 사용:
- priority
- round robin
- WFQ Weighted Fair Queueing: round-robin 기반이지만 높은 weight만큼 많이 보냄
minimum bandwidth를 보장한다.