BGP neden tcp keepalive kullanmak yerine kendi keepalive uygular?


14

BGP TCP koruma özelliğini kullanmaz, kendi koruma mekanizmasını kullanır. Benim sorum neden bgp TCP SO_KEEPaLIVE açmak ve mutlu bir şekilde yaşayamıyor? neden tcp keepalive kullanmıyor ve kendi keepalive uygulamasını uygulamıyor?

Yanıtlar:


19

TCP "keepalive", tüm işletim sistemlerinde bulunmayan bir özelliktir. TCP standardının kendisinde değildir ve güvenilir değildir. RC1122 bunu belirtir, ancak açıkça belirtir:

Uygulayıcılar, TCP uygulamalarına "canlı tutma" içerebilir, ancak bu uygulama evrensel olarak kabul edilmez. Canlı tutma dahil edilirse, uygulama her TCP bağlantısı için bunları açıp kapatmalıdır ZORUNLU ve varsayılan olarak KAPALI olmalıdır.

Hatta daha önemli:

Veri içermeyen ACK segmentlerinin TCP tarafından güvenilir bir şekilde iletilmediğini hatırlamak son derece önemlidir. Sonuç olarak, canlı tutma mekanizması uygulanırsa, belirli bir proba yanıt vermemenin ölü bağlantı olarak yorumlanmaması GEREKİR.

TCP keepalive, TCP protokolünü özel bir şekilde kullanır ve hiçbir veri eklenmeden yinelenen bir ACK gönderir. Şey: Kullanılabilir olduğuna güvenemezsiniz. Ayrıca bazı güvenlik duvarları TCP saklayıcılarını filtreler.

BGP'nin düzgün çalışması için, güvenilir bir şekilde gönderilen tutma için (ne sıklıkla mesaj göndeririz) ve bekletme (daha sonra bir eşin yanıt vermediğini bildiririz) için belirli zamanlayıcıları uygulama yoluna ihtiyacınız vardır . BGP, TCP tutma ile karşılaştırıldığında çok fazla ek yük (19 bayt) olmayan kendi kalıcı mesajını kullanıyor.

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.