host에게 router가 어떤 report를 해주기 위한 메시지 프로토콜
어떤 라우터에서 ttl이 0이 되어서 drop을 했을 때, 이 사실을 호스트에게 알리면 host의 다음 동작이 쉬울 것이다.
그냥 이런게 있는 갑다 하면 된다 근데 여기 Ping Pong이 있었네 ㄷㄷ
자세히 알 필요 없다. 아직 v4를 많이 쓰니까.
과도기에는 v4, v6이 혼재할텐데, 이러면 v4를 쓰는 라우터가 이해를 못할 수도 있지 않은가?
그래서 v6의 메시지를 v4 타입에 맞게 래핑해서 보내는 '터널링' 방식을 사용한다고 한다.
포인트 : 최소 cost 경로 찾기
2가지 접근 방식이 있다.
둘 다 알아보자
각 라우터가 알아서 각자 테이블을 설계해야 한다.
나는 U의 입장에서, 서로 브로드캐스팅을 해서 저런 그래프를 만들었다.
이제 테이블 만들기를 시작하자.
내가 최종적으로 원하는 테이블은
destination | next
v |
x |
y |
w |
z |
여기서 next를 찾는 과정일 것이다.
이 테이블 만들기는 Dijkstra 알고리즘을 사용해서 만든다.
가장 짧은 건? 5,u 동그라미 치고.
자 업데이트 하면
이런식으로 커버 범위를 늘리다보면
이런 그래프와 표가 나온다.
이를 바탕으로 테이블을 그리면
'목적지' : '다음 라우터'
정보가 나온다.
이 코스트가 고정이 아니니까 일정 주기마다 업데이트를 할것이고, 그 때마다 트래픽 등 고려되서 경로가 계속 바뀔 수 있단다.
그래서 관리주체가 명확한 하나의 네트워크 내의 라우터들은 이게 가능. ex) 네이버 회사 내 네트워크, 삼성 내 네트워크
이들을 연결하기 위한 라우터가 또 전세계에 있을 건데, 요건 커버가 안된다.
그렇다면?
내 이웃들의 정보만 가지고 알아내는 방법이다.
나는 U다. a,b,c랑 이웃인데, X한테 메시지를 보내려면,
무조건 이웃들을 거쳐서 갈 것이다.
그렇다면, 내가 아는건 나와 이웃 사이의 거리일 것이고,
이웃은 또 지 이웃의 거리를 포함해서 가는 것이다.
그렇게 재귀적으로 가면 알 수 있다고 한다.
직관적으로 이해가 됬다면, 자세한 건 다음시간에 계속...