Per-router control plane
모든 라우터 내에 있는 routing 알고리즘을 따라
SDN(Software-Defined Networking) control plane
Remote controller가 계산해서 forwarding table을 만들어줌 이거를 각 라우터에 설치
목표: 좋은 경로를 결정하는 것
분류
1. global
모든 라우터가 모든 라우터 물리적 연결, link cost 정보를 알고 있음, link state 알고리즘을 따름
2. decentralized
라우터는 처음에 연결된 이웃에 대한 링크 비용만 알아서 반복적인 계산 과정을 통해 이웃 라우터와 정보를 교환합니다.
'거리 벡터' 알고리즘을 따름
3. static
라우터가 링크 계산을 천천히 함
4. dynamic
링크 계산을 빨리 함

1 Initialization:
2 N' = {u} // 초기 source 노드
3 for all nodes v
4 if v adjacent to u // 직접 연결
5 then D(v) = cu,v
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min ( D(v), D(w) + cw,v ) // D(v): v까지의 기존 최소 비용 경로, D(w): w까지의 기존 최소 비용 경로, cw,v: w~v까지의 직접 비용 => 더 최소인 것으로 업데이트
13 until all nodes in N' // 모든 node에 대한 최소 비용 경로 확인됨
oscillations possible

link cost가 바뀐다면?
라우팅 정보 업데이트, DV 계산
-> 좋은 경우: 바뀌면 주변에게 알림
-> 안 좋은 경우(더 큰 cost로 바뀜): 느리게..느리게...바꿈
