Computer Science/네트워크
[네트워크] ch5.2 routing protocols
xhaktmchl
2021. 7. 19. 18:02
728x90
반응형
# ch 5.2 routing protocols(중요)
## routing protocol 라우팅 프로토콜
- 라우팅 프로토콜의 목적
- : 좋은 path를 찾는 것
- path : 라우팅의 경로
- good path: 적은 비용, 빠르고, 가장 적은 혼잡
2. 그래프 graph
1) 개념

- 노드: 라우터
- edge: 링크
2) cost (비용)
- 개념: c(a,b) a부터 b 까지 경로의 비용
- 라우팅 알고리즘: 가장 적은 비용의 경로를 찾는 알고리즘
3. 라우팅 알고리즘 종류(routing algorithm classification)
1) global ( link state 알고리즘)
- 모든 라우터와 링크의 비용을 알고 있는 상태
2) decentralized(분산적)(distance vector 알고리즘)
- 직접 연결되거나 주변 노드와 링크 비용만 아는 상태
- 계속해서 주변 라우터와 소통
3) 정적/ 동적
- static : 루트가 거의 변하지 않음
- dynamic: 루트가 많이 바뀜(라우터, 비용)
## link state algorithm(LS) 링크상태 라우팅 알고리즘
1. 다익스트라(dijkstra's) 알고리즘
1) 개념
- 모든 노드,비용 알고있어야 한다(모든 라우터가 같은 정보 공유)
- source 노드로부터 최소비용 계산
- interactive : 반복적 계산
2) 기호
- c(x,y) : x부터y 까지 비용
- D(v) : 목적 노드v 까지의 비용
- p(v): predecessor v 노드 이전 노드
- N' : 최소비용 경로가 알려진 노드의 집합
3) 다익스트라 알고리즘 과정
- D(v) = min(D(v),D(w)+c(w,v))
- 최소 비용 경로 계속 비교하며 업데이트

4) 다익스트라 정보
- 시간복잡도 : O(n^2)
- oscillations 가능 : 비용이 같은 경로

## Distance vector algorithm
## Distance vector algorithm(DV) (거리벡터 라우팅 알고리즘)
- 주변의 노드와 링크만 보고
- 벨만포드 방정식(동적계획법) (Bellman ford equation)
- 각 단계에서 최소값을 찾아가다보면 결국 최소비용경로
1) 기호
- dx(y): x에서 y 까지 최소비용 경로의 최소비용

2). 벨만포드 예시

- 이웃 노드들에서 각 목적지까지 최소 비용 비교
2. Distance vector algorithm(DV) (거리벡터 라우팅 알고리즘)
1) 기호
- Dx(y) : x부터 y 까지 예상 최소비용

2) 정의
- Dx(y) = min(c(x,y) + Dv(y))
- : 각 인접 노드까지 최소비용 비교하면서 마지막 목적지까지 최소비용 안다.

3) 특 징
- 반복적, 비동기적 : 노드마다 반복적으로 계산하고 메시지 노드들을 거쳐 전달
- 분산적 : 메시지가 노드들을 거쳐 분산된다
작동과정: 기다림 -> 메시지나,링크 비용 바뀜 -> 재계산 0> 이웃노드 전달
4) 예시

5) 링크 비용 변화시 작동

- y 가 링크비용 변화 감지
- y가 이웃노드 에게 변환 비용 전달
- z 가 메시지 받고 최소비용 업데이트 하고 이웃노드에 메시지 전송
- y는 z로부터 메시지 수신, 업데이트할 내용 없으므로 끝
6) count to infinity 문제
- : 링크비용이 변화시 업데이트 해야되는데 업데이트 내용 중에 다른 노드의 업데이트 안된 정보를 이용 -> 업데이트를 횟수가 엄청 많이 증가함
- 해결: poisoned reverse
- - 업데이트 안된 비용을 무한대로 바꿔준다.

3. LS / DV 비교
1) 메시지 복잡도
- LS : 모든 노드들에 전송
- DV: 이웃 노드만 교환
2) convergence 속도
- LS : O(n^2)
- DV: 상황에 따라 다름, infinity 문제 도 있음
3) 라우터 오작동에 대한 반응
- LS : 잘못된 링크비용 advertise
- DV: 잘못된 정보 전파 가능
반응형