در این مقاله از وبلاگ ژوپیتک قصد داریم پورت های WSD را مورد بررسی قرار دهیم. پورت WSD، یک نوع پورت تحت شبکه است که برای اولین بار جهت استفاده در ویندوز ویستا و ویندوز سرور 2008 عرضه شد. پورت WSD برای دستگاههایی که از تکنولوژی Web Service For Devices) WSD) پشتیبانی میکنند، امکانی را فراهم ساخته تا بتوانند عملیات پرینت را دربستر شبکه انجام دهند.
دستگاههایی که دارای پورت WSD هستند (پرینترها و سیستم کاربران)، جهت برقراری ارتباط در شبکه، میبایست از پروتکل (SOAP (Simple Object Access Protocol استفاده کنند. از پروتکل SOAP برای انتقال اطلاعات بر بستر UDP و (HTTP(s استفاده میشود. استفاده از پورت WSD به راحتی اتصال USB است و میتوان بصورت plug-and-play از دستگاه مربوطه استفاده کرد.
وب سرویسها با استفاده از گواهیهای مبنتی بر دستگاه device-based) certificates)، یک نمایه امنیتی برای دستگاهها تعریف میکنند که این نمایه جهت افزایش امنیت در احراز هویت افراد و انتقال اطلاعات، هنگام استفاده از اینترنت میباشد. گواهی دستگاه، شناسه منحصر به فردی است که برای تأیید اعتبار دستگاهها استفاده میشود.
پورت WSD بصورت پیشفرض بر روی ویندوز ویستا و ویندوز سرور 2008 (به همراه سرویس Print Server) نصب میباشد. برای استفاده در ویندوز های قبلی همانند ویندوز XP باید از پرینترهایی که بر روی ویندوز ویستا به بعد نصب و به اشتراک گذاشته شده استفاده کرد.
وظایف پورت WSD
چهار وظیفه اصلی که توسط پورت WSD انجام میشود به شرح زیر میباشند:
1- پرینترهایی که از پورت WSD پشتیبانی میکنند را در شبکه جستجو کرده و به آنها متصل میشود.
2- ارسال دستور پرینت به پرینترهایی با پورت WSD
3- پیکربندی و وضعیت پرینتر را بررسی کرده و متناسب با آن وضعیت، پرینتر را بروزرسانی میکند.
4- پاسخ دهی دوطرفه بین پرینتر و ویندوز.
موارد بالا توسط سایر مانیتور پورتها نیز ارائه میشود. همانند مانیتور پورت استاندارد tcpmon.dll) TCP/IP) و پورت مانیتور WSD از wsdmon.dll که این DLL تحت سرویس spoolsv.exe) Printer Spooler) بارگذاری میشود. WSD در ریجستری ویندوز در مسیر زیر قرار دارد:
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\WSD Port
اگر پرینتری از پورت WSD پشتیبانی نکند از استاندار TCP/IP Port Monitor استفاده خواهد کرد.
تا اینجا کمی با پورت WSD و کارایی این پورت آشنا شدیم. در ادامه مکانیزم و شیوه ارتباطی پورت WSD را بررسی خواهیم کرد.
هنگامی که پرینتر مبتنی بر Port WSD به شبکه متصل میشود، پیغام تبلیغاتی “Hi” را برای اعلام حضور خود ارسال میکند. کامپیوترهای دارای ویندوز ویستا و سرور 2008 به بعد فعال در شبکه، پیغام پرینتر را دریافت کرده و پرینتر را در لیست منابع خود اضافه میکنند. همچنین ویندوز ویستا و ویندوز سرور 2008 به بعد میتوانند هنگام جستجوی پرینترها از طریق Network Discovery یا Add Printer Wizard با استفاده از پیغام “Probe”، پرینترهای دارای پورت WSD را جستجو و اضافه کنند.
زمانی که پرینتر میخواهد از شبکه حذف شود پیغام دیگری را با عنوان “Bye”، برای اطلاع رسانی (به جهت اینکه دیگر در شبکه نخواهد بود) ارسال میکند.
مراحل ارتباطی
مراحل ارتباطی در تصویر زیر نمایش داده شده است:
1- برای پیدا کردن پرینتر، سرویسگیرنده (ویندوز) پیغام “Probe” را بصورت Multicast ارسال میکند. پیغام “Probe” نشانمیدهد که سرویس گیرنده به دنبال یک سرویس چاپ است. همچنین “Probe” نشان میدهد که سرویس گیرنده به امنیت احتیاج دارد یا نه.
2- دستگاه مبتنی بر WSD از آنجا که میزبان سرویس پرینت میباشد، به پیغام Probe گوشداده و مستقیما با یک پیغام “Probe Match” به کاربر پاسخ میدهد.
3- سرویسگیرنده برای کسب اطلاعات بیشتر در مورد دستگاه مبتنی بر WSD و خدمات میزبانی آن، پیغام “Get Metadata” را بصورت “unicast” مستقیماً به دستگاه ارسال میکند. در صورت شناخته شدن اسم دستگاه، سرویسگیرنده مستقیماً میتواند پیغام “Resolve” را ارسال نماید.
4- دستگاه نیز با یک پیغام “Metadata” جواب کاربر را میدهد. درون این پیغام اطلاعاتی نظیر: سازنده دستگاه، شماره سریال و نسخه سیستمعامل نهفته است.
5- کاربر برای کسب اطلاعات بیشتر در مورد سرویس پرینت خود، میتواند بصورت مستقیم پیغام “Get Metadata” را به سرویس (پرینتر) ارسال نماید.
6- در ادامه سرویس پرینت با “Metadata” خود پاسخ کاربر را میدهد. درون این پیغام اطلاعاتی از جمله عملکردهایی که سرویس پیشتیبانی میکند، و دادههای مخصوص پرینتر مانند (امکان چاپ رنگی، تعداد صفحات در دقیقه و اندازه کاغذ قابل پرینت) وجود دارد .
7- در این مرحله کاربر پیغامی با موضوع شروع چاپ “Print job” به سرویس (پرینتر) ارسال میکند.
8- سرویس (پرینتر) با بررسی وضعیت به کاربر امکان ارسال “Print job” را میدهد.
9- برای بروزرسانی وضعیت کار یا سرویس کلی چاپ، کاربر پیغام “Subscribe” را به سرویس پرینت ارسال میکند.
10- پیغام “Subscribe” شامل شناسه اشتراک و تاریخ انقضا است. اگر کاربر پس از تاریخ انقضا به اطلاعات نیاز دارد، باید اشتراک خود را تمدید نماید.
کاربر درخواست خود را به سرویس چاپ ارسال میکند.
11- تصاویر کدگذاری شده و ضمیمه پیغام میگردند. در نهایت توسط SOAP ارسال میشوند.
12- سرویس (پرینتر) به کاربر پذیرفته شدن Job رو نمایش و اطلاع میدهد.
13- در آخر سرویس چاپ اطلاعاتی را از قبیل: تغییر در کار چاپ، تعداد صفحات چاپ شده و غیره را به کاربر ارسال میکند. هدف مطلع کردن کاربر از نتیجه درخواست است.
چند نکته درباب پورت WSD
پیغام های Get, Bye ,Probe ,Resolve ,Hello بدون درخواست شبکه ارسال میشوند. این پیغام ها برای اعلام وضعیت دستگاه، صدور درخواست جستجو یا به دست آوردن Metadata مورد استفاده قرار میگیرند.
پیغام های GetResponse ,ResolveMatches ,ProbeMatches در پاسخ به پیغام های Resolve ,Probe و Get تولید میشوند.
پیغام های Bye ,Resolve ,ResolveMatches ,Hello توسط UDP Multicast به پورت 3702 ارسال میشوند.
همچنین پیغامهای Get ,GetResponse و Metadata بر روی HTTP(TCP port 5357) و یا HTTPS(TCP port 5358) صورت میگیرد.
پیغام های Probe و ProbeMatches از طریق UDP(port 3702) ارسال میگردند مگر اینکه پیغام بصورت “Directed” ارسال شود.
پیغام “Directed” پیغامی است که در آن نام دستگاه WSD مشخص بوده و مستقیما با نام قابل دسترسی میباشد. برای پیغام های “Directed” پیغام های Probe و ProbeMatches از درگاه های مشابه Metadata و GET و GetResponse استفاده میگردد.
بدیهی است که برای امکان جستجو، دیدن و کشف WSD باید در فایروال ویندوز به پورت های مربوطه اجازه داده شود.
در آخر میتوانید Multicast را با تنظیم مقدار 0 IGMPLevel در کلید رجیستری زیر غیرفعال کنید:
HKLM \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters
فعال سازی پورت WSD در ویندوز 10
در ادامه فعالسازی پورت WSD رو در ویندوز 10 عملی خواهیم کرد:
از Control Panel وارد قسمت Devices and Printers شده و سپس مطابق شکل زیر بر روی Add a Printer کلیک میکنیم:
سپس مطابق شکل زیر بر روی درایور مورد نظر کلیک کرده و منتظر میمانیم تا درایور مربوطه به طور کامل بر روی سیستم نصب شود:
پس از اتمام فرآیند نصب بر روی گزینه Finish کلیک میکنیم.