요약
- RIP의 단순 스플릿 호라이즌은 경로를 공급한 이웃에게는 그 경로를 알리지 않았다. 포이즌드 리버스는 해당 항목을 메트릭 16으로 되돌려 보내 학습자가 돌아가는 경로로 사용하지 못하도록 명시적으로 배제했다.
- 이 추가적인 부정 근거는 타임아웃을 기다리지 않고 두 라우터 사이의 루프를 끊지만, 업데이트를 확대시키며 세 대 이상의 라우터가 서로의 오래된 믿음을 강화하는 것을 막을 수 없다.
퍼진 뒤에 문서화된 프로토콜
RIP는 이미 운용 중인 실무로서 RFC 기록에 들어왔다. 1988년 6월에 발표된RFC 1058은 이미 널리 사용 중인 라우팅 소프트웨어를 문서화하고 세부적으로 서로 다른 구현들을 정합시킨 것이라고 밝혔다. 그 즉각적인 모델은 Berkeley Unix의routed에서 왔으며, 더 긴 계보는 Xerox PUP과 XNS를 거쳤다. 거리 벡터 라우팅 자체는 초기 ARPANET 작업까지 거슬러 올라간다.
이 역사가 중요한 이유는 안정성 규칙들이 깨끗한 수학적 설계에 덧붙인 장식이 아니었기 때문이다. 그것들은 배포된 네트워크에서 관찰된 동작에 대한 수리였다. 라우터는 지도를 갖고 있지 않았다. 각 목적지에 대해 메트릭과, 선호 경로가 의존하는 이웃의 보고를 유지했다. 이웃들은 주기적으로 현재 거리를 교환했다. 모든 참여자는 인접한 주장들로부터 지역적 답을 만들어냈다.
이 체계는 의도적으로 소박했다. RIP는 적당한 규모의 비교적 균질한 네트워크를 위한 내부 게이트웨이 프로토콜이었다. 인터넷 전체를 조율하도록 설계된 것이 아니었다. 라우터가 완전한 토폴로지를 학습하지 않고도 참여할 수 있다는 점에서 그 압축된 지식 모델은 유용했다.
사본이 독립적 근거처럼 보일 때
위험한 상황은 장애 이후에 시작됐다. 라우터 A가 목적지 D에 도달하기 위해 B를 거친다고 하자. B가 실제 경로를 잃었는데도 A가 여전히 도달 가능성을 광고하는 것을 들으면, B는 A의 보고를 대안으로 취급할 수 있다. 그러나 A의 주장은 애초에 B에게서 파생된 것이었다. 두 사본은 독립적인 관측이 아니라, 하나의 오래된 믿음이 다른 입을 거쳐 되돌아온 것이다.
각 지역 계산은 합리적으로 보일 수 있다. A는 B가 최선이라고 말하고, 나중에 B는 A가 최선이라고 말한다. 그러면 패킷이 광고된 거리가 커지는 동안 순환한다. 문제는 어느 라우터가 경로를 소유하거나 상대에 대한 권한을 갖는다는 점이 아니다. 업데이트가 그 수치가 어떻게 학습되었는지에 대한 전체 계보를 실지 않고 숫자만 실어 나른다는 점이다.
RIP는 이 결과 과정을 무한대까지 세기(counting to infinity)라고 불렀다. 장애가 난 목적지는 이웃들이 서로의 쓸모없어진 보고에 홉 비용을 더함에 따라 점점 더 멀리 있는 것처럼 보일 수 있었다. 프로토콜은 이 상승이 끝나도록 무한대가 충분히 작아야 했다.
16은 장애이자 규모 한계였다
RIP는 메트릭 16을 무한대로 선택했다. 따라서 사용 가능한 경로는 15홉에서 멈춘다. 이것이 때로 오래된 확장성 약점으로만 묘사되지만, 수렴 선택이기도 했다. 더 작은 무한대는 거짓 경로가 도메인이 도달 불가라고 판정하기 전에 더 적은 증가분만 가질 수 있게 한다.
이 절충은 RFC 1058에 명시되어 있다. 무한대는 모든 유효한 경로보다 커야 하지만, 세기가 멈춰야 하므로 필요 이상으로 커서는 안 된다. 네트워크 직경을 제한하는 같은 숫자가 특정 장애가 거리처럼 위장할 수 있는 시간도 제한한다.
메트릭 16은 세계에 대한 진술이 아니다. 이는 관련 교환과 현재 지역 상태에서 이 RIP 경로가 도달 불가라는 뜻이다. 다른 프로토콜, 인터페이스 또는 이후의 업데이트가 유효한 경로를 제공할 수 있다. 무한대를 보편적 진실이 아니라 범위가 지정된 근거로 다루는 것이 포이즌드 리버스를 이해하는 데 필수적이다.
침묵은 메아리를 지웠고, 독은 그것을 대체했다
단순 스플릿 호라이즌은 하나의 계보 규칙을 적용한다: 경로를 학습한 이웃이나 인터페이스 쪽으로는 그 경로를 광고하지 않는다. A의 D로의 최선 경로가 B에게서 왔다면, A는 B를 업데이트할 때 D를 생략한다. A는 B 자신의 정보를 겉보기 확증으로 바꾸는 것을 거부한다.
포이즌드 리버스는 더 명시적이다. A는 B에게 보내는 업데이트에 D를 포함하되 메트릭을 16으로 바꾼다. 이 메시지는 D가 모든 곳에서 사라졌다고 말하지 않는다. A의 자체 선택 경로가 B를 거쳐 되돌아가므로, D에 도달하는 데 A를 사용하지 말라고 말한다.
생략이 같은 토폴로지를 전달하는 것처럼 보이는데 왜 부정적인 행을 보낼까? 시간이 차이를 만든다. A가 단순히 침묵하면, B는 타이머가 만료될 때까지 A를 거치는 오래된 경로를 유지할 수 있다. A가 무한대를 보내면, B는 업데이트가 처리되는 즉시 그 되돌아가는 경로를 무효화할 수 있다.
따라서 경로는 모든 맥락에서 반박되지 않으면서 도달 불가로 되돌아왔다. 그 긍정적 값은 학습 인터페이스 떠나서는 여전히 사용될 수 있다. 순환하는 되돌아감만 독처리된다.
바이트가 더 빠른 철회를 샀다
RFC 1058은 이 비용에 대해 솔직했다. 캠퍼스 백본에서 라우터는 공유 네트워크로부터 많은 경로를 학습할 수 있다. 단순 스플릿 호라이즌은 그 네트워크로 광고할 때 해당 항목들을 생략한다. 포이즌드 리버스는 그것들을 모두 메트릭 16으로 보낸다. 큰 업데이트는 광고하는 라우터를 사용해서는 안 된다는 선언이 대부분일 수 있다.
정적 스냅샷에서 이 선언들은 거의 가치가 없다. 모든 이웃은 이미 자신이 경로를 공급했다는 것을 안다. 그러나 변화하는 동안에는 명시적 부정이 쓸모없어진 긍정을 즉시 대체할 수 있다. 더 많은 대역폭이 더 날카로운 전환을 산다.
표준은 판단의 여지를 남겼다: 단순 스플릿 호라이즌, 포이즌드 리버스, 운영자가 선택 가능한 모드, 또는 변경된 경로를 제한된 기간 동안 독처리한 뒤 나중에 생략하는 하이브리드. 이 선택은 메트릭 16의 의미를 바꾸지 않았다. 얼마나 많은 부정 근거를 얼마나 오래 실을지를 결정했다.
두 거짓말쟁이는 멈췄고, 셋은 계속할 수 있었다
이 설계에서 가장 중요한 문장은 그 한계다. 포이즌드 리버스는 두 라우터만 관련된 루프를 막는다. A와 B가 서로를 가리키면, 각각 상대의 명시적 무한대를 받아 루프는 침묵이 시들기를 기다리지 않고 끊긴다.
세 번째 라우터를 추가하면 계보는 구석을 돌아 사라질 수 있다. A는 B에 의존하고, B는 C에, C는 A에 의존할 수 있다. 어느 누구도 그 이웃 자신의 믿음이 시작된 직접 이웃에게 경로를 곧장 되돌려 보낼 필요가 없다. 스플릿 호라이즌은 완전한 원을 볼 수 없다. 메트릭은 16까지 계속 오를 수 있다.
트리거드 업데이트는 그 간격을 줄이도록 설계됐다. 선택된 경로가 변하면, 라우터는 다음 주기적 라운드를 기다리지 않고 업데이트를 보낸다. 자체 선택 경로가 그것에 의존하는 라우터들은 더 나쁜 메트릭을 받아들이고 변화를 거슬러 전파한다. 그러나 메시지는 지연되거나, 정기 업데이트와 인터리브되거나, 다른 지역 이벤트에 추월당할 수 있다. 이 연쇄는 수렴을 가속한다. 하나의 동시적 네트워크 트랜잭션을 만들지는 않는다.
철회는 삭제 전까지 보여야 했다
RIP는 또한 무효화와 소거를 분리했다. 타임아웃된 경로는 도달 불가로 표시되고, 테이블 항목이 사라지기 전 가비지 컬렉션 구간 동안 메트릭 16으로 광고된다. 즉시 제거하면 상태는 절약되지만 이웃에게 긍정적 사본을 명시적 교정 없이 남길 수 있다.
이것은 다른 경계에서의 포이즌드 리버스와 같은 논리다. 부정 정보에는 운용상 수명이 있다. 그것은 자신이 철회하는 상태를 대체할 만큼 오래 관측 가능해야 한다. 이후의 삭제는 철회가 이동할 기회를 얻은 뒤에만 안전하다.
규칙은 패킷 형식의 변화 속에서 살아남았다
인터넷 표준 기록은 이 구분을 유지했다.RFC 1812는 RIP 구현에 스플릿 호라이즌을 의무로, 포이즌드 리버스를 권고로 만들면서, 추가 라우팅 트래픽이 상당할 수 있으므로 운영자의 통제를 허용했다. 그 지침은 오래된 상태가 살아있을 수 있는 기간으로 독처리를 제한하는 것도 고려했다.
IPv6는 이 인식론적 문제를 사라지게 하지 않았다.RFC 2080은 RIP를 RIPng로 이어가며, 포이즌 리버스를 선호 동작으로 지칭하고, 무호라이즌·단순 호라이즌·포이즌 중 인터페이스별 선택을 권고했다. 프리픽스와 패킷 필드는 바뀌었지만, 이웃의 재활용된 믿음은 여전히 새 근거처럼 보일 수 있었다.
디맨드 서킷은 전송 가정을 더 급진적으로 바꿨다.RFC 2091은 트리거드 라우팅 업데이트를 순서화하고 확인 응답하여, 조용한 링크가 주기적 전체 테이블을 요구하지 않도록 했다. 그럼에도 포이즌드 리버스 처리를 여전히 요구했다. 업데이트의 신뢰성 있는 전달은, 송신자가 되돌아가는 경로를 무효로 표시하지 않으면 순환적 주장을 교정할 수 없다.
마지막으로RFC 2453은 성숙한 RIPv2 설명을 유지했다. 메트릭 16, 스플릿 호라이즌, 포이즌, 트리거드 전파, 두 라우터 한계가 함께 남았다. 이후의 패킷 기능들은 포이즌드 리버스를 보편적 루프 방지로 격상시키지 않았다.
도달 불가로 되돌아온 것이 실제로 증명한 것
독처리된 경로는 하나의 부정 명제를 증명했다: 선호하는 다음 홉이 수신자를 거쳐 되돌아가는 경로에 대해, 그 수신 맥락에서 광고하는 라우터를 선택해서는 안 된다는 것. 그것은 목적지가 전 세계적으로 부재한다는 것, 모든 대안이 실패했다는 것, 이웃이 부정직하다는 것, 패킷이 다른 메커니즘으로 도착할 수 없다는 것을 증명하지 않았다.
이 좁음이 역사적 성취다. RIP는 완전한 경로를 전송하지 않고 출처를 가시화했다. 그것은 방향, 메트릭, 시간을 사용해 복사된 주장이 독립적 권위로 되돌아오는 것을 막았다. 결과된 통제는 작은 거리 벡터 프로토콜에는 충분히 저렴했고, 하나의 흔한 루프를 빨리 끝내기에는 충분히 강했으며, 자신이 볼 수 없는 루프에 대해 정직했다.
출처와 근거 한계
- RFC 1058 — Routing Information Protocol
- RFC 1812 — Requirements for IP Version 4 Routers
- RFC 2080 — RIPng for IPv6
- RFC 2091 — Triggered Extensions to RIP to Support Demand Circuits
- RFC 2453 — RIP Version 2
이 표준들은 알고리즘, 요구사항과 진화를 확립한다. 그것들은 현재 벤더 기본값, 배포 점유율, 특정 네트워크의 수렴 시간이나 어떤 루프의 배후에 있는 악의적 의도를 확립하지 않는다. Triggered RIP는 디맨드 서킷 맥락에 적용되며, RIPng의 포이즌 선호는 모든 인터페이스가 이를 활성화한다는 증거가 아니다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





