Taşıma Kotaları

Aktarım kotaları, bir bağlantının ne zaman aşırı kaynak tükettiğine karar vermek için kullanılan bir ilke mekanizmasıdır. Kota, kota değeri aşıldığında ek kaynakların kullanılmasını engelleyen sabit bir sınırdır. Aktarım kotaları kötü amaçlı veya kasıtsız hizmet reddi saldırılarını önler.

Windows Communication Foundation (WCF) aktarımları, kaynakların önemli bir şekilde ayrılmasına dayalı varsayılan kota değerlerine sahiptir. Bu varsayılan değerler geliştirme ortamları ve küçük yükleme senaryoları için uygundur. Bir yüklemenin kaynakları tükeniyorsa veya ek kaynakların kullanılabilir olmasına rağmen bağlantılar sınırlıysa hizmet yöneticileri aktarım kotalarını gözden geçirmeli ve tek tek kota değerlerini ayarlamalıdır.

Taşıma Kotası Türleri

WCF aktarımlarının üç tür kotası vardır:

  • Zaman aşımları, kaynakları uzun süre bağlamaya dayanan hizmet reddi saldırılarını azaltır.

  • Bellek ayırma sınırları , tek bir bağlantının sistem belleğini tüketmesini ve hizmeti diğer bağlantılara reddetmesini engeller.

  • Koleksiyon boyutu sınırları , dolaylı olarak bellek ayıran veya sınırlı miktarda kaynak tüketen kaynaklara bağlıdır.

Aktarım Kotası Açıklamaları

Bu bölümde, standart WCF aktarımları için kullanılabilen aktarım kotaları açıklanmaktadır: HTTP(S), TCP/IP ve adlandırılmış kanallar. Özel aktarımlar, bu listeye dahil olmayan kendi yapılandırılabilir kotalarını kullanıma açabilir. Kotaları hakkında bilgi edinmek için özel aktarım belgelerine bakın.

Her kota ayarı bir türe, en düşük değere ve varsayılan değere sahiptir. Kotanın en yüksek değeri türüyle sınırlıdır. Makine sınırlamaları nedeniyle, kotayı maksimum değerine ayarlamak her zaman mümkün değildir.

Adı Tip Min.

değer
Varsayılan

değer
Açıklama
ChannelInitializationTimeout TimeSpan 1 onay işareti 5 sn İlk okuma sırasında bağlantının ön derlemeyi göndermesini bekleme süresi üst sınırı. Bu veriler kimlik doğrulaması gerçekleşmeden önce alınır. Bu ayar genellikle kota değerinden ReceiveTimeout çok daha küçüktür.
CloseTimeout TimeSpan 0 1 dk Aktarım özel durum oluşturmadan önce bağlantının kapatılmasını bekleme süresi üst sınırı.
ConnectionBufferSize Tamsayı 1 8 KB Temel alınan aktarımın aktarım ve alma arabelleklerinin bayt cinsinden boyutu. Arabellek boyutunu artırmak, büyük iletiler gönderirken aktarım hızını artırabilir.
IdleTimeout TimeSpan 0 2 dak Havuza alınan bir bağlantının kapatılmadan önce boşta kalabileceği maksimum süre.

Bu ayar yalnızca havuza alınan bağlantılar için geçerlidir.
LeaseTimeout TimeSpan 0 5 dk Etkin havuza alınan bağlantının maksimum ömrü. Belirtilen süre geçtikten sonra, geçerli istek karşılandıktan sonra bağlantı kapatılır.

Bu ayar yalnızca havuza alınan bağlantılar için geçerlidir.
ListenBacklog Tamsayı 1 10 Bu uç noktaya yönelik ek bağlantılar reddedilmeden önce dinleyicinin hizmet dışı durumdan çıkarabileceği en fazla bağlantı sayısı.
MaxBufferPoolSize Uzun 0 512 KB Taşımanın havuza yeniden kullanılabilir ileti arabelleklerine ayırdığı bayt cinsinden en fazla bellek. Havuz bir ileti arabelleği sağlayamadığında, geçici kullanım için yeni bir arabellek ayrılır.

Birçok kanal fabrikası veya dinleyicisi oluşturan yüklemeler arabellek havuzları için büyük miktarda bellek ayırabilir. Bu arabellek boyutunun azaltılması, bu senaryoda bellek kullanımını büyük ölçüde azaltabilir.
MaxBufferSize Tamsayı 1 64 KB Akış verileri için kullanılan bir arabelleğin bayt cinsinden en büyük boyutu. Bu aktarım kotası ayarlanmadıysa veya aktarım akış kullanmıyorsa, kota değeri ve kota değerinin MaxValueküçük olmasıyla MaxReceivedMessageSize aynıdır.
MaxOutboundConnectionsPerEndpoint Tamsayı 1 10 Belirli bir uç noktayla ilişkilendirilebilen en fazla giden bağlantı sayısı.

Bu ayar yalnızca havuza alınan bağlantılar için geçerlidir.
MaxOutputDelay TimeSpan 0 200 ms Tek bir işlemde ek iletilerin toplu işlenmesi için bir gönderme işleminden sonra beklenmesi gereken en uzun süre. Temel alınan aktarımın arabelleği dolarsa iletiler daha önce gönderilir. Ek ileti göndermek gecikme süresini sıfırlamaz.
MaxPendingAccepts Tamsayı 1 1 Dinleyicinin beklediği kanallar için en fazla kabul sayısı.

Kabul işleminin tamamlanması ile yeni kabul işleminin başlatılması arasında bir zaman aralığı vardır. Bu koleksiyon boyutunun artırılması, bu aralıkta bağlanan istemcilerin bırakılmasına engel olabilir.
MaxPendingConnections Tamsayı 1 10 Dinleyicinin uygulama tarafından kabul edilmeyi bekleyebileceği en fazla bağlantı sayısı. Bu kota değeri aşıldığında, kabul edilmeyi beklemek yerine yeni gelen bağlantılar bırakılır.

İleti güvenliği gibi Bağlan özellikleri istemcinin birden fazla bağlantı açmasına neden olabilir. Hizmet yöneticileri bu kota değerini ayarlarken bu ek bağlantıları hesaba katmalıdır.
MaxReceivedMessageSize Uzun 1 64 KB Aktarım özel durum oluşturmadan önce alınan iletinin üst bilgiler de dahil olmak üzere bayt cinsinden boyut üst sınırı.
OpenTimeout TimeSpan 0 1 dk Aktarım özel durum oluşturmadan önce bağlantı kurulmasını bekleme süresi üst sınırı.
ReceiveTimeout TimeSpan 0 10 dk Aktarım özel durum oluşturmadan önce okuma işleminin tamamlanmasını bekleme süresi üst sınırı.
SendTimeout Timespan 0 1 dk Aktarım özel durum oluşturmadan önce yazma işleminin tamamlanmasını bekleme süresi üst sınırı.

ve aktarım kotaları MaxPendingConnectionsMaxOutboundConnectionsPerEndpoint , bağlama veya yapılandırma aracılığıyla ayarlandığında çağrılan MaxConnections tek bir aktarım kotası içinde birleştirilir. Yalnızca bağlama öğesi bu kota değerlerini ayrı ayrı ayarlamaya izin verir. Aktarım kotası MaxConnections aynı minimum ve varsayılan değerlere sahiptir.

Aktarım Kotalarını Ayarlama

Aktarım kotaları aktarım bağlama öğesi, aktarım bağlaması, uygulama yapılandırması veya konak ilkesi aracılığıyla ayarlanır. Bu belge, konak ilkesi aracılığıyla aktarımları ayarlamayı kapsamaz. Konak ilkesi kotalarının ayarlarını bulmak için temel alınan aktarım belgelerine bakın. HTTP ve HTTPS Yapılandırma konusu, Http.sys sürücüsünün kota ayarlarını açıklar. HTTP, TCP/IP ve adlandırılmış kanal bağlantılarında Windows sınırlarını yapılandırma hakkında daha fazla bilgi için Microsoft Bilgi Bankası'nda arama yapın.

Diğer kota türleri taşımalara dolaylı olarak uygulanır. Aktarım tarafından bir iletiyi baytlara dönüştürmek için kullanılan ileti kodlayıcının kendi kota ayarları olabilir. Ancak, bu kotalar kullanılan taşıma türünden bağımsızdır.

Bağlama Öğesinden Aktarım Kotalarını Denetleme

Bağlama öğesi aracılığıyla aktarım kotalarının ayarlanması, taşımanın davranışını denetlemede en büyük esnekliği sunar. Kapat, Aç, Al ve Gönder işlemleri için varsayılan zaman aşımları, bir kanal oluşturulduğunda bağlamadan alınır.

Veri Akışı Adı HTTP TCP/IP Adlandırılmış kanal
ChannelInitializationTimeout X X
CloseTimeout
ConnectionBufferSize X X
IdleTimeout X X
LeaseTimeout X
ListenBacklog X
MaxBufferPoolSize X X X
MaxBufferSize X X X
MaxOutboundConnectionsPerEndpoint X X
MaxOutputDelay X X
MaxPendingAccepts X X
MaxPendingConnections X X
MaxReceivedMessageSize X X X
OpenTimeout
ReceiveTimeout
SendTimeout

Bağlamadan Aktarım Kotalarını Denetleme

Bağlama aracılığıyla aktarım kotalarının ayarlanması, en yaygın kota değerlerine erişim izni verirken aralarından seçim yapabileceğiniz basitleştirilmiş bir kota kümesi sunar.

Veri Akışı Adı HTTP TCP/IP Adlandırılmış kanal
ChannelInitializationTimeout
CloseTimeout X X X
ConnectionBufferSize
IdleTimeout
LeaseTimeout
ListenBacklog X
MaxBufferPoolSize X X X
MaxBufferSize 1 X X
MaxOutboundConnectionsPerEndpoint 2 2
MaxOutputDelay
MaxPendingAccepts
MaxPendingConnections 2 2
MaxReceivedMessageSize X X X
OpenTimeout X X X
ReceiveTimeout X X X
SendTimeout X X X
  1. Aktarım MaxBufferSize kotası yalnızca bağlamada BasicHttp kullanılabilir. WSHttp Bağlamalar, akışlı aktarım modlarını desteklemeyen senaryolara yöneliktir.

  2. Aktarım kotaları MaxPendingConnections ve MaxOutboundConnectionsPerEndpoint adlı MaxConnectionstek bir aktarım kotası içinde birleştirilir.

Yapılandırmadan Aktarım Kotalarını Denetleme

Uygulama yapılandırması, bağlamadaki özelliklere doğrudan erişirken aynı aktarım kotalarını ayarlayabilir. Yapılandırma dosyalarında aktarım kotasının adı her zaman küçük harfle başlar. Örneğin, bağlamadaki CloseTimeout özelliği yapılandırmadaki ayara closeTimeout , bağlamadaki MaxConnections özellik de yapılandırmadaki maxConnections ayara karşılık gelir.

Ayrıca bkz.