요약

  • ALTO 비용 캘린더는 애플리케이션에 미래 구간별 네트워크 비용 값의 수열을 제공하므로, 워크로드가 트래픽을 보낼 위치뿐 아니라 시점도 선택할 수 있습니다.
  • 이 값들은 공급자가 공표한 지침이며, 포워딩 명령이나 보증된 측정값이 아닙니다. 선언된 비용 유형, 시간 범위, 그리고 의존하는 맵 버전과 함께 있을 때만 의미가 있습니다.
  • 안전한 배포에는 최신 업데이트, 실제 결과의 관측, 그리고 인시던트, 놓친 업데이트 또는 클라이언트 자체의 반응으로 예측이 틀어졌을 때의 대체 경로가 필요합니다.

가장 저렴한 구간은 단언이다

대규모 복제 작업과 6시간 마감을 가진 스케줄러를 상상해 보십시오. 그 ALTO 응답은 두 네트워크 위치 사이의 비용이 02:00 이후 낮다고 보여줍니다. 스케줄러는 기다립니다. 그 결정 안에는 BGP를 바꾸거나, 회선을 예약하거나, 라우터에 지시하는 어떤 것도 없습니다. 애플리케이션은 정보 서비스가 공표한 진술을 받아들인 것입니다. 이 출발지, 이 목적지, 이 비용 유형, 이 구간에 대해서는 지금보다 나중이 바람직하다는 진술을요.

이 구분이 설계의 중심입니다.RFC 7285는 엔드포인트 선택지를 가진 애플리케이션을 위한 애플리케이션 계층 트래픽 최적화(ALTO) 프로토콜을 만들었습니다. 네트워크 맵은 엔드포인트들을 공급자가 정의한 식별자인 PID로 묶습니다. 비용 맵은 그 그룹들 사이의 방향성 비용을 공급합니다. 공표자는 그 값이 도출된 토폴로지, 트래픽 엔지니어링 규칙, 상업적 사실을 드러내지 않고 수치나 순서형 순위를 표현할 수 있습니다.

ALTO는 그 결과를 네트워크 지역 자체의 인터넷 관점이라고 부릅니다. 의도적으로 추상화된 것입니다. 값 20이 20밀리초, 20달러, 20개의 혼잡 링크를 뜻할 필요는 없습니다. 선언된 지표가 실제 단위를 부여하지 않는 한, 유용한 사실은 비교적입니다. 이 경로나 구간은 공표자의 모델에서 다른 것과 다르게 순위가 매겨진다는 것입니다.

캘린더는 시간을 더하지 확실성을 더하지 않는다

RFC 8896은 그 모델에 비용 캘린더(Cost Calendar)를 더합니다. 출발지-목적지 쌍에 대해 하나의 값을 반환하는 대신, 서버는 연속된 구간을 덮는 값 배열을 반환할 수 있습니다. 메타데이터는 캘린더가 언제 시작하고, 각 구간이 얼마나 지속하며, 몇 개의 구간을 포함하는지 명시합니다. 애플리케이션은 따라서 어디에 연결할지뿐 아니라 대량 전송 같은 작업을 언제 실행할지도 결정할 수 있습니다.

캘린더는 반복 패턴, 계획된 정비 창구, 이전 기간의 통계로 만들어질 수 있습니다. 이것은 유용한 운영 지식이지만 여전히 예측입니다. 케이블 절단, 예기치 않은 사용자 몰림, 실패한 캐시, 갑작스러운 라우팅 변경이 공표된 한산한 시간대를 붐비게 만들 수 있습니다. 반복 캘린더는 내부적으로 유효하면서도 더 이상 존재하지 않는 하루를 묘사할 수 있습니다.

그래서 타임스탬프는 장식적 메타데이터가 아닙니다. 클라이언트는 캘린더의 시작 시각과 구간 경계, 기술되는 비용 유형, 출발지·목적지 그룹이 의존하는 네트워크 맵 버전을 알아야 합니다. 내일의 배열을 오늘의 맵에 적용하거나, 잘못된 시간대로 세 번째 요소를 읽으면 어떤 ALTO 서버도 실제 권고하지 않은 결정이 만들어집니다.

신선도에는 자체 프로토콜이 있다

기본 ALTO 모델은 클라이언트가 리소스를 다시 가져오는 것을 허용합니다. 큰 맵이 몇 곳에서만 바뀔 때는 비효율적이고, 권고가 지금 중요할 때는 너무 느립니다.RFC 8895는 Server-Sent Events를 사용하는 업데이트 스트림을 추가합니다. 서버는 전체 교체 또는 JSON Merge Patch나 JSON Patch로 인코딩된 증분 변경을 푸시할 수 있습니다.

업데이트 채널은 두 번째 제어 표면이며 자동 치료제가 아닙니다. 클라이언트는 각 이벤트를 올바른 리소스와 기준 버전에 묶고, 메시지 순서를 유지하고, 마지막 사본이 최신이라고 가정하지 않으면서 스트림 중단을 처리해야 합니다. 잘못된 캘린더에 적용된 작은 패치는 명백히 없는 응답보다 더 위험할 수 있습니다. 그럴듯하지만 발명된 일정을 남기기 때문입니다.

따라서 RFC 8896은 캘린더 배포가 증분 업데이트 서비스도 지원하도록 권고합니다. 실질적 시험은 SSE 연결이 열려 있는지가 아닙니다. 공표자의 변경이 추적 가능한 버전과 유한한 지연으로 스케줄러의 활성 결정 상태에서 같은 변경이 되는지 여부입니다.

지침이 예측 대상 자체를 바꾼다

캘린더는 수요를 묘사하는 데 그치지 않습니다. 수요를 옮길 수 있습니다. 많은 클라이언트가 같은 저비용 구간을 받으면, 모두가 작업을 그 구간으로 미룰 수 있습니다. 그러면 저렴한 창구는 저렴하다고 광고되었기 때문에 채워집니다. RFC 8896은 공표자와 소비자에게 캘린더 값을 공표·소비할 때 이 피드백 효과를 고려하도록 명시적으로 요청합니다.

이것은 조용한 조정 문제를 만듭니다. 거친 캘린더는 기밀 네트워크 세부를 보호하고 변동을 줄이지만, 큰 모집단을 같은 버킷으로 몰아넣을 수 있습니다. 촘촘한 캘린더는 선택을 더 정밀하게 흩뿌릴 수 있으나 운영 조건에 대해 더 많이 드러내고 더 많은 업데이트를 필요로 합니다. 공표자는 안정성을 선호할 수 있습니다. 지연 민감 애플리케이션은 즉시성을 중시할 수 있습니다. 대량 전송 스케줄러는 예측 가능성을 선호할 수 있습니다. 프로토콜은 지침을 전달하지만 그 이해관계들을 동일하게 만들지는 않습니다.

이 정보에는 적대적 용도도 있습니다. 침해된 클라이언트는 캘린더를 이용해 악성 트래픽을 위한 유망한 시점을 고를 수 있습니다. 인증은 누가 그 지침을 공표했는지 보여줄 수 있습니다. 그러나 모든 소비자가 공표자의 의도된 목적대로 사용할 것을 보장할 수는 없습니다.

RFC 기록이 증명하는 것

고정된 기록은 데이터 모델을 증명합니다. 공급자가 정의한 네트워크 위치, 방향성 비용, 시간 구간, 교체나 패치를 푸시하는 메커니즘을요. 설계자들이 오래된 예측, 피드백 효과, 바람직하지 않은 인증된 지침, 클라이언트 불안정성, 악의적 사용을 인식했음을 증명합니다.

그것은 특정 운영자가 ALTO 서비스를 운영함을, 캘린더가 실제 가격이나 혼잡을 반영함을, 그것을 따르는 것이 특정 전송을 개선함을 증명하지 않습니다. 이것들은 서비스별 증거를 요구하는 배포 주장입니다. RFC는 권고가 어떻게 표현되는지 정의할 수 있습니다. 그 권고가 신선하고, 적합하고, 효과적이었는지는 운영자와 관측하는 클라이언트만이 보여줄 수 있습니다.

출처