무슨 일이 있어도 전체 화면이 전달된다는 인상을 받았습니다. 그런 다음 X11 전달은 응용 프로그램에 독립적이어야합니다.
아니요, 실제로는 반대입니다. X11 포워딩을 "X11 포워딩"이라고하는 이유 는 "X 서버"(일반적으로 Xorg)에서 창을 렌더링하기 위해 응용 프로그램에서 사용 하는 실제 X 프로토콜 메시지를 전송하기 때문 입니다. 이러한 메시지는 창 만들기 / 이동, 텍스트 및 그래픽 기본 요소 (선 / 직사각형), 비트 맵 그리기 등을위한 명령입니다.
VNC / RFB와 같은 "전체 화면 이미지"프로토콜과 반대되는 개념이라고 할 수 있습니다. GDI 그리기 명령을 전송하기 위해 만들어진 Windows RDP와 다소 비슷하다고 생각합니다.
따라서 프로그램 간 차이점이 나타나는 이유는 다음과 같습니다.
언급 한 게시물을 인용하기 위해 원래 대부분의 X 기반 프로그램은 다음과 같이 작동했습니다.
기본적으로 X11은 화면을 컴퓨터로 보내지 않지만 로컬 컴퓨터의 X 서버가 로컬 시스템에서 화면을 다시 만들 수 있도록 디스플레이 지침을 보냅니다.
프로그램이 버튼을 보여주고 싶을 때, "직사각형 그리기", "텍스트 그리기", 그리고 아마도 몇 줄로 짧은 명령을 보냈습니다.
시간이 지남에 따라 프로그램이 자체적으로 렌더링을 시작했으며 그 지침 중 많은 부분이 "내가 이미 렌더링 한 비트 맵이 화면에 표시되었습니다"– 로컬에서 매우 빠르지 만 X11로 인해 네트워크에서 매우 느려졌습니다. 이미지 압축.
즉, 최신 툴킷을 사용하여 빌드 된 프로그램은 앤티 앨리어싱 글꼴과 같은 기본 기능이더라도 네트워크로 연결된 X11보다 훨씬 느립니다.
반면에 RDP는 시간이 지남에 따라 조정되었으며 JPEG 및 H.264와 같은 다양한 형태의 이미지 압축을 포함합니다. 전체 이미지가로드되는 동안 압축 아티팩트를 종종 볼 수 있습니다.
다행히 GTK와 같은 대부분의 UI 툴킷은 손상 추적을 구현하므로 업데이트 된 영역 만 재전송됩니다. 그러나 일부 Firefox / Thunderbird 버전과 같은 일부 프로그램은이를 지원하지 않으며 실제로 업데이트되지 않은 경우에도 전체 창을 완전히 다시 렌더링하도록 요청합니다.
이는 프로그램의 또 다른 차이점입니다. 잘 동작하는 프로그램은 여전히 네트워크를 통해 사용할 수 있지만 버그가있는 프로그램은 전혀 쓸모가없는 100Mbps 링크를 포화시킬 수 있습니다.