강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

리눅스마스터1급 : VNC서버의 작동구조

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: VNC서버의 작동구조

 

 

 

 

 

VNC는 서버와 클라이언트 그리고 통신을 위한 프로토콜로 구성되어 있다.

 

 

 

 

 

VNC 서버 : 머신의 스크린을 공유하기 위해 설치되는 프로그램이다.

 

 

 

서버는 VNC 클라이언트로 부터 키보드, 마우스등을 통해 통제를 받는다.

 

 

 

 

VNC 클라이언트 : VNC 서버와 연결하고 화면을 보여주며, VNC 서버의 키보드, 마우스등을 컨트롤 한다.

 

 

 

 

VNC 프로토콜 : VNC 프로토콜은 아주 간단한 RFB(remote frame buffer) 프로토콜이다.

 

 

 

 

 

VNC서버는 물리적인 디스플레이를 필요로 하지 않는다.

 

 

 

VNC서버를 실행하게 되면 TCP 5900포트(기본포트)를 리스닝 하게 된다.

 

 

 

구현에 따라 다른 클라이언트가 TCP 5800 포트에 연결할 수 있다.

 

 

 

만약 VNC 클라이언트가 리스닝모드로 동작하여 TCP 5500 포트를 클라이언트가 리스닝 하고 있다면 서버는 클라이언트에 연결할 수 있다.

 

 

 

리스닝모드의 장점은 서버의 방화벽에서 VNC포트를 오픈하지 않아도 되며 서버를 관리하는 사람이 비전문가여도 쉽게 VNC 연결을 할 수 있다.

 

 

 

 

서버는 클라이언트에 프레임버퍼의 작은 사각형을 보낸다.

 

 

 

가장 간단한 형태의 VNC 프로토콜은 많은 대역폭을 사용한다.

 

 

 

그래서 다양한 방법으로 통신에 대한 오버헤더를 줄이기 위해 고안되고 있다.

 

 

 

예를 들어 사각형을 전송하기 위한 다양한 인코딩 방법이 있다.

 

 

 

VNC 프로토콜은 항상 클라이언트와 서버가 사용하는 프로토콜을 협상한다.

 

 

 

모든 클라인트와 서버가 제공하는 간단한 인코딩은 픽셀 데이터가 왼쪽에서 오른쪽으로 주사선 순서로 전송되는 원시 인코딩이며, 원래 전체 화면이 전송 된 후 변경된 사각형만을 전송한다.

 

 

 

이 인코딩은 바탕화면을 가로질러 이동하는 마우스 포인터 또는 커서에 기록되는 텍스트 처럼 아주 작은 화면 변화에 효율적이다.

 

 

 

그러나 화면을 스크롤 하거나 비디오를 보는 등의 많은 픽셀이 변하는 경우 많은 대역폭이 필요하다.

 

 

 

 

 

기본적으로 VNCTCP 포트 5900+N을 사용하며 여기서 N은 디스플레이 번호이다.

 

 

 

어떤 VNC프로그램은 JAVA 지원 웹 브라우저를 통해 쉽게 연결할 수 있도록, 자바 애플릿으로 VNC뷰어를 제공하기 위해 포트 5800+N에서 기본 HTTP서버를 시작하는 경우도 있다.

 

 

 

클라이언트와 서버를 적절히 설정한다면 다른 포트를 사용할 수 있다.

 

 

 

 

 

서버와 클라이언트가 모두 광대역 인터넷에 연결된 경우 인터넷을 통해 VNC를 원활하게 사용할 수 있다.

 

 

 

그렇지만 인터넷 공유를 위해 인터넷공유기 또는 라우터를 사용한다면 포트 포워딩 등을 해 주어야 한다.

 

 

 

또한 원활한 사용을 위해 VPN(Virtual Private Network)를 사용하여 연결한다면, 클라이언트는 쉽게 VNC서버에 연결할 수 있다.

 

 

 

 

Xvnc는 표준 X 서버에 기반하는 유닉스 VNC서버이다.

 

 

 

VNC에 의해 제공되는 화면은 서버에 사용자가 볼 수 있는 동일한 디스플레이를 필요로 하지 않는다.

 

 

 

여러 개의 동시 X11세션을 지원하는 유닉스/리눅스 시스템에서 VNC는 특정 기존의 X11세션을 제공하기 위해 또는 자신 중 하나를 시작하도록 설정 할 수 있다.

 

 

 

이것은 동일한 컴퓨터에서 여러 VNC 세션을 실행하는 것도 가능하다.

 

 

 

Microsoft WindowsVNC 세션은 항상 현재 사용자의 세션만 가능하다.

 

 

 

 

 

기본적으로 VNC에서 사용하는 RFB는 보안프로토콜이 아니다.

 

 

 

VNC의 보안 플로그인을 사용하거나 SSH, VPN을 통한 터널링 연결을 하여 보안을 강화 할 수 있다.

 

 

 

 

[참고자료 : http://en.wikipedia.org/wiki/Virtual_Network_Computing]

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,795 개
  • 현재 접속자 :  179 명