¿Cómo funciona el servicio Screen Sharing de una Mac?

1

¿Qué componentes tiene y cómo funcionan? ¿Qué protocolos son compatibles? Lo que solo sé es que es compatible con VNC (como cliente y como host).

Me interesa conocer más detalles técnicos y jugar con ellos.

    
pregunta radj 16.12.2013 - 11:10

1 respuesta

1

Si estamos hablando solo de Compartir pantalla (SS) (olvidando ARD), está funcionando de la siguiente manera:

Primero, hay un archivo de configuración del demonio (/System/Library/LaunchDaemons/com.apple.screensharing.plist). Contiene un registro que le dice a launchd que inicie el Servidor SS (y luego el Agente SS) cada vez que alguien se conecta al puerto 5900. El servidor está ubicado en /System/Library/CoreServices/RemoteManagement/screensharingd.bundle , el agente está en /System/Library/CoreServices/RemoteManagement/ScreensharingAgent.bundle.

El Servidor SS es la parte principal del Servicio SS. Realiza la interacción de la red, implementa los protocolos utilizados, realiza la codificación de la imagen, la autenticación, etc. A su vez, SS Agent se hace pasar por el usuario actual y se encarga de proporcionar imágenes de la pantalla del usuario, las teclas “presionar”, el mouse “en movimiento”.

(AFAIR, esta separación comenzó con Mac OS X 10.7. Anteriormente, el servicio era monolítico, se llamaba AppleVNCServer y siempre se estaba ejecutando mientras el interruptor “Compartir pantalla” en Preferencias del sistema estaba activado).

El servicio SS también puede iniciar los siguientes ayudantes según sea necesario:

  • SSPasteboardHelper (ubicado en el paquete de agentes de SS): pega los datos de la mesa de trabajo en la mesa de trabajo del sistema cuando llega del cliente,
  • SSAssistanceCursor - apareció recientemente, me pregunto para qué sirve,
  • SSFileCopyReceiver / SSFileCopySender (en el paquete del Servidor SS) - se usa para transmitir / recibir archivos.

En cuanto a los protocolos, el servicio SS utiliza el mismo protocolo RFB que todos los clientes VNC, pero con algunas extensiones específicas. El servidor informa que admite la versión 3.889 del protocolo (la mayoría de los demás servidores informan las versiones 3.3 a 3.8). También es compatible con los códecs más comunes (sin formato, ZLib, ZRLE), así como con los personalizados de Apple (ZLib en blanco y negro y en escala de grises, y el códec "adaptable" que utiliza un algoritmo de compresión tipo JPEG). También hay muchas extensiones de protocolo específicas de Apple, implementando arrastrar y soltar, transmisión de archivos, sincronización automática de cartulina, transmisión de eventos gestuales, etc.

Esta es una explicación muy general, pero si hace una pregunta más específica, con gusto lo ayudaré.

    
respondido por el richter 17.01.2014 - 12:31

Lea otras preguntas en las etiquetas