# # Linux Google BBR congestión de TCP apertura algoritmo de control

algoritmos de control de congestión TCP tradicionales, protocolos basados ​​en la retroalimentación de la pérdida de paquetes.

Basado en "pérdida de realimentación" protocolo es un mecanismos de control de congestión pasiva, que hacen evaluación de la congestión de red basado en evento de pérdida de paquetes de red. Incluso cuando la carga de la red es alta, siempre y cuando no hay pérdida de congestión, el acuerdo no toma la iniciativa para reducir su velocidad de transmisión.

Este protocolo se puede utilizar para maximizar el ancho de banda de la red residual, lo que mejora el rendimiento. Sin embargo, debido al protocolo de retroalimentación basado en la pérdida de paquetes en la red cerca de la saturación demostraron agresiva, al tiempo que mejora en gran medida la utilización de ancho de banda de la red, pero, por otro lado, el protocolo de control de congestión en base a la retroalimentación es en gran medida la pérdida de paquetes mejorar la utilización de la red en el mismo medio de tiempo que un evento de pérdida de congestión no muy lejos, por lo que estos acuerdos al tiempo que mejora la utilización del ancho de banda de red también aumentan indirectamente la tasa de pérdida de paquetes de red, lo que resulta en una mayor fluctuación de toda la red.

¿Quién más ha llevado a la pérdida? Pérdida de paquetes no siempre conduce a la congestión, pérdida de paquetes puede haber muchas razones, tales como:

  • la mayoría del ganado del mundo firewall estrategia de pérdida de paquetes al azar GWF
  • señal de la red debido a desvanecimiento por trayectos múltiples (desvanecimiento por trayectos múltiples) causada por la atenuación (degradación de la señal)
  • Pérdida (caída de paquetes) causada por la obstrucción, además de paquetes dañados (paquetes corruptos) es rechazada por
  • hardware de red defectuoso, controlador de red mal funcionamiento de software
  • Efectos de la relación señal a ruido (SNR) de

La aparición de Google BBR

Como es natural, no nos gusta GWF esta estrategia de pérdida de paquetes al azar artificial, al pasar GWF, pérdida de datos, inmediatamente debemos re-contrato en este momento, el aumento de la frecuencia de la transmitida y no queremos reducir la velocidad, es decir, no quiero tradición congestión de TCP algoritmo de control de ir.

En consecuencia, no ha habido pérdida de paquetes basado en el algoritmo de control de congestión CDG, basado en el juicio en cuanto a retardo, retardo aumenta Descripción congestión, los datos comienza a acumularse en la memoria intermedia del router. Disminuir la ventana de transmisión. Sin embargo CDG algoritmo no es compatible con un algoritmo basado en la pérdida de paquetes, sólo los dispositivos globales se ponen CDG, pero esto no es posible, el equipo actualmente en el mercado no puede cambiar de repente a la CDG, por lo que Google no es feliz, Google los científicos han desarrollado un algoritmo de transición para resolver este problema, el nombre del algoritmo es BBR (cuello de botella del ancho de banda y RTT), que es una nueva algoritmos de control de congestión, BBR CDG es consistente con la idea de no pérdida de paquetes como la congestión señal de control, y CDG pero la diferencia es, la BBR y cúbico y reno pueden coexistir.

Comparación antes y después del uso de la red de rendimiento BBR:

BBR desarrollado por Google, para la pila de protocolos TCP núcleo de Linux para su uso, con el algoritmo BBR, servidores Linux puede mejorar significativamente el rendimiento y reducir la latencia de la conexión, simplemente BBR puede acelerar la velocidad de transmisión de la red. Además, el despliegue de BBR también es muy fácil, ya que el algoritmo requiere sólo el remitente, sin la necesidad de apoyar la red o el destinatario.

BBR desplegado en la instancia del servidor Unbuntu16.04

1, en primer lugar, para actualizar la versión del núcleo del servidor 4.9

2, permitirá BBR

Sysctl necesidad de modificar la configuración para permitir algoritmo BBR

En primer lugar lsmod plazo | vista BBR grep no es el BBR tcp_bbr # modprobe

# Echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf

# Echo "net.ipv4.tcp_congestion_control = BBR" >> /etc/sysctl.conf

# Sysctl -p

Es un error si el núcleo no admite la ejecución de comandos modprobe: modprobe: FATAL: tcp_bbr Módulo no encontrado.

Compruebe si bajo la BBR # sysctl net.ipv4.tcp_available_congestion_control habilitado

net.ipv4.tcp_available_congestion_control = reno cúbico Hybla BBR

# Sysctl -n net.ipv4.tcp_congestion_control

BBR

# Lsmod | grep BBR

tcp_bbr 20480 6

 

la información de configuración /etc/sysctl.conf es como sigue:


#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#

#kernel.domainname = example.com

# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3

##############################################################3
# Functions previously found in netbase
#

# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1

# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1

# Uncomment the next line to enable packet forwarding for IPv6
#  Enabling this option disables Stateless Address Autoconfiguration
#  based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1


###################################################################
# Additional settings - these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
net.ipv4.neigh.default.base_reachable_time_ms = 600000
net.ipv4.neigh.default.mcast_solicit = 20
net.ipv4.neigh.default.retrans_time_ms = 250
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth1.rp_filter=0
net.ipv4.tcp_fastopen=3
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

 

Referencia: https: //github.com/google/bbr

Publicados 170 artículos originales · ganado elogios 207 · Vistas 4,59 millones +

Supongo que te gusta

Origin blog.csdn.net/xiaoting451292510/article/details/105308764
Recomendado
Clasificación