WIPIVERSE

RFB (프로토콜)

RFB (Remote Framebuffer) 프로토콜

개요

RFB(Remote Framebuffer) 프로토콜은 원격 컴퓨터의 프레임버퍼(화면에 표시되는 픽셀 데이터)를 네트워크를 통해 전송함으로써 원격 화면을 로컬에서 실시간으로 제어·표시할 수 있도록 하는 표준 프로토콜이다. 주로 VNC(Virtual Network Computing) 시스템에서 채택되어, 다양한 운영체제와 클라이언트/서버 구현 간의 상호 운용성을 제공한다.

주요 목적

  • 화면 캡처 및 전송: 서버 측 프레임버퍼의 변경 사항을 클라이언트에 전달한다.
  • 입력 전달: 클라이언트에서 발생한 키보드·마우스 이벤트를 서버에 전송한다.
  • 플랫폼 독립성: 프로토콜 자체가 디스플레이 하드웨어와 운영체제에 종속되지 않는다.

사양 및 버전

버전 발표 연도 주요 특징
RFB 3.3 2004년 최초 널리 채택된 버전; 기본 인코딩과 보안 옵션 제공
RFB 3.5 2005년 Tight 인코딩 등 압축 방식 추가
RFB 3.6 2007년 다중 모니터 지원, 보조 인증 메커니즘 도입
RFB 3.7 2009년 지속적 업데이트를 위한 ‘픽셀 포맷’ 확장
RFB 3.8 2011년 보안 강화 (TLS 옵션) 및 고해상도 디스플레이 지원
RFB 3.9 (초안) 2013년 일부 상용 구현에 한정된 기능 추가

RFB는 기본적으로 TCP 기반이며, 기본 포트는 5900(디스플레이 번호 0)이다. 보안을 위해 TLS(Transport Layer Security) 혹은 SSH 터널링을 별도로 적용하는 것이 일반적이다.

프로토콜 구조

  1. 핸드쉐이크: 클라이언트와 서버가 RFB 버전을 교환하고, 인증 방법을 협상한다.
  2. 인증: 기본적으로 VNC 인증(DES 기반), 또는 사용자 정의 인증 모듈을 사용할 수 있다.
  3. 보안 설정: TLS를 사용하면 암호화된 데이터 전송이 가능하다.
  4. 프레임버퍼 초기화: 서버는 프레임버퍼의 해상도, 색 깊이, 픽셀 포맷 등을 클라이언트에 전달한다.
  5. 업데이트 전송: 변경된 영역을 지정된 인코딩 방식(예: RAW, RRE, Hextile, Tight, ZRLE 등)으로 전송한다.
  6. 입력 이벤트 처리: 클라이언트의 입력 이벤트를 서버에 전달하고, 서버는 이를 로컬 시스템에 적용한다.

사용 분야

  • 원격 데스크톱: VNC 클라이언트를 이용해 원격 서버나 IoT 디바이스에 접속.
  • 교육·시연: 강의실·세미나에서 실시간 화면 공유.
  • 시스템 관리: 헤드리스 서버(모니터 없이 구동되는 서버)의 GUI 관리.
  • 임베디드 시스템: 라즈베리 파이 등 저전력 디바이스의 원격 UI 접근.

표준화 및 문서

  • RFC 6143: “The Remote Framebuffer Protocol Version 3.8” (2011) – 프로토콜 정의와 보안 옵션을 기술.
  • RFB Protocol Specification: RealVNC, TightVNC, UltraVNC 등 주요 구현체가 제공하는 공식 문서.

보안 고려 사항

  • 기본 VNC 인증은 암호화되지 않은 형태이므로, 네트워크 스니핑에 취약하다.
  • TLS(예: VNC over TLS) 또는 SSH 터널링을 사용해 전송 데이터를 암호화하는 것이 권장된다.
  • 방화벽 설정 시 5900번 포트 외에 사용자 정의 포트를 사용하는 경우도 있다.

어원

RFB는 “Remote Framebuffer”의 약어이며, ‘프레임버퍼’는 디스플레이 장치가 현재 표시하고 있는 픽셀 데이터를 메모리에 저장하는 구조를 의미한다. 따라서 “Remote Framebuffer”는 원격으로 해당 메모리 내용을 액세스·전송한다는 의미를 담고 있다.

참고 문헌

  • RealVNC, Inc. “RFB Protocol Specification”, 최신 버전.
  • IETF, RFC 6143, “The Remote Framebuffer Protocol Version 3.8”, 2011.
  • TightVNC, “Tight Encoding”, 공식 문서.

(본 내용은 공개된 표준 문서와 신뢰할 수 있는 공개 소스 구현을 기반으로 작성되었으며, 현 시점(2026년)까지 확인된 정보를 반영한다.)

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기