Network-layer functions
- forwarding <- data plane
- routing <- control plane
* network control plane 구성하는 2가지 방법
1) per-router control (traditional)
: 라우터 별로 라우팅 알고리즘이 있고 서로 통신하면서 자신의 포워딩 테이블 업뎃
2) logically centralized control (sdn, softward defined networking)
: remote controller가 조율된 테이블을 라우터(ca, control agent)에게 심어줌
routing protocols
global: link state, SDN (라우터가 네트워크 전체 그림을 알고 있음)
decentralized: distance vector, per-router (이웃 노드들의 정보만 알고 있음)
Link State
- 다익스트라의 link-state routing algorithm
- centralized(global): 라우터가 전체 그림을 다 알고 있음
- 시간복잡도, 메시지 복잡도: n^2
- 문제점: route oscillations 발생 가능 (알고리즘에 의해 경로 계속 바뀜)
Distance Vector
- 각 노드가 자신의 현재 디스턴스 벡터 값을 자신의 이웃들한테 보냄
- 이웃으로부터 새로운 디스턴스 벡터 값을 받으면 자신의 값을 업데이트 해나감
* link cost change
- 좋은 뉴스는 빠르게 확산
- 나쁜 뉴스는 천천히 수렴 -> count to infinity (해결방법: split horizon)
comparison
* robustness(견고성)
- LS: 각각의 라우터가 자신의 테이블을 업데이트 하기 때문에 악영향이 DV보다 작음
- DV: 이웃 노드가 주는 정보를 전적으로 믿기 때문에 거짓 정보가 전체로 확산될 가능성 있음
AS (Administrative Autonomy)
* administrative autonomy(AS): 네트워크 관리 단위
-> 인터넷은 아주 많은 AS의 모임으로 AS 내에서는 우리가 배운 알고리즘이 잘 동작
- intra-AS: 하나의 AS 내에서는 같은 프로토콜 사용, RIP, OSPF
- inter-AS: BGP (거의 표준)
Intra-AS routing
- RIP: DV 사용, 30초마다 내가 살아있음을 알림, 이제 안씀
- OSPF: LS 사용, 가장 널리 쓰임, IS-IS protocol이 얘랑 비슷함
* OSPF(Open Shorterst Path First)
- open은 아무나 쓸 수 있다는 뜻
- link state 알고리즘 사용(by 다익스트라 알고리즘)
- IP를 이용해서 서로 모든 정보를 알 수 있도록 뿌려줌
- 모든 OSPF 메시지는 암호화되어 있음
- local area, backbone으로 구분 (for flooding 범위 제한)
-> local router + area border router + backbone router + boundary router