Bağlantı canlı kalır, ancak son nokta öldü mü?


1

Sunucu yeniden başlatılsa bile, bir TCP bağlantısının (istemci tarafı) KURULAN durumda kalmasına neden olacak bir fikri olan var mı? İstemci işlemi recv sistemde kalır ve bir hataya neden olmadan bu şekilde kalır!

İstemci bir Ubuntu 11.04 kurulumunda. Bu bana birkaç kez başıma geldi ama nedenini ya da nasıl çözeceğini anlayamıyorum.


Bu hangi protokol? (Biri doğrudan TCP'nin üzerine yerleştirildi. Gönderilen baytların ne anlama geldiğini, onları ne zaman gönderdiğini, vb. Belirtenleri belirtin.)
David Schwartz

Yanıtlar:


3

Bağlantı bir tarafta ESTABLISHED olarak kaldı, diğer tarafta ise mevcut değil, çünkü sunucu yeniden başlatıldıktan sonraki durum bu. İstemcinin sunucunun yeniden başlatıldığı hakkında bir fikri yok ve sunucunun hala bağlı olduğunu düşündüğü hakkında hiçbir fikri yok. Müşteri bağlantıyı kullanmaya çalışmadığı sürece, sonsuza dek bu şekilde kalacaktır. (Saklayıcılar etkinleştirilmediği sürece, bu durumda tipik olarak yaklaşık iki gün bu şekilde kalacaktır.)

İstemci neden sunucuyu sonsuza dek bekliyor ?! Ya müşteri ya da protokol bozuldu. İstemci protokolü izlemiyorsa, istemci bozulur. Protokol ölü bir bağlantının nasıl algılanacağını belirtmezse, protokol kopar.

TCP, veri göndermeye çalışmayan bir uç için ölü bir bağlantı algılamıyor. Böylece her protokol TCP'nin üzerine yerleştirildi. şart bunu göz önünde bulundurmak için tasarlanmış olmak. Bu sıkışmış bağlantı kabul edilebilir bir davranış değilse, bu kabul edilemez davranışa (veya protokolü takip etmediği için istemci bozulduğundan) izin verdiği için bu protokol kopar.

Protokol şartnamesi gerçekten beklemek söylüyor mu? sonsuza dek veri için mi? Öyleyse, protokolün geliştiricilerinin akıl sağlığını sorgulayacağım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.