Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Protocolo UDP
Servicio sencillo, no orientado a conexin, no sencillo conexin fiable Se utiliza en los siguientes entornos:
El intercambio de mensajes es muy escaso, ej.: consultas al DNS (servidor de nombres) La aplicacin es en tiempo real y no puede esperar confirmaciones. Ej : videoconferencia confirmaciones Ej.: videoconferencia, voz sobre IP. IP Los mensajes se producen regularmente y no importa si se pierde alguno. Ej: NTP, SNMP El medio de transmisin es altamente fiable y sin congestin (LANs). Ej: NFS Se enva trfico broadcast/multicast
Protocolo UDP
Las TPDUs de UDP se denominan mensajes o datagramas UDP UDP multiplexa los datos de las aplicaciones y efecta opcionalmente una comprobacin de errores, pero no realiza:
Control de flujo Control de congestin Retransmisin de datos perdidos Conexin/desconexin
La cabecera UDP
32 bits Direccin IP de origen
Pseudocabecera
Direccin IP de destino 00000000 00010001 bits 32 Long. Datagrama UDP Puerto de destino Checksum
Cabecera
La pseudocabecera se aade al principio del datagrama para el clculo del checksum, pero no se enva. Permite a UDP comprobar que IP no se ha equivocado (ni le ha engaado) en la entrega del datagrama. El valor 100012 = 1710 indica que el protocolo de transporte es UDP
Multiplexacin
La multiplexacin se realiza mediante el puerto (origen o destino) que puede valer de 0 a 65535. Los puertos 0 a 1023 estn reservados para servidores bien conocidos (well known ports) La combinacin de una direccin IP y un puerto identifica un socket (origen o destino de los socket datagramas UDP): 147.156.135.22.1038
Direccin IP Socket Puerto
Multiplexacin
Nivel de aplicacin
Mltiples instancias (una o varias por p protocolo) )
Daytime
(Puerto 13)
DNS
(Puerto 53)
NTP
(Puerto 123)
Nivel de transporte
Dos instancias (TCP y UDP)
P. dest. 13
Cabecera UDP
Checksum
DATOS APLICACIN
Checksum
Nivel de red
Una instancia IP (puede haber otros protocolos)
Prot. 17
Cabecera IP
DATAGRAMA UDP
Nivel de enlace
Mltiples instancias (una por interfaz)
Ethertype 0800
Cabecera MAC Ethernet
DATAGRAMA IP
CRC
CRC
Port 13
Port 1038
Cliente IP 10.0.1.50
Socket: 10.0.1.50.1038
Una conexin puede terminarse tanto por iniciativa del cliente como del servidor. Tambin hay aplicaciones que utilizan el modelo igual a igual (peer-to-peer) como Emule, Edonkey, etc.
Funciones de TCP
Multiplexar el nivel de aplicacin (port) Controlar errores, retransmitiendo segmentos perdidos o errneos. Eliminar duplicados Establecer y terminar conexiones Gestionar los buffers y ejercer control de flujo de forma eficiente Gestionar el intercambio de datos con las aplicaciones Efectuar control de congestin
La cabecera TCP
32 bits Puerto de origen Puerto de destino
Flags (8 bits)
Checksum Opciones Flags: CWR: ECE: ECE URG: ACK: PSH: RST: SYN: FIN:
Congestion Window Reduced ECN Echo (ECN=Explicit Congestion Notification) E h (ECN E li it C ti N tifi ti ) el segmento contiene datos urgentes el campo nmero de acuse de recibo tiene sentido el segmento contiene datos Pushed ha habido algn error y la conexin debe cerrarse indica el inicio de una conexin indica el final de una conexin
La pseudocabecera TCP
32 bits Direccin IP de origen Direccin IP de destino 00000000 00000110 Long. Segmento TCP
Se aade al principio del segmento solo para el clculo del Checksum, no se enva. Permite a TCP comprobar que IP no se ha h equivocado ( i l h engaado) en l entrega d l segmento. i d (ni le ha d ) la t del t El valor 1102 = 610 indica que el protocolo de transporte es TCP
Multiplexacin
Se utiliza el nmero de puerto (origen o destino) como en UDP. Puede valer de 0 a 65535. Como en UDP los puertos 0 a 1023 estn reservados para servidores bien conocidos Como en UDP la combinacin de direccin IP y puerto identifica el socket Una conexin TCP queda especificada por los dos sockets que se comunican (IP origen-puerto origen, IP destino-puerto destino)
Multiplexacin
Nivel de aplicacin
Mltiples instancias (una o varias por p protocolo) )
FTP
(Puerto 21)
HTTP
(Puerto 80)
HTTP
(Puerto 400)
Telnet
(Puerto 23)
SMTP
(Puerto 25)
Nivel de transporte
Dos instancias (TCP y UDP)
Checksum
P. dest. (23)
Cabecera TCP
Checksum
DATOS APLICACIN
Nivel de red
Prot. (6)
Cabecera IP
SEGMENTO TCP
Nivel de enlace
Mltiples instancias (una por interfaz)
Ethertype (0800)
Cabecera MAC Ethernet
DATAGRAMA IP
CRC
Dos conexiones TCP a un mismo socket desde dos sockets con el mismo nmero de puerto
Este socket tiene dos conexiones simultneas
Port 1038
Cliente IP 10.0.1.50
Port 23
Socket: 10.0.1.50.1038
Port 1038
Cliente IP 10.0.2.47
Socket: 10.0.2.47.1038
Dos conexiones TCP a un mismo socket desde dos sockets con la misma direccin IP
Port 23
Servidor IP 10.0.1.25
Socket: 10.0.1.25.23
Cliente IP 10.0.1.80
Socket: 10.0.1.80.1039
Conexiones TCP del host UNIX 147.156.1.25 (conectado por telnet desde 147.156.1.219)
Netstat -an Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 0 0 147.156.1.25.2480 147.156.1.1.143 tcp 0 0 147.156.1.25.23 147.156.96.8.1034 tcp 0 240 147.156.1.25.23 147.156.1.219.1036 tcp 0 0 147.156.1.25.513 147.156.1.3.1018 tcp t 0 0 147 156 1 25 513 147.156.1.25.513 147 156 1 3 1019 147.156.1.3.1019 tcp 0 0 147.156.1.25.2429 147.156.1.15.6000 tCP 0 0 147.156.1.25.2428 147.156.1.15.6000 tcp 0 0 147.156.1.25.1022 147.156.1.3.1002 tcp 0 0 147.156.1.25.514 147.156.1.3.1004 tcp 0 0 147.156.1.25.1023 147.156.1.3.1005 tcp 0 0 147.156.1.25.514 147.156.1.3.1007 tcp 0 0 147.156.1.25.139 147.156.1.219.1029 tcp 0 0 *.143 *.* tcp 0 0 *.144 *.* tcp 0 0 147.156.1.25.23 147.156.3.12.1945 tcp 0 0 *.139 139 *.* tcp 0 0 *.5000 *.* tcp 0 0 *.25 *.* tcp 0 0 *.19 *.* tcp 0 0 *.9 *.* udp 0 0 *.16522 *.* udp 0 0 *.16520 *.* udp 0 0 147.156.1.25.123 *.* udp 0 0 127.0.0.1.123 *.* udp 0 0 *.123 *.*
(state) ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED ESTABLISHED CLOSE_WAIT ESTABLISHED CLOSE_WAIT ESTABLISHED LISTEN LISTEN ESTABLISHED LISTEN LISTEN LISTEN LISTEN LISTEN
10
11
TCP B
LISTEN
SYN-RECEIVED
(ISN 300)
Tie empo
ESTABLISHED
ESTABLISHED
TCP B
CLOSED SYN-SENT
(ISN 300)
SYN-RECEIVED
SYN-RECEIVED
Tiempo
ESTABLISHED
ESTABLISHED
12
TCP B
LISTEN
Tiempo
SYN-RECEIVED
(ISN 300)
SYN 100
LISTEN SYN-RECEIVED
(ISN 400)
ESTABLISHED ESTABLISHED
Conexin en TCP
Los dos primeros segmentos de la conexin se identifican con el flag SYN. g El nmero de secuencia es un campo de 32 bits que cuenta bytes en mdulo 232 (el contador se da la vuelta cuando llega al valor mximo). El nmero de secuencia no empieza normalmente en 0, sino en un valor denominado ISN (Initial Sequence Number) elegido al azar; el ISN sirve de PIN en el saludo a tres vas para asegurar la autenticidad de la comunicacin. Una vez establecida la comunicacin el seq y el ack sirven para contar los bytes transmitidos y recibidos.
13
Conexin en TCP
El ISN es elegido por el sistema (cliente o servidor). El estndar sugiere utilizar un contador entero incrementado g en 1 cada 4 s aproximadamente. En este caso el contador se da la vuelta (y el ISN reaparece) al cabo de 4 horas 46 min. El MSL (Maximum Segment Lifetime) tpico es de unos 2 minutos, con lo que la probabilidad de que dos ISN coincidan es despreciable. El mecanismo de seleccin de los ISN es suficientemente fiable para proteger de coincidencias debidas al azar, pero no es un mecanismo de proteccin frente a sabotajes. Es muy fcil averiguar el ISN de una conexin e interceptarla suplantando a alguno de los dos participantes.
Desconexin
Puede ser de dos tipos:
Simtrica: la conexin se considera formada por dos circuitos simplex y cada host solo puede cortar uno (aquel en el que l emite datos). El cierre de un sentido se interpreta como una invitacin a cerrar el otro. Asimtrica: desconexin unilateral (un host la termina en ambos sentidos sin esperar a recibir confirmacin b tid i ibi fi i del otro). Puede provocar prdida de informacin.
14
Desconexin asimtrica
Host 1 Host 2
No Conectado DR:
Datos perdidos
No Conectado
Disconnect Request
Mensaje de Desconexin
EL mensaje solicitando la desconexin se puede perder. Por eso se pide una confirmacin (ACK). Pero la confirmacin tambin podra perderse, por lo que habra que enviar una reconfirmacion, y as sucesivamente. Este problema no tiene solucin infalible, pues infalible estamos usando un canal no fiable para asegurar un envo de informacin. Es lo que se conoce como el problema de los dos ejrcitos.
15
Desconexin en TCP
Se utiliza el saludo a tres vas invitando a la otra saludo vas parte a cerrar. Para indicar el cierre se utiliza el flag FIN La desconexin puede iniciarla cualquiera de los dos TCP (el cliente o el servidor). U vez efectuada l desconexin el host que Una f t d la d i l h t inici el proceso est un cierto tiempo a la espera por si aparecen segmentos retrasados
16
17
Receptor
0
Buffer 4K
Vaco 2 KB
La aplicacin escribe 3 KB
Lleno
Emisor Bloqueado q La aplicacin p lee 2 KB
2 KB
El emisor puede enviar hasta 2 KB
3 KB
18
3. ACK TCP: --- TCP header --TCP: TCP: Source port = 2345 p TCP: Dest port = 23 (Telnet) TCP: Seq. Number = 16421122 TCP: Acknowledgment Number = 390272002 TCP: Data offset = 20 bytes TCP: Flags = 10 (ACK) TCP: Window = 2048 TCP: Checksum = DF43 (correct) TCP: No TCP options
Driver Tarjeta
Tarjeta red
19