RDP چیست؟ | پروتکل ریموت دسکتاپ (Remote Desktop Protocol) — به زبان ساده

RDP پروتکلی بسیار رایج برای اتصال از راه دور به یک کامپیوتر دسکتاپ تحت سیستم عامل ویندوز به حساب میآید که به طور اختصاصی متعلق به شرکت مایکروسافت است. به خصوص از زمانی که برخی آسیبپذیریهای حیاتی در این پروتکل شناسایی شده است، شناخت و درک پروتکل RDP بسیار اهمیت دارد. چه کاربران عادی و چه افراد شاغل در حوزه شبکههای کامپیوتری، امنیت و مانیتورینگ شبکه باید پروتکل ریموت دسکتاپ (Remote Desktop Protocol) را به درستی بشناسند تا بتوانند از خطرات امنیتی و حملات از طریق RDP جلوگیری کنند. در این مقاله به طور کامل به این سوال پاسخ داده میشود که پروتکل RDP چیست و سپس کلیه مباحث اساسی پروتکل ریموت دسکتاپ، نحوه عملکرد آن و سایر سوالات رایج مرتبط با RDP شرح داده شدهاند. در ابتدا مفاهیم و آموزش RDP در سطح ساده و ابتدایی برای کاربران عادی مطرح شده و سپس مطالب پیشرفتهتر و جزئیتری راجع به پروتکل ریموت دسکتاپ شرح شده است.
پروتکل RDP چیست ؟
RDP یا Remote Desktop Protocol یک پروتکل یا قاعده در شبکههای کامپیوتری به حساب میآید که توسط شرکت مایکروسافت ارائه شده است. پروتکل RDP به کاربران امکان میدهد تا از راه دور به یک کامپیوتر دیگر متصل شوند. پروتکل RDP یک رابط گرافیکی (GUI) را برای اتصال به کامپیوتر دیگر از طریق شبکه فراهم میکند.
رابط گرافیکی به گونهای است که با استفاده از آن در حالت تمام صفحه تقریباً هیچ تفاوتی با استفاده مستقیم از کامپیوتر مقصد وجود ندارد. در واقع، تجربه کاربری دسترسی راه دور از طریق پروتکل RDP بسیار نزدیک به دسترسی مستقیم است. پروتکل RDP را میتوان هم در شبکه محلی (شبکه داخلی) راهاندازی و فعال کرد و هم میتوان از طریق اینترنت با استفاده از RDP به یک کامپیوتر دیگر از راه دور متصل شد. البته تنظیمات هر کدام متفاوت است که در بخشهای بعدی این مقاله شرح داده خواهند شد.
RDP از پروتکل اشتراک کاربرد به نام T.128 تعمیم داده شده است. استاندارد T.128 توسط بخش استانداردسازی ارتباطات از راه دور اتحادیه بینالمللی مخابرات (ITU-T) وضع شده است. یک کلاینت RDP میتواند از طریق پروتکل RDP به سرور RDP متصل شود. اما کلاینت RDP و سرور RDP چه هستند؟ در ادامه به این سوالها پاسخ داده شده است.
کلاینت RDP چیست ؟
کلاینت RDP به دستگاهی گفته میشود که قصد اتصال از طریق آن به کامپیوتر راه دور وجود دارد. کلاینت RDP برای اکثر نسخههای ویندوز (حتی ویندوز موبایل)، لینوکس، یونیکس، iOS ،macOS، اندروید و برخی سیستمعاملهای دیگر نیز موجود است. کلاینت RDP رسمی مایکروسافت برای سیستم عامل ویندوز Remote Desktop Connection نام دارد که به اختصار RDC خطاب میشود. در گذشته کلاینت RDP با نام «Terminal Services Client» شناخته میشد.
سرور RDP چیست ؟
سرور RDP همان کامپیوتر یا سروری است که قصد دسترسی از راه دور یا اتصال ریموت دسکتاپ به آن وجود دارد. سرور RDP میتواند یک کامپیوتر دسکتاپ (یا همان PC ساده) باشد و همچنین میتواند یک سرور قدرتمند باشد که سیستم عامل ویندوز سرور روی آن نصب میشود و معمولاً چند سیستم عامل روی ماشین مجازی برای دسترسی مشتریان روی آن پیادهسازی میشوند. سرورهای RDP به طور پیشفرض در داخل سیستم عاملهای ویندوز تعبیه شدهاند. همچنین برای سیستم عاملهای یونیکس و مک نیز سرور RDP ارائه شده است. به طور پیشفرض، سرور RDP از طریق پورت ۳۳۸۹ TCP و پورت UDP ۳۳۸۹ ارتباط برقرار میکند.
RDP مخفف چیست ؟
RDP مخفف «Remote Desktop Protocol» به معنی «قواعد دسترسی راهدور به کامپیوتر دسکتاپ» است. کلمه «Protocol» به مفهوم پروتکل در شبکههای کامپیوتری اشاره دارد. Desktop بیانگر یک کامپیوتر رومیزی یا PC است که در مورد پروتکل RDP ، این PC با سیستم عامل ویندوز کار میکند.
واژه Remote نیز به معنی راه دور است که در اینجا میتوان عبارت «دسترسی از راه دور» را هم برای آن به کار برد. پیش از آنکه به نحوه عملکرد یک اتصال RDP پرداخته شود، بهتر است پروتکلها و استانداردهایی معرفی شوند که RDP مبتنی بر آنها عمل میکند. حال در ادامه نوشته «RDP چیست» به آموزش فعالسازی ریموت دسکتاپ در ویندوز پرداخته شده است.
آموزش فعال سازی ریموت دسکتاپ
در این بخش از مقاله «RDP چیست» به آموزش انجام تنظیمات لازم برای برقراری ارتباط ریموت دسکتاپ بین دو کامپیوتر دسکتاپ (PC) پرداخته شده است. لازم به ذکر است که دسترسی ریموت دسکتاپ تنها در ویندوز با نسخههای Enterprise ،Pro و Ultimate امکانپذیر است. یعنی نسخه سیستم عامل سرور RDP حتماً باید یکی از نسخههای Enterprise ،Pro یا Ultimate باشد. واضح است که استفاده از پروتکل RDP در اتصال راه دور یک PC به PC دیگر تنها یکی از کاربردهای این پروتکل به حساب میآید.
در واقع استفاده شخصی از RDP سادهترین سطح به کارگیری این پروتکل است. از RDP در سطح تجاری و سرورهای بزرگ نیز استفاده میشود. در این بخش از نوشته «RDP چیست» آموزش فعالسازی ریموت دسکتاپ برای اتصال به یک PC راه دور از طریق PC دیگر ارائه شده است. برای برقراری اتصال از طریق RDP ، باید تنظیماتی روی سیستم مقصد انجام شود. در سیستم مبدا تنها باید برنامه RDC یا Remote Desktop Connection را باز و اطلاعات سیستم مقصد را در آن وارد کرد. در ادامه، نحوه انجام تنظیمات سیستم مقصد ارائه شده است.
تنظیمات سیستم مقصد برای فعالسازی ریموت دسکتاپ
برای فعالسازی دسترسی راه دور باید در سیستم مقصد، وارد Control Panel شده و در بخش System and Security گزینه Allow Remote Access را کلیک کرد:
باید توجه داشت که گزینه «View by» در بالا و سمت راست صفحه اصلی کنترل پنل باید روی حالت «Category» باشد تا منوها مطابق تصویر فوق نمایش داده شوند. سپس پنجره System Properties باز میشود که باید در آن تیک گزینههای زیر را فعال کرد:
- Allow remote assistance connections to this computer
- Allow remote connections to this computer
تصویر صفحه System Properties در ادامه آمده است:
در نهایت با زدن دکمه «OK» تنظیمات ذخیره میشوند و حالا امکان دسترسی ریموت دسکتاپ به این کامپیوتر از طریق شبکه داخلی وجود دارد. اتصال به سیستم مقصد از طریق آدرس IP آن انجام میشود. در ادامه این بخش از مطلب «RDP چیست» توضیحاتی پیرامون تنظیمات آیپی برای ریموت دسکتاپ ارائه شده است.
تنظیمات آی پی برای اتصال ریموت دسکتاپ چگونه است؟
برای دسترسی ریموت دسکتاپ به این کامپیوتر در شبکه داخلی، باید آدرس IP آن مشخص باشد. میتوان IP را به صورت دستی تنظیم کرد تا تغییر نکند. تنظیم IP به صورت دستی ممکن است در برخی موارد مشکلاتی را به همراه داشته باشد. مخصوصاً در صورتی که سیستم مربوطه لپتاپ باشد و اتصال از طریق وایفای انجام شود. چون با انتقال لپتاپ به محل دیگر و استفاده از آن در یک شبکه دیگر ممکن است تنظیمات IP متفاوت باشند و نیاز به غیرفعال کردن یا تغییر تنظیمات IP به وجود بیاید.
میتوان از اپلکیشنهای موبایلی مثل Fing استفاده کرد که شناسایی دستگاههای موجود در شبکه را انجام میدهند. به این ترتیب، در صورت بروز خطا در اتصال، میتوان آیپی را از طریق Fing بررسی کرد و آدرس صحیح را جایگزین کرد تا اتصال برقرار شود. برای اتصال به یک سیستم از راه دور و «خارج از شبکه داخلی» باید تنظیمات Port Forwarding در مودم یا همان روتر انجام شود که در ادامه نحوه انجام آن شرح داده خواهد شد. پیش از آن، آموزش تنظیمات ریموت دسکتاپ در کامپیوتر مبدا شرح داده شده است. برای بستن پورت Remote Desktop در ویندوز نیز باید در پنجره System Properties تیکهای مربوطه را غیرفعال کرد.
آموزش تنظیمات کامپیوتر مبدا برای ریموت دسکتاپ
برای اتصال ریموت دسکتاپ از یک کامپیوتر به کامپیوتر دیگر از نرمافزار کلاینت RDP استفاده میشود. نرمافزار Remote Desktop Connection یا همان RDC یک کلاینت RDP به حساب میآید که به طور پیشفرض روی ویندوز نصب شده است و اکثراً از آن استفاده میشود.
بنابراین، برای اتصال به یک سیستم راه دور باید برنامه Remote Desktop Connection را باز و اطلاعات سیستم مقصد را در آن وارد کرد. برای باز کردن RDC تنها کافی است کلمه Remote را در قسمت Search ویندوز جستجو کرد:
پنجره برنامه Remote Desktop Connection پس از باز شدن به شکل زیر است:
برای دسترسی به تنظیمات کامل باید دکمه «Show Options» را کلیک کرد. جهت اتصال به کامپیوتر مقصد، باید اطلاعات آن را در برنامه RDC وارد کرد. این اطلاعات شامل موارد زیر است:
- آدرس کامپیوتر مقصد (آدرس IP)
- شناسه کاربری ورود به سیستم
- رمز عبور برای ورود به سیستم
آدرس کامپیوتر مقصد همان آدرس IP است. اگر اتصال در یک شبکه محلی (داخلی) انجام میشود، باید IP محلی (Local) سیستم مقصد را در قسمت Computer وارد کرد. در صورتی که اتصال ریموت دسکتاپ از خارج شبکه داخلی باشد، باید آدرس Valid IP که سیستم مقصد از طریق آن به اینترنت متصل است را وارد کرد. شناسه کاربری و رمز عبور نیز همان شناسه و رمزی است که برای ورود به سیستم به صورت محلی از آن استفاده میشود. در صورتی که ورود به سیستم از طریق حساب کاربری مایکروسافت انجام میشود، باید آدرس ایمیل و رمزی که برای ثبتنام و ایجاد حساب کاربری مایکروسافت به کار رفته است را وارد کرد:
با زدن دکمه «Connect» پنجره دیگری باز میشود که باید در آن رمز عبور کامپیوتر مقصد را وارد کرد. اگر کامپیوتر مقصد رمز عبود نداشته باشد، باید این قسمت را خالی گذاشت و OK را کلیک کرد:
پس از زدن دکمه OK، پنجره دیگری به صورت زیر باز میشود که در این مرحله باید دکمه Yes را زد و به این ترتیب ارتباط ریموت دسکتاپ برقرار خواهد شد.
حال در ادامه این بخش از مقاله «RDP چیست» به آموزش تنظیمات فوروارد کردن پورت در روتر برای برقرار اتصال ریموت دسکتاپ از خارج شبکه داخلی و از طریق اینترنت پرداخته شده است.
آموزش تنظیمات Port Forwarding برای ریموت دسکتاپ
در این بخش از مقاله «RDP چیست» به شرح نحوه انجام تنظیمات Port Forwarding برای دسترسی به سیستم مقصد خارج از شبکه داخلی و از طریق اینترنت پرداخته شده است. ابتدا توضیحات مقدماتی در این باره ارائه میشود.
توضیحات مقدماتی آموزش تنظیمات Port Forwarding
برای برقراری اتصال ریموت دسکتاپ بر بستر اینترنت و خارج از شبکه محلی از Valid IP استفاده میشود. Valid IP به آدرس آیپی گفته میشود که در اینترنت و خارج از شبکه محلی معتبر باشد. مشکل اینجاست که معمولاً Valid IP با قطع و وصل شدن اتصال تغییر میکند و برای دسترسی ریموت دسکتاپ باید آدرس جدید را وارد کرد. اما ممکن است راهی برای دیدن IP جدید وجود نداشته باشد یا یافتن آیپی جدید آسان نباشد. بنابراین، بهتر است آدرس IP ثابت باشد تا بتوان به راحتی به آن دسترسی داشت. برای تثبیت آدرس کامپیوتر مقصد از دو روش استفاده میشود:
- استفاده از آیپی استاتیک (Static IP)
- استفاده از DDNS یا همان Dynamic DNS
آیپی استاتیک را باید از ارائه دهنده سرویس اینترنت خریداری کرد. با خرید آیپی استاتیک از ارائه دهنده سرویس، این آیپی به صورت خودکار فعال میشود و اتصال حساب اینترنت مشترک از طریق آن آیپی استاتیک برقرار میشود. آیپی استاتیک معمولاً به صورت ماهیانه در اختیار مشتریان قرار میگیرد. در گذشته سرویسهای DDNS رایگان بسیاری وجود داشت. اما در حال حاضر ممکن است دسترسی به DDNS رایگان چندان ساده نباشد.
برخی از شرکتهای ارائه دهنده سرویس اینترنت از جمله شاتل Valid IP را که مشتری به آن متصل است در پنل کاربری نمایش میدهند. در این حالت نیازی به هیچ یک از دو مورد فوق نخواهد بود و با ورود به پنل کاربری از راه دور میتوان به Valid IP فعلی دسترسی داشت و در نتیجه از ریموت دسکتاپ بدون آیپی استاتیک یا DDNS استفاده کرد. به هر حال در هر یک از حالتهایی که توضیح داده شد، باید تنظیمات Port Forwarding انجام شوند.
تنظیمات Port Forwarding برای اتصال ریموت دسکتاپ
امروزه اکثراً اتصال اینترنت روی مودم یا روتر تنظیم میشود و کمتر اتفاق میافتد که اتصال مستقیماً روی سیستم انجام شود. زمانی که اتصال روی مودم یا روتر ست میشود، برای استفاده از ریموت دسکتاپ از خارج، باید تنظیمات Port Forwarding روی روتر یا مودم انجام شود.
محل این تنظیمات در مودمها و روترهای مختلف متفاوت است و ممکن است نام منوها نیز تفاوت داشته باشند. اما روال کلی انجام تنظیمات مشترک است و باید هر یک از موارد زیر در تنظیمات تعیین شوند:
- نوع پروتکل ارتباطی
- شماره پورت ارتباطی
- آدرس آیپی مقصد
برای انجام تنظیمات Port Forwarding باید ابتدا وارد تنظیمات مودم یا روتر شد. برای ورود به تنظیمات مودم یا روتر باید آدرس آیپی آن را در نوار آدرس مرورگر وارد کرد. این آدرس معمولاً در اکثر مودمها «192.168.1.1» است که باید در نوار آدرس مرورگر (نه در قسمت جستجو) و با صفحه کلید به زبان انگلیسی وارد شود (اعداد فارسی نباشند). با باز شدن صفحه تنظیمات، باید شناسه و رمز ورود به کنسول مودم را وارد کرد. در اکثر مودمها، شناسه و رمز به صورت پیشفرض کلمه «admin» (با حروف کوچک انگلیسی) است.
در غیر اینصورت، IP، شناسه و رمز در برچسب زیر مودم یا دفترچه راهنما درج شده است. پس از ورود به تنظیمات، معمولاً در منوی Advanced قسمتی به نام Port Forwarding وجود دارد که تنظیمات را میتوان در داخل آن انجام داد. اما محل این تنظیمات و نام منوها ممکن است در برندهای مختلف مودم و روتر متفاوت باشد. در برخی از مودمها این تنظیمات در قسمت NAT قرار دارد. به عنوان مثال تنظیمات Port Forwarding در یک مودم D-Link به صورت زیر است:
برای ریموت دسکتاپ ، معمولاً از پروتکل TCP و پورت 3389 هم برای پورت داخلی و هم پورت خارجی استفاده میشود. در قسمت Private IP یا Destination IP نیز باید آیپی محلی یا همان آیپی شبکه داخلی سیستم مقصد را وارد و تنظیمات را ذخیره کرد. PVC هم مربوط به شماره PVC است که اتصال اینترنت روی آن برقرار شده است. در بیشتر مودمها اتصال روی PVC صفر برقرار میشود. معمولاً تنظیمات PVC در حالت پیشفرض روی اتصال اینترنت قرار میگیرد و نیازی به تغییر آن نیست. حال برای اتصال به سیستم مقصد از طریق نرمافزار RDC در سیستم مبدا باید به جای آیپی محلی، Valid IP مقصد (که میتواند آیپی استاتیک یا دامنه DDNS باشد) را وارد کرد. باقی تنظیمات یکسان هستند و هیچ تغییری نمیکنند.
کلاینت RDP اندروید چیست؟
شرکت مایکروسافت یک اپلیکیشن کلاینت RDP را به نام «RD Client» برای سیستم عامل اندروید تولید و ارائه کرده است. با استفاده از یک دستگاه اندرویدی مثل گوشی موبایل یا تبلت میتوان از طریق اپلیکیشن RD Client به سرویس RDP دسترسی داشت و درست مثل برنامه Remote Desktop Connection به یک سرور RDP یا همان کامپیوتر مقصد متصل شد.
در بهروزرسانیهای جدید اپلیکیشن RD Client تغییرات و بهبودهای زیادی اعمال شده و تجربه کاربری آن بسیار مطلوب است. تنها مشکل و محدودیت در استفاده از اپلیکیشن RD Client را میتوان کوچک بودن صفحه اکثر گوشیهای اندرویدی در نظر گرفت که کار با آیکنها و منوهای کوچک ویندوز را دشوار میکند. زیرا سیستمعامل ویندوز برای کار با کامپیوترهای دسکتاپ طراحی شده است که مانیتورهای بزرگ و حداقل ۱۱ اینچی دارند.
استفاده از اپلیکیشن RD Client بسیار ساده است و تنها با دریافت آن از یک فروشگاه اندرویدی مثل Google Play و نصب آن روی دستگاه میتوان درست مثل RDC از آن استفاده کرد. به این صورت که با زدن دکمه به اضافه باید آدرس، شناسه کاربری و رمز عبور سیستم مقصد را در آن وارد و ذخیره کرد. پس از ذخیره تنظیمات، یک آیتم اتصال جدید در صفحه خانه ایجاد میشود که با لمس آن، RD Client اتصال به مقصد را آغاز میکند. در صورتی که هیچ مشکلی در تنظیمات وجود نداشته باشد، اتصال برقرار و دسترسی به سیستم مقصد ایجاد میشود.
سایر مباحث و موضوعات مهم پیرامون پروتکل RDP یا همان ریموت دسکتاپ در ادامه مقاله «RDP چیست» پوشش داده شدهاند.
ویژگیهای RDP چه هستند؟
از جمله ویژگیهای پروتکل RDP مایکروسافت میتوان به رمزنگاری ارتباط، قابلیتهای کاهش پهنای باند، قطع اتصال سیار، کانالهای مجازی، کنترل از راه دور و سایر موارد اشاره کرد. حال در ادامه مقاله RDP چیست هر یک از ویژگیهای RDP شرح داده شدهاند.
ویژگیهای RDP: رمزنگاری ارتباط
RDP از سیستم رمزنگاری امنیتی RSA RC4 بهره میبرد. RC4 یک سیستم رمزگذاری جریانی برای برقراری امنیت مقادیر کوچک داده و جهت برقراری ارتباط امن از طریق شبکه طراحی شده است. ادمینهای شبکه میتوانند از میان یک کلید ۵۶ یا ۱۲۸ بیتی یکی را برای رمزنگاری دادهها انتخاب کنند.
ویژگیهای RDP: قابلیتهای کاهش پهنای باند
RDP از ساز و کارهای مختلفی برای کاهش میزان دادههای منتقل شده از طریق یک اتصال شبکه پشتیبانی میکند. این ساز و کارها فشردهسازی داده، ذخیره مداوم بیتنگاشتها (Bitmaps) و ذخیره کاراکترهای چاپی (Glyphs) و فرگمنتها در RAM را شامل میشوند. بیتمپ یا بیتنگاشت روشی است که به وسیله آن یک فضای نمایش (نظیر یک فایل تصویر گرافیکی) به همراه رنگ هر یک از پیکسلها تعریف میشود. در اتصالهایی با پهنای باند ضعیف، ذخیرهسازی مداوم بیتنگاشت میتواند بهبود قابل توجهی در عملکرد و کارایی RDP به وجود آورد. این مسئله مخصوصاً زمانی صادق است که اپلیکیشنهایی دارای بیتنگاشتهای بزرگ در حال اجرا باشند.
ویژگیهای RDP: قطع اتصال سیار
کاربر میتواند به اختیار خود نشست ریموت دسکتاپ را بدون خارج شدن از سیستم قطع کند. وقتی که کاربر از طریق همان سیستم یا سیستم دیگری مجدداً وارد سیستم راه دور شود، اتصال به نشست قطع شده دوباره برقرار خواهد شد. زمانی که نشست یک کاربر به صورت ناگهانی به دلیل قطعی سیستم کلاینت یا قطعی شبکه به پایان برسد، ارتباط کاربر قطع میشود، اما از سیستم خارج نخواهد شد.
ویژگیهای RDP: کانالهای مجازی
با استفاده از معماری کانال مجازی RDP، اپلیکیشنهای فعلی قابل تقویت شدن هستند و میتوان اپلیکیشنهای جدیدی را برای افزودن ویژگیهایی توسعه داد که نیاز به اتصال بین دستگاه کلاینت و اپلیکیشن اجرا شده را در یک جلسه ریموت دسکتاپ دارند.
ویژگیهای RDP: کنترل از راه دور
کارکنان بخش پشتیبانی IT در یک سازمان میتوانند با استفاده از یک نشست ریموت دسکتاپ به کامپیوتر سایر کارکنان متصل شده و از راه دور مشکلات مرتبط با پشتیبانی IT را شناسایی و برطرف کنند. این امکان در صورتی وجود خواهد داشت که سیستم عامل کامپیوتری که دچار مشکل فنی است به طور کامل اجرا شده و به شبکه متصل باشد. علاوه بر موارد فوق، RDP ویژگیهای زیر را نیز شامل میشود:
- تعیین مسیر گرفتن پرینت: اپلیکیشنهایی که در یک نشست ریموت دسکتاپ در حال اجرا هستند میتوانند از پرینتر متصل به دستگاه کلاینت استفاده و فایلهای مورد نیاز را چاپ کنند.
- نگاشت کلیپبورد: کاربران میتوانند متن و تصاویر گرافیکی را بین اپلیکیشنهای اجرا شده در کامپیوتر محلی و اپلیکیشنهای واقع در کامپیوتر راه دور حذف یا آنها را کپی و الصاق کنند.
- متعادلسازی بار شبکه: RDP از متعادلسازی بار شبکه (NLB) بهره میبرد.
- هدایت مسیر صدا، درایو، پورت و پرینتر تحت شبکه: به عنوان مثال، صداهایی که در کامپیوتر راه دور رخ میدهند در کامپیوتر کلاینت قابل پخش هستند.
- پشتیبانی از عمق رنگ ۲۴ بیت
- عملکرد بهبودیافته در اتصالهایی با سرعت پایین (Dial Up) از طریق پهنای باند تقلیلیافته
- تایید هویت کارت هوشمند از طریق خدمات ریموت دسکتاپ
حال پس از بیان ویژگیهای RDP ، در ادامه مقاله «RDP چیست» به شرح کاربردهای پروتکل ریموت دسکتاپ پرداخته شده است.
کاربرهای RDP چه هستند؟
قابلیتهای ریموت دسکتاپ برای انجام کارهای مختلفی به کار گرفته میشوند. در این بخش از مقاله «RDP چیست» برخی از کاربردهای اتصال از راه دور به کامپیوتر دسکتاپ فهرست شدهاند:
- استفاده از RDP در سازمانها برای اتصال به سرور RDP از طریق کلاینت RDP به جای استفاده از یک PC کامل برای هر کلاینت.
- دسترسی به کامپیوتر محل کار از منزل در طول سفر
- دسترسی به کامپیوتری در منزل از محلی دیگر
- رفع مشکل یک کامپیوتر از راه دور
- اجرای وظایف مربوط به ادمین در یک سازمان
- ارائه یا نمایش چیزی مثل یک روند یا یک برنامه نرمافزاری کاربردی
- خاموش کردن سیستم مقصد از راه دور
ممکن است کاربردهای دیگری هم برای پروتکل RDP وجود داشته باشد که در اینجا به آنها اشاره نشده است. در ادامه نوشته «RDP چیست» مزایا و معایب RDP شرح داده شدهاند.
مزایا و معایب RDP چیست؟
با هدف شناخت بیشتر پروتکل ریموت دسکتاپ ، در این بخش از مقاله «RDP چیست» به شرح مزایا و معایب RDP پرداخته شده است. ابتدا برخی از مزایای RDP بیان شدهاند.
مزایای RDP چیست؟
از جمله مزایای RDP میتوان به امنیت، انعطافپذیری و هزینه پایین اشاره کرد. در ادامه هر یک از مزایای RDP فهرست شده است:
- امنیت: همانطور که بیان شد، از پروتکلهای امنیتی مختلفی در ارتباط RDP برای رمزنگاری دادهها استفاده میشود.
- انعطافپذیری: پروتکل RDP محدودیتهای سختافزاری و نرمافزاری بسیار اندکی دارد. میتوان حتی با یک کامپیوتر PC قدیمی نیز از ریموت دسکتاپ استفاده کرد. با یک RDC نسخه قدیمی میتوان به سروری با نسخه جدیدتر متصل شد و از امکانات بهروز شده آن استفاده کرد. علاوه بر آن، تمهیداتی برای سازگاری با سرعت پایین اتصال شبکه دیده شده است. به گونهای که فناوری به کار گرفته شده در RDP میتواند خود را با سرعت شبکه وفق دهد. بنابراین میتوان گفت RDP از انعطافپذیری بالایی برخوردار است.
- هزینه پایین: معمولاً در استفاده از یک چارچوب ناحیه کاری راه دور، قرار دادن منابع در کپیهای مختلفی از چندین بسته برنامهنویسی تجاری اهمیتی ندارد. زیرا میتوان تنها به وسیله یک ماشین آنها را به کار گرفت. همچنین، لازم نیست PCهایی که برای اتصال به ماشین میزبان استفاده میشوند، دستگاههای گران قیمتی باشند.
- رابط گرافیکی: یکی از نقاط قوت RDP این است که در اتصال به دستگاه راه دور از رابط گرافیکی دقیقاً مطابق با رابط ویندوز استفاده میشود.
- RDP به طور نسبی از لحاظ نرمافزاری سبک است.
- تقریباً میتوان از تمام امکانات سختافزاری ورودی/خروجی ماشین محلی در ماشین راه دور استفاده کرد.
- میتوان فایلها را از کامپیوتر محلی به کامپیوتر راه دور کپی کرد و برعکس.
حال در ادامه مقاله «RDP چیست» به شرح معایب RDP پرداخته شده است.
معایب RDP چه هستند؟
از جمله معایب RDP میتوان به وابستگی به شبکه و نیاز به داشتن RDS قدرتمند اشاره کرد. در ادامه این بخش از نوشته «RDP چیست» توضیحات بیشتری پیرامون هر یک از معایب RDP ارائه شده است.
- نیاز به RDS قدرتمند: در صورتی که نیاز به استفاده از RDP در سطح وسیع وجود داشته باشد، نیاز به یک سرویس ریموت دسکتاپ (RDS) قدرتمند وجود دارد تا بتواند تمام اتصالهای RDP را نظارت کند (RDS در بخش مقایسه VDI و RDS شرح داده شده است).
- نیاز به شبکه قدرتمند: برای اتصال موفقیتآمیز کامپیوتر کلاینت به کامپیوتر میزبان، نیاز به یک اتصال شبکه قابل اطمینان وجود دارد. در غیر اینصورت، ممکن است کل سرویس ریموت دسکتاپ از کار بیوفتد.
- از دیگر معایب RDP میتوان به ارائه شدن آن تنها برای نسخههای Pro ،Business یا Ultimate اشاره کرد.
- با متصل شدن به یک PC از راه دور، کامپیوتر مقصد برای استفاده محلی قفل میشود و کاربر محلی نمیتواند همزمان از سیستم استفاده کند یا ببیند که فرد متصل شده از راه دور چه کاری انجام میدهد.
پس از شرح ویژگیها، کاربردها، مزایا و معایب پروتکل RDP ، اکنون نوبت به شرح تاریخچه پروتکل ریموت دسکتاپ فرا رسیده است. در ادامه مطلب «RDP چیست» به این مهم پرداخته میشود.
تاریخچه RDP
در این بخش از مقاله «RDP چیست» به شرح تاریخچه RDP پرداخته شده است. همه نسخههای سیستم عامل ویندوز شرکت مایکروسافت از ویندوز XP به بعد، دارای یک «کلاینت اتصال ریموت دسکتاپ» (Remote Desktop Connection | RDC) که پیشتر به آن کلاینت «Terminal Services» گفته میشد.
نسخه این RDCها طبق نسخه سیستم عامل یا به وسیله آخرین بسته خدماتی (Service Pack) اعمال شده تعیین میشوند. سرور خدمات ترمینال (Terminal Services server) به عنوان یک قابلیت رسمی در ویندوز NT 4.0 ویرایش سرور ترمینال (Terminal Server Edition) تحت پشتیبانی قرار گرفت و در سال ۱۳۷۷ خورشیدی (۱۹۹۸ میلادی) منتشر شد. نسخههای بعدی که از سرور RDP پشتیبانی میکنند شامل موارد زیر است:
- ویندوز سرور ۲۰۰۰
- همه ویرایشهای ویندوز XP به غیر از ویرایش Home
- ویندوز سرور ۲۰۰۳
- Windows Home Server
- شاخصهای بنیادین ویندوز برای رایانههای قدیمی در ویندوز ویستا ویرایشهای Enterprise ،Ultimate و Business
- ویندوز سرور ۲۰۰۸
- Windows Server 2008 R2
- Windows 7 Professional
- تمامی نسخههای ویندوز ۷ به بعد
مایکروسافت کلاینت مورد نیاز برای اتصال به نسخههای جدیدتر RDP را برای سیستم عاملهای قدیمی فراهم میکند. با توجه به اینکه بهسازیها و امکانات جدید سرور در سطوح پایینتر در دسترس نیستند، قابلیتهایی که در هر یک از نسخههای جدیدتر RDP ارائه میشوند تنها در صورتی در سیستم عاملهای قدیمی قابل استفاده هستند که اتصال به نسخههای جدیدتر «RDP سرور» از این سیستم عاملهای قدیمیتر انجام شود. بهرهمندی از ویژگیهای جدید در صورت استفاده از نسخههای RDP سرور قدیمی امکانپذیر نخواهد بود. در ادامه این بخش از مقاله «RDP چیست» به شرح چگونگی پیدایش اولین نسخه منتشر شده از RDP پرداخته شده است.
نسخه ۴ ریموت دسکتاپ
بر اساس پروتکل اشتراکگذاری اپلیکیشن ITU-T T.128 از سری پیشنهادی T.120، اولین نسخه RDP که نسخه ۴ نام دارد به عنوان «Terminal Services» و بخشی از محصول Windows NT 4.0 Server توسط مایکروسافت معرفی شد. این نسخه بر فناوری MultiWin شرکت Citrix متکی است که پیشتر به عنوان بخشی از Citrix WinFrame در پوسته ویندوز NT 3.51 جهت پشتیبانی از چند کاربر و نشست همزمان ورود به سیستم ارائه شده بود. مایکروسافت به دنبال دریافت مجوز فناوری MultiWin از شرکت سیتریکس بود.
کتابخانههای پیوند پویا (DLL) ارائه شده توسط سیتریکس در Terminal Services ویندوز NT 4.0 همچنان به جای حق نشر مایکروسافت، تحت حق نشر (کپیرایت) شرکت سیتریکس هستند. در نسخههای بعدی ویندوز، پشتیبانی لازم برای ریموت دسکتاپ به صورت مستقیم توسط مایکروسافت و بدون استفاده از DLLهای سیتریکس انجام شده است. فناوری اشتراکگذاری کاربرد T.128 توسط مایکروسافت از شرکت بریتانیایی توسعه نرمافزار Metaswitch تصاحب شده است.
سایر نسخههای RDP در ادامه فهرست شدهاند:
- نسخه ۵
- نسخه ۵.۱
- نسخه۵.۲
- نسخه ۶
- نسخه ۶.۱
- نسخه ۷
- نسخه ۷.۱
- نسخه ۸
- نسخه ۸.۱
- نسخه ۱۰
حال پس از ارائه تاریخچه RDP ، به این سوال در ادامه نوشته «RDP چیست» پاسخ داده شده است که نحوه عملکرد RDP چگونه است؟
پروتکل RDP چگونه کار میکند ؟
برای دسترسی به کامپیوتر دیگری از راه دور، کاربر باید از یک نرمافزار RDP Client استفاده کند و همچنین در کامپیوتر مقصد باید نرمافزار RDP سرور را راهاندازی کرد. در سمت سرور، RDP از «درایور ویدیو» برای رندر کردن خروجی صفحه نمایش به وسیله تبدیل اطلاعات رندر شده به بستههای شبکه با به کارگیری پروتکل RDP و ارسال آنها به کلاینت از طریق شبکه استفاده میکند.
در سمت کلاینت، RDP دادههای رندر شده را دریافت میکند و بستهها را به فراخوانیهای متناظر API واسط دستگاه گرافیکی (GDI) ویندوز تفسیر میکند. برای مسیر ورودی، رویدادهای ماوس و کیبورد کلاینت، از کلاینت به سرور هدایت میشوند. در سمت سرور، RDP از درایورهای صفحه کلید و ماوس مربوط به خودش استفاده میکند تا آن رویدادهای صفحه کلید و ماوس ارسال شده را دریافت کند.
در یک نشست ریموت دسکتاپ ، تمام متغیرهای محیطی (برای مثال، متغیرهایی که عمق رنگ را مشخص میکنند یا متغیرهایی که فعال یا غیرفعالسازی تصویر پس زمینه را انجام میدهند) به وسیله تنظیمات اتصال RCP-TCP تعیین میشوند. این مسئله در مورد تمام توابع و متدهایی صدق میکند که متغیرهای محلی را در «مرجع اتصال وب ریموت دسکتاپ» و «واسط فراهم کننده WMI سرویسهای ریموت دسکتاپ» تنظیم میکنند.

اتصال در پروتکل RDP بر اساس چندین کانال صورت میگیرد و به لحاظ تئوری، RDP تا ۶۴ هزار کانال یکتا را پشتیبانی میکند. کارکرد اساسی RDP، انتقال صفحه نمایش (دستگاه خروجی) از سرور راه دور به گیرنده (کلاینت) و از طرف دیگر انتقال دستگاههای ورودی مثل ماوس و کیبورد از کلاینت به سرور است. ارتباط در یک اتصال RDP بسیار نامتقارن است، زیرا جریان انتقال داده بیشتر از سمت سرور به کلاینت برقرار است. امنیت ارتباط RDP به طور پیشفرض با استفاده از رمزگذاری بلوکی به نام RSA RC4 برقرار میشود.
DVDI و RDS دو مدل مختلف استفاده از پروتکل RDP هستند که در ادامه مقاله RDP چیست به شرح هر یک و مقایسه آنها پرداخته شده است.
مقایسه VDI و RDS
RDP پروتکلی است که کلاینتها (مثل لپتاپها و کامپیوترهای دسکتاپ) را به سیستم عاملها یا اپلیکیشنهایی در دستگاه راه دور متصل میکند. معمولاً دستگاه راه دور یک سرور خواهد بود اما در برخی موارد ممکن است دستگاه راه دور یک کامپیوتر شخصی هم باشد.
RDP در دو مدل مختلف VDI و RDS به کار گرفته میشود. در تصویر زیر سعی شده است که یک دید کلی و خلاصه شده از مفاهیم نشان داده شود و در ادامه هر یک با جزئیات بیشتر شرح داده خواهند شد.
حال در ادامه بخش مقایسه VDI و RDS در مطلب «RDP چیست» به این سوال پاسخ داده شده است که VDI چیست؟
VDI چیست؟
«Virtual Desktop Infrastructure» به اختصار VDI خطاب میشود و ترجمه آن «زیرساخت دسکتاپ مجازی» است. در VDI، کلاینت به یک میزبان اختصاصی متصل میشود که نسخه کلاینت از ویندوز را اجرا میکند. مثلاً این میزبان اختصاصی میتواند یک ویندوز ۷ یا ویندوز ۱۰ را درست مثل ویندوزی که روی یک لپتاپ قابل نصب است در اختیار کاربر قرار دهد. معمولاً میزبان یک ماشین مجازی خواهد بود. اما به لحاظ نظری میتواند یک PC یا همان کامپیوتر شخصی هم باشد (به شرطی که به شبکه و برق متصل باشد). آن ماشین مجازی که روی میزبان اجرا میشود به طور اختصاصی در اختیار کلاینت خواهد بود و قابل به اشتراکگذاری نیست.
در VDI، علاوه بر این که کاربران نهایی میتوانند به یک سیستم عامل راه دور اختصاصی دسترسی یابند، همچنین میتوانند حقوق یک ادمین را هم داشته باشند و خودشان اپلیکیشنهای دسکتاپ نصب کنند و کارهای دیگر انجام دهند. از دیدگاه زیرساختی، VDI خدماتی گران قیمت به حساب میآید، زیرا برای هر کاربر ماشین مجازی اختصاصی در نظر گرفته میشود که یک نسخه از ویندوز را در آن اجرا میشود و هیچ نوع به اشتراکگذاری منابعی در میان نیست. حال برای کامل شدن مقایسه، باید به معرفی و شرح چیستی «Remote Desktop Services» یا همان RDS پرداخته شود. این کار در ادامه این بخش از نوشته «RDP چیست» انجام شده است.
Remote Desktop Services چیست؟
سرویسهای ریموت دسکتاپ که به اختصار RDS خوانده میشوند، یک فناوری مبتنی بر سرور به حساب میآید. در گذشته این فناوری «Terminal Server» نام داشت. RDS در نسخه ویندوز معمولی مثل ویندوز ۱۰ برای PC اجرا نمیشود، بلکه RDS یکی از سرویسهای ویندوز سرور به شمار میرود. بزرگترین مزیت RDS این است که میتوان منابع زیرساختی را به اشتراک گذاشت. یعنی چندین کاربر میتوانند به یک سیستم عامل به طور همزمان دسترسی داشته باشند. اما کاربران نهایی به چه چیزی دسترسی دارند؟ این دسترسی میتواند یک کامپیوتر دسکتاپ کامل باشد و یا تنها اجازه دسترسی به یک اپلیکیشن در کامپیوتر دسکتاپ وجود داشته باشد.
در مورد دسترسی کامل، این دسکتاپ یک ویندوز سرور خواهد بود که معمولاً پوستهای برای آن ایجاد شده است تا شبیه به یک نسخه دسکتاپ از ویندوز به نظر برسد. اما چون واقعاً یک نسخه دسکتاپ نیست، امکان دارد برخی از اپلیکیشنهای دسکتاپ روی آن اجرا نشوند. RDS چارچوبی از نقشها به حساب میآید که در ادامه در موردش توضیح داده شده است. در مورد یک اتصال VDI ساده نیازی به تمام این نقشها وجود ندارد. تا اینجا شرح داده شد که RDS میتواند برای دسترسی دادن به یک دسکتاپ کامل و همچنین دسترسی به تنها یک اپلیکیشن مورد استفاده قرار بگیرد.
برای حالت دوم یعنی تنها امکان دسترسی به یک برنامه خاص، بحث «Remote App» مطرح میشود. Remote App زیرمجموعهای از مایکروسافت RDS است. Remote App این برداشت را در کاربر ایجاد میکند که او تنها به یک اپلیکیشن (برنامه) به صورت ایزوله شده دسترسی دارد و هیچ سیستم عاملی پشت آن برنامه نیست. در حالت اول یعنی ارائه یک دسکتاپ کامل، از Remote Desktop یا همان RDP استفاده میشود و اپلیکیشنها (مثل برنامه اکسل) روی چنین دسکتاپی نصب میشوند. سپس کاربر نهایی از راه دور ویندوز خود (که در واقع ویندوز سرور است) را اجرا میکند و مثلاً در داخل آن برنامه اکسل را باز میکند.
باید در نظر داشت که سرویس Remote App تنها از Windows Server 2008R2 به بعد ارائه شده است. به لحاظ فنی، میتوان از فناوری RDS برای اتصال به دسکتاپهای مبتنی بر VDI نیز استفاده کرد. این بدان معناست که نه تنها میتوان از طریق RDP به یک VDI متصل شد، بلکه میتوان از طریق یک RDP به وسیله یک پلتفرم RDS نیز به یک VDI اتصال ایجاد کرد. با توجه به این حقیقت که زیرساختها اشتراکی هستند، کاربران نهایی نمیتوانند از دسترسی ادمین بهرهمند شوند. اگرچه از دیدگاه اقتصادی، در RDS زیرساختهای مصرفی در مقایسه با VDI به میزان قابل توجهی کمتر است. حال، آشنایی با مفهوم RDP Wrapper در ادامه نوشته «RDP چیست» حاصل میشود.
RDP Wrapper چیست؟
RDP Wrapper کتابخانهای با هدف برقراری پشتیبانی از میزبانی ریموت دسکتاپ و نشستهای همزمان RDP روی سیستمهایی با قابلیتهای تقلیل یافته جهت استفاده خانگی است. RDP Wrapper به عنوان لایهای بین مدیریت کنترل خدمات (Service Control Manager) و Terminal Services (یا همان RDS) عمل میکند.
بنابراین، فایل «termsrv.dll» اصلی دست نخورده باقی میماند. همچنین، این روش مقاومت بالایی در برابر بهروزرسانیهای ویندوز نشان میدهد. در ادامه برخی اطلاعات پیرامون RDP Wrapper ارائه شده است.
- کد منبع این کتابخانه در گیتهاب در دسترس است.
- RDP Wrapper فایل termsrv.dll را patch نمیکند، بلکه termsrv را با پارامترهای متفاوتی بارگذاری میکند.
- امکان توزیع مجدد RDPWInst و RDPChecker بدون پوشه توسعه و فایلهای Batch وجود دارد.
- RDPWInst را میتوان برای نصب بدون مراقبت و استقرار به کار برد.
- Windows 2000 و ویندوز سرور 2003 تحت پشتیبانی برای استفاده از RDP Wrapper نیستند.
ادامه این بخش از مقاله «RDP چیست» به شرح ویژگیهای کلید RDP Wrapper اختصاص دارد.
ویژگیهای کلید RDP Wrapper
در این بخش از معرفی RDP Wrapper در مقاله «RDP چیست» فهرستی از ویژگیهای کلیدی RDP Wrapper ارائه شده است:
- سرور میزبان RDP در تمام ویرایشهای ویندوز از ویندوز ویستا به بعد با RDP Wrapper پشتیبانی میشود.
- امکان استفاده از نشست کنسول و نشست ریموت دسکتاپ به طور همزمان در RDP Wrapper وجود دارد.
- در RDP Wrapper میتوان از یک شناسه کاربری به طور همزمان برای ورود به سیستم محلی و از راه دور اقدام کرد.
- در RDP Wrapper تا ۱۵ نشست همزمان پشتیبانی میشود (در واقع محدودیت واقعی به قدرت سختافزاری سیستم و نسخه سیستم عامل بستگی دارد).
- قابلیت Shadowing کنسول و نشست RDP (با استفاده از Task Manager در ویندوز ۷ و نسخههای پایینتر و همچنین با استفاده از RDC یا Remote Desktop Connection در ویندوز ۸ و نسخههای پس از آن)
- پشتیبانی کامل از چند مانیتور برای میزبان RDP
در ادامه مقاله «RDP چیست» به معرفی و شرح مختصر پروتکلها و استانداردهایی پرداخته شده است که RDP بر اساس آنها عمل میکند.
پروتکل RDP بر اساس چه استانداردهایی کار میکند؟
پروتکل RDP به استانداردها و پروتکلهایی شامل x.224 ،TPKT ،TLS ،T.125 MCS و TCP وابسته است.
پشته پرتکل RDP به صورت زیر است:
ارسال و دریافت داده از طریق پشته RDP اساساً با مدل ارتباطی هفت لایه OSI یکسان است. پیش از ارسال به طرف مقابل از طریق کابل شبکه، دادههای انتقالی در UDP مشابه مدل OSI قطعهبندی میشوند، به یک کانال هدایت میشوند و عملیات دیگری نظیر رمزنگاری، بستهبندی و فریمبندی روی دادهها انجام میشود. پس از رسیدن به مقصد نیز همین فرآیند به صورت معکوس انجام میشود. در ادامه این بخش از مطلب «RDP چیست» ، برخی از پروتکلها و استانداردهای به کار رفته در پشته RDP شرح داده شدهاند.
TPKT چیست؟
TKPT به صورت «سرویس انتقال ISO مبتنی بر TCP» تعریف میشود. TPKT امکان تبادل واحدهای اطلاعاتی را برای نقاط انتهایی در شبکه فراهم میکند. به این واحدهای اطلاعاتی، «واحدهای پروتکل حمل و نقل داده» (TPDU یا PDU) گفته میشود.
X.224 چیست؟
X.224 یک پروتکل انتقالی اتصالگرا است. این پروتکل خدمات انتقال مبتنی بر اتصال را فراهم میکند. RDP از این استاندارد در درخواست و پاسخ اتصال اولیه استفاده میکند.
T.125 MCS چیست؟
T.125 MCS یک سرویس ارتباطی چندنقطهای است. این سرویس امکان برقراری ارتباط و مدیریت چندین کانال را برای RDP فراهم میکند. پیادهسازی انتزاعی که مایکروسافت از پروتکل RDP ارائه کرده، تمام پیچیدگیهای پشته پروتکل را از بین برده است تا توسعهدهندگان بتوانند به سادگی افزونههایی برای پروتکل RDP تولید کنند. حال پس از معرفی پشته پروتکل RDP و اجزای آن، در ادامه مقاله «RDP چیست» به شرح فرایند برقراری اتصال RDP پرداخته شده است.
اتصال RDP به چه صورت انجام میشود؟
در این بخش از مطلب «RDP چیست» به شرح مباحث اساسی یک اتصال RDP پرداخته شده است. باید در نظر داشت که برخی از جزئیات برای حفظ سادگی حذف شدهاند. ابتدا شرحی از توالی اتصال RDP یا مراحل اتصال RDP ارائه میشود.
توالی اتصال RDP چگونه است؟
اتصال RDP را میتوان به چند مرحله تجزیه کرد. توالی اتصال RDP شامل ۹ مرحله میشود.
این مراحل در ادامه فهرست شدهاند:
- شروع اتصال
- تبادل تنظیمات اساسی
- اتصال کانال
- به اجرا در آوردن تمهیدات امنیتی
- تبادل تنظیمات به صورت ایمن
- صدور مجوز
- تبادل قابلیتها
- نهاییسازی اتصال
- تبادل داده
هر یک از این مراحل در ادامه این بخش از نوشته «RDP چیست» شرح داده شدهاند.
مرحله ۱: شروع اتصال RDP
اتصال RDP با استفاده از یک درخواست اتصال PDU مبتنی بر استاندارد X.224 آغاز میشود. همانطور که پیشتر نیز بیان شد، PDUها واحدهای اطلاعاتی یا واحدهای پروتکل حمل و نقل داده هستند. این بسته درخواست حاوی یک درخواست مذاکره RDP است که تعدادی پرچم اتصال و پروتکلهای امنیتی پشتیبانی شده توسط کلاینت را نگهداری میکند. این پروتکلهای امنیتی میتوانند در یکی از دو دسته زیر قرار بگیرند:
- امنیت RDP استاندارد
- رمزنگاری پیشفرض RSA RC4
- رمزنگاری RDP پیشرفته
- TLS
- CredSSP که به صورت TLS + NTLM/Kerberos است.
- RDSTLS
پس از ارسال درخواست توسط کلاینت، ارتباط با استفاده از تایید اتصال PDU مبتنی بر X.224 به وسیله سرور تصدیق میشود. این بسته حاوی پاسخ مذاکره RDP است که جهت آگاهسازی کلاینت از پروتکل امنیتی انتخاب شده (در میان پروتکلهای تحت پشتیبانی کلاینت) استفاده میشود. پروتکل امنیتی انتخاب شده در تمام طول مدت حیات اتصال به کار گرفته خواهد شد. از این نقطه به بعد، دادههای آتی به صورت واحدهای داده PDU مبتنی بر پروتکل انتقال X.224 بستهبندی خواهند شد.
مرحله ۲: تبادل تنظیمات اساسی
در مرحله دوم، تنظیمات اولیه و اساسی بین کلاینت و سرور با استفاده از یک واحد PDU اولیه MCS Connect و واحد PDU پاسخدهی MCS Connect به ترتیب مبادله میشوند.
این تنظیمات (هم از جانب کلاینت و سرور) شامل موارد زیر هستند:
- دادههای هستهای (اصلی): نسخه RDP، نسبت تصویر صفحه نمایش دسکتاپ، عمق رنگ، اطلاعات صفحه کلید، نام میزبان، اطلاعات نرمافزاری کلاینت (شناسه محصول، شماره ساخت) و سایر موارد
- دادههای امنیتی: متدهای رمزنگاری، اندازه کلیدهای نشست (Session)، سرور تصادفی (بعداً برای ایجاد کلیدهای نشست استفاده میشود و گواهینامه سرور (برخی از این موارد تنها مربوط به استفاده از پروتکل امنیتی استاندارد RDP هستند)
- دادههای شبکه: این دادهها شامل اطلاعات پیرامون کانالهای مجازی درخواست شده و تخصیص داده شده است. این اطلاعات، تعداد کانالها و آرایهای از برخی کانالهای مجازی خاص را در بر دارند. کلاینت نوع دقیق کانالها را در درخواست خود مشخص میکند و در پاسخ، سرور شناسههای این کانالها را فراهم میسازد.
مرحله ۳: اتصال کانال
پس از ایجاد فهرست کانالهای مجازی که در نشست RDP استفاده خواهند شد، نوبت به مرحلهای میرسد که هر یک از اتصالهای کانالها در آن برقرار میشوند. مرحله اتصال کانال خود شامل چند زیرمرحله به صورت زیر است:
- درخواست دامنه MCS Erect: (ارتفاع در دامنه MSC) با توجه به اینکه RDP از توپولوژیهای (شکلهای ساختاری) پیشرفته بهره نمیبرد، مقدار درخواست دامنه MCS Erect صفر خواهد بود.
- پیوست MCS درخواست کاربر: درخواست برای یک شناسه کانال کاربر
- پیوست MCS تایید کاربر: شناسه کانال کاربر
- کانال MCS به درخواستها و تاییدها میپیوندد: کلاینت شروع به درخواست برای پیوستن به کانالهای مجازی به وسیله شناسههای خود میکند. این کار با شروع از کانال کاربر، کانال ورودی-خروجی و ادامه دادن با کانالهای مجازی مذاکره شده در تبادل ابتدایی تنظیمات انجام میشود. سرور نیز هر پیوند کانال موفق را به نوبت تایید خواهد کرد.
از این پس، دادههای بعدی ارسال شده توسط کلاینت در یک واحد PDU درخواست ارسال داده MCS و دادههای ارسالی توسط سرور در یک واحد PDU دلالت (Indication) ارسال داده MCS بستهبندی خواهند شد. حالا دادهها میتوانند از طریق کانالهای مجازی هدایت شوند.
مرحله ۴: به اجرا در آوردن تمهیدات امنیتی
کلاینت یک واحد PDU تبادل امنیت ارسال میکند که حاوی کلید تصادفی کلاینت رمزنگاری شده با کلید عمومی سرور است. سپس، کلاینت و سرور از اعداد تصادفی (هم از دادههای امنیتی تبادل تنظیمات ابتدایی و هم از واحد PDU تبادل امنیتی) برای ایجاد کلیدهای رمزنگاری نشست استفاده میکنند. از این مرحله به بعد، ترافیک RDP قابل رمزنگاری است.
مرحله ۵: تبادل تنظیمات به صورت ایمن
در این مرحله، کلاینت یک «واحد PDU اطلاعات کلاینت» (Client Info PDU) رمزنگاری شده حاوی اطلاعات مربوط به نوع فشردهسازی تحت پشتیبانی، دامنه کاربر، نام کاربری، رمز عبور، پوشه فعلی و سایر موارد را ارسال میکند.
مرحله ۶: صدور مجوز
این مرحله برای اجازه دادن به کاربران مجاز جهت اتصال به یک سرور پایانه طراحی شده است. این کار برای این است که بیش از دو اتصال همزمان (که پیشفرض RDP سرور ویندوز است) به یک سرور پشتیبانی شود. این مسئله مشروط به خرید مجوز (گواهینامه) از شرکت مایکروسافت است. در بسیاری از موارد، هیچ سرور RDP دارای گاهینامهای پیکربندی نمیشود. در چنین حالتی، سرور RDP تنها یک PDU به کلاینتی ارسال میکند که گواهینامهاش را تایید کرده است (فقط تا ۲ نشست).
مرحله ۷: تبادل تنظیمات به صورت ایمن
سرور قابلیتهای پشتیبانی شده خود را در یک PDU تقاضای فعال (Demand Active PDU) ارسال میکند. این PDU حاوی ساختاری است که قابلیتهای بسیاری از انواع مختلف دارد. طبق اعلام مایکروسافت، ۲۸ نوع مجموعه قابلیت وجود دارد. انواع اصلی شامل کلیات (نسخه سیستم عامل، فشردهسازی عمومی)، ورودی (نوع صفحه کلید و امکاناتی نظیر پشتیبانی از Fast-Path و سایر موارد) فونتها، کانالهای مجازی، کدکهای بیتنگاشت و بسیاری از موارد دیگر است.
مرحله ۸: نهاییسازی اتصال
کلاینت و سرور چند نوع PDU مختلف تبادل میکنند تا اتصال RDP را نهاییسازی کنند. ارسال تمام این PDUها از سمت کلاینت انجام میشود (PDUها میتوانند یکی پس از دیگری بدون انتظار برای دریافت پاسخ فرستاده شوند) این PDUها شامل موارد زیر هستند:
- PDU همگامسازی کلاینت و سرور: برای همگامسازی شناساگرهای (Identifiers) بین کلاینت و سرور استفاده میشوند.
- PDU کنترل کلاینت و سرور (همکاری): هم کلاینت و هم سرور این PDU را ارسال میکنند تا کنترل مشترک در طول نشست را تعیین کنند.
- PDU کنترل کلاینت (درخواست / اعطای کنترل): کلاینت درخواست برای دریافت کنترل را ارسال میکند و سرور کنترل را در اختیار کلاینت قرار میدهد.
- PDU یا PDUهای فهرست کلیدهای ماندگار: کلاینت فهرستی از کلیدها را به سرور ارسال میکند، هر کلید یک بیتنگاشت کش شده (ذخیره شده) را شناسایی میکند. این کار به کش بیتنگاشت امکان ماندگاری میدهد (برخلاف حالتی که محدود به مدت طول عمر اتصال است). Bitmap Caching ساز و کاری است که برای کاهش ترافیک شبکه مورد نیاز برای انتقال یک خروجی گرافیکی از سرور به کلاینت مورد استفاده قرار میگیرد.
- PDU فهرست یا نقشه فونت: این PDUها قرار بود برای نگهداری اطلاعات درباره فونتها در نشست RDP (نام فونت، میانگین عرض، امضا و سایر موارد) استفاده شوند. اما، به نظر میرسد مایکروسافت از آنها استفاده نمیکند. با این حال، این PDUها همچنان میان کلاینت و سرور تبادل میشوند، اما هیچ دادهای در آنها وجود ندارد (حتی اگر دادهای هم در آنها وجود داشته باشد در مستندات مایکروسافت آمده است که باید از این PDUها چشمپوشی شود.
حال در ادامه این بخش از نوشته «RDP چیست» به شرح مرحله پایانی فرایند اتصال RDP پرداخته شده است.
مرحله آخر: تبادل داده
پس از نهایی شدن اتصال، بخش اصلی دادهای که بین کلاینت و سرور ارسال میشود، دادههای ورودی (از کلاینت به سرور) و دادههای گرافیکی (از سرور به کلاینت) خواهند بود. دادههای دیگری که میتوانند منتقل شوند، شامل اطلاعات مدیریت اتصال و پیامهای کانال مجازی هستند. در ادامه نوشته «RDP چیست» به دادههای ورودی/خروجی تبادل شده پس از برقراری اتصال RDP پرداخته شده است.
ورودی و خروجی پایه: در مدت طول عمر اتصال، کلاینت و سرور دادههای ورودی/خروجی پایه تبادل میکنند. کلاینت ورودی و سرور خروجی را ارسال میکند.
- دادههای ورودی: دادههای ورودی حاوی اطلاعات ماوس و صفحه کلید و همچنین دادههای مربوط به همگامسازی مقطعی (برای مثال وضعیت کلیدهای Num-Lock و Caps-Lock) هستند.
- دادههای خروجی: دادههای خروجی اصلی شامل تصاویر بیتمپ از نشست کاربر در سرور میشود. به علاوه، سرور میتواند اطلاعات صوتی ارسال کند (تنها در قالب صدای بوق ساده در حالت منقطع به همراه مدتدار). این دادههای ورودی/خروجی پایه میتوانند به یکی از دور روش زیر انتقال داده شوند:
- کُند راه (Slow Path): یک PDU معمولی به همراه تمام سربرگهای پشته پروتکل RDP
- تند راه (Fast Path): همانطور که از نامش پیداست، این روش هم برای کاهش میزان دادههای انتقالی و هم کاهش میزان پردازش مورد نیاز ایجاد شده است.
کانالها نقش اساسی در RDP ایفا میکنند. بدین سبب، ادامه مقاله «RDP چیست» به شرح کانالها در RDP اختصاص دارد.
کانالها در RDP
در پروتکل RDP اکثر دادهها از طریق کانالهای مختلف (لایه MCS) انتقال داده میشوند. دو نوع کانال اصلی وجود دارد. این کانالها شامل کانالهای مجازی ایستا (Static Virtual Channels) و کانالهای مجازی پویا (Dynamic Virtual Channels) هستند. در ادامه این بخش از مقاله «RDP چیست» هر یک از این انواع کانالهای مجازی شرح داده شدهاند.
کانالهای مجازی ایستا در RDP
کانالهای مجازی ایستا که به اختصار SVC خوانده میشوند، امکان برقراری ارتباط میان اجزا کلاینت و سرور را از طریق اتصال داده اصلی RDP فراهم میکنند. حداکثر ۳۱ کانال مجازی ایستا در هر اتصال ایجاد میشوند و هر کانال به عنوان یک جریان داده مستقل عمل میکند. این کانالها ایستا هستند زیرا در فاز تبادل تنظیمات پایه در طول آغاز اتصال درخواست و ایجاد شدهاند و در طول نشست به هیچ عنوان تغییر نخواهند کرد.
تمام SVCها به طور یکسان ایجاد نشدهاند. برخی از آنها به طور پیشفرض باز هستند و برخی در طول فاز تبادل تنظیمات پایه مورد مذاکره قرار میگیرند. SVCهایی که به طور پیشفرض ایجاد میشوند برای عملکرد اتصال RDP بسیار اهمیت دارند. در حالی که، سایر SVCها افزونههای متفاوتی را برای این پروتکل فعال و فراهم میکنند. مثالهایی برای SVCهای ایجاد شده به صورت پیشفرض شامل موارد زیرند:
- کانال ورودی/خروجی
- کانال پیام
- کانال کاربر
- کانال سرور
SVCهای افزونه به وسیله یک نام ۸ بایتی شناسایی میشوند. برای مثال:
- rdRDP: افزونه سیستم فایل است که امکان تغییر مسیر دسترسی از سرور به سیستم فایل کلاینت را به وجود میآورد.
- rdpsnd: افزونه خروجی صدا
- cliprdr: افزونه کلیپبُرد است که امکان به اشتراکگذاری کلیپبرُد ویندوز را بین کلاینت و سرور فراهم میسازد.
- drdynvc: افزونه کانال مجازی پویا
تمام شناسههای کانالهای SVC به جز دو SVC در طول فاز تبادل تنظیمات پایه رخ میدهند. یکی از این SVCهای استثنا، کانال کاربر است که در طول فاز اتصال کانال در PDU تایید الصاق شده ارائه میشود و دیگری کانال سرور است که مقدار ثابت 0x03EA معادل ۱۰۰۲ را دارد.
کانالهای مجازی پویا در RDP
استفاده از کانالهای مجازی پویا که به اختصار DVC نامیده میشوند، به دلیل محدودیت ۳۱ عددی در کانالهای مجازی ایستا انجام میشود. کانالهای مجازی پویا از طریق یک کانال مجازی ایستا به نام DRDYNVC منتقل میشوند. این کانالها به این دلیل پویا هستند که میتوان آنها را در هر مرحلهای از طول عمر اتصال (پس از آغاز اتصال) ایجاد کرد و از بین برد.
توسعهدهندگان میتوانند افزونههایی را ایجاد کنند و به راحتی دادهها را از طریق یک کانال مجازی پویا انتقال دهند. موارد استفاده رایج از DVCها شامل ورودی صدا (از کلاینت به سرور)، تغییر مسیر PnP، رندر کردن گرافیکی، کانال اکو، تغییر مسیر ویدیو و بسیاری از موارد دیگر است. به این ترتیب پایان مقاله «RDP چیست» فرا رسیده است. در بخش نهایی، به معرفی دورهها و فیلمّای آموزشی مرتبط در سایت فرادرس پرداخته شده است.
جمعبندی
در این مقاله ابتدا به طور جامع به این سوال پاسخ داده شده که RDP چیست و سپس به شرح آموزش برقراری اتصال ریموت دسکتاپ بین دو PC پرداخته شده است. همچنین مباحثی از جمله ویژگیها، کاربردها، مزایا و معایب و تاریخچه RDP در این مقاله شرح داده شدهاند.
در ادامه نیز وارد مباحث فنی شده و مفاهیم پروتکل RDP به صورت تخصصیتر آموزش داده شده است. به علاوه، دورهها و فیلمهای آموزش شبکه و سایر دورههای آموزشی مرتبط با مطلب «RDP چیست» نیز به علاقهمندان معرفی شدهاند.
سلام . ممنون بابت مطالبتون . یه مشکلی روی ویندوز مجازی دارم که قبل تر وجود نداشت . ما برای یه سری صفحه روی مرورگر نیاز داریم که همیشه سرور انلاین باشه و لاگ اوت نشه . اما وقتی ریموت دسکتاپ رو میبندیم و ارتباط با سرور قطع میشه ویندوز سرور خود به خود لاگ اوت میشه. کلی گشتم دنبالش توی گوگل تا ببینم راهی هست یا نه اما راهی پیدا نکردم . میشه لطفا راهنمایی کنید که باید چکار کنم؟
من یک rdpبرای موبایل میخوام کامپیوتر مبدا ندارم چکار باید کنم
سلام، وقت شما بخیر؛
احتمالاً این مطلب از مجله فرادرس بتواند به شما بر حسب نیازتان کمک کند: کنترل کامپیوتر از راه دور با گوشی موبایل — راهنمای کاربردی