Bandwidth Delay Product Calculator
Calculer le BDP pour l'optimisation des tampons TCP et obtenir les tailles de fenêtres recommandées et paramètres sysctl.
À propos de cet outil
Le produit bande passante-délai (BDP) est la bande passante du lien multipliée par son temps d'aller-retour, et il indique exactement quelle quantité de données peut circuler sur le câble à tout instant. Ce nombre fixe la fenêtre TCP idéale pour atteindre le débit maximal sur les réseaux longs et rapides, où la haute vitesse se conjugue à la latence élevée et où une fenêtre trop petite bride discrètement votre transfert.
Pour l'utiliser, saisissez la bande passante du lien et la latence d'aller-retour, puis lisez le BDP obtenu et la taille de fenêtre TCP suggérée. Il est conçu pour les ingénieurs réseau, les administrateurs système qui ajustent le débit et toute personne diagnostiquant des transferts lents sur des liens à forte latence.
Astuce : si la fenêtre TCP est plus petite que le BDP, le lien reste inactif en attendant les ACK et le débit s'effondre, alors dimensionnez vos tampons en conséquence. Tout s'exécute localement dans votre navigateur.
Questions Fréquentes
Implémentation du Code
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.