삐
BEEPBEEP(Blocks Extensible Exchange Protocol)는 네트워크 애플리케이션 프로토콜을 생성하기 위한 프레임워크다.비프에는 프레임, 파이프라이닝, 멀티플렉싱, 연결을 위한 보고 및 인증과 같은 구성 블록과 비동기식 전이중 통신을 지원하는 메시지 지향 P2P(Peer-to-Peer) 프로토콜이 포함된다.
메시지 구문과 의미론은 하나 이상의 비프 채널과 연관된 비프 프로파일로 정의되며, 여기서 각 채널은 전이중 파이프다.프레임 메커니즘은 동료들 간의 동시적이고 독립적인 통신을 가능하게 한다.
BEF가 정의되어 있음 RFC3080은 기본 전송 메커니즘과 독립적으로.특정 전송 서비스에 대한 비프 매핑은 별도의 일련의 문서에 정의되어 있다.
개요
프로필, 채널 및 프레임 메커니즘은 다른 종류의 메시지를 교환하기 위해 비프에서 사용된다.오직 콘텐츠 유형과 인코딩만이 프로토콜 설계자에게 이진 또는 텍스트 형식을 사용할 수 있는 완전한 유연성을 남겨두고 규격에 의해 디폴트된다.프로파일은 프로토콜과 메시지 구문 및 의미론의 기능을 정의한다.채널은 특정 프로파일에 연결된 전이중 파이프다.서로 다른 채널을 통해 전송되는 메시지는 서로 독립적이다(비동기식).여러 채널이 하나의 연결을 통해 동일한 프로필을 사용할 수 있다.
BEF에는 암호화용 TLS와 인증용 SASL도 포함된다.
역사
1998년 마샬 T. POP3, SMTP, SNMP 프로토콜에도 종사했던 로즈는 BXXP 프로토콜을 설계했고, 이후 2000년 여름 IETF(Internet Engineering Task Force) 작업 그룹에 이 프로토콜을 넘겨주었다.[1]2001년에 IETF는 BXXP의 일부 개선사항과 함께 BFE(RFC 3080)와 TCP(RFC 3081)를 발표하였다.가장 주목할 만한 세 가지는 다음과 같다.
- 응용 프로그램/옥텟 스트림을 기본 "Content-Type"으로 사용.
- 메시지에 대한 다중 응답 지원.
- 이름을 BXXP에서 BUFF로 변경
신호음 세션
BEF 세션을 시작하려면 시작 피어가 수신 피어에 연결하십시오.두 동료 모두 인사말 요소가 포함된 긍정적인 답변을 즉시 동시에 보내고 있다.인사말에는 최대 세 가지 요소가 포함되어 있다.
- 피어에 의해 지원되는 옵션 채널 관리 프로파일 기능 토큰.
- 보고 및 메시지에 대한 선택적 선호 언어 태그를 로컬라이즈하십시오.
- 피어가 지원하는 프로파일.
인사말 및 답변 예:
L: <wait for incoming connection> I: <open connection> L: RPY 0 0 . 0 110 L: Content-Type: application/beep+xml L: L: <greeting> L: <profile uri='http://iana.org/beep/TLS' /> L: </greeting> L: END I: RPY 0 0 . 0 52 I: Content-Type: application/beep+xml I: I: <greeting /> I: END
프로필
프로파일은 BIP에 기반한 메시지 및 프로토콜 기능의 구문 및 의미론을 정의한다.하나의 비프 세션은 여러 프로파일에 대한 액세스를 제공할 수 있다.프로파일을 식별하기 위해 고유한 문자열이 지정된다.이 프로필 식별자는 UNUR(Uniform Resource Identifier) 또는 UNRAN(Uniform Resource Name)의 형식을 가지고 있다.과거에는 프로파일 식별자의 URI 형식이 웹 주소와 유사하기 때문에 혼동을 초래했다.새로운 프로파일의 오해를 방지하려면 URN 형식을 사용해야 한다.
프로필 식별자 예:
urn:ietf:params:xml:ns:geopriv:held:beep | HOLD 프로토콜을 위한 신호음 바인딩 |
http://iana.org/beep/xmlrpc | RFC 3529 XML-RPC(BUFF) |
메시지 및 프레임
비프 메시지는 MIME 표준에 따라 구성된다.메시지에서 XML을 이용한 BEFE에 대한 오해가 간혹 있지만, 채널 0에서는 XML의 작은 부분집합만 사용되며 프로파일 디자이너(BEEP 사용자)에게는 투명하다.메시지 내용 형식이 사용되는 것은 프로파일 디자이너의 몫이다.이것은 이진 데이터뿐만 아니라 JSON 또는 XML과 같은 텍스트 형식일 수 있다.XML은 BIPF로 정의된 채널 관리 및 TLS 표준 프로필에 사용된다.
RFC3080에서 성공적인 채널 닫기 메시지 교환의 예.
C: MSG 0 2 . 235 71 C: 내용 유형: 응용 프로그램/ beep+xml C: C: <마감 번호='1' 코드='200' /> C: END S: RPY 0 2 . 392 46 S: 내용 유형: 응용 프로그램/ beep+xml S: S: <OK /> S: END: END
더 큰 메시지는 여러 부분으로 나뉘어져서 여러 개의 시퀀스 프레임에 걸쳐 분산된다.
교환 유형
BIPE는 5가지 메시지 유형을 정의하여 필요한 애플리케이션 프로토콜 패턴의 대부분을 허용한다.다음과 같다.
메시지 | MSG | 내용을 포함하는 한 피어에서 다른 피어로의 메시지. |
답글 | RPY | 콘텐츠를 포함하는 수신 메시지에 대한 단일 응답(일대일 교환) |
오류 | ERR | 오류 의미와 함께 콘텐츠(일대일 교환)를 포함하는 수신 메시지에 대한 단일 응답. |
답 | ANS | 내용을 포함하는 수신된 메시지에 대한 응답.메시지에는 0~n개의 답이 있을 수 있다(일 대 다수 교환). |
눌 | NUL | 콘텐츠가 없는 메시지에 대한 터미널 회신은 현재 클라이언트 역할을 하는 피어에게 0개 이상의 응답으로 메시지 교환의 종료 신호를 보낸다. |
가장 일반적인 애플리케이션 프로토콜 패턴 중 일부는 다음과 같이 구현된다.
- 요청 시 MSG, 응답 시 RPY 및 ERR을 사용하여 요청-응답
- MSG를 사용한 단일 요청-복수 응답 및 일련의 ANS 응답은 NUL 프레임으로 종료됨
- 아무런 회신 없이 MSG를 사용하여 승인되지 않은 통지
흐름 제어
BEF는 채널 레벨에서 흐름 제어를 구현하기 위해 시퀀스 프레임(SEQ)을 지원한다.시퀀스 프레임은 RFC 3081 섹션 3.3에 정의되어 있다.TCP(Transmission Control Protocol)는 전송 계층 레벨에 대한 시퀀스 메커니즘을 정의하고, 연결과 관련된 흐름 제어를 지원한다.어떤 채널이나 큰 메시지가 전체 연결을 독점하지 않도록 하기 위해서는 BEF에서 채널 레벨의 흐름 제어가 필요하다.이를 위해 서비스 품질(QoS)을 지원하고 기아 및 교착 상태를 방지하기 위해 시퀀스 프레임을 사용한다.[2]
외부 링크
- BEEPcore.org 공식 웹사이트
- RFC 3080:블록 확장 가능한 Exchange 프로토콜 코어
- RFC 3081: BIP Core를 TCP에 매핑
- RFC 3117: 응용프로토콜 설계 시, BXXP 프로토콜의 설계 고려사항 작성자 지시
- RFC 3195: syslog용 신뢰할 수 있는 전송 - BEF 프로파일
- RFC 3529: 비프용 XML-RPC 프로파일
- RFC 4227: 비프에서 SOAP 사용
- RFC 3620:터널 프로필
- iana.org/assignments/beep-parameters 표준 트랙 BEFH 프로필 레지스트리
- IBM.com의 BEFE 소개
참조
- ^ Carolyn Duffy Marsan (2000-06-26). "'HTTP on steroids' to ease protocol work". Computer World. Retrieved 2014-10-31.
- ^ Francis Brosnan (2006-01-30). "'Understanding SEQ frames: BEEP flow control and bandwidth management". Retrieved 2014-10-31.