Спільне використання портів
Windows Communication Foundation (WCF) надає новий мережевий протокол на базі TCP (net.tcp: //) для високопродуктивного обміну даними. Крім того, в WCF введений новий системний компонент: служба спільного використання портів Net.TCP, що дозволяє розділяти порти net.tcp між декількома призначеними для користувача процесами.
Коли протокол TCP / IP з'явився вперше, він використовувався лише в невеликим числі протоколів додатків. В TCP / IP для розмежування додатків використовувалися номера портів: кожному протоколу додатки присвоювався унікальний 16-розрядний номер порту. Наприклад, для HTTP-трафіку на сьогодні стандартом є TCP-порт 80, для SMTP використовується TCP-порт 25, а для FTP - TCP-порти 20 і 21. Інші функції, які залежать як транспорт протокол TCP, можуть вибирати інші доступні номери портів - за традицією або відповідно до формальних стандартами.
Використання для розрізнення додатків номерів портів тягло за собою проблеми з безпекою. Брандмауери зазвичай налаштовуються на блокування TCP-трафіку на всіх портах, за винятком декількох широко відомих точок входу, тому розгортання програми, що використовує нестандартний порт, часто пов'язане з труднощами або взагалі неможливо в зв'язку з присутністю корпоративних і персональних брандмауерів. Додатки, які здатні обмінюватися даними через стандартні, широко відомі вже дозволені порти, зменшують зовнішній простір атаки. Багато мережеві додатки використовують протокол HTTP, оскільки більшість брандмауерів за замовчуванням пропускають трафік на TCP-порту 80.
Модель HTTP.SYS, в якій трафік для безлічі різних HTTP-додатків мультиплексуюча в один TCP-порт, стала стандартною на платформі Windows. Це забезпечує загальну контрольну точку для адміністраторів брандмауерів і в той же час дозволяє розробникам додатків мінімізувати вартість розгортання при побудові нових додатків, робота яких передбачає використання мережі.
Можливість спільного використання портів кількома HTTP-додатками протягом довгого часу була характерна для служб Internet Information Services (IIS). Однак повністю ця інфраструктура була введена у вжиток лише з появою HTTP.SYS (Прослуховувач протоколу HTTP режиму ядра) в IIS 6,0. По суті HTTP.SYS дозволяє довільним призначеним для користувача процесів спільно використовувати TCP-порти, виділені під HTTP-трафік. Ця можливість дозволяє декільком HTTP-додатків співіснувати на одному фізичному комп'ютері в окремих ізольованих процесах і в той же час спільно використовувати мережеву інфраструктуру, необхідну для відправки та отримання трафіку через TCP-порт 80. Служба спільного використання портів Net.TCP уможливлює таке ж спільне використання портів для додатків net.tcp.
Архітектура спільного використання портів в WCF включає три основних компоненти.
Робочий процес: будь-який процес, обмінюються даними по протоколу net.tcp: // через спільно використовувані порти.
Транспорт TCP WCF: реалізує протокол net.tcp: //.
Служба спільного використання портів Net.TCP: дозволяє безлічі робочих процесів використовувати один і той же TCP-порт.
Служба спільного використання портів Net.TCP доступна у всіх операційних системах, що підтримують WinFX, однак ця служба не включена за замовчуванням. З міркувань безпеки адміністратор повинен вручну включити службу спільного використання Net.TCP перед першим використанням. Служба спільного використання портів Net.TCP надає параметри конфігурації, які дозволяють маніпулювати деякими характеристиками мережевих сокетів, що належать службі спільного використання портів. Додаткові відомості див. У розділі. Практичний посібник. Включення служби спільного використання портів Net.TCP.