“Eş tarafından bağlantı sıfırlama” ne demektir?


648

TCP bağlantısındaki "bağlantı eş tarafından sıfırla" hatasının anlamı nedir? Önemli bir hata mı, yoksa yalnızca bir bildirim mi yoksa ağ hatasıyla mı ilgili?

Yanıtlar:


771

Ölümcül. Uzak sunucu size normal el sıkışma yerine bağlantının derhal düştüğünü gösteren bir RST paketi gönderdi. Bu, normal yarı kapalı durum geçişini atlar. Bu açıklamayı beğendim :

"Eş tarafından bağlantı sıfırlandı", telefonu tekrar kancaya çarpmanın TCP / IP eşdeğeri. Sadece cevap vermekten daha kibar, bir tane asılı bırakıyor. Ancak gerçekte kibar TCP / IP muhaliflerinden beklenen FIN-ACK değil.


49
Neden " tarafından bağlantı sıfırlandı" olarak etiketlendi ? "Ana makine tarafından bağlantı sıfırlandı" veya "sunucu tarafından bağlantı sıfırlandı" şeklinde görünüyor
Robert

27
@Robert Çünkü sıfırlama buradan geldi. Akran bir RST paketi gönderdi.
Lorne Marquis

106
... Robert, endişen bana bir anlam ifade etmiyor. Akran kesinlikle bundan daha geneldir. Tipik bir istemci-sunucu modelinde, sunucu bu bildirimi "istemciden" kolayca alabilir. Başlangıçta bağlantı isteyen makinenin bu bildirimi göndermek için yeterli gücü vardır. TCP düzeyinde, bağlantı devam ettikten sonra aynı görünür. İki makine, iletişim kurarken sadece akranlardır.
codetaku

9
Bu paketlenmiş bir yönlendirici gibi ortada başka bir cihaz tarafından gönderilmiş olabilir?
Arnold Roa

3
İstemci veya sunucu tarafından gönderilebildiğinden 'sunucu tarafından bağlantı sıfırlama' olarak adlandırılamaz. 'Baypas edilemez'. İstemci bu hatayı alırsa, TCP bağlantısı sunucuda artık açık olmadığı anlamına gelir, örneğin sunucu çöktüğü ve yeniden başlatıldığı için.
Johannes Overmann

193

Bu, bir TCP RST'nin alındığı ve bağlantının artık kapalı olduğu anlamına gelir. Bu, bağlantınızın sonundan bir paket gönderildiğinde, ancak diğer uç bağlantıyı tanımadığında oluşur; bağlantıyı zorla kapatmak için RST biti ayarlanmış bir paketi geri gönderir.

Bu durum, diğer tarafın çökmesi ve ardından geri dönmesi veya close()sizden veri aktarılırken sokete çağrı yapılması ve daha önce gönderdiğiniz bazı verilerin alınmamış olabileceğinin bir göstergesidir.

Bunun bir hata olup olmadığı size bağlıdır; gönderdiğiniz bilgiler yalnızca uzak istemcinin yararına olsaydı, son verilerin kaybolmuş olması önemli olmayabilir. Ancak soketi kapatmalı ve bağlantıyla ilişkili diğer kaynakları boşaltmalısınız.


11
Yeni bir soket açarken SO_LINGER soket seçeneğini sıfıra ayarlarsanız, normalde kapatın, RST biti ayarlanır. Böylece TÜM bağlantı sıfırlanır. Bunu evde denemeyin, sadece sinir bozucu. stackoverflow.com/questions/3757289
Chris Huang-Leaver

1
Bu sorunu nasıl çözebiliriz, hem uzaktan hem de ana makinemizi yeniden başlatmamız gerekiyor mu?
user2225190

3
@ user2225190 İstemciyi yeniden bağlamanız gerekir, ancak önce bir uygulama protokol hatası nedeniyle olmadığından emin olmak için yazılımınızı incelemeniz gerekir, yani diğer ucun hala yazdığı bir bağlantıyı kapatmak.
Lorne Marquis

1
Yorumun için teşekkürler. İki ay çalışırdı. Ben de bir komut satırından deniyorum, ama yine de bu hatayı alıyorum. "Sftp user @ machine" komutunu deniyorum. Hata tutarsız.
user2225190
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.