요약

  • 하나의 장기 플로우의 처리량을 35% 높이는 가상의 혼잡 제어기는 아직 유용한 결과를 입증하지 못했습니다. 누락된 근거에는 큐잉 지연, 단기 플로우 완료, 손실, 기존 트래픽, 과도 응답, 까다로운 링크, 그리고 평균 뒤에 숨겨진 분포가 포함될 수 있습니다.
  • RFC 5166은 평가자에게 다양한 지표 범위를 비교하도록 요구하고, RFC 5033은 안전한 배포와 권장되는 사용을 구분하며 실패 영역을 기술할 것을 요구하고, RFC 2914는 개별적인 공격성이 유용한 공유 작업을 줄이고 군비 경쟁을 유발할 수 있는 이유를 설명합니다.

하나의 압도적인 숫자가 있는 벤치마크를 상상해 보십시오. 새로운 전송 계층이 기준선보다 35% 더 높은 처리량을 얻습니다. 그래프는 재현 가능합니다. 구현은 실제입니다. 병목은 포화 상태입니다. 그러나 이 시험은 대화형 패킷이 승리한 플로우 뒤에서 얼마나 오래 기다렸는지, 짧은 전송이 나중에 끝났는지, 기존 TCP 트래픽이 어떠했는지, 경로 변경이 제어기를 진동하게 만들었는지에 대해서는 아무것도 말해주지 않습니다.

이 35%는 설명을 위한 예시이며, 특정 알고리즘에 대해 보고된 결과가 아닙니다. 그 목적은 측정과 결정 사이의 차이를 드러내는 것입니다. 어떤 숫자는 자신의 실험 안에서는 정확하면서도 거기에 붙은 배포 주장을 뒷받침하기에는 여전히 불충분할 수 있습니다.

하나의 속도, 여러 현실

2008년 3월에 발행된RFC 5166은 Sally Floyd가 편집자로 등재된, IRTF 전송 모델링 연구 그룹의 정보성(informational) 문서입니다. 인터넷 표준이 아닙니다. 이 문서는 연구자들이 혼잡 제어에 대해 하나의 목표에 동의한다고 주장하지 않습니다. 더 오래 지속되는 더 좁은 요점은 이렇습니다. 메커니즘은 단일 지표에 맞춰 최적화되기보다 다양한 지표 사이의 트레이드오프에 걸쳐 평가되어야 합니다.

처리량조차 하나의 관찰이 아닙니다. 라우터 수준 수치는 총 활용도를 기술할 수 있습니다. 플로우 수준 수치는 연결의 속도나 완료 시간을 기술할 수 있습니다. 사용자 수준 해석은 누군가 얼마나 오래 기다렸는지를 물을 수 있습니다. 굿푸트(goodput)는 질문을 더 좁혀 유용하게 전달된 트래픽, 즉 중복되거나 나중에 버려지기 위해 운반된 작업을 제외한 트래픽으로 한정합니다.

이 구분이 중요한 이유는 포화된 링크가 덜 유용한 작업을 수행하면서도 효율적으로 보일 수 있기 때문입니다. 평균 플로우 속도는 소수의 장기 전송이 얻고 다수의 단기 전송이 잃는 분포를 숨길 수도 있습니다. 따라서 벤치마크는 누구의 처리량을 측정했는지, 어느 구간에 걸쳐, 어떤 수요 조건에서, 그리고 보고된 바이트가 실제 유용한 전달이 되었는지를 밝혀야 합니다.

지연과 손실은 같은 대장을 이룹니다. 평균 지연은 대화형 서비스 실패를 정의하는 꼬리(tail)를 숨길 수 있습니다. 대량 전송은 개별 패킷 지연을 신경 쓰지 않을 수 있지만, 공유 FIFO 시스템에서 그것이 만드는 큐는 다른 트래픽이 경험합니다. 손실률만으로는 버스트, 재전송, 하류 낭비를 숨길 수 있습니다. 올바른 단위는 결정에 따라 달라지지만, 단위를 선택하는 것 자체가 반드시 드러나야 하는 결정입니다.

반응 속도는 불안정성이 될 수 있다

혼잡 제어기는 용량, 라우팅, 경쟁 수요가 변할 때 반응해야 합니다. 너무 느리게 반응하면 큐나 손실 상태가 지속됩니다. 짧은 교란에 너무 강하게 반응하면 제어기가 불필요한 속도 변동을 만들고, 링크를 비운 뒤 다시 쇄도할 수 있습니다. 따라서 RFC 5166은 최대 민감도를 무조건적인 장점으로 선언하는 대신 진동 바로 옆에 반응 시간을 놓습니다.

이것이 정상 상태 결과가 약한 근거가 되는 한 가지 이유입니다. 이동성, 경로 변경, 간헐적 연결, 역방향 경로 트래픽, 변화하는 대역폭-지연 곱은 전환을 만듭니다. 평형 이후에 훌륭한 메커니즘이 평형을 찾아가는 동안에는 파괴적일 수 있습니다. 평가에는 목적지와 여정 둘 다 필요합니다: 수렴 시간, 오버슈트, 분산, 큐 동작, 그리고 회복 중에 부과되는 비용.

공정성은 공식 이전에 질문이다

RFC 5166은 여러 공정성 개념을 논의하면서 하나를 보편적으로 옳은 것으로 임명하지 않습니다. 플로우끼리, 세션끼리, 사용자끼리, 또는 서로 다른 경로 길이, 왕복 시간, 응용 요구를 가진 주체들끼리 비교할 수 있습니다. 같은 속도는 한 플로우가 여러 혼잡 링크를 소비하고 다른 플로우가 하나를 소비할 때 불공정할 수 있습니다. 처리량 곱, Jain 지수, max-min 할당, 비례 공정은 각각 다르게 구성된 질문에 답합니다.

이 모호성이 공정성을 생략할 권한은 아닙니다. 선택된 주체와 결과를 공개해야 한다는 요구 사항입니다. 새 제어기가 표준 트래픽에서 용량을 빼앗아 이득을 얻는다면, 그 사적 개선은 동시에 외부 비용이기도 합니다. 평가는 그 이전의 양쪽을 모두 보여주어야 합니다.

Floyd가 편집하고 더 넓은 연구 역사를 바탕으로 하는RFC 2914는 이 문제의 판을 기술합니다. 혼잡 붕괴는 더 많은 제공 부하가 더 적은 유용한 네트워크 작업을 산출할 때 발생합니다. 또한 점점 더 공격적인 전송 계층이나 응용이 호환 가능한 절제가 사라질 때까지 국지적으로 승리하는 경쟁에 대해 경고합니다. 시험된 플로우만 보상하는 벤치마크는 그 군비 경쟁을 실수로 진행으로 기록할 수 있습니다.

안전한 것과 권장되는 것은 같지 않다

Sally Floyd와 Mark Allman의 모범 사례(Best Current Practice) 문서인RFC 5033은 평가 문제를 발행과 배포의 규율로 전환합니다. 이 문서는 글로벌 인터넷에서 베스트 에포트 사용에 안전하다고 간주되는 실험적 알고리즘과, 위험이 해결되지 않은 동안 시뮬레이션, 테스트베드 또는 통제된 환경에 머물러야 할 유망한 메커니즘을 구분합니다.

이 문서는 제품 주장이 흔히 지우는 두 번째 구분을 만듭니다. 알고리즘은 권장되지 않으면서도 안전할 수 있습니다. 네트워크에 실질적 해를 끼치지 않으면서도 특정 환경에서 자신의 사용자에게 나쁘게 작동할 수 있습니다. 반대로 통제된 환경에서의 놀라운 결과가 일반 베스트 에포트 트래픽으로 넘어설 권한을 주지는 않습니다.

RFC 5033은 제안 작성자에게 표준 혼잡 제어에 미치는 영향, 까다로운 경로, 다양한 대역폭과 왕복 시간, 역방향 경로 트래픽, 통계적 다중화, 큐 규율에 대해 시험할 것을 요구합니다. 이 메커니즘이 어디서 무너지는지를 물습니다. 또한 붕괴 방지, 동일 알고리즘 간 공정성, 오작동 참여자 분석, 갑작스러운 사건에 대한 대응, 점진적 배포에 대한 설명을 요구합니다.

이로써 실패 영역은 산출물의 일부가 됩니다. "우리 테스트에서는 작동한다"만으로는 불완전합니다. "여기서는 작동하지 않는다", "거기서는 시험되지 않았다", "이 범위를 벗어나서는 안 된다"가 함께 있어야 합니다. 프로토콜이나 배포에서 그 메커니즘이 의도된 환경을 탈출하지 못하게 하는 장치가 없다면, 산문으로 적힌 제한 자체가 너무 약할 수 있습니다.

영웅 신화 없이 귀속하기

Floyd의ICIR 이력은 BART 실시간 시스템의 엔지니어링 작업에서 UC Berkeley 대학원 과정을 거쳐 LBNL과 ICIR에서의 네트워크 연구에 이르는 경로를 기록합니다. 그녀의프로젝트 아카이브는 공적 기록을 RED, ECN, DCCP, TFRC, HighSpeed TCP, 트래픽 모델, 평가 방법에 연결합니다.

그것은 지속적이고 협력적인 작업의 기록이지, 단독 발명가 신화의 면허가 아닙니다. RFC 5033은 Mark Allman과의 공동 저작입니다. RED, ECN, DCCP, TFRC는 각각 자신의 완전한 저자와 커뮤니티 역사를 가지고 있습니다. RFC 5166 자체도 TMRG로부터의 상세한 의견을 보고합니다. 여기서 Floyd의 관련성은 한정되고 구체적입니다. 그녀에게 귀속된 기록은 반복적으로 경쟁 트래픽이 부담하는 비용, 실험의 한계, 평가의 질을 드러냅니다.

주장과 충돌할 수 있는 평가 대장

진지한 배포 메모는 최소한 다섯 가지 문서화된 요소를 하나의 도시에 보전해야 합니다:

  1. 알고리즘과 구현 버전, 기본값과 폴백을 포함하여;
  2. 토폴로지, 큐, 워크로드, RTT, 경로 비대칭, 경쟁 트래픽, 실험 시간 규모;
  3. 유용한 처리량, 완료 시간, 지연, 손실에 대한 분포 — 평균만이 아니라;
  4. 혼잡, 경로 변경, 연결 단절, 데이터 손상, 오작동, 회복에 대한 반응;
  5. 승인된 배포 범위, 카나리아 배포, 정지 조건, 롤백, 그리고 해결되지 않은 근거 공백.

별개의 편집 비교

Sofia Ren은 두 개의 공개 에세이에서 가져온 이후의 비교를 적용합니다:

함께 읽으면, 이 에세이들은 주장이 실제 가동 중인 시스템이 하는 일과 그것을 반증할 수 있는 근거에 대해 계속 책임을 져야 한다고 주장합니다. 이 비교는 본 기사의 편집적 해석이며, Floyd, TMRG 또는 IETF의 사적 의도에 대한 진술이 아닙니다.

실용적 결론은 소박합니다. 처리량은 중요합니다. 단지 그것은 자기 자신을 판단할 자리에 앉을 수 없을 뿐입니다. 혼잡 제어기가 더 넓은 범위를 얻는 것은 그 이득이 다원적 측정 앞에서 살아남고, 외부 비용이 보이고, 실패 영역이 명명되고, 가동 중인 근거가 헤드라인을 거부할 때 배포가 되돌릴 수 있음이 유지될 때입니다.

출처