{"id":11546,"date":"2022-11-07T10:52:46","date_gmt":"2022-11-07T10:52:46","guid":{"rendered":"https:\/\/techlib.net\/techedu\/?p=11546"},"modified":"2022-11-07T10:52:46","modified_gmt":"2022-11-07T10:52:46","slug":"backoff","status":"publish","type":"post","link":"https:\/\/techlib.net\/techedu\/backoff\/","title":{"rendered":"Backoff"},"content":{"rendered":"<p> En las redes inform\u00e1ticas, el backoff es un m\u00e9todo utilizado para espaciar las repetidas retransmisiones de los mismos datos. Cuando se env\u00eda un paquete de datos de un ordenador a otro, siempre existe la posibilidad de que el paquete se pierda en tr\u00e1nsito. Para tener en cuenta esto, el remitente suele esperar un corto periodo de tiempo antes de volver a enviar los datos. Si los datos siguen sin recibirse despu\u00e9s de varios intentos, el emisor aumentar\u00e1 el tiempo entre cada retransmisi\u00f3n. Esto se conoce como backoff exponencial. <br \/>\n El prop\u00f3sito del backoff es dar tiempo a la red para recuperarse de cualquier congesti\u00f3n que pueda estar causando la p\u00e9rdida de datos, y evitar sobrecargar la red con demasiadas retransmisiones. <\/p>\n<h5> \u00bfQui\u00e9n invent\u00f3 el backoff exponencial?<\/h5>\n<p> El t\u00e9rmino \"exponential backoff\" fue acu\u00f1ado por Vineet Gupta en 1996, en un art\u00edculo titulado \"Analysis and Implementation of Exponential Backoff Algorithms for CSMA\/CD Networks\". <br \/>\n En el documento, Gupta define el backoff exponencial como \"una clase de algoritmos utilizados en redes de conmutaci\u00f3n de paquetes para espaciar las retransmisiones en un intento de reducir o eliminar las colisiones\". A continuaci\u00f3n, describe c\u00f3mo funciona el algoritmo y c\u00f3mo puede aplicarse a las redes CSMA\/CD. <br \/>\n El art\u00edculo se public\u00f3 en la revista IEEE\/ACM Transactions on Networking. <\/p>\n<h5> \u00bfC\u00f3mo se usa retry en Python?<\/h5>\n<p> El m\u00f3dulo retry es una biblioteca sencilla que permite reintentar c\u00f3digo que puede fallar. Es \u00fatil para los casos en los que quieres reintentar una funci\u00f3n o m\u00e9todo si falla, como cuando est\u00e1s haciendo llamadas a la red y quieres reintentar si la conexi\u00f3n falla. <br \/>\n Para usar el m\u00f3dulo retry, primero necesitas importarlo: <br \/>\n import retry <\/p>\n<p> Luego, puedes usar el decorador @retry para decorar una funci\u00f3n o m\u00e9todo que quieras reintentar: <br \/>\n @retry <br \/>\n def mi_funci\u00f3n(): <br \/>\n # hacer algo que puede fallar <\/p>\n<p> Si mi_funci\u00f3n() falla, se reintentar\u00e1 autom\u00e1ticamente. Tambi\u00e9n puedes especificar el n\u00famero de veces a reintentar, y el retraso entre reintentos: <br \/>\n @retry(tries=3, delay=1) <br \/>\n def mi_funci\u00f3n(): <br \/>\n # hacer algo que puede fallar <\/p>\n<p> Si mi_funci\u00f3n() falla, se reintentar\u00e1 autom\u00e1ticamente hasta tres veces, con un retraso de 1 segundo entre cada reintento. <\/p>\n<p> \u00bfEs Kafka no bloqueante?  No hay una respuesta sencilla a esta pregunta, ya que depende de c\u00f3mo se defina \"no bloqueante\". Si te refieres a que Kafka no bloquea al productor o al consumidor cuando env\u00eda o recibe mensajes, entonces la respuesta es s\u00ed. Sin embargo, si te refieres a que Kafka no bloquea al broker cuando procesa los mensajes, entonces la respuesta es no. <\/p>\n<h4> \u00bfEs Kafka no bloqueante?<\/h4>\n<p> No hay una respuesta sencilla a esta pregunta, ya que depende de c\u00f3mo se defina \"no bloqueante\". Si te refieres a que Kafka no bloquea al productor o al consumidor cuando env\u00eda o recibe mensajes, entonces la respuesta es s\u00ed. Sin embargo, si te refieres a que Kafka no bloquea al broker cuando procesa los mensajes, entonces la respuesta es no.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En las redes inform\u00e1ticas, el backoff es un m\u00e9todo utilizado para espaciar las repetidas retransmisiones de los mismos datos. Cuando se env\u00eda un paquete de datos de un ordenador a otro, siempre existe la posibilidad de que el paquete se pierda en tr\u00e1nsito. Para tener en cuenta esto, el remitente suele esperar un corto periodo &#8230; <a title=\"Backoff\" class=\"read-more\" href=\"https:\/\/techlib.net\/techedu\/backoff\/\" aria-label=\"Leer m\u00e1s sobre Backoff\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":2919,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[112],"tags":[],"class_list":["post-11546","post","type-post","status-publish","format-standard","hentry","category-malware"],"_links":{"self":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/11546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/users\/2919"}],"replies":[{"embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/comments?post=11546"}],"version-history":[{"count":0,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/posts\/11546\/revisions"}],"wp:attachment":[{"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/media?parent=11546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/categories?post=11546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techlib.net\/techedu\/wp-json\/wp\/v2\/tags?post=11546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}