SORU
29 ŞUBAT 2012, ÇARŞAMBA


TeamViewer nasıl bu kadar hızlı atıyor?

Uzunluğu için özür dilerim, biraz gerekli.

Giriş

Uzak masaüstü yazılımı (sadece eğlence için) Windows için C# 4.0 Vista/7 geliştiriyorum. Ben bir bağ ile temel engellerden biri var sağlam UDP mesajlaşma sistemi, nispeten temiz program tasarım, bende bir yansıtma sürücüsü (ücretsiz DFMirage ayna sürücü DemoForge) ve de uygulanan NAT geçişi için tüm NAT türleri dışında Simetrik NAT (mevcut kurumsal güvenlik durumları).

Ekran aktarım/paylaşım ile ilgili olarak, yansıtma sürücüsü sayesinde değişti ekran bölgelerin otomatik olarak haberdar olduğumu ve sadece ayna sürücü sürekli değişen kendi bit eşlem bit eşlem ekran Şerif edebilirim. Sonra bir PNG olarak ekran bölgesini sıkıştırmak ve benim sunucudan istemciye göndermek. İşler oldukça iyi görünüyor, ama yeterince hızlı değil. VNC (VNC protokolü, özel amatör bir protokol sadece kullanmıyorum btw) kadar yavaş.

En hızlı en yavaş Uzak Masaüstü yazılım, liste genellikle hiç VNC gibi uygulamaları başlar, Uzak Masaüstü......TeamViewer sonra Microsoft Windows için yukarı tırmanıyor. Pek CrossLoop hakkında emin, Logmeın - kullanmadım, ama TeamViewerdelicesinehızlı. Tam anlamıyla yaşamak gerçekten çok zor. Komut tree bir komut İstemi koştum ve 20 ms gecikme ile güncellenir. Web sadece bir kaç milisaniye daha yavaş bilgisayarımda daha göz atabilirsiniz. Dikey kod Visual Studio kaydırma 50 ms gecikme süresi vardır. Sağlam TeamViewer ekran çözümü, tüm bunu yapmak için olmalı.

VNCs anket tabanlı ekran değişimi ve brute force ekran/kötü karşılaştırarak yakalama tespit için kancaları kullanın. Onların en iyi, DFMirage gibi ayna bir sürücü kullanın. Bu bölüme geçtim. Ve bir şey RFB protokolü denilen bir teknoloji kullanılır.

Microsoft Windows Uzak Masaüstü görünüşe göre bir adım daha yüksek VNC daha gider. Windows Uzak Masaüstü ekran bit eşlem göndermek değil, ama gerçek çizim komutları, bir yerden StackOverflow üzerinde duydum. Bu sadece basit bir metin (bu degrade ile koordinat ve renk bu bu dikdörtgen çizin) göndermek olabilir, çünkü çok zeki. Uzak Masaüstü gerçekten çok hızlı ve evden çalışma standart yolu. Ve bir şey RDP protokolü kullanır.

Şimdi TeamViewer, benim için tam bir gizem. Görünüşe göre, Sürüm 2 için kaynak kodlarını Şubat 2012 Sürüm 7 TeamViewer () serbest bıraktılar. İnsanlar okumuş ve Sürüm 2 sadece otomatik NAT geçişi ile VNC üzerinde birkaç iyileştirmeler bunun yararsız olduğunu söyledi.

Ama Sürüm 7...gülünç hızlı. Aslında Windows Uzak Masaüstü daha hızlı yani. TeamViewer (1 fps, ama Windows Uzak Masaüstü bile DirectX çalıştırmak için izin vermez) ile DirectX 3D oyun akışı ettim.

Bu arada, bu yükleme yaparolmadanayna bir sürücü. Bir yüklemek için bir seçenek vardır, ve sadece biraz daha hızlı olur.

Soru

Benim sorum, TeamViewer nasıl bu kadar hızlı?Mümkün olmamalıdır. Eğer 1920 24 bit derinlik (16 bit derinlik oldukça çirkin olurdu) 1080 çözünürlük var, bu hala 6,220,800 ham bayt. Hatta kullanarak libjpeg-turbo (biri en hızlı JPG sıkıştırma kütüphaneleri tarafından kullanılan büyük şirketler), sıkıştırmak için aşağı 30KB (hadi be son derece cömert), zamana rota üzerinden TeamViewer sunucusu (TeamViewer atlar kurumsal Simetrik NAT tarafından sadece proxy trafiğini kendi sunucuları). Ve bu sıkıştırma sıkıştırmak zaman alacaktı libjpeg-turbo. Sıkıştırma JPG yüksek kalite 1080 benim için ekran görüntüsü ile tam bir 1920 175 milisaniye sürüyor. Ve bu sayı eğer ana bilgisayar Atom işlemci çalışıyorsa gider. Ben sadece TeamViewer çok iyi ekran transferi en iyi anlamıyor. Yine, boyutu küçük resimler sıkıştırılmış olabilir, ama milisaniye en az on sıkıştırmak için. En büyük boyutlu görüntüleri sıkıştırmak için hiçbir zaman, ama uzun bir zaman alabilir. Her nasılsa, bu yükleme tüm bu işlem saniyede yaklaşık 20-25 Kare almak için tamamlar. Bir ağ monitör kullandım ve TeamViewer hala 500 Kbps ve 1 Mbps (VNC yazılımı aktarım hızı bir kaç saniye gecikme hızı lagless. tree Komut İstemi benim test sırasında, bu yükleme 1 Mbps hızında gelen veri alınıyor ve hala 5-6 fps çalışıyordu. VNC ve Uzak Masaüstü yapma. Yani, nasıl?

Cevaplar biraz karmaşık ve karmaşık olacaklütfen sadece UDP kullandıkları için TCP yerine diyecek olursan senin $0.02 yayınlamayınaslında TCP gibi başarılı olsa da kullanırım inanır mısın ().

StackOverflow üzerinde bir yerde burada, indirme geliştirici olduğunu ümit ediyorum.

Olası Cevaplar

Bu güncelleme insanlara cevap bir kere.

  1. Düşüncelerimi * her şey iyi ağ denetimi olduğundan, öncelikle. Örneğin, büyük paketleri hemen altında MTU boyutunu hiç boşuna ayrıldılar. Muhtemelen değişik bir tür çok hızlı XOR görüntü karşılaştırmaları ile birlikte ekran değişiklikleri tespit kancaları var.

CEVAP
29 ŞUBAT 2012, ÇARŞAMBA


En temel şey burada muhtemelen statik görüntüler ama sadece iletmek istemiyorumdeğiştiriraslında benzer olan resimler içinvideo akışı.

En iyi tahminim genel masaüstü kullanımında gerçek üstü olduğu için çok verimli (ve ağır özel ve optimize edilmiş) biraz hareket dengeleme algoritması vardırdoğrusalöğeleri (metin, hareketli windows kaydırma, vb. hareket element dönüşümü) karşı.

1 FPS DirectX 3D performansı bir ölçüde benim tahminim onaylamak gibi görünüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • SaMmM123

    SaMmM123

    3 Mayıs 2006
  • TomSka

    TomSka

    30 Mayıs 2006