PromleeBlog
sitemap
aboutMe

posting thumbnail
라우팅 프로토콜
Routing Protocols

📅

🚀

라우팅 프로토콜 (Routing Protocols) 🔗

라우팅 프로토콜 목표

🚀

네트워크 그래프 추상화 (Network Graph Abstraction) 🔗

image
graph: G = (N, E)
N = set of routers = u,v,w,x,y,z{u, v, w, x, y, z}
E = set of linkes = (u,v),(u,x),(v,x),(v,w),(x,w),(x,y),(w,y),(w,z),(y,z){(u, v), (u, x), (v, x), (v, w), (x, w), (x, y), (w, y), (w, z), (y, z)}
c(x, x') = link (x-x')의 비용
ex) c(w, z) = 5
질문: uuzz 사이의 최소 비용 경로는 무엇인가?

🚀

라우팅 알고리즘 분류 (Routing Algorithm Classification) 🔗

라우팅 알고리즘은 두 가지 기본 분류로 나뉜다

Global vs. Decentralized 🔗

Global
: 네트워크 전체 정보를 모든 라우터가 가지고 있는 경우
Decentralized
: 각 라우터가 자신의 이웃 라우터에 대한 정보만 가지고 있는 경우

Static vs. Dynamic 🔗

Static
Dynamic

💡

5.2.1 라우팅 프로토콜 - 링크 상태 (Link State Routing Protocol) 🔗


🚀
다익스트라 알고리즘 (Dijkstra's Algorithm)
네트워크 토폴로지와 링크 비용이
모든 노드
에 알려져 있다
하나의 노드 (라우터)에서 다른 모든 노드까지의 최단 경로를 찾는다
반복적: kk번의 반복 후 kk개의 노드에 대한 최단 경로를 찾는다
표기법
def dijkstra(G, s):
		N' = {s}
		for each node v in G:
				if v != s:
						D(v) = c(s, v)
						p(v) = s
		while N' != N:
				find v not in N' such that D(v) is a minimum
				add v to N'
				update D(w) for each neighbor w of v and not in N':
						D(w) = min{D(w), D(v) + c(v, w)}
						p(w) = v

복잡도 분석 (Complexity Analysis) 🔗

힙을 사용한 최적화

💡

5.2.2 라우팅 프로토콜 - 거리 벡터 (Distance Vector Routing Protocol) 🔗


🚀

거리 벡터 라우팅 알고리즘 (Distance Vector Routing Algorithm) 🔗

벨만-포드 알고리즘 (Bellman-Ford Algorithm)
- 동적 프로그래밍
dx(y)d_x(y): 노드 xx에서 노드 yy까지의 최단 경로의 길이
반복적, 비동기적: 이웃 노드에게 거리 벡터를 전송

LS vs. DV 라우팅 알고리즘 비교 (LS vs. DV Routing Algorithm Comparison) 🔗

메시지 복잡도
수렴 속도
견고성