Professional Documents
Culture Documents
Cada una de ellas individualmente es un documento cuyo contenido es una propuesta oficial para
un nuevo protocolo de la red Internet (originalmente de ARPANET), que se explica con todo
detalle para que en caso de ser aceptado pueda ser implementado sin ambigüedades.
Cualquiera puede enviar una propuesta de RFC a la IETF, pero es ésta la que decide finalmente
si el documento se convierte en una RFC o no. Si luego resulta lo suficientemente interesante,
puede llegar a convertirse en un estándar de Internet.
Cada RFC tiene un título y un número asignado, que no puede repetirse ni eliminarse aunque el
documento se quede obsoleto.
Cada protocolo de los que hoy existen en Internet tiene asociado un RFC que lo define, y
posiblemente otros RFC adicionales que lo amplían. Por ejemplo el protocolo IP se detalla en el
RFC 791, el FTP en el RFC 959, y el HTTP (escrito por Tim Berners-Lee, entre otros) el RFC
2616.
Existen varias categorías, pudiendo ser informativos (cuando se trata simplemente de valorar por
ejemplo la implantación de un protocolo), propuestas de estándares nuevos, o históricos (cuando
quedan obsoletos por versiones más modernas del protocolo que describen).
Las RFC se redactan en inglés según una estructura específica y en formato de texto ASCII.
Antes de que un documento tenga la consideración de RFC, debe seguir un proceso muy estricto
para asegurar su calidad y coherencia. Cuando lo consigue, prácticamente ya es un protocolo
formal al que probablemente se interpondrán pocas objeciones, por lo que el sentido de su
nombre como petición de comentarios ha quedado prácticamente obsoleto, dado que las críticas
y sugerencias se producen en las fases anteriores. De todos modos, el nombre de RFC se
mantiene por razones históricas.
Nota de Copyright
Resumen
Reconocimientos
Indice
1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. La opción SACK-Permitted . . . . . . . . . . . . . . . . . . . 5
3. Formato de la opción SACK . . . . . . . . . . . . . . . . . . 6
4. Generando opciones SACK: Comportamiento del receptor de
datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Interpretando la opción SACK y la estrategia de
retransmisión: Comportamiento del remitente de datos . . . . . 10
5.1 Aspectos sobre el control de congestiones . . . . . . . . . . 10
6. Eficiencia y comportamiento del peor caso . . . . . . . . . . 12
7. Ejemplos de opciones SACK . . . . . . . . . . . . . . . . . . 13
8. Renuncia por parte del receptor de los datos . . . . . . . . . 15
9. Consideraciones de seguridad . . . . . . . . . . . . . . . . . 16
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . 17
Dirección de los autores . . . . . . . . . . . . . . . . . . . 18
A. Créditos de la traducción y conversión a XML . . . . . . . . . 19
Declaración completa de Copyright . . . . . . . . . . . . . . 20
1. Introducción
2. La opción SACK-Permitted
Esta opción de dos bytes se puede enviar mediante un SYN por una
conexión TCP que ha sido extendida para recibir (y probablemente para
procesar) la opción SACK una vez que la conexión se ha abierto. NO
DEBE ser enviada en segmentos distintos del SYN.
Tipo: 4
+---------+------------+
| Tipo=4 | Longitud=2 |
+---------+------------+
Mathis, et al. Informativo [Pág. 5]
Tipo: 5
Longitud: Variable
+--------+--------+
| Tipo=5 |Longitud|
+--------+--------+--------+--------+
| Borde izquierdo del primer bloque |
+--------+--------+--------+--------+
| Borde derecho del primer bloque |
+--------+--------+--------+--------+
| |
/ . . . /
| |
+--------+--------+--------+--------+
| Borde izquierdo del bloque n-esimo|
+--------+--------+--------+--------+
| Borde derecho del bloque n-esimo |
+--------+--------+--------+--------+
Una opción SACK que especifica n bloques tendrá una longitud de 8*n+2
bytes, por tanto, los 40 bytes disponibles para las opciones TCP
pueden especificar un máximo de 4 bloques. Normalmente SACK se
empleará junto con la opción Timestamp empleada para RTTM [8], que
emplea 10 bytes adicionales (más dos bytes de alineación); por lo que
solo se podrán emplear 3 bloques SACK en este caso.
Si se envían, las opciones SACK DEBEN ser incluidas en todos los ACKs
que no notifiquen el número de secuencia más alto de la cola del
receptor de datos. Es esta situación, la red ha perdido o
desordenado datos, por tanto el receptor mantiene datos no continuos
en su cola. En el RFC1122, Sección 4.2.2.21, se discute los motivos
por los que un receptor enviará ACKs en respuesta a segmentos
adicionales recibidos en este estado. El receptor DEBE enviar un ACK
por cada segmento válido que llegue conteniendo nuevos datos, y cada
uno de esos ACKs «duplicados» DEBEN llevar una opción SACK.
o La opción SACK DEBE ser rellenada repitiendo los bloques SACK que
fueron notificados recientemente (basados en el primer bloque SACK
de las opciones SACK anteriores) que no son un subconjunto de
alguno de los otros bloques SACK ya incluidos en la opción SACK
que se está construyendo. Esto asegura que en una operación
normal, cualquier parte del segmento que quede de un bloque no
continuo de datos almacenado por el receptor se notificará en al
menos tres opciones SACK sucesivas, incluso para implementaciones
TCP con ventanas muy grandes [RFC1323] [18]. Después del primer
bloque SACK, los siguientes bloques SACK de la opción SACK pueden
estar listados en orden arbitrario.
Segmento
que se Borde Borde
envía ACK izquierdo derecho
5000 (perdido)
5500 5000 5500 6000
6000 5000 5500 6500
6500 5000 5500 7000
7000 5000 5500 7500
7500 5000 5500 8000
8000 5000 5500 8500
8500 5000 5500 9000
5000 5500
5500 (perdido)
6000 5500 6000 6500
6500 (perdido)
7000 5500 7000 7500 6000 6500
7500 (perdido)
8000 5500 8000 8500 7000 7500 6000
6500
8500 (perdido)
9. Consideraciones de seguridad
Referencias
[16] <ftp://ftp.isi.edu/in-notes/rfc1072.txt>
[17] <ftp://ftp.isi.edu/in-notes/rfc1072.txt>
[18] <ftp://ftp.isi.edu/in-notes/rfc1323.txt>
[19] <http://xml.resource.org/public/rfc/html/rfc2629.html>
[20] <mailto:carlos@pemas.net>
Matt Mathis
Pittsburgh Supercomputing Center
4400 Fifth Ave
Pittsburgh, PA 15213
US
EMail: mathis@psc.edu
Jamshid Mahdavi
Pittsburgh Supercomputing Center
4400 Fifth Ave
Pittsburgh, PA 15213
US
EMail: mahdavi@psc.edu
Sally Floyd
Lawrence Berkeley National Laboratory
One Cyclotron Road
Berkeley, CA 94720
US
EMail: floyd@ee.lbl.gov
Allyn Romanow
Sun Microsystems, Inc.
2550 Garcia Ave.
MPK17-202
Mountain View, CA 94043
US
EMail: allyn@eng.sun.com
Agradecimiento
Los fondos para las funciones desempeñadas por el editor RFC son
proporcionados actualmente por la Internet Society.