B프로토콜
B protocol통신 프로토콜 | |
목적 | 파일 전송 프로토콜 |
---|---|
Developer(s) | 컴퓨서브의 정보 서비스 |
소개 | 1979년 43년 전에(1979년). |
하드웨어 | 모뎀 |
B는 프로토콜 혹은 CISB는 파일 전송 프로토콜은 컴퓨서브의 정보 서비스에, 1981년에는 구현을 개발했다.프로토콜은 나중에 QuickB 버전(표준 프로토콜의 비동기 버전)에서 살았고 나중에는 강화된 B플러스. 버전 확장되었다.그 시대에 그것은 상당히 진보된 프로토콜도 파일, 명령 및 기타 데이터의 효율적인 전송 지원과 양쪽 방향에서 특정 모드에서 동시에 사용될 수 있다.이러한 고급 기능 광범위지만 클라이언트 측 포장 상품들을 작은 번호에서 발견될 수 있다면 사용되지 않았다.
B 프로토콜은 CompuServe 내에서만 작동하도록 설계되었기 때문에 당시의 대부분의 서드파티 통신 클라이언트는 B 프로토콜과 호환되지 않았습니다.주목할 만한 예외는 PC에서 Tera Term과 Datastorm의 ProComm Plus입니다. 이 PC에서는 Tera Term과 ProComm Plus를 청취할 수 있습니다.Enquire
액티브한 통신 포토에서는 커맨드를, Mac에서는 자동 기동 전송을 허가한ZTerm 를 사용합니다.이러한 발전은 온라인 서비스와 함께 외부 통신 애플리케이션을 사용하는 광범위한 추세의 일부였습니다.
묘사
B 프로토콜의 원래 버전은 1979년에 도입된 초기 양방향 프로토콜의 발전으로 스트림에 표준화된 명령 구조를 포함하기 위한 옵션이 추가되었습니다.이 프로토콜은 "AgVision" 또는 "VideoTex"라는 탠디가 만든 커스텀 온라인 터미널에서 사용하기 위한 것이었지만, 이 프로젝트는 단기간 동안만 판매된 후 포기되었습니다.모뎀을 분리한 AgVision 시스템은 TRS-80 컬러 컴퓨터의 기반이 되었습니다.
이 프로토콜은 나중에 B Plus 버전에서 확장되었지만, 이 버전에는 두 가지 리비전이 있었습니다.B Plus는 사용자 간 전송이 아닌 주로 CompuServe로부터의 다운로드 지원에 전체적인 개념을 집중했습니다.다음 설명은 B Plus 문서를 기반으로 하며 이전(및 드문) B를 명시적으로 지칭하지는 않습니다.
패킷 구조
B Plus는 128~2048바이트 사이의 가변 크기 패킷과 1~2개의 패킷의 창을 포함하는 슬라이딩 윈도우 프로토콜입니다.B와 B Plus의 구조 변화는 1k와 2k 블록 크기 및 슬라이딩 윈도우의 추가가 주된 변화였습니다.Tymnet 등의 8비트 클린 이외의 패킷서비스를 통해 CompuServe에 접속하는 사람이 많았기 때문에 문제가 있는 모든 제어 문자는 항상 인용되었습니다.또한 B Plus는 네 가지 유형의 오류 검사 중 하나를 사용했습니다.
기본 패킷 구조는 다음 5가지 부분으로 구성되어 있습니다.
리드인 | <DLE>B |
시퀀스 번호 | <0x30> ~ <0x39> |
유형 | 싱글 바이트 |
몸 | 0 ~ 2048 바이트 |
트레일러 | <ETX> 값 확인 |
(뒤에 이어지는 경우가 있습니다).<RS> ) |
리드인은 대부분의 프로토콜에서 "header"와 같은 용도로 사용되며, 이는 후속 데이터가 B Plus 패킷임을 나타냅니다.시퀀스 번호는, 수신시에 패킷이 올바른 순서로 수신되고 있는 것을 확인하는 간단한 방법입니다.사용되고 있는 작은 번호의 범위에서는 문제가 발생하지 않습니다.이것은, 「1 개의 순서외」의 패킷이라도 재발송신 또는 중단이 트리거 되기 때문에, 10 개의 패킷 후에 「잘못된 0x30」이 수신될 가능성은 없기 때문입니다.
본문 또는 트레일러의 문자는 "따옴표"로 묶입니다.공식적으로는 몇 글자만 인용된다.<ETX>
,<ENQ>
,<DLE>
,<DC1>
(XON),<DC3>
(XOFF) 및NAK
일반적으로 다른 세 글자도 인용됩니다.<RS>
,<DC1>
+ 0x80 및<DC3>
+ 0x80문자는 서수 값에 0x40을 더하고 접두사를 붙임으로써 따옴표로 묶습니다.<DLE>
성격.예를 들어,<ETX>
문자(0x03)는, 다음과 같이 송신됩니다.<DLE>C
.
Check Value는 체크 내용과 마찬가지로 따옴표로 묶었지만, 그 안에 있는 값은 따옴표로 묶지 않은 값의 체크였습니다.즉, 수신측에서 Check Value를 계산하기 전에 Body를 추출 및 인용 해제해야 합니다.Check Value에는 XMODEM-CRC에서 사용되는 Cyclic Redundancy Check(CRC; 순회용장검사)의 약간 변경된 버전인 원래 XMODEMchecksum 또는 CCITT CRC-16 또는 CRC-32의 4가지 유형이 허용되었습니다.CCITT CRC를 사용할 때 트레일러에는 옵션도 포함되어 있습니다.<RS>
다른 트레일러 유형에서 지원되지 않는 이유는 분명하지 않지만, 마지막에 "네트워크 중단"(지금 전송)으로 표시됩니다.
패킷 타입
B Plus는 하나의 프로토콜만 포함하는 대부분의 프로토콜과 달리, 몇 가지 다른 패킷 유형을 정의했습니다.이러한 패킷은 데이터 전송뿐만 아니라 명령 및 프로토콜 설정 정보의 안전한 전달에도 사용되었습니다.4가지 타입은 다음과 같습니다.
전송 파라미터 | + |
파일 전송 | T |
데이터. | N |
실패. | F |
가장 일반적인 패킷은 전체 전송 수에서 파일 전송용 데이터를 전송하는T 패킷입니다이러한 패킷은, 그 이상의 의미치는 없고, 상기와 같이 포맷됩니다.또, T패킷에는 「서브 타입」, 「전송 재개」의 Tr, 레줌이 부분적으로 다운로드된 파일과 일치하지 않는 경우의 「전송 실패」의 TF, 및 전송중의 파일에 관한 상세를 송신한 「전송 정보」의 TI도 포함됩니다.대부분의 프로토콜은 파일 정보를 전송 스트림 자체에서 특별한 "zeroth 패킷"으로 보내는 반면, B Plus에서는 이것이 별도의 패킷 유형에 의해 처리되어 실제로 전송 스트림 자체에서 효과적으로 벗어났습니다.
Failure 패킷을 사용하면 송신자는 패킷스트림 내의 다양한 문제를 나타낼 수 있습니다.일반적으로 패킷에는 단일 "known" 문자가 포함되지만 이 문자 뒤에 정보 메시지가 포함될 수도 있습니다.가장 일반적인 장애 패킷은 A(bort)입니다.이것에 의해, 유저는 요구에 따라서 전송을 종료할 수 있습니다.기타 장애로는 (C) 용량 장애(디스크 공간 부족) 및 (M) 파일 발행 등이 있습니다.
Transport Parameters는 일반적으로 초기 연결 단계에서 한 번만 전송됩니다.이 패킷에는 접속의 양끝에서 사용할 수 있는 기능을 동기화하는 기존의 형식의 상세 정보가 다수 포함되어 있습니다.예를 들어 Check Value 유형이 선택된 것은 이 단계입니다.
트랜스포트 레이어
위에서 설명한 일반 패킷유형 외에 B Plus에는 B Plus 오류 수정 레이어를 통해 CIS로 명령을 전송하기 위한 별도의 유형도 포함되어 있습니다.M 패킷은 단일 데이터 패킷이지만 L 패킷도 데이터 패킷이지만 데이터 스트림이 완료되었음을 나타냅니다.이는 파일 전송과 달리 전송되는 데이터의 양을 미리 알 수 없기 때문에 이러한 방식으로 표시되어야 했습니다.
이러한 패킷의 내용은 자유 형식이며 B Plus 문서 자체에는 정의되어 있지 않습니다.그러나 기본 개념은 사용자의 단말기 프로그램이 M 타입으로 전송을 시작하여 CIS의 질문 시퀀스(사용자가 처음 로그인했을 때 전송됨)에 응답한다는 것이었다.이 스트림은 CIS 호스트에 명령을 전송하기 위해 사용되며, CIS 호스트는 터미널 프로그램에 다른 트랜스포트 레이어 스트림을 열어 응답합니다.이러한 스트림은 "시퀀스리스"로 수신된 순서대로 읽습니다.에러 또는 에러 패킷으로 인해 양쪽 채널이 중단되었습니다.
Transport Layer의 유일한 사용자는 CompuServe의 HMI(호스트 마이크로 인터페이스) API일 가능성이 있습니다.HMI는 명령줄 인터페이스를 우회하여 CIS를 구동하는 데 사용할 수 있는 많은 명령어와 그에 대한 가능한 응답을 정의했습니다.B Plus를 기반으로 한 부작용으로 오류 수정이 사용되었기 때문에 명령어를 잘못 해석하거나 응답을 왜곡할 가능성은 기본적으로 배제되었습니다.CIS는 HMI를 확장하여 이메일, 회의, 파일 전송 등의 배치 지향 인터페이스를 대부분 제어할 수 있도록 했습니다.
트랜스포트 레이어 스트림은 파일 전송과 동시에 발생할 수 없기 때문에 일반적으로 트랜스포트 레이어를 사용하는 어플리케이션은 상당히 모달이었습니다.예를 들어, HMI 기반의 Mac용 CIS Navigator를 사용하면 사용자는 CIS를 오프라인으로 탐색할 수 있으며, 다양한 이메일 및 파일 전송을 설정할 수 있습니다.이러한 전송은 온라인 시간을 단축하기 위해 단일 배치로 수행됩니다.Navigator "실행"의 마지막 단계는 로그오프하기 전에 파일을 다운로드하는 것입니다.
제어 시퀀스
모든 프로토콜은 "백채널"을 사용하여 "수신기"에서 "송신기"로 상태 정보를 다시 보냅니다.B Plus는 이 시스템을 공식화하여 패킷 구조 밖으로 전송될 수 있는 몇 가지 "메시지"를 정의했습니다.여기에는 표준적인DLE
패킷의 올바른 수신을 확인하기 위해서, 시퀀스 번호가 계속됩니다. NAK
부적절하게 수신된 패킷을 나타내기 위해 사용되었습니다.이 패킷은 확인 응답 메시지로 응답되었습니다.<DLE><DLE>
.<DLE>;
발신인을 일시 정지하는 동안<DLE>+
스트림을 중단했습니다.
문의 제어 시퀀스는 B Plus에 고유한 것으로 나타납니다.싱글로 구성되다<ENQ>
문의는 전송 시작과 수신 후 재시작에 모두 사용되었습니다.NAK
어느 경우든, 문의에 의해서 수신기는 접속 모드를 가능한 가장 기본적인 전송 설정으로 리셋 해, 전송을 준비했습니다.
「 」를 참조해 주세요.
레퍼런스
- Russ Ranshaw, "CompuServe B Plus Protocol", 1993년 11월 18일
- 이 문서의 zip 압축 버전은 bplus.zip으로 제공됩니다.
- Thomas, Levi; Turner, Nick (July 1986). "The CompuServe B Protocol: A Better Way to Send Files". Dr. Dobb's Journal. Vol. 11, no. 7. pp. 54–59.