Tarayıcının içinde uzak masaüstü nasıl çalışır

İzleyen tarafta hiçbir şey kurulmadan bir bilgisayarı kontrol eden tarayıcı, eklenti gerektirmesi gerekiyormuş gibi görünür. Gerektirmez — ve devredeki dört parçayı anlamak, fark ettiğiniz davranışların çoğunu açıklar; başlaması arada neden birkaç saniye sürdüğü dahil.

Güncellendi:

Dört parça

Yakalama. Host uygulaması işletim sisteminden ekranı ister ve bir kare akışı alır. Masaüstü uygulamasında bu normal bir sistem yeteneğidir; tarayıcıda ise görüntülü görüşmelerin ekran paylaşımı için kullandığı API'nin aynısıdır.

Kodlama. Kareler video olarak sıkıştırılır — genelde H.264 ya da VP8/VP9 — çünkü ham piksel göndermek söz konusu bile değildir. 30 fps'de 1080p bir masaüstü sıkıştırılmamış halde yaklaşık 1,5 Gbps, kodlanmış halde kabaca 3–8 Mbps'dir.

Taşıma. Akışı WebRTC taşır. Tarayıcıdaki görüntülü görüşmelerin arkasındaki mekanizmanın aynısıdır; eklentisiz çalışmasının sebebi de budur: her modern tarayıcıda zaten vardır.

Girdi. Tıklamalarınız ve tuş vuruşlarınız bir WebRTC veri kanalı üzerinden geri gider ve host bunları işletim sisteminde sentetik girdi olayları olarak yeniden oynatır.

Bağlanmak neden bir an sürüyor: ICE

Başlangıçta iki makine de diğerine nasıl ulaşacağını bilmez. İkisi de yönlendirici arkasındadır, ikisinin de özel adresi vardır ve internet ikisine de doğrudan teslimat yapamaz. WebRTC bunu ICE ile çözer — her tarafın ulaşılabilir olabileceği tüm olası yolları toplayıp sonra deneyen bir pazarlık.

  1. Sinyalleşme. İki taraf da küçük bir sunucuya bağlanıp neyi desteklediklerini ve nasıl ulaşılabilir olabileceklerini paylaşır. 6 haneli kodunuzun tanımladığı şey budur: hangi iki tarafın tanıştırılacağı. Sinyalleşme sunucusu bir çöpçatandır, bir boru değil.
  2. STUN. Her taraf bir STUN sunucusuna "dışarıdan bakınca hangi adrese sahip görünüyorum?" diye sorar. Cevap, yönlendiricinin atadığı herkese açık adres ve porttur; diğer taraf ona ulaşabiliyor olabilir.
  3. Aday çiftleri. İki tarafın da artık olası adres listeleri vardır — yerel ağ, herkese açık, aktarılmış — ve bileşimleri paralel deneyip en hızlısını tercih ederler.
  4. Hiçbiri olmazsa TURN. Doğrudan yol bulunamadığında trafik bir TURN sunucusu üzerinden aktarılır. Her zaman çalışır; bedeli fazladan bir gecikme sıçraması ve birinin ödediği gerçek bant genişliğidir.

Bu pazarlığın tamamı, bağlanmanın anlık olmamasının ve ilk bir iki saniyenin belirsiz hissettirmesinin sebebidir. Bir oturumun bazen hafif takılarak başlayıp sonra düzelmesini de açıklar: ICE, bağlantı zaten kullanılabilir hale geldikten sonra daha iyi bir yola geçebilir.

Reklam

Sunucular neyi görüyor

Bu konuda net olmaya değer, çünkü "onların sunucusundan geçiyor" farklı sunucular için farklı şeyler demek.

Pratik özet: üstveri altyapıya görünür, içerik görünmez. Bu, oturumunuzu sunucu tarafında çözen bir servisten anlamlı biçimde farklı bir durumdur ve hangisini kullandığınıza bakmaya değer — bkz. uzak oturumu kim görebilir.

Bu tasarımın iyi ve kötü olduğu şeyler

İyi olduğuKötü olduğu
Yapılandırmasız NAT arkasından çalışmakDüşük bit hızında ince metin — video sıkıştırması yumuşatır
Video ve hareket, çünkü bir video codec'iGarantili 20 ms altı girdi, çünkü kodlama ve çözme zaman yer
İzleyen cihazda sıfır kurulumTelefonda uzun oturumlar — kodlama/çözme pili tüketir
Şifreli taşımanın seçenek değil şart olmasıAygıt yönlendirmesi isteyen her şey: yazıcı, sürücü, akıllı kart

Diğer rehberler

RemoteFrames'ı deneyin

Erişmek istediğiniz bilgisayara host uygulamasını kurun, gösterdiği 6 haneli kodu herhangi bir tarayıcıya girin. Hesap yok — günde iki adet 10 dakikalık ücretsiz oturum.

RemoteFrames'ı deneyin