administración de datos
Capa de transporte: el inicio del encapsulado de datos
Cuando los datos llegan a la capa de transporte, los protocolos de la capa inician el proceso de encapsulado de datos. La capa de transporte encapsula los datos de aplicación en unidades de datos de protocolo de transporte.
El protocolo de capa de transporte crea un flujo virtual de datos entre la aplicación de envío y la de recepción, que se identifica con un número de puerto de transporte. El número de puerto identifica un puerto, una ubicación dedicada de la memoria par recibir o enviar datos. Además, la capa de protocolo de transporte puede proporcionar otros servicios, como la entrega de datos ordenada y fiable. El resultado final depende de si la información se maneja con los protocolos TCP, SCTP o UDP.
Segmentación TCP
TCP se denomina a menudo protocolo "orientado a la conexión" porque TCP garantiza la entrega correcta de los datos al host de recepción. La Figura 1–1 muestra cómo el protocolo TCP recibe el flujo del comando rlogin. A continuación, TCP divide los datos que se reciben de la capa de aplicación en segmentos y adjunta un encabezado a cada segmento.
Los encabezados de segmento contienen puertos de envío y recepción, información de orden de los segmentos y un campo de datos conocido como suma de comprobación. Los protocolos TCP de ambos hosts utilizan los datos de suma de comprobación para determinar si los datos se transfieren sin errores.
Establecimiento de una conexión TCP
TCP utiliza segmentos para determinar si el sistema de recepción está listo para recibir los datos. Cuando el protocolo TCP de envío desea establecer conexiones, envía un segmento denominado SYN al protocolo TCP del host de recepción. El protocolo TCP de recepción devuelve un segmento denominado ACK para confirmar que el segmento se ha recibido correctamente. El protocolo TCP de envío emite otro segmento ACK y luego procede al envío de los datos. Este intercambio de información de control se denomina protocolo de tres vías.
Paquetes UDP
UDP es un protocolo "sin conexiones". A diferencia de TCP, UDP no comprueba los datos que llegan al host de recepción. En lugar de ello, UDP da formato al mensaje que se recibe desde la capa de la aplicación en los paquetes UDP. UDP adjunta un encabezado a cada paquete. El encabezado contiene los puertos de envío y recepción, un campo con la longitud del paquete y una suma de comprobación.
El proceso UDP de envío intenta enviar el paquete a su proceso UDP equivalente en el host de recepción. La capa de aplicación determina si el proceso UDP de recepción confirma la recepción del paquete. UDP no requiere ninguna notificación de la recepción. UDP no utiliza el protocolo de tres vías.
protocolos upc y udp
Protocolo TCP
La descripción completa del protocolo TCP se encuentra en el documento RFC793 o su traducción al español. TCP (Transmission-Control-Protocol, en español Protocolo de Control de Transmisión) es de los protocolos fundamentales en Internet. Fue creado entre los años 1973 - 1974 por Vint Cerf y Robert Kahn.
Muchos programas dentro de una red de datos compuesta por computadoras pueden usar TCP para crear conexiones entre ellos a través de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del concepto de puerto.
TCP da soporte a muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP, SSH y FTP.
TCP es un protocolo de comunicación orientado a conexión y fiable del nivel de transporte, actualmente documentado por IETF en el RFC 793. Es un protocolo de capa 4 según el modelo OSI.
- Funciones de TCP
En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se efectúe libre de errores, sin pérdidas y con seguridad.
Los servicios provistos por TCP corren en el anfitrión (host) de cualquiera de los extremos de una conexión, no en la red. Por lo tanto, TCP es un protocolo para manejar conexiones de extremo a extremo. Tales conexiones pueden existir a través de una serie de conexiones punto a punto, por lo que estas conexiones extremo-extremo son llamadas circuitos virtuales. Las características del TCP son:
- Orientado a la conexión: dos computadoras establecen una conexión para intercambiar datos. Los sistemas de los extremos se sincronizan con el otro para manejar el flujo de paquetes y adaptarse a la congestión de la red.
- Operación Full-Duplex: una conexión TCP es un par de circuitos virtuales, cada uno en una dirección. Sólo los dos sistemas finales sincronizados pueden usar la conexión.
- Error Checking: una técnica de checksum es usada para verificar que los paquetes no estén corruptos.
- Acknowledgements: sobre recibo de uno o más paquetes, el receptor regresa un acknowledgement (reconocimiento) al transmisor indicando que recibió los paquetes. Si los paquetes no son notificados, el transmisor puede reenviar los paquetes o terminar la conexión si el transmisor cree que el receptor no está más en la conexión.
- Flow Control: si el transmisor está desbordando el buffer del receptor por transmitir demasiado rápido, el receptor descarta paquetes. Los acknowledgement fallidos que llegan al transmisor le alertan para bajar la tasa de transferencia o dejar de transmitir.
- Servicio de recuperación de Paquetes: el receptor puede pedir la retransmisión de un paquete. Si el paquete no es notificado como recibido (ACK), el transmisor envía de nuevo el paquete.
Los servicios confiables de entrega de datos son críticos para aplicaciones tales como transferencias de archivos (FTP por ejemplo), servicios de bases de datos, proceso de transacciones y otras aplicaciones de misión crítica en las cuales la entrega de cada paquete debe ser garantizada.
- Formato de los Segmentos TCP
En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo o PDU ('Protocol Data Unit') se llaman "segmentos". El formato de los segmentos TCP se muestra en el siguiente esquema:
| + | Bits 0 - 3 | 4 - 7 | 8 - 15 | 16 - 31 |
| 0 | Puerto Origen | Puerto Destino |
| 32 | Número de Secuencia |
| 64 | Número de Acuse de Recibo (ACK) |
| 96 | longitud cabecera TCP | Reservado | Flags | Ventana |
| 128 | Suma de Verificación (Checksum) | Puntero Urgente |
| 160 | Opciones + Relleno (opcional) |
| 224 | Datos |
- Datos
Las aplicaciones envían flujos de bytes a la capa TCP para ser enviados a la red. TCP divide el flujo de bytes llegado de la aplicación en segmentos de tamaño apropiado (normalmente esta limitación viene impuesta por la unidad máxima de transferencia (MTU) del nivel de enlace de datos de la red a la que la entidad está asociada) y le añade sus cabeceras. Entonces, TCP pasa el segmento resultante a la capa IP, donde a través de la red, llega a la capa TCP de la entidad destino. TCP comprueba que ningún segmento se ha perdido dando a cada uno un número de secuencia, que es también usado para asegurarse de que los paquetes han llegado a la entidad destino en el orden correcto. TCP devuelve un asentimiento por bytes que han sido recibidos correctamente; un temporizador en la entidad origen del envío causará un timeout si el asentimiento no es recibido en un tiempo razonable, y el (presuntamente desaparecido) paquete será entonces retransmitido. TCP revisa que no haya bytes dañados durante el envío usando un checksum; es calculado por el emisor en cada paquete antes de ser enviado, y comprobado por el receptor.
proceso de establecimiento y finalizacion
Cuando dos hosts se comunican mediante TCP, se establece una conexión antes de que puedan intercambiarse los datos. Luego de que se completa la comunicación, se cierran las sesiones y la conexión finaliza. Los mecanismos de conexión y sesión habilitan la función de confiabilidad del TCP.
Vea en la figura los pasos para establecer y terminar una conexión del TCP.
El host rastrea cada segmento de datos dentro de una sesión e intercambia información sobre los datos que recibe cada host mediante información en el encabezado del TCP.
Cada conexión involucra streams de comunicación de una vía, o sesiones para establecer y terminar el proceso del TCP entre dispositivos finales. Para establecer la conexión los hosts realizan un protocolo de enlace de tres vías. Los bits de control en el encabezado TCP indican el progreso y estado de la conexión. El enlace de tres vías:
- Establece que el dispositivo de destino se presente en la red
- Verifica que el dispositivo de destino tenga un servicio activo y que acepte solicitudes en el número de puerto de destino que el cliente de origen intenta utilizar para la sesión
- Informa al dispositivo de destino que el cliente de origen intenta establecer una sesión de comunicación en dicho número de puerto
En las conexiones del TCP, el host que sirve como cliente inicia la sesión para el servidor. Para entender cómo funciona el enlace de tres vías que se utiliza en el proceso de conexión del TCP, es importante observar diversos valores que los dos hosts intercambian. Los tres pasos en el establecimiento de una conexión TCP son:
1. El cliente de origen envía un segmento que contiene un valor de secuencia inicial, el cual sirve como solicitud para que el servidor comience una sesión de comunicación.
2. El servidor responde con un segmento que contiene un valor de reconocimiento igual al valor de secuencia recibido más 1, más su propio valor de secuencia de sincronización. El valor es uno mayor que el número de secuencia porque el ACK es siempre el próximo Byte u Octeto esperado. Este valor de reconocimiento permite al cliente unir la respuesta al segmento original que fue enviado al servidor.
3. El cliente que inicia la conexión responde con un valor de reconocimiento igual al valor de secuencia que recibió más uno. Esto completa el proceso de establecimiento de la conexión.
Dentro del encabezado del segmento TCP, existen seis campos de 1 bit que contienen información de control utilizada para gestionar los procesos de TCP. Estos campos son los siguientes:
URG: campo indicador urgente importante
ACK: campo de reconocimiento importante
PSH: función de pulsación
RST: restablecer la conexión
SYN: sincronizar números de secuencia
FIN: no hay más datos del emisor
Se hace referencia a estos campos por medio de señaladores, porque el valor de uno de estos campos es sólo 1 bit y, por lo tanto, sólo tiene dos valores: 1 o 0. Cuando el valor de un bit se establece en 1, indica qué información de control se incluye en el segmento.
Los señaladores se intercambian para terminar una conexión del TCP mediante un proceso de cuatro pasos.





Transmisión de datos
Modos de transmisión
Una transmisión dada en un canal de comunicaciones entre dos equipos puede ocurrir de diferentes maneras. La transmisión está caracterizada por:
- la dirección de los intercambios
- el modo de transmisión: el número de bits enviados simultáneamente
- la sincronización entre el transmisor y el receptor
Conexiones simples, semidúplex y dúplex totales
Existen 3 modos de transmisión diferentes caracterizados de acuerdo a la dirección de los intercambios:
Una conexión simple, es una conexión en la que los datos fluyen en una sola dirección, desde el transmisor hacia el receptor. Este tipo de conexión es útil si los datos no necesitan fluir en ambas direcciones (por ejemplo: desde el equipo hacia la impresora o desde el ratón hacia el equipo...).
Una conexión semidúplex (a veces denominada una conexión alternativa o semi-dúplex) es una conexión en la que los datos fluyen en una u otra dirección, pero no las dos al mismo tiempo. Con este tipo de conexión, cada extremo de la conexión transmite uno después del otro. Este tipo de conexión hace posible tener una comunicación bidireccional utilizando toda la capacidad de la línea.
Una conexión dúplex total es una conexión en la que los datos fluyen simultáneamente en ambas direcciones. Así, cada extremo de la conexión puede transmitir y recibir al mismo tiempo; esto significa que el ancho de banda se divide en dos para cada dirección de la transmisión de datos si es que se está utilizando el mismo medio de transmisión para ambas direcciones de la transmisión.
Transmisión en serie y paralela
El modo de transmisión se refiere al número de unidades de información (bits) elementales que se pueden traducir simultáneamente a través de los canales de comunicación. De hecho, los procesadores (y por lo tanto, los equipos en general) nunca procesan (en el caso de los procesadores actuales) un solo bit al mismo tiempo. Generalmente son capaces de procesar varios (la mayoría de las veces 8 bits: un byte) y por este motivo, las conexiones básicas en un equipo son conexiones paralelas.
Conexión paralela
Las conexiones paralelas consisten en transmisiones simultáneas de N cantidad de bits. Estos bits se envían simultáneamente a través de diferentes canales N (un canal puede ser, por ejemplo, un alambre, un cable o cualquier otro medio físico). La conexión paralela en equipos del tipo PC generalmente requiere 10 alambres.
Estos canales pueden ser:
- N líneas físicas: en cuyo caso cada bit se envía en una línea física (motivo por el cual un cable paralelo está compuesto por varios alambres dentro de un cable cinta)
- una línea física dividida en varios subcanales, resultante de la división del ancho de banda. En este caso, cada bit se envía en una frecuencia diferente...
Debido a que los alambres conductores están uno muy cerca del otro en el cable cinta, puede haber interferencias (particularmente en altas velocidades) y degradación de la calidad en la señal...
Conexión en serie
En una conexión en serie, los datos se transmiten de a un bit por vez a través del canal de transmisión. Sin embargo, ya que muchos procesadores procesan los datos en paralelo, el transmisor necesita transformar los datos paralelos entrantes en datos seriales y el receptor necesita hacer lo contrario.
Estas operaciones son realizadas por un controlador de comunicaciones (normalmente un chip UART, Universal Asynchronous Receiver Transmitter (Transmisor Receptor Asincrónico Universal)). El controlador de comunicaciones trabaja de la siguiente manera:
La transformación paralela-en serie se realiza utilizando un registro de desplazamiento. El registro de desplazamiento, que trabaja conjuntamente con un reloj, desplazará el registro (que contiene todos los datos presentados en paralelo) hacia la izquierda y luego, transmitirá el bit más significativo (el que se encuentra más a la izquierda) y así sucesivamente:
La transformación en serie-paralela se realiza casi de la misma manera utilizando un registro de desplazamiento. El registro de desplazamiento desplaza el registro hacia la izquierda cada vez que recibe un bit, y luego, transmite el registro entero en paralelo cuando está completo:
Transmisión sincrónica y asincrónica
Debido a los problemas que surgen con una conexión de tipo paralela, es muy común que se utilicen conexiones en serie. Sin embargo, ya que es un solo cable el que transporta la información, el problema es cómo sincronizar al transmisor y al receptor. En otras palabras, el receptor no necesariamente distingue los caracteres (o más generalmente, las secuencias de bits) ya que los bits se envían uno después del otro. Existen dos tipos de transmisiones que tratan este problema:
La conexión asincrónica, en la que cada carácter se envía en intervalos de tiempo irregulares (por ejemplo, un usuario enviando caracteres que se introducen en el teclado en tiempo real). Así, por ejemplo, imagine que se transmite un solo bit durante un largo período de silencio... el receptor no será capaz de darse cuenta si esto es 00010000, 10000000 ó 00000100...
Para remediar este problema, cada carácter es precedido por información que indica el inicio de la transmisión del carácter (el inicio de la transmisión de información se denomina bit de INICIO) y finaliza enviando información acerca de la finalización de la transmisión (denominada bit de FINALIZACIÓN, en la que incluso puede haber varios bits de FINALIZACIÓN).
- En una conexión sincrónica, el transmisor y el receptor están sincronizados con el mismo reloj. El receptor recibe continuamente (incluso hasta cuando no hay transmisión de bits) la información a la misma velocidad que el transmisor la envía. Es por este motivo que el receptor y el transmisor están sincronizados a la misma velocidad. Además, se inserta información suplementaria para garantizar que no se produzcan errores durante la transmisión.
En el transcurso de la transmisión sincrónica, los bits se envían sucesivamente sin que exista una separación entre cada carácter, por eso es necesario insertar elementos de sincronización; esto se denomina sincronización al nivel de los caracteres.
La principal desventaja de la transmisión sincrónica es el reconocimiento de los datos en el receptor, ya que puede haber diferencias entre el reloj del transmisor y el del receptor. Es por este motivo que la transmisión de datos debe mantenerse por bastante tiempo para que el receptor pueda distinguirla. Como resultado de esto, sucede que en una conexión sincrónica, la velocidad de la transmisión no puede ser demasiado alta.
proceso del cliente
Como en TCP, la comunicación cliente/servidor la inicia una aplicación cliente que solicita datos de un proceso de servidor. El proceso de cliente UDP selecciona al azar un número de puerto del rango de números de puerto dinámicos y lo utiliza como puerto de origen para la conversación. Por lo general, el puerto de destino es el número de puerto bien conocido o registrado que se asigna al proceso de servidor.
Los números de puerto de origen seleccionados al azar colaboran con la seguridad. Si existe un patrón predecible para la selección del puerto de destino, un intruso puede simular el acceso a un cliente de manera más sencilla intentando conectarse al número de puerto que tenga mayor posibilidad de estar abierto.
Dado que no se crean sesiones con UDP, no bien los datos están listos para enviarse y los puertos están identificados, UDP puede formar los datagramas y pasarlos a la capa de red para direccionarlos y enviarlos a la red.
Una vez que el cliente selecciona los puertos de origen y de destino, este mismo par de puertos se utiliza en el encabezado de todos los datagramas que se utilizan en la transacción. Para la devolución de datos del servidor al cliente, se invierten los números de puerto de origen y destino en el encabezado del datagrama.
Desplácese por las ilustraciones a la derecha para ver los detalles de los procesos de cliente UDP.
aplicación de los protocolos TCP Y UTP
Como en TCP, la comunicación cliente/servidor la inicia una aplicación cliente que solicita datos de un proceso de servidor. El proceso de cliente UDP selecciona al azar un número de puerto del rango de números de puerto dinámicos y lo utiliza como puerto de origen para la conversación. Por lo general, el puerto de destino es el número de puerto bien conocido o registrado que se asigna al proceso de servidor.
Los números de puerto de origen seleccionados al azar colaboran con la seguridad. Si existe un patrón predecible para la selección del puerto de destino, un intruso puede simular el acceso a un cliente de manera más sencilla intentando conectarse al número de puerto que tenga mayor posibilidad de estar abierto.
Dado que no se crean sesiones con UDP, no bien los datos están listos para enviarse y los puertos están identificados, UDP puede formar los datagramas y pasarlos a la capa de red para direccionarlos y enviarlos a la red.
Una vez que el cliente selecciona los puertos de origen y de destino, este mismo par de puertos se utiliza en el encabezado de todos los datagramas que se utilizan en la transacción. Para la devolución de datos del servidor al cliente, se invierten los números de puerto de origen y destino en el encabezado del datagrama.
Desplácese por las ilustraciones a la derecha para ver los detalles de los procesos de cliente UDP.