سؤال

كجزء من أداة دعم العميل، أريد توفير بعض الوظائف لتتمكن من طلب عرض / التحكم عن بعد جلسة سطح المكتب. هناك مجموعة من الطرق للحصول على القبض على الشاشة ثم تيارها، لكنني أرغب في معرفة وجه الخصوص، لماذا تجربة RDP (خدمة سطح المكتب / المحطة الطرفية البعيدة مقابل تجربة VNC مختلفة تماما. أنا أستخدم RDP VS . VNC فقط لأنها تبدو تستخدم أساليب مختلفة بشكل كبير لتدفق الشاشة إلى العميل.

إذا اضطررت إلى تخمين، فسيحصل RDP أن ينقل كتل رسومات النقطية (قل 100x100px) من أجل بناء الصورة الكاملة (والتي يمكن أن تكون بطيئة للغاية) ولكن يبدو أن نقل الأشكال / التعبئة الطلاءية العادية، أو الخط الرسم إلى العميل بسرعة كبيرة وبعد يبدو أن VNC تأخذ لقطات عملاقة من الشاشة، ومقارنة الصورة السابقة وتدفق التغييرات على العميل.

أشعر أن RDP هو بروتوكول أكثر جودة عالية وسلسة أكثر من أي شيء آخر هناك، إذن ما هي التقنية التي تستخدمها لإنجاز هذا؟

تحرير - فقط للتوضيح، أسأل عن تقنيات الرسومات هذه على وجه التحديد كطريقة بروتوكول بروتوكول بث - وليس من أجل استخدام المنتج / التكنولوجيا الموجود لحل متطلبات الأعمال هذا.

هل كانت مفيدة؟

المحلول

كما اكتشفت، فهي مختلفة تماما في الطريقة التي يطردها التغيير. بروتوكول RDP من MS هو وتمديد معيار الاتحاد الدولي للاتصالات (T.128) التي يمكن شراؤها عبر الإنترنت.

ينفذ RDP الكثير من تقنيات توفير النطاق الترددي الذي يكمل كل شيء آخر وجعله فعالا للغاية على انخفاض النطاق الترددي.

VNC من ناحية أخرى لديها تقنيات ضغط أساسية للغاية: سترسل كتل من النقطات النقطية التي تغيرت وسوف تستخدم الأنواع الأساسية من الضغط، من RLE إلى JPEG لإرسال تلك الكتل بكفاءة.
لسوء الحظ، لا يزال مضيعة تماما على انخفاض النطاق الترددي.

VNC أساسا ليس لديه معرفة بالبيانات الجرافيكية الأساسية المستخدمة لبناء الشاشة. هذا يجعل من السهل الاستخدام على أي جهاز لأنه يراقب فقط التغييرات على صورة نقطية الشاشة.
RDP من ناحية أخرى خطاف أعمق في واجهة برمجة تطبيقات Windows وقادرة على تحسين دفقها بناء على الحد الأدنى من المعلومات اللازمة لتوليد نفس التحديث على العميل.

إذا كنت ترغب في دمج وظائف سطح المكتب البعيد، فلديك بعض الخيارات:

  • بالنسبة إلى RDP، يمكنك استخدام ActiveX المستخدمة لوظائف الويب عن بعد. قد ترغب في إلقاء نظرة على غلاف لدمجها في البرنامج الخاص بك.
    إذا كنت ترغب في الحصول على أعمق في هذا، فهناك شفرة المصدر المتاحة لنظام Linux rdesktop. العميل الذي يتصل بآلات Windows عبر RDP.

  • بالنسبة إلى VNC، هناك عدد من التطبيقات المصدر المفتوحة.
    Fogcreek's Copilot تستخدم فعلا واحدة ويمكنك الحصول عليها مصدر كما هو مبني على tightvnc.

هناك أيضا عدد من المشاريع CodeProject على RDP. و VNC.

نصائح أخرى

كما قال Renaud، يقوم VNC ببساطة بإرسال النقطات النقطية عن طريق الكتلة دون أي معرفة بما هو المحتوى. RDP أكثر ذكاء كثيرا.

يمكنك التحقق بالضبط ما يفعله RDP من هذين النوعين:

مستوى البروتوكول:http://msdn.microsoft.com/en-us/library/cc240445(prot.10).aspx.

مستوى الرسومات:http://msdn.microsoft.com/en-us/library/cc241537(prot.10).aspx.

أعتقد أن أكبر مكاسب RDP تأتي من:

  • التخزين المؤقت: يمكن للعميل تخزين كمية كبيرة من الكتل المشوهة مسبقا ويمكن للخادم أن يخبر العميل كيفية استخدامها. كما أن هذه ثابتة لذلك عندما يتصل العميل بالخادم، فقد تم بالفعل الإعلان عن الكتل التي لديها على القرص. مفيدة جدا عند نقل النوافذ. أيضا أجزاء كثيرة من النوافذ، مثل شريط العنوان هي نفسها.

  • خط / كتلة الرسم. كما خمنت RDP لديه عمليات للخط، رسم بولي وإيم. مع رسم ويندوز تأتي هذه المستخدمة كثيرا جدا.

  • رسم الخط. RDP لديه وسيلة لإرسال جيلفس للخطوط وأخبر العميل تقديمها.

  • تقديم المؤشر. يتم إرسال أيقونات المؤشر كخلاف. VNC ببساطة يستخدم نقطة

هذه هي الكبيرة التي تتبادر إلى الذهن. تحقق من القسم 2.2.7 مجموعات القدرة من مواصفات البروتوكول للحصول على قائمة كاملة من ميزات الرسم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top