Protocolos UDP y TCP PDF

Title Protocolos UDP y TCP
Course Introducció Xarxes Telemàtiques
Institution Universitat Politècnica de Catalunya
Pages 2
File Size 172.8 KB
File Type PDF
Total Downloads 28
Total Views 135

Summary

Apuntes sobre los protocolos UDP y TCP de la asignatura IXT de Telecos UPC...


Description

Tema 4.3: Protocolos de transporte: UDP y TCP Protocolos de transporte: Una misma máquina puede ejecutar múltiples servicios. Todos los procesos de la máquina comparten la misma IP. El protocolo de transporte permite identificar el proceso que envía la información y al que va destinado. Ofrece muchas funcionalidades como segmentación y reensamblado, control de flujo extremo a extremo, control de errores extremo a extremo… Puerto de red: ¿Cómo identificar procesos? La dirección IP identifica el nodo. Se emplea un identificador numérico, llamado puerto de red para identificar el proceso. Tendremos por lo tanto una dirección IP y puerto origen (proceso que envía la información) y una dirección IP y puerto destino. El puerto de red se codifica mediante 16 bits (aunque no todos los valores son seleccionables ya que algunos estan reservados). • Puertos bien conocidos (well-known ports): Valores entre 0 y 1023. Valores asignados para aplicaciones y protocolos universalmente establecidos (FTP puerto 21, HTTP puerto 80…). Estos puertos solo los puede abrir un superusuario de la máquina (ej. root en linux). • Puertos registrados (registered ports): Valores entre 1024 y 49151. Puertos reservados por la IANA. Destinado a aplicaciones y protocolos reconocidos. • Puertos dinámicos o privados (dynamic or private ports): Valores entre 49152 y 65535. Empleados libremente por cualquier usuario. Destinados a comunicaciones cortas (sólo tienen valor durante una cierta comunicación, se pueden repetir a lo largo del tiempo) Protocolo UDP (User Datagram Protocol): Publicado en RFC 768. Protocolo de transporte no fiable. No orientado a conexión (no requiere un previo establecimiento de conexión). No tiene estado (menor uso de recursos). No soporta control de flujo. No permite la recuperación de errores. Su propósito es ofrecer una conexión minimalista entre procesos. Pone el foco en la simplicidad y velocidad de procesado (ej. DNS, NFS…). Interesante para protocolos en tiempo real. Cabecera UDP: • Puerto origen (16 bits): Solo se emplea en comunicaciones bidireccionales. Si no se usa se rellena con 0s. • Puerto destino (16 bits) • Longitud (16 bits): longitud total en bytes del datagrama UDP incluyendo los datos. • Checksum (16 bits): Verificación de integridad sobre pseudo cabecera IP, cabecera UDP y datos UDP. Es opcional. Se crea una pseudo cabecera con información IP, a la que se añade la cabecera UDP y los datos UDP. Protocolo: 17 es el valor para UDP. Longitud UDP = cabecera + datos. • En origen: el checksum se inicializa a 0. Se codifica la estructura anterior en complemento a 1. Se suman todos los valores en bloques de 16 bits. El checksum es el complemento a 1 del resultado de la suma. • En destino: Se codifica la estructura anterior en complemento a 1. Se suman todos los valores en bloques de 16 bits. Si no hay errores, el resultado debe ser 0. Si se produce un error, el paquete UDP se descarta. Si se opta por no enviar el checksum (solo posible en IPv4) se rellena todo el campo con 0s. Implementación computacionalmente eficiente de este procedimiento en RFC 1071. El procedimiento para el cálculo del checksum es equivalente al que se sigue en TCP. Protocolo TCP (Transmission Control Protocol): Protocolo de transporte (extremo a extremo) fiable. Orientado a conexión (establecimiento previo mediante handshake). Mantiene el estado de la comunicación (requiere recursos). Permite control de flujo con ventana deslizante. Permite recuperación de errores. Asegura la secuencialidad de los datos recibidos. Su propósito es ofrecer una conexión fiable y libre de errores entre procesos. Se centra en la integridad de los datos, no la eficiencia del protocolo. Ej. navegación web HTTP. • Fases de operación: • Establecimiento de la conexión: se crea un canal fiable extremo a extremo. • Transferencia de la información. • Liberación de la conexión • Canal TCP: Canal bidireccional full dúplex. Transmite flujo de bytes (no interpreta la información). • Segmento TCP: • Maximum Segment Size (MSS): Limitado por la MTU de nivel 2 y por el tamaño máximo del datagrama IP. Normalmente MSU = MTU - HIP - HTCP • Cabecera TCP:

• Puerto origen y destino: Obligatorios en TCP. Explicación equivalente a UDP • Numero de secuancia (SEQ): Numera la trama enviada de forma unívoca. Su valor no es aleatorio. Representa la posición en bytes que ocupan los datos del segmento TCP dentro del flujo de datos. Asegura la secuenciación, permite el reconocimiento de tramas y permite descartar duplicados. Su valor está limitado a 2^32-1. Es recomendable aleatorizar el valor de SEQ. Aumenta la seguridad en las conexiones y permite reutilizarlas. • Número de confirmación: Siguiente byte que se espera recibir por parte del receptor. Confirmación de todos los bytes anteriores. • Tamaño de la cabecera (offset): Indica, dentro del segmento TCP, el byte en el que empieza el payload. • Flags: • URG: 1 indica que contiene datos urgentes y deben ser priorizados. • ACK: 1 indica que el segmento recibido en un extremo del canal de comunicación, adem ás de l os datos, c onti ene el r ec onoc i m i e nto de l os s eg m entos previamente recibidos en el extremo opuesto. • PSH: Los segmentos a transmitir no se envían directamente, se almacenan en un buffer. Cuando se recibe un segmento con PSH activo, se procesa el buffer (se inicia el envío). Lo mismo pasa en recepción. • RST: 1 indica al otro extremo de la conexión que se ha producido falta de coherencia en los datos. Con este flag se solicita el reinicio de la conexión. • SYN: 1 indica al otro extremo que se desea establecer una nueva conexión. • FIN: 1 indica al otro extremo que la conexión puede cerrarse. RST también lo indica, pero porque ha habido un error. • Tamaño de la ventana (W): Permite indicar al receptor del segmento la capacidad del transmisor para recibir datos. Si el servidor recibe W=1000, entiende que el cliente es capaz de recibir adecuadamente segmentos de 1000B. • Checksum: Mismo algoritmo que en UDP • Puntero de urgencia: En un segmento puede haber datos urgentes y no urgentes. Sólo tiene sentido si el flag URG esta activado. Indica a partir de qué byte los datos ya no se consideran urgentes. • Opciones: Añade características no incluidas en la cabecera fija. Su tamaño puede ser desde 0 en adelante, con tamaños múltiples de 32 bits....


Similar Free PDFs