요약
LIST ACTIVE는 현재 이 서버에서 독자가 선택할 수 있는 뉴스그룹을 설명했고, 선택 사항인LIST ACTIVE.TIMES는 보존된 로컬 생성 이력을 설명했다.- 이력 행은 그룹의 가용성보다 오래 남을 수 있었고, 반대로 현재 그룹에는 이력 행이 없을 수도 있었다. 따라서 부재와 존재는 의도적으로 제한된 의미만을 담았다.
- 타임스탬프는 한 서버에 국한된 것이고 작성자 필드는 서술적 일반 텍스트였으므로, 어느 쪽도 보편적인 탄생 증명서, 인증된 소유자 또는 전역 네임스페이스 권위가 되지 않았다.
일치하지 않는 두 개의 진실한 목록
하나의 NNTP 서버에 두 번 질의한다고 상상해 보자.LIST ACTIVE는 하이·로우 워터마크와 게시 상태를 갖춘 현재 살아 있는 그룹을 반환한다. 그런데 같은 이름이LIST ACTIVE.TIMES에는 없다. 두 번째 응답의 더 아래쪽에는 현재 카탈로그에는 없는 다른 그룹이 생성 시각과 작성자 설명을 갖고 자리하고 있다.
어느 쪽 응답도 결함이 아니다. 둘은 서로 다른 질문에 답한다.
RFC 3977은 독자 서비스를 광고하는 서버가LIST ACTIVE에 클라이언트가GROUP으로 선택할 수 있는 모든 그룹을 포함하도록 요구한다. 그 네 개의 필드는 현재 로컬 서비스를 설명한다: 이름, 보고된 하이·로우 워터마크, 상태.LIST ACTIVE.TIMES는 선택 사항이다. 그 세 필드는 보존된 이력을 설명한다: 이름, 이 뉴스 서버에서의 생성 시각, 생성 주체를 식별하기 위한 일반 텍스트.
표준은 이 분리를 명시적으로 만든다. 이력 목록은 정보를 구할 수 없는 그룹을 생략할 수 있고, 자신의 과거 중 더 오래된 부분을 생략할 수 있으며, 더 이상 사용 가능하지 않은 그룹을 포함할 수 있다. 클라이언트는LIST ACTIVE와의 완전성이나 동일성을 가정해서는 안 된다.
라이브 카탈로그가 먼저였다
이 구분은 원래 프로토콜에서 비롯되었다.RFC 977은LIST를 서버의 유효한 뉴스그룹 목록으로 정의했다. 응답은 또한 현재 알려진 첫·마지막 기사 번호와 게시가 통상 허용되는지 여부를 함께 실었다. 빈 응답조차 의미가 있었다. 그 순간 서버는 그 클라이언트에 보고할 유효한 그룹이 없었다는 뜻이다.
이것은 이력이 아니라 운영적 발견이었다. 독자는 무엇을 선택할 수 있는지, 로컬 기사 번호 범위가 어디에 있는지, 게시물이 통상 어떻게 처리될지 알아야 했다. 서비스에서 제거된 그룹은 한번 존재했다는 이유만으로 목록에 속하지 않았다. 구성에서 새로 적재된 그룹은 서버가 탄생 순간을 재구성할 수 없더라도 목록에 속했다.
따라서 라이브 표면은 현재의 능력을 나타냈다. 이미 그것은 로컬이었다. 기사 번호, 가용성, 클라이언트 권한은 서버마다 다를 수 있었다.
파일 관례가 프로토콜 표면이 되다
RFC 2980은LIST ACTIVE.TIMES를 UNIX 참조 구현에서 나타난 공통 확장으로 문서화했다. 일부 전송 시스템은 뉴스그룹 이름, 그 그룹이 이 서버에서 생성된 시각, 누가 생성했는지를 설명하는 필드를 담은active.times파일을 유지했다. 정보가 없는 서버는 이 기능을 거부할 수 있었다.
이 이력이 중요한 이유는 표준화가 실행 중인 관행을 따라왔음을 보여주기 때문이다. 프로토콜은 그룹 기원을 위한 보편적인 제도를 먼저 발명하지 않았다. 로컬 운영 파일을 상호 운용 가능한 명령으로 노출한 뒤, 그 내용의 의미에 경계를 두었다.
RFC 3977은 나중에 그 경계를 강화했다. 작성자 필드는 암호학적 또는 행정적 자격 증명이 아니라, 흔히 메일박스 형식처럼 꾸며진 단순 서술 텍스트가 되었다. 타임스탬프는 여전히 이 뉴스 서버에서의 생성 시각이었다. 한 행은 보존된 하나의 로컬 기록에 대한 증거일 뿐, 모든 피어가 그 시각에 그룹을 생성했거나 같은 작성자를 수용했다는 증명이 아니었다.
존재가 현재 서비스를 의미하지 않았다
이력 기록은 기록 대상보다 오래 남을 수 있다. 서버는 오래된ACTIVE.TIMES행을 보존한 채 그룹 서비스를 중단하거나, 피드를 바꾸거나, 스풀을 정리하거나, 특정 독자의 접근을 거부할 수 있다. 표준은 그러한 그룹이 이력 응답에 남아 있는 것을 명시적으로 허용한다.
그렇기 때문에 존재하는 행은 유용하지만 협소하다. 그것은 이 서버의 보존된 상태가 그 이름을 로컬 생성 시각과 서술적 작성자 텍스트와 연관시킨다는 명제를 뒷받침할 뿐이다. 그것은 지금GROUP이 동작할 것임을 증명하지 않는다. 기사가 디스크에 남아 있음을 보여주지 않는다. 다른 서버가 그 이름을 인정하도록 강제하지 않는다. 전역 소유자를 확립하지 않는다.
운영적으로 클라이언트는 이력 행을 새로운 라이브 카탈로그 결과와 결합해야 한다. 행만으로 현재 권한을 갖는다고 다루면 기억과 서비스를 혼동하게 된다.
부재가 그룹의 과거가 없음을 의미하지 않았다
역방향 오류는 더 위험하다. 결측 데이터는 종종 결정적인 것처럼 보이기 때문이다. RFC 3977은 이력 목록이 정보를 구할 수 없는 어떤 그룹도 생략할 수 있도록 허용한다. 목록은 보존된 가장 오래된 항목보다 오래된 모든 그룹을 생략할 수 있다. 마이그레이션은 이전 시스템의 이력 없이 현재 카탈로그만 가져올 수 있다. 새로 배치된 서버는 자신의 시작일부터 생성 메타데이터를 기록하기 시작할 수 있다.
따라서 빈 자리는 이 응답에 행이 없다는 사실만을 증명한다. 그룹이 한번도 생성되지 않았다거나, 이름이 무효하다거나, 관리자가 그것을 조작했다거나, 다른 서버에 기록이 없다는 것을 증명할 수 없다.
이것은 부정적 증거에 대한 규율 있는 처리다. 부재는 시스템이 완전한 커버리지를 약속하는 곳에서만 신뢰할 수 있다.ACTIVE.TIMES는 정반대인 부분적 로컬 보존을 약속한다. 그 생략은 예상되는 상태이지 자동적인 모순이 아니다.
NEWGROUPS는 또 다른 관점이었지, 권위의 해법이 아니었다
NNTP는NEWGROUPS도 제공했다. 주어진 시점 이후 이 서버에서 생성된 그룹을 묻는 시간 기반 질의다. RFC 3977은 이것이 더 나은 접근 방법이 될 수 있으며 그 결과가 통상ACTIVE.TIMES와 일치해야 한다고 말한다. 그러나 질의가 보존된 가장 오래된 이력 행보다 더 이른 시점에 도달하면 둘은 달라질 수 있고,NEWGROUPS는 추가 그룹을 내놓을 수 있다.
이 비교는 보존 경계를 드러내기 때문에 가치 있다. 그것은 보편적 시계를 만들어내지 않는다. 타임스탬프는 여전히 서버의 관측이며, 질의는 그 서버가 공급할 수 있는 이력 위에서 동작한다. 두 서버를 비교하는 클라이언트는 프로토콜 위반을 발견하지 않고도 서로 다른 시각, 서로 다른 보존 창, 서로 다른 현재 카탈로그를 볼 수 있다.
관측자가 어느 서버가 응답했는지, 언제 응답했는지, 어떤 기능을 광고했는지, 어느 범위를 질의했는지, 어떤 인접 라이브 상태가 관측되었는지를 기록할 때 증거는 더 강해진다.
작성자 텍스트는 생성 권한이 아니었다
세 번째 필드는 독자가 설명을 주체로 바꾸게 만든다. RFC 3977은 그 움직임을 저지한다. 그 필드는 주체를 서술하기 위한 일반 텍스트로 정의된다. 그것이 사람을 인증하거나, 메일박스 통제를 증명하거나, 소유권을 부여하거나, 다른 사이트를 구속한다고 말하지 않는다.
실제 생성 경로는 다른 곳에 있었다.RFC 5537은newgroup을 요청으로 설명한다. 각 서빙 에이전트는 로컬 정책에 따라 제어 메시지를 인증하고, 실행을 거부할 수 있다. 나중의 이력 행은 그 로컬 사건과 연관된 레이블을 보존할 수 있지만, 인증 증거를 재생하거나 그 레이블을 전역 위임으로 격상시킬 수 없다.
이 구분은 대장 항목과 그 항목을 허가한 권위를 분리하는 것의 프로토콜적 대응물이다. 유용한 기록에는 출처가 필요하다. 출처는 주권이 아니다.
등록은 표면을 이름 지었을 뿐, 세계를 이름 지지 않았다
IANA NNTP 파라미터 레지스트리는LIST를 명령 변형의 기능 레이블로 기록하고 정의 표준을 가리킨다. 공통 이름 덕분에 클라이언트와 서버는 인식 가능한 표면을 협상할 수 있었다.
등록은 주어진 서버가ACTIVE.TIMES를 지원한다거나, 그 이력이 길다거나, 작성자 문자열이 검증되었다거나, 결과가 전역 카탈로그를 이룬다는 것을 인증하지 않는다. IANA는 프로토콜 어휘를 조율한다. 서빙 에이전트들이 데이터를 보관하고, 보존을 선택하고, 자신의 로컬 상태를 노출한다.
설계는 소박하며, 그 소박함이 힘이다. 인터넷은 모든 토론 그룹의 탄생을 결정할 세계 단일 사무소를 필요로 하지 않았다. 서버들이 자신의 기억을 실제보다 크게 만들지 않은 채 자신이 아는 것을 진술하기만 하면 되었다.
지속되는 교훈은 경계된 증거에 관한 것이다
ACTIVE.TIMES는 현대 시스템들이 반복적으로 지워버리는 구분을 보존했다. 현재 가용성과 역사적 출처는 관련되어 있지만, 서로 바꿔 쓸 수 없다. 현재 객체는 옛 감사 궤적 없이 도착할 수 있다. 퇴역한 객체는 서비스가 끝난 뒤에도 감사 궤적에 남을 수 있다. 서술적 행위자 레이블은 권한을 인증하지 않으면서 조사에 도움을 줄 수 있다.
좋은 증거 시스템은 그 봉합선을 선언한다. 현재 카탈로그를 별도로 보여주고, 관측자를 명명하고, 가능한 한 역사적 기록을 보존하며, 부재가 증명할 수 없는 것이 무엇인지 진술한다. 나쁜 시스템은 두 관점을 합친 뒤, 부분적 이력이 현재를 부정하게 두거나 오래된 행이 영구적 통제를 주장하게 둔다.
NNTP의 두 목록은 일치할 수 없었다. 일치했다면 그것은 거짓이었을 것이다. 하나는 서버가 지금 무엇을 할지 설명했다. 다른 하나는 자신의 과거 중 어느 부분을 아직 기억하는지 설명했다.
출처
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





