Aracılığıyla paylaş


Net.TCP Bağlantı Noktası Paylaşımı

Windows Communication Foundation (WCF), yüksek performanslı iletişim için yeni bir TCP tabanlı ağ protokolü (net.tcp://) sağlar. WCF, net.tcp bağlantı noktalarının birden çok kullanıcı işlemi arasında paylaşılabilmesini sağlayan yeni bir sistem bileşeni olan Net.TCP Bağlantı Noktası Paylaşım Hizmeti'ni de tanıtır.

Arka Plan ve Motivasyon

TCP/IP protokolü ilk kez sunulduğunda, yalnızca az sayıda uygulama protokolü bunu kullandı. TCP/IP, her uygulama protokolüne benzersiz bir 16 bit bağlantı noktası numarası atayarak uygulamalar arasında ayrım yapmak için bağlantı noktası numaralarını kullandı. Örneğin, bugün HTTP trafiği 80 numaralı TCP bağlantı noktasını kullanacak şekilde standartlaştırılmıştır, SMTP 25 numaralı TCP bağlantı noktasını, FTP ise 20 ve 21 numaralı TCP bağlantı noktalarını kullanır. Aktarım olarak TCP kullanan diğer uygulamalar, kurala göre veya resmi standartlaştırma yoluyla başka bir kullanılabilir bağlantı noktası numarası seçebilir.

Uygulamalar arasında ayrım yapmak için bağlantı noktası numaralarının kullanılmasında güvenlik sorunları vardı. Güvenlik duvarları genellikle birkaç iyi bilinen giriş noktası dışında tüm bağlantı noktalarında TCP trafiğini engelleyecek şekilde yapılandırılır, bu nedenle standart olmayan bir bağlantı noktası kullanan bir uygulamanın dağıtılması, kurumsal ve kişisel güvenlik duvarlarının varlığı nedeniyle genellikle karmaşık ve hatta imkansızdır. Zaten izin verilen standart, iyi bilinen bağlantı noktaları üzerinden iletişim kurabilen uygulamalar dış saldırı yüzeyini azaltır. Çoğu güvenlik duvarı varsayılan olarak 80 numaralı TCP bağlantı noktasında trafiğe izin verecek şekilde yapılandırıldığından, birçok ağ uygulaması HTTP protokolünün kullanılmasını sağlar.

Birçok farklı HTTP uygulaması için trafiğin tek bir TCP bağlantı noktasına katlandığı HTTP.SYS modeli, Windows platformunda standart hale gelmiştir. Bu, uygulama geliştiricilerinin ağdan yararlanabilecek yeni uygulamalar oluşturmanın dağıtım maliyetini en aza indirmesine olanak tanırken güvenlik duvarı yöneticileri için ortak bir denetim noktası sağlar.

Bağlantı noktalarını birden çok HTTP uygulamasında paylaşma özelliği, uzun zamandır Internet Information Services'ın (IIS) bir özelliğidir. Ancak yalnızca IIS 6.0 ile HTTP.SYS (çekirdek modu HTTP protokolü dinleyicisi) kullanıma sunulduğunda bu altyapı tamamen genelleştirildi. HTTP.SYS, rastgele kullanıcı işlemlerinin HTTP trafiğine ayrılmış TCP bağlantı noktalarını paylaşmasına olanak tanır. Bu özellik, birçok HTTP uygulamasının tcp bağlantı noktası 80 üzerinden trafik göndermek ve almak için gereken ağ altyapısını paylaşırken ayrı, yalıtılmış işlemlerde aynı fiziksel makinede birlikte bulunmasına olanak tanır. Net.TCP Bağlantı Noktası Paylaşım Hizmeti, net.tcp uygulamaları için aynı tür bağlantı noktası paylaşımını etkinleştirir.

Bağlantı Noktası Paylaşım Mimarisi

WCF'deki Bağlantı Noktası Paylaşımı mimarisi üç ana bileşene sahiptir:

  • Çalışan İşlemi: Paylaşılan bağlantı noktalarını kullanarak net.tcp:// üzerinden iletişim yapan tüm işlemler.

  • WCF TCP aktarımı: net.tcp:// protokolunu uygular.

  • Net.TCP Bağlantı Noktası Paylaşım Hizmeti: Birçok çalışan işleminin aynı TCP bağlantı noktasını paylaşmasına izin verir.

Net.TCP Bağlantı Noktası Paylaşım Hizmeti, üzerinden bağlanan çalışan işlemleri adına net.tcp:// bağlantılarını kabul eden bir kullanıcı modu Windows hizmetidir. Yuva bağlantısı geldiğinde, bağlantı noktası paylaşım hizmeti gelen ileti akışını inceler ve hedef adresini alır. Bu adrese bağlı olarak, bağlantı noktası paylaşım hizmeti veri akışını nihai olarak işleyen uygulamaya yönlendirebilir.

net.tcp:// bağlantı noktası paylaşımını kullanan bir WCF hizmeti açıldığında, WCF TCP aktarım altyapısı uygulama işleminde doğrudan bir TCP yuvası açmaz. Bunun yerine, aktarım altyapısı hizmetin temel adresini Tekdüzen Kaynak Tanımlayıcısı'nı (URI) Net.TCP Bağlantı Noktası Paylaşım Hizmeti'ne kaydeder ve bağlantı noktası paylaşım hizmetinin kendi adına iletileri dinlemesini bekler. Bağlantı noktası paylaşım hizmeti, uygulama hizmetine gönderilen iletileri geldikçe yönlendirir.

Bağlantı Noktası Paylaşımını Yükleme

Net.TCP Bağlantı Noktası Paylaşım Hizmeti, WinFX'i destekleyen tüm işletim sistemlerinde kullanılabilir, ancak hizmet varsayılan olarak etkinleştirilmez. Güvenlik önlemi olarak, yöneticinin ilk kullanımdan önce Net.TCP Bağlantı Noktası Paylaşım Hizmeti'ni el ile etkinleştirmesi gerekir. Net.TCP Bağlantı Noktası Paylaşım Hizmeti, bağlantı noktası paylaşım hizmetine ait ağ yuvalarının çeşitli özelliklerini işlemenize olanak sağlayan yapılandırma seçeneklerini kullanıma sunar. Daha fazla bilgi için bkz . Nasıl yapılır: Net.TCP Bağlantı Noktası Paylaşım Hizmetini Etkinleştirme.

Uygulamada Net.tcp Bağlantı Noktası Paylaşımını Kullanma

WCF uygulamanızda net.tcp:// bağlantı noktası paylaşımını kullanmanın en kolay yolu, ve kullanarak NetTcpBinding bir hizmeti kullanıma sunmanız ve ardından özelliğini kullanarak Net.TCP Bağlantı Noktası Paylaşım Hizmeti'ni PortSharingEnabled etkinleştirmektir.

Bunun nasıl yapacağı hakkında daha fazla bilgi için bkz . Nasıl yapılır: WcF Hizmetini Bağlantı Noktası PaylaşımıNı Kullanacak Şekilde Yapılandırma.

Bağlantı Noktası Paylaşımının Güvenlik Üzerindeki Etkileri

Net.TCP Bağlantı Noktası Paylaşım Hizmeti, uygulamalar ve ağ arasında bir işlem katmanı sağlasa da, bağlantı noktası paylaşımı kullanan uygulamaların ağ üzerinde doğrudan dinliyor gibi güvenliği yine de sağlanmalıdır. Özellikle, bağlantı noktası paylaşımı kullanan uygulamalar, altında çalıştıkları işlem ayrıcalıklarını değerlendirmelidir. Uygulamanızı, ağ iletişimi için gereken en düşük işlem ayrıcalıkları kümesiyle çalışan yerleşik Ağ Hizmeti hesabını kullanarak çalıştırmayı göz önünde bulundurun.

Ayrıca bkz.