📌2. 디스턴스 벡터 알고리즘의 문제점
디스턴스 벡터 알고리즘
위 챕터에서 디스턴스 벡터 알고리즘을 알아보았는데, 이 알고리즘의 문제점과 해결책을 공부한다.
2.1 시간
한 번 배운 라우팅 테이블을 계속 전달하기 때문에 업데이트가 모든 네트워크에 전달되는 시간(Convergece Time)이 오래걸리고, 이에 따른 루핑이 발생할 가능성이 있다.
라우터 A는 왼쪽 네트워크로부터 라우팅 테이블의 업데이트를 받는다.(왼쪽에 연결된 네트워크의 링크에 변화가 감지된다.)
👉라우터 A는 자신의 라우팅 테이블을 변경하기 위한 작업을 시작한다.
- 새로운 링크가 생겼다면 그것을 넣고, 만약 어떤 네트워크가 끊어졌다면 그 네트워크를 라우팅 테이블에서 지운다.
- 이런 작업을 통해서 라우터 A는 새로운 라우팅 테이블을 만들게 된다.
👉라우팅 업데이트
- RIP등 디스턴스 벡터 알고리즘은 업데이트 주기를 가진다.
- 주기가 30초라고 가정하면 라우터 A는 30초 후에 변경된 라우팅 테이블을 라우터 B에 보내고 라우터 B는 다시 30초 후에 라우터 C에 이 정보를 보낸다.
- 따라서 라우터 C는 라우터 A가 라우팅 테이블 변화를 인지한지 60초 후에야 비로소 네트워크의 변화를 인지한다.
- 라우터 C 뒤에도 라우터가 더 연결되어 있다면 지연이 더욱 심해진다.
2.1.1 구체적 예시
위와 같은 디스턴스 벡터 알고리즘의 라우팅 테이블이 있다.
👉라우터 A의 5.1.1.0 네트워크가 다운 됐을 때
- 라우터 A가 자신의 라우팅 테이블을 업데이트 한다.
- 라우터 B, C는 아직 이 정보를 알 수 없는 상태이다.
👉라우터 A에서의 변경 정보가 라우터 B에 반영되기 전에 라우터 B가 자신의 라우팅 테이블을 업데이트 한다.
- 네트워크 5.1.0.0에 대한 라우팅 정보를 라우터 B로부터 받은 라우터 A는 5.1.0.0 네트워크를 라우터 B를 통해서 갈 수 있다고 생각하고 자신의 라우팅 테이블을 바꿈
👉5.1.0.0 네트워크는 라우터 B로 갈 수 있고 홉 카운트는 2라고 생각하게 된다.
👉라우터 B가 라우터 A로부터 온 네트워크 5.1.0.0에 대한 정보를 보고 홉 카운트가 2로 바뀐것을 인지한다.
- 라우터 B는 A를 거쳐서 5.1.0.0 네트워크를 가야 하기 때문에 자신의 홉 카운트를 3으로 변경한다.
- 똑같이 라우터 C도 5.1.0.0에 대한 자신의 홉 카운트를 4로 변경한다.
결국 라우팅 테이블에 루핑이 발생한다.
- 죽어있는 네트워크로 향하는 데이터는 계속 돌기만 할 뿐 목적지에 도착하지 못하므로, 네트워크에 엄청난 트래픽이 발생하고, 라우팅 테이블이 꼬여서 제대로 된 라우팅을 수행할 수 없게 된다.
루핑의 발생 원인 : 한 라우터가 라우팅 정보에 대한 모든 정보를 가지고 있지 못하고, 이웃 라우터로 부터의 업데이트가 느리게 이뤄지기 때문이다.
다음 챕터에서 해결책을 알아본다.