<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1646-9895</journal-id>
<journal-title><![CDATA[RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação]]></journal-title>
<abbrev-journal-title><![CDATA[RISTI]]></abbrev-journal-title>
<issn>1646-9895</issn>
<publisher>
<publisher-name><![CDATA[AISTI - Associação Ibérica de Sistemas e Tecnologias de Informação]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1646-98952018000500006</article-id>
<article-id pub-id-type="doi">10.17013/risti.30.62-77</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Mecanismo de control de congestión para transferencias de datos en Multicast múltiple]]></article-title>
<article-title xml:lang="en"><![CDATA[Congestion control mechanism for data transfers in multiple Multicast]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Palacios]]></surname>
<given-names><![CDATA[Raúl H.]]></given-names>
</name>
<xref ref-type="aff" rid="A1 "/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Balseca]]></surname>
<given-names><![CDATA[María]]></given-names>
</name>
<xref ref-type="aff" rid="A4"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Gallo]]></surname>
<given-names><![CDATA[Víctor]]></given-names>
</name>
<xref ref-type="aff" rid="A3"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Andrade]]></surname>
<given-names><![CDATA[Nilo]]></given-names>
</name>
<xref ref-type="aff" rid="A5"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Pisco]]></surname>
<given-names><![CDATA[Juan-Carlos]]></given-names>
</name>
<xref ref-type="aff" rid="A3"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Marcillo]]></surname>
<given-names><![CDATA[Fabricio]]></given-names>
</name>
<xref ref-type="aff" rid="A2 "/>
</contrib>
</contrib-group>
<aff id="AA1">
<institution><![CDATA[,Universidad Autónoma del Estado de Hidalgo Escuela Superior de Huejutla ]]></institution>
<addr-line><![CDATA[Huejutla ]]></addr-line>
<country>México</country>
</aff>
<aff id="AA2">
<institution><![CDATA[,Centro de Investigación en Tecnologías de la Información y Comunicación  ]]></institution>
<addr-line><![CDATA[Granada ]]></addr-line>
<country>España</country>
</aff>
<aff id="AA3">
<institution><![CDATA[,Universidad Técnica Estatal de Quevedo Facultad Ciencias de la Ingeniería ]]></institution>
<addr-line><![CDATA[Quevedo ]]></addr-line>
<country>Ecuador</country>
</aff>
<aff id="A">
<institution><![CDATA[,jpisco@uteq.edu.ec  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="AA4">
<institution><![CDATA[,Instituto Tecnológico Juan Bautista Aguirre  ]]></institution>
<addr-line><![CDATA[Guayas ]]></addr-line>
<country>Ecuador</country>
</aff>
<aff id="AA5">
<institution><![CDATA[,Universidad Laica Eloy Alfaro de Manabí  ]]></institution>
<addr-line><![CDATA[Manabí ]]></addr-line>
<country>Ecuador</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2018</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2018</year>
</pub-date>
<numero>30</numero>
<fpage>62</fpage>
<lpage>77</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_arttext&amp;pid=S1646-98952018000500006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_abstract&amp;pid=S1646-98952018000500006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.pt/scielo.php?script=sci_pdf&amp;pid=S1646-98952018000500006&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En la actualidad es común compartir gran cantidad de información entre los sistemas y los mecanismos de control de congestión son indispensables para evitar la saturación en las redes de datos. Aunque se han propuesto diferentes mecanismos, las investigaciones actuales siguen siendo de interés en este campo de la ciencia. En este artículo, se propone un mecanismo de control de congestión basado en ventana (window-based) para transferencias de datos en escenarios de multicast múltiple. El algoritmo propuesto tiene como objetivo principal evitar la pérdida de paquetes manteniendo un equilibrio en la tasa de envío de los emisores. Además, el algoritmo constantemente analiza el estado de saturación del conmutador y de los nodos receptores considerando la tecnología de almacenamiento utilizada. Experimentos y análisis muestran que se consigue un ancho de banda agregado de red considerablemente alto, se evita en medida de lo posible la retransmisión de paquetes perdidos, aun cuando en el sistema de pruebas existe tráfico de red adicional.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[Currently, it is common to share a lot of information between systems and congestion control mechanisms are essential to avoid saturation in data networks. Although different mechanisms have been proposed, current research follows a focus on this area of science. In this paper, we propose a window-based congestion control mechanism for data transfers in multiple multicast scenarios. The main purpose of the proposed algorithm is to avoid packet loss maintaining a balance in the sending rate of senders. In addition, the algorithm continually analyzes the state of the saturation of the switch and of the receiver nodes considering the storage technology used. Analysis and experiments show that a considerably high network bandwidth is achieved, retransmission of lost packets is avoided as much as possible, even though there is additional network traffic in the test system.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[control de congestión]]></kwd>
<kwd lng="es"><![CDATA[UDP]]></kwd>
<kwd lng="es"><![CDATA[múltiple multicast]]></kwd>
<kwd lng="es"><![CDATA[multicast]]></kwd>
<kwd lng="en"><![CDATA[congestion control]]></kwd>
<kwd lng="en"><![CDATA[UDP]]></kwd>
<kwd lng="en"><![CDATA[multiple multicast]]></kwd>
<kwd lng="en"><![CDATA[multicast]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font size="2"><b>ART&Iacute;CULOS</b></font></p>     <p><font size="4"><b>Mecanismo de control de congesti&oacute;n para transferencias de datos en Multicast m&uacute;ltiple</b></font></p>     <p><font size="3"><b>Congestion control mechanism for data transfers in multiple Multicast</b></font></p>     <p><b>Ra&uacute;l H. Palacios <sup>1, 2</sup>, Mar&iacute;a Balseca <sup>4</sup>, V&iacute;ctor Gallo <sup>3</sup>, Nilo Andrade <sup>5</sup>, Juan-Carlos Pisco <sup>3, </sup>Fabricio Marcillo <sup>2,3</sup></b></p>     <p><sup>1</sup> Universidad Aut&oacute;noma del Estado de Hidalgo, Escuela Superior de Huejutla, CP. 43000, Huejutla, M&eacute;xico. <a href="mailto:raulhp@ugr.es">raulhp@ugr.es</a></p>     <p><sup>2</sup> Centro de Investigaci&oacute;n en Tecnolog&iacute;as de la Informaci&oacute;n y Comunicaci&oacute;n, Granada, CP. 18014, Granada, Espa&ntilde;a. <a href="mailto:fmarcillo@uteq.edu.ec">fmarcillo@uteq.edu.ec</a></p>     <p><sup>3</sup> Universidad T&eacute;cnica Estatal de Quevedo, Facultad Ciencias de la Ingenier&iacute;a, CP. 120501, Quevedo, Ecuador. <a href="mailto:vgallo@uteq.edu.ec">vgallo@uteq.edu.ec</a>, <a href="mailto:jpisco@uteq.edu.ec">jpisco@uteq.edu.ec</a></p>     <p><sup>4</sup> Instituto Tecnol&oacute;gico Juan Bautista Aguirre, Daule, CP. 090601, Guayas, Ecuador. <a href="mailto:maria.balseca@itsjba.edu.ec">maria.balseca@itsjba.edu.ec</a></p>     <p><sup>5</sup> Universidad Laica Eloy Alfaro de Manab&iacute;, Chone, CP. 130301, Manab&iacute;, Ecuador. <a href="mailto:nilo.andrade@uleam.edu.ec">nilo.andrade@uleam.edu.ec</a></p> <hr/>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><b>RESUMEN</b></p>     <p>En la actualidad es com&uacute;n compartir gran cantidad de informaci&oacute;n entre los sistemas y los mecanismos de control de congesti&oacute;n son indispensables para evitar la saturaci&oacute;n en las redes de datos. Aunque se han propuesto diferentes mecanismos, las investigaciones actuales siguen siendo de inter&eacute;s en este campo de la ciencia. En este art&iacute;culo, se propone un mecanismo de control de congesti&oacute;n basado en ventana (<i>window-based</i>) para transferencias de datos en escenarios de multicast m&uacute;ltiple. El algoritmo propuesto tiene como objetivo principal evitar la p&eacute;rdida de paquetes manteniendo un equilibrio en la tasa de env&iacute;o de los emisores. Adem&aacute;s, el algoritmo constantemente analiza el estado de saturaci&oacute;n del conmutador y de los nodos receptores considerando la tecnolog&iacute;a de almacenamiento utilizada. Experimentos y an&aacute;lisis muestran que se consigue un ancho de banda agregado de red considerablemente alto, se evita en medida de lo posible la retransmisi&oacute;n de paquetes perdidos, aun cuando en el sistema de pruebas existe tr&aacute;fico de red adicional.</p>     <p><b>Palabras-clave</b>: control de congesti&oacute;n; UDP; m&uacute;ltiple multicast; multicast.</p> <hr/>     <p>&nbsp;</p>     <p><b>ABSTRACT</b></p>     <p>Currently, it is common to share a lot of information between systems and congestion control mechanisms are essential to avoid saturation in data networks. Although different mechanisms have been proposed, current research follows a focus on this area of science. In this paper, we propose a window-based congestion control mechanism for data transfers in multiple multicast scenarios. The main purpose of the proposed algorithm is to avoid packet loss maintaining a balance in the sending rate of senders. In addition, the algorithm continually analyzes the state of the saturation of the switch and of the receiver nodes considering the storage technology used. Analysis and experiments show that a considerably high network bandwidth is achieved, retransmission of lost packets is avoided as much as possible, even though there is additional network traffic in the test system.</p>     <p><b>Keywords:</b> congestion control; UDP; multiple multicast; multicast.</p> <hr/>     <p>&nbsp;</p>     <p>1. Introducci&oacute;n</p>     <p>En el campo de la inform&aacute;tica, las comunicaciones permiten el intercambio de datos entre computadores. En los inicios, la comunicaci&oacute;n se realizaba entre una &uacute;nica fuente y un &uacute;nico destino. Con la evoluci&oacute;n constante de las tecnolog&iacute;as de comunicaci&oacute;n se ha alcanzado un progreso notable permitiendo el env&iacute;o de datos desde una fuente a m&uacute;ltiples destinos simult&aacute;neamente, conocido como comunicaci&oacute;n multicast. La utilizaci&oacute;n y aprovechamiento de estas comunicaciones siguen teniendo auge en la actualidad y contin&uacute;an siendo un tema de inter&eacute;s para la investigaci&oacute;n. La comunicaci&oacute;n que se realiza en una red de computadores es esencial para los sistemas actuales que requieren transferencias entre estos, por citar un ejemplo se mencionan los sistemas de almacenamiento distribuido. Por otro lado, en (Wittmann &amp; Zitterbart, 2000) se muestra un ejemplo de la contribuci&oacute;n de las comunicaciones multicast como &eacute;xito importante.</p>     ]]></body>
<body><![CDATA[<p>Habilitar el tr&aacute;fico multicast implica utilizar el protocolo UDP para el transporte de los datos. Esto tiene como desventaja que no existe fiabilidad en la entrega de los datos. A diferencia del protocolo TCP que es un protocolo orientado a conexi&oacute;n y que mantiene sus propios mecanismos (Ait-Hellal &amp; Altman, 2000; Ha, Rhee, &amp; Xu, 2008; Leith, Shorten, &amp; McCullagh, 2008; Xu, Harfoush, &amp; Rhee, 2004) que garantizan la entrega de los datos a todos los destinos. Aunque al utilizar UDP para permitir el tr&aacute;fico multicast garantiza la entrega a diferentes destinos simult&aacute;neamente con menor consumo de recursos de c&oacute;mputo, existen dos desventajas destacables: 1<i>) p&eacute;rdida de paquetes</i>: es posible la p&eacute;rdida de paquetes debido a la saturaci&oacute;n en la red, adem&aacute;s de que se trata de un protocolo no orientado a conexi&oacute;n; <i>2) congesti&oacute;n</i>: la falta de mecanismos para ajustar la tasa de env&iacute;o puede dar lugar a la congesti&oacute;n de la red. Consecuentemente, para el desarrollo de aplicaciones basadas en multicast es necesario considerar aspectos de: fiabilidad, control de flujo, <i>control de congesti&oacute;n</i> y gesti&oacute;n de grupos. </p>     <p>El mecanismo de control de congesti&oacute;n permite prevenir la saturaci&oacute;n en la red (espec&iacute;ficamente en el conmutador) o en el b&uacute;fer de los nodos receptores (t&iacute;picamente debido a los discos lentos - HDD). En un entorno multicast es conveniente conocer informaci&oacute;n detallada de los receptores, tal como, capacidad actual de b&uacute;fer de recepci&oacute;n, direcciones multicast desde donde se reciben datos, velocidad de escritura en disco (disco HDD o SSD), etc., con esto se facilita el flujo de datos desde varios emisores y utilizar esta informaci&oacute;n como medida preventiva para la congesti&oacute;n, de tal manera que sea posible garantizar la fiabilidad en la entrega de los datos a todos los receptores. Como ejemplo, en un sistema de almacenamiento distribuido el control de congesti&oacute;n juega un papel importante debido a que el tr&aacute;fico generado por estos sistemas suele ser elevado y persistente en la red cuando se trata de env&iacute;os muy grandes como es el caso del sistema de ficheros Hadoop Distributed File System (HDFS) dise&ntilde;ado para almacenar conjuntos de datos muy grandes de manera confiable y transmitirlos a un ancho de banda alto a las aplicaciones de los usuarios (Borthakur, 2008; Shvachko, Kuang, Radia, &amp; Chansler, 2010). Al igual aplicaciones en entornos tales como (D&iacute;az, Mu&ntilde;oz, 2018; Palos-S&aacute;nchez, Arenas-M&aacute;rquez, Aguayo-Camacho, 2017) se podr&iacute;an beneficiar.</p>     <p>El presente art&iacute;culo se centra en la implementaci&oacute;n de un mecanismo de control de congesti&oacute;n para comunicaciones multicast m&uacute;ltiple evaluado en un entorno real de red de ordenadores, es decir, se eval&uacute;a con tr&aacute;fico real, a diferencia de las diversas propuestas existentes en la literatura de mecanismos de control de congesti&oacute;n que se desarrollan en entornos simulados.</p>     <p>En la siguiente secci&oacute;n se mencionan algunos trabajos que tienen relaci&oacute;n con nuestra propuesta. Posteriormente en la secci&oacute;n 3., se describe en mayor detalle el algoritmo propuesto. Seguido de la secci&oacute;n 4 con la evaluaci&oacute;n y an&aacute;lisis de la propuesta y, al finalizar se dan las conclusiones observadas en el presente art&iacute;culo.</p>     <p>2. Trabajo relacionado</p>     <p>En la literatura revisada (Fall &amp; Stevens, 2011; Wittmann &amp; Zitterbart, 2000) se ilustra que los mecanismos de control de congesti&oacute;n son basados en ventana (<i>window-based</i>) y en tasa de env&iacute;o (<i>rate-based</i>) y que son ampliamente utilizados por el protocolo TCP, tales como BIC (Xu et al., 2004), CUBIC, Reno, Vegas, por mencionar algunos.</p>     <p>Con el fin de dar a conocer un poco m&aacute;s el campo de aplicaci&oacute;n de las comunicaciones multicast, en el presente trabajo se ha analizado una serie de protocolos de comunicaci&oacute;n (mejor conocidos como Protocolo Multicast Fiable, RMP - Reliable Multicast Protocol), espec&iacute;ficamente se muestra el mecanismo de control de congesti&oacute;n implementado, seg&uacute;n (Fall &amp; Stevens, 2011; Wittmann &amp; Zitterbart, 2000), para cada uno de estos protocolos. Como se puede observar en la <a href="#t1">Tabla 1</a>, los protocolos PGM (Gemmell, Montgomery, Speakman, &amp; Crowcroft, 2003), RMTP (Paul, Sabnani, Lin, &amp; Bhattacharyya, 1997) y TMTP (Yavatkar, Griffoen, &amp; Sudan, 1995) utilizan implementaciones propias o no especifican sobre qu&eacute; mecanismo han basado la implementaci&oacute;n, mientras que RDCM (D. Li et al., 2014) y NORM (Adamson, Bormann, Handley, &amp; Macker, 2009) se enfocan en los principios de BIC y TCP-Friendly, respectivamente, adaptados a comunicaciones multicast. En cambio, los protocolos (no se mencionan en la <a href="#t1">Tabla 1</a>) CooPNC (Miliotis, Alonso, &amp; Verikoukis, 2014), VCMTP (J. Li &amp; Veeraraghavan, 2012), LBRM (Holbrook, Singhal, &amp; Cheriton, 1995) y en (Kasera, Hj&aacute;lmt&yacute;sson, Towsley, &amp; Kurose, 2000) no especifican implementaci&oacute;n de mecanismo de control de congesti&oacute;n.</p>     <p>&nbsp;</p>     <p align="center"><a name="t1"></a><img src="/img/revistas/rist/n30/30a06t1.jpg"/></p>     
<p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>A continuaci&oacute;n, se describe espec&iacute;ficamente los algoritmos de control de congesti&oacute;n expuestos en la <a href="#t1">Tabla 1</a>.</p>     <p>RDCM mantiene un control de congesti&oacute;n ajustando la tasa de env&iacute;o del emisor donde la tasa de env&iacute;o no debe ser mayor a la tasa de recepci&oacute;n del lado receptor. Para ello, se implementa un mecanismo de control de congesti&oacute;n basado en ventana donde cada receptor mantiene una ventana de congesti&oacute;n individual. El tama&ntilde;o de la ventana se actualiza usando el algoritmo BIC (Xu et al., 2004) y la p&eacute;rdida de paquetes se usa como se&ntilde;al de congesti&oacute;n. Idealmente, cada receptor puede: <i>a) </i>detectar inmediatamente p&eacute;rdida de paquetes en el momento que ocurre, <i>b) </i>actualizar la ventana de congesti&oacute;n y enviar al nodo emisor.</p>     <p>Por otro lado, en el protocolo NORM se especifica un mecanismo de control de congesti&oacute;n, NORM-CC, basado en el esquema de TCP-Friendly multicast (TFMCC). La transmisi&oacute;n de datos en NORM se basa en tasa de env&iacute;o a diferencia de los algoritmos de control de congesti&oacute;n basados en ventana como es el caso de TCP. El funcionamiento de NORM-CC b&aacute;sicamente el receptor que experimenta p&eacute;rdida de paquetes que corresponde a la tasa de env&iacute;o calculada m&aacute;s baja se identifica como el receptor actual con mayor limitaci&oacute;n de recepci&oacute;n de paquetes (Current Limiting Receiver - CLR). Como medida principal para el funcionamiento del algoritmo de control de congesti&oacute;n, el emisor en NORM transmite mensajes peri&oacute;dicamente que contienen informaci&oacute;n de control para conocer el estado de los receptores. Estos responden con mensajes de retroalimentaci&oacute;n para determinar el estado de congesti&oacute;n y con ello ajustar la tasa de env&iacute;o de los emisores.</p>     <p>Mientras en el protocolo PGM se presenta un esquema de control de congesti&oacute;n, PGMCC, para comunicaciones multicast de tasa de env&iacute;o &uacute;nica (single-rate) compatible con TCP. PGMCC es un mecanismo de control de congesti&oacute;n basado en ventana y tiene como objetivo principal hacer que el emisor no transmita m&aacute;s r&aacute;pido que el receptor m&aacute;s lento dentro del sistema. PGMCC funciona de tal manera que el emisor monitorea continuamente la informaci&oacute;n recibida en mensajes NAK desde los receptores. La informaci&oacute;n que proporcionan los receptores es fundamental para PGM y consta de: <i>a) </i>identidad del receptor, <i>b) </i>&uacute;ltimo n&uacute;mero de secuencia recibido, y <i>c) </i>tasa de p&eacute;rdida de paquetes en el nodo local.</p>     <p>En cuanto al protocolo RMTP, utiliza un mecanismo de control de congesti&oacute;n basado en ventana d&oacute;nde el emisor utiliza una ventana de congesti&oacute;n <i>cong_win</i> para recudir la velocidad de transmisi&oacute;n cuando existe congesti&oacute;n en el sistema. El mecanismo implementado utiliza un procedimiento de ajuste lineal de ventana llamado <i>slow-start</i> que se utiliza en implementaciones de TCP. B&aacute;sicamente, el emisor usa un inicio lento en espera de reconocimientos positivos (ACK) desde los receptores.</p>     <p>En el protocolo TMTP utiliza una combinaci&oacute;n de t&eacute;cnicas basadas en tasa de env&iacute;o y en ventana. El componente basado en tasa de env&iacute;o proh&iacute;be a los emisores enviar datos a una tasa mayor que la tasa m&aacute;xima de transmisi&oacute;n predefinida. La tasa m&aacute;xima de transmisi&oacute;n se define al momento de crear el grupo multicast y nunca cambia. Mientras que, en el mecanismo basado en ventana disminuye la tasa de env&iacute;o dividiendo el tama&ntilde;o de la ventana y retrasando las retransmisiones el mayor tiempo posible, lo cual aumenta la posibilidad de recibir un acuse ACK de recibido.</p>     <p>Como se puede observar en el an&aacute;lisis previo, las implementaciones se realizan siguiendo los principios de los algoritmos de control de congesti&oacute;n utilizados en TCP. Al mismo tiempo, las implementaciones tienen un enfoque de transmisi&oacute;n de datos en el que un emisor env&iacute;a datos a diferentes receptores, tal como se muestra en la <a href="#f1">Figura 1</a>., y en ocasiones utilizan una configuraci&oacute;n en &aacute;rbol para hacer la distribuci&oacute;n de los datos (D. Li et al., 2014). En cambio, en el escenario de estudio para evaluar nuestra propuesta se busca utilizar al m&aacute;ximo todos los recursos existentes en el sistema de tal manera que los nodos tengan las funciones de emisor/receptor. Por lo tanto, nuestro mecanismo de control de congesti&oacute;n analiza constantemente el estado de los nodos, del conmutador y considera la tecnolog&iacute;a de almacenamiento utilizada para ajustar la tasa de transferencia desde los emisores.</p>     <p>&nbsp;</p>     <p align="center"><a name="f1"></a><img src="/img/revistas/rist/n30/30a06f1.jpg"/></p>     
<p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>3. Mecanismo de control de congesti&oacute;n</p>     <p>T&iacute;picamente, los sistemas actuales de almacenamiento distribuido se ejecutan en entornos de cl&uacute;ster de computadores, donde las transferencias de datos son elevadas. Aunado a esto, cuando existen m&uacute;ltiples transferencias multicast simult&aacute;neamente, la p&eacute;rdida de paquetes se podr&iacute;a originar cuando:</p>     <p>&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; El b&uacute;fer del conmutador se satura debido al tama&ntilde;o peque&ntilde;o de estos (en nuestro caso 1 Mbyte).</p>     <p>&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; El sistema operativo no tiene la capacidad de gestionar los paquetes recibidos.</p>     <p>&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; La aplicaci&oacute;n no puede procesar todo el tr&aacute;fico multicast cuando se utilizan discos lentos.</p>     <p>&nbsp;</p>     <p>Siendo as&iacute;, en el presente trabajo se propone un mecanismo de control de congesti&oacute;n basado en ventana para escenarios donde se requiere hacer m&uacute;ltiples transferencias multicast. Adem&aacute;s, el mecanismo propuesto monitorea constantemente el estado del b&uacute;fer del conmutador y la tecnolog&iacute;a de almacenamiento utilizada en el sistema, tal como se muestra en la <a href="#f2">Figura 2</a>, en la que se asume que, en la configuraci&oacute;n un nodo receptor podr&iacute;a recibir datos desde uno, dos o tres emisores simult&aacute;neamente.</p>     <p>&nbsp;</p>     <p align="center"><a name="f2"></a><img src="/img/revistas/rist/n30/30a06f2.jpg"/></p>     
<p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><b>3.1.</b> <b>Detalles de la implementaci&oacute;n</b></p>     <p>La implementaci&oacute;n se ha desarrollado en lenguaje C en la distribuci&oacute;n CentOS de Linux. Se ha desarrollado la codificaci&oacute;n del cliente y del servidor donde reside el mecanismo de control de congesti&oacute;n propuesto. Ambas aplicaciones utilizan sockets UDP para habilitar el tr&aacute;fico multicast. B&aacute;sicamente los clientes, reciben datos y los escriben en disco, y cada determinado tiempo env&iacute;an informaci&oacute;n de control para ajustar la tasa de env&iacute;o por el mecanismo de control de congesti&oacute;n propuesto en el lado de los emisores. </p>     <p>La informaci&oacute;n de control se env&iacute;a desde los receptores a los emisores a trav&eacute;s de un paquete Broadcast (ver <a href="#f3">Figura 3</a>).</p>     <p>&nbsp;</p>     <p align="center"><a name="f3"></a><img src="/img/revistas/rist/n30/30a06f3.jpg"/></p>     
<p>&nbsp;</p>     <p>Los campos de la <a href="#f3">Figura 3</a> se describen a continuaci&oacute;n para una mejor comprensi&oacute;n del funcionamiento del mecanismo de control propuesto.</p>     <p>0.&nbsp;&nbsp;&nbsp; <i>marca de tiempo</i>: almacena la marca de tiempo cuando el algoritmo prepara el paquete Broadcast a enviar.</p>     <p>1.&nbsp;&nbsp;&nbsp;&nbsp; <i>&uacute;ltimo paquete recibido</i> (<i>upr</i>): almacena la secuencia del &uacute;ltimo paquete recibido.</p>     <p>2.&nbsp;&nbsp;&nbsp; <i>total de paquetes recibidos</i> (<i>tpr</i>): contabiliza el total de paquetes recibidos en el socket.</p>     ]]></body>
<body><![CDATA[<p>3.&nbsp;&nbsp;&nbsp; <i>total de paquetes perdidos</i> (<i>tpp</i>): contabiliza el total de paquetes perdidos.</p>     <p>4.&nbsp;&nbsp;&nbsp; <i>bytes escritos en disco</i> (<i>bed</i>): almacena el total de bytes escritos en el disco.</p>     <p>&nbsp;</p>     <p>El mecanismo de control de congesti&oacute;n es usado para prevenir o evitar la congesti&oacute;n de la red. Para lograrlo se apoya del uso de:</p>     <p>&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>reconocimientos negativos (NAK)</i>: de tal manera que los receptores solo env&iacute;an solicitud de retransmisi&oacute;n cada vez que se pierde un paquete.</p>     <p>&middot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>ventana de congesti&oacute;n</i>: se utiliza una ventana de congesti&oacute;n adaptativa de acuerdo a la configuraci&oacute;n del sistema, primordialmente cuando los receptores se asocian a diferentes direcciones multicast (descrito en la secci&oacute;n 3).</p>     <p>&nbsp;</p>     <p>Debido al tama&ntilde;o reducido del b&uacute;fer del conmutador, &eacute;ste podr&iacute;a ser la principal causa de p&eacute;rdida de paquetes cuando los emisores env&iacute;an datos a la m&aacute;xima capacidad de env&iacute;o (en nuestro caso se ha utilizado una red Gigabit que puede alcanzar una tasa de env&iacute;o de hasta 120MB/s en cada emisor). En el algoritmo, para resolver esta situaci&oacute;n se aprovecha la informaci&oacute;n de control que se env&iacute;a desde los receptores a los emisores, de tal manera que se calcula la diferencia <i>upr</i> (n&uacute;mero secuencia del <i>&uacute;ltimo paquete recibido</i> en el receptor) y <i>upe</i> (n&uacute;mero de secuencia del <i>&uacute;ltimo paquete enviado</i> en el emisor)<i>. </i>La siguiente ecuaci&oacute;n simple ilustra el c&aacute;lculo de la diferencia mencionada: <i>&#916;T<sub>x</sub> R<sub>x</sub> =upr - upe</i> y se calcula en el lado del emisor.</p>     <p>El mecanismo de control de congesti&oacute;n se calcula en el lado del emisor y de manera peri&oacute;dica recibe informaci&oacute;n de control desde los receptores. Cada paquete con informaci&oacute;n de control (<a href="#f3">Figura 3</a>) se computa en tiempo real por cada hebra de recepci&oacute;n en cada receptor y se env&iacute;a a los emisores y la informaci&oacute;n solo se procesa en los emisores correspondientes. Una vez que la informaci&oacute;n sea procesada en el mecanismo de control de congesti&oacute;n de los emisores, se calcula lo siguiente considerando el n&uacute;mero de emisores:</p>     <p>1.&nbsp;&nbsp;&nbsp;&nbsp; tasa m&aacute;xima de env&iacute;o de datos (o tasa de env&iacute;o cr&iacute;tica) sin p&eacute;rdida de paquetes, la tasa de env&iacute;o se ajusta din&aacute;micamente y se incluye un retardo de tiempo T<sub>CWND</sub> entre cada CWND.</p>     ]]></body>
<body><![CDATA[<p>2.&nbsp;&nbsp;&nbsp; tama&ntilde;o de ventana de congesti&oacute;n (CWND) &oacute;ptimo.</p>     <p>3.&nbsp;&nbsp;&nbsp; ancho de banda de red y de escritura en disco de los receptores.</p>     <p>En cuanto al funcionamiento del algoritmo propuesto en este art&iacute;culo, la <a href="#f4">Figura 4</a> ilustra la funci&oacute;n b&aacute;sica que se realiza en la propuesta. Como se ha mencionado anteriormente, el mecanismo de control de congesti&oacute;n se ejecuta en el lado de los emisores y recibe como par&aacute;metros de entrada la informaci&oacute;n de control que se env&iacute;a desde los emisores. Al momento de iniciar se crea la funci&oacute;n manejador_brodcast() que se utiliza para recibir la informaci&oacute;n de los receptores, con la informaci&oacute;n se calcula: el n&uacute;mero de emisores (<i>n_emisores &lt;- sumatoria_i</i>) en cada receptor y el ancho de banda agregado (<i>BWr &lt;- sumatoria_BWi</i>) que en la <i>marca de tiempo</i> recibe el receptor, valores &oacute;ptimos para <i>CWND</i> y <i>Tcwnd</i>. Si el n&uacute;mero de emisores en determinado receptor es 1 (<i>n_emisores = 1</i>) el algoritmo asigna los valores m&aacute;s &oacute;ptimos de <i>CWND</i> y para calcular <i>Tcwnd</i> se asigna <i>T_1</i> si <i>buffer &lt; 80%</i> (es decir, si el b&uacute;fer de recepci&oacute;n tiene menos del 80% de ocupaci&oacute;n), en caso opuesto se <i>Tcwnd = T_1w</i>.</p>     <p>&nbsp;</p>     <p align="center"><a name="f4"></a><img src="/img/revistas/rist/n30/30a06f4.jpg"/></p>     
<p>&nbsp;</p>     <p>Cuando <i>n_emisores &gt; 1</i> el algoritmo asume que existen 2 o hasta 3 emisores (3 emisores es el m&aacute;ximo permitido en este estudio), por lo cual, la probabilidad de congesti&oacute;n es mayor. Consecuentemente, el algoritmo asigna un nuevo valor de <i>CWND</i>. Aunado a esto, el algoritmo calcula un nuevo valor para <i>Tcwnd</i>, de tal manera que, si <i>buffer &lt; 80%, Tcwnd = t1</i> y en caso contrario se asigna <i>t1w</i>. Siendo as&iacute;, <i>Tcwnd</i> (Ver <a href="#f5">Figura 5</a>) es el retardo que agrega el algoritmo entre cada ventana de env&iacute;o y, se usa <i>T_1</i> y <i>t1</i> son los retardos utilizados para conseguir una tasa m&aacute;xima de env&iacute;o de datos desde los emisores, mientras que <i>T_1w</i> y <i>t1w</i> se utilizan para enviar datos a una tasa m&iacute;nima de env&iacute;o.</p>     <p>&nbsp;</p>     <p align="center"><a name="f5"></a><img src="/img/revistas/rist/n30/30a06f5.jpg"/></p>     
<p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>Con el fin de detectar congesti&oacute;n en el conmutador, el algoritmo compara el ancho de banda de los receptores con el ancho de banda cr&iacute;tico, es decir, el ancho de banda de recepci&oacute;n m&aacute;ximo permitido en los receptores (<i>BWr &gt; BW_critico</i>) y la diferencia <i>&#916;T<sub>x</sub>_R<sub>x </sub></i>con el <i>umbral_T<sub>x</sub>_R<sub>x</sub></i> (<i>&#916;T<sub>x</sub>_R<sub>x </sub>&gt; umbral_T<sub>x</sub>_R<sub>x</sub></i>). Si una de las dos condiciones se cumple, el algoritmo asigna nuevos valores de <i>CWND </i>y <i>Tcwnd</i> para disminuir la tasa de env&iacute;o y con ello evitar congesti&oacute;n.</p>     <p>Con esta medida, el mecanismo propuesto permite reducir considerablemente la p&eacute;rdida de paquetes porque el control de congesti&oacute;n puede ralentizar la tasa de env&iacute;o desde los emisores. Como idea principal, se pretende evitar la p&eacute;rdida de paquetes para impedir las retransmisiones que en muchas ocasiones puede ser innecesaria si el algoritmo tiene la funcionalidad adecuada.</p>     <p>4. Evaluaci&oacute;n del algoritmo</p>     <p>En la literatura es com&uacute;n encontrar propuestas que son evaluadas en entornos simulados. En nuestro caso, con el fin de mostrar resultados reales, se ha evaluado el algoritmo en un entorno de cl&uacute;ster de computadores donde se realizan transferencias por otras aplicaciones principalmente con conexiones TCP.</p>     <p><b>4.1.</b> <b>Configuraci&oacute;n</b></p>     <p>La configuraci&oacute;n se distingue de diferentes grupos multicast donde la cantidad se determina por el n&uacute;mero emisores. Es decir, cada emisor env&iacute;a datos a una determinada direcci&oacute;n multicast, y forma un grupo con hasta tres nodos receptores (se determina el valor de tres receptores por cuestiones de dise&ntilde;o del escenario de evaluaci&oacute;n).</p>     <p>Los nodos se interconectan por una red de 1Gbps a trav&eacute;s de un conmutador Dlink DGS-1248T con un b&uacute;fer de 1Mbyte y tiene la capacidad de reenviar hasta 71.4 Mpaquetes/s. La configuraci&oacute;n de cada nodo consta de 2 CPU Intel Xeon E5320 a 1.87GHz, Memoria RAM de 8GB, Sistema Operativo Linux distribuci&oacute;n CentOS 6.6. En cuanto a los discos de almacenamiento se incorporan discos de estado s&oacute;lido SSD Kingston de 120GB, Firmware 521ABBF0 y una tasa de escritura m&aacute;xima de 450MB/s.</p>     <p><b>4.2.</b> <b>Experimentos y resultados</b></p>     <p>Se ha determinado que cada nodo se asociar&aacute; a tres direcciones multicast, de tal manera que constantemente recibe paquetes desde tres diferentes emisores. Lo anterior supone un evento cr&iacute;tico debido a la poca capacidad del b&uacute;fer del conmutador e incrementa la probabilidad de p&eacute;rdida de paquetes.</p>     <p>Seg&uacute;n un estudio previamente realizado para definir el tama&ntilde;o de paquete para este escenario, se define como <i>tama&ntilde;o_paquete</i> = 8KB. Adem&aacute;s, se ha estudiado para obtener el mejor tama&ntilde;o de CWND, siendo el valor &oacute;ptimo <i>CWND = 3</i>. Con estos valores alcanzados, el algoritmo de control de congesti&oacute;n pr&aacute;cticamente evita la p&eacute;rdida de paquetes con un ancho de banda considerablemente aceptable seg&uacute;n el escenario de estudio.</p>     ]]></body>
<body><![CDATA[<p><b>4.3.</b> <b>Congesti&oacute;n en conmutador: <i>&#916;T<sub>x</sub>_R<sub>x</sub></i></b></p>     <p>Como primer an&aacute;lisis realizado, y de acuerdo a la configuraci&oacute;n planteada, adem&aacute;s considerando los dispositivos de almacenamiento en los receptores se llev&oacute; a cabo la evaluaci&oacute;n del conmutador, de tal manera que el algoritmo de control de congesti&oacute;n propuesto determine el mejor funcionamiento de acuerdo a la tasa de env&iacute;o registrada en los receptores. En la <a href="#f6">Figura 6</a> se puede visualizar la predicci&oacute;n del algoritmo que calcula el estado de saturaci&oacute;n del conmutador cuando los emisores env&iacute;an datos a la m&aacute;xima capacidad posible. El porcentaje de p&eacute;rdida de paquetes alcanza los m&aacute;ximos valores (casi el 100%) cuando la tasa de env&iacute;o de los emisores es alrededor de 120MBps (en la <a href="#f6">Figura 6</a> se muestra la sumatoria de ancho de banda que registra un receptor) de tal manera que los receptores registran una m&iacute;nima tasa de recepci&oacute;n de paquetes. En funci&oacute;n de que el algoritmo detecta la p&eacute;rdida de paquetes con informaci&oacute;n de control de los receptores, los emisores disminuyen la tasa de env&iacute;o hasta alcanzar la tasa de env&iacute;o &oacute;ptima y as&iacute; disminuir la p&eacute;rdida de paquetes a causa de saturaci&oacute;n en el conmutador. Mientras el valor &#916;Tx_Rx sea menor, no existe congesti&oacute;n en el conmutador.</p>     <p>&nbsp;</p>     <p align="center"><a name="f6"></a><img src="/img/revistas/rist/n30/30a06f6.jpg"/></p>     
<p>&nbsp;</p>     <p><b>4.4.</b> <b>Ganancia de ancho de banda </b></p>     <p>&nbsp;</p>     <p align="center"><a name="e1"></a><img src="/img/revistas/rist/n30/30a06e1.jpg"/></p>     
<p>&nbsp;</p>     <p>De acuerdo a los resultados observados en la <a href="#f6">Figura 6</a> y, considerando que el algoritmo, en primer lugar, tiene como objetivo evitar la p&eacute;rdida de paquetes, a continuaci&oacute;n se presentan resultados de ganancia de ancho de banda. </p>     ]]></body>
<body><![CDATA[<p>En la <a href="#f7">Figura 7</a> se muestra el ancho de banda obtenido por un receptor considerando la sumatoria de recepci&oacute;n desde todos los emisores a los que se ha asociado para recibir informaci&oacute;n. En la <a href="#f7">Figura 7</a> se representa:</p>     <p>&nbsp;</p>     <p align="center"><a name="f7"></a><img src="/img/revistas/rist/n30/30a06f7.jpg"/></p>     
<p>&nbsp;</p>     <p align="center"><a name="e2"></a><img src="/img/revistas/rist/n30/30a06e2.jpg"/></p>     
<p>&nbsp;</p>     <p>En la evaluaci&oacute;n se ha verificado la tasa de p&eacute;rdida de paquetes en donde predomina una tasa del 0% con algunos valores que alcanzan el 0.001%. En la evaluaci&oacute;n aqu&iacute; presentada, cada nodo consume aproximadamente &plusmn;80MB/s de ancho de banda considerando que en el entorno de evaluaci&oacute;n se ejecutaban otras aplicaciones que consum&iacute;an ancho de banda de la red. </p>     <p><b>4.5.</b> <b>Ancho de banda de emisor/receptor y p&eacute;rdida de paquetes</b></p>     <p>Seg&uacute;n los valores &oacute;ptimos obtenidos en la subsecci&oacute;n 4.2, en la <a href="#f8">Figura 8</a> se representa el ancho de banda &#931;BW<sub>emisores</sub> como la capacidad m&aacute;xima de env&iacute;o de los emisores (para mayor ilustraci&oacute;n, se muestra la sumatoria de dos emisores) y por otro lado se obtiene el ancho de banda agregado &#931;BW<sub>r</sub> del receptor. En este caso el algoritmo, agrega un retardo T<sub>cwnd</sub> hasta evitar la p&eacute;rdida de paquetes (en los estudios realizados la tasa de p&eacute;rdida de paquetes no superaba el 0.001%) ver <a href="#f9">Figura 9</a>. </p>     <p></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p align="center"><a name="f8"></a><img src="/img/revistas/rist/n30/30a06f8.jpg"/></p>     
<p>&nbsp;</p>     <p align="center"><a name="f9"></a><img src="/img/revistas/rist/n30/30a06f9.jpg"/></p>     
<p>&nbsp;</p>     <p>En la evaluaci&oacute;n, se ha conseguido evitar la p&eacute;rdida de paquetes a una tasa de env&iacute;o de los emisores de 20MB/s y una tasa de recepci&oacute;n agregado de 40MB/s como se observa en la <a href="#f8">Figura 8</a>.        <p>De igual manera, se ha realizado un an&aacute;lisis con tama&ntilde;o de ventana CWND=4 con el fin de verificar el comportamiento del algoritmo y del ancho de banda obtenido tanto en emisor y receptores. Aumentar el tama&ntilde;o de ventana implica un ligero incremento en el tr&aacute;fico de la red y, para evitar la p&eacute;rdida de paquetes es necesario agregar un retardo T<sub>cwnd</sub> mayor y as&iacute; ralentizar por un lado la tasa de env&iacute;o. En la <a href="#f10">Figura 10</a> se puede observar la ca&iacute;da en la tasa de env&iacute;o en emisores y consecuentemente en la tasa de recepci&oacute;n. Y, en la <a href="#f11">Figura 11</a> se observa el porcentaje de tasa de p&eacute;rdida de paquetes con el tama&ntilde;o de ventana CWND=4 utilizado en estos resultados.</p>     <p>&nbsp;</p>     <p align="center"><a name="f10"></a><img src="/img/revistas/rist/n30/30a06f10.jpg"/></p>     
<p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p align="center"><a name="f11"></a><img src="/img/revistas/rist/n30/30a06f11.jpg"/></p>     
<p>&nbsp;</p>     <p><b>4.6.</b> <b>Ancho de banda en disco BW<sub>disco</sub></b></p>     <p>Respecto a los discos utilizados, y siguiendo como enfoque principal de aplicaci&oacute;n donde un sistema de almacenamiento distribuido garantice la disponibilidad de los datos para las aplicaciones, es necesario asegurar la escritura de los datos en el disco. Con la funci&oacute;n <i>fdatasync()</i> se puede lograr tal fin. De tal manera que, se agrega un par&aacute;metro <i>sync_size = 32 paquetes</i> a considerarse en el mecanismo de control de congesti&oacute;n. Es decir, la funci&oacute;n <i>fdatasync()</i> escribe los datos en disco cada 256KB. El m&aacute;ximo ancho de banda promedio en los discos SSD utilizados alcanzan hasta 120MB/s para nuestra configuraci&oacute;n, ver <a href="#f12">Figura 12</a>.</p>     <p>&nbsp;</p>     <p align="center"><a name="f12"></a><img src="/img/revistas/rist/n30/30a06f12.jpg"/></p>     
<p>&nbsp;</p>     <p>Como se puede observar, el comportamiento de los dispositivos de almacenamiento, en este caso discos SSD dan soporte al algoritmo de control de congesti&oacute;n evitando la saturaci&oacute;n y por consecuencia p&eacute;rdida de paquetes en los receptores al momento de realizar las escrituras simult&aacute;neas de los paquetes de datos recibidos.</p>     <p>5. Conclusiones</p>     <p>En las redes de datos, con el crecimiento de tr&aacute;fico de informaci&oacute;n se hace necesario implementar mecanismos que aseguren la entrega a todos los destinatarios. Los enfoques que existen en la literatura no consideran una orientaci&oacute;n para implementarse en sistemas de almacenamiento distribuido. Por tal motivo, en el presente trabajo se present&oacute; el dise&ntilde;o y evaluaci&oacute;n de rendimiento de un nuevo algoritmo de control de congesti&oacute;n basado en ventana (window-based) para comunicaciones de datos en entornos multicast m&uacute;ltiple donde los nodos del sistema act&uacute;an como emisores y receptores de datos. El algoritmo constantemente eval&uacute;a el estado de saturaci&oacute;n del conmutador y de los nodos receptores considerando la tecnolog&iacute;a de almacenamiento utilizada, en este caso discos SSD. Se realizaron evaluaciones de rendimiento en un entorno real simulando una capa de almacenamiento que provee de informaci&oacute;n a transmitir. En los resultados, el algoritmo consigue mantener una nula o reducida p&eacute;rdida de paquetes al mismo tiempo que el ancho de banda de red agregado se mantiene estable y considerablemente alto sin consumir el ancho de banda disponible por las interfaces de red.</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><b>REFERENCIAS</b></p>     <!-- ref --><p>Adamson, B., Bormann, C., Handley, M., &amp; Macker, J. (2009). NORM:<i> Nack-Oriented Reliable Multicast Transport Protocol, </i>DOI: 10.17487/RFC5740&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999436&pid=S1646-9895201800050000600001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Ait Hellal, O., &amp; Altman, E. (2000). Analysis of TCP vegas and TCP reno.<i> Telecommunication Systems, 15</i>(3-4), 381-404. DOI: 10.1023/A:1019159332202&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999437&pid=S1646-9895201800050000600002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Borthakur, D. (2008). HDFS architecture guide. Retrieved from: <a href="https://hadoop.apache.org/docs/r1.2.1/hdfs_design.pdf" target="_blank">https://hadoop.apache.org/docs/r1.2.1/hdfs_design.pdf</a>.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999438&pid=S1646-9895201800050000600003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>D&iacute;az, O., &amp; Mu&ntilde;oz, M. (2018). Implementaci&oacute;n de un enfoque DevSecOps+ Risk Management en un Centro de Datos de una organizaci&oacute;n Mexicana. <i>RISTI-Revista Ib&eacute;rica de Sistemas e Tecnologias de Informa&ccedil;&atilde;o</i>, (26), 43-53. DOI: 10.17013/risti.26.43-53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999440&pid=S1646-9895201800050000600004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Fall, K. R., &amp; Stevens, W. R. (2011). <i>TCP/IP illustrated, volume 1: The protocols.</i> Boston: Addison-Wesley.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999441&pid=S1646-9895201800050000600005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>Gemmell, J., Montgomery, T., Speakman, T., &amp; Crowcroft, J. (2003). The PGM reliable multicast protocol.<i> IEEE Network, 17</i>(1), 16-22. DOI: 10.1109/MNET.2003.1174173&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999443&pid=S1646-9895201800050000600006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Ha, S., Rhee, I., &amp; Xu, L. (2008). CUBIC: A new TCP-friendly high-speed TCP variant.<i> ACM SIGOPS Operating Systems Review, 42</i>(5), 64-74. DOI: 10.1145/1400097.1400105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999444&pid=S1646-9895201800050000600007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Holbrook, H. W., Singhal, S. K., &amp; Cheriton, D. R. (1995). Log-based receiver-reliable multicast for distributed interactive simulation.<i> ACM SIGCOMM Computer Communication Review, 25</i>(4), 328-341. DOI: 10.1145/217391.217468&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999445&pid=S1646-9895201800050000600008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Kasera, S. K., Hj&aacute;lmt&yacute;sson, G., Towsley, D. F., &amp; Kurose, J. F. (2000). Scalable reliable multicast using multiple multicast channels.<i> IEEE/ACM Transactions on Networking, 8</i>(3), 294-310. DOI: 10.1109/90.851976&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999446&pid=S1646-9895201800050000600009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Leith, D. J., Shorten, R. N., &amp; McCullagh, G. (2008). Experimental evaluation of cubic-TCP. In <i>Proceedings of the 6th International Workshop on Protocols for Fast Long-Distance Networks</i> (PFLDnet 2008), , 5-7.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999447&pid=S1646-9895201800050000600010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></p>     <!-- ref --><p>Li, D., Xu, M., Liu, Y., Xie, X., Cui, Y., Wang, J., &amp; Chen, G. (2014). Reliable multicast in data center networks.<i> IEEE Transactions on Computers, 63</i>(8), 2011-2024. DOI: 10.1109/TC.2013.91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999449&pid=S1646-9895201800050000600011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Li, J., &amp; Veeraraghavan, M. (2012). A reliable message multicast transport protocol for virtual circuits. In <i>International Conference on Communications, Mobility, and Computing (CMC), 119-123.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999450&pid=S1646-9895201800050000600012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></i></p>     <!-- ref --><p>Miliotis, V., Alonso, L., &amp; Verikoukis, C. (2014). CooPNC: A cooperative multicast protocol exploiting physical layer network coding.<i> </i><i>Ad Hoc Networks, 14</i>, 35-50. DOI: 10.1016/j.adhoc.2013.11.004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999452&pid=S1646-9895201800050000600013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Palos-S&aacute;nchez, P. R., Arenas-M&aacute;rquez, F. J., &amp; Aguayo-Camacho, M. (2017). La adopci&oacute;n de la tecnolog&iacute;a cloud computing (SaaS): efectos de la complejidad tecnol&oacute;gica vs formaci&oacute;n y soporte. <i>RISTI-Revista Ib&eacute;rica de Sistemas e Tecnologias de Informa&ccedil;&atilde;o</i>, (22), 89-105. DOI: 10.17013/risti.22.89-105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999453&pid=S1646-9895201800050000600014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p>Paul, S., Sabnani, K. K., Lin, J., &amp; Bhattacharyya, S. (1997). Reliable multicast transport protocol (RMTP).<i> IEEE Journal on Selected Areas in Communications, 15</i>(3), 407-421. DOI: 10.1109/49.564138&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999454&pid=S1646-9895201800050000600015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p>Shvachko, K., Kuang, H., Radia, S., &amp; Chansler, R. (2010). The hadoop distributed file system. In <i>IEEE 26th Symposium On Mass Storage Systems and Technologies (MSST), 2010, (pp. </i>1-10). DOI: 10.1109/MSST.2010.5496972</p>     <!-- ref --><p>Wittmann, R., &amp; Zitterbart, M. (2000). <i>Multicast communication: Protocols, programming, &amp; applications.</i> Amsterdam: Elsevier.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999456&pid=S1646-9895201800050000600017&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> </p>     <p>Xu, L., Harfoush, K., &amp; Rhee, I. (2004). Binary increase congestion control (BIC) for fast long-distance networks. In <i>INFOCOM 2004. Twenty-Third Annual Joint Conference of the IEEE Computer and Communications Societies, (pp. 4</i> 2514-2524). DOI: 10.1109/INFCOM.2004.1354672</p>     <!-- ref --><p>Yavatkar, R., Griffoen, J., &amp; Sudan, M. (1995). A reliable dissemination protocol for interactive collaborative applications. <i>Proceedings of the Third ACM International Conference on Multimedia, (pp. </i>333-344). DOI: 10.1145/217279.215288&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=999459&pid=S1646-9895201800050000600019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p>&nbsp;</p>     <p>Recebido/Submission: 25/08/2018    <br>   Aceita&ccedil;&atilde;o/Acceptance: 18/11/2018</p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Adamson]]></surname>
<given-names><![CDATA[B.]]></given-names>
</name>
<name>
<surname><![CDATA[Bormann]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Handley]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Macker]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<source><![CDATA[NORM: Nack-Oriented Reliable Multicast Transport Protocol]]></source>
<year>2009</year>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ait Hellal]]></surname>
<given-names><![CDATA[O.]]></given-names>
</name>
<name>
<surname><![CDATA[Altman]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Analysis of TCP vegas and TCP reno]]></article-title>
<source><![CDATA[Telecommunication Systems]]></source>
<year>2000</year>
<volume>15</volume>
<numero>3-4</numero>
<issue>3-4</issue>
<page-range>381-404</page-range></nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Borthakur]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
</person-group>
<source><![CDATA[HDFS architecture guide]]></source>
<year>2008</year>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Díaz]]></surname>
<given-names><![CDATA[O.]]></given-names>
</name>
<name>
<surname><![CDATA[Muñoz]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Implementación de un enfoque DevSecOps+ Risk Management en un Centro de Datos de una organización Mexicana]]></article-title>
<source><![CDATA[RISTI-Revista Ibérica de Sistemas e Tecnologias de Informação]]></source>
<year>2018</year>
<volume>(26)</volume>
<page-range>43-53</page-range></nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fall]]></surname>
<given-names><![CDATA[K. R.]]></given-names>
</name>
<name>
<surname><![CDATA[Stevens]]></surname>
<given-names><![CDATA[W. R.]]></given-names>
</name>
</person-group>
<source><![CDATA[TCP/IP illustrated, volume 1: The protocols]]></source>
<year>2011</year>
<publisher-loc><![CDATA[Boston ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Gemmell]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Montgomery]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Speakman]]></surname>
<given-names><![CDATA[T.]]></given-names>
</name>
<name>
<surname><![CDATA[Crowcroft]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The PGM reliable multicast protocol]]></article-title>
<source><![CDATA[IEEE Network]]></source>
<year>2003</year>
<volume>17</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>16-22</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ha]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Rhee]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
<name>
<surname><![CDATA[Xu]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[CUBIC: A new TCP-friendly high-speed TCP variant]]></article-title>
<source><![CDATA[ACM SIGOPS Operating Systems Review]]></source>
<year>2008</year>
<volume>42</volume>
<numero>5</numero>
<issue>5</issue>
<page-range>64-74</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Holbrook]]></surname>
<given-names><![CDATA[H. W.]]></given-names>
</name>
<name>
<surname><![CDATA[Singhal]]></surname>
<given-names><![CDATA[S. K.]]></given-names>
</name>
<name>
<surname><![CDATA[Cheriton]]></surname>
<given-names><![CDATA[D. R.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Log-based receiver-reliable multicast for distributed interactive simulation]]></article-title>
<source><![CDATA[ACM SIGCOMM Computer Communication Review]]></source>
<year>1995</year>
<volume>25</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>328-341</page-range></nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kasera]]></surname>
<given-names><![CDATA[S. K.]]></given-names>
</name>
<name>
<surname><![CDATA[Hjálmtýsson]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
<name>
<surname><![CDATA[Towsley]]></surname>
<given-names><![CDATA[D. F.]]></given-names>
</name>
<name>
<surname><![CDATA[Kurose]]></surname>
<given-names><![CDATA[J. F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Scalable reliable multicast using multiple multicast channels]]></article-title>
<source><![CDATA[IEEE/ACM Transactions on Networking]]></source>
<year>2000</year>
<volume>8</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>294-310</page-range></nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Leith]]></surname>
<given-names><![CDATA[D. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Shorten]]></surname>
<given-names><![CDATA[R. N.]]></given-names>
</name>
<name>
<surname><![CDATA[McCullagh]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Experimental evaluation of cubic-TCP]]></article-title>
<source><![CDATA[Proceedings of the 6th International Workshop on Protocols for Fast Long-Distance Networks (PFLDnet 2008)]]></source>
<year>2008</year>
<page-range>5-7</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[D.]]></given-names>
</name>
<name>
<surname><![CDATA[Xu]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Liu]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
<name>
<surname><![CDATA[Xie]]></surname>
<given-names><![CDATA[X.]]></given-names>
</name>
<name>
<surname><![CDATA[Cui]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
<name>
<surname><![CDATA[Wang]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Chen]]></surname>
<given-names><![CDATA[G.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Reliable multicast in data center networks]]></article-title>
<source><![CDATA[IEEE Transactions on Computers]]></source>
<year>2014</year>
<volume>63</volume>
<numero>8</numero>
<issue>8</issue>
<page-range>2011-2024</page-range></nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Veeraraghavan]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A reliable message multicast transport protocol for virtual circuits]]></article-title>
<source><![CDATA[International Conference on Communications, Mobility and Computing (CMC)]]></source>
<year>2012</year>
<page-range>119-123</page-range></nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Miliotis]]></surname>
<given-names><![CDATA[V.]]></given-names>
</name>
<name>
<surname><![CDATA[Alonso]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Verikoukis]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[CooPNC: A cooperative multicast protocol exploiting physical layer network coding]]></article-title>
<source><![CDATA[Ad Hoc Networks]]></source>
<year>2014</year>
<volume>14</volume>
<page-range>35-50</page-range></nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Palos-Sánchez]]></surname>
<given-names><![CDATA[P. R.]]></given-names>
</name>
<name>
<surname><![CDATA[Arenas-Márquez]]></surname>
<given-names><![CDATA[F. J.]]></given-names>
</name>
<name>
<surname><![CDATA[Aguayo-Camacho]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[La adopción de la tecnología cloud computing (SaaS): efectos de la complejidad tecnológica vs formación y soporte]]></article-title>
<source><![CDATA[RISTI-Revista Ibérica de Sistemas e Tecnologias de Informação]]></source>
<year>2017</year>
<volume>(22)</volume>
<page-range>89-105</page-range></nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Paul]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Sabnani]]></surname>
<given-names><![CDATA[K. K.]]></given-names>
</name>
<name>
<surname><![CDATA[Lin]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Bhattacharyya]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Reliable multicast transport protocol (RMTP)]]></article-title>
<source><![CDATA[IEEE Journal on Selected Areas in Communications]]></source>
<year>1997</year>
<volume>15</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>407-421</page-range></nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Shvachko]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[Kuang]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
<name>
<surname><![CDATA[Radia]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Chansler]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The hadoop distributed file system]]></article-title>
<source><![CDATA[IEEE 26th Symposium On Mass Storage Systems and Technologies (MSST)]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Wittmann]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Zitterbart]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Multicast communication: Protocols, programming, & applications]]></source>
<year>2000</year>
<publisher-loc><![CDATA[Amsterdam ]]></publisher-loc>
<publisher-name><![CDATA[Elsevier]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Xu]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Harfoush]]></surname>
<given-names><![CDATA[K.]]></given-names>
</name>
<name>
<surname><![CDATA[Rhee]]></surname>
<given-names><![CDATA[I.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Binary increase congestion control (BIC) for fast long-distance networks]]></article-title>
<source><![CDATA[INFOCOM 2004 Twenty-Third Annual Joint Conference of the IEEE Computer and Communications Societies]]></source>
<year>2004</year>
<page-range>2514-2524</page-range></nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yavatkar]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Griffoen]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Sudan]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A reliable dissemination protocol for interactive collaborative applications]]></article-title>
<source><![CDATA[Proceedings of the Third ACM International Conference on Multimedia]]></source>
<year>1995</year>
<page-range>333-344</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
