Basit bir HTTP sunucusu yazıp TIME_WAIT hakkında bilgi veriyorum. Ağır ortamlardaki gerçek web sunucuları, bir istek yapıldıktan sonra TIME_WAIT'e takılan tüm soketler olmadan binlerce kullanıcıdan gelen istekleri nasıl ele alır? (Hayatta kalmayi istemiyorum - bu tek bir müsteriye yardimci olacaktir, ama binlerce farkli müsteriye karsi gelmez).Web sunucuları TIME_WAIT'i nasıl önler?
İstemciyi önce kapatmayı denediğinizi okudum, böylece tüm TIME_WAIT'leri sunucuda yoğunlaşmak yerine tüm istemciler arasında yayılacak.
Bu nasıl yapılır? Bir noktada sunucunun yakın/kapanış çağırması gerekiyor.
Sunucu sadece takılıyor ve müşterinin kapanmasını bekliyor mu? Bir noktada bunun zaman aşımına uğramasını ve bağlantının kendisini kapatacağını düşünürdüm. – DougN
Beni başka bir soru hakkında düşünmemi sağlıyor :) Gerçek bir web sunucusunun (IIS/Apache?) Sadece 5 (?) Saniye zaman aşımı ile soket üzerinde arama yapması gerektiğini düşünürsünüz. bağlantıyı kes (ve bir hata soketi ile geri dönmeyi seçelim)? – DougN
Bağlantıyı kapatmayı değil, sıfırlarsanız, TIME_WAIT içinde de bitmezsiniz. Bu nedenle boşta kalan bağlantılar için bir zaman aşımı eklemek isterseniz, önce oyalamayı kapatıp kapatmayı kapatarak bunları kapatabilirsiniz. Bu bir RST gönderecek ve TIME_WAIT içinde bitmeyeceksin. –