네트워크 계층 (2)

이정인·2022년 3월 4일
0

컴퓨터 네트워크

목록 보기
7/11

ICMP

control message를 운반하기 위한 프로토콜. 네트워크에서 일어나는 특정 이벤트에 대해서 소스에게 리포트 해줄 필요가 있기 때문이다. 사용자 메시지가 아니라 네트워크 내에서 일어나는 메시지이기 때문에 ICMP가 필요하다. IP 패킷의 데이터 부분에 해당 이벤트에 대한 내용이 들어간다.

IPv6

라우팅 알고리즘

라우팅에서 포워딩을 할 때 해당 아이피 패킷의 목적지를 포워딩 테이블 엔트리 중에 가장 길게 매칭되는 것으로 찾아서 보낸다. 이 포워딩 테이블을 채우는 것이 바로 라우팅이다.

결국 라우팅 알고리즘의 목적은 최소 비용을 사용하여 목적지까지의 경로를 찾는 것이다.

각 노드들이 자기 자신의 연결 상태(Link state)를 전체 네트워크에 우선적으로 브로드캐스트해서 알고 있게 만든다.

최소 비용을 구해야하므로 다익스트라 알고리즘을 사용한다.

모든 최단 경로를 구한 후 현재 위치의 라우터를 기준으로 포워딩 테이블을 채운다.

Distance vector algorithm

분산 처리 시스템이다. 딱 이웃과만 메시지를 교환한다.

dx(y) = min {c(x, v) + dv(y)}

x에서 y까지의 최소 경로는 무조건 x의 이웃 중 하나를 거쳐서 가는데 결국 x에서 이웃까지 이웃에서 y까지의 거리를 합한 것들 중 작은 것을 고르면 된다. 이웃에서 y까지의 거리 역시 재귀적으로 구해진다.결국 각 노드들이 가지고 있는 목적지까지의 거리 배열을 이웃과 교환하는 알고리즘이다.

벨만-포드 알고리즘

  • 현재 link cost가 변했거나
  • 이웃으로부터 distance vector 메시지를 받았을 경우

자기 자신의 distance vector를 다시 계산한다. 자기 자신의 distance vector 값이 변했을 경우 자신의 distance vector를 이웃에게 넘겨준다.

안정화된 상황에서 link cost에 변화가 생긴다면 ? 상태가 좋다면 금방 안정화가 되겠지만 만약 상황이 더 안 좋아진다면 안정화되기까지 카운팅이 계속 반복된다. 이를 count to infinity라고 하며 근본적인 원인은 link cost 변화 후 자기 자신의 distance vector를 계산할때 이전에 자기 자신을 거쳐갔던 경로로 계산된 distance vector 값이 넘어 오는 것이다. 따라서 이를 해결하기 위해서는 역류해서 돌아오는 길을 막아야한다.
예를 들어 z에서 x 로 가는 길이 y에 의존적이라면 y에는 해당 distance 값을 넘기지 말고 무한의 값을 넘겨야한다. 이를 posioned reverse라고 한다. 독약을 뿌려서 역류를 막는 것이다.

참고
http://www.kocw.net/home/search/kemView.do?kemId=1312397
http://www.kocw.net/home/cview.do?mty=p&kemId=1169634

0개의 댓글