28
PROTOCOLO TCP IP

Protocolo Tcp Ip

Embed Size (px)

DESCRIPTION

Es un protocolo Básico de Comunicaciones

Citation preview

Page 1: Protocolo Tcp Ip

PROTOCOLO TCP IP

Page 2: Protocolo Tcp Ip

Introducción a TCP e IP

Page 3: Protocolo Tcp Ip

3copyright © 1996 Wandel & Goltermann

Funciones de TCP e IPFunciones de TCP e IP TCP

prové confiabilidad; implementa conexión de datos, recuperación de errores por repetición, control de flujo

UDP transporte de datagramas, no

orientado a conexión IP

protocolo de enrutamiento ICMP

gestión de errores de la capa IP (implementa, por ejemplo, Ping y Traceroute)

IGMPgestión de grupo (para multicasting)

ARP (Address Resolution Protocol) e RARP (Reverse ARP)

para conversión de direcciones IP en direcciones usadas por la interfaz de red y vice-versa

TCP UDP

ICMP IP IGMP

ARPinterfaz de hardware

RARP

proc. de usuario

proc. de usuario

proc. de usuario

proc. de usuario

medio físico

aplicación

transporte

red

enlace

Page 4: Protocolo Tcp Ip

4copyright © 1996 Wandel & Goltermann

Direcciones IPDirecciones IP

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8byte 1 byte 2

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8byte 3 byte 4

0

1

1

0

1 1

7 bits: ident. da red (netid)

14 bits: ident. da red (netid)

24 bits: ident. del host (hostid)

1 1 0

16 bits: ident. del host (hostid)

0 28 bits: ident. del grupo de multicasting

1 1 1 1 27 bits: reservados para usos futuros0

21 bits: ident. da red (netid) 8 bits: ident. del host (hostid)

Las direcciones de clases A e B generalmente son divididas en sub-redesde los 24 o 16 bits del hostid, algunos son reservados para designar una

sub-redtambién posible para la clase C, pero los 8 bits de hostid son pocos...

A

B

C

D

E

clase:

Page 5: Protocolo Tcp Ip

5copyright © 1996 Wandel & Goltermann

MultiplexaciónMultiplexación

Ya vimos que varias entidades solicitan los servicios del protocolo IPeste es el caso de UDP, TCP, ICMP e IGMPel IP agrega un identificador de 1 byte que indica a cual capa

pertenecen los datos (campo protocolo)el valor 1 corresponde a ICMP, 2 a IGMP, 6 a TCP e 17 a UDP

De forma similar, varias aplicaciones pueden solicitar los servicios del UDP o del TCPambos utilizan un número de 16 bits llamado número de

puerto para identificar la aplicaciónlos encabezados de TCP e UDP traen los números de los

puertos de destino e de origen La capa física envía y recibe datos de IP, ARP e RARP

el encabezado Ethernet contiene un campo de tipo de trama de 16 bits para identificar la capa de red correcta

Page 6: Protocolo Tcp Ip

6copyright © 1996 Wandel & Goltermann

Multiplexación (cont.)Multiplexación (cont.)

ARP

driverEthernet

IP

RARP

ICMP IGMP

TCPUDP

aplicaciónaplicaciónaplicación aplicación

demultiplexaciónbasada en el tipo dequadro Ethernet

demultiplexaciónbasada en el protocolvalue del encabezado IP

demultiplexación basadaen el destination port

number del encabezadoTCP o UDP

Page 7: Protocolo Tcp Ip

7copyright © 1996 Wandel & Goltermann

Funciones de TCP e IPFunciones de TCP e IP TCP

prové confiabilidad; implementa conexión de datos, recuperación de errores por repetición, control de flujo

UDP transporte de datagramas, no

orientado a conexión IP

protocolo de enrutamiento ICMP

gestión de errores de la capa IP (implementa, por ejemplo, Ping y Traceroute)

IGMPgestión de grupo (para multicasting)

ARP (Address Resolution Protocol) e RARP (Reverse ARP)

para conversión de direcciones IP en direcciones usadas por la interfaz de red y vice-versa

TCP UDP

ICMP IP IGMP

ARPinterfaz de hardware

RARP

proc. de usuario

proc. de usuario

proc. de usuario

proc. de usuario

medio físico

aplicación

transporte

red

enlace

Page 8: Protocolo Tcp Ip

8copyright © 1996 Wandel & Goltermann

Direcciones IPDirecciones IP

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8byte 1 byte 2

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8byte 3 byte 4

0

1

1

0

1 1

7 bits: ident. da red (netid)

14 bits: ident. da red (netid)

24 bits: ident. del host (hostid)

1 1 0

16 bits: ident. del host (hostid)

0 28 bits: ident. del grupo de multicasting

1 1 1 1 27 bits: reservados para usos futuros0

21 bits: ident. da red (netid) 8 bits: ident. del host (hostid)

Las direcciones de clases A e B generalmente son divididas en sub-redesde los 24 o 16 bits del hostid, algunos son reservados para designar una

sub-redtambién posible para la clase C, pero los 8 bits de hostid son pocos...

A

B

C

D

E

clase:

Page 9: Protocolo Tcp Ip

9copyright © 1996 Wandel & Goltermann

MultiplexaciónMultiplexación

Ya vimos que varias entidades solicitan los servicios del protocolo IPeste es el caso de UDP, TCP, ICMP e IGMPel IP agrega un identificador de 1 byte que indica a cual capa

pertenecen los datos (campo protocolo)el valor 1 corresponde a ICMP, 2 a IGMP, 6 a TCP e 17 a UDP

De forma similar, varias aplicaciones pueden solicitar los servicios del UDP o del TCPambos utilizan un número de 16 bits llamado número de

puerto para identificar la aplicaciónlos encabezados de TCP e UDP traen los números de los

puertos de destino e de origen La capa física envía y recibe datos de IP, ARP e RARP

el encabezado Ethernet contiene un campo de tipo de trama de 16 bits para identificar la capa de red correcta

Page 10: Protocolo Tcp Ip

10copyright © 1996 Wandel & Goltermann

Multiplexación (cont.)Multiplexación (cont.)

ARP

driverEthernet

IP

RARP

ICMP IGMP

TCPUDP

aplicaciónaplicaciónaplicación aplicación

demultiplexaciónbasada en el tipo dequadro Ethernet

demultiplexaciónbasada en el protocolvalue del encabezado IP

demultiplexación basadaen el destination port

number del encabezadoTCP o UDP

Page 11: Protocolo Tcp Ip

11copyright © 1996 Wandel & Goltermann

Números de Puertos TCP y UDPNúmeros de Puertos TCP y UDP

Como se atribuyen los valores del port number?los servidores normalmente tienen un nº. de puerto well-

known (ampliamente conocido)p/ ej., toda implementación TCP/IP con un servidor FTP dá ese

servicio en el puerto TCP de nº. 21; todo servidor Telnet sobre TCP está en el puerto 23; toda implementación TFTP está en el puerto 69 de UDP

esos números (de 1 a 1023) son atribuidos por la IANA (Internet Assigned Numbers Authority)

los clientes no se importan con cual número de puerto se utiliza de su propio lado (puertos efímeros); apenas, esos números tienen que ser únicos de su lado

esos números efímeros varían, generalmente, de 1024 a 5000

Page 12: Protocolo Tcp Ip

12copyright © 1996 Wandel & Goltermann

Servicios Simples EstandarizadosServicios Simples Estandarizados Algunos servicios estandarizados son soportados por casi todas

las implementaciones:

nombre puerto TCPpuerto UDP RFC descripción

echo 7 7 862 el servidor devuelve todo lo que el cliente envía

discard 9 9 863 el servidor descarta todo lo que el cliente envía

daytime 13 13 867 el servidor devuelve la fecha y la hora en formato legible

chargen 19 19 864

el servidor TCP envía una cadena continua de caracteres hasta que el cliente termine la

conexión; el servidor UDP envía un datagrama conteniendo un número aleatorio de caracteres cada vez que el cliente le envía

un datagrama

time 37 37 868el servidor devuelve el tiempo bajo la forma

de un nº. binario de 32 bits; este nº. representa el número de segundos desde la

cero hora de 1/1/1900, UTC

Page 13: Protocolo Tcp Ip

13copyright © 1996 Wandel & Goltermann

Interfaces de Programas de Aplicación (APIs)Interfaces de Programas de Aplicación (APIs)

Las dos APIs más comunes para aplicaciones corriendo sobre TCP/IP son “sockets” y TLI (Transport Layer Interface)la primera también es llamada Berkeley sockets, pués fué

desarrollada allíla segunda fué originalmente desarrollada por la AT&T, siendo

llamada XTI (X/Open Transport Interface), reconociendo el trabajo hecho por la X/Open

Page 14: Protocolo Tcp Ip

14copyright © 1996 Wandel & Goltermann

Encapsulación en la Capa de EnlaceEncapsulación en la Capa de Enlace

La capa de enlace corre entre puntos adjacentes, por debajo de la capa IP (o ARP, o RARP)la capa de enlace depende del medio utilizado (Ethernet,

Token Ring, FDDI, interfaz serie RS-232, etc.)además de las capas de enlace para ambientes Ethernet, hay

dos capas de enlace especializadas para interfaces serie: SLIP y PPP, con el driver de loopback asociado

SLIP significa serial line IPmuy sencilla: el datagrama IP es enmarcado por el caracter

especial end, hex c0si ese caracter aparece entre los datos, es anulado por la

secuencia SLIP ESC (hex db dc)si esa secuencia aparece entre los datos, es modificada para

hex db ddPPP significa point to point protocol

Page 15: Protocolo Tcp Ip

15copyright © 1996 Wandel & Goltermann

Protocolo SLIPProtocolo SLIP

O SLIP tiene algunas pequenas desventajas:no permite que un extremo informe su dirección IP al otro (las

direcciones tienen que ser conocidas de antemano)no hay campo de tipo: la linea serie solo puede ser utilizada

para un único protocolono hay CRC: no hay detección de errores de transmisión por

parte del SLIP (sería una atribución de capas superiores)algunos modems modernos pueden detectar y corrigir erroresde cualquier forma, es esencial que las capas superiores

detecten erroresel encabezado IP es protegido por un CRC, y los encabezados y

los datos TCP también son protegidos por un CRC; en el caso de UDP, el CRC es opcional

Page 16: Protocolo Tcp Ip

16copyright © 1996 Wandel & Goltermann

Protocolo CSLIP (SLIP Comprimido)Protocolo CSLIP (SLIP Comprimido)

Una desventaja de lineas serie para tráfico interactivo es el tamaño del encabezado IP y TCP (20 más 20 bytes)hay una versión nueva de SLIP, llamada CSLIP, que reduce el

encabezado de 40 para 3 ó 5 bytesmantiene el estado de hasta 16 conexiones TCP en cada

extremo y sabe que algunos campos en los dos encabezados no cambian nunca

Page 17: Protocolo Tcp Ip

17copyright © 1996 Wandel & Goltermann

Protocolo PPPProtocolo PPP

PPP soluciona las deficiencias de SLIPsoporta enlaces asíncronos y orientados a bitsuministra un protocolo de control de enlace (LCP, link

control protocol) para establecer, configurar y probar el enlace de datos

soporta múltiples NCPs (network control protocols), tales como IP, para la capa de red OSI, para DECnet y AppleTalk

el NCP para IP, p/ ej., permite que cada extremo especifique si es capaz de comprimir los encabezados (similarmente a CSLIP)

flag

7E

dire

cció

nFF

frame check

sequencecampo de información

cont

rol

03 CRCprotocolo:0021 - IP

C021 - LCP8021 - NCP

2 bytes hasta 1500 bytes 2 bytes

flag

7E

1 by

te

1 by

te

1 by

te

1 by

te

Page 18: Protocolo Tcp Ip

18copyright © 1996 Wandel & Goltermann

Detallamento del IPDetallamento del IP

Page 19: Protocolo Tcp Ip

19copyright © 1996 Wandel & Goltermann

desplazam. del fragmento (13 bits)

El Encabezado IPEl Encabezado IP

identificación (16 bits)

versión(4 bits)

longitud delencabezado

(4 bits)tipo de servicio

(8 bits) longitud total (en bytes, 16 bits)

flags de3 bits

tiempo de vida (time to live) (8 bits) protocolo (8 bits)

secuencia de verificación:checksum del encabezado IP (16 bits)

dirección IP de origen (32 bits)

dirección IP de destino (32 bits)

opciones (si es que las hay)

datos

20 b

ytes

Page 20: Protocolo Tcp Ip

20copyright © 1996 Wandel & Goltermann

Campos del Encabezado IP (1)Campos del Encabezado IP (1)

Versiónla versión actual del IP es la 4 (IPv4)

la versión 6.0 ya se publicó y está en etapa de implantación Longitud del encabezado

número de palabras de 32 bits que componen el encabezado Tipo de servico (TOS)

l3 bits de precedencia, que no se utilizam1 bit fijo en cero4 bits de TOS:

minimizar retardomaximizar caudalmaximizar confiabilidadminimizar costo

de estos 4 bits, apenas uno puede estar seteado

Page 21: Protocolo Tcp Ip

21copyright © 1996 Wandel & Goltermann

Campos del Encabezado IP (2)Campos del Encabezado IP (2)

Longitud totalcantidad total de bytes del datagrama

en el caso de datagramas fragmentados, longitud (en bytes) del fragmento actual

Identificaciónidentificación unívoca de un datagrama (incrementado a cada

nuevo datagrama)en el caso de fragmentación, todos los fragmentos del

datagrama ganan el mismo número de identificación Banderas

uno de los bits indica haber más fragmentos (seteado para 0 en el último fragmento)

otro bit significa “no fragmentar”si un host no logra transmitir sin fragmentar, el datagrama es

descartado y el ICMP genera un mensaje de error

Page 22: Protocolo Tcp Ip

22copyright © 1996 Wandel & Goltermann

Campos del Encabezado IP (3)Campos del Encabezado IP (3)

Desplazamiento del segmentoindica el offset del inicio del fragmento actual en relación al

inicio del datagramaincluso, permite que el datagrama sea ensamblado

corretamente aún cuando los fragmentos llegam fuera de orden Tiempo de vida (TTL)

fija un límite superior para el número de enrutadores por los cuales el datagrama puede pasar

es inicializado por el transmisor (p. ej. en 32 ó 64) y decrementado al passar por un enrutador

cada enrutador lo decrementa en una unidade, o en el número de segundos que ha retenido el datagrama si la retención ha sido de más de un segundo

al llegar a cero este campo, el datagrama es descartado, y un mensaje de ICMP es generada para el transmisor

Page 23: Protocolo Tcp Ip

23copyright © 1996 Wandel & Goltermann

Campos del Encabezado IP (4)Campos del Encabezado IP (4)

Protocoloya comentado:

el valor 1 corresponde a ICMP, 2 a IGMP, 6 a TCP y 17 a UDP Checksum del encabezado

calculado sobre el encabezado IP, apenaslos demás protocolos (ICMP, IGMP, UDP e TCP tienen sus

propias checksums específicasla checksum no pasa del complemento a 1 del encabezado,

visto como palabras de 16 bitsun error acá no hace con que se genere un mensaje de error (el

datagrama es sencillamente descartado)como los enrutadores intermedios decrementan el valor del

tiempo de vida, deben actualizar el valor de la checksumgeneralmente lo hacen incrementando a checksum, pués dá lo

mismo que volver a calcularla

Page 24: Protocolo Tcp Ip

24copyright © 1996 Wandel & Goltermann

Campos del Encabezado IP (5)Campos del Encabezado IP (5)

Opciones IPraramente usadas, y ni siempre soportadas por los

enrutadores e hostslas opciones actualmente definidas son las siguientes:

restricciones de seguridad y manejo (p. ej. para aplicaciones militares)

registro de la ruta (cada enrutador debe registrar su dirección IP)

sello de hora (cada enrutador debe registrar su dirección IP y la hora actual)

enrutamiento tolerante por la fuente (especificando un listado de direcciones IP que deben ser recorridas por el datagrama)

enrutamiento estricto por la fuente (similar al anterior, especificando un listado de direcciones IP a ser recorridas por el datagrama, pero en este caso SOLAMENTE esas direcciones pueden ser recorridas)

Page 25: Protocolo Tcp Ip

25copyright © 1996 Wandel & Goltermann

Protocolos de Resolución de DireccionesProtocolos de Resolución de DireccionesARP e RARP ARP e RARP

Page 26: Protocolo Tcp Ip

26copyright © 1996 Wandel & Goltermann

Explanación del ProblemaExplanación del Problema

Las direcciones IP solo tienen sentido para el TCP/IPen medios compartidos, como Ethernet o Token Ring, hay

esquemas propios de direccionamiento (generalmente, 48 bits) que cualquier capa usuaria tienen que seguir

la resolución de direcciones permite un mutuo mapeo (asociación) entre dos tipos de direccionamiento: direcciones IP de 32 bits y direcciones utilizadas por el enlace de datos

dirección Ethernet de 48 bits

dirección IP de 32 bits

ARP RARP

Page 27: Protocolo Tcp Ip

27copyright © 1996 Wandel & Goltermann

ARPARP

El ARP ofrece un mapeo dinámico de una dirección IP en la dirección de hardware correspondienteel RARP es usado por sistemas sin disco rígido, pero

requiere una configuración manual hecha por el administrador de la red

El problema consiste en resolver una dirección IP lógica en una dirección, por ejemplo, Ethernet físicapara hacerlo, ARP envía una trama broadcast a la Ethernet

llamada “ARP request” a todos los hosts a la red, conteniendo la dirección IP de destino buscada

la pregunta es, “Si usted tiene esta dirección IP, conteste a mi con su dirección física”

la estación que reconoce su dirección IP contesta con una trama Ethernet “ARP reply”

Page 28: Protocolo Tcp Ip

28copyright © 1996 Wandel & Goltermann

CachéCaché de ARP y Otras Consideraciones de ARP y Otras Consideraciones

Una vez obtenida la correspondencia, el mapeo es almacenado en una memoria caché en cada hostesa caché mantiene los mapeaos recientes de direcciones IP

en direcciones de hardwareel tiempo normal para que cada linea dure en memoria es de

20 minutos Una trama ARP en la Ethernet tiene 28 bytes además del

encabezado Ethernet de 14 bytesel campo de “tipo de trama” 0806 indica tratarse de ARPel “ARP request / reply” contiene las direcciones de Ethernet

e IP de origen y de destino (en el request falta la dirección Ethernet de destino, está claro)