İçeriğe geç
🛠️ToolsShed

Bandwidth Delay Product Calculator

TCP arabellek ayarlaması için BDP hesaplayın ve önerilen pencere boyutları ile sysctl ayarlarını alın.

Bu araç hakkında

Bant genişliği-gecikme çarpımı (BDP), bağlantı bant genişliğinin gidiş-dönüş süresiyle çarpımıdır ve herhangi bir anda hat üzerinde ne kadar verinin yolda olabileceğini tam olarak gösterir. Bu sayı, yüksek hızın yüksek gecikmeyle birleştiği ve küçük bir pencerenin aktarımınızı sessizce kıstığı uzun ve hızlı ağlarda tam verimi yakalamak için ideal TCP penceresini belirler.

Kullanmak için bağlantı bant genişliğini ve gidiş-dönüş gecikmesini girin, ardından elde edilen BDP değerini ve önerilen TCP pencere boyutunu okuyun. Ağ mühendisleri, verimi ayarlayan sistem yöneticileri ve yüksek gecikmeli bağlantılarda yavaş aktarımları teşhis eden herkes için tasarlanmıştır.

İpucu: TCP penceresi BDP'den küçükse, hat ACK'leri beklerken boşta kalır ve verim düşer; bu yüzden arabelleklerinizi buna göre boyutlandırın. Her şey tarayıcınızda yerel olarak çalışır.

Sıkça Sorulan Sorular

Kod Uygulaması

def bandwidth_delay_product(bandwidth_mbps: float, rtt_ms: float) -> dict:
    """
    Calculate Bandwidth-Delay Product (BDP).
    BDP = Bandwidth × RTT
    This represents the amount of data in transit (in flight) at any time.
    """
    bandwidth_bps = bandwidth_mbps * 1_000_000
    rtt_sec = rtt_ms / 1000

    bdp_bits = bandwidth_bps * rtt_sec
    bdp_bytes = bdp_bits / 8
    bdp_kb = bdp_bytes / 1024
    bdp_mb = bdp_kb / 1024

    # Recommended TCP window size (2x BDP for headroom)
    tcp_window_bytes = int(bdp_bytes * 2)

    return {
        "bdp_bits": int(bdp_bits),
        "bdp_bytes": int(bdp_bytes),
        "bdp_kb": round(bdp_kb, 2),
        "bdp_mb": round(bdp_mb, 4),
        "tcp_window_recommended_bytes": tcp_window_bytes,
        "tcp_window_recommended_kb": round(tcp_window_bytes / 1024, 1),
    }

# Examples
scenarios = [
    ("Home broadband", 100, 20),
    ("Transatlantic fiber", 1000, 70),
    ("Satellite internet", 50, 600),
    ("Data center", 10_000, 1),
]

for name, bw, rtt in scenarios:
    r = bandwidth_delay_product(bw, rtt)
    print(f"{name} ({bw} Mbps, {rtt}ms RTT):")
    print(f"  BDP: {r['bdp_kb']:.1f} KB ({r['bdp_mb']:.2f} MB)")
    print(f"  Recommended TCP window: {r['tcp_window_recommended_kb']:.0f} KB")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.