Está en la página 1de 88

TCP/IP:

los protocolos
de la red Internet

TCP/IP:
los protocolos
de la red Internet

Jos M. Barcel Ordinas


Jordi igo Griera

Jos M. Barcel Ordinas


Jordi igo Griera

P03/75064/00977

P03/75064/00977

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

ndice

ndice

Introduccin............................................................................................... 5

Introduccin............................................................................................... 5

Objetivos ...................................................................................................... 7

Objetivos ...................................................................................................... 7

1. Estructura de protocolos en Internet ............................................. 9

1. Estructura de protocolos en Internet ............................................. 9

1.1. Protocolos de Internet ....................................................................... 10

1.1. Protocolos de Internet ....................................................................... 10

1.2. Encapsulamiento ............................................................................... 11

1.2. Encapsulamiento ............................................................................... 11

2. Redes de acceso a Internet ................................................................. 13

2. Redes de acceso a Internet ................................................................. 13

2.1. Acceso telefnico: el PPP ................................................................... 13

2.1. Acceso telefnico: el PPP ................................................................... 13

2.1.1. Compresin de las cabeceras ................................................. 15

2.1.1. Compresin de las cabeceras ................................................. 15

2.1.2. MTU........................................................................................ 15

2.1.2. MTU........................................................................................ 15

2.2. Acceso ADSL ...................................................................................... 16

2.2. Acceso ADSL ...................................................................................... 16

2.3. Acceso LAN: el protocolo Ethernet.................................................... 18

2.3. Acceso LAN: el protocolo Ethernet.................................................... 18

2.3.1. Formato de la trama Ethernet ................................................ 18

2.3.1. Formato de la trama Ethernet ................................................ 18

2.3.2. Direcciones LAN..................................................................... 21

2.3.2. Direcciones LAN..................................................................... 21

3. El IP (Internet protocol) ...................................................................... 23

3. El IP (Internet protocol) ...................................................................... 23

3.1. Direcciones IP .................................................................................... 23

3.1. Direcciones IP .................................................................................... 23

3.1.1. Mscaras de red ...................................................................... 25

3.1.1. Mscaras de red ...................................................................... 25

3.1.2. Direcciones de propsito especial .......................................... 25

3.1.2. Direcciones de propsito especial .......................................... 25

3.2. El formato del paquete IP .................................................................. 26

3.2. El formato del paquete IP .................................................................. 26

3.2.1. Fragmentacin ....................................................................... 30

3.2.1. Fragmentacin ....................................................................... 30

3.3. Direccionamiento y direccionadores................................................. 31

3.3. Direccionamiento y direccionadores................................................. 31

3.3.1. La tabla de direccionamiento................................................. 32

3.3.1. La tabla de direccionamiento................................................. 32

4. El ARP (address resolution protocol) ............................................... 35

4. El ARP (address resolution protocol) ............................................... 35

5. El ICMP (Internet control message protocol) .................................. 38

5. El ICMP (Internet control message protocol) .................................. 38

5.1. Mensajes ICMP .................................................................................. 38

5.1. Mensajes ICMP .................................................................................. 38

5.2. El programa ping .............................................................................. 39

5.2. El programa ping .............................................................................. 39

5.3. El programa traceroute.................................................................. 41

5.3. El programa traceroute.................................................................. 41

5.4. Mensaje de redireccionamiento ........................................................ 43

5.4. Mensaje de redireccionamiento ........................................................ 43

6. Protocolos del nivel de transporte .................................................. 45

6. Protocolos del nivel de transporte .................................................. 45

7. El UDP (user datagram protocol)...................................................... 48

7. El UDP (user datagram protocol)...................................................... 48

8. El TCP (transmission control protocol) ........................................... 50

8. El TCP (transmission control protocol) ........................................... 50

8.1. El TCP proporciona fiabilidad ........................................................... 50

8.1. El TCP proporciona fiabilidad ........................................................... 50

8.2. Formato del segmento TCP ............................................................... 51

8.2. Formato del segmento TCP ............................................................... 51

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

8.3. Establecimiento de la conexin ........................................................ 56

8.3. Establecimiento de la conexin ........................................................ 56

8.4. Terminacin de la conexin.............................................................. 58

8.4. Terminacin de la conexin.............................................................. 58

8.5. Diagrama de estados del TCP ............................................................ 61

8.5. Diagrama de estados del TCP ............................................................ 61

8.6. Transferencia de la informacin........................................................ 62

8.6. Transferencia de la informacin........................................................ 62

8.6.1. Transmisin de datos interactivos ......................................... 63

8.6.1. Transmisin de datos interactivos ......................................... 63

8.6.2. Transmisin de datos de gran volumen. Control de flujo

8.6.2. Transmisin de datos de gran volumen. Control de flujo

por ventana deslizante ........................................................... 64

por ventana deslizante ........................................................... 64

8.6.3. Temporizadores y retransmisiones ........................................ 69

8.6.3. Temporizadores y retransmisiones ........................................ 69

Resumen....................................................................................................... 75

Resumen....................................................................................................... 75

Ejercicios de autoevaluacin .................................................................. 77

Ejercicios de autoevaluacin .................................................................. 77

Solucionario................................................................................................ 78

Solucionario................................................................................................ 78

Glosario ........................................................................................................ 80

Glosario ........................................................................................................ 80

Bibliografa................................................................................................. 81

Bibliografa................................................................................................. 81

Anexos .......................................................................................................... 82

Anexos .......................................................................................................... 82

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

Introduccin

Introduccin

Lo que se conoce como red Internet es un conjunto heterogneo de redes in-

Lo que se conoce como red Internet es un conjunto heterogneo de redes in-

terconectadas. Precisamente, es la capacidad de homogeneizar lo que de he-

terconectadas. Precisamente, es la capacidad de homogeneizar lo que de he-

cho es heterogneo, lo que ha catapultado la red Internet a su estatus actual.

cho es heterogneo, lo que ha catapultado la red Internet a su estatus actual.

Los protocolos que distinguen la red Internet como una unidad son el IP* y el
TCP**. De hecho, estos ltimos son slo dos de entre la media docena de protocolos que se necesitan para hacer funcionar la red Internet; sin embargo, son

* IP es la sigla de Internet protocol.


** TCP es la sigla de transmission
control protocol.

Los protocolos que distinguen la red Internet como una unidad son el IP* y el
TCP**. De hecho, estos ltimos son slo dos de entre la media docena de protocolos que se necesitan para hacer funcionar la red Internet; sin embargo, son

los ms importantes. Por este motivo, a todos en conjunto se les llama nor-

los ms importantes. Por este motivo, a todos en conjunto se les llama nor-

malmente pila (stack) TCP/IP (en ingls TCP/IP protocol suite).

malmente pila (stack) TCP/IP (en ingls TCP/IP protocol suite).

Evolucin histrica de la red Internet


La red ARPANET* de Estados Unidos es la precursora de la red Internet actual. Desde
1969, ARPANET financi la interconexin de nodos de conmutacin de paquetes por
medio de lneas punto a punto dedicadas. Durante la primera dcada de funcionamiento
permiti a un ingente conjunto de investigadores desarrollar y perfeccionar las tcnicas
para la gestin y el uso de las redes de conmutacin de paquetes. Hacia el ao 1979, la
pila TCP/IP se empieza a perfilar como el conjunto de protocolos de futuro de la red y, al
final de 1982 todos los nodos de ARPANET ya haban adoptado el TCP/IP.
Rpidamente, ARPANET deviene el nudo de interconexin principal de otras redes de datos, sobre todo de los acadmicos. Los ordenadores militares, que tambin haban formado
parte de la red inicial y de su desarrollo, se dividen y forman una red propia (la MILNET). A
mediados de los aos ochenta, el xito del TCP/IP queda demostrado por el hecho de que la
nueva red de conmutacin de paquetes para la investigacin del NSF* de Estados Unidos
financia la NSFNET. Con el tiempo, todas las redes acadmicas, en primer lugar las de Estados Unidos, despus las de Europa y ms tarde las del resto del mundo se acabarn conectando a esta red. La red de redes, Internet, empez su crecimiento vertiginoso casi
explosivo hacia el ao 1986.
A principios de los aos noventa, las principales universidades ya formaban parte de Internet y, cuando el boom de Internet se prevea que se frenara porque la mayora de las
universidades ya se haban conectado a la misma, las empresas empezaron a ver el potencial de la red, en primer lugar como medio de interconexin y, un poco ms tarde, como
herramienta de marketing (en 1993 aparece el HTTP*, el protocolo del WWW**).

TCP/IP: los protocolos de la red Internet

* IP es la sigla de Internet protocol.


** TCP es la sigla de transmission
control protocol.

Evolucin histrica de la red Internet


* ARPANET es el acrnimo
de advanced research projects agency
network.

* NSF es la sigla de National Science


Foundation.

* HTTP es la sigla de
hyper-text transfer protocol.
** WWW es la sigla de
world wide web.

La red ARPANET* de Estados Unidos es la precursora de la red Internet actual. Desde


1969, ARPANET financi la interconexin de nodos de conmutacin de paquetes por
medio de lneas punto a punto dedicadas. Durante la primera dcada de funcionamiento
permiti a un ingente conjunto de investigadores desarrollar y perfeccionar las tcnicas
para la gestin y el uso de las redes de conmutacin de paquetes. Hacia el ao 1979, la
pila TCP/IP se empieza a perfilar como el conjunto de protocolos de futuro de la red y, al
final de 1982 todos los nodos de ARPANET ya haban adoptado el TCP/IP.
Rpidamente, ARPANET deviene el nudo de interconexin principal de otras redes de datos, sobre todo de los acadmicos. Los ordenadores militares, que tambin haban formado
parte de la red inicial y de su desarrollo, se dividen y forman una red propia (la MILNET). A
mediados de los aos ochenta, el xito del TCP/IP queda demostrado por el hecho de que la
nueva red de conmutacin de paquetes para la investigacin del NSF* de Estados Unidos
financia la NSFNET. Con el tiempo, todas las redes acadmicas, en primer lugar las de Estados Unidos, despus las de Europa y ms tarde las del resto del mundo se acabarn conectando a esta red. La red de redes, Internet, empez su crecimiento vertiginoso casi
explosivo hacia el ao 1986.
A principios de los aos noventa, las principales universidades ya formaban parte de Internet y, cuando el boom de Internet se prevea que se frenara porque la mayora de las
universidades ya se haban conectado a la misma, las empresas empezaron a ver el potencial de la red, en primer lugar como medio de interconexin y, un poco ms tarde, como
herramienta de marketing (en 1993 aparece el HTTP*, el protocolo del WWW**).

El crecimiento actual de Internet se mantiene imparable y empiezan a surgir los primeros


problemas. La red Internet sufre ciertas limitaciones en su especificacin actual que pueden hacer que este crecimiento deba detenerse en un futuro no demasiado lejano si no
se realizan cambios importantes. En particular, el protocolo IP en la versin actual, la 4
(IPv4) limita el nmero de estaciones que se pueden conectar a Internet a 2 32 (unos 4.000
millones de estaciones). Si bien el nmero de estaciones actual (en 1998) es de unos 40
millones, la manera de asignar las direcciones de Internet hace que haya muchas direcciones que, en la prctica, son inutilizables. En la actualidad, se considera que la nica
solucin a largo plazo ser la actualizacin de todos los componentes de la red en la versin nueva, la 6 (IPv6 o IPng, IP next generation).

El crecimiento actual de Internet se mantiene imparable y empiezan a surgir los primeros


problemas. La red Internet sufre ciertas limitaciones en su especificacin actual que pueden hacer que este crecimiento deba detenerse en un futuro no demasiado lejano si no
se realizan cambios importantes. En particular, el protocolo IP en la versin actual, la 4
(IPv4) limita el nmero de estaciones que se pueden conectar a Internet a 2 32 (unos 4.000
millones de estaciones). Si bien el nmero de estaciones actual (en 1998) es de unos 40
millones, la manera de asignar las direcciones de Internet hace que haya muchas direcciones que, en la prctica, son inutilizables. En la actualidad, se considera que la nica
solucin a largo plazo ser la actualizacin de todos los componentes de la red en la versin nueva, la 6 (IPv6 o IPng, IP next generation).

The next generation

The next generation

Las versiones 1, 2, 3 y 5 del IP no se han utilizado nunca. Internet, desde su inicio como
ARPANET, ha adoptado la versin 4. En la actualidad, se habla de la versin nueva como
la versin next generation (en honor a la serie de televisin Star Trek: the next generation)
en lugar de llamarla versin 5, que sera lo normal si no fuera porque un documento
de la IAB (Internet Architecture Board) confundi a todo el mundo diciendo que la nueva
versin sera la 7.

Las versiones 1, 2, 3 y 5 del IP no se han utilizado nunca. Internet, desde su inicio como
ARPANET, ha adoptado la versin 4. En la actualidad, se habla de la versin nueva como
la versin next generation (en honor a la serie de televisin Star Trek: the next generation)
en lugar de llamarla versin 5, que sera lo normal si no fuera porque un documento
de la IAB (Internet Architecture Board) confundi a todo el mundo diciendo que la nueva
versin sera la 7.

Sea como sea, los cuatro primeros bits de todos los paquetes que circulan por Internet
son 0100, es decir, 4, para indicar la versin IP que los define. Los nuevos paquetes debern empezar por cuatro bits diferentes, que obviamente no pueden ser next generation. Estos cuatro bits iniciales sern 0110, es decir, 6.

Sea como sea, los cuatro primeros bits de todos los paquetes que circulan por Internet
son 0100, es decir, 4, para indicar la versin IP que los define. Los nuevos paquetes debern empezar por cuatro bits diferentes, que obviamente no pueden ser next generation. Estos cuatro bits iniciales sern 0110, es decir, 6.

* ARPANET es el acrnimo
de advanced research projects agency
network.

* NSF es la sigla de National Science


Foundation.

* HTTP es la sigla de
hyper-text transfer protocol.
** WWW es la sigla de
world wide web.

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

Hoy da, el protocolo TCP/IP se utiliza incluso en redes homogneas como las

Hoy da, el protocolo TCP/IP se utiliza incluso en redes homogneas como las

que podemos encontrar, por ejemplo, en una empresa privada. La disponibi-

que podemos encontrar, por ejemplo, en una empresa privada. La disponibi-

lidad de muchas aplicaciones que funcionan sobre TCP/IP hace que estos pro-

lidad de muchas aplicaciones que funcionan sobre TCP/IP hace que estos pro-

tocolos se utilicen como conexin entre sistemas locales. Para identificar estos

tocolos se utilicen como conexin entre sistemas locales. Para identificar estos

casos, ha tenido xito el nombre intranet. En general, hablaremos simplemen-

casos, ha tenido xito el nombre intranet. En general, hablaremos simplemen-

te de redes TCP/IP cuando no queramos especificar si tenemos conexin a In-

te de redes TCP/IP cuando no queramos especificar si tenemos conexin a In-

ternet o no.

ternet o no.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

Objetivos

Objetivos

En este mdulo didctico, encontraris los recursos necesarios para lograr los

En este mdulo didctico, encontraris los recursos necesarios para lograr los

objetivos siguientes:

objetivos siguientes:

1. Aprender el funcionamiento de las redes de acceso a Internet (acceso LAN

1. Aprender el funcionamiento de las redes de acceso a Internet (acceso LAN

y acceso por red telefnica).

y acceso por red telefnica).

2. Entender los fundamentos del funcionamiento de los protocolos de direccio-

2. Entender los fundamentos del funcionamiento de los protocolos de direccio-

namiento (IP, ARP e ICMP): la asignacin y el mapeado de direcciones y el

namiento (IP, ARP e ICMP): la asignacin y el mapeado de direcciones y el

control de congestin.

control de congestin.

3. Saber en qu principios se basan los protocolos de control de la transmisin punto a punto (TCP y UDP).
4. Conocer algunas utilidades de uso comn que permiten investigar empricamente las interioridades de la red.

3. Saber en qu principios se basan los protocolos de control de la transmisin punto a punto (TCP y UDP).
4. Conocer algunas utilidades de uso comn que permiten investigar empricamente las interioridades de la red.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

1. Estructura de protocolos en Internet

El modelo Internet gira en torno a los protocolos TCP/IP. De hecho, podramos considerar que el modelo de la red Internet consta slo de cuatro partes o niveles; es decir, todo lo que por debajo del IP, el IP, el TCP y todo lo
que hay por encima del TCP:
1) Nivel de red: por norma general, est formado por una red LAN, o WAN
(de conexin punto a punto) homognea. Todos los equipos conectados a Internet implementan dicho nivel. Todo lo que se encuentra por debajo del IP

FUOC P03/75064/00977

1. Estructura de protocolos en Internet

Lectura complementaria
Para estudiar con ms detalle
los protocolos de Internet,
consultad los apartados 1.4,
1.10 y 29.3 de la obra
siguiente:
D.E. Comer (1995).
Principles, Protocols and
Architecture. Internetworking
with TCP/IP (vol. I).
Hertfordshire: Prentice Hall.

El modelo Internet gira en torno a los protocolos TCP/IP. De hecho, podramos considerar que el modelo de la red Internet consta slo de cuatro partes o niveles; es decir, todo lo que por debajo del IP, el IP, el TCP y todo lo
que hay por encima del TCP:
1) Nivel de red: por norma general, est formado por una red LAN, o WAN
(de conexin punto a punto) homognea. Todos los equipos conectados a Internet implementan dicho nivel. Todo lo que se encuentra por debajo del IP

constituye el nivel de red fsica o, simplemente, nivel de red.

constituye el nivel de red fsica o, simplemente, nivel de red.

2) Nivel IP o nivel Internet (nivel de Internetworking): confiere unidad a

2) Nivel IP o nivel Internet (nivel de Internetworking): confiere unidad a

todos los miembros de la red y, por consiguiente, es el que permite que todos

todos los miembros de la red y, por consiguiente, es el que permite que todos

se puedan interconectar, con independencia de si se conectan a la misma por

se puedan interconectar, con independencia de si se conectan a la misma por

medio de lnea telefnica, ISDN o una LAN Ethernet. El direccionamiento y la

medio de lnea telefnica, ISDN o una LAN Ethernet. El direccionamiento y la

asignacin de direcciones constituyen sus principales funciones. Todos los

asignacin de direcciones constituyen sus principales funciones. Todos los

equipos conectados a Internet implementan este nivel.

equipos conectados a Internet implementan este nivel.

3) Nivel TCP o nivel de transporte: confiere fiabilidad a la red. El control


de flujo y de errores se lleva a cabo principalmente dentro de este nivel, que

TCP/IP: los protocolos de la red Internet

Ved los direccionadores, o nodos


de conmutacin, en el subapartado
3.3 de este mdulo didctico.

3) Nivel TCP o nivel de transporte: confiere fiabilidad a la red. El control


de flujo y de errores se lleva a cabo principalmente dentro de este nivel, que

slo es implementado por los equipos usuarios de la red Internet o por los

slo es implementado por los equipos usuarios de la red Internet o por los

terminales de Internet. Los equipos de conmutacin (direccionadores o

terminales de Internet. Los equipos de conmutacin (direccionadores o

routers) no lo necesitan.

routers) no lo necesitan.

4) Nivel de aplicacin: engloba todo lo que hay por encima del TCP; es el

4) Nivel de aplicacin: engloba todo lo que hay por encima del TCP; es el

nivel que corresponde a las aplicaciones que utilizan Internet: clientes y servi-

nivel que corresponde a las aplicaciones que utilizan Internet: clientes y servi-

dores de WWW, correo electrnico, FTP, etc. se encuentran dentro de este ni-

dores de WWW, correo electrnico, FTP, etc. se encuentran dentro de este ni-

vel, que slo es implementado por los equipos usuarios de la red Internet o los

vel, que slo es implementado por los equipos usuarios de la red Internet o los

terminales de Internet. Los equipos de conmutacin no lo utilizan.

terminales de Internet. Los equipos de conmutacin no lo utilizan.

Lectura complementaria
Para estudiar con ms detalle
los protocolos de Internet,
consultad los apartados 1.4,
1.10 y 29.3 de la obra
siguiente:
D.E. Comer (1995).
Principles, Protocols and
Architecture. Internetworking
with TCP/IP (vol. I).
Hertfordshire: Prentice Hall.

Ved los direccionadores, o nodos


de conmutacin, en el subapartado
3.3 de este mdulo didctico.

FUOC P03/75064/00977

10

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

10

Slo los equipos terminales implementan todos los niveles; los equipos inter-

Slo los equipos terminales implementan todos los niveles; los equipos inter-

medios nicamente implementan el nivel de red y el nivel IP:

medios nicamente implementan el nivel de red y el nivel IP:

Ya hemos visto los conceptos bsicos del nivel de red en el mdulo anterior;

Ya hemos visto los conceptos bsicos del nivel de red en el mdulo anterior;

sin embargo, ahora ampliaremos algunos de los mismos (sobre todo los que

sin embargo, ahora ampliaremos algunos de los mismos (sobre todo los que

estn relacionados con la asignacin de direcciones). Del nivel de aplicacin

estn relacionados con la asignacin de direcciones). Del nivel de aplicacin

hablaremos ampliamente en otros mdulos de esta asignatura. En este mdu-

hablaremos ampliamente en otros mdulos de esta asignatura. En este mdu-

lo, veremos la parte central del modelo Internet, estudiaremos en primer lugar

lo, veremos la parte central del modelo Internet, estudiaremos en primer lugar

el IP y despus el TCP.

el IP y despus el TCP.

1.1. Protocolos de Internet

1.1. Protocolos de Internet

En cada uno de los niveles de la red expuestos encontramos protocolos dife-

En cada uno de los niveles de la red expuestos encontramos protocolos dife-

rentes. La situacin relativa de cada protocolo en los diferentes niveles se

rentes. La situacin relativa de cada protocolo en los diferentes niveles se

muestra en la figura siguiente:

muestra en la figura siguiente:

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

11

TCP/IP: los protocolos de la red Internet

Hay que tener en cuenta que el concepto nivel no existe en Internet. Este concepto se utiliza en otros modelos de red, como la OSI. No obstante, como es
un concepto til, en este mdulo lo utilizaremos para plantear el estudio de

FUOC P03/75064/00977

11

Hay que tener en cuenta que el concepto nivel no existe en Internet. Este conConsultad el modelo OSI en el
apartado 3 del mdulo didctico
Conceptos bsicos de las redes
de comunicaciones de esta asignatura.

cepto se utiliza en otros modelos de red, como la OSI. No obstante, como es


un concepto til, en este mdulo lo utilizaremos para plantear el estudio de

los diferentes protocolos de la manera siguiente:

los diferentes protocolos de la manera siguiente:

a) En primer lugar, estudiaremos ciertos aspectos bsicos del nivel de red (en

a) En primer lugar, estudiaremos ciertos aspectos bsicos del nivel de red (en

el caso particular de las LAN Ethernet, as como en los accesos por lnea punto

el caso particular de las LAN Ethernet, as como en los accesos por lnea punto

a punto con el protocolo PPP o con ADSL).

a punto con el protocolo PPP o con ADSL).

b) Despus, nos centraremos en el IP y los protocolos que colaboran con el

b) Despus, nos centraremos en el IP y los protocolos que colaboran con el

mismo: ARP e ICMP.

mismo: ARP e ICMP.

c) Por ltimo, analizaremos los protocolos TCP y UDP.

c) Por ltimo, analizaremos los protocolos TCP y UDP.

1.2. Encapsulamiento

1.2. Encapsulamiento

Ser preciso saber, por ejemplo, qu implicaciones tiene el hecho de que un

Ser preciso saber, por ejemplo, qu implicaciones tiene el hecho de que un

protocolo como el TCP, como se ve en la figura del subapartado anterior, vaya

protocolo como el TCP, como se ve en la figura del subapartado anterior, vaya

sobre otro protocolo, el IP, y que este ltimo vaya, a su vez, sobre Ethernet.

sobre otro protocolo, el IP, y que este ltimo vaya, a su vez, sobre Ethernet.

Cada uno de estos protocolos funciona con unas estructuras fundamentales

Cada uno de estos protocolos funciona con unas estructuras fundamentales

que genricamente se conocen como PDU*. Sin embargo, en cada nivel se utilizan nombres diferentes para denominar lo que, de hecho, tiene funciones

* PDU es la sigla de
protocol data units.

que genricamente se conocen como PDU*. Sin embargo, en cada nivel se utilizan nombres diferentes para denominar lo que, de hecho, tiene funciones

equivalentes:

equivalentes:

Las PDU Ethernet o PPP se denominan tramas.

Las PDU Ethernet o PPP se denominan tramas.

Las PDU del nivel de interconexin (IP o ARP) se suelen denominar paquetes*.
En el nivel de transporte, se habla de segmentos en TCP, y de datagramas en

* Sin embargo, por lo general las


PDU ICMP se denominan mensajes,
seguramente porque viajan
en paquetes IP.

UDP.

Las PDU del nivel de interconexin (IP o ARP) se suelen denominar paquetes*.
En el nivel de transporte, se habla de segmentos en TCP, y de datagramas en

Consultad el modelo OSI en el


apartado 3 del mdulo didctico
Conceptos bsicos de las redes
de comunicaciones de esta asignatura.

* PDU es la sigla de
protocol data units.

* Sin embargo, por lo general las


PDU ICMP se denominan mensajes,
seguramente porque viajan
en paquetes IP.

UDP.

En niveles superiores que utilizan UDP, por norma general se utiliza la pala-

En niveles superiores que utilizan UDP, por norma general se utiliza la pala-

bra PDU (SNMP-PDU, por ejemplo). En el caso del TCP, el servicio que pro-

bra PDU (SNMP-PDU, por ejemplo). En el caso del TCP, el servicio que pro-

porciona a las aplicaciones es el flujo de bytes sin estructura (byte stream). Por

porciona a las aplicaciones es el flujo de bytes sin estructura (byte stream). Por

tanto, el concepto PDU deja de tener sentido en el nivel superior a TCP.

tanto, el concepto PDU deja de tener sentido en el nivel superior a TCP.

Todava no hemos respondido, sin embargo, a la pregunta inicial. El resultado de

Todava no hemos respondido, sin embargo, a la pregunta inicial. El resultado de

los diferentes encapsulamientos en cada nivel es que, cuando el nivel superior de-

los diferentes encapsulamientos en cada nivel es que, cuando el nivel superior de-

cide transmitir cierta informacin, se provoca una cascada de PDU que va descen-

cide transmitir cierta informacin, se provoca una cascada de PDU que va descen-

diendo hasta el nivel inferior, que finalmente es el que transmite fsicamente los

diendo hasta el nivel inferior, que finalmente es el que transmite fsicamente los

bits que resultan del mismo.

bits que resultan del mismo.

Longitud de la trama necesaria para transmitir un byte de informacin


Veamos, a modo de ejemplo, la emulacin de terminal que efecta el programa Telnet y el
protocolo que lleva el mismo nombre. Imaginemos que pulsamos una tecla sobre la ventana del programa telnet. Esta accin llega en forma de un byte nico al nivel TCP. Este
nivel encapsula dicho byte en un segmento TCP, que tendr una cabecera de 20 bytes y un

TCP/IP: los protocolos de la red Internet

Longitud de la trama necesaria para transmitir un byte de informacin


Telnet est disponible en todos
los sitemas operativos habituales.

Veamos, a modo de ejemplo, la emulacin de terminal que efecta el programa Telnet y el


protocolo que lleva el mismo nombre. Imaginemos que pulsamos una tecla sobre la ventana del programa telnet. Esta accin llega en forma de un byte nico al nivel TCP. Este
nivel encapsula dicho byte en un segmento TCP, que tendr una cabecera de 20 bytes y un

Telnet est disponible en todos


los sitemas operativos habituales.

FUOC P03/75064/00977

12

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

12

contenido que ser el byte correspondiente a la tecla pulsada. Estos 21 bytes se transportarn dentro de un paquete IP que, generalmente, formar un paquete con 20 bytes de
cabecera ms el contenido ya mencionado de 21 bytes. Este paquete de 41 bytes ir, a su
vez, dentro de una trama que lo transportar por su soporte fsico de transmisin. Si el
soporte de transmisin es una lnea telefnica con un mdem y utilizamos PPP, el resultado puede ser que le aadamos 8 bytes ms.

contenido que ser el byte correspondiente a la tecla pulsada. Estos 21 bytes se transportarn dentro de un paquete IP que, generalmente, formar un paquete con 20 bytes de
cabecera ms el contenido ya mencionado de 21 bytes. Este paquete de 41 bytes ir, a su
vez, dentro de una trama que lo transportar por su soporte fsico de transmisin. Si el
soporte de transmisin es una lnea telefnica con un mdem y utilizamos PPP, el resultado puede ser que le aadamos 8 bytes ms.

De todo ello resulta una trama de 49 bytes (8 + 20 + 20 + 1) de longitud para transmitir


uno solo. La figura siguiente muestra esta estructura en:

De todo ello resulta una trama de 49 bytes (8 + 20 + 20 + 1) de longitud para transmitir


uno solo. La figura siguiente muestra esta estructura en:

Un ejemplo esclarecedor del grfico es el de


las tpicas muecas rusas.

TCP/IP: los protocolos de la red Internet

Un ejemplo esclarecedor del grfico es el de


las tpicas muecas rusas.

FUOC P03/75064/00977

13

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

13

2. Redes de acceso a Internet

2. Redes de acceso a Internet

Las redes de acceso a Internet ms habituales son la red telefnica (por m-

Las redes de acceso a Internet ms habituales son la red telefnica (por m-

dem) que se utiliza, sobre todo, en el mbito domstico, el ADSL* que, aunque
utiliza la infraestructura de acceso de la red telefnica, no se puede decir que

* ADSL es la sigla de lnea de


abonado digital asimtrica
(asymetric digital subscriber line).

vaya sobre la lnea telefnica, y la Ethernet.

1) En accesos por medio de la red telefnica y, en general, en accesos por medio de redes conmutadas (incluyendo el acceso por la RDSI), se suele utilizar

tualidad se han dejado prcticamente de lado en favor del PPP, que tiene ms
flexibilidad (permite gestionar automticamente ciertos parmetros IP y mul-

utiliza la infraestructura de acceso de la red telefnica, no se puede decir que

* PPP es la sigla de point-to-point


protocol.

1) En accesos por medio de la red telefnica y, en general, en accesos por medio de redes conmutadas (incluyendo el acceso por la RDSI), se suele utilizar

* SLIP es la sigla de serial line


Internet protocol.
** CSLIP es la sigla de
compressed SLIP.

Si bien durante mucho tiempo se han utilizado el SLIP* y el CSLIP**, en la actualidad se han dejado prcticamente de lado en favor del PPP, que tiene ms
flexibilidad (permite gestionar automticamente ciertos parmetros IP y multiplexar, dentro de la misma conexin, diferentes protocolos de interco-

nexin, aparte del IP) y es ms fiable (dispone de CRC en cada trama).

nexin, aparte del IP) y es ms fiable (dispone de CRC en cada trama).

2) En LAN, el protocolo que se utiliza en ms del 90% de los casos es la Ethernet.

2) En LAN, el protocolo que se utiliza en ms del 90% de los casos es la Ethernet.

Nosotros nos centraremos slo en los detalles de las direcciones de dicho proto-

Nosotros nos centraremos slo en los detalles de las direcciones de dicho proto-

colo, puesto que es lo nico que afecta a la manera de funcionar del IP.

colo, puesto que es lo nico que afecta a la manera de funcionar del IP.

Casi todos los protocolos de LAN que componen el 10% restante (IEEE802.3

Casi todos los protocolos de LAN que componen el 10% restante (IEEE802.3

CSMA/CD, IEEE802.5 Token Ring, etc.) utilizan una estructura de direcciones

CSMA/CD, IEEE802.5 Token Ring, etc.) utilizan una estructura de direcciones

puesto que la asignacin de direcciones se hace globalmente para todas las

* IEEE es la sigla de Institute of


Electric and Electronic Engineers.

idntica a la de Ethernet. De hecho, podramos hablar de compatibilidad,


puesto que la asignacin de direcciones se hace globalmente para todas las

LAN mencionadas y la gestiona el IEEE*.

LAN mencionadas y la gestiona el IEEE*.

2.1. Acceso telefnico: el PPP

2.1. Acceso telefnico: el PPP

El PPP es fundamentalmente un protocolo derivado del HDLC* para conexiones balanceadas (HDLC-ABM**). El formato de la trama PPP se representa en la figura siguiente:

* PPP es la sigla de point-to-point


protocol.

el protocolo PPP*.

tiplexar, dentro de la misma conexin, diferentes protocolos de interco-

idntica a la de Ethernet. De hecho, podramos hablar de compatibilidad,

* ADSL es la sigla de lnea de


abonado digital asimtrica
(asymetric digital subscriber line).

vaya sobre la lnea telefnica, y la Ethernet.

el protocolo PPP*.

Si bien durante mucho tiempo se han utilizado el SLIP* y el CSLIP**, en la ac-

dem) que se utiliza, sobre todo, en el mbito domstico, el ADSL* que, aunque

TCP/IP: los protocolos de la red Internet

* HDLC es la sigla de high-level data


link protocol.
** HDLC-ABM es la sigla de HDLCasynchronous balanced mode.

El PPP es fundamentalmente un protocolo derivado del HDLC* para conexiones balanceadas (HDLC-ABM**). El formato de la trama PPP se representa en la figura siguiente:

* SLIP es la sigla de serial line


Internet protocol.
** CSLIP es la sigla de
compressed SLIP.

* IEEE es la sigla de Institute of


Electric and Electronic Engineers.

* HDLC es la sigla de high-level data


link protocol.
** HDLC-ABM es la sigla de HDLCasynchronous balanced mode.

FUOC P03/75064/00977

14

Los campos Indicador (flag), Direccin y Control estn fijados en los valores
de la figura anterior. El campo Direccin tiene el valor 11111111, que es el de
difusin o broadcast en la mayora de los protocolos (por ejemplo, en todos los
HDLC). Ello significa que este campo (como el de control) no se utiliza. Su utilizacin en el PPP slo se puede justificar por el posible uso de tarjetas HDLC
genricas para conexiones PPP. Como cualquier protocolo HDLC, debe aplicar
el mecanismo de transparencia de insercin de ceros (bit stuffing).

El PPP especifica una variante orientada a carcter (los protocolos de la familia


HDLC estn orientados a bit), que es la que ms se utiliza en enlaces por medio
de mdem (un contraejemplo seran las conexiones mediante la RDSI).

Lo importante es lo que transportan las tramas PPP. El mismo estndar define


la multiplexacin de diferentes protocolos, que se distinguirn por medio del
campo Tipo. Los que nos interesan son los siguientes:

LCP*: es el protocolo encargado de realizar el test del enlace, el control de


la conexin y la gestin del enlace.

TCP/IP: los protocolos de la red Internet

Como el campo
de control...
... est fijado (siempre vale 3),
el PPP no distingue los diferentes tipos de tramas. Todas
son de informacin, no hay
confirmaciones ni tramas de
establecimiento de enlace
(es un protocolo no orientado
a conexin).

Lectura complementaria
Si se utiliza el PPP sobre un
enlace orientado a carcter, el
mecanismo de transparencia
es diferente del que hemos
explicado. Podis consultarlo
en la obra siguiente:
W.R. Stevens (1994). TCP/IP
Illustrated (vol. 1: The
Protocols). Wilmington:
Addison-Wesley.

* LCP es la sigla de link control


protocol.

FUOC P03/75064/00977

14

Los campos Indicador (flag), Direccin y Control estn fijados en los valores
de la figura anterior. El campo Direccin tiene el valor 11111111, que es el de
difusin o broadcast en la mayora de los protocolos (por ejemplo, en todos los
HDLC). Ello significa que este campo (como el de control) no se utiliza. Su utilizacin en el PPP slo se puede justificar por el posible uso de tarjetas HDLC
genricas para conexiones PPP. Como cualquier protocolo HDLC, debe aplicar
el mecanismo de transparencia de insercin de ceros (bit stuffing).

El PPP especifica una variante orientada a carcter (los protocolos de la familia


HDLC estn orientados a bit), que es la que ms se utiliza en enlaces por medio
de mdem (un contraejemplo seran las conexiones mediante la RDSI).

Lo importante es lo que transportan las tramas PPP. El mismo estndar define


la multiplexacin de diferentes protocolos, que se distinguirn por medio del
campo Tipo. Los que nos interesan son los siguientes:

LCP*: es el protocolo encargado de realizar el test del enlace, el control de


la conexin y la gestin del enlace.

Protocolos de red: son tramas que encapsulan paquetes de nivel superior,

Protocolos de red: son tramas que encapsulan paquetes de nivel superior,

como puede ser IP. Pero tambin pueden transportar NETBEUI, AppleTalk,

como puede ser IP. Pero tambin pueden transportar NETBEUI, AppleTalk,

Decnet, etc.

Decnet, etc.

NCP*: es el protocolo que se utiliza para tareas de gestin de los protocolos


de red que transporta el enlace. En el caso del IP, permite que uno de los

* NCP es la sigla de network control


protocol.

NCP*: es el protocolo que se utiliza para tareas de gestin de los protocolos


de red que transporta el enlace. En el caso del IP, permite que uno de los

terminales asigne la direccin de Internet al otro y configure los diferentes

terminales asigne la direccin de Internet al otro y configure los diferentes

parmetros de la red (direccionador, mscara, etc.)

parmetros de la red (direccionador, mscara, etc.)

TCP/IP: los protocolos de la red Internet

Como el campo
de control...
... est fijado (siempre vale 3),
el PPP no distingue los diferentes tipos de tramas. Todas
son de informacin, no hay
confirmaciones ni tramas de
establecimiento de enlace
(es un protocolo no orientado
a conexin).

Lectura complementaria
Si se utiliza el PPP sobre un
enlace orientado a carcter, el
mecanismo de transparencia
es diferente del que hemos
explicado. Podis consultarlo
en la obra siguiente:
W.R. Stevens (1994). TCP/IP
Illustrated (vol. 1: The
Protocols). Wilmington:
Addison-Wesley.

* LCP es la sigla de link control


protocol.

* NCP es la sigla de network control


protocol.

15

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

2.1.1. Compresin de las cabeceras


Como ya hemos visto, la pirmide de PDU provoca ineficiencias en la transmisin, sobre todo en protocolos como Telnet, que con frecuencia envan blo-

15

FUOC P03/75064/00977

2.1.1. Compresin de las cabeceras

Consultad la pirmide PDU


en el subapartado 1.3 de este
mdulo didctico.

Como ya hemos visto, la pirmide de PDU provoca ineficiencias en la transmisin, sobre todo en protocolos como Telnet, que con frecuencia envan blo-

ques muy cortos de informacin. Asimismo, el PPP se ha utilizado en enlaces

ques muy cortos de informacin. Asimismo, el PPP se ha utilizado en enlaces

telefnicos que funcionan a velocidades mximas tericas de entre 9.600 bps

telefnicos que funcionan a velocidades mximas tericas de entre 9.600 bps

(mdems norma V.32) y 33.600 bps (mdems norma V.34). Ello hace que di-

(mdems norma V.32) y 33.600 bps (mdems norma V.34). Ello hace que di-

cha ineficiencia sea todava ms grave.

cha ineficiencia sea todava ms grave.

Velocidades de transmisin de datos con Telnet

Velocidades de transmisin de datos con Telnet

Si se utiliza Telnet, para enviar un carcter (de 1 byte) debemos enviar 8 + 20 + 20 + 1


= = 49 bytes. Con un mdem de 9.600 bps, si utilizramos mensajes de 8 bits de longitud
ms 1 bit de arranque y 1 bit de parada, podramos transmitir:

Si se utiliza Telnet, para enviar un carcter (de 1 byte) debemos enviar 8 + 20 + 20 + 1


= = 49 bytes. Con un mdem de 9.600 bps, si utilizramos mensajes de 8 bits de longitud
ms 1 bit de arranque y 1 bit de parada, podramos transmitir:

9.600 / (1 + 8 + 1) = 960 caracteres/segundo.

9.600 / (1 + 8 + 1) = 960 caracteres/segundo.

Con las limitaciones impuestas por las cabeceras, slo podremos transmitir:

9.600 / (1 + 8 + 1) (1 / 49) = 19,5 caracteres/segundo.

De hecho, nadie es capaz de mecanografiar tan rpido. Sin embargo, no debemos perder
de vista que el enlace puede ser compartido por otras conexiones (transferencia de ficheros, consulta de la web, etc.).

De hecho, nadie es capaz de mecanografiar tan rpido. Sin embargo, no debemos perder
de vista que el enlace puede ser compartido por otras conexiones (transferencia de ficheros, consulta de la web, etc.).

La compresin de cabeceras Van Jacobson mejora considerablemente este

La compresin de cabeceras Van Jacobson mejora considerablemente este

problema. Este tipo de compresin se basa en el hecho de que en un acceso a

problema. Este tipo de compresin se basa en el hecho de que en un acceso a

Internet con PPP, en general no habr demasiadas conexiones TCP simult-

Internet con PPP, en general no habr demasiadas conexiones TCP simult-

neas. La compresin Van Jacobson permite mantener una tabla de hasta dieci-

neas. La compresin Van Jacobson permite mantener una tabla de hasta dieci-

sis conexiones simultneas TCP/IP, a las que asignar diecisis identificadores

sis conexiones simultneas TCP/IP, a las que asignar diecisis identificadores

diferentes. Como la mayora de los campos de las dos cabeceras TCP/IP no va-

diferentes. Como la mayora de los campos de las dos cabeceras TCP/IP no va-

ran durante el transcurso de una misma conexin, basta con tener entre 3 y

ran durante el transcurso de una misma conexin, basta con tener entre 3 y

5 bytes de cabecera para cada paquete (combinando PPP y TCP/IP) para mante-

5 bytes de cabecera para cada paquete (combinando PPP y TCP/IP) para mante-

ner un funcionamiento correcto de la conexin. La ganancia en eficiencia de

ner un funcionamiento correcto de la conexin. La ganancia en eficiencia de

la transmisin es suficientemente importante.

la transmisin es suficientemente importante.

Para saber con exactitud qu ganancia se consigue, precisamos saber qu lon-

Para saber con exactitud qu ganancia se consigue, precisamos saber qu lon-

gitud pueden tener las tramas PPP.

gitud pueden tener las tramas PPP.

Por medio del LCP tambin pueden obtenerse otras mejoras como, por ejem-

Por medio del LCP tambin pueden obtenerse otras mejoras como, por ejem-

plo, la eliminacin de los campos de control y de direccin.

plo, la eliminacin de los campos de control y de direccin.

2.1.2. MTU

2.1.2. MTU

que llamaremos MTU*, est determinada por diferentes factores segn el caso.

Consultad la pirmide PDU


en el subapartado 1.3 de este
mdulo didctico.

Con las limitaciones impuestas por las cabeceras, slo podremos transmitir:

9.600 / (1 + 8 + 1) (1 / 49) = 19,5 caracteres/segundo.

Muchos protocolos poseen una longitud mxima de transmisin. Esta ltima,

TCP/IP: los protocolos de la red Internet

* MTU es la sigla de maximum


transfer unit.

Muchos protocolos poseen una longitud mxima de transmisin. Esta ltima,


que llamaremos MTU*, est determinada por diferentes factores segn el caso.

En el PPP (que es lo que ahora nos interesa), encontramos un protocolo deri-

En el PPP (que es lo que ahora nos interesa), encontramos un protocolo deri-

vado del HDLC. Este ltimo no impone ningn lmite en la MTU de las tra-

vado del HDLC. Este ltimo no impone ningn lmite en la MTU de las tra-

mas; en teora, podramos hacerlas tan largas como la probabilidad de error

mas; en teora, podramos hacerlas tan largas como la probabilidad de error

nos permita (la probabilidad de error en uno de los bits de la trama no debera

nos permita (la probabilidad de error en uno de los bits de la trama no debera

ser demasiado alta).

ser demasiado alta).

* MTU es la sigla de maximum


transfer unit.

FUOC P03/75064/00977

16

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

16

Sin embargo, existe un factor que limitar la MTU ms que los lmites impues-

Sin embargo, existe un factor que limitar la MTU ms que los lmites impues-

tos por los protocolos: el confort de la conexin. Se ha demostrado que, en

tos por los protocolos: el confort de la conexin. Se ha demostrado que, en

conexiones en tiempo real (como una conexin Telnet), el usuario debe reci-

conexiones en tiempo real (como una conexin Telnet), el usuario debe reci-

bir una reaccin a sus acciones en una dcima de segundo como mximo. Re-

bir una reaccin a sus acciones en una dcima de segundo como mximo. Re-

trasos superiores provocan cansancio y dan la sensacin de que la mquina

trasos superiores provocan cansancio y dan la sensacin de que la mquina

va lenta, que todos hemos experimentado alguna vez.

va lenta, que todos hemos experimentado alguna vez.

Si pensamos que dentro de la misma conexin podemos tener multiplexadas

Si pensamos que dentro de la misma conexin podemos tener multiplexadas

otras de transferencia (como FTP o web), nos encontraremos que los paquetes

otras de transferencia (como FTP o web), nos encontraremos que los paquetes

de las aplicaciones en tiempo real, que suelen ser cortos, deben esperarse de-

de las aplicaciones en tiempo real, que suelen ser cortos, deben esperarse de-

trs de los paquetes de longitud mxima que se utilizan en las aplicaciones que

trs de los paquetes de longitud mxima que se utilizan en las aplicaciones que

tienen una tasa de transmisin elevada (supondremos que los paquetes de la

tienen una tasa de transmisin elevada (supondremos que los paquetes de la

aplicacin en tiempo real tienen preferencia sobre otros que previamente es-

aplicacin en tiempo real tienen preferencia sobre otros que previamente es-

tuvieran en la cola de salida).

tuvieran en la cola de salida).

La nica manera de hacer que una aplicacin estndar de transferencia utilice

La nica manera de hacer que una aplicacin estndar de transferencia utilice

paquetes ms pequeos es reducir la MTU de la conexin. En el caso del PPP,

paquetes ms pequeos es reducir la MTU de la conexin. En el caso del PPP,

si tomamos como referencia un mdem de 33.600 bps, tenemos que un pa-

si tomamos como referencia un mdem de 33.600 bps, tenemos que un pa-

quete de una dcima de segundo de duracin tendra los bytes siguientes:

quete de una dcima de segundo de duracin tendra los bytes siguientes:

33.600 bps (0,1 s) (1 byte / 8 bits) = 420 bytes.

33.600 bps (0,1 s) (1 byte / 8 bits) = 420 bytes.

En conexiones PPP tendremos, pues, la MTU entre 250 y 500 bytes. Con mdems

En conexiones PPP tendremos, pues, la MTU entre 250 y 500 bytes. Con mdems

que dispongan de compresin, los valores que obtendremos pueden aumentar.

que dispongan de compresin, los valores que obtendremos pueden aumentar.

Mdems para lnea telefnica

Mdems para lnea telefnica

Las velocidades de transmisin de los mdems estndar son 9.600 bps (V.32), 14.400 bps
(V.32bis) y 33.600 bps (V.34).

Las velocidades de transmisin de los mdems estndar son 9.600 bps (V.32), 14.400 bps
(V.32bis) y 33.600 bps (V.34).

En general, los mdems disponen de dispositivos electrnicos para comprimir y descomprimir datos. Los estndares V.42bis y MNP9 realizan compresiones de hasta 1:4, con lo
que pueden lograr velocidades de transmisin efectiva de hasta 134.400 bps (V.34 + V.42bis)
en situaciones favorables.

En general, los mdems disponen de dispositivos electrnicos para comprimir y descomprimir datos. Los estndares V.42bis y MNP9 realizan compresiones de hasta 1:4, con lo
que pueden lograr velocidades de transmisin efectiva de hasta 134.400 bps (V.34 + V.42bis)
en situaciones favorables.

Hay mdems (los que siguen el estndar V.90) que pueden lograr velocidades de hasta
56 kbps. En realidad, no son mdems en el sentido estricto, puesto que necesitan que en
el otro extremo de la lnea haya un codec conectado a una lnea digital.

Hay mdems (los que siguen el estndar V.90) que pueden lograr velocidades de hasta
56 kbps. En realidad, no son mdems en el sentido estricto, puesto que necesitan que en
el otro extremo de la lnea haya un codec conectado a una lnea digital.

2.2. Acceso ADSL

2.2. Acceso ADSL

Si bien el acceso a Internet por mdem por medio de PPP ha sido la manera ha-

Si bien el acceso a Internet por mdem por medio de PPP ha sido la manera ha-

bitual de conexin por parte de los usuarios domsticos y las pequeas empresas

bitual de conexin por parte de los usuarios domsticos y las pequeas empresas

durante la primera dcada Internet, parece que ello cambiar y en la segunda

durante la primera dcada Internet, parece que ello cambiar y en la segunda

dcada Internet se adoptarn sistemas que faciliten la conexin permanente.

dcada Internet se adoptarn sistemas que faciliten la conexin permanente.

La conexin por mdem ocupa la lnea de telfono del abonado y, lo que todava es peor,
establece una llamada durante un tiempo indefinido.

La conexin por mdem ocupa la lnea de telfono del abonado y, lo que todava es peor,
establece una llamada durante un tiempo indefinido.

El ADSL representa una solucin a este problema, puesto que, por un lado

El ADSL representa una solucin a este problema, puesto que, por un lado

(aunque utiliza el cableado de la lnea telefnica, el bucle de abonado), la lnea

(aunque utiliza el cableado de la lnea telefnica, el bucle de abonado), la lnea

telefnica queda libre para llamadas mientras se est conectado a Internet y,

telefnica queda libre para llamadas mientras se est conectado a Internet y,

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

17

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

17

por otro, la conexin no consume recursos de la red telefnica, puesto que,

por otro, la conexin no consume recursos de la red telefnica, puesto que,

cuando la seal llega a la centralita, se extrae del bucle de abonado y pasa a la

cuando la seal llega a la centralita, se extrae del bucle de abonado y pasa a la

red IP de la operadora.

red IP de la operadora.

En general, el direccionador que hay en el domicilio del usuario ofrece una co-

En general, el direccionador que hay en el domicilio del usuario ofrece una co-

nexin Ethernet equivalente a un concentrador, lo que permite que el abona-

nexin Ethernet equivalente a un concentrador, lo que permite que el abona-

do conecte ms de un ordenador por medio de la lnea ADSL.

do conecte ms de un ordenador por medio de la lnea ADSL.

Para permitir que la lnea telefnica conviva con la conexin a Internet

Para permitir que la lnea telefnica conviva con la conexin a Internet

permanente, se realiza una divisin del espectro: la parte baja contina

permanente, se realiza una divisin del espectro: la parte baja contina

ocupada por el canal de voz (hasta 4 kHz) y, a partir de aqu, se sita el es-

ocupada por el canal de voz (hasta 4 kHz) y, a partir de aqu, se sita el es-

pectro de la codificacin ADSL (con la limitacin propia del par de hilos).

pectro de la codificacin ADSL (con la limitacin propia del par de hilos).

El sistema es bidireccional: reserva el espectro bajo para la salida a la red, y

El sistema es bidireccional: reserva el espectro bajo para la salida a la red, y

el resto, para la entrada:

el resto, para la entrada:

Algunas operadoras,...

TCP/IP: los protocolos de la red Internet

Algunas operadoras,...

... para aprovechar mejor lneas malas, utilizan una variante del estndar que permite la
transmisin bidireccional con
los dos canales en la misma
banda.

... para aprovechar mejor lneas malas, utilizan una variante del estndar que permite la
transmisin bidireccional con
los dos canales en la misma
banda.

Esta solucin, aunque necesita


DCE ms caros, permite aprovechar lneas con peores condiciones y/u obtener velocidades ms
altas.

Esta solucin, aunque necesita


DCE ms caros, permite aprovechar lneas con peores condiciones y/u obtener velocidades ms
altas.

Generalmente, no se puede llegar a los 1,1 MHz que indica la figura, puesto que

Generalmente, no se puede llegar a los 1,1 MHz que indica la figura, puesto que

la calidad del par de hilos es muy variable (clima, longitud, edad, etc.), por lo

la calidad del par de hilos es muy variable (clima, longitud, edad, etc.), por lo

que se utiliza una codificacin adaptativa: los dos sentidos del canal se dividen

que se utiliza una codificacin adaptativa: los dos sentidos del canal se dividen

en subbandas de 4 kHz independientes (DMT, discrete multitone) que se codifi-

en subbandas de 4 kHz independientes (DMT, discrete multitone) que se codifi-

can (en realidad, se modulan) con procedimientos casi idnticos a los utiliza-

can (en realidad, se modulan) con procedimientos casi idnticos a los utiliza-

dos por los mdems tradicionales. Con ello, se consiguen treinta y dos canales

dos por los mdems tradicionales. Con ello, se consiguen treinta y dos canales

de salida y hasta doscientos cintuenta y seis de entrada, con una capacidad de

de salida y hasta doscientos cintuenta y seis de entrada, con una capacidad de

60 kbps cada uno de los mismos modulados en QAM (quadrature amplitude mo-

60 kbps cada uno de los mismos modulados en QAM (quadrature amplitude mo-

dulation), como los mdems telefnicos que, acumulados, proporcionan un

dulation), como los mdems telefnicos que, acumulados, proporcionan un

mximo de 1,92 Mbps de entrada y 15,36 Mbps de salida.

mximo de 1,92 Mbps de entrada y 15,36 Mbps de salida.

FUOC P03/75064/00977

18

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

18

No obstante, las mejores conexiones no consiguen aprovechar correctamente

No obstante, las mejores conexiones no consiguen aprovechar correctamente

los canales superiores y se considera que el lmite mximo de salida es de 8 Mbps.

los canales superiores y se considera que el lmite mximo de salida es de 8 Mbps.

Asimismo, las operadoras no suelen ofrecer conexiones tan rpidas, lo que

Asimismo, las operadoras no suelen ofrecer conexiones tan rpidas, lo que

hace que no se pueda lograr el lmite terico.

hace que no se pueda lograr el lmite terico.

Los protocolos utilizados dentro del ADSL dependen de la operadora y no es-

Los protocolos utilizados dentro del ADSL dependen de la operadora y no es-

tn definidos por el estndar. Entre los posibles protocolos para el ADSL, tene-

tn definidos por el estndar. Entre los posibles protocolos para el ADSL, tene-

mos el ATM y el mismo PPP.

mos el ATM y el mismo PPP.

2.3. Acceso LAN: el protocolo Ethernet

2.3. Acceso LAN: el protocolo Ethernet

Seguramente, la simplicidad de este protocolo de red, y no sus prestaciones

Seguramente, la simplicidad de este protocolo de red, y no sus prestaciones

tericas, ha hecho que sea el ms utilizado en redes de rea local prcticamen-

tericas, ha hecho que sea el ms utilizado en redes de rea local prcticamen-

te desde que DEC, Intel y Xerox establecieron un estndar (de facto) para LAN

te desde que DEC, Intel y Xerox establecieron un estndar (de facto) para LAN

con control de acceso al medio CSMA/CD, basndose en una arquitectura si-

con control de acceso al medio CSMA/CD, basndose en una arquitectura si-

milar desarrollada los aos setenta por Xerox.

milar desarrollada los aos setenta por Xerox.

Hay un principio que se cumple en todas las redes de rea local: lo que

Hay un principio que se cumple en todas las redes de rea local: lo que

una estacin transmite es recibido por todas las dems. Una estacin sabe

una estacin transmite es recibido por todas las dems. Una estacin sabe

cuando una trama le va destinada porque lee todas las que le llegan y com-

cuando una trama le va destinada porque lee todas las que le llegan y com-

prueba la direccin de destino. Tiene que rechazar todas las tramas con

prueba la direccin de destino. Tiene que rechazar todas las tramas con

direcciones que no sean la suya. Sin embargo, tambin hay excepcio-

direcciones que no sean la suya. Sin embargo, tambin hay excepcio-

nes, y en algunos casos las estaciones tambin deben capturar tramas di-

nes, y en algunos casos las estaciones tambin deben capturar tramas di-

rigidas a direcciones especiales (como las multicast y las broadcast).

rigidas a direcciones especiales (como las multicast y las broadcast).

Configuracin de la tarjeta de red en modo promiscuo

Configuracin de la tarjeta de red en modo promiscuo

Uno de los casos en el que una estacin no rechaza las tramas con direcciones diferentes de la suya es cuando la estacin configura la tarjeta de red en modo promiscuo. En
este modo, la tarjeta inhabilita su capacidad de filtrado y lee todas las tramas que pasan
por la red. Equipos que, generalmente, funcionan en este modo son los puentes (bridges,
sistemas destinados a la interconexin de LAN), los analizadores de trfico (o analizadores de red) o los conmutadores (switches). No obstante, casi todas las tarjetas se pueden configurar en modo promiscuo, lo que con frecuencia es aprovechado por los
ladrones de informacin (hackers) para leer y copiar informacin interesante que viaje
por la LAN (principalmente contraseas).

Uno de los casos en el que una estacin no rechaza las tramas con direcciones diferentes de la suya es cuando la estacin configura la tarjeta de red en modo promiscuo. En
este modo, la tarjeta inhabilita su capacidad de filtrado y lee todas las tramas que pasan
por la red. Equipos que, generalmente, funcionan en este modo son los puentes (bridges,
sistemas destinados a la interconexin de LAN), los analizadores de trfico (o analizadores de red) o los conmutadores (switches). No obstante, casi todas las tarjetas se pueden configurar en modo promiscuo, lo que con frecuencia es aprovechado por los
ladrones de informacin (hackers) para leer y copiar informacin interesante que viaje
por la LAN (principalmente contraseas).

2.3.1. Formato de la trama Ethernet

2.3.1. Formato de la trama Ethernet

La manera de conocer las principales caractersticas de la trama Ethernet es ver

La manera de conocer las principales caractersticas de la trama Ethernet es ver

los diferentes campos que la forman, que son los siguientes:

los diferentes campos que la forman, que son los siguientes:

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

19

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

19

a) Prembulo: est formado por 64 bits, alternativamente 0 y 1. Los dos ltimos

a) Prembulo: est formado por 64 bits, alternativamente 0 y 1. Los dos ltimos

son 11. Ello genera una seal cuadrada que permite a los terminales sincronizar

son 11. Ello genera una seal cuadrada que permite a los terminales sincronizar

adecuadamente los relojes de sincronismo de bit. Los dos ltimos bits sealan

adecuadamente los relojes de sincronismo de bit. Los dos ltimos bits sealan

dnde empieza la trama (sincronismo de trama). Su forma es idntica en todas las

dnde empieza la trama (sincronismo de trama). Su forma es idntica en todas las

tramas. Nosotros obviaremos su presencia en el resto de la explicacin, puesto

tramas. Nosotros obviaremos su presencia en el resto de la explicacin, puesto

que slo son una seal para marcar el inicio de la trama.

que slo son una seal para marcar el inicio de la trama.

b) Direccin de origen: lleva la direccin fsica o direccin MAC del transmi-

b) Direccin de origen: lleva la direccin fsica o direccin MAC del transmi-

sor de la trama. Son 48 bits diferentes para cualquier terminal de la red Ethernet.

sor de la trama. Son 48 bits diferentes para cualquier terminal de la red Ethernet.

c) Direccin de destino: lleva la direccin MAC del destinatario especificada

c) Direccin de destino: lleva la direccin MAC del destinatario especificada

de la misma manera (en el mismo formato) que la direccin de origen. En este

de la misma manera (en el mismo formato) que la direccin de origen. En este

caso, sin embargo, tenemos tres tipos de direcciones posibles: unicast, multicast

caso, sin embargo, tenemos tres tipos de direcciones posibles: unicast, multicast

y broadcast.

y broadcast.

d) Tipo: indica el tipo de contenido del campo de datos que lleva la trama*.
Permite multiplexar diferentes protocolos dentro de una misma LAN. Xerox

* Las tramas que transportan


paquetes IP llevan un 0x0800.

d) Tipo: indica el tipo de contenido del campo de datos que lleva la trama*.
Permite multiplexar diferentes protocolos dentro de una misma LAN. Xerox

actualiza regularmente la lista de protocolos registrados (Xerox Public Ethernet

actualiza regularmente la lista de protocolos registrados (Xerox Public Ethernet

Packet Type). Ms adelante veremos las variedades de protocolos de Ethernet

Packet Type). Ms adelante veremos las variedades de protocolos de Ethernet

para conocer las variantes de Ethernet semicompatibles y saber cmo afecta su

para conocer las variantes de Ethernet semicompatibles y saber cmo afecta su

coexistencia a la manera como Ethernet ha tenido que definir el campo Tipo.

coexistencia a la manera como Ethernet ha tenido que definir el campo Tipo.

Actividad

Actividad

Consultad la lista de los protocolos registrados para haceros una idea de la cantidad de
protocolos de red (los superiores a Ethernet) que hay.

Consultad la lista de los protocolos registrados para haceros una idea de la cantidad de
protocolos de red (los superiores a Ethernet) que hay.

e) Datos: se refiere al formato del campo de datos. Las restricciones sobre el

e) Datos: se refiere al formato del campo de datos. Las restricciones sobre el

tipo de datos que puede transportar Ethernet son las siguientes:

tipo de datos que puede transportar Ethernet son las siguientes:

La longitud de los datos debe ser mltiple de 8 bits; es decir, Ethernet trans-

La longitud de los datos debe ser mltiple de 8 bits; es decir, Ethernet trans-

porta la informacin en bytes. Ello no es ningn impedimento, puesto que

porta la informacin en bytes. Ello no es ningn impedimento, puesto que

los bits los envan sistemas que, por norma general, trabajan con bytes o

los bits los envan sistemas que, por norma general, trabajan con bytes o

mltiplos de bytes.

mltiplos de bytes.

Del mismo modo que PPP, Ethernet tiene limitada la longitud mxima de

Del mismo modo que PPP, Ethernet tiene limitada la longitud mxima de

informacin transportable por la trama (MTU). En este caso, la MTU es de

informacin transportable por la trama (MTU). En este caso, la MTU es de

1.500 bytes. Esta limitacin tiene como objetivo evitar que una estacin

1.500 bytes. Esta limitacin tiene como objetivo evitar que una estacin

monopolice la LAN.

monopolice la LAN.

El campo de datos debe tener como mnimo 46 bytes de longitud*. Ello


se debe al hecho de que es preciso que la trama mnima Ethernet tenga

* Para Gigabit Ethernet, este


mnimo es de 512 bytes.

El campo de datos debe tener como mnimo 46 bytes de longitud*. Ello


se debe al hecho de que es preciso que la trama mnima Ethernet tenga

64 bytes (512 bits). Se considera que las tramas inferiores son resultado de

64 bytes (512 bits). Se considera que las tramas inferiores son resultado de

colisiones y son obviadas por los receptores.

colisiones y son obviadas por los receptores.

Este problema no se plantea en la variante de Ethernet IEEE802.3, puesto que

Este problema no se plantea en la variante de Ethernet IEEE802.3, puesto que

este protocolo dispone de un campo de longitud y otro de relleno (padding)

este protocolo dispone de un campo de longitud y otro de relleno (padding)

TCP/IP: los protocolos de la red Internet

* Las tramas que transportan


paquetes IP llevan un 0x0800.

* Para Gigabit Ethernet, este


mnimo es de 512 bytes.

FUOC P03/75064/00977

20

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

20

que permiten transmitir datos de hasta 1 byte de longitud, aunque la longitud

que permiten transmitir datos de hasta 1 byte de longitud, aunque la longitud

que fsicamente se transmite contina siendo de 64 bytes.

que fsicamente se transmite contina siendo de 64 bytes.

Actividad

Actividad

Imaginad qu sucedera si una estacin quisiera enviar un fichero de 1 GB por la LAN


dentro de una sola trama.

Imaginad qu sucedera si una estacin quisiera enviar un fichero de 1 GB por la LAN


dentro de una sola trama.

f) CRC: es un cdigo de redundancia cclica de 32 bits (CRC-32) para la de-

f) CRC: es un cdigo de redundancia cclica de 32 bits (CRC-32) para la de-

teccin de errores. Abarca toda la trama a excepcin del prembulo. Las tra-

teccin de errores. Abarca toda la trama a excepcin del prembulo. Las tra-

mas que no poseen un CRC correcto se ignoran (como las tramas de menos de

mas que no poseen un CRC correcto se ignoran (como las tramas de menos de

64 bytes y las que no son mltiples de 8 bits).

64 bytes y las que no son mltiples de 8 bits).

Tipos de medios fsicos en Ethernet

Tipos de medios fsicos en Ethernet

Ethernet se ha ido adaptando a las necesidades del tiempo ampliando los subestndares
de nivel fsico. A continuacin, mostramos una lista de los estndares ms utilizados:

Ethernet se ha ido adaptando a las necesidades del tiempo ampliando los subestndares
de nivel fsico. A continuacin, mostramos una lista de los estndares ms utilizados:

10Base2: alcance de 185 m, 925 m con repetidores, pero con coaxial delgado, flexible
y barato (por ello, durante muchos aos esta red se ha denominado Cheapernet). aunque hoy da se tiende gradualmente a dejarlo de lado en favor de 10BaseT que es mucho ms fiable, millones de terminales en todo el mundo estn conectados con
Ethernet-10Base2. Se utiliza sobre todo en topologas en bus.

10Base2: alcance de 185 m, 925 m con repetidores, pero con coaxial delgado, flexible
y barato (por ello, durante muchos aos esta red se ha denominado Cheapernet). aunque hoy da se tiende gradualmente a dejarlo de lado en favor de 10BaseT que es mucho ms fiable, millones de terminales en todo el mundo estn conectados con
Ethernet-10Base2. Se utiliza sobre todo en topologas en bus.

10BaseT: conexin en estrella de las estaciones a un nudo central (concentrador o hub)


por medio de par trenzado; la distancia mxima de la estacin al concentrador es de
100 m. La distancia mxima entre estaciones se consigue encadenando cuatro concentradores, y es de 500 m.

10BaseT: conexin en estrella de las estaciones a un nudo central (concentrador o hub)


por medio de par trenzado; la distancia mxima de la estacin al concentrador es de
100 m. La distancia mxima entre estaciones se consigue encadenando cuatro concentradores, y es de 500 m.

Representa una mejora importante respecto a los estndares anteriores, puesto que se
centralizan en un solo punto la gestin y la monitorizacin del estado de toda la LAN.
Asimismo, con las topologas en bus, el mal funcionamiento de una estacin poda comportar el bloqueo de toda la red. Con 10BaseT, una mala conexin de un terminal es detectada por el concentrador, que simplemente la desconecta e indica que el enlace a la
estacin est cortado o inactivo (con una luz roja, por ejemplo).

Representa una mejora importante respecto a los estndares anteriores, puesto que se
centralizan en un solo punto la gestin y la monitorizacin del estado de toda la LAN.
Asimismo, con las topologas en bus, el mal funcionamiento de una estacin poda comportar el bloqueo de toda la red. Con 10BaseT, una mala conexin de un terminal es detectada por el concentrador, que simplemente la desconecta e indica que el enlace a la
estacin est cortado o inactivo (con una luz roja, por ejemplo).

10BaseF: similar a 10BaseT; sin embargo, en lugar de par trenzado, utiliza fibra ptica
(generalmente, multimodo), con que se consigue un alcance mucho mayor (hasta 2 km).

10BaseF: similar a 10BaseT; sin embargo, en lugar de par trenzado, utiliza fibra ptica
(generalmente, multimodo), con que se consigue un alcance mucho mayor (hasta 2 km).

100BaseT y 100BaseF: similares a 10BaseT y 10BaseF, respectivamente; sin embargo,


funcionan a 100 Mbps. A causa del protocolo de control de acceso al medio CSMA/CD,
el alcance se reduce mucho (100 m entre estacin y concentrador, sin posibilidad de
encadenar concentradores).

100BaseT y 100BaseF: similares a 10BaseT y 10BaseF, respectivamente; sin embargo,


funcionan a 100 Mbps. A causa del protocolo de control de acceso al medio CSMA/CD,
el alcance se reduce mucho (100 m entre estacin y concentrador, sin posibilidad de
encadenar concentradores).

Gigabit Ethernet: Las variantes ms comunes son 1000BaseT, sobre cableado de cobre
categora 5 (equivalente al necesario para 100BaseT) y 1000BaseSX, sobre fibra. Tiene
el mismo alcance que 100BaseT, 100 m.

Gigabit Ethernet: Las variantes ms comunes son 1000BaseT, sobre cableado de cobre
categora 5 (equivalente al necesario para 100BaseT) y 1000BaseSX, sobre fibra. Tiene
el mismo alcance que 100BaseT, 100 m.

10 Gigabit Ethernet: actualizacin de Ethernet para el siglo XXI.

10 Gigabit Ethernet: actualizacin de Ethernet para el siglo XXI.

Variantes del protocolo Ethernet

Variantes del protocolo Ethernet

Desde mediados de los aos ochenta Ethernet ha convivido con una variante similar denominada IEEE802.3 o ISO8802.3. Son estndares establecidos por organizaciones reconocidas (el IEEE y la ISO) dedicadas a la normalizacin (estndar de jure). Durante un
tiempo se pens que el IEEE802.3 acabara sustituyendo a la Ethernet original (tambin
denominada Ethernet-DIX, en honor a DEC, Intel y Xerox), que no poda transmitir tramas arbitrariamente pequeas. Los protocolos que trabajan sobre Ethernet-DIX conocen
esta limitacin y llenan la trama hasta ocupar los 46 bytes de informacin.

Desde mediados de los aos ochenta Ethernet ha convivido con una variante similar denominada IEEE802.3 o ISO8802.3. Son estndares establecidos por organizaciones reconocidas (el IEEE y la ISO) dedicadas a la normalizacin (estndar de jure). Durante un
tiempo se pens que el IEEE802.3 acabara sustituyendo a la Ethernet original (tambin
denominada Ethernet-DIX, en honor a DEC, Intel y Xerox), que no poda transmitir tramas arbitrariamente pequeas. Los protocolos que trabajan sobre Ethernet-DIX conocen
esta limitacin y llenan la trama hasta ocupar los 46 bytes de informacin.

El IEEE802.3 introduce un campo de longitud (en la misma posicin en que Ethernet tiene el campo de tipo) que permite saber cuntos bytes tiles contiene el campo de datos.
Si la longitud no llega a los 46 bytes mnimos, se llena con bytes (indefinidos) hasta llegar
al mnimo. El receptor slo debe leer el campo de longitud para extraer la informacin
vlida del mismo. El concepto de tipo de Ethernet (es decir, la coexistencia de diferentes

El IEEE802.3 introduce un campo de longitud (en la misma posicin en que Ethernet tiene el campo de tipo) que permite saber cuntos bytes tiles contiene el campo de datos.
Si la longitud no llega a los 46 bytes mnimos, se llena con bytes (indefinidos) hasta llegar
al mnimo. El receptor slo debe leer el campo de longitud para extraer la informacin
vlida del mismo. El concepto de tipo de Ethernet (es decir, la coexistencia de diferentes

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

21

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

21

protocolos por encima de Ethernet/IEEE802.3) se delega a un protocolo asociado: el


IEEE802.2, protocolo de enlace que se puede utilizar en el IEEE802.3 y en otros protocolos de LAN y que posee unas funciones similares a las del HDLC.

protocolos por encima de Ethernet/IEEE802.3) se delega a un protocolo asociado: el


IEEE802.2, protocolo de enlace que se puede utilizar en el IEEE802.3 y en otros protocolos de LAN y que posee unas funciones similares a las del HDLC.

Como en el nivel fsico ambos estndares son totalmente compatibles, podramos preguntarnos si pueden coexistir tramas Ethernet-DIX e IEEE802.3 dentro de una misma
LAN. La respuesta es que s y que no al mismo tiempo.

Como en el nivel fsico ambos estndares son totalmente compatibles, podramos preguntarnos si pueden coexistir tramas Ethernet-DIX e IEEE802.3 dentro de una misma
LAN. La respuesta es que s y que no al mismo tiempo.

Fijaos en que todos los campos de la trama Ethernet y de la 802.3 son del mismo formato
y significan lo mismo, a excepcin del campo de tipo (Ethernet) y de longitud (802.3).
Podramos distinguirlos siempre que vigilramos que ningn tipo Ethernet fuera equivalente a una longitud vlida de 802.3. Los tipos con valores inferiores a 1.500 (0x5DC en
hexadecimal) pueden confundirse con longitudes vlidas.

Fijaos en que todos los campos de la trama Ethernet y de la 802.3 son del mismo formato
y significan lo mismo, a excepcin del campo de tipo (Ethernet) y de longitud (802.3).
Podramos distinguirlos siempre que vigilramos que ningn tipo Ethernet fuera equivalente a una longitud vlida de 802.3. Los tipos con valores inferiores a 1.500 (0x5DC en
hexadecimal) pueden confundirse con longitudes vlidas.

Ello, obviamente, no poda tenerse en cuenta en la Ethernet-DIX original, puesto que es


anterior al IEEE802.3. Por ello, apareci una adenda a la norma Ethernet-DIX, conocida
como Ethernet-DIX-II, que elimina los identificadores de protocolos por debajo de 0x0600
(1.536 en decimal). Hoy da con frecuencia dentro de una misma LAN encontramos tramas Ethernet-DIX-II y tramas IEEE802.3.

Ello, obviamente, no poda tenerse en cuenta en la Ethernet-DIX original, puesto que es


anterior al IEEE802.3. Por ello, apareci una adenda a la norma Ethernet-DIX, conocida
como Ethernet-DIX-II, que elimina los identificadores de protocolos por debajo de 0x0600
(1.536 en decimal). Hoy da con frecuencia dentro de una misma LAN encontramos tramas Ethernet-DIX-II y tramas IEEE802.3.

El IP puede ir sobre cualquiera de los dos estndares, aunque casi nadie elige la posibilidad de encapsularlo sobre el IEEE802.3. El par de protocolos IEEE802.3 + 802.2 se utiliza
en algunos de los sistemas operativos de red aparecidos en los aos ochenta como, por
ejemplo, el IPX de Novell y el NETBEUI de Microsoft.

El IP puede ir sobre cualquiera de los dos estndares, aunque casi nadie elige la posibilidad de encapsularlo sobre el IEEE802.3. El par de protocolos IEEE802.3 + 802.2 se utiliza
en algunos de los sistemas operativos de red aparecidos en los aos ochenta como, por
ejemplo, el IPX de Novell y el NETBEUI de Microsoft.

2.3.2. Direcciones LAN

2.3.2. Direcciones LAN

Las direcciones LAN estn divididas en diferentes campos, como puede obser-

Las direcciones LAN estn divididas en diferentes campos, como puede obser-

varse en la figura siguiente:

varse en la figura siguiente:

TCP/IP: los protocolos de la red Internet

22

FUOC P03/75064/00977

La mitad menos significativa de la direccin (los bits del 2 al 23), asignada por
el IEEE a cada fabricante de manera fija, es el OUI*. Este ltimo, cuando fabrica
las tarjetas, programa (en ROM) la direccin completa, que est formada por

TCP/IP: los protocolos de la red Internet

* OUI es la sigla de organizational


unique identifier.
** OUA es la sigla de organizational
unique address.

22

FUOC P03/75064/00977

La mitad menos significativa de la direccin (los bits del 2 al 23), asignada por
el IEEE a cada fabricante de manera fija, es el OUI*. Este ltimo, cuando fabrica
las tarjetas, programa (en ROM) la direccin completa, que est formada por

el OUI ms una parte variable que el mismo fabricante asigna individualmente

el OUI ms una parte variable que el mismo fabricante asigna individualmente

para cada tarjeta: la OUA**.

para cada tarjeta: la OUA**.

Existen dos bits del OUI que siempre son cero cuando se trata de la direccin

Existen dos bits del OUI que siempre son cero cuando se trata de la direccin

de origen: el bit multicast (M) y el bit local (L). Este ltimo no se utiliza casi

de origen: el bit multicast (M) y el bit local (L). Este ltimo no se utiliza casi

nunca y, por tanto, lo consideraremos siempre cero.

nunca y, por tanto, lo consideraremos siempre cero.

Tanto la direccin de destino como la de origen de la trama tienen el mismo


formato, con la nica diferencia de que la direccin de destino tambin puede ser de tipo multicast (bit M = 1). En este caso, el nmero que lleva no se
refiere a una estacin en particular, sino que se dirige a un grupo de estaciones. Cada una de las cuales conoce el grupo o grupos a los que est adscrita.
Por norma general, cada uno de los grupos se refiere a grupos de estaciones
que comparten una misma aplicacin o un mismo protocolo. En el IP, el nico grupo multicast Ethernet relevante es el broadcast.

Tramas Ethernet multicast


No es del todo cierto que el
nico grupo multicast Ethernet
relevante sea el broadcast. La
red Internet dispone
del protocolo IGMP (Internet
group multicast protocol),
que tambin trabaja sobre tramas Ethernet multicast.

Tanto la direccin de destino como la de origen de la trama tienen el mismo


formato, con la nica diferencia de que la direccin de destino tambin puede ser de tipo multicast (bit M = 1). En este caso, el nmero que lleva no se
refiere a una estacin en particular, sino que se dirige a un grupo de estaciones. Cada una de las cuales conoce el grupo o grupos a los que est adscrita.
Por norma general, cada uno de los grupos se refiere a grupos de estaciones
que comparten una misma aplicacin o un mismo protocolo. En el IP, el nico grupo multicast Ethernet relevante es el broadcast.

Representacin de una direccin Ethernet

Representacin de una direccin Ethernet

Sobre papel, las direcciones LAN se escriben en hexadecimal, separando los bytes con dos
puntos y escribiendo primero el byte menos significativo, por ejemplo:

Sobre papel, las direcciones LAN se escriben en hexadecimal, separando los bytes con dos
puntos y escribiendo primero el byte menos significativo, por ejemplo:

08:00:00:10:97:00

08:00:00:10:97:00

El primer byte (que es el menos significativo) es siempre divisible por cuatro en direcciones no multicast que tienen los bits M y L a 0.

El primer byte (que es el menos significativo) es siempre divisible por cuatro en direcciones no multicast que tienen los bits M y L a 0.

El grupo broadcast es especial, en el sentido de que, por defecto, todas las esta-

El grupo broadcast es especial, en el sentido de que, por defecto, todas las esta-

ciones le pertenecen; por tanto, es una manera de difundir informacin simul-

ciones le pertenecen; por tanto, es una manera de difundir informacin simul-

tneamente a todas las estaciones. El concepto de broadcast no es exclusivo de

tneamente a todas las estaciones. El concepto de broadcast no es exclusivo de

Ethernet, sino que es comn a muchos otros protocolos de LAN y WAN (tam-

Ethernet, sino que es comn a muchos otros protocolos de LAN y WAN (tam-

bin en el IP). Poner todos los bits de la direccin a 1 constituye la manera ms

bin en el IP). Poner todos los bits de la direccin a 1 constituye la manera ms

habitual de representar la direccin broadcast, y es la que utilizan las LAN

habitual de representar la direccin broadcast, y es la que utilizan las LAN

(FF:FF:FF:FF:FF:FF).

(FF:FF:FF:FF:FF:FF).

TCP/IP: los protocolos de la red Internet

* OUI es la sigla de organizational


unique identifier.
** OUA es la sigla de organizational
unique address.

Tramas Ethernet multicast


No es del todo cierto que el
nico grupo multicast Ethernet
relevante sea el broadcast. La
red Internet dispone
del protocolo IGMP (Internet
group multicast protocol),
que tambin trabaja sobre tramas Ethernet multicast.

23

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

3. El IP (Internet protocol)

IP y TCP son un par de protocolos bien compenetrados. El IP es un proto-

23

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

3. El IP (Internet protocol)

Vase el protocolo TCP


en el apartado 8 de este mdulo
didctico.

IP y TCP son un par de protocolos bien compenetrados. El IP es un proto-

colo de interconexin de red orientado a datagrama. Por tanto, no dispone

colo de interconexin de red orientado a datagrama. Por tanto, no dispone

del concepto de circuito virtual, de manera que no es capaz de recuperar

del concepto de circuito virtual, de manera que no es capaz de recuperar

tramas perdidas, ni de garantizar que las tramas se entregarn en el orden

tramas perdidas, ni de garantizar que las tramas se entregarn en el orden

correcto puesto que los paquetes pueden seguir caminos diferentes y, por

correcto puesto que los paquetes pueden seguir caminos diferentes y, por

tanto, sufrir retrasos diferentes, ni que el ritmo de recepcin sea el ade-

tanto, sufrir retrasos diferentes, ni que el ritmo de recepcin sea el ade-

cuado para que el receptor procese convenientemente los datos.

cuado para que el receptor procese convenientemente los datos.

El IP es del tipo best effort (podramos traducirlo como con la mejor intencin, o

El IP es del tipo best effort (podramos traducirlo como con la mejor intencin, o

quien hace lo que puede no est obligado a ms). Evidentemente, cuando utili-

quien hace lo que puede no est obligado a ms). Evidentemente, cuando utili-

zamos una red, no siempre podemos conformarnos con conseguir que la infor-

zamos una red, no siempre podemos conformarnos con conseguir que la infor-

macin llegue si la red puede. Aqu interviene el TCP, que es responsable de

macin llegue si la red puede. Aqu interviene el TCP, que es responsable de

conseguir que la informacin llegue en las condiciones de fiabilidad deseadas.

conseguir que la informacin llegue en las condiciones de fiabilidad deseadas.

Diferentes filosofas de los protocolos de Internet

Diferentes filosofas de los protocolos de Internet

Hemos visto protocolos con una filosofa similar a la del best effort: los protocolos de red
LAN, como Ethernet, etc. Hay detractores acrrimos, as como defensores incondicionales de esta filosofa, y seguramente ambos grupos tienen una parte de razn. La red X.25
es un ejemplo casi opuesto a esta filosofa que proporciona a sus usuarios unos niveles de
fiabilidad y flexibilidad razonablemente elevados, gracias a la utilizacin de la conmutacin de paquetes con circuitos virtuales.

Hemos visto protocolos con una filosofa similar a la del best effort: los protocolos de red
LAN, como Ethernet, etc. Hay detractores acrrimos, as como defensores incondicionales de esta filosofa, y seguramente ambos grupos tienen una parte de razn. La red X.25
es un ejemplo casi opuesto a esta filosofa que proporciona a sus usuarios unos niveles de
fiabilidad y flexibilidad razonablemente elevados, gracias a la utilizacin de la conmutacin de paquetes con circuitos virtuales.

De hecho, la historia da la razn a los defensores de la filosofa best effort, puesto que el X.25
actualmente se considera una tecnologa casi obsoleta, mientras que el IP est de moda.
Las razones deben buscarse, como siempre, en el coste. La filosofa IP permite implementar redes con un coste mnimo: pensad que el TCP slo precisa implementarse en
los terminales de la red, y no en los nodos de conmutacin. Por tanto, los nodos de
conmutacin IP son mucho ms simples que los de X.25.

De hecho, la historia da la razn a los defensores de la filosofa best effort, puesto que el X.25
actualmente se considera una tecnologa casi obsoleta, mientras que el IP est de moda.
Las razones deben buscarse, como siempre, en el coste. La filosofa IP permite implementar redes con un coste mnimo: pensad que el TCP slo precisa implementarse en
los terminales de la red, y no en los nodos de conmutacin. Por tanto, los nodos de
conmutacin IP son mucho ms simples que los de X.25.

3.1. Direcciones IP

Vase el protocolo TCP


en el apartado 8 de este mdulo
didctico.

3.1. Direcciones IP

Antes de entrar en el estudio del protocolo en s, destacaremos un punto importante, tanto del IP como de la red Internet: las direcciones.
Las direcciones IP son nicas para cada mquina. Para ser precisos, cada
direccin es nica para cada una de las interfaces de red IP de cada mquina. Si una mquina dispone de ms de una interfaz de red, necesitar
una direccin IP para cada una. Las direcciones IP tienen una longitud

Direcciones Ethernet
contra direcciones IP
Curiosamente, las direcciones IP
son ms cortas que las Ethernet.
Este error puede ser el taln de
Aquiles de Internet a principios
de este siglo a causa del lmite
que impone al nmero de estaciones que se pueden conectar
a la misma.

de 32 bits (4 bytes).

Antes de entrar en el estudio del protocolo en s, destacaremos un punto importante, tanto del IP como de la red Internet: las direcciones.
Las direcciones IP son nicas para cada mquina. Para ser precisos, cada
direccin es nica para cada una de las interfaces de red IP de cada mquina. Si una mquina dispone de ms de una interfaz de red, necesitar
una direccin IP para cada una. Las direcciones IP tienen una longitud

Direcciones Ethernet
contra direcciones IP
Curiosamente, las direcciones IP
son ms cortas que las Ethernet.
Este error puede ser el taln de
Aquiles de Internet a principios
de este siglo a causa del lmite
que impone al nmero de estaciones que se pueden conectar
a la misma.

de 32 bits (4 bytes).

Para representar una direccin, se suele escribir los 4 bytes en decimal y separados por puntos. Por ejemplo:
147.83.153.100

Para completar esta informacin,


podis consultar el anexo 4 de este
mdulo didctico.

Para representar una direccin, se suele escribir los 4 bytes en decimal y separados por puntos. Por ejemplo:
147.83.153.100

Para completar esta informacin,


podis consultar el anexo 4 de este
mdulo didctico.

FUOC P03/75064/00977

24

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

24

Para conseguir que no haya ninguna direccin igual, Internet dispone de una

Para conseguir que no haya ninguna direccin igual, Internet dispone de una

organizacin denominada Internet Network Information Center o InterNIC que se

organizacin denominada Internet Network Information Center o InterNIC que se

dedica a esta tarea. En la actualidad, esta entidad delega la responsabilidad de

dedica a esta tarea. En la actualidad, esta entidad delega la responsabilidad de

la asignacin de direcciones a entidades regionales. Las direcciones se asignan

la asignacin de direcciones a entidades regionales. Las direcciones se asignan

por grupos o redes, no individualmente.

por grupos o redes, no individualmente.

Los tipos de redes que tienen cabida en Internet se distinguen por la cantidad

Los tipos de redes que tienen cabida en Internet se distinguen por la cantidad

de estaciones que pueden soportar, y son los siguientes:

de estaciones que pueden soportar, y son los siguientes:

1) Las redes de clase A reservan el primer byte como identificador de red y


los tres restantes como identificadores de estacin. El primer bit del primer
byte vale 0, por tanto, en Internet slo puede haber 128 redes de clase A (con
24

estaciones cada una como mximo). Hace mucho tiempo que ya no queda

ninguna para asignar.


2) Las redes de clase B tienen 16 bits para cada campo; los dos primeros bytes

El primer byte
El primer byte lo es en el sentido de que es el primero que se
enva a la red. Como este ltimo es considerado el byte de
mayor peso, se dice que el protocolo TCP/IP tiene ordenacin
big endian.

1) Las redes de clase A reservan el primer byte como identificador de red y


los tres restantes como identificadores de estacin. El primer bit del primer
byte vale 0, por tanto, en Internet slo puede haber 128 redes de clase A (con
24

estaciones cada una como mximo). Hace mucho tiempo que ya no queda

ninguna para asignar.


2) Las redes de clase B tienen 16 bits para cada campo; los dos primeros bytes

del identificador de red valen 1 0, por tanto, hay 16.384 (214) redes de, como

del identificador de red valen 1 0, por tanto, hay 16.384 (214) redes de, como

mucho, 65.536 estaciones. De clase B no queda ninguna para asignar.

mucho, 65.536 estaciones. De clase B no queda ninguna para asignar.

3) Por ltimo, las redes de clase C reservan 24 bits para el identificador de red (con

3) Por ltimo, las redes de clase C reservan 24 bits para el identificador de red (con

los tres primeros bits 1 1 0) y los 8 restantes son para el identificador de estacin.

los tres primeros bits 1 1 0) y los 8 restantes son para el identificador de estacin.

Una vez que se conoce una direccin, es fcil saber si corresponde a una red

Una vez que se conoce una direccin, es fcil saber si corresponde a una red

de clase A, B o C, si sabemos que las codificaciones se hacen como en la figura

de clase A, B o C, si sabemos que las codificaciones se hacen como en la figura

siguiente:

siguiente:

El nmero real de redes

El primer byte lo es en el sentido de que es el primero que se


enva a la red. Como este ltimo es considerado el byte de
mayor peso, se dice que el protocolo TCP/IP tiene ordenacin
big endian.

En realidad, hay menos redes y


menos estaciones de las que
aqu hemos calculado, dado
que algunas direcciones estn
reservadas para usos especiales, como iremos viendo.

La direccin comentada con anterioridad (147.83.153.100) es de clase B. Asi-

La direccin comentada con anterioridad (147.83.153.100) es de clase B. Asi-

mismo, fijaos en que en la figura anterior no hay ninguna direccin que em-

mismo, fijaos en que en la figura anterior no hay ninguna direccin que em-

piece por tres unos. Estas direcciones (llamadas clase D y clase E) son de

piece por tres unos. Estas direcciones (llamadas clase D y clase E) son de

propsito especial y no se asignan a mquinas concretas.

propsito especial y no se asignan a mquinas concretas.

El espacio de direcciones se est agotando a marchas forzadas y, si bien existen tcnicas


relacionadas con la seguridad que ayudan a mitigar este problema (consultad el anexo 4)
el hecho de utilizar el concepto de "clase" ha agravado el problema: algunas corporaciones que han reservado una red clase A o B y slo han aprovechado una pequea parte de
la misma, han dejado sin un buen trozo del espacio de direcciones al resto de Internet.
Hoy da, en lugar de proporcionar redes clase C (de las otras ya no quedan) lo que se hace
es dar grupos mayores (tcnicamente, se podran dar ms pequeas, pero no se hace) limitados por mscaras intermedias entre la clase B y la C. Por ejemplo, si alguien quiere
una red de un millar de direcciones necesita cuatro redes de clase C. En lugar de proporcionarle estas cuatro redes independientes, se le da una mscara de 22 bits: quedan 10
para direcciones de terminal, lo que permite 1.024 terminales.

El primer byte

El nmero real de redes

En realidad, hay menos redes y


menos estaciones de las que
aqu hemos calculado, dado
que algunas direcciones estn
reservadas para usos especiales, como iremos viendo.

Classless Inter-Domain Routing (CIDR)

TCP/IP: los protocolos de la red Internet

Classless Inter-Domain Routing (CIDR)


Para completar esta informacin,
podi consultar el anexo 2 de este
mdulo didctico.

El espacio de direcciones se est agotando a marchas forzadas y, si bien existen tcnicas


relacionadas con la seguridad que ayudan a mitigar este problema (consultad el anexo 4)
el hecho de utilizar el concepto de "clase" ha agravado el problema: algunas corporaciones que han reservado una red clase A o B y slo han aprovechado una pequea parte de
la misma, han dejado sin un buen trozo del espacio de direcciones al resto de Internet.
Hoy da, en lugar de proporcionar redes clase C (de las otras ya no quedan) lo que se hace
es dar grupos mayores (tcnicamente, se podran dar ms pequeas, pero no se hace) limitados por mscaras intermedias entre la clase B y la C. Por ejemplo, si alguien quiere
una red de un millar de direcciones necesita cuatro redes de clase C. En lugar de proporcionarle estas cuatro redes independientes, se le da una mscara de 22 bits: quedan 10
para direcciones de terminal, lo que permite 1.024 terminales.

Para completar esta informacin,


podi consultar el anexo 2 de este
mdulo didctico.

25

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

25

FUOC P03/75064/00977

3.1.1. Mscaras de red

3.1.1. Mscaras de red

Cuando un administrador de sistemas recibe el encargo de gestionar un con-

Cuando un administrador de sistemas recibe el encargo de gestionar un con-

junto de direcciones, es posible que necesite configurar internamente diferen-

junto de direcciones, es posible que necesite configurar internamente diferen-

tes LAN con este conjunto. Por ello, el mecanismo para distinguir distintas redes

tes LAN con este conjunto. Por ello, el mecanismo para distinguir distintas redes

(LAN) entre s no se puede basar exclusivamente en los bits identificadores de cla-

(LAN) entre s no se puede basar exclusivamente en los bits identificadores de cla-

se que hemos comentado con anterioridad.

se que hemos comentado con anterioridad.

La mscara de red constituye el mecanismo que nos permitir conseguir

La mscara de red constituye el mecanismo que nos permitir conseguir

ms flexibilidad. Por medio de una mscara de 32 bits, definiremos los

ms flexibilidad. Por medio de una mscara de 32 bits, definiremos los

bits que identifican la red (bits en 1) y los que identifican la estacin

bits que identifican la red (bits en 1) y los que identifican la estacin

(bits en 0). Por norma general, los bits 1 y los 0 son consecutivos, pero

(bits en 0). Por norma general, los bits 1 y los 0 son consecutivos, pero

no necesariamente.

no necesariamente.

A continuacin, definimos de nuevo el concepto identificador de red,

A continuacin, definimos de nuevo el concepto identificador de red,

adaptndolo a la mscara: el identificador de red es la porcin de di-

adaptndolo a la mscara: el identificador de red es la porcin de di-

reccin IP que encaja con los bits 1 de la mscara.

reccin IP que encaja con los bits 1 de la mscara.

El concepto mscara es capital para la comprensin del funcionamiento de las

El concepto mscara es capital para la comprensin del funcionamiento de las

redes IP, permite a una estacin decidir si el destino al que debe transmitir un

redes IP, permite a una estacin decidir si el destino al que debe transmitir un

paquete se encuentra dentro de la misma red de rea local que este ltimo o

paquete se encuentra dentro de la misma red de rea local que este ltimo o

si, por el contrario, se encuentra en una LAN remota y, por tanto, debe delegar

si, por el contrario, se encuentra en una LAN remota y, por tanto, debe delegar

su transmisin a algn equipo de su misma LAN (el direccionador) para que

su transmisin a algn equipo de su misma LAN (el direccionador) para que

se encargue de hacer llegar el paquete a su destino.

se encargue de hacer llegar el paquete a su destino.

Todas las estaciones de una misma red de rea local deben utilizar el mismo iden-

Todas las estaciones de una misma red de rea local deben utilizar el mismo iden-

tificador de red y es preciso que todas las estaciones posean la misma mscara.

tificador de red y es preciso que todas las estaciones posean la misma mscara.

Direcciones de estaciones conectadas a la misma red

Direcciones de estaciones conectadas a la misma red

Si tenemos dos estaciones con las direcciones 147.83.153.100 y 147.83.153.200, podemos deducir que estn interconectadas directamente (por una LAN) si la mscara de su
red es 255.255.255.0, as como deduciramos que no estn conectadas con la misma LAN
si la mscara fuese, por ejemplo, 255.255.255.128.

Si tenemos dos estaciones con las direcciones 147.83.153.100 y 147.83.153.200, podemos deducir que estn interconectadas directamente (por una LAN) si la mscara de su
red es 255.255.255.0, as como deduciramos que no estn conectadas con la misma LAN
si la mscara fuese, por ejemplo, 255.255.255.128.

Notacin alternativa de la mscara

Notacin alternativa de la mscara

Una notacin alternativa es proporcionar el nmero de bits 1 de la mscara. As pues, la mscara 255.255.255.0 es una mscara de 24 bits y la 255.255.255.128 es una mscara de 25 bits.

Una notacin alternativa es proporcionar el nmero de bits 1 de la mscara. As pues, la mscara 255.255.255.0 es una mscara de 24 bits y la 255.255.255.128 es una mscara de 25 bits.

En ocasiones, podemos ver una direccin con el aadido de la mscara; por ejemplo:

En ocasiones, podemos ver una direccin con el aadido de la mscara; por ejemplo:

147.83.153.100/24.
Sin embargo, esta notacin slo es til para mscaras con 1 consecutivos.

147.83.153.100/24.
Sin embargo, esta notacin slo es til para mscaras con 1 consecutivos.

3.1.2. Direcciones de propsito especial

3.1.2. Direcciones de propsito especial

Existen diferentes direcciones especiales. Nosotros expondremos a continua-

Existen diferentes direcciones especiales. Nosotros expondremos a continua-

cin slo las ms importantes:

cin slo las ms importantes:

Direccin de red: las direcciones de red se expresan con la direccin que

Direccin de red: las direcciones de red se expresan con la direccin que

tendra cualquier estacin suya y con todos los bits del identificador de

tendra cualquier estacin suya y con todos los bits del identificador de

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

26

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

26

estacin a cero. Por ejemplo, la red en que se encuentra la estacin

estacin a cero. Por ejemplo, la red en que se encuentra la estacin

147.83.153.100/24 es la 147.83.153.0/24 y la red en que se encuentra la

147.83.153.100/24 es la 147.83.153.0/24 y la red en que se encuentra la

estacin 147.83.153.200/25 es la 147.83.153.128/25.

estacin 147.83.153.200/25 es la 147.83.153.128/25.

Direccin 127.0.0.1 (loopback): direccin no vlida para los paquetes IP.

Direccin 127.0.0.1 (loopback): direccin no vlida para los paquetes IP.

El software de red la utiliza para transmitir paquetes a la mquina local (de

El software de red la utiliza para transmitir paquetes a la mquina local (de

hecho, los paquetes no son enviados, sino que son entregados al destino

hecho, los paquetes no son enviados, sino que son entregados al destino

por el mismo sistema operativo). En realidad, los tres bytes del identifica-

por el mismo sistema operativo). En realidad, los tres bytes del identifica-

dor de estacin son irrelevantes*. Esta direccin slo tiene inters a la hora
de programar aplicaciones; los sistemas de red no vern nunca que ningn

* As, la direccin 127.0.3.87 es


equivalente a la 127.0.0.1.

paquete viaje por la red con esta direccin como origen o destino.

dor de estacin son irrelevantes*. Esta direccin slo tiene inters a la hora
de programar aplicaciones; los sistemas de red no vern nunca que ningn

Direccin 255.255.255.255 (broadcast): slo es vlida como direccin

de destino de un paquete. Se utiliza para transmitir paquetes a todas las

de destino de un paquete. Se utiliza para transmitir paquetes a todas las

estaciones localizadas dentro de la misma LAN que la mquina de origen.

estaciones localizadas dentro de la misma LAN que la mquina de origen.

Existe una versin equivalente, que es el broadcast dirigido. En este segun-

Existe una versin equivalente, que es el broadcast dirigido. En este segun-

do caso, el paquete es recibido por todas las mquinas de una LAN espe-

do caso, el paquete es recibido por todas las mquinas de una LAN espe-

cificada por el identificador de red. El identificador de estacin debe ser

cificada por el identificador de red. El identificador de estacin debe ser

todo 1.

todo 1.

Broadcast local y remoto

Broadcast local y remoto

3.2. El formato del paquete IP

* As, la direccin 127.0.3.87 es


equivalente a la 127.0.0.1.

paquete viaje por la red con esta direccin como origen o destino.

Direccin 255.255.255.255 (broadcast): slo es vlida como direccin

Para enviar un broadcast a la red 147.83.153.0 con la mscara 255.255.255.0 (o


147.83.153.0/24) podemos utilizar la direccin 255.255.255.255 si estamos dentro de
la red 147.83.153.0, o bien la 147.83.153.255 si estamos en una estacin remota. El
primer caso, lo llamaremos broadcast local, y el segundo, broadcast remoto.

TCP/IP: los protocolos de la red Internet

Consultad otras direcciones de


propsito especial en el anexo 2
de este mdulo.

Para enviar un broadcast a la red 147.83.153.0 con la mscara 255.255.255.0 (o


147.83.153.0/24) podemos utilizar la direccin 255.255.255.255 si estamos dentro de
la red 147.83.153.0, o bien la 147.83.153.255 si estamos en una estacin remota. El
primer caso, lo llamaremos broadcast local, y el segundo, broadcast remoto.

3.2. El formato del paquete IP

Consultad otras direcciones de


propsito especial en el anexo 2
de este mdulo.

27

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

27

A continuacin describiremos los campos que componen el paquete IP:

A continuacin describiremos los campos que componen el paquete IP:

Versin: siempre vale cuatro (0100), para los paquetes de la versin actual (IPv4).

Versin: siempre vale cuatro (0100), para los paquetes de la versin actual (IPv4).

Longitud de la cabecera: da la longitud de la cabecera en palabras de 32 bits

Longitud de la cabecera: da la longitud de la cabecera en palabras de 32 bits

(4 bytes). Por tanto, el nmero de bytes de la cabecera tiene que ser mlti-

(4 bytes). Por tanto, el nmero de bytes de la cabecera tiene que ser mlti-

plo de 4. Asimismo, limita la longitud de la cabecera a 60 bytes (15 4), puesto

plo de 4. Asimismo, limita la longitud de la cabecera a 60 bytes (15 4), puesto

que 15 es el mximo que se puede expresar con cuatro dgitos binarios. Si

que 15 es el mximo que se puede expresar con cuatro dgitos binarios. Si

no hay campo de opciones, la cabecera tiene 20 bytes; por tanto, el campo

no hay campo de opciones, la cabecera tiene 20 bytes; por tanto, el campo

en este caso valdra 5 (5 4 bytes = 20 bytes).

en este caso valdra 5 (5 4 bytes = 20 bytes).

Tipo de servicio: este campo se encuentra dividido en varios subcampos.


Permite pedir un trato especial para el paquete y raramente se implementa.

Tipo de servicio

Tipo de servicio: este campo se encuentra dividido en varios subcampos.


Permite pedir un trato especial para el paquete y raramente se implementa.

El campo Tipo de servicio permite definir dos variables:


El nivel de prioridad (del 1
al 8).
El tipo de calidad aplicable
al contenido (retraso bajo,
velocidad alta, fiabilidad alta, coste bajo, etc.).

Longitud total del paquete: da la longitud total del paquete (cabecera in-

cluida) en bytes. Como este campo es de 16 bits, un paquete IP no puede

cluida) en bytes. Como este campo es de 16 bits, un paquete IP no puede

tener ms de 65.535 bytes (2

1).

Tipo de servicio
El campo Tipo de servicio permite definir dos variables:
El nivel de prioridad (del 1
al 8).
El tipo de calidad aplicable
al contenido (retraso bajo,
velocidad alta, fiabilidad alta, coste bajo, etc.).

Longitud total del paquete: da la longitud total del paquete (cabecera in16

TCP/IP: los protocolos de la red Internet

tener ms de 65.535 bytes (216 1).

28

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

Identificacin del paquete: contiene un identificador que es diferente

gestionar la fragmentacin de paquetes.

para cada paquete que genera la estacin.

Consultad la fragmentacin
en el subapartado 3.2.1 de este
mdulo didctico.

Indicadores (flags) y posicin de este fragmento: estos campos permiten


gestionar la fragmentacin de paquetes.

Tiempo de vida o TTL (Time To Live): indica el nmero mximo de direc-

Tiempo de vida o TTL (Time To Live): indica el nmero mximo de direc-

cionadores que puede cruzar el paquete. Se utiliza para evitar que un pa-

cionadores que puede cruzar el paquete. Se utiliza para evitar que un pa-

quete pueda quedar dando vueltas indefinidamente dentro de la red en caso

quete pueda quedar dando vueltas indefinidamente dentro de la red en caso

de que haya algn problema al entregarlo. Cada direccionador disminuye el

de que haya algn problema al entregarlo. Cada direccionador disminuye el

campo en uno; cuando uno de ellos detecta un paquete con TTL = 1, lo eli-

campo en uno; cuando uno de ellos detecta un paquete con TTL = 1, lo eli-

mina y enva a quien lo ha emitido un mensaje de error por medio de un

mina y enva a quien lo ha emitido un mensaje de error por medio de un

mensaje ICMP.

mensaje ICMP.

Protocolo: identifica el tipo de protocolo que transporta el paquete. Los valores ms comunes de los diferentes tipos de protocolos son los siguientes:

TCP/IP: los protocolos de la red Internet

Identificacin del paquete: contiene un identificador que es diferente

para cada paquete que genera la estacin.

Indicadores (flags) y posicin de este fragmento: estos campos permiten

28

FUOC P03/75064/00977

Protocolo: identifica el tipo de protocolo que transporta el paquete. Los valores ms comunes de los diferentes tipos de protocolos son los siguientes:

TCP

TCP

UDP

17

UDP

17

ICMP

ICMP

Consultad la fragmentacin
en el subapartado 3.2.1 de este
mdulo didctico.

FUOC P03/75064/00977

29

TCP/IP: los protocolos de la red Internet

Checksum: realiza el control de errores en la cabecera. El campo de datos no


queda protegido por ningn checksum; es responsabilidad de los usuarios del

FUOC P03/75064/00977

29

TCP/IP: los protocolos de la red Internet

Checksum: realiza el control de errores en la cabecera. El campo de datos no


Consultad una implementacin en
lenguaje C del algoritmo checksum
en el anexo 3 de este mdulo didctico.

queda protegido por ningn checksum; es responsabilidad de los usuarios del

IP (TCP, UDP, etc.) el control de los posibles errores en su contenido.

IP (TCP, UDP, etc.) el control de los posibles errores en su contenido.

Algoritmo de clculo del checksum

Algoritmo de clculo del checksum

El checksum (o comprobacin por adicin) es bsicamente la suma aritmtica de los bytes


de la cabecera agrupados de dos en dos (si el resultado necesita ms de 16 bits, se suman
los bits sobrantes al mismo resultado).

El checksum (o comprobacin por adicin) es bsicamente la suma aritmtica de los bytes


de la cabecera agrupados de dos en dos (si el resultado necesita ms de 16 bits, se suman
los bits sobrantes al mismo resultado).

Este algoritmo, si bien es fcil y rpido de calcular, no se caracteriza por poseer unas grandes cualidades para la deteccin de errores. Ello, sumado al hecho de que el contenido
del IP no tiene checksum y a otros factores (tales como que muchos sistemas no calculan
el checksum de los paquetes UDP), demuestra que en el mundo de Internet no existe un
inters especial por la deteccin de errores. Con frecuencia, ste ha sido un argumento
en el que se han basado los detractores del protocolo IP para atacarlo.

Este algoritmo, si bien es fcil y rpido de calcular, no se caracteriza por poseer unas grandes cualidades para la deteccin de errores. Ello, sumado al hecho de que el contenido
del IP no tiene checksum y a otros factores (tales como que muchos sistemas no calculan
el checksum de los paquetes UDP), demuestra que en el mundo de Internet no existe un
inters especial por la deteccin de errores. Con frecuencia, ste ha sido un argumento
en el que se han basado los detractores del protocolo IP para atacarlo.

La deteccin de errores dentro del campo de informacin es responsabilidad de quien entra la informacin. Los usuarios ms habituales del IP son los protocolos TCP, UDP e
ICMP, y todos protegen la informacin con un campo adicional de checksum.

La deteccin de errores dentro del campo de informacin es responsabilidad de quien entra la informacin. Los usuarios ms habituales del IP son los protocolos TCP, UDP e
ICMP, y todos protegen la informacin con un campo adicional de checksum.

Actividad

Actividad

Buscad errores posibles que pasaran inadvertidos al algoritmo checksum.

Buscad errores posibles que pasaran inadvertidos al algoritmo checksum.

Direccin de origen IP: identifica la mquina que ha generado el paquete.

Direccin de origen IP: identifica la mquina que ha generado el paquete.

Direccin de destino IP: identifica la mquina a la que va destinado el paquete.

Direccin de destino IP: identifica la mquina a la que va destinado el paquete.

Consultad una implementacin en


lenguaje C del algoritmo checksum
en el anexo 3 de este mdulo didctico.

FUOC P03/75064/00977

30

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

30

Opciones: existen diferentes servicios asignados a este campo, pero por lo ge-

Opciones: existen diferentes servicios asignados a este campo, pero por lo ge-

neral no se utilizan. Comentarems algunos de los mismos cuando hablemos

neral no se utilizan. Comentarems algunos de los mismos cuando hablemos

del ICMP. Sea como sea, la longitud total est limitada a 40 bytes (15 4 20).

del ICMP. Sea como sea, la longitud total est limitada a 40 bytes (15 4 20).

3.2.1. Fragmentacin

3.2.1. Fragmentacin

Los paquetes IP van siempre insertados en tramas de nivel de enlace o MAC.

Los paquetes IP van siempre insertados en tramas de nivel de enlace o MAC.

Unos ejemplos que ya hemos visto son los protocolos PPP y Ethernet.

Unos ejemplos que ya hemos visto son los protocolos PPP y Ethernet.

Una estacin, cuando transmite un paquete IP, conoce la MTU de su interfaz

Una estacin, cuando transmite un paquete IP, conoce la MTU de su interfaz

de red, y est restringida a transmitir paquetes IP que se puedan transmitir por

de red, y est restringida a transmitir paquetes IP que se puedan transmitir por

su interfaz a la red. Si el paquete pasa por un direccionador conectado a una


red con una MTU inferior al tamao del paquete, es preciso fragmentarlo. Los
fragmentos resultantes de la operacin son paquetes como cualquier otro,
pero que poseen las caractersticas siguientes:

Ejemplo
En una Ethernet, el paquete
mximo que puede transmitir
una estacin es de 1.500 bytes.

su interfaz a la red. Si el paquete pasa por un direccionador conectado a una


red con una MTU inferior al tamao del paquete, es preciso fragmentarlo. Los
fragmentos resultantes de la operacin son paquetes como cualquier otro,
pero que poseen las caractersticas siguientes:

1) Todos los fragmentos que provienen de un paquete fragmentado tienen el

1) Todos los fragmentos que provienen de un paquete fragmentado tienen el

mismo identificador de paquete en las respectivas cabeceras IP.

mismo identificador de paquete en las respectivas cabeceras IP.

2) Todos los fragmentos indican con el campo Posicin de este fragmento a

2) Todos los fragmentos indican con el campo Posicin de este fragmento a

qu byte corresponde el primer byte de datos del fragmento dentro del paque-

qu byte corresponde el primer byte de datos del fragmento dentro del paque-

te original. El primer fragmento tiene un cero en este campo.

te original. El primer fragmento tiene un cero en este campo.

3) El bit + del campo Indicadores es 1 en todos los fragmentos a excepcin del

3) El bit + del campo Indicadores es 1 en todos los fragmentos a excepcin del

ltimo, que, por ello se suele denominar hay ms.

ltimo, que, por ello se suele denominar hay ms.

El resto de los campos de la cabecera se copia ntegramente del paquete origi-

El resto de los campos de la cabecera se copia ntegramente del paquete origi-

nal a los fragmentos que resultan de la fragmentacin, excepto el indicador de

nal a los fragmentos que resultan de la fragmentacin, excepto el indicador de

longitud del paquete y el checksum, que se deben calcular de nuevo.

longitud del paquete y el checksum, que se deben calcular de nuevo.

TCP/IP: los protocolos de la red Internet

Ejemplo
En una Ethernet, el paquete
mximo que puede transmitir
una estacin es de 1.500 bytes.

FUOC P03/75064/00977

31

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

31

En principio, podramos suponer que, cuando los fragmentos vuelven a una

En principio, podramos suponer que, cuando los fragmentos vuelven a una

red con una MTU suficiente, el direccionador que los recibe los reunifica. Sin

red con una MTU suficiente, el direccionador que los recibe los reunifica. Sin

embargo, no se hace as, en primer lugar porque la ley no escrita de Internet

embargo, no se hace as, en primer lugar porque la ley no escrita de Internet

segn la cual el direccionador debe llevar a cabo el mnimo trabajo necesario

segn la cual el direccionador debe llevar a cabo el mnimo trabajo necesario

no se cumplira. En segundo lugar (y ms importante), porque nadie garantiza

no se cumplira. En segundo lugar (y ms importante), porque nadie garantiza

que todos los fragmentos sigan el mismo camino. La nica estacin capaz de

que todos los fragmentos sigan el mismo camino. La nica estacin capaz de

recomponer los fragmentos es la de destino.

recomponer los fragmentos es la de destino.

La estacin de destino, cuando recibe un fragmento, reserva suficiente memoria

La estacin de destino, cuando recibe un fragmento, reserva suficiente memoria

para alojar el mayor paquete IP posible (65.535 bytes), puesto que no tiene ma-

para alojar el mayor paquete IP posible (65.535 bytes), puesto que no tiene ma-

nera de saber cul es el tamao del paquete original. A partir de aqu, pone en

nera de saber cul es el tamao del paquete original. A partir de aqu, pone en

marcha un temporizador* y empieza a recolectar los fragmentos segn su identificador. Cuando se han recibido todos los fragmentos, se entrega el paquete a
la aplicacin (protocolo) correspondiente. En caso de que el temporizador salte,

* Este temporizador permite


detectar la prdida de un
fragmento por el camino y, por
tanto, la prdida de la memoria
reservada.

marcha un temporizador* y empieza a recolectar los fragmentos segn su identificador. Cuando se han recibido todos los fragmentos, se entrega el paquete a
la aplicacin (protocolo) correspondiente. En caso de que el temporizador salte,

se descartan todos los fragmentos llegados hasta aquel momento. El nivel supe-

se descartan todos los fragmentos llegados hasta aquel momento. El nivel supe-

rior (TCP) es el responsable de pedir una retransmisin cuando convenga, pues-

rior (TCP) es el responsable de pedir una retransmisin cuando convenga, pues-

to que el IP no dispone de ningn mecanismo para pedirla.

to que el IP no dispone de ningn mecanismo para pedirla.

Paquetes no fragmentables

Paquetes no fragmentables

Dentro del campo Indicadores hay dos bits ms que no hemos comentado: uno no se utiliza y el otro, el DF (Dont Fragment), especifica que el paquete no debe fragmentarse. Si
fuera preciso fragmentarlo, el paquete sera descartado y se enviara un mensaje ICMP indicando el error a la estacin originadora del paquete. Usualmente, se activa el bit DF slo
cuando la fragmentacin no es deseable como, por ejemplo, cuando enviamos paquetes
a estaciones con la pila TCP/IP implementada en ROM, puesto que entonces se implementa slo una mnima parte de la funcionalidad de TCP/IP.

Dentro del campo Indicadores hay dos bits ms que no hemos comentado: uno no se utiliza y el otro, el DF (Dont Fragment), especifica que el paquete no debe fragmentarse. Si
fuera preciso fragmentarlo, el paquete sera descartado y se enviara un mensaje ICMP indicando el error a la estacin originadora del paquete. Usualmente, se activa el bit DF slo
cuando la fragmentacin no es deseable como, por ejemplo, cuando enviamos paquetes
a estaciones con la pila TCP/IP implementada en ROM, puesto que entonces se implementa slo una mnima parte de la funcionalidad de TCP/IP.

3.3. Direccionamiento y direccionadores

3.3. Direccionamiento y direccionadores

Las atribuciones principales de los direccionadores son interconectar dos o ms

Las atribuciones principales de los direccionadores son interconectar dos o ms

subredes IP y encargarse de direccionar el trfico destinado a estaciones remotas.

subredes IP y encargarse de direccionar el trfico destinado a estaciones remotas.

Cada direccionador de la red Internet debe ser capaz de decidir (en una fraccin de

Cada direccionador de la red Internet debe ser capaz de decidir (en una fraccin de

segundo) a dnde debe dirigir un paquete basndose exclusivamente en la direc-

segundo) a dnde debe dirigir un paquete basndose exclusivamente en la direc-

cin de destino, y en el conocimiento que tiene de la red y de su posicin (la del

cin de destino, y en el conocimiento que tiene de la red y de su posicin (la del

direccionador) dentro de Internet. De hecho, cada direccionador no decide la ruta

direccionador) dentro de Internet. De hecho, cada direccionador no decide la ruta

entera del paquete, sino slo el trozo de ruta en que participa: el salto (hop) siguien-

entera del paquete, sino slo el trozo de ruta en que participa: el salto (hop) siguien-

te. Entre el origen y el destino tenemos un nmero variable de saltos, y en cada uno

te. Entre el origen y el destino tenemos un nmero variable de saltos, y en cada uno

de ellos participan un par de direccionadores (el emisor y el receptor del paquete) a

de ellos participan un par de direccionadores (el emisor y el receptor del paquete) a

excepcin del primero y el ltimo, en que participan las estaciones emisora y trans-

excepcin del primero y el ltimo, en que participan las estaciones emisora y trans-

misora, respectivamente. Las conexiones entre direccionadores, o bien entre direc-

misora, respectivamente. Las conexiones entre direccionadores, o bien entre direc-

cionador y estacin terminal, las componen LAN o enlaces punto a punto.

cionador y estacin terminal, las componen LAN o enlaces punto a punto.

Transporte de un paquete IP a travs de tres subredes

Transporte de un paquete IP a travs de tres subredes

TCP/IP: los protocolos de la red Internet

* Este temporizador permite


detectar la prdida de un
fragmento por el camino y, por
tanto, la prdida de la memoria
reservada.

32

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

32

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

En la figura anterior, podemos ver un paquete IP que cruza tres redes de rea

En la figura anterior, podemos ver un paquete IP que cruza tres redes de rea

local. En cada una el paquete va encapsulado dentro de una trama de un tipo

local. En cada una el paquete va encapsulado dentro de una trama de un tipo

adecuado a la subred que cruza (en el dibujo podran ser tres LAN Ethernet).

adecuado a la subred que cruza (en el dibujo podran ser tres LAN Ethernet).

Las direcciones de origen y de destino del nivel LAN en cada tramo son dife-

Las direcciones de origen y de destino del nivel LAN en cada tramo son dife-

rentes. En cambio, la direccin de origen y la de destino de cada paquete IP no

rentes. En cambio, la direccin de origen y la de destino de cada paquete IP no

varan. La situacin plantea dos problemas y, para resolverlos, es preciso efec-

varan. La situacin plantea dos problemas y, para resolverlos, es preciso efec-

tuar los pasos siguientes:

tuar los pasos siguientes:

Averiguar cul es la correspondencia entre direcciones IP y MAC (slo en


los casos en que el enlace entre los direccionadores sea una LAN). Ello nos

Consultad el protocolo ARP


en el apartado 4 de este mdulo
didctico.

Averiguar cul es la correspondencia entre direcciones IP y MAC (slo en


los casos en que el enlace entre los direccionadores sea una LAN). Ello nos

permitir enviar los paquetes IP a un direccionador a pesar de que el paque-

permitir enviar los paquetes IP a un direccionador a pesar de que el paque-

te IP no tenga su direccin. El mapeado IP-MAC se efecta de manera au-

te IP no tenga su direccin. El mapeado IP-MAC se efecta de manera au-

tomtica por medio del protocolo ARP.

tomtica por medio del protocolo ARP.

Decidir en cada momento cul es el direccionador siguiente (el salto siguiente).

Decidir en cada momento cul es el direccionador siguiente (el salto siguiente).

3.3.1. La tabla de direccionamiento

3.3.1. La tabla de direccionamiento

El direccionamiento se lleva a cabo a partir de tablas de direccionamiento

El direccionamiento se lleva a cabo a partir de tablas de direccionamiento

que disponen de informacin limitada, pero suficiente para permitir la inter-

que disponen de informacin limitada, pero suficiente para permitir la inter-

conexin de todas las subredes que componen Internet. Cada equipo conec-

conexin de todas las subredes que componen Internet. Cada equipo conec-

tado a una red IP necesita una tabla de direccionamiento.

tado a una red IP necesita una tabla de direccionamiento.

Tablas de direccionamiento

Tablas de direccionamiento

Estas tablas se introducen dentro del direccionador por medio de un terminal que se conecta al mismo directamente (consola). Asimismo, existen protocolos que permiten que
las tablas se actualicen automticamente cuando se detectan cambios de topologa. Los
ms utilizados son el RIP (routing information protocol) y el OSPF (open shortest path first).

Estas tablas se introducen dentro del direccionador por medio de un terminal que se conecta al mismo directamente (consola). Asimismo, existen protocolos que permiten que
las tablas se actualicen automticamente cuando se detectan cambios de topologa. Los
ms utilizados son el RIP (routing information protocol) y el OSPF (open shortest path first).

El direccionador decide la ruta de los paquetes consultando su tabla de direccio-

El direccionador decide la ruta de los paquetes consultando su tabla de direccio-

namiento. Las estaciones terminales tambin necesitan una tabla de direcciona-

namiento. Las estaciones terminales tambin necesitan una tabla de direcciona-

miento, aunque slo sea para poder descubrir si se estn comunicando con una

miento, aunque slo sea para poder descubrir si se estn comunicando con una

estacin local de la LAN (y, por consiguiente, se pueden comunicar directamen-

estacin local de la LAN (y, por consiguiente, se pueden comunicar directamen-

te con la misma) o si el paquete IP debe ir a una estacin remota (conectada a

te con la misma) o si el paquete IP debe ir a una estacin remota (conectada a

otra LAN) y, por tanto, deben dejarlo en manos del direccionador.

otra LAN) y, por tanto, deben dejarlo en manos del direccionador.

Tabla de direccionamiento de una estacin con una nica interfaz

Tabla de direccionamiento de una estacin con una nica interfaz

Empezamos estudiando la tabla de direccionamiento de una estacin conec-

Empezamos estudiando la tabla de direccionamiento de una estacin conec-

tada a una LAN (direccin 147.83.153.103/24) con una nica tarjeta Ethernet.

tada a una LAN (direccin 147.83.153.103/24) con una nica tarjeta Ethernet.

Por norma general, una tabla de direccionamiento dispone tambin de infor-

Por norma general, una tabla de direccionamiento dispone tambin de infor-

macin sobre las cualidades de cada una de las rutas descritas, que no apa-

macin sobre las cualidades de cada una de las rutas descritas, que no apa-

recen en el ejemplo:

recen en el ejemplo:

Tabla de direccionamiento de la estacin


Direccin

Mscara

Direccionador

Tabla de direccionamiento de la estacin


Interfaz

Direccin

Mscara

Direccionador

Interfaz

147.83.153.103

255.255.255.255

127.0.0.1

Loopback

147.83.153.103

255.255.255.255

127.0.0.1

Loopback

127.0.0.0

255.0.0.0

127.0.0.1

Loopback

127.0.0.0

255.0.0.0

127.0.0.1

Loopback

Consultad el protocolo ARP


en el apartado 4 de este mdulo
didctico.

33

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

Tabla de direccionamiento de la estacin


Direccin

Mscara

Direccionador

33

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

Tabla de direccionamiento de la estacin


Interfaz

Direccin

Mscara

Direccionador

Interfaz

147.83.153.0

255.255.255.0

147.83.153.103

ether0

147.83.153.0

255.255.255.0

147.83.153.103

ether0

255.255.255.255

255.255.255.255

147.83.153.103

ether0

255.255.255.255

255.255.255.255

147.83.153.103

ether0

0.0.0.0

0.0.0.0

147.83.153.5

ether0

0.0.0.0

0.0.0.0

147.83.153.5

ether0

sta es una tabla tpica que podemos encontrar en una estacin conectada a

sta es una tabla tpica que podemos encontrar en una estacin conectada a

Internet. Las filas de la tabla o reglas se consultan no en el orden en que el co-

Internet. Las filas de la tabla o reglas se consultan no en el orden en que el co-

mando route nos las presenta, sino en orden de mscara decreciente (en pri-

mando route nos las presenta, sino en orden de mscara decreciente (en pri-

mer lugar, las entradas con 32 bits, etc.). De las entradas que forman la tabla

mer lugar, las entradas con 32 bits, etc.). De las entradas que forman la tabla

es preciso sealar lo siguiente:

es preciso sealar lo siguiente:

La primera entrada y la segunda permiten transmitir paquetes IP a las direcciones 147.83.153.103 y a todas las direcciones que empiecen por 127
(fijaos en la mscara de las dos entradas). En ambos casos los paquetes se
envan a la interfaz virtual loopback (la interfaz con que se conoce el ordenador local desde el mismo ordenador local). Ninguno de los paquetes que
se direccione con alguna de estas dos reglas saldr a la red: ser cortocircuitado directamente por el sistema operativo y se entregar al proceso de destino sin que nunca llegue a ninguna tarjeta de comunicaciones.
La tercera entrada ser adoptada por todos los paquetes destinados a la red
local. El campo Direccionador es el mismo que la direccin local, lo que

Interfaz
Una interfaz es una tarjeta de conexin fsica a la red. Ejemplos
de interfaz seran una tarjeta
Ethernet (por ejemplo, la
Ether0) o un puerto serie. En el
ejemplo vemos una interfaz
loopback, que es un caso especial, como veremos en el texto.
Para saber qu interfaces
hay disponibles en un sistema,
en UNIX o en Windows NT slo
es necesario invocar el comando
$ ifconfig,
y en Windows 95
C:> winipcfg.

significa que no se delegar su transmisin a ningn direccionador.

La primera entrada y la segunda permiten transmitir paquetes IP a las direcciones 147.83.153.103 y a todas las direcciones que empiecen por 127
(fijaos en la mscara de las dos entradas). En ambos casos los paquetes se
envan a la interfaz virtual loopback (la interfaz con que se conoce el ordenador local desde el mismo ordenador local). Ninguno de los paquetes que
se direccione con alguna de estas dos reglas saldr a la red: ser cortocircuitado directamente por el sistema operativo y se entregar al proceso de destino sin que nunca llegue a ninguna tarjeta de comunicaciones.
La tercera entrada ser adoptada por todos los paquetes destinados a la red
local. El campo Direccionador es el mismo que la direccin local, lo que

La cuarta entrada tiene una importancia relativa. Nos indica que los

broadcasts IP se restringirn a la red local.

broadcasts IP se restringirn a la red local.

La quinta entrada (0.0.0.0/0) permite a la estacin comunicarse con esta-

La quinta entrada (0.0.0.0/0) permite a la estacin comunicarse con esta-

ciones remotas. Notad que la mscara no tiene ningn bit en 1. sta es la

ciones remotas. Notad que la mscara no tiene ningn bit en 1. sta es la

ruta por defecto. El direccionador establecido para acceder a estaciones re-

ruta por defecto. El direccionador establecido para acceder a estaciones re-

motas queda identificado en la tabla con la direccin 147.83.153.5.

motas queda identificado en la tabla con la direccin 147.83.153.5.

Toda esta informacin se calcula a partir de tres datos que se introducen en la

Toda esta informacin se calcula a partir de tres datos que se introducen en la

configuracin de red:

configuracin de red:

2) La mscara de la LAN local (en el ejemplo: 255.255.255.0).


3) La direccin del direccionador (en el ejemplo: 147.83.153.5).
En casos ms complejos (ms de una interfaz de acceso a Internet, ms de un
direccionador en la red local, etc.), la informacin deber modificarse con el
comando route. Asimismo, existen otros mecanismos que no requieren la intervencin humana y que permiten descubrir direccionadores que no se han
configurado previamente por medio del protocolo ICMP.

Una interfaz es una tarjeta de conexin fsica a la red. Ejemplos


de interfaz seran una tarjeta
Ethernet (por ejemplo, la
Ether0) o un puerto serie. En el
ejemplo vemos una interfaz
loopback, que es un caso especial, como veremos en el texto.
Para saber qu interfaces
hay disponibles en un sistema,
en UNIX o en Windows NT slo
es necesario invocar el comando
$ ifconfig,
y en Windows 95
C:> winipcfg.

significa que no se delegar su transmisin a ningn direccionador.

La cuarta entrada tiene una importancia relativa. Nos indica que los

1) La direccin local (en el ejemplo: 147.83.153.103).

Interfaz

El comando route
En una estacin podemos consultar y modificar la tabla de direccionamiento utilizando el
comando route. Para visualizarla en UNIX, podemos hacer
$ route,
y en MSWindows
C:> route print
Para aadir o suprimir entradas
podemos utilizar el comando
route con los parmetros add
o del.

1) La direccin local (en el ejemplo: 147.83.153.103).


2) La mscara de la LAN local (en el ejemplo: 255.255.255.0).
3) La direccin del direccionador (en el ejemplo: 147.83.153.5).
En casos ms complejos (ms de una interfaz de acceso a Internet, ms de un
direccionador en la red local, etc.), la informacin deber modificarse con el
comando route. Asimismo, existen otros mecanismos que no requieren la intervencin humana y que permiten descubrir direccionadores que no se han
configurado previamente por medio del protocolo ICMP.

El comando route
En una estacin podemos consultar y modificar la tabla de direccionamiento utilizando el
comando route. Para visualizarla en UNIX, podemos hacer
$ route,
y en MSWindows
C:> route print
Para aadir o suprimir entradas
podemos utilizar el comando
route con los parmetros add
o del.

34

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

34

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

Actividad

Actividad

Observad la tabla de direccionamiento de vuestro ordenador por medio del comando route. Consultad la ayuda disponible en el sistema operativo (en UNIX haced man
route, y en MSWindows, route/?).

Observad la tabla de direccionamiento de vuestro ordenador por medio del comando route. Consultad la ayuda disponible en el sistema operativo (en UNIX haced man
route, y en MSWindows, route/?).

En un direccionador, las tablas de direccionamiento tienen ms entradas que

En un direccionador, las tablas de direccionamiento tienen ms entradas que

las de una estacin; sin embargo, el funcionamiento es el mismo que hemos

las de una estacin; sin embargo, el funcionamiento es el mismo que hemos

visto en el caso anterior. Observad una que conecta la red 147.83.153.0/24 con

visto en el caso anterior. Observad una que conecta la red 147.83.153.0/24 con

el exterior por medio de la red 147.83.30.0/24:

el exterior por medio de la red 147.83.30.0/24:

Tabla de direccionamiento de la estacin


Direccin

Mscara

Direccionador

Tabla de direccionamiento de la estacin


Interfaz

Direccin

Mscara

Direccionador

Interfaz

147.83.153.5

255.255.255.255

127.0.0.1

Loopback

147.83.153.5

255.255.255.255

127.0.0.1

Loopback

147.83.30.2

255.255.255.255

127.0.0.1

Loopback

147.83.30.2

255.255.255.255

127.0.0.1

Loopback

127.0.0.0

255.0.0.0

127.0.0.1

Loopback

127.0.0.0

255.0.0.0

127.0.0.1

Loopback

147.83.153.0

255.255.255.0

147.83.153.5

ether1

147.83.153.0

255.255.255.0

147.83.153.5

ether1

147.83.30.0

255.255.255.0

147.83.30.2

ether0

147.83.30.0

255.255.255.0

147.83.30.2

ether0

255.255.255.255

255.255.255.255

147.83.153.5

ether1

255.255.255.255

255.255.255.255

147.83.153.5

ether1

0.0.0.0

0.0.0.0

147.83.30.1

ether0

0.0.0.0

0.0.0.0

147.83.30.1

ether0

Prcticamente no observamos nada nuevo. Simplemente se han duplicado

Prcticamente no observamos nada nuevo. Simplemente se han duplicado

las entradas especficas de interfaz. El direccionador tambin tiene una en-

las entradas especficas de interfaz. El direccionador tambin tiene una en-

trada por defecto. En este caso, todo el trfico no destinado a las dos redes a

trada por defecto. En este caso, todo el trfico no destinado a las dos redes a

que est directamente conectado se direcciona hacia otro direccionador situado

que est directamente conectado se direcciona hacia otro direccionador situado

en la red 147.83.30.0 (el 147.83.30.1).

en la red 147.83.30.0 (el 147.83.30.1).

Actividad
Pensad si todos los direccionadores de Internet poseen una ruta por defecto y razonadlo. Imaginad qu sucede cuando enviamos un paquete a una estacin de una red
inexistente (por ejemplo, a la estacin 10.0.1.1).

Actividad
Vase la manera de representar
las direcciones de redes inexistentes
en el anexo 2 de este mdulo didctico.

Pensad si todos los direccionadores de Internet poseen una ruta por defecto y razonadlo. Imaginad qu sucede cuando enviamos un paquete a una estacin de una red
inexistente (por ejemplo, a la estacin 10.0.1.1).

Vase la manera de representar


las direcciones de redes inexistentes
en el anexo 2 de este mdulo didctico.

35

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

35

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

4. El ARP (address resolution protocol)

4. El ARP (address resolution protocol)

El ARP es el encargado de llevar a cabo la resolucin automtica del mapeado

El ARP es el encargado de llevar a cabo la resolucin automtica del mapeado

entre direcciones MAC.

entre direcciones MAC.

Cuando efectuamos la transmisin de un paquete entre dos estaciones locales

Cuando efectuamos la transmisin de un paquete entre dos estaciones locales

de una misma LAN, lo hacemos indicando a la aplicacin correspondiente

de una misma LAN, lo hacemos indicando a la aplicacin correspondiente

slo la direccin IP. Por ejemplo, si desde 147.83.153.103 queremos conectar-

slo la direccin IP. Por ejemplo, si desde 147.83.153.103 queremos conectar-

nos a 147.83.153.100, haremos lo siguiente:

nos a 147.83.153.100, haremos lo siguiente:

$ telnet 147.83.153.100

$ telnet 147.83.153.100

El sistema identifica la direccin fsica de destino de las tramas a las que deben

El sistema identifica la direccin fsica de destino de las tramas a las que deben

ir los paquetes IP que genera la aplicacin telnet por medio de una tabla que

ir los paquetes IP que genera la aplicacin telnet por medio de una tabla que

mapea las direcciones de un nivel (IP) con las del otro (MAC). Dicha tabla se

mapea las direcciones de un nivel (IP) con las del otro (MAC). Dicha tabla se

denomina cach ARP. Veamos un ejemplo de la misma:

denomina cach ARP. Veamos un ejemplo de la misma:

Tabla cach ARP


Direccin IP

Tabla cach ARP

Direccin MAC

Interfaz

Direccin IP

Direccin MAC

Interfaz

147.83.153.103

08:00:00:10:97:00

ether()

147.83.153.103

08:00:00:10:97:00

ether()

147.83.153.5

00:0c:aa:00:0f:e0

ether()

147.83.153.5

00:0c:aa:00:0f:e0

ether()

Mediante la nica interfaz del sistema, se conoce el mapeado MAC-IP de la

Mediante la nica interfaz del sistema, se conoce el mapeado MAC-IP de la

misma tarjeta de red (entrada 1) y el de otra mquina (entrada 2). Si bien esta

misma tarjeta de red (entrada 1) y el de otra mquina (entrada 2). Si bien esta

tabla puede modificarse manualmente (con el comando arp), lo ms normal

tabla puede modificarse manualmente (con el comando arp), lo ms normal

es que dichas entradas aparezcan automticamente, por obra del ARP.

es que dichas entradas aparezcan automticamente, por obra del ARP.

El ARP entra en funcionamiento en el momento en que el nivel necesita trans-

El ARP entra en funcionamiento en el momento en que el nivel necesita trans-

mitir un paquete IP destinado a una direccin IP de la que se desconoce el ma-

mitir un paquete IP destinado a una direccin IP de la que se desconoce el ma-

peado MAC. En el ejemplo de conexin anterior (Telnet), y utilizando asimismo

peado MAC. En el ejemplo de conexin anterior (Telnet), y utilizando asimismo

la cach ARP que hemos mostrado, antes de que el protocolo Telnet enve un

la cach ARP que hemos mostrado, antes de que el protocolo Telnet enve un

solo paquete, el sistema necesita averiguar la direccin MAC. Dentro de la cach

solo paquete, el sistema necesita averiguar la direccin MAC. Dentro de la cach

ARP, no hay esta entrada; por tanto, es preciso actualizarla.

ARP, no hay esta entrada; por tanto, es preciso actualizarla.

Actualizacin de la cach ARP

Actualizacin de la cach ARP

El ARP y la cach ARP se pueden considerar como un servicio nico que, desde el punto
de vista del IP, presenta un servicio: devolver una direccin MAC a partir de una direccin IP. El subsistema buscar dentro de la cach y devolver el contenido que encuentre
en la misma. En caso de que se precise un valor que no se encuentre en esta ltima, se
pondr en marcha el proceso de bsqueda de la informacin por medio del protocolo
ARP, para actualizar la cach y atender la peticin.

El ARP y la cach ARP se pueden considerar como un servicio nico que, desde el punto
de vista del IP, presenta un servicio: devolver una direccin MAC a partir de una direccin IP. El subsistema buscar dentro de la cach y devolver el contenido que encuentre
en la misma. En caso de que se precise un valor que no se encuentre en esta ltima, se
pondr en marcha el proceso de bsqueda de la informacin por medio del protocolo
ARP, para actualizar la cach y atender la peticin.

FUOC P03/75064/00977

36

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

36

El ARP se basa en dos nicos paquetes que van encapsulados directamente so-

El ARP se basa en dos nicos paquetes que van encapsulados directamente so-

bre tramas Ethernet (tipo Ethernet: 0x0806):

bre tramas Ethernet (tipo Ethernet: 0x0806):

La peticin ARP: transporta la direccin IP de la que se quiere conocer la

La peticin ARP: transporta la direccin IP de la que se quiere conocer la

direccin MAC. Como precisamente no se conoce su direccin MAC, la

direccin MAC. Como precisamente no se conoce su direccin MAC, la

trama debe llevar como direccin de destino la direccin broadcast

trama debe llevar como direccin de destino la direccin broadcast

(FF:FF:FF:FF:FF:FF). Todas las estaciones locales de la LAN procesan estas

(FF:FF:FF:FF:FF:FF). Todas las estaciones locales de la LAN procesan estas

tramas; sin embargo, slo la poseedora de la direccin IP pedida debe con-

tramas; sin embargo, slo la poseedora de la direccin IP pedida debe con-

testar. Para minimizar los accesos a la LAN, el receptor de la peticin ARP

testar. Para minimizar los accesos a la LAN, el receptor de la peticin ARP

tambin actualiza su cach (si es necesario) con el mapeado @IP - @MAC

tambin actualiza su cach (si es necesario) con el mapeado @IP - @MAC

del originador de la peticin.

del originador de la peticin.

La respuesta ARP: comunica la direccin MAC a quien la ha pedido (es el

La respuesta ARP: comunica la direccin MAC a quien la ha pedido (es el

paquete respuesta de la anterior). De hecho, el formato es casi irrelevante,

paquete respuesta de la anterior). De hecho, el formato es casi irrelevante,

puesto que lo nico interesante es la trama MAC y, en particular, su direc-

puesto que lo nico interesante es la trama MAC y, en particular, su direc-

cin de origen.

cin de origen.

La tabla ARP se denomina cach porque, de hecho, acta como una memoria
auxiliar que evita la consulta de la informacin a la LAN mientras se tenga una
copia local de la misma. Puede parecer que la consulta ARP no debera ser demasiado frecuente, puesto que al cabo de cierto tiempo toda la informacin se
encontrara dentro de la cach. Conviene saber, sin embargo, que las entradas
caducan al cabo de un periodo de tiempo relativamente breve (entre uno y
unos cuantos minutos, segn el sistema).
Actividad
Imaginad qu podra suceder si las entradas de la cach ARP no caducaran. Os puede
servir de ayuda pensar en la reconfiguracin de direcciones.

Algunos usos alternativos de inters del ARP son los siguientes:

Lecturas
complementarias
No mostraremos el formato
de los paquetes ARP, dado
que no aportan mucha ms
informacin. Podis
encontrar el formato del
paquete y los usos
alternativos del ARP en las
obras siguientes:
D.E. Comer (1995).
Internetworking with TCP/IP
(vol. 1: Principles, Protocols
and Architecture).
Hertfordshire: Prentice Hall.
W.R. Stevens (1994). TCP/IP
Illustrated (vol. 1: The
Protocols). Wilmington:
Addison-Wesley.

La tabla ARP se denomina cach porque, de hecho, acta como una memoria
auxiliar que evita la consulta de la informacin a la LAN mientras se tenga una
copia local de la misma. Puede parecer que la consulta ARP no debera ser demasiado frecuente, puesto que al cabo de cierto tiempo toda la informacin se
encontrara dentro de la cach. Conviene saber, sin embargo, que las entradas
caducan al cabo de un periodo de tiempo relativamente breve (entre uno y
unos cuantos minutos, segn el sistema).
Actividad
Imaginad qu podra suceder si las entradas de la cach ARP no caducaran. Os puede
servir de ayuda pensar en la reconfiguracin de direcciones.

Algunos usos alternativos de inters del ARP son los siguientes:

ARP innecesario (gratuitous-ARP): se utiliza cuando una estacin arranca

ARP innecesario (gratuitous-ARP): se utiliza cuando una estacin arranca

para saber si hay alguna otra estacin que est utilizando su misma direc-

para saber si hay alguna otra estacin que est utilizando su misma direc-

cin IP. Por medio de una peticin ARP, puede preguntar quin tiene su di-

cin IP. Por medio de una peticin ARP, puede preguntar quin tiene su di-

reccin IP (un conflicto de este tipo podra dejar las dos estaciones fuera

reccin IP (un conflicto de este tipo podra dejar las dos estaciones fuera

de combate).

de combate).

ARP subsidiario (proxy-ARP): se utiliza en situaciones en las que un direc-

ARP subsidiario (proxy-ARP): se utiliza en situaciones en las que un direc-

cionador divide una subred sin que las estaciones ni el direccionador que

cionador divide una subred sin que las estaciones ni el direccionador que

los conecta a Internet modifiquen su mscara. Esta tcnica, a pesar de no

los conecta a Internet modifiquen su mscara. Esta tcnica, a pesar de no

ser demasiado ortodoxa, se aplica con frecuencia cuando el direccionador

ser demasiado ortodoxa, se aplica con frecuencia cuando el direccionador

de una red privada se conecta a Internet por medio de una red ajena (un

de una red privada se conecta a Internet por medio de una red ajena (un

proveedor de Internet, por ejemplo).

proveedor de Internet, por ejemplo).

Actividades

Actividades

En el apartado 3.3 hemos dejado una pregunta sin contestar: cmo puede una estacin
enviar un paquete a una estacin remota (por ejemplo, seguiendo la ruta por defecto del
direccionador) si el paquete no puede llevar la direccin MAC de la estacin de destino?

En el apartado 3.3 hemos dejado una pregunta sin contestar: cmo puede una estacin
enviar un paquete a una estacin remota (por ejemplo, seguiendo la ruta por defecto del
direccionador) si el paquete no puede llevar la direccin MAC de la estacin de destino?

TCP/IP: los protocolos de la red Internet

Lecturas
complementarias
No mostraremos el formato
de los paquetes ARP, dado
que no aportan mucha ms
informacin. Podis
encontrar el formato del
paquete y los usos
alternativos del ARP en las
obras siguientes:
D.E. Comer (1995).
Internetworking with TCP/IP
(vol. 1: Principles, Protocols
and Architecture).
Hertfordshire: Prentice Hall.
W.R. Stevens (1994). TCP/IP
Illustrated (vol. 1: The
Protocols). Wilmington:
Addison-Wesley.

FUOC P03/75064/00977

37

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

37

Elaborad una lista de los paquetes que viajan por la red y pensad cules son las entradas
de la cach ARP que intervienen en la misma.

Elaborad una lista de los paquetes que viajan por la red y pensad cules son las entradas
de la cach ARP que intervienen en la misma.

Consultad la cach ARP de algn sistema que tengis al alcance (UNIX o MS) por medio de arp -a. Comprobad qu opciones tiene disponibles.

Consultad la cach ARP de algn sistema que tengis al alcance (UNIX o MS) por medio de arp -a. Comprobad qu opciones tiene disponibles.

TCP/IP: los protocolos de la red Internet

38

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

5. El ICMP (Internet control message protocol)

38

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

5. El ICMP (Internet control message protocol)

La cuestin de si el ICMP es un protocolo, o si ms bien es una herra-

La cuestin de si el ICMP es un protocolo, o si ms bien es una herra-

mienta que utiliza el protocolo IP para notificar errores genera mucha

mienta que utiliza el protocolo IP para notificar errores genera mucha

polmica. Lo cierto es que el ICMP constituye el mecanismo bsico para

polmica. Lo cierto es que el ICMP constituye el mecanismo bsico para

la gestin de las diferentes incidencias que pueden ocurrir en una red IP.

la gestin de las diferentes incidencias que pueden ocurrir en una red IP.

5.1. Mensajes ICMP

5.1. Mensajes ICMP

Los mensajes ICMP viajan dentro de paquetes IP (al contrario de lo que suce-

Los mensajes ICMP viajan dentro de paquetes IP (al contrario de lo que suce-

da con los paquetes ARP), en el campo de datos con el campo Protocolo igual

da con los paquetes ARP), en el campo de datos con el campo Protocolo igual

a 1. El formato del mensaje presentado en la figura siguiente nos facilitar el

a 1. El formato del mensaje presentado en la figura siguiente nos facilitar el

estudio de los diferentes usos del paquete ICMP:

estudio de los diferentes usos del paquete ICMP:

El campo Protocolo de la cabecera


es igual a 1.

El campo Protocolo de la cabecera


es igual a 1.

Existen trece tipos de mensajes ICMP en uso en la actualidad, y alrededor de

Existen trece tipos de mensajes ICMP en uso en la actualidad, y alrededor de

una treintena de subtipos identificados con el campo Cdigo.

una treintena de subtipos identificados con el campo Cdigo.

Tipo

Cdigo

Descripcin

Clase

Tipo

Cdigo

Respuesta de eco (echo reply)

Peticin

Respuesta de eco (echo reply)

Peticin

Peticin de eco (echo request)

Peticin

Peticin de eco (echo request)

Peticin

Destino inalcanzable (unreachable destination)

Descripcin

Clase

Destino inalcanzable (unreachable destination)

Los diferentes cdigos permiten definir si lo que no se puede


alcanzar es la subred (0, 6, 9, 11), la estacin (1, 7, 10, 12),
el protocolo (2), o el puerto (3) y los motivos

Error

0-15

Peticin de control de flujo (source quench)

Error

0-15

0-3

Redireccionamiento

Error

Publicacin de rutas

Peticin

Los diferentes cdigos permiten definir si lo que no se puede


alcanzar es la subred (0, 6, 9, 11), la estacin (1, 7, 10, 12),
el protocolo (2), o el puerto (3) y los motivos

Error

Peticin de control de flujo (source quench)

Error

0-3

Redireccionamiento

Error

Publicacin de rutas

Peticin

39

FUOC P03/75064/00977

Tipo

Cdigo

10

11

0-1

12

0-1

13

14

Descripcin

TCP/IP: los protocolos de la red Internet

39

FUOC P03/75064/00977

Clase

Tipo

Cdigo

Peticin

10

El tiempo de vida ha expirado (time exceeded)

Error

11

0-1

El tiempo de vida ha expirado (time exceeded)

Error

Cabecera IP incorrecta

Error

12

0-1

Cabecera IP incorrecta

Error

Peticin de hora

Peticin

13

Peticin de hora

Peticin

Respuesta de hora (en milisegundos desde la medianoche)

Peticin

14

Respuesta de hora (en milisegundos desde la medianoche)

Peticin

17

Peticin de la mscara de la subred

Peticin

17

Peticin de la mscara de la subred

Peticin

18

Respuesta de la mscara de la subred

Peticin

18

Respuesta de la mscara de la subred

Peticin

Peticin de rutas

Descripcin

TCP/IP: los protocolos de la red Internet

Peticin de rutas

Clase
Peticin

La ltima columna nos permite distinguir mensajes ICMP de notificacin de

La ltima columna nos permite distinguir mensajes ICMP de notificacin de

error de mensajes que son parte de una peticin (la peticin o la respuesta).

error de mensajes que son parte de una peticin (la peticin o la respuesta).

Esta distincin es importante, puesto que los mensajes de error ICMP no pue-

Esta distincin es importante, puesto que los mensajes de error ICMP no pue-

den generar otros mensajes de error ICMP. En particular, no se generan men-

den generar otros mensajes de error ICMP. En particular, no se generan men-

sajes de error en respuesta a los paquetes o mensajes siguientes:

sajes de error en respuesta a los paquetes o mensajes siguientes:

Los mensajes de error ICMP.

Los mensajes de error ICMP.

Un paquete IP destinado a una direccin broadcast (sea un broadcast IP o un

Un paquete IP destinado a una direccin broadcast (sea un broadcast IP o un

broadcast MAC).

broadcast MAC).

Un fragmento que no sea el primero.

Un fragmento que no sea el primero.

Una direccin de origen que no identifique una nica estacin. Por ejem-

Una direccin de origen que no identifique una nica estacin. Por ejem-

plo, la direccin de origen vlida 0.0.0.0 o la direccin de origen no vlida

plo, la direccin de origen vlida 0.0.0.0 o la direccin de origen no vlida

255.255.255.255.

255.255.255.255.

Fijaos en que en cualquiera de estas situaciones podran provocarse respuestas

Fijaos en que en cualquiera de estas situaciones podran provocarse respuestas

en cascada que podran afectar gravemente a la red.

en cascada que podran afectar gravemente a la red.

Parches

Parches

Desgraciadamente, no todas las implementaciones TCP/IP han tenido en cuenta las excepciones existentes en la generacin de mensajes de error, y algunos usuarios desaprensivos
han explotado estos problemas para bloquear sistemas y redes remotas. Asimismo, de vez
en cuando se descubren nuevas excepciones que pueden afectar a nuestros sistemas.

Desgraciadamente, no todas las implementaciones TCP/IP han tenido en cuenta las excepciones existentes en la generacin de mensajes de error, y algunos usuarios desaprensivos
han explotado estos problemas para bloquear sistemas y redes remotas. Asimismo, de vez
en cuando se descubren nuevas excepciones que pueden afectar a nuestros sistemas.

Los fabricantes de sistemas operativos publican regularmente parches (patch) que permiten solucionar los problemas (las vulnerabilidades) que se han descubierto desde la fecha
de publicacin de la ltima versin.

Los fabricantes de sistemas operativos publican regularmente parches (patch) que permiten solucionar los problemas (las vulnerabilidades) que se han descubierto desde la fecha
de publicacin de la ltima versin.

5.2. El programa ping

5.2. El programa ping

El programa ping permite descubrir si una estacin se encuentra activa o no,

El programa ping permite descubrir si una estacin se encuentra activa o no,

simplemente efectuando lo siguiente:

simplemente efectuando lo siguiente:

$ ping <direccion_IP_destino>

$ ping <direccion_IP_destino>

La instruccin ping enva un mensaje ICMP del tipo 8 (peticin de eco) con

La instruccin ping enva un mensaje ICMP del tipo 8 (peticin de eco) con

el destino indicado. El receptor de la peticin debe responder con una respues-

el destino indicado. El receptor de la peticin debe responder con una respues-

FUOC P03/75064/00977

40

ta de eco (ICMP tipo 0), y, cuando el ping la recibe, indica en pantalla que la
estacin remota est activa*.

Mensaje ICMP de peticin de eco

TCP/IP: los protocolos de la red Internet

* Evidentemente, la instruccin
debera llamarse ping-pong.

FUOC P03/75064/00977

ta de eco (ICMP tipo 0), y, cuando el ping la recibe, indica en pantalla que la
estacin remota est activa*.

Mensaje ICMP de peticin de eco

Mensaje ICMP de respuesta de eco

40

En sistemas multitarea puede haber ms de una peticin en curso. Para saber a

cul de las instrucciones ping debe entregarse la respuesta, cada ping asigna

cul de las instrucciones ping debe entregarse la respuesta, cada ping asigna

el identificador del proceso ping a los mensajes generados. El campo Identifi-

el identificador del proceso ping a los mensajes generados. El campo Identifi-

cador de secuencia permite al ping enviar diferentes paquetes e identificar sus

cador de secuencia permite al ping enviar diferentes paquetes e identificar sus

mite aadir una cadena arbitraria de bytes a la peticin de eco (ping s en UNIX

* En diferentes versiones de UNIX


los parmetros pueden cambiar. En
caso de duda, hacemos man ping.

y ping t en MSWindows). La respuesta debe llevar una copia de dichos bytes.

respuestas (ping t en MSWindows y ping en UNIX*). El campo de datos permite aadir una cadena arbitraria de bytes a la peticin de eco (ping s en UNIX

Actividad

Practicad el uso de la instruccin ping. Comprobad qu retrasos mximos se dan en


Internet. Hacedlo a diferentes horas del da.

Practicad el uso de la instruccin ping. Comprobad qu retrasos mximos se dan en


Internet. Hacedlo a diferentes horas del da.

Con el ping tenemos otras opciones disponibles. En particular, la opcin de

Con el ping tenemos otras opciones disponibles. En particular, la opcin de

no de los campos del mensaje ICMP, sino que se encuentra dentro de la misma

* En diferentes versiones de UNIX


los parmetros pueden cambiar. En
caso de duda, hacemos man ping.

y ping t en MSWindows). La respuesta debe llevar una copia de dichos bytes.

Actividad

memorizacin de rutas (record route o RR)*. Esta opcin no se refleja en ningu-

* Evidentemente, la instruccin
debera llamarse ping-pong.

Mensaje ICMP de respuesta de eco

En sistemas multitarea puede haber ms de una peticin en curso. Para saber a

respuestas (ping t en MSWindows y ping en UNIX*). El campo de datos per-

TCP/IP: los protocolos de la red Internet

* La sintaxis de la opcin RR en
UNIX es ping R y en MSWindows,
ping r.

memorizacin de rutas (record route o RR)*. Esta opcin no se refleja en ninguno de los campos del mensaje ICMP, sino que se encuentra dentro de la misma

cabecera IP, en el campo de opciones.

cabecera IP, en el campo de opciones.

Las diferentes opciones que se encuentran disponibles en la cabecera se iden-

Las diferentes opciones que se encuentran disponibles en la cabecera se iden-

tifican por medio del primer byte del campo de opciones de la cabecera IP:

tifican por medio del primer byte del campo de opciones de la cabecera IP:

* La sintaxis de la opcin RR en
UNIX es ping R y en MSWindows,
ping r.

FUOC P03/75064/00977

41

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

41

Si el originador quiere activar la opcin RR, el primer byte debe ser 7. En todas

Si el originador quiere activar la opcin RR, el primer byte debe ser 7. En todas

las opciones el primer byte indica el tipo, y el segundo, la longitud en bytes de

las opciones el primer byte indica el tipo, y el segundo, la longitud en bytes de

la opcin. En este caso siempre se pide el mximo posible, que es 39 bytes, pues-

la opcin. En este caso siempre se pide el mximo posible, que es 39 bytes, pues-

to que el campo siguiente tiene un byte (puntero), al que sigue una cadena

to que el campo siguiente tiene un byte (puntero), al que sigue una cadena

de campos de 4 bytes (que son las direcciones IP encontradas). El campo

de campos de 4 bytes (que son las direcciones IP encontradas). El campo

Puntero se inicializa a 4, y dentro de los 4 bytes siguientes se guarda la direc-

Puntero se inicializa a 4, y dentro de los 4 bytes siguientes se guarda la direc-

cin de la estacin en que ejecutamos el ping.

cin de la estacin en que ejecutamos el ping.

Cada direccionador debe mirar dentro de los paquetes IP (ICMP o no) para
ver si tienen la opcin RR activada. Si un direccionador encuentra un paquete

Consultad los detalles de la


cabecera de los mensajes IP
en el subapartado 3.2 de este mdulo
didctico.

Cada direccionador debe mirar dentro de los paquetes IP (ICMP o no) para
ver si tienen la opcin RR activada. Si un direccionador encuentra un paquete

con esta opcin activada, modifica la posicin apuntada por el puntero con

con esta opcin activada, modifica la posicin apuntada por el puntero con

su direccin (por norma general, la direccin de salida del direccionador) e

su direccin (por norma general, la direccin de salida del direccionador) e

incrementa el valor del puntero en cuatro unidades. Cuando vuelve el men-

incrementa el valor del puntero en cuatro unidades. Cuando vuelve el men-

saje de respuesta de eco, se ha aadido una lista con todos los saltos que ha

saje de respuesta de eco, se ha aadido una lista con todos los saltos que ha

tenido que realizar el paquete (tanto de ida, como de vuelta).

tenido que realizar el paquete (tanto de ida, como de vuelta).

El campo de opciones tiene limitaciones de tamao: slo dispone de 36 bytes

El campo de opciones tiene limitaciones de tamao: slo dispone de 36 bytes

(39 - 3) para guardar direcciones IP. Como cada direccin ocupa 4 bytes, slo hay

(39 - 3) para guardar direcciones IP. Como cada direccin ocupa 4 bytes, slo hay

espacio para nueve direcciones IP. Si a ello le aadimos que no todos los direccio-

espacio para nueve direcciones IP. Si a ello le aadimos que no todos los direccio-

nadores comprueban si hay opciones dentro de los paquetes IP, o no actualizan

nadores comprueban si hay opciones dentro de los paquetes IP, o no actualizan

la opcin RR, hace poco til este tipo de ping en el mundo real.

la opcin RR, hace poco til este tipo de ping en el mundo real.

Actividad

Actividad

Comprobad la ruta a diferentes destinos por medio de un ping con la opcin de memorizacin de rutas. Valorad si la comprobacin de esta opcin est muy extendida.

Comprobad la ruta a diferentes destinos por medio de un ping con la opcin de memorizacin de rutas. Valorad si la comprobacin de esta opcin est muy extendida.

5.3. El programa traceroute


El programa traceroute permite encontrar las rutas entre un origen y un destino sin ninguna de las limitaciones del ping -R (ping -r en MSWindows). Uti-

TCP/IP: los protocolos de la red Internet

Consultad los detalles de la


cabecera de los mensajes IP
en el subapartado 3.2 de este mdulo
didctico.

5.3. El programa traceroute

En MSWindows traceroute
recibe el nombre de tracert.

El programa traceroute permite encontrar las rutas entre un origen y un destino sin ninguna de las limitaciones del ping -R (ping -r en MSWindows). Uti-

liza un mecanismo bastante ingenioso basado en mensajes genricos ICMP (y

liza un mecanismo bastante ingenioso basado en mensajes genricos ICMP (y

no los especficos peticin de eco y respuesta de eco del ping).

no los especficos peticin de eco y respuesta de eco del ping).

El funcionamiento se basa en la explotacin de dos mensajes ICMP:

El funcionamiento se basa en la explotacin de dos mensajes ICMP:

1) Tiempo de vida agotado (time-exceeded): cuando un direccionador recibe

1) Tiempo de vida agotado (time-exceeded): cuando un direccionador recibe

un paquete, aparte de las tareas primordiales de direccionamiento, debe redu-

un paquete, aparte de las tareas primordiales de direccionamiento, debe redu-

cir en una unidad el valor del campo TTL de la cabecera IP.

cir en una unidad el valor del campo TTL de la cabecera IP.

En caso de que el valor (despus de la reduccin) sea cero, el paquete debe eli-

En caso de que el valor (despus de la reduccin) sea cero, el paquete debe eli-

minarse. Sin embargo, esta eliminacin no es silenciosa, sino que el direcciona-

minarse. Sin embargo, esta eliminacin no es silenciosa, sino que el direcciona-

dor responsable enva una notificacin de la misma al originador del paquete

dor responsable enva una notificacin de la misma al originador del paquete

por medio de un mensaje ICMP tipo 11 y cdigo 0 (tiempo de vida agotado).

por medio de un mensaje ICMP tipo 11 y cdigo 0 (tiempo de vida agotado).

Este paquete ICMP contiene la cabecera del paquete IP que se ha eliminado y

Este paquete ICMP contiene la cabecera del paquete IP que se ha eliminado y

los primeros 8 bytes de su contenido (seguramente la cabecera UDP o los pri-

los primeros 8 bytes de su contenido (seguramente la cabecera UDP o los pri-

meros bytes de la cabecera TCP).

meros bytes de la cabecera TCP).

En MSWindows traceroute
recibe el nombre de tracert.

FUOC P03/75064/00977

42

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

42

2) Puerto inalcanzable (unreachable-port): cuando una estacin recibe un da-

2) Puerto inalcanzable (unreachable-port): cuando una estacin recibe un da-

tagrama UDP o un segmento TCP destinado a un puerto que la mquina no

tagrama UDP o un segmento TCP destinado a un puerto que la mquina no

escucha, responde con un mensaje de error de puerto inalcanzable (tipo 3 con

escucha, responde con un mensaje de error de puerto inalcanzable (tipo 3 con

cdigo 3).

cdigo 3).

El programa traceroute simplemente debe enviar paquetes al destino con


TTL secuencialmente ascendentes: el paquete (con independencia del tipo
que sea) que tenga el TTL = 1 ser rechazado por el primer direccionador, el que
tenga TTL = 2 lo ser por el segundo, y as consecutivamente. Cada uno de los
direccionadores devolver un mensaje ICMP tiempo de vida agotado, una
pista del todo suficiente para que el originador averige el camino que han seguido todos los paquetes.

Implementaciones
de los traceroute
Las implementaciones de
UNIX probadas utilizan un datagrama UDP destinado a un
puerto elevado (para minimizar la probabilidad de que
exista un servicio usando
el puerto). El tracert de
Windows utiliza precisamente
mensajes ICMP echo-request.

El programa traceroute simplemente debe enviar paquetes al destino con


TTL secuencialmente ascendentes: el paquete (con independencia del tipo
que sea) que tenga el TTL = 1 ser rechazado por el primer direccionador, el que
tenga TTL = 2 lo ser por el segundo, y as consecutivamente. Cada uno de los
direccionadores devolver un mensaje ICMP tiempo de vida agotado, una
pista del todo suficiente para que el originador averige el camino que han seguido todos los paquetes.

Cuando el mensaje llega al destino, debe devolver algn mensaje para sa-

Cuando el mensaje llega al destino, debe devolver algn mensaje para sa-

ber que la secuencia ha finalizado. Por norma general, el mensaje ser

ber que la secuencia ha finalizado. Por norma general, el mensaje ser

puerto inalcanzable si el mensaje enviado era un datagrama UDP a un

puerto inalcanzable si el mensaje enviado era un datagrama UDP a un

puerto no usado, o bien una respuesta de eco si lo que se ha enviado son

puerto no usado, o bien una respuesta de eco si lo que se ha enviado son

paquetes ICMP de peticin de eco.

paquetes ICMP de peticin de eco.

TCP/IP: los protocolos de la red Internet

Implementaciones
de los traceroute
Las implementaciones de
UNIX probadas utilizan un datagrama UDP destinado a un
puerto elevado (para minimizar la probabilidad de que
exista un servicio usando
el puerto). El tracert de
Windows utiliza precisamente
mensajes ICMP echo-request.

FUOC P03/75064/00977

43

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

43

Actividades

Actividades

Utilizad el programa traceroute (tracert en MSWindows) para descubrir los caminos que siguen los paquetes hasta diferentes destinos.

Utilizad el programa traceroute (tracert en MSWindows) para descubrir los caminos que siguen los paquetes hasta diferentes destinos.

Observad cuntos saltos hay desde vuestra mquina hasta www.nasa.gov y calculad
qu nmero de paquetes existe en la cola de salida de los diferentes direccionadores.
Comprobad cules son las reas ms cargadas. Hacedlo a diferentes horas del da y fijaos en las distintas zonas horarias que cruza el traceroute.

Observad cuntos saltos hay desde vuestra mquina hasta www.nasa.gov y calculad
qu nmero de paquetes existe en la cola de salida de los diferentes direccionadores.
Comprobad cules son las reas ms cargadas. Hacedlo a diferentes horas del da y fijaos en las distintas zonas horarias que cruza el traceroute.

Probad qu sucede si nos conectamos a un puerto no servido. Por ejemplo, conectaos


al puerto TCP 1234 (podis hacerlo con Telnet localhost 1234). Tened en cuenta
que la aplicacin Telnet en Windows95 no admite el segundo argumento (probadlo en
UNIX, o bien en Windows NT).

Consultad aplicaciones alternativas


a telnet en el anexo 1 de este
mdulo didctico.

Probad qu sucede si nos conectamos a un puerto no servido. Por ejemplo, conectaos


al puerto TCP 1234 (podis hacerlo con Telnet localhost 1234). Tened en cuenta
que la aplicacin Telnet en Windows95 no admite el segundo argumento (probadlo en
UNIX, o bien en Windows NT).

5.4. Mensaje de redireccionamiento

5.4. Mensaje de redireccionamiento

Es normal que los sistemas se conecten a Internet slo configurando su direc-

Es normal que los sistemas se conecten a Internet slo configurando su direc-

cin IP, la mscara de la LAN y el direccionador que gestiona la comunicacin

cin IP, la mscara de la LAN y el direccionador que gestiona la comunicacin

remota. Cuando hay ms de un direccionador en la LAN local, el que hemos

remota. Cuando hay ms de un direccionador en la LAN local, el que hemos

configurado en la estacin detecta que recibe paquetes que, en realidad, debe-

configurado en la estacin detecta que recibe paquetes que, en realidad, debe-

ran ir a otro de los direccionadores de la misma LAN.

ran ir a otro de los direccionadores de la misma LAN.

A este efecto, los direccionadores disponen del mensaje ICMP de redirecciona-

A este efecto, los direccionadores disponen del mensaje ICMP de redirecciona-

miento (redirect), que acta de la manera siguiente:

miento (redirect), que acta de la manera siguiente:

1) La estacin enva un paquete al direccionador que tiene configurado (A).

1) La estacin enva un paquete al direccionador que tiene configurado (A).

El direccionador A descubre que la mejor ruta pasa por utilizar el direcciona-

El direccionador A descubre que la mejor ruta pasa por utilizar el direcciona-

dor B.

dor B.

2) El direccionador A direcciona el paquete hacia el direccionador B.

2) El direccionador A direcciona el paquete hacia el direccionador B.

3) Notifica a la estacin que modifique su tabla de direccionamiento.

3) Notifica a la estacin que modifique su tabla de direccionamiento.

Notad que, normalmente, el direccionador contina direccionando los paque-

Notad que, normalmente, el direccionador contina direccionando los paque-

tes (paso 2). Aunque la estacin no hiciera caso del mensaje ICMP de redirec-

tes (paso 2). Aunque la estacin no hiciera caso del mensaje ICMP de redirec-

cionamiento (paso 3), continuara teniendo conectividad con el exterior; sin

cionamiento (paso 3), continuara teniendo conectividad con el exterior; sin

embargo, si le hace caso, mejorar el rendimiento del sistema.

embargo, si le hace caso, mejorar el rendimiento del sistema.

TCP/IP: los protocolos de la red Internet

Consultad aplicaciones alternativas


a telnet en el anexo 1 de este
mdulo didctico.

FUOC P03/75064/00977

44

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

44

Cuando una estacin obedece a un ICMP de redireccionamiento, su tabla de

Cuando una estacin obedece a un ICMP de redireccionamiento, su tabla de

direccionamiento queda convenientemente actualizada. El comando route

direccionamiento queda convenientemente actualizada. El comando route

puede proporcionarnos alguna pista de si este fenmeno tiene lugar.

puede proporcionarnos alguna pista de si este fenmeno tiene lugar.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

45

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

45

6. Protocolos del nivel de transporte

6. Protocolos del nivel de transporte

El objetivo principal del nivel de transporte es actuar de interfaz entre los

El objetivo principal del nivel de transporte es actuar de interfaz entre los

niveles orientados a la aplicacin y los niveles orientados a la red de la jerar-

niveles orientados a la aplicacin y los niveles orientados a la red de la jerar-

qua de protocolos (tanto OSI como TCP/IP).

qua de protocolos (tanto OSI como TCP/IP).

El nivel de transporte oculta a los niveles altos del sistema el tipo de tecnologa
(red) al que est conectado el terminal. La figura siguiente describe el posicionamiento del nivel de transporte respecto al resto de los niveles.

Recordad
Los terminales pueden estar
conectados tanto a una red
de rea local (LAN) como a una
red de gran alcance (WAN),
e interconectados por medio
del protocolo de Internet.

El nivel de transporte oculta a los niveles altos del sistema el tipo de tecnologa
(red) al que est conectado el terminal. La figura siguiente describe el posicionamiento del nivel de transporte respecto al resto de los niveles.

Para introducir los protocolos del nivel de transporte, nos centramos en la je-

Para introducir los protocolos del nivel de transporte, nos centramos en la je-

rarqua de protocolos TCP/IP. En esta ltima se definen dos protocolos de

rarqua de protocolos TCP/IP. En esta ltima se definen dos protocolos de

transporte: el UDP y el TCP. El UDP es no orientado a la conexin, mientras

transporte: el UDP y el TCP. El UDP es no orientado a la conexin, mientras

que el TCP es orientado a la conexin.

que el TCP es orientado a la conexin.

En el caso de la jerarqua TCP/IP, se definen dos direcciones que relacionan el

En el caso de la jerarqua TCP/IP, se definen dos direcciones que relacionan el

nivel de transporte con los niveles superior e inferior:

nivel de transporte con los niveles superior e inferior:

La direccin IP, que ya conocemos, es la direccin que identifica un sub-

La direccin IP, que ya conocemos, es la direccin que identifica un sub-

sistema dentro de una red.

El puerto identifica la aplicacin que requiere la comunicacin.

Para identificar las diferentes aplicaciones, los protocolos TCP/IP marcan

Para identificar las diferentes aplicaciones, los protocolos TCP/IP marcan

cada paquete (o unidad de informacin) con un identificador de 16 bits lla-

cada paquete (o unidad de informacin) con un identificador de 16 bits lla-

mado puerto.

mado puerto.

sobre protocolos del nivel de transporte. Ello significa que un mismo protoco-

Recordad
Los terminales pueden estar
conectados tanto a una red
de rea local (LAN) como a una
red de gran alcance (WAN),
e interconectados por medio
del protocolo de Internet.

sistema dentro de una red.

El puerto identifica la aplicacin que requiere la comunicacin.

La verdadera utilidad de los puertos es que permiten multiplexar aplicaciones

TCP/IP: los protocolos de la red Internet

Ms adelante, volveremos a hablar


de este punto.

La verdadera utilidad de los puertos es que permiten multiplexar aplicaciones


sobre protocolos del nivel de transporte. Ello significa que un mismo protoco-

Ms adelante, volveremos a hablar


de este punto.

FUOC P03/75064/00977

46

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

46

lo de transporte lleva informacin de diferentes aplicaciones y estas ltimas

lo de transporte lleva informacin de diferentes aplicaciones y estas ltimas

son identificadas por el puerto.

son identificadas por el puerto.

Una aplicacin puede establecer una comunicacin por medio de la jerarqua

Una aplicacin puede establecer una comunicacin por medio de la jerarqua

de protocolos TCP/IP.

de protocolos TCP/IP.

Los protocolos del nivel de aplicacin pueden ser los siguientes:

Los protocolos del nivel de aplicacin pueden ser los siguientes:

FTP (file transfer protocol) para la transferencia de ficheros.


HTTP (hipertext transfer protocol) base del WWW.
SMTP (simple mail transfer protocol) para el correo electrnico.
SNMP (simple network management protocol) para la gestin de la red.

FTP (file transfer protocol) para la transferencia de ficheros.


HTTP (hipertext transfer protocol) base del WWW.
SMTP (simple mail transfer protocol) para el correo electrnico.
SNMP (simple network management protocol) para la gestin de la red.

Si alguna aplicacin que corre en un terminal quiere establecer una comuni-

Si alguna aplicacin que corre en un terminal quiere establecer una comuni-

cacin con un servidor o con otro terminal, debe utilizar un protocolo de

cacin con un servidor o con otro terminal, debe utilizar un protocolo de

transporte: el TCP o el UDP. Como el destino puede encontrarse en una red

transporte: el TCP o el UDP. Como el destino puede encontrarse en una red

remota, los protocolos de transporte necesitan el protocolo Internet para po-

remota, los protocolos de transporte necesitan el protocolo Internet para po-

der llegar al terminal o servidor remoto.

der llegar al terminal o servidor remoto.

Por tanto, cuando se establece la comunicacin, no slo es esencial conocer el

Por tanto, cuando se establece la comunicacin, no slo es esencial conocer el

puerto que identifica la aplicacin de destino, sino tambin la direccin IP que

puerto que identifica la aplicacin de destino, sino tambin la direccin IP que

identifica el terminal o servidor dentro del conjunto de redes.

identifica el terminal o servidor dentro del conjunto de redes.

Como podis observar en la figura anterior, las aplicaciones utilizan uno de los

Como podis observar en la figura anterior, las aplicaciones utilizan uno de los

dos protocolos de transporte para comunicarse con equipos remotos. Para que

dos protocolos de transporte para comunicarse con equipos remotos. Para que

un protocolo de aplicacin se pueda comunicar con otro del mismo nivel si-

un protocolo de aplicacin se pueda comunicar con otro del mismo nivel si-

tuado en un terminal remoto, debe transmitirle un flujo de bytes que es en-

tuado en un terminal remoto, debe transmitirle un flujo de bytes que es en-

capsulado por los protocolos del nivel de transporte.

capsulado por los protocolos del nivel de transporte.

El conjunto de bytes que transmite el nivel de transporte TCP se conoce

El conjunto de bytes que transmite el nivel de transporte TCP se conoce

como segmento TCP, mientras que el conjunto de bytes que transmite

como segmento TCP, mientras que el conjunto de bytes que transmite

el protocolo de transporte UDP se llama datagrama UDP.

el protocolo de transporte UDP se llama datagrama UDP.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

47

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

47

Dos aplicaciones se comunican siguiendo el modelo cliente/servidor. En una

Dos aplicaciones se comunican siguiendo el modelo cliente/servidor. En una

conexin es tpico que una aplicacin (el cliente) inicie una comunicacin

conexin es tpico que una aplicacin (el cliente) inicie una comunicacin

pidiendo una informacin a otra aplicacin (el servidor). Pensemos en un or-

pidiendo una informacin a otra aplicacin (el servidor). Pensemos en un or-

denador que est conectado a una LAN y tenga asignada una direccin IP.

denador que est conectado a una LAN y tenga asignada una direccin IP.

Supongamos que dicho ordenador acta como servidor de correo electrni-

Supongamos que dicho ordenador acta como servidor de correo electrni-

co, adems de como servidor de nombres. Un cliente conectado a Internet que

co, adems de como servidor de nombres. Un cliente conectado a Internet que

solicita resolver un nombre necesita conocer la direccin IP asignada a este or-

solicita resolver un nombre necesita conocer la direccin IP asignada a este or-

denador y el puerto que identifica la aplicacin servidor que resuelve nombres.

denador y el puerto que identifica la aplicacin servidor que resuelve nombres.

El cliente necesita conocer ambas direcciones puesto que el servidor estar co-

El cliente necesita conocer ambas direcciones puesto que el servidor estar co-

nectado a una red y, por tanto, tendr una direccin IP que debe ser conocida

nectado a una red y, por tanto, tendr una direccin IP que debe ser conocida

para que se pueda establecer una comunicacin con esta mquina remota.

para que se pueda establecer una comunicacin con esta mquina remota.

Dicha comunicacin se consigue por medio del IP. Sin embargo, una vez

Dicha comunicacin se consigue por medio del IP. Sin embargo, una vez

conseguida, el servidor debe ser capaz de identificar la aplicacin con que de-

conseguida, el servidor debe ser capaz de identificar la aplicacin con que de-

sea comunicarse el cliente entre las muchas que corren: servidor de nombres,

sea comunicarse el cliente entre las muchas que corren: servidor de nombres,

servidor de correo electrnico, etc.

servidor de correo electrnico, etc.

El cliente conoce la direccin IP de origen (la suya), la direccin IP de destino

El cliente conoce la direccin IP de origen (la suya), la direccin IP de destino

(la del servidor) y su puerto de origen (identifica la aplicacin cliente). Sin em-

(la del servidor) y su puerto de origen (identifica la aplicacin cliente). Sin em-

bargo, tambin debe conocer el nmero (puerto de destino) que identifica la

bargo, tambin debe conocer el nmero (puerto de destino) que identifica la

aplicacin deseada en el servidor, y lo hace por medio de los llamados puertos

aplicacin deseada en el servidor, y lo hace por medio de los llamados puertos

conocidos (well-known port).

conocidos (well-known port).

Un puerto conocido (well-known port) es un puerto (nmero) reservado que identifica una aplicacin conocida.

Los puertos conocidos son


asignados por IANA (Internet
Assigned Numbers Authority).

Un puerto conocido (well-known port) es un puerto (nmero) reservado que identifica una aplicacin conocida.

Ejemplo

Ejemplo

Los valores de puertos conocidos para aplicaciones que utilizan el UDP son los siguientes:

Los valores de puertos conocidos para aplicaciones que utilizan el UDP son los siguientes:

Puerto 7 para el servidor de eco.


Puerto 53 para el servidor de nombres (DNS*).
Puerto 69 para el protocolo de transferencia de ficheros trivial (TFTP**).

Puerto 7 para el servidor de eco.


Puerto 53 para el servidor de nombres (DNS*).
Puerto 69 para el protocolo de transferencia de ficheros trivial (TFTP**).

Y algunos valores de puertos conocidos para aplicaciones que utilizan el TCP son los siguientes:

* DNS es la sigla de
domain name server.
** TFTP es la sigla de trivial file
transfer protocol.

Y algunos valores de puertos conocidos para aplicaciones que utilizan el TCP son los siguientes:

Puertos 20 y 21 para el protocolo de transferencia de ficheros, FTP de datos y de control


respectivamente.
Puerto 23 para el Telnet Remote Login.
Puerto 80 para el HTTP.

Puertos 20 y 21 para el protocolo de transferencia de ficheros, FTP de datos y de control


respectivamente.
Puerto 23 para el Telnet Remote Login.
Puerto 80 para el HTTP.

Evidentemente, el servidor no necesita conocer a priori el puerto de origen,

Evidentemente, el servidor no necesita conocer a priori el puerto de origen,

puesto que se limita a responder a cualquier peticin de cualquier cliente. Este

puesto que se limita a responder a cualquier peticin de cualquier cliente. Este

ltimo informa en la unidad de datos de protocolo (PDU) del nivel de trans-

ltimo informa en la unidad de datos de protocolo (PDU) del nivel de trans-

porte (o bien un datagrama UDP, o bien un segmento TCP) de los puertos de

porte (o bien un datagrama UDP, o bien un segmento TCP) de los puertos de

origen y de destino, de manera que el servidor conocer el puerto de origen

origen y de destino, de manera que el servidor conocer el puerto de origen

una vez haya recibido una peticin.

una vez haya recibido una peticin.

TCP/IP: los protocolos de la red Internet

Los puertos conocidos son


asignados por IANA (Internet
Assigned Numbers Authority).

* DNS es la sigla de
domain name server.
** TFTP es la sigla de trivial file
transfer protocol.

FUOC P03/75064/00977

48

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

48

7. El UDP (user datagram protocol)

7. El UDP (user datagram protocol)

El UDP es un protocolo no orientado a la conexin, de manera que no propor-

El UDP es un protocolo no orientado a la conexin, de manera que no propor-

ciona ningn tipo de control de errores ni de flujo, aunque utiliza mecanis-

ciona ningn tipo de control de errores ni de flujo, aunque utiliza mecanis-

mos de deteccin de errores. En caso de detectar un error, el UDP no entrega

mos de deteccin de errores. En caso de detectar un error, el UDP no entrega

el datagrama a la aplicacin, sino que lo descarta.


Conviene recordar que, por debajo, el UDP est utilizando el IP, que tambin
es un protocolo no orientado a la conexin. Por tanto, se pens en definir un
protocolo del nivel de transporte que permitiera que la aplicacin explotara
este tipo de caractersticas y que fuera cuanto ms simple y sencillo mejor.
La simplicidad del UDP hace que sea ideal para aplicaciones que requieren pocos retrasos (por ejemplo, aplicaciones en tiempo real). El UDP tambin es

No orientado
a comunicacin
El UDP es un protocolo no orientado a la conexin. Ello significa
que cada datagrama UDP existe
con independencia del resto de
los datagramas UDP.

Consultad el TCP , un protocolo


orientado a conexin y mucho ms
complejo que el UDP, en el apartado 8
de este mdulo didctico.

el datagrama a la aplicacin, sino que lo descarta.


Conviene recordar que, por debajo, el UDP est utilizando el IP, que tambin
es un protocolo no orientado a la conexin. Por tanto, se pens en definir un
protocolo del nivel de transporte que permitiera que la aplicacin explotara
este tipo de caractersticas y que fuera cuanto ms simple y sencillo mejor.
La simplicidad del UDP hace que sea ideal para aplicaciones que requieren pocos retrasos (por ejemplo, aplicaciones en tiempo real). El UDP tambin es

ideal para los sistemas que no pueden implementar un sistema tan complejo

ideal para los sistemas que no pueden implementar un sistema tan complejo

como el TCP.

como el TCP.

La figura siguiente muestra la unidad de datos del protocolo UDP y su encap-

La figura siguiente muestra la unidad de datos del protocolo UDP y su encap-

sulamiento en un datagrama IP. Cada operacin de salida de un datagrama

sulamiento en un datagrama IP. Cada operacin de salida de un datagrama

UDP provoca la generacin de un datagrama IP:

UDP provoca la generacin de un datagrama IP:

Las caractersticas ms importantes del UDP son las siguientes:

Las caractersticas ms importantes del UDP son las siguientes:

No garantiza la fiabilidad; es decir, no se tiene la seguridad de que cada da-

No garantiza la fiabilidad; es decir, no se tiene la seguridad de que cada da-

tagrama UDP transmitido llegue a su destino; es un protocolo best-effort: el

tagrama UDP transmitido llegue a su destino; es un protocolo best-effort: el

UDP hace todo lo posible para transferir los datagramas de su aplicacin,

UDP hace todo lo posible para transferir los datagramas de su aplicacin,

pero no garantiza su entrega.

pero no garantiza su entrega.

TCP/IP: los protocolos de la red Internet

No orientado
a comunicacin
El UDP es un protocolo no orientado a la conexin. Ello significa
que cada datagrama UDP existe
con independencia del resto de
los datagramas UDP.

Consultad el TCP , un protocolo


orientado a conexin y mucho ms
complejo que el UDP, en el apartado 8
de este mdulo didctico.

FUOC P03/75064/00977

49

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

49

No preserva la secuencia de la informacin que le proporciona la aplicacin.

No preserva la secuencia de la informacin que le proporciona la aplicacin.

Como est en modo datagrama y utiliza un protocolo por debajo como el IP,

Como est en modo datagrama y utiliza un protocolo por debajo como el IP,

que tambin est en modo datagrama, la aplicacin puede recibir la infor-

que tambin est en modo datagrama, la aplicacin puede recibir la infor-

macin desordenada. La aplicacin debe estar preparada para que haya da-

macin desordenada. La aplicacin debe estar preparada para que haya da-

tagramas que se pierdan, lleguen con retraso o se hayan desordenado.

tagramas que se pierdan, lleguen con retraso o se hayan desordenado.

El datagrama UDP consta de una cabecera y un cuerpo para encapsular los da-

El datagrama UDP consta de una cabecera y un cuerpo para encapsular los da-

tos. La cabecera consta de los elementos siguientes:

tos. La cabecera consta de los elementos siguientes:

Los campos Puerto de origen y Puerto de destino, que identifican las aplica-

Los campos Puerto de origen y Puerto de destino, que identifican las aplica-

ciones en los terminales de origen y de destino. Cada puerto tiene 16 bits.

ciones en los terminales de origen y de destino. Cada puerto tiene 16 bits.

El campo Longitud indica la longitud, en octetos, del datagrama UDP incluyendo la cabecera UDP (es la diferencia de la longitud del datagrama IP
menos la cabecera IP). Como la longitud mxima de un datagrama IP es de
65.535 bytes, con una cabecera estndar de 20 bytes, la longitud mxima
de un datagrama UDP es de 65.515 bytes.
El campo Checksum (16 bits) es opcional y protege tanto la cabecera como
los datos UDP (es preciso recordar que el checksum del datagrama IP slo
cubre la cabecera IP). Cuando el UDP recibe un datagrama y determina que
hay errores, lo descarta y no lo entrega a ninguna aplicacin.

Medida de los buffers


de las aplicaciones
Hay muchas aplicaciones que
limitan la medida de sus buffers
de transmisin y recepcin
por debajo de la medida mxima de un datagrama UDP. Por
ejemplo, es tpico encontrar
aplicaciones que proporcionan, por defecto, medidas
mximas del datagrama UDP
de 8.192 bytes. Este valor proviene de la cantidad de datos
del usuario que el NFS (network
file system) puede leer o escribir por defecto.

El campo Longitud indica la longitud, en octetos, del datagrama UDP incluyendo la cabecera UDP (es la diferencia de la longitud del datagrama IP
menos la cabecera IP). Como la longitud mxima de un datagrama IP es de
65.535 bytes, con una cabecera estndar de 20 bytes, la longitud mxima
de un datagrama UDP es de 65.515 bytes.
El campo Checksum (16 bits) es opcional y protege tanto la cabecera como
los datos UDP (es preciso recordar que el checksum del datagrama IP slo
cubre la cabecera IP). Cuando el UDP recibe un datagrama y determina que
hay errores, lo descarta y no lo entrega a ninguna aplicacin.

Clculo del checksum en el UDP

Clculo del checksum en el UDP

El clculo del checksum en el UDP es muy parecido al clculo del checksum en el IP (suma
en complemento en unos de palabras de 16 bits), con la particularidad de que la longitud
del datagrama UDP puede ser par o impar. En caso de que sea impar, se le aade un 0 al final
del datagrama para calcular el checksum (este 0 no se transmite). Para calcular el checksum, el
UDP utiliza una seudocabecera de 12 bytes con algunos de los campos IP. Esta ltima no
se transmite; el UDP slo la utiliza para calcular el checksum y le sirve para comprobar que
la informacin que le proporciona el IP sea realmente para l.

El clculo del checksum en el UDP es muy parecido al clculo del checksum en el IP (suma
en complemento en unos de palabras de 16 bits), con la particularidad de que la longitud
del datagrama UDP puede ser par o impar. En caso de que sea impar, se le aade un 0 al final
del datagrama para calcular el checksum (este 0 no se transmite). Para calcular el checksum, el
UDP utiliza una seudocabecera de 12 bytes con algunos de los campos IP. Esta ltima no
se transmite; el UDP slo la utiliza para calcular el checksum y le sirve para comprobar que
la informacin que le proporciona el IP sea realmente para l.

Como hemos visto, el UDP no proporciona una entrega de informacin segura

Como hemos visto, el UDP no proporciona una entrega de informacin segura

y fiable a la aplicacin. Sin embargo, puede haber aplicaciones, por ejemplo,

y fiable a la aplicacin. Sin embargo, puede haber aplicaciones, por ejemplo,

interesadas en transmitir informacin en modo multicast o broadcast (a un gru-

interesadas en transmitir informacin en modo multicast o broadcast (a un gru-

po de usuarios o a todos los usuarios de la red). En este caso, s que tiene sen-

po de usuarios o a todos los usuarios de la red). En este caso, s que tiene sen-

tido enviar la informacin a muchos receptores sin esperar una respuesta de

tido enviar la informacin a muchos receptores sin esperar una respuesta de

todos, de manera que es ideal disponer de un protocolo de transporte simple

todos, de manera que es ideal disponer de un protocolo de transporte simple

y sencillo no orientado a la conexin como el UDP.

y sencillo no orientado a la conexin como el UDP.

Por otro lado, alguien podra preguntarse qu ventaja presenta el UDP con res-

Por otro lado, alguien podra preguntarse qu ventaja presenta el UDP con res-

pecto al IP; es decir, por qu se utiliza el UDP si el IP tambin ofrece una co-

pecto al IP; es decir, por qu se utiliza el UDP si el IP tambin ofrece una co-

nexin en modo datagrama. La respuesta es que el UDP ofrece un servicio de

nexin en modo datagrama. La respuesta es que el UDP ofrece un servicio de

multiplexacin a las aplicaciones que el IP no ofrece.

multiplexacin a las aplicaciones que el IP no ofrece.

Ejemplo

Ejemplo

Qu sucede si diferentes aplicaciones se quieren comunicar con otras aplicaciones en


mquinas remotas sin utilizar un servicio fiable como el TCP? El IP identifica la estacin
remota, pero cmo se pueden identificar las aplicaciones destino en esta ltima? La solucin consiste en utilizar el UDP y las direcciones puerto para multiplexar la informacin. Con la direccin puerto es posible identificar cul es la aplicacin de destino en la
estacin remota.

Qu sucede si diferentes aplicaciones se quieren comunicar con otras aplicaciones en


mquinas remotas sin utilizar un servicio fiable como el TCP? El IP identifica la estacin
remota, pero cmo se pueden identificar las aplicaciones destino en esta ltima? La solucin consiste en utilizar el UDP y las direcciones puerto para multiplexar la informacin. Con la direccin puerto es posible identificar cul es la aplicacin de destino en la
estacin remota.

TCP/IP: los protocolos de la red Internet

Medida de los buffers


de las aplicaciones
Hay muchas aplicaciones que
limitan la medida de sus buffers
de transmisin y recepcin
por debajo de la medida mxima de un datagrama UDP. Por
ejemplo, es tpico encontrar
aplicaciones que proporcionan, por defecto, medidas
mximas del datagrama UDP
de 8.192 bytes. Este valor proviene de la cantidad de datos
del usuario que el NFS (network
file system) puede leer o escribir por defecto.

FUOC P03/75064/00977

50

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

50

8. El TCP (transmission control protocol)

8. El TCP (transmission control protocol)

Como hemos podido observar, el UDP no garantiza la entrega de la informa-

Como hemos podido observar, el UDP no garantiza la entrega de la informa-

cin que le proporciona una aplicacin. Tampoco reordena la informacin en

cin que le proporciona una aplicacin. Tampoco reordena la informacin en

caso de que llegue en un orden diferente de aqul en que se ha transmitido.

caso de que llegue en un orden diferente de aqul en que se ha transmitido.

Existen aplicaciones que no pueden tolerar dichas limitaciones. Para superar-

Existen aplicaciones que no pueden tolerar dichas limitaciones. Para superar-

las, el nivel de transporte proporciona un protocolo llamado TCP.

las, el nivel de transporte proporciona un protocolo llamado TCP.

El TCP proporciona fiabilidad a la aplicacin; es decir, garantiza la entrega

El TCP proporciona fiabilidad a la aplicacin; es decir, garantiza la entrega

de toda la informacin en el mismo orden en que ha sido transmitida por

de toda la informacin en el mismo orden en que ha sido transmitida por

la aplicacin de origen. Para conseguir esta fiabilidad, el TCP proporciona

la aplicacin de origen. Para conseguir esta fiabilidad, el TCP proporciona

un servicio orientado a la conexin con un control de flujo y errores.

un servicio orientado a la conexin con un control de flujo y errores.

8.1. El TCP proporciona fiabilidad

8.1. El TCP proporciona fiabilidad

Para proporcionar un servicio fiable a la aplicacin, el TCP se basa en los prin-

Para proporcionar un servicio fiable a la aplicacin, el TCP se basa en los prin-

cipios siguientes:

cipios siguientes:

1) Transmisin libre de error. El TCP debe entregar a la aplicacin de destino

1) Transmisin libre de error. El TCP debe entregar a la aplicacin de destino

exactamente la misma informacin que le entreg la aplicacin de origen. De

exactamente la misma informacin que le entreg la aplicacin de origen. De

hecho, se trata de una entrega casi libre de errores, puesto que puede haber

hecho, se trata de una entrega casi libre de errores, puesto que puede haber

algunos que un mecanismo de deteccin de errores no pueda detectar.

algunos que un mecanismo de deteccin de errores no pueda detectar.

2) Garanta de entrega de la informacin. El TCP garantiza que toda la in-

2) Garanta de entrega de la informacin. El TCP garantiza que toda la in-

formacin transmitida por la aplicacin de origen se entregue a la aplicacin

formacin transmitida por la aplicacin de origen se entregue a la aplicacin

de destino. Si no es posible, el TCP debe avisar a la aplicacin.

de destino. Si no es posible, el TCP debe avisar a la aplicacin.

3) Garanta de mantenimiento de la secuencia de transmisin. El TCP ga-

3) Garanta de mantenimiento de la secuencia de transmisin. El TCP ga-

rantiza la entrega del flujo de informacin en el mismo orden en que le fue

rantiza la entrega del flujo de informacin en el mismo orden en que le fue

entregado por la aplicacin de origen.

entregado por la aplicacin de origen.

4) Eliminacin de duplicados. El TCP garantiza que slo entregar una co-

4) Eliminacin de duplicados. El TCP garantiza que slo entregar una co-

pia de la informacin transmitida a la aplicacin de destino. En caso de que

pia de la informacin transmitida a la aplicacin de destino. En caso de que

reciba copias a causa del funcionamiento de la red o de los protocolos que se

reciba copias a causa del funcionamiento de la red o de los protocolos que se

implementan por debajo del nivel de transporte, el TCP las eliminar.

implementan por debajo del nivel de transporte, el TCP las eliminar.

Las propiedades siguientes del TCP garantizan un servicio de entrega fiable de

Las propiedades siguientes del TCP garantizan un servicio de entrega fiable de

la informacin:

la informacin:

a) El TCP define flujos (stream oriented): la aplicacin organiza los datos de in-

a) El TCP define flujos (stream oriented): la aplicacin organiza los datos de in-

formacin en flujos (streams) de bits estructurados en bytes. En consecuencia,

formacin en flujos (streams) de bits estructurados en bytes. En consecuencia,

el receptor pasa a su aplicacin el mismo flujo de bytes que la aplicacin de

el receptor pasa a su aplicacin el mismo flujo de bytes que la aplicacin de

origen ha pasado al TCP. Por otro lado, la aplicacin no tiene ningn modo

origen ha pasado al TCP. Por otro lado, la aplicacin no tiene ningn modo

de indicar al TCP los lmites en que quiere transferir la informacin: es el TCP

de indicar al TCP los lmites en que quiere transferir la informacin: es el TCP

el que decide en cada momento cuntos bytes transfiere en un segmento.

el que decide en cada momento cuntos bytes transfiere en un segmento.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

51

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

51

b) El TCP est orientado a la conexin: tiene una fase de establecimiento de

b) El TCP est orientado a la conexin: tiene una fase de establecimiento de

la conexin, una de transmisin de datos y una de desconexin.

la conexin, una de transmisin de datos y una de desconexin.

c) El TCP utiliza el concepto buffered transfer: cuando se transfiere informa-

c) El TCP utiliza el concepto buffered transfer: cuando se transfiere informa-

cin, el TCP divide los flujos de datos (bytes) que le pasa la aplicacin en tro-

cin, el TCP divide los flujos de datos (bytes) que le pasa la aplicacin en tro-

zos del tamao que le convenga. El TCP decide el tamao de los segmentos

zos del tamao que le convenga. El TCP decide el tamao de los segmentos

tanto si la aplicacin genera un byte de informacin, como si genera flujos de

tanto si la aplicacin genera un byte de informacin, como si genera flujos de

gran dimensin. En el primer caso, el TCP puede esperar que la memoria in-

gran dimensin. En el primer caso, el TCP puede esperar que la memoria in-

termedia est ms llena antes de transferir la informacin, o bien la puede

termedia est ms llena antes de transferir la informacin, o bien la puede

transferir de inmediato (mecanismo push). En caso de que los flujos sean muy

transferir de inmediato (mecanismo push). En caso de que los flujos sean muy

grandes, el TCP puede dividir la informacin en tamaos ms pequeos antes

grandes, el TCP puede dividir la informacin en tamaos ms pequeos antes

de transferirlos.

de transferirlos.

d)El TCP utiliza una conexin full duplex: la transferencia de informacin es

d)El TCP utiliza una conexin full duplex: la transferencia de informacin es

en ambos sentidos. La aplicacin ve dos flujos independientes. En caso de que

en ambos sentidos. La aplicacin ve dos flujos independientes. En caso de que

la aplicacin cierre uno de los flujos, la conexin pasa a ser half duplex. Ello

la aplicacin cierre uno de los flujos, la conexin pasa a ser half duplex. Ello

significa que uno de los extremos (el que no ha cerrado la conexin) puede

significa que uno de los extremos (el que no ha cerrado la conexin) puede

continuar enviando informacin por el canal, mientras que el otro extremo

continuar enviando informacin por el canal, mientras que el otro extremo

(el que ha cerrado la conexin) se limita a reconocer la informacin. No obs-

(el que ha cerrado la conexin) se limita a reconocer la informacin. No obs-

tante, no es normal encontrar este caso. Lo ms habitual es que, si un extremo

tante, no es normal encontrar este caso. Lo ms habitual es que, si un extremo

cierra la conexin, el otro tambin la cierre.

cierra la conexin, el otro tambin la cierre.

8.2. Formato del segmento TCP

8.2. Formato del segmento TCP

La unidad de informacin del protocolo TCP se llama segmento TCP y su for-

La unidad de informacin del protocolo TCP se llama segmento TCP y su for-

mato el siguiente:

mato el siguiente:

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

52

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

52

El segmento TCP consta de una cabecera y un cuerpo para encapsular datos.

El segmento TCP consta de una cabecera y un cuerpo para encapsular datos.

La cabecera consta de los campos siguientes:

La cabecera consta de los campos siguientes:

a) El campo Puerto de origen identifica la aplicacin en el terminal de origen.

a) El campo Puerto de origen identifica la aplicacin en el terminal de origen.

b) El campo Puerto de destino identifica la aplicacin en el terminal de

b) El campo Puerto de destino identifica la aplicacin en el terminal de

destino.

destino.

c) El campo Nmero de secuencia identifica el primer byte del campo de

c) El campo Nmero de secuencia identifica el primer byte del campo de

datos. En el TCP no se numeran segmentos, sino bytes. Por tanto, el nmero

datos. En el TCP no se numeran segmentos, sino bytes. Por tanto, el nmero

de secuencia identifica el primer byte de los datos que enva el segmento: al

de secuencia identifica el primer byte de los datos que enva el segmento: al

principio de la conexin se asigna un nmero de secuencia inicial (ISN, del

principio de la conexin se asigna un nmero de secuencia inicial (ISN, del

ingls initial sequence number), a partir del cual el TCP numera los bytes con-

ingls initial sequence number), a partir del cual el TCP numera los bytes con-

secutivamente.

secutivamente.

d) El campo Nmero ACK. El TCP reconoce datos por medio de la tcnica de

d) El campo Nmero ACK. El TCP reconoce datos por medio de la tcnica de

piggybacking. Al activar un bit de la cabecera (el bit ACK), el TCP tiene en cuen-

piggybacking. Al activar un bit de la cabecera (el bit ACK), el TCP tiene en cuen-

ta el nmero de secuencia ACK que indica al otro extremo TCP el prximo

ta el nmero de secuencia ACK que indica al otro extremo TCP el prximo

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

53

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

53

byte que est dispuesto a recibir. Dicho de otra manera, el nmero ACK menos

byte que est dispuesto a recibir. Dicho de otra manera, el nmero ACK menos

uno indica el ltimo byte reconocido.

uno indica el ltimo byte reconocido.

e) El campo Longitud de la cabecera indica la longitud de la cabecera, que

e) El campo Longitud de la cabecera indica la longitud de la cabecera, que

puede ser variable. La longitud tpica es de 20 bytes; sin embargo, si el TCP uti-

puede ser variable. La longitud tpica es de 20 bytes; sin embargo, si el TCP uti-

liza el campo de opciones, puede llegar a una longitud mxima de 60 bytes.

liza el campo de opciones, puede llegar a una longitud mxima de 60 bytes.

De este modo, el TCP sabe dnde empiezan los datos.

De este modo, el TCP sabe dnde empiezan los datos.

f) El campo Reservado, tal como su nombre indica, est reservado y se inicia-

f) El campo Reservado, tal como su nombre indica, est reservado y se inicia-

liza con ceros.

liza con ceros.

g) El campo Control est formado por seis indicadores independientes, cada

g) El campo Control est formado por seis indicadores independientes, cada

uno de los cuales seala una funcin especfica del protocolo cuando est ac-

uno de los cuales seala una funcin especfica del protocolo cuando est ac-

tivo (a 1):

tivo (a 1):

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

54

TCP/IP: los protocolos de la red Internet

URG: indica que hay datos urgentes (y el campo Urgent pointer indica la

FUOC P03/75064/00977

54

URG: indica que hay datos urgentes (y el campo Urgent pointer indica la

cantidad de datos urgentes existentes en el segmento).

cantidad de datos urgentes existentes en el segmento).

ACK: cuando este bit est activo, el campo Nmero ACK indica el byte si-

ACK: cuando este bit est activo, el campo Nmero ACK indica el byte si-

guiente que espera recibir la conexin TCP. Si este bit no est activo, el

guiente que espera recibir la conexin TCP. Si este bit no est activo, el

campo Nmero ACK no tiene ningn significado para el TCP.

campo Nmero ACK no tiene ningn significado para el TCP.

PSH: invoca la funcin push en el protocolo. Esta funcin dice al receptor


que entregue a la aplicacin todos los datos que tenga disponibles en la
memoria intermedia de recepcin sin esperar a completarlos con datos
adicionales. De este modo, los datos no esperan en la memoria intermedia receptora hasta completar un segmento de dimensin mxima.

Atencin
No debe confundirse con
el indicador URG, que indica
que la aplicacin ha sealado
una porcin del segmento
como urgente.

PSH: invoca la funcin push en el protocolo. Esta funcin dice al receptor


que entregue a la aplicacin todos los datos que tenga disponibles en la
memoria intermedia de recepcin sin esperar a completarlos con datos
adicionales. De este modo, los datos no esperan en la memoria intermedia receptora hasta completar un segmento de dimensin mxima.

RST: realiza un reset de la conexin.

RST: realiza un reset de la conexin.

SYN: se utiliza para iniciar una conexin y tambin sirve para resincronizar

SYN: se utiliza para iniciar una conexin y tambin sirve para resincronizar

los nmeros de secuencia.

TCP/IP: los protocolos de la red Internet

los nmeros de secuencia.

FIN: indica que el transmisor ha acabado la conexin.

FIN: indica que el transmisor ha acabado la conexin.

h) El campo Ventana indica cuntos bytes componen la ventana de transmi-

h) El campo Ventana indica cuntos bytes componen la ventana de transmi-

sin del protocolo de control de flujo por ventana deslizante. A diferencia de los

sin del protocolo de control de flujo por ventana deslizante. A diferencia de los

protocolos del nivel de enlace, en que la ventana era constante y contaba tra-

protocolos del nivel de enlace, en que la ventana era constante y contaba tra-

mas, en el TCP la ventana es variable y cuenta bytes. Con cada segmento trans-

mas, en el TCP la ventana es variable y cuenta bytes. Con cada segmento trans-

mitido, un extremo TCP advierte al otro extremo de la cantidad de datos que

mitido, un extremo TCP advierte al otro extremo de la cantidad de datos que

est dispuesto a recibir en cada momento. De este modo, el extremo que recibe

est dispuesto a recibir en cada momento. De este modo, el extremo que recibe

un segmento actualiza el tamao de su ventana de transmisin.

un segmento actualiza el tamao de su ventana de transmisin.

i) El campo Checksum se utiliza para detectar errores.

i) El campo Checksum se utiliza para detectar errores.

Atencin
No debe confundirse con
el indicador URG, que indica
que la aplicacin ha sealado
una porcin del segmento
como urgente.

FUOC P03/75064/00977

55

j) El campo Urgent pointer tiene sentido cuando el bit de control URG est
activo, indica que los datos que enva el origen son urgentes e identifica el ltimo byte del campo de datos que tambin lo es. El receptor procesa estos datos lo ms rpido posible. La aplicacin es la que indica que estos ltimos son
urgentes y lo sabe porque el TCP se lo indica en la recepcin.

Agunas aplicaciones que utilizan el urgent pointer son, por ejemplo telnet, rlogin o ftp.
En la librera de sockets, el trfico urgente se denomina trfico fuera de banda (out of band).

TCP/IP: los protocolos de la red Internet

Por ejemplo,...
... si el nmero de secuencia
indica 1.000 y el urgent pointer
indica 200, significa que los
bytes del 1.000 al 1.200 se
consideran urgentes. A partir
del byte 1.201 los datos se
vuelven a considerar normales.

En el mdulo Aplicaciones
Internet de esta asignatura, podis
ver ejemplos de cmo se utilizan las
aplicaciones telnet, rlogin y ftp.

FUOC P03/75064/00977

55

j) El campo Urgent pointer tiene sentido cuando el bit de control URG est
activo, indica que los datos que enva el origen son urgentes e identifica el ltimo byte del campo de datos que tambin lo es. El receptor procesa estos datos lo ms rpido posible. La aplicacin es la que indica que estos ltimos son
urgentes y lo sabe porque el TCP se lo indica en la recepcin.

Agunas aplicaciones que utilizan el urgent pointer son, por ejemplo telnet, rlogin o ftp.
En la librera de sockets, el trfico urgente se denomina trfico fuera de banda (out of band).

k) El campo Opciones TCP permite aadir campos a la cabecera para realizar

k) El campo Opciones TCP permite aadir campos a la cabecera para realizar

las operaciones siguientes:

las operaciones siguientes:

Marcar el tiempo (timestamp) en que se transmiti el segmento y de este

Marcar el tiempo (timestamp) en que se transmiti el segmento y de este

modo poder monitorizar los retrasos que experimentan los segmentos des-

modo poder monitorizar los retrasos que experimentan los segmentos des-

de el origen hasta el destino.

de el origen hasta el destino.

Aumentar el tamao de la ventana.


Indicar el tamao mximo del segmento (MSS*) que el origen est preparado para recibir. Por tanto, el receptor no le puede transmitir segmentos

TCP/IP: los protocolos de la red Internet

Por ejemplo,...
... si el nmero de secuencia
indica 1.000 y el urgent pointer
indica 200, significa que los
bytes del 1.000 al 1.200 se
consideran urgentes. A partir
del byte 1.201 los datos se
vuelven a considerar normales.

En el mdulo Aplicaciones
Internet de esta asignatura, podis
ver ejemplos de cmo se utilizan las
aplicaciones telnet, rlogin y ftp.

Aumentar el tamao de la ventana.

* MSS es la sigla de maximum


segment size.

Indicar el tamao mximo del segmento (MSS*) que el origen est preparado para recibir. Por tanto, el receptor no le puede transmitir segmentos

por encima de este valor.

por encima de este valor.

El tamao mximo del segmento TCP transmitido se especifica durante el establecimiento de la conexin y define la mxima longitud de datos que enviar el TCP.

El tamao mximo del segmento TCP transmitido se especifica durante el establecimiento de la conexin y define la mxima longitud de datos que enviar el TCP.

Actividad

Actividad

Cul es el tamao de un datagrama IP en funcin de MSS?

Cul es el tamao de un datagrama IP en funcin de MSS?

Solucin

Solucin

Si el tamao de los datos TCP es MSS, ser preciso aadirle 20 bytes de la cabecera TCP
ms 20 bytes de la cabecera IP (teniendo en cuenta las cabeceras bsicas sin opciones).
Ello significa que la longitud del datagrama IP ser de MSS + 40 bytes (siempre asumiendo
que tanto el TCP como el IP no utilizan sus campos de opciones).

Si el tamao de los datos TCP es MSS, ser preciso aadirle 20 bytes de la cabecera TCP
ms 20 bytes de la cabecera IP (teniendo en cuenta las cabeceras bsicas sin opciones).
Ello significa que la longitud del datagrama IP ser de MSS + 40 bytes (siempre asumiendo
que tanto el TCP como el IP no utilizan sus campos de opciones).

* MSS es la sigla de maximum


segment size.

FUOC P03/75064/00977

56

TCP/IP: los protocolos de la red Internet

Si no se especifica el tamao mximo durante la transmisin del segmento SYN, se toman por defecto 536 bytes (el tamao por defecto de un datagrama IP es de 576 bytes,
menos los 40 bytes de las cabeceras IP y TCP).

El hecho de elegir el MSS no es trivial. En general, cuanto mayor sea el MSS,

FUOC P03/75064/00977

56

Si no se especifica el tamao mximo durante la transmisin del segmento SYN, se toman por defecto 536 bytes (el tamao por defecto de un datagrama IP es de 576 bytes,
menos los 40 bytes de las cabeceras IP y TCP).

Consultad la MTU en el subapartado


2.1.2 de este mdulo didctico.

El hecho de elegir el MSS no es trivial. En general, cuanto mayor sea el MSS,

mejor, puesto que las cabeceras IP y TCP se amortizan ms. Sin embargo, si la

mejor, puesto que las cabeceras IP y TCP se amortizan ms. Sin embargo, si la

MTU es pequea, ser preciso fragmentar el datagrama IP (es decir, el segmen-

MTU es pequea, ser preciso fragmentar el datagrama IP (es decir, el segmen-

to TCP); por tanto, por norma general no interesa elegir MSS mayores que la

to TCP); por tanto, por norma general no interesa elegir MSS mayores que la

MTU. En este caso, existen diferentes posibilidades:

MTU. En este caso, existen diferentes posibilidades:

1) Buscar la MTU local de la red a que est conectada la estacin y, si hay MTU

1) Buscar la MTU local de la red a que est conectada la estacin y, si hay MTU

ms pequeas hasta el destino, habr fragmentacin.

ms pequeas hasta el destino, habr fragmentacin.

2) Utilizar un mecanismo de bsqueda para averiguar cul es la MTU menor

2) Utilizar un mecanismo de bsqueda para averiguar cul es la MTU menor

desde el origen hasta el destino* y utilizar como MSS esta ltima menos los
40 bytes de cabeceras IP y TCP.

* Este mecanismo se llama,


en ingls, MTU discovery path.

desde el origen hasta el destino* y utilizar como MSS esta ltima menos los
40 bytes de cabeceras IP y TCP.

8.3. Establecimiento de la conexin

8.3. Establecimiento de la conexin

Para establecer una conexin, el TCP utiliza el protocolo three-way handshake.

Para establecer una conexin, el TCP utiliza el protocolo three-way handshake.

Este ltimo necesita tres segmentos TCP para poder establecer la conexin.

Este ltimo necesita tres segmentos TCP para poder establecer la conexin.

Consideremos que el servidor est en un estado de escucha, llamado listen, y

Consideremos que el servidor est en un estado de escucha, llamado listen, y

que el cliente quiere establecer una conexin con el servidor. El TCP de la m-

que el cliente quiere establecer una conexin con el servidor. El TCP de la m-

quina cliente iniciar la peticin de conexin TCP, que ser contestada por el

quina cliente iniciar la peticin de conexin TCP, que ser contestada por el

TCP de la mquina servidor.

TCP de la mquina servidor.

Para que el cliente TCP pueda establecer una conexin TCP con el servidor, se
siguen los pasos siguientes:
1) Peticin de la conexin
El TCP cliente enva un segmento de peticin de conexin al servidor. Dicho
segmento, que se conoce como segmento SYN porque tiene activado el bit SYN

TCP/IP: los protocolos de la red Internet

Segmento SYN
Este segmento especifica ms
parmetros, tales como el puerto del servidor al que se quiere
conectar el cliente, y suele especificar tambin la medida mxima del segmento (MSS) que el
cliente transmitir.

Para que el cliente TCP pueda establecer una conexin TCP con el servidor, se
siguen los pasos siguientes:
1) Peticin de la conexin
El TCP cliente enva un segmento de peticin de conexin al servidor. Dicho
segmento, que se conoce como segmento SYN porque tiene activado el bit SYN

Consultad la MTU en el subapartado


2.1.2 de este mdulo didctico.

* Este mecanismo se llama,


en ingls, MTU discovery path.

Segmento SYN
Este segmento especifica ms
parmetros, tales como el puerto del servidor al que se quiere
conectar el cliente, y suele especificar tambin la medida mxima del segmento (MSS) que el
cliente transmitir.

FUOC P03/75064/00977

57

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

57

en el campo Control de la cabecera del segmento TCP, especifica el nmero de

en el campo Control de la cabecera del segmento TCP, especifica el nmero de

secuencia inicial TCP del cliente (ISN).

secuencia inicial TCP del cliente (ISN).

El nmero de secuencia inicial se elige al azar. La razn es muy sencilla. Hay

El nmero de secuencia inicial se elige al azar. La razn es muy sencilla. Hay

paquetes que pueden sobrevivir en la red una vez se ha cerrado la conexin

paquetes que pueden sobrevivir en la red una vez se ha cerrado la conexin

TCP (incluso si ha sido a causa de una cada del sistema). Es preciso asegurarse

TCP (incluso si ha sido a causa de una cada del sistema). Es preciso asegurarse

de que una conexin nueva elige un nmero de secuencia inicial que no exis-

de que una conexin nueva elige un nmero de secuencia inicial que no exis-

ta. El TCP recomienda utilizar un nmero de secuencia inicial basado en una

ta. El TCP recomienda utilizar un nmero de secuencia inicial basado en una

variable que se incrementa una cantidad x cada y tiempo (por ejemplo, en

variable que se incrementa una cantidad x cada y tiempo (por ejemplo, en

4.4BSD hay un contador que se incrementa cada 8 ms).

4.4BSD hay un contador que se incrementa cada 8 ms).

Si el sistema cae, pasados unos segundos vuelve a estar en funcionamiento e

Si el sistema cae, pasados unos segundos vuelve a estar en funcionamiento e

inmediatamente se establece una conexin nueva utilizando el mismo puerto

inmediatamente se establece una conexin nueva utilizando el mismo puerto

y la misma direccin IP, se podra interpretar que los segmentos TCP que han

y la misma direccin IP, se podra interpretar que los segmentos TCP que han

quedado retrasados en la red y que ya existan con anterioridad a la cada de

quedado retrasados en la red y que ya existan con anterioridad a la cada de

la mquina, pertenecen a la conexin nueva, lo que provocara la confusin y

la mquina, pertenecen a la conexin nueva, lo que provocara la confusin y

el mal funcionamiento de dicha conexin. Ello sucedera incluso con inde-

el mal funcionamiento de dicha conexin. Ello sucedera incluso con inde-

pendencia del nmero de secuencia inicial elegido.

pendencia del nmero de secuencia inicial elegido.

Con el objetivo de protegerse de esta situacin, se combinan dos tcnicas: una

Con el objetivo de protegerse de esta situacin, se combinan dos tcnicas: una

consiste en elegir el nmero de secuencia inicial de manera aleatoria y la otra

consiste en elegir el nmero de secuencia inicial de manera aleatoria y la otra

es el denominado quiet time, que consiste en que el TCP no crea ninguna co-

es el denominado quiet time, que consiste en que el TCP no crea ninguna co-

nexin nueva despus de un rebote de mquinas hasta que no transcurre un

nexin nueva despus de un rebote de mquinas hasta que no transcurre un

tiempo determinado denominado MSL* o tiempo mximo de vida de un segmento. De este modo, se asegura de que no recibir segmentos antiguos de
otras conexiones.
El MSL depende de la implementacin; sin embargo, los valores normales son, aproximadamente, de 30 segundos, 1 minuto 2 minutos. No obstante, existen muchas implementaciones que no tienen en cuenta esta situacin, puesto que consideran que un
rebote de mquinas dura ms tiempo que el MSL.

* MSL es la sigla de maximum


segment lifetime.

tiempo determinado denominado MSL* o tiempo mximo de vida de un segmento. De este modo, se asegura de que no recibir segmentos antiguos de
otras conexiones.
El MSL depende de la implementacin; sin embargo, los valores normales son, aproximadamente, de 30 segundos, 1 minuto 2 minutos. No obstante, existen muchas implementaciones que no tienen en cuenta esta situacin, puesto que consideran que un
rebote de mquinas dura ms tiempo que el MSL.

2) Confirmacin de la conexin

2) Confirmacin de la conexin

El servidor responde a la peticin de establecimiento de la conexin con un

El servidor responde a la peticin de establecimiento de la conexin con un

segmento SYN que indica el nmero de secuencia inicial que utilizar.

segmento SYN que indica el nmero de secuencia inicial que utilizar.

Asimismo, este segmento contiene un reconocimiento (ACK) del segmento SYN

Asimismo, este segmento contiene un reconocimiento (ACK) del segmento SYN

del cliente que indica el ISN del cliente ms 1 (el nmero de secuencia inicial del

del cliente que indica el ISN del cliente ms 1 (el nmero de secuencia inicial del

cliente ms 1).

cliente ms 1).

Conviene recordar que el TCP numera los ACK con el nmero de secuencia del prximo
byte que espera recibir (en este caso, el servidor espera que el prximo byte enviado por
el cliente sea J + 1). En la figura anterior, sera el segmento SYN (K), ACK ( J + 1), donde
K es el ISN elegido por el TCP servidor.

Conviene recordar que el TCP numera los ACK con el nmero de secuencia del prximo
byte que espera recibir (en este caso, el servidor espera que el prximo byte enviado por
el cliente sea J + 1). En la figura anterior, sera el segmento SYN (K), ACK ( J + 1), donde
K es el ISN elegido por el TCP servidor.

3) Reconocimiento de la conexin

3) Reconocimiento de la conexin

El cliente reconoce el segmento SYN (K) del servidor con un reconocimiento que

El cliente reconoce el segmento SYN (K) del servidor con un reconocimiento que

contiene el ISN servidor ms 1. En la figura anterior, sera el segmento ACK (K + 1).

contiene el ISN servidor ms 1. En la figura anterior, sera el segmento ACK (K + 1).

TCP/IP: los protocolos de la red Internet

* MSL es la sigla de maximum


segment lifetime.

58

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

58

FUOC P03/75064/00977

Se dice que quien enva el primer segmento SYN (en este caso, el cliente) efec-

Se dice que quien enva el primer segmento SYN (en este caso, el cliente) efec-

ta una apertura activa (active open), mientras que quien recibe el primer seg-

ta una apertura activa (active open), mientras que quien recibe el primer seg-

mento SYN y enva el prximo segmento SYN (en este caso, el servidor) lleva

mento SYN y enva el prximo segmento SYN (en este caso, el servidor) lleva

a cabo una apertura pasiva (passive open).

a cabo una apertura pasiva (passive open).

Puede darse el caso de que ambos extremos efecten una apertura activa en el

Puede darse el caso de que ambos extremos efecten una apertura activa en el

mismo momento. Esta situacin se denomina apertura simultnea (simultaneous

mismo momento. Esta situacin se denomina apertura simultnea (simultaneous

open).

open).

Ahora ya se ha establecido la conexin entre el cliente y el servidor.

Ahora ya se ha establecido la conexin entre el cliente y el servidor.

Monitorizacin del establecimiento de una conexin utilizando


el programa tcpdump
Utilizaremos el programa tcpdump para ver cmo funciona el protocolo de establecimiento de una conexin.

Monitorizacin del establecimiento de una conexin utilizando


el programa tcpdump
En el anexo 1 de este mdulo
didctico podis encontrar una
descripcin del programa tcpdump.

Asumimos que nos hemos conectado a una mquina llamada argos y hacemos un rlogin
a la mquina helios.

Utilizaremos el programa tcpdump para ver cmo funciona el protocolo de establecimiento de una conexin.

argos % rlogin helios

Las primeras lneas que obtenemos con el tcpdump son las siguientes:

Las primeras lneas que obtenemos con el tcpdump son las siguientes:

15:56:54.796091 argos.1023 > helios.login: S 3541904332: 3541904332


(0) win 31744 <mss 1460>

15:56:54.796091 argos.1023 > helios.login: S 3541904332: 3541904332


(0) win 31744 <mss 1460>

15:56:54.796091 helios.login > argos.1023: S 548133143: 548133143


(0) ack 33541904333 win 8760 <mss 1460>

15:56:54.796091 helios.login > argos.1023: S 548133143: 548133143


(0) ack 33541904333 win 8760 <mss 1460>

15:56:54.796091 argos.1023 > helios.login: . ack 548133144 win 31744

15:56:54.796091 argos.1023 > helios.login: . ack 548133144 win 31744

La interpretacin de las lneas es la siguiente:

La interpretacin de las lneas es la siguiente:

1) argos, desde el puerto 1.023, enva a helios una peticin de conexin por medio de un
segmento SYN. El nmero de secuencia inicial (ISN) elegido por argos es el 3.541.904.332,
y argos anuncia que puede recibir 31.744 bytes sin reconocerlos y que espera recibir segmentos con un tamao mximo de 1.460 bytes.

1) argos, desde el puerto 1.023, enva a helios una peticin de conexin por medio de un
segmento SYN. El nmero de secuencia inicial (ISN) elegido por argos es el 3.541.904.332,
y argos anuncia que puede recibir 31.744 bytes sin reconocerlos y que espera recibir segmentos con un tamao mximo de 1.460 bytes.

2) helios responde con un segmento SYN eligiendo como ISN el nmero 548.133.143 y
responde con un ACK con el byte siguiente que espera recibir de argos, el 3.541.904.333
(3.541.904.332 + 1). Anuncia que puede recibir 8.760 bytes y que espera recibir segmentos con un tamao mximo de 1.460 bytes.

2) helios responde con un segmento SYN eligiendo como ISN el nmero 548.133.143 y
responde con un ACK con el byte siguiente que espera recibir de argos, el 3.541.904.333
(3.541.904.332 + 1). Anuncia que puede recibir 8.760 bytes y que espera recibir segmentos con un tamao mximo de 1.460 bytes.

3) argos reconoce el segmento SYN con un segmento en el que espera recibir el byte
548.133.144 (548.133.143 + 1). argos vuelve a advertir que est dispuesto a recibir hasta
31.744 bytes.

3) argos reconoce el segmento SYN con un segmento en el que espera recibir el byte
548.133.144 (548.133.143 + 1). argos vuelve a advertir que est dispuesto a recibir hasta
31.744 bytes.

A continuacin, empezara el intercambio de informacin entre el cliente y el servidor


(por ejempo peticiones de login, contrasea, prompt de la mquina, etc.).

A continuacin, empezara el intercambio de informacin entre el cliente y el servidor


(por ejempo peticiones de login, contrasea, prompt de la mquina, etc.).

Actividad

Actividad

Utilizad el programa tcpdump para ver el establecimiento de una conexin. Con esta finalidad, estableced una conexin con aplicaciones diferentes (telnet, ftp, rlogin, etc.) y
monitorizad la conexin. Observad los segmentos de inicio de la conexin, el valor del
nmero de secuencia inicial, el del nmero ACK inicial y el tamao de la ventana.

Utilizad el programa tcpdump para ver el establecimiento de una conexin. Con esta finalidad, estableced una conexin con aplicaciones diferentes (telnet, ftp, rlogin, etc.) y
monitorizad la conexin. Observad los segmentos de inicio de la conexin, el valor del
nmero de secuencia inicial, el del nmero ACK inicial y el tamao de la ventana.
Recordad

Cuando la transferencia de la informacin ha finalizado, el TCP dispone de un


protocolo de terminacin de la conexin para cerrarla.

En el anexo 1 de este mdulo


didctico podis encontrar una
descripcin del programa tcpdump.

Asumimos que nos hemos conectado a una mquina llamada argos y hacemos un rlogin
a la mquina helios.

argos % rlogin helios

8.4. Terminacin de la conexin

TCP/IP: los protocolos de la red Internet

Un sistema orientado a la conexin efecta una fase de establecimiento de la conexin,


una fase de transferencia de
la informacin y una fase de
cierre de la conexin.

Recordad

8.4. Terminacin de la conexin


Cuando la transferencia de la informacin ha finalizado, el TCP dispone de un
protocolo de terminacin de la conexin para cerrarla.

Un sistema orientado a la conexin efecta una fase de establecimiento de la conexin,


una fase de transferencia de
la informacin y una fase de
cierre de la conexin.

FUOC P03/75064/00977

59

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

59

En una conexin TCP full duplex, en la que los datos fluyen en ambos sentidos,

En una conexin TCP full duplex, en la que los datos fluyen en ambos sentidos,

independientes el uno del otro, cualquier conexin debe cerrarse indepen-

independientes el uno del otro, cualquier conexin debe cerrarse indepen-

dientemente.

dientemente.

Es preciso tener en cuenta que tanto el cliente como el servidor pueden cerrar

Es preciso tener en cuenta que tanto el cliente como el servidor pueden cerrar

la conexin. Sin embargo, la situacin normal es que la aplicacin cliente ini-

la conexin. Sin embargo, la situacin normal es que la aplicacin cliente ini-

cie la peticin de conexin y tenga, posiblemente, un usuario interactivo que

cie la peticin de conexin y tenga, posiblemente, un usuario interactivo que

le pida su cierre por medio, por ejemplo, de una instruccin*. Por tanto, supongamos que es el cliente quien pide cerrar la conexin (si fuera el servidor,

* En un telnet esta instruccin sera


un logout, en un ftp sera
haciendo un bye, etc.

sera similar). Los pasos que se siguen son los siguientes:


1) El cliente enva un segmento TCP del tipo FIN con el nmero de secuencia
correspondiente (J). Ello significa que a partir de este momento no habr ms
datos que fluyan en este sentido (cliente servidor).
2) El servidor enva una confirmacin del cierre por medio de un ACK con el

le pida su cierre por medio, por ejemplo, de una instruccin*. Por tanto, supongamos que es el cliente quien pide cerrar la conexin (si fuera el servidor,

TCP/IP: los protocolos de la red Internet

* En un telnet esta instruccin sera


un logout, en un ftp sera
haciendo un bye, etc.

sera similar). Los pasos que se siguen son los siguientes:

Un segmento FIN...
... se llama de este modo porque tiene activado el bit FIN
en el campo Control de la cabecera del segmento TCP.

1) El cliente enva un segmento TCP del tipo FIN con el nmero de secuencia
correspondiente (J). Ello significa que a partir de este momento no habr ms
datos que fluyan en este sentido (cliente servidor).
2) El servidor enva una confirmacin del cierre por medio de un ACK con el

nmero de secuencia recibido ms 1 (J + 1).

nmero de secuencia recibido ms 1 (J + 1).

El TCP servidor indica a su aplicacin que el cliente cierra la conexin. La apli-

El TCP servidor indica a su aplicacin que el cliente cierra la conexin. La apli-

cacin servidor indica a su TCP que la cierre a continuacin.

cacin servidor indica a su TCP que la cierre a continuacin.

3) El servidor enva un segmento TCP del tipo FIN al cliente con el nmero

3) El servidor enva un segmento TCP del tipo FIN al cliente con el nmero

de secuencia correspondiente (K).

de secuencia correspondiente (K).

4) El TCP cliente responde automticamente con un ACK (K + 1).

4) El TCP cliente responde automticamente con un ACK (K + 1).

Se dice que quien enva el primer segmento FIN (en este caso el cliente) lleva

Se dice que quien enva el primer segmento FIN (en este caso el cliente) lleva

a cabo un cierre activo (active close), mientras que quien lo recibe (en este caso

a cabo un cierre activo (active close), mientras que quien lo recibe (en este caso

el servidor) realiza un cierre pasivo (passive close).

el servidor) realiza un cierre pasivo (passive close).

Cabe destacar que la conexin que efecta el cierre activo entra en un estado

Cabe destacar que la conexin que efecta el cierre activo entra en un estado

denominado TIME_WAIT, de manera que deber esperar un tiempo (por nor-

denominado TIME_WAIT, de manera que deber esperar un tiempo (por nor-

Un segmento FIN...
... se llama de este modo porque tiene activado el bit FIN
en el campo Control de la cabecera del segmento TCP.

60

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

60

FUOC P03/75064/00977

ma general, una o dos veces el MSL) antes de utilizar de nuevo el mismo puer-

ma general, una o dos veces el MSL) antes de utilizar de nuevo el mismo puer-

to. Lo ms habitual es que sea el cliente quien efecte el cierre activo. Como

to. Lo ms habitual es que sea el cliente quien efecte el cierre activo. Como

los clientes suelen utilizar puertos locales efmeros, este tiempo de espera no

los clientes suelen utilizar puertos locales efmeros, este tiempo de espera no

les afecta. En cambio, si es el servidor quien efecta el cierre activo, podemos

les afecta. En cambio, si es el servidor quien efecta el cierre activo, podemos

encontrarnos con que no se pueda reinicializar durante 1 2 minutos. Ello su-

encontrarnos con que no se pueda reinicializar durante 1 2 minutos. Ello su-

cede porque el servidor utiliza puertos conocidos que no se pueden volver a

cede porque el servidor utiliza puertos conocidos que no se pueden volver a

reasignar hasta que no acabe el procedimiento quiet time y se salga del estado

reasignar hasta que no acabe el procedimiento quiet time y se salga del estado

TIME_WAIT.

TIME_WAIT.

Es posible que slo cierre la conexin (salida de datos) uno de los extremos,
mientras que el otro (recepcin) se mantiene abierto. Esta situacin se denomina
half-close, pero hay pocas aplicaciones que se aprovechen de ella. Lo ms normal es que ambas aplicaciones cierren sus canales de comunicaciones. Asimismo, puede darse el caso de que dos extremos efecten un cierre activo. Esta
situacin se denomina cierre simultneo (simultaneous close).

Lectura complementaria
Podis encontrar una
seccin dedicada a este tema
en el libro:
W.R. Stevens (1998). TCP/IP
Illustrated (vol. 1: The
Protocols, cap. 19, pg.
252). Wilmington: AddisonWesley, 1994.

Es posible que slo cierre la conexin (salida de datos) uno de los extremos,
mientras que el otro (recepcin) se mantiene abierto. Esta situacin se denomina
half-close, pero hay pocas aplicaciones que se aprovechen de ella. Lo ms normal es que ambas aplicaciones cierren sus canales de comunicaciones. Asimismo, puede darse el caso de que dos extremos efecten un cierre activo. Esta
situacin se denomina cierre simultneo (simultaneous close).

Monitorizacin de la terminacin de una conexin utilizando


el programa tcpdump

Monitorizacin de la terminacin de una conexin utilizando


el programa tcpdump

Utilizaremos el programa tcpdump para ver cmo funciona el protocolo de terminacin


de la conexin. Asumimos que en el rlogin del ejemplo de establecimiento de la conexin helios hace un logout (pide el cierre de la conexin).

Utilizaremos el programa tcpdump para ver cmo funciona el protocolo de terminacin


de la conexin. Asumimos que en el rlogin del ejemplo de establecimiento de la conexin helios hace un logout (pide el cierre de la conexin).

helios % logout

15:57:01.616091 helios.login > argos.1023: F 1417: 1417 (0) ack


41 win 8760

15:57:01.616091 argos.1023 > helios.login: .ack 1418 win 31744

15:57:01.616091 argos.1023 > helios.login: .ack 1418 win 31744

15:57:01.616091 argos.1023 > helis.login: F 41:41 (0) ack 580


31744

15:57:01.616091 argos.1023 > helis.login: F 41:41 (0) ack 580


31744

15:57:01.616091 helios.login > argos.1023: .ack 42 win 8760

15:57:01.616091 helios.login > argos.1023: .ack 42 win 8760

2) argos enva un reconocimiento por medio de un segmento con ACK 1.418 (1.417 + 1)
y advierte una ventana de 31.744 bytes.

Podis encontrar una


seccin dedicada a este tema
en el libro:
W.R. Stevens (1998). TCP/IP
Illustrated (vol. 1: The
Protocols, cap. 19, pg.
252). Wilmington: AddisonWesley, 1994.

Las lneas que obtenemos con el tcpdump son las siguientes:

15:57:01.616091 helios.login > argos.1023: F 1417: 1417 (0) ack


41 win 8760

1) helios enva un segmento con el indicador F (FIN). El nmero de secuencia es el 1.417


y enva 0 bytes de datos. Espera recibir el byte 41 de argos y advierte una ventana de
8.760 bytes.

Lectura complementaria

helios % logout

Las lneas que obtenemos con el tcpdump son las siguientes:

La interpretacin es la siguiente:

TCP/IP: los protocolos de la red Internet

Nota
La notacin de nmeros de secuencia y nmeros ACK se establece a partir del ISN; es
decir, un nmero de secuencia
1.417 indica un nmero de secuencia ISN + 1.417.

La interpretacin es la siguiente:
1) helios enva un segmento con el indicador F (FIN). El nmero de secuencia es el 1.417
y enva 0 bytes de datos. Espera recibir el byte 41 de argos y advierte una ventana de
8.760 bytes.
2) argos enva un reconocimiento por medio de un segmento con ACK 1.418 (1.417 + 1)
y advierte una ventana de 31.744 bytes.

3) Ahora le toca a argos cerrar su conexin TCP. Con esta finalidad, enva un segmento
con el indicador F (FIN) a helios. El nmero de secuencia es el 41 (es el que esperar helios)
y enva 0 bytes de datos. Advierte una ventana de 31.744 bytes.

3) Ahora le toca a argos cerrar su conexin TCP. Con esta finalidad, enva un segmento
con el indicador F (FIN) a helios. El nmero de secuencia es el 41 (es el que esperar helios)
y enva 0 bytes de datos. Advierte una ventana de 31.744 bytes.

4) helios recibe el segmento, lo reconoce con el ACK numerado como 42 (41 + 1) y advierte una ventana de 8.760 bytes.

4) helios recibe el segmento, lo reconoce con el ACK numerado como 42 (41 + 1) y advierte una ventana de 8.760 bytes.

helios ha efectuado un cierre activo, mientras que argos ha efectuado un cierre pasivo.

helios ha efectuado un cierre activo, mientras que argos ha efectuado un cierre pasivo.

Actividad

Actividad

Utilizad el programa tcpdump para ver el cierre de una conexin. Con esta finalidad, estableced una conexin con diferentes aplicaciones (telnet, rlogin, etc.) y supervisadla.

Utilizad el programa tcpdump para ver el cierre de una conexin. Con esta finalidad, estableced una conexin con diferentes aplicaciones (telnet, rlogin, etc.) y supervisadla.

Nota
La notacin de nmeros de secuencia y nmeros ACK se establece a partir del ISN; es
decir, un nmero de secuencia
1.417 indica un nmero de secuencia ISN + 1.417.

FUOC P03/75064/00977

61

TCP/IP: los protocolos de la red Internet

8.5. Diagrama de estados del TCP


En el diagrama de estados del TCP se describen los diferentes estados por los que
pasa una conexin desde su establecimiento hasta su terminacin, incluyendo
la etapa de transferencia de la informacin. Los nombres de los estados TCP son
los mismos que se pueden consultar con la llamada al sistema netstat.

FUOC P03/75064/00977

61

TCP/IP: los protocolos de la red Internet

8.5. Diagrama de estados del TCP

Lectura complementaria
W.R. Stevens (1998). The
Protocols TCP/IP Illustrated
(vol. 1). Wilmington:
Addison-Wesley, 1994.

En el diagrama de estados del TCP se describen los diferentes estados por los que
pasa una conexin desde su establecimiento hasta su terminacin, incluyendo
la etapa de transferencia de la informacin. Los nombres de los estados TCP son
los mismos que se pueden consultar con la llamada al sistema netstat.

El estado ESTABLISHED se corresponde con la transferencia de la informacin.

El estado ESTABLISHED se corresponde con la transferencia de la informacin.

El resto de los estados se corresponden con el establecimiento y la terminacin

El resto de los estados se corresponden con el establecimiento y la terminacin

de la conexin, teniendo en cuenta todas las maneras posibles de establecer y

de la conexin, teniendo en cuenta todas las maneras posibles de establecer y

cerrar una conexin en el TCP. Los smbolos SYN, RST, FIN y ACK se corres-

cerrar una conexin en el TCP. Los smbolos SYN, RST, FIN y ACK se corres-

ponden con los bits de indicacin de la cabecera TCP.

ponden con los bits de indicacin de la cabecera TCP.

Un ejemplo de cmo se interpreta este diagrama sera el protocolo de termina-

Un ejemplo de cmo se interpreta este diagrama sera el protocolo de termina-

cin de una conexin, en que ya vimos que el extremo TCP que peda el cierre

cin de una conexin, en que ya vimos que el extremo TCP que peda el cierre

efectuaba un cierre activo. Ello significa que pasara del estado ESTABLISHED al

efectuaba un cierre activo. Ello significa que pasara del estado ESTABLISHED al

estado FIN_WAIT_1 enviando un segmento FIN.

estado FIN_WAIT_1 enviando un segmento FIN.

Lectura complementaria
W.R. Stevens (1998). The
Protocols TCP/IP Illustrated
(vol. 1). Wilmington:
Addison-Wesley, 1994.

FUOC P03/75064/00977

62

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

62

Desde aqu puede pasar a uno de los tres estados que describen cmo se puede

Desde aqu puede pasar a uno de los tres estados que describen cmo se puede

realizar un cierre activo dependiendo de cmo se cierre la conexin:

realizar un cierre activo dependiendo de cmo se cierre la conexin:

Con un cierre simultneo (simultaneous close), pasa a CLOSING.

Con un cierre simultneo (simultaneous close), pasa a CLOSING.

Con la recepcin de un ACK, pasa a FIN_WAIT_2, donde espera recibir un FIN.

Con la recepcin de un ACK, pasa a FIN_WAIT_2, donde espera recibir un FIN.

Con la recepcin de un FIN y un ACK, pasa a TIME_WAIT, donde espera


dos veces el MSL antes de liberar el puerto.

Consultad el MSL en el subapartado


8.3 de este mdulo didctico.

Con la recepcin de un FIN y un ACK, pasa a TIME_WAIT, donde espera


dos veces el MSL antes de liberar el puerto.

Ya hemos visto que el extremo TCP que recibe un FIN lleva a cabo un cierre

Ya hemos visto que el extremo TCP que recibe un FIN lleva a cabo un cierre

pasivo. Por tanto, pasa del estado ESTABLISHED al estado CLOSE_WAIT en-

pasivo. Por tanto, pasa del estado ESTABLISHED al estado CLOSE_WAIT en-

viando los indicadores ACK y FIN correspondientes para acabar la conexin.

viando los indicadores ACK y FIN correspondientes para acabar la conexin.

La fase de establecimiento tambin se puede seguir con facilidad por medio

La fase de establecimiento tambin se puede seguir con facilidad por medio

del diagrama de estados, teniendo en cuenta qu extremo efecta el cierre ac-

del diagrama de estados, teniendo en cuenta qu extremo efecta el cierre ac-

tivo y cul lleva a cabo el cierre pasivo.

tivo y cul lleva a cabo el cierre pasivo.

Actividad

Actividad

Utilizad el programa netstat para ver el estado de las conexiones TCP que tengis en
este momento. Si no tenis ninguna aplicacin en la red, conectaos a algn servidor
con la web, haced un ftp o un telnet a alguna mquina.

Utilizad el programa netstat para ver el estado de las conexiones TCP que tengis en
este momento. Si no tenis ninguna aplicacin en la red, conectaos a algn servidor
con la web, haced un ftp o un telnet a alguna mquina.

8.6. Transferencia de la informacin

8.6. Transferencia de la informacin

Una vez establecida la conexin, el TCP puede empezar la transferencia de seg-

Una vez establecida la conexin, el TCP puede empezar la transferencia de seg-

mentos TCP en ambos sentidos. Para tansmitir informacin de manera fiable,

mentos TCP en ambos sentidos. Para tansmitir informacin de manera fiable,

el TCP implementa protocolos de control de errores y de flujo. Los pasos que

el TCP implementa protocolos de control de errores y de flujo. Los pasos que

sigue el TCP para transferir la informacin son los siguientes:

sigue el TCP para transferir la informacin son los siguientes:

1) Cuando el TCP enva datos, mantiene un temporizador (timeout) hasta

1) Cuando el TCP enva datos, mantiene un temporizador (timeout) hasta

que recibe un reconocimiento (ACK) del receptor. Si el temporizador salta, el

que recibe un reconocimiento (ACK) del receptor. Si el temporizador salta, el

TCP retransmite los datos.

TCP retransmite los datos.

2) Cuando el TCP recibe un segmento de datos, enva un reconocimiento.

2) Cuando el TCP recibe un segmento de datos, enva un reconocimiento.

Este ltimo se puede retornar retrasado (no de inmediato) si el TCP lo consi-

Este ltimo se puede retornar retrasado (no de inmediato) si el TCP lo consi-

dera necesario.

dera necesario.

3) Si un segmento recibido es incorrecto (el checksum lo indica), el TCP des-

3) Si un segmento recibido es incorrecto (el checksum lo indica), el TCP des-

carta el segmento y no debera enviar la informacin. De hecho, como el TCP

carta el segmento y no debera enviar la informacin. De hecho, como el TCP

utiliza la tcnica de piggybacking (aprovecha los segmentos de datos que viajan

utiliza la tcnica de piggybacking (aprovecha los segmentos de datos que viajan

en sentido contrario), lo que hace es retornar un segmento con el mismo n-

en sentido contrario), lo que hace es retornar un segmento con el mismo n-

mero de ACK que haba reconocido la ltima vez. El transmisor ver un ACK
con un nmero repetido e interpretar que no le reconocen la informacin*.

* Este nmero se denomina


ACK duplicado.

mero de ACK que haba reconocido la ltima vez. El transmisor ver un ACK
con un nmero repetido e interpretar que no le reconocen la informacin*.

En caso de que no tuviera datos para enviar en sentido contrario, el TCP puede

En caso de que no tuviera datos para enviar en sentido contrario, el TCP puede

enviar un segmento que no contenga informacin (con un campo de datos de

enviar un segmento que no contenga informacin (con un campo de datos de

TCP/IP: los protocolos de la red Internet

Consultad el MSL en el subapartado


8.3 de este mdulo didctico.

* Este nmero se denomina


ACK duplicado.

FUOC P03/75064/00977

63

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

63

cero bytes). Este segmento tendra el indicador ACK activado y reconocera los

cero bytes). Este segmento tendra el indicador ACK activado y reconocera los

bytes pertinentes en el campo Nmero de ACK. El nmero de secuencia no se

bytes pertinentes en el campo Nmero de ACK. El nmero de secuencia no se

habra incrementado, puesto que no enva datos.

habra incrementado, puesto que no enva datos.

4) Si los segmentos llegan desordenados (por debajo hay el IP, que est no

4) Si los segmentos llegan desordenados (por debajo hay el IP, que est no

orientado a la conexin), el TCP reordena los segmentos y pasa los datos

orientado a la conexin), el TCP reordena los segmentos y pasa los datos

(bytes) correctamente ordenados a la aplicacin. Si recibe segmentos duplica-

(bytes) correctamente ordenados a la aplicacin. Si recibe segmentos duplica-

dos, el TCP descarta las copias.

dos, el TCP descarta las copias.

5) Como el TCP posee una memoria limitada, es necesario que efecte un control

5) Como el TCP posee una memoria limitada, es necesario que efecte un control

de flujo. Con esta finalidad, cada extremo avisa de los datos que est dispuesto a

de flujo. Con esta finalidad, cada extremo avisa de los datos que est dispuesto a

recibir en cada momento utilizando el campo Ventana (se trata de un mecanismo

recibir en cada momento utilizando el campo Ventana (se trata de un mecanismo

de ventana deslizante basado en bytes que explicaremos ms adelante).

de ventana deslizante basado en bytes que explicaremos ms adelante).

El tipo de informacin que es preciso enviar puede dividirse en datos interactivos* y datos de gran volumen o bulk data**. La diferencia entre ellos radica
en la cantidad de informacin que se transmite. Los datos interactivos transmiten pocos bytes de informacin (alrededor de 10), mientras que los datos de

* Por ejemplo, los que transmiten


aplicaciones tales como telnet
o rlogin.
** Por ejemplo, los que transmiten
aplicaciones como correo
electrnico o ftp.

El tipo de informacin que es preciso enviar puede dividirse en datos interactivos* y datos de gran volumen o bulk data**. La diferencia entre ellos radica
en la cantidad de informacin que se transmite. Los datos interactivos transmiten pocos bytes de informacin (alrededor de 10), mientras que los datos de

gran volumen transmiten gran cantidad de datos (ocupan la totalidad del ta-

gran volumen transmiten gran cantidad de datos (ocupan la totalidad del ta-

mao del segmento TCP). Conviene considerar que no es lo mismo cargar la

mao del segmento TCP). Conviene considerar que no es lo mismo cargar la

red con paquetes pequeos de informacin que con paquetes grandes. El TCP

red con paquetes pequeos de informacin que con paquetes grandes. El TCP

puede aplicar en cada caso tcnicas diferentes de manera automtica, para

puede aplicar en cada caso tcnicas diferentes de manera automtica, para

aprovechar la red al mximo.

aprovechar la red al mximo.

8.6.1. Transmisin de datos interactivos

8.6.1. Transmisin de datos interactivos

En este tipo de comunicacin, es normal enviar pocos datos. En una aplica-

En este tipo de comunicacin, es normal enviar pocos datos. En una aplica-

cin del tipo Telnet, por ejemplo, un usuario cliente podra ejecutar el coman-

cin del tipo Telnet, por ejemplo, un usuario cliente podra ejecutar el coman-

do de UNIX ls y obtener un listado de un directorio por parte del servidor. En

do de UNIX ls y obtener un listado de un directorio por parte del servidor. En

esta transferencia de informacin intervienen pocos bytes desde el origen

esta transferencia de informacin intervienen pocos bytes desde el origen

(cliente) hasta el destino (servidor) y se utilizan conjuntamente dos tcnicas

(cliente) hasta el destino (servidor) y se utilizan conjuntamente dos tcnicas

para obtener un mejor aprovechamiento de la red:

para obtener un mejor aprovechamiento de la red:

Reconocimientos retrasados.

Reconocimientos retrasados.

Algoritmo de Nagle.

Algoritmo de Nagle.

Reconocimientos retrasados

Reconocimientos retrasados

En este tipo de transferencia, es normal que el TCP no enve los reconocimien-

En este tipo de transferencia, es normal que el TCP no enve los reconocimien-

tos ACK inmediatamente despus de recibir los datos, sino que est un tiempo

tos ACK inmediatamente despus de recibir los datos, sino que est un tiempo

esperando a que haya datos para enviar en sentido contrario. De este modo,

esperando a que haya datos para enviar en sentido contrario. De este modo,

puede utilizar la tcnica piggybacking y enviar el reconocimiento encapsulado

puede utilizar la tcnica piggybacking y enviar el reconocimiento encapsulado

en los datos que retornan al cliente.

en los datos que retornan al cliente.

Es posible que el servidor se ahorre enviar un segmento que slo reconoce,

Es posible que el servidor se ahorre enviar un segmento que slo reconoce,

pero que no contiene datos. Es tpico que el TCP espere (utiliza un temporiza-

pero que no contiene datos. Es tpico que el TCP espere (utiliza un temporiza-

TCP/IP: los protocolos de la red Internet

* Por ejemplo, los que transmiten


aplicaciones tales como telnet
o rlogin.
** Por ejemplo, los que transmiten
aplicaciones como correo
electrnico o ftp.

FUOC P03/75064/00977

64

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

64

dor) unos 200 ms por si hay datos para transmitir antes de enviar el ACK. Una

dor) unos 200 ms por si hay datos para transmitir antes de enviar el ACK. Una

vez ha transcurrido este tiempo, el TCP reconoce los datos recibidos hasta el

vez ha transcurrido este tiempo, el TCP reconoce los datos recibidos hasta el

momento con un segmento de datos, si dispone de datos para enviar en sen-

momento con un segmento de datos, si dispone de datos para enviar en sen-

tido contrario (piggybacking), o con un segmento sin datos (el nmero de se-

tido contrario (piggybacking), o con un segmento sin datos (el nmero de se-

cuencia no vara). En cualquiera de los dos casos, el indicador ACK estar

cuencia no vara). En cualquiera de los dos casos, el indicador ACK estar

activado y el nmero ACK reconocer los datos pertinentes.

activado y el nmero ACK reconocer los datos pertinentes.

El TCP retrasa los ACK hasta 200 ms para aprovechar mejor la tcnica de

El TCP retrasa los ACK hasta 200 ms para aprovechar mejor la tcnica de

piggybacking.

piggybacking.

Algoritmo de Nagle

Algoritmo de Nagle

En numerosas ocasiones un cliente tiene muy pocos datos para enviar (por

En numerosas ocasiones un cliente tiene muy pocos datos para enviar (por

ejemplo, slo 1 byte). En este caso el TCP enviara un segmento slo con 1 byte

ejemplo, slo 1 byte). En este caso el TCP enviara un segmento slo con 1 byte

de datos y con 20 bytes de cabecera TCP. El IP aadira 20 bytes ms de cabe-

de datos y con 20 bytes de cabecera TCP. El IP aadira 20 bytes ms de cabe-

cera, lo que proporciona un total de 40 bytes de control y 1 de datos. Si se

cera, lo que proporciona un total de 40 bytes de control y 1 de datos. Si se

transmiten muchos segmentos de este tipo, la eficiencia es muy baja. Una so-

transmiten muchos segmentos de este tipo, la eficiencia es muy baja. Una so-

lucin a esta baja eficiencia de transmisin es aplicar el algoritmo de Nagle.

lucin a esta baja eficiencia de transmisin es aplicar el algoritmo de Nagle.

Utilizando el algoritmo de Nagle, una conexin TCP slo puede tener un segmen-

Utilizando el algoritmo de Nagle, una conexin TCP slo puede tener un segmen-

to de tamao pequeo (pocos bytes) sin que se haya reconocido; es decir, slo

to de tamao pequeo (pocos bytes) sin que se haya reconocido; es decir, slo

puede haber un nico segmento de tamao pequeo viajando por la red (en vue-

puede haber un nico segmento de tamao pequeo viajando por la red (en vue-

lo). El resto de los segmentos de tamao pequeo no se pueden transmitir hasta

lo). El resto de los segmentos de tamao pequeo no se pueden transmitir hasta

que el ACK del segmento pequeo que est viajando por la red haya llegado.

que el ACK del segmento pequeo que est viajando por la red haya llegado.

As, los segmentos que estn esperando para ser transmitidos se almacenan

As, los segmentos que estn esperando para ser transmitidos se almacenan

hasta que se recibe el ACK del segmento en vuelo. Cuando este ltimo llega,

hasta que se recibe el ACK del segmento en vuelo. Cuando este ltimo llega,

la conexin TCP puede enviar un segmento que contenga todos los datos al-

la conexin TCP puede enviar un segmento que contenga todos los datos al-

macenados hasta este momento, formando un segmento mayor.

macenados hasta este momento, formando un segmento mayor.

El algoritmo de Nagle funciona cuando los retrasos en la red son grandes; es decir,

El algoritmo de Nagle funciona cuando los retrasos en la red son grandes; es decir,

si la conexin cruza una WAN. En caso de que la conexin sea local, en una LAN,

si la conexin cruza una WAN. En caso de que la conexin sea local, en una LAN,

es difcil que se aplique este algoritmo a causa de la alta velocidad de la red.

es difcil que se aplique este algoritmo a causa de la alta velocidad de la red.

En ocasiones, es interesante desinhibir el algoritmo de Nagle, puesto que la

En ocasiones, es interesante desinhibir el algoritmo de Nagle, puesto que la

aplicacin no puede esperar. El movimiento del ratn en X Windows System

aplicacin no puede esperar. El movimiento del ratn en X Windows System

provoca segmentos pequeos. Estos movimientos del ratn deben entregarse


sin retrasos para que el usuario interactivo no lo note. Las libreras de sockets
deben permitir, activando indicadores , desinhibir el algoritmo de Nagle*.

8.6.2. Transmisin de datos de gran volumen. Control de flujo


por ventana deslizante

* En la librera de sockets API, el


indicador que desinhibe el
algoritmo de Nagle es el
TCP_NODELAY.

provoca segmentos pequeos. Estos movimientos del ratn deben entregarse


sin retrasos para que el usuario interactivo no lo note. Las libreras de sockets
deben permitir, activando indicadores , desinhibir el algoritmo de Nagle*.

8.6.2. Transmisin de datos de gran volumen. Control de flujo


por ventana deslizante

En las comunicaciones en que se enva una ingente cantidad de datos de gran

En las comunicaciones en que se enva una ingente cantidad de datos de gran

volumen (correo electrnico, transferencias FTP, etc.), como las memorias in-

volumen (correo electrnico, transferencias FTP, etc.), como las memorias in-

termedias de recepcin se pueden llenar, es necesario un protocolo de ventana

termedias de recepcin se pueden llenar, es necesario un protocolo de ventana

deslizante (sliding window) para controlar el flujo de datos.

deslizante (sliding window) para controlar el flujo de datos.

TCP/IP: los protocolos de la red Internet

* En la librera de sockets API, el


indicador que desinhibe el
algoritmo de Nagle es el
TCP_NODELAY.

FUOC P03/75064/00977

65

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

65

El TCP efecta un control de flujo por ventana deslizante, con la diferencia,

El TCP efecta un control de flujo por ventana deslizante, con la diferencia,

respecto a los protocolos del nivel de enlace, de que en el TCP la ventana de

respecto a los protocolos del nivel de enlace, de que en el TCP la ventana de

transmisin es variable.

transmisin es variable.

La idea es que cada extremo TCP regula la cantidad de datos que el otro ex-

La idea es que cada extremo TCP regula la cantidad de datos que el otro ex-

tremo puede transmitir. Con esta finalidad, cada extremo TCP notifica al extremo

tremo puede transmitir. Con esta finalidad, cada extremo TCP notifica al extremo

opuento, cada vez que enva un segmento, la ventana que puede aceptar en

opuento, cada vez que enva un segmento, la ventana que puede aceptar en

este momento. El TCP par actualiza su ventana de transmisin de acuerdo

este momento. El TCP par actualiza su ventana de transmisin de acuerdo

con este valor.

con este valor.

Mientras que el TCP transmisor marca los bytes que ha transmitido con un n-

Mientras que el TCP transmisor marca los bytes que ha transmitido con un n-

mero de secuencia, el TCP receptor retoma los bytes que recibe y los reconoce

mero de secuencia, el TCP receptor retoma los bytes que recibe y los reconoce

(por norma general, por medio de la tcnica de piggybacking) con un ACK. Los

(por norma general, por medio de la tcnica de piggybacking) con un ACK. Los

reconocimientos ACK especifican siempre el nmero de secuencia del prxi-

reconocimientos ACK especifican siempre el nmero de secuencia del prxi-

mo octeto que el receptor espera recibir.

mo octeto que el receptor espera recibir.

Un reconocimiento reconoce posiciones de bytes en el flujo de datos

Un reconocimiento reconoce posiciones de bytes en el flujo de datos

hasta la ltima posicin que ha recibido correctamente, sin tener en

hasta la ltima posicin que ha recibido correctamente, sin tener en

cuenta el segmento al que pertenecen.

cuenta el segmento al que pertenecen.

El TCP slo activa un temporizador de retransmisiones que reprograma cuan-

El TCP slo activa un temporizador de retransmisiones que reprograma cuan-

do recibe un reconocimiento o cuando salta el temporizador. Ms adelante ve-

do recibe un reconocimiento o cuando salta el temporizador. Ms adelante ve-

remos cmo el TCP programa el temporizador de retransmisiones. La cabecera

remos cmo el TCP programa el temporizador de retransmisiones. La cabecera

del segmento TCP especifica tres parmetros esenciales en el funcionamiento del

del segmento TCP especifica tres parmetros esenciales en el funcionamiento del

protocolo de ventana deslizante:

protocolo de ventana deslizante:

El nmero de secuencia, que indica a su conexin opuesta el primer byte

El nmero de secuencia, que indica a su conexin opuesta el primer byte

de datos que contiene el segmento transmitido.

de datos que contiene el segmento transmitido.

El nmero de reconocimiento (nmero ACK), que indica a su conexin

El nmero de reconocimiento (nmero ACK), que indica a su conexin

opuesta el prximo byte que espera recibir y, por tanto, el ltimo byte re-

opuesta el prximo byte que espera recibir y, por tanto, el ltimo byte re-

cibido correctamente. Conviene recordar que el TCP es bidireccional y que

cibido correctamente. Conviene recordar que el TCP es bidireccional y que

un segmento TCP reconoce, por medio de piggybacking, los datos que recibe

un segmento TCP reconoce, por medio de piggybacking, los datos que recibe

con un ACK que debe estar numerado.

con un ACK que debe estar numerado.

La ventana, que indica a su conexin opuesta el tamao de la memoria in-

La ventana, que indica a su conexin opuesta el tamao de la memoria in-

termedia de recepcin y, por tanto, el tamao de la ventana que el trans-

termedia de recepcin y, por tanto, el tamao de la ventana que el trans-

misor debe utilizar.

misor debe utilizar.

Actividad

Actividad

Asumimos que un extremo cliente TCP ha elegido el 28.325 como nmero de secuencia inicial (ISN), mientras que el extremo servidor TCP ha elegido como ISN el 12.555.
Qu indica un segmento cliente TCP con nmero de secuencia 29.201, nmero ACK
12.655 y ventana 1.024?

Asumimos que un extremo cliente TCP ha elegido el 28.325 como nmero de secuencia inicial (ISN), mientras que el extremo servidor TCP ha elegido como ISN el 12.555.
Qu indica un segmento cliente TCP con nmero de secuencia 29.201, nmero ACK
12.655 y ventana 1.024?

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

66

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

66

Solucin

Solucin

El nmero de secuencia indica que el cliente ya ha transmitido desde el byte 28.325 hasta
el byte 29.200 (875 bytes en total) y que en este segmento transmitir a partir del byte
29.201. El nmero ACK indicar al servidor que el cliente ha recibido correctamente hasta el byte 12.654 y que espera recibir a partir del 12.655. La ventana indica al servidor que
el cliente slo puede aceptar 1.024 bytes antes de confirmarlos. Por consiguiente, el servidor TCP actualizar su ventana de transmisin a 1.024.

El nmero de secuencia indica que el cliente ya ha transmitido desde el byte 28.325 hasta
el byte 29.200 (875 bytes en total) y que en este segmento transmitir a partir del byte
29.201. El nmero ACK indicar al servidor que el cliente ha recibido correctamente hasta el byte 12.654 y que espera recibir a partir del 12.655. La ventana indica al servidor que
el cliente slo puede aceptar 1.024 bytes antes de confirmarlos. Por consiguiente, el servidor TCP actualizar su ventana de transmisin a 1.024.

Con el objetivo de estudiar el mecanismo de ventana deslizante, analizaremos

Con el objetivo de estudiar el mecanismo de ventana deslizante, analizaremos

un caso sencillo. Asumiremos que ya se ha establecido la conexin y se han

un caso sencillo. Asumiremos que ya se ha establecido la conexin y se han

asignado los ISN para ambos extremos.

asignado los ISN para ambos extremos.

En la figura siguiente, podemos ver cmo funcionara el protocolo de ven-

En la figura siguiente, podemos ver cmo funcionara el protocolo de ven-

tana deslizante para el TCP transmisor. El TCP receptor le ha indicado que

tana deslizante para el TCP transmisor. El TCP receptor le ha indicado que

est dispuesto a recibir 7 bytes. Por tanto, la ventana de transmisin del

est dispuesto a recibir 7 bytes. Por tanto, la ventana de transmisin del

TCP transmisor es de 7 bytes.

TCP transmisor es de 7 bytes.

Podemos interpretar la ventana deslizante de la manera siguiente:

Podemos interpretar la ventana deslizante de la manera siguiente:

1) El TCP ya ha enviado bytes hasta el nmero de secuencia 1.003. De estos

1) El TCP ya ha enviado bytes hasta el nmero de secuencia 1.003. De estos

bytes, el TCP receptor le ha reconocido hasta el 999; faltan por reconocerle

bytes, el TCP receptor le ha reconocido hasta el 999; faltan por reconocerle

los bytes 1.000 a 1.003.

los bytes 1.000 a 1.003.

2) Como la ventana de transmisin es de 7 bytes y ya ha transmitido 4, el TCP

2) Como la ventana de transmisin es de 7 bytes y ya ha transmitido 4, el TCP

todava puede transmitir 3 bytes antes de agotarla (bytes 1.004 a 1.006).

todava puede transmitir 3 bytes antes de agotarla (bytes 1.004 a 1.006).

3) El TCP slo podr transmitir del byte 1.007 en adelante en los casos si-

3) El TCP slo podr transmitir del byte 1.007 en adelante en los casos si-

guientes:

guientes:

Si el TCP receptor le reconoce los bytes a partir del 1.000, de manera que el

Si el TCP receptor le reconoce los bytes a partir del 1.000, de manera que el

lmite izquierdo de la ventana se mover hacia la derecha.

lmite izquierdo de la ventana se mover hacia la derecha.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

67

Si el TCP receptor le advierte de una ventana superior a 7, de manera que


el lmite derecho de la ventana se mover hacia la derecha.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

67

Si el TCP receptor le advierte de una ventana superior a 7, de manera que


el lmite derecho de la ventana se mover hacia la derecha.

Una combinacin de las dos soluciones anteriores.

Una combinacin de las dos soluciones anteriores.

Como podis observar, el TCP receptor puede advertir una nueva ventana de

Como podis observar, el TCP receptor puede advertir una nueva ventana de

transmisin. Cada vez que reconozca datos, avisar de la nueva ventana que

transmisin. Cada vez que reconozca datos, avisar de la nueva ventana que

est dispuesta a recibir. El TCP transmisor actualizar esta ltima.

est dispuesta a recibir. El TCP transmisor actualizar esta ltima.

La ventana puede experimentar tres tipos de movimiento:

La ventana puede experimentar tres tipos de movimiento:

1) La ventana se cierra al moverse el lmite izquierdo hacia la derecha

1) La ventana se cierra al moverse el lmite izquierdo hacia la derecha

cuando los datos enviados son reconocidos.

cuando los datos enviados son reconocidos.

2) La ventana se abre al moverse el lmite derecho hacia la derecha y per-

2) La ventana se abre al moverse el lmite derecho hacia la derecha y per-

mite que el TCP enve ms datos. Esta apertura tiene lugar cuando el re-

mite que el TCP enve ms datos. Esta apertura tiene lugar cuando el re-

ceptor libera espacio de su memoria y puede advertir una nueva ventana.

ceptor libera espacio de su memoria y puede advertir una nueva ventana.

3) La ventana se comprime cuando el lmite derecho se mueve hacia

3) La ventana se comprime cuando el lmite derecho se mueve hacia

la izquierda.

la izquierda.

Algunos puntos que podemos resumir de la figura de la ventana deslizante son

Algunos puntos que podemos resumir de la figura de la ventana deslizante son

los siguientes:

los siguientes:

Si el lmite izquierdo alcanza el lmite derecho, se dice que la ventana vale

Si el lmite izquierdo alcanza el lmite derecho, se dice que la ventana vale

cero (zero window). Ello hace que el transmisor detenga el envo de datos.

cero (zero window). Ello hace que el transmisor detenga el envo de datos.

Se recomienda que el TCP transmisor no comprima la ventana de transmisin.

Se recomienda que el TCP transmisor no comprima la ventana de transmisin.

Es preciso que distingamos el hecho de que la ventana se comprima (el l-

Es preciso que distingamos el hecho de que la ventana se comprima (el l-

mite derecho se mueve hacia la izquierda) del hecho de que la ventana dis-

mite derecho se mueve hacia la izquierda) del hecho de que la ventana dis-

minuya de tamao (se advierte una ventana ms pequea, pero el lmite

minuya de tamao (se advierte una ventana ms pequea, pero el lmite

derecho no se mueve hacia la izquierda).

derecho no se mueve hacia la izquierda).

Diferencia entre compresin y disminucin de tamao de la ventana

Diferencia entre compresin y disminucin de tamao de la ventana

Supongamos una ventana de 7 bytes como en la figura de la ventana deslizante. El receptor reconoce los bytes 1.000 a 1.003 y advierte una ventana de 5 bytes. Como podis deducir, el lmite izquierdo vale ahora 1.004; el lmite derecho, 1.008 (se ha movido hacia
la derecha), y la nueva ventana, 5. En este caso, la ventana de recepcin debe reducirse,
pero no se ha comprimido.

Supongamos una ventana de 7 bytes como en la figura de la ventana deslizante. El receptor reconoce los bytes 1.000 a 1.003 y advierte una ventana de 5 bytes. Como podis deducir, el lmite izquierdo vale ahora 1.004; el lmite derecho, 1.008 (se ha movido hacia
la derecha), y la nueva ventana, 5. En este caso, la ventana de recepcin debe reducirse,
pero no se ha comprimido.

En cambio, si el receptor slo reconoce 1 byte (el byte 1.000) y advierte una ventana de
1 byte, el transmisor se encontrar con un problema. Una ventana de 1 byte significa que
slo poda haber transmitido 1 (el 1.001), pero ya haba transmitido 3, incluyendo el reconocido (del 1.000 al 1.003). Por tanto, el receptor debe asegurarse de advertir al menos tantos bytes como el transmisor le puede haber enviado con la ventana anterior. Si slo
reconoce 1 byte, la ventana advertida debe ser de 6 bytes; si reconoce los 4 bytes, esta ltima debe ser, al menos, de 3 bytes, puesto que el transmisor ya los podra haber transmitido.

En cambio, si el receptor slo reconoce 1 byte (el byte 1.000) y advierte una ventana de
1 byte, el transmisor se encontrar con un problema. Una ventana de 1 byte significa que
slo poda haber transmitido 1 (el 1.001), pero ya haba transmitido 3, incluyendo el reconocido (del 1.000 al 1.003). Por tanto, el receptor debe asegurarse de advertir al menos tantos bytes como el transmisor le puede haber enviado con la ventana anterior. Si slo
reconoce 1 byte, la ventana advertida debe ser de 6 bytes; si reconoce los 4 bytes, esta ltima debe ser, al menos, de 3 bytes, puesto que el transmisor ya los podra haber transmitido.

Ejemplo de funcionamiento del protocolo de ventana deslizante

Ejemplo de funcionamiento del protocolo de ventana deslizante

Utilizaremos el programa tcpdump para observar cmo funciona el protocolo de ventana


deslizante. Asumimos que hemos efectuado un rlogin de argos a helios (argos % rlogin

Utilizaremos el programa tcpdump para observar cmo funciona el protocolo de ventana


deslizante. Asumimos que hemos efectuado un rlogin de argos a helios (argos % rlogin

TCP/IP: los protocolos de la red Internet

68

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

helios) y ya estamos conectados a helios. Una vez nos encontramos en helios, ejecutamos el comando ls. Este ltimo retorna por salida estndar el listado de directorios del
directorio del usuario (home directory) en helios que ocupan 811 caracteres (representa el
envo de 811 bytes).

68

FUOC P03/75064/00977

helios) y ya estamos conectados a helios. Una vez nos encontramos en helios, ejecutamos el comando ls. Este ltimo retorna por salida estndar el listado de directorios del
directorio del usuario (home directory) en helios que ocupan 811 caracteres (representa el
envo de 811 bytes).

helios % ls

helios % ls

Las lneas que obtenemos con el programa tcpdump (numeradas del 1 al 13) son las siguientes:

Las lneas que obtenemos con el programa tcpdump (numeradas del 1 al 13) son las siguientes:

1)

15:56:59.506091 argos.1023 > helios.login: P 37:38 (1)ack 596


win 31744

1)

15:56:59.506091 argos.1023 > helios.login: P 37:38 (1)ack 596


win 31744

2)

15:56:59.516091 helios.login > argos.1023: P 596:597 (1) ack 38


win 8760

2)

15:56:59.516091 helios.login > argos.1023: P 596:597 (1) ack 38


win 8760

3)

15:56:.59.526091 argos.1023 > helios.login: .ack 597 win 31744

3)

15:56:.59.526091 argos.1023 > helios.login: .ack 597 win 31744

4)

15:56:59.846091 argos.1023 > helios.login: P 38:39 (1)ack 597


win 31744

4)

15:56:59.846091 argos.1023 > helios.login: P 38:39 (1)ack 597


win 31744

5)

15:56:59.856091 helios.login > argos.1023: : P 597:600 (3) ack


39 win 8760

5)

15:56:59.856091 helios.login > argos.1023: : P 597:600 (3) ack


39 win 8760

6)

15:56:59.866091 argos.1023 > helios.login: .ack 600 win 31744

6)

15:56:59.866091 argos.1023 > helios.login: .ack 600 win 31744

7)

15:57:00.116091 argos.1023 > helios.login: P 39:40 (1)ack 600


win 31744

7)

15:57:00.116091 argos.1023 > helios.login: P 39:40 (1)ack 600


win 31744

8)

15:57:00.126091 helios.login > argos.1023: P 600:603 (3) ack 40


win 8760

8)

15:57:00.126091 helios.login > argos.1023: P 600:603 (3) ack 40


win 8760

9)

15:57:00.136091 argos.1023 > helios.login: .ack 603 win 31744

9)

15:57:00.136091 argos.1023 > helios.login: .ack 603 win 31744

10) 15:57:00.146091 helios.login > argos.1023: P 603:658 (55) ack 40


win 8760

10) 15:57:00.146091 helios.login > argos.1023: P 603:658 (55) ack 40


win 8760

11) 15:57:00.156091 argos.1023 > helios.login: .ack 658 win 31744

11) 15:57:00.156091 argos.1023 > helios.login: .ack 658 win 31744

12) 15:57:00.166091 helios.login > argos.1023: P 658:1414 (756) ack


40 win 8760

12) 15:57:00.166091 helios.login > argos.1023: P 658:1414 (756) ack


40 win 8760

13) 15:57:00.176091 argos.1023 > helios.login: .ack 1414 win 31744

13) 15:57:00.176091 argos.1023 > helios.login: .ack 1414 win 31744

La interpretacin de estas lneas es la siguiente: argos ya ha enviado 36 bytes, mientras


que helios ya ha enviado 595 (informacin que ambos han intercambiado desde el principio de la conexin, como pueden ser logins, usernames, etc.). Deducimos esta informacin de la primera lnea del ejemplo.

La interpretacin de estas lneas es la siguiente: argos ya ha enviado 36 bytes, mientras


que helios ya ha enviado 595 (informacin que ambos han intercambiado desde el principio de la conexin, como pueden ser logins, usernames, etc.). Deducimos esta informacin de la primera lnea del ejemplo.

1) argos enva el carcter l. El indicador P seala PUSH. El nmero de secuencia avanza


de 37 a 38.
2) helios retorna un eco del carcter l. Su nmero de secuencia avanza de 596 a 597 y
reconoce el byte recibido (ACK = 37 + 1 = 38).
3) argos reconoce el eco: ACK = 597 + 1 = 598.
4) argos enva el carcter s. El nmero de secuencia avanza de 38 a 39. El ACK no reconoce nada porque vale igual que antes: ACK = 597.
5) helios hace un eco que ocupa 3 bytes (BS* + 1 + s). El nmero de secuencia avanza tres
posiciones (de 597 a 600) y reconoce el carcter s , puesto que ACK = 38 + 1 = 39.

Recordad
PUSH indica al receptor que
pase los datos inmediatamente
a la aplicacin; es decir, que no
los deje durante un tiempo
en la memoria intermedia
de recepcin.

* BS es la sigla de back space.

1) argos enva el carcter l. El indicador P seala PUSH. El nmero de secuencia avanza


de 37 a 38.
2) helios retorna un eco del carcter l. Su nmero de secuencia avanza de 596 a 597 y
reconoce el byte recibido (ACK = 37 + 1 = 38).
3) argos reconoce el eco: ACK = 597 + 1 = 598.
4) argos enva el carcter s. El nmero de secuencia avanza de 38 a 39. El ACK no reconoce nada porque vale igual que antes: ACK = 597.
5) helios hace un eco que ocupa 3 bytes (BS* + 1 + s). El nmero de secuencia avanza tres
posiciones (de 597 a 600) y reconoce el carcter s , puesto que ACK = 38 + 1 = 39.

6) argos reconoce el eco con un ACK = 600.

6) argos reconoce el eco con un ACK = 600.

7) argos enva el retorno de carro (CR). El nmero de secuencia avanza una posicin.

7) argos enva el retorno de carro (CR). El nmero de secuencia avanza una posicin.

8) helios hace un eco del CR y, asimismo, retorna otro CR seguido de un LF*. Ello significa el envo de 3 bytes. Reconoce el CR, puesto que ACK = 40.
9) argos reconoce estos tres caracteres.

TCP/IP: los protocolos de la red Internet

* LF es la sigla de line feed.

8) helios hace un eco del CR y, asimismo, retorna otro CR seguido de un LF*. Ello significa el envo de 3 bytes. Reconoce el CR, puesto que ACK = 40.
9) argos reconoce estos tres caracteres.

Recordad
PUSH indica al receptor que
pase los datos inmediatamente
a la aplicacin; es decir, que no
los deje durante un tiempo
en la memoria intermedia
de recepcin.

* BS es la sigla de back space.

* LF es la sigla de line feed.

FUOC P03/75064/00977

69

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

69

10) helios responde a ls enviando 55 de los 811 bytes que debe enviar. El nmero de secuencia avanza de 603 a 658. El ACK se mentiene a 40.

10) helios responde a ls enviando 55 de los 811 bytes que debe enviar. El nmero de secuencia avanza de 603 a 658. El ACK se mentiene a 40.

11) argos reconoce estos 55 bytes enviando un ACK de 659.

11) argos reconoce estos 55 bytes enviando un ACK de 659.

12) helios transmite el resto de los 811 bytes, es decir, 756 bytes.

12) helios transmite el resto de los 811 bytes, es decir, 756 bytes.

13) argos reconoce estos bytes avanzando el ACK a 1.414.

13) argos reconoce estos bytes avanzando el ACK a 1.414.

Como podemos observar en este ejemplo, el TCP divide la informacin que hay que enviar en dos segmentos: un segmento de 55 bytes y otro de 756 bytes. Conviene remarcar
que rlogin enva los comandos carcter a carcter y que, adems, la aplicacin remota
hace un eco de estos caracteres. Por ello, en las primeras lneas se enva primero la l, despus la s, a continuacin el retorno de carro, etc. Lo que nos interesa de este ejemplo es
ver cmo avanzan las ventanas al emitir y al reconocer bytes. Por tanto, no justificaremos
por qu rlogin retorna ecos, ni por qu aade un carcter LF al retorno de carro.

Como podemos observar en este ejemplo, el TCP divide la informacin que hay que enviar en dos segmentos: un segmento de 55 bytes y otro de 756 bytes. Conviene remarcar
que rlogin enva los comandos carcter a carcter y que, adems, la aplicacin remota
hace un eco de estos caracteres. Por ello, en las primeras lneas se enva primero la l, despus la s, a continuacin el retorno de carro, etc. Lo que nos interesa de este ejemplo es
ver cmo avanzan las ventanas al emitir y al reconocer bytes. Por tanto, no justificaremos
por qu rlogin retorna ecos, ni por qu aade un carcter LF al retorno de carro.

8.6.3. Temporizadores y retransmisiones

8.6.3. Temporizadores y retransmisiones

El TCP activa hasta cuatro temporizadores de diferente tipo para conseguir

El TCP activa hasta cuatro temporizadores de diferente tipo para conseguir

una entrega fiable de la informacin. En este subapartado nos centraremos


nicamente en el temporizador de retransmisiones o RTO*.

* RTO es la sigla de retransmission


time out.

una entrega fiable de la informacin. En este subapartado nos centraremos


nicamente en el temporizador de retransmisiones o RTO*.

Conviene recordar que tanto los segmentos como los reconocimientos se pue-

Conviene recordar que tanto los segmentos como los reconocimientos se pue-

den perder durante la transmisin, de manera que es preciso utilizar un tem-

den perder durante la transmisin, de manera que es preciso utilizar un tem-

porizador de retransmisiones.

porizador de retransmisiones.

Como ya hemos mencionado, el temporizador se programa cada vez que se re-

Como ya hemos mencionado, el temporizador se programa cada vez que se re-

cibe un reconocimiento, o bien cuando salta porque el reconocimiento no ha

cibe un reconocimiento, o bien cuando salta porque el reconocimiento no ha

llegado a tiempo (o, simplemente, no ha llegado).

llegado a tiempo (o, simplemente, no ha llegado).

Definimos el tiempo de ida y vuelta o RTT* como el tiempo que transcurre desde que se transmite un segmento, hasta que es reconocido (el ACK

* RTT es la sigla de round trip time.

Definimos el tiempo de ida y vuelta o RTT* como el tiempo que transcurre desde que se transmite un segmento, hasta que es reconocido (el ACK

vuelve al transmisor). El RTT se puede medir restando el instante en que el

vuelve al transmisor). El RTT se puede medir restando el instante en que el

TCP transmisor emite el segmento y el instante en que recibe el ACK.

TCP transmisor emite el segmento y el instante en que recibe el ACK.

Lo ms lgico sera activar el temporizador de retransmisin en el tiempo de

Lo ms lgico sera activar el temporizador de retransmisin en el tiempo de

ida y vuelta (RTO = RTT). Sin embargo, es evidente que los retrasos que expe-

ida y vuelta (RTO = RTT). Sin embargo, es evidente que los retrasos que expe-

rimentan los segmentos son variables: si se activa el RTO en el RTT que ha ex-

rimentan los segmentos son variables: si se activa el RTO en el RTT que ha ex-

perimentado el segmento anterior, no se puede asegurar que este segmento no

perimentado el segmento anterior, no se puede asegurar que este segmento no

tenga un retraso superior y que el temporizador no salte antes de tiempo. Exis-

tenga un retraso superior y que el temporizador no salte antes de tiempo. Exis-

ten diferentes alternativas para programar el temporizador que explicaremos

ten diferentes alternativas para programar el temporizador que explicaremos

a continuacin:

a continuacin:

Algoritmo de retransmisin adaptativo.

Algoritmo de retransmisin adaptativo.

Algoritmo de Jacobson para calcular el RTO.

Algoritmo de Jacobson para calcular el RTO.

Algoritmo de Karn.

Algoritmo de Karn.

Algoritmo slow start.

Algoritmo slow start.

Algoritmo congestion avoidance.

Algoritmo congestion avoidance.

Temporizador keepalive.

Temporizador keepalive.

TCP/IP: los protocolos de la red Internet

* RTO es la sigla de retransmission


time out.

* RTT es la sigla de round trip time.

70

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

Algoritmo de retransmisin adaptativo

siguiente:
Est_RTT = Est_RTT + (1 ) M_RTT.

Se utiliza una estimacin del RTT que considere el RTT medido y su ltimo vaM_RTT es el ltimo RTT medido
(M_RTT o Measured RTT) y es
un factor cuyo valor se recomienda
que sea 0,9 (el 90% del valor de la
nueva estimacin proviene
de la ltima estimacin del RTT
y el 10% restante, de la ltima
medida del RTT).

Se recomienda que el temporizador valga:


RTO = Est_RTT,

TCP/IP: los protocolos de la red Internet

Algoritmo de retransmisin adaptativo

Se utiliza una estimacin del RTT que considere el RTT medido y su ltimo valor estimado del RTT. El nuevo RTT estimado (Est_RTT) se calcula de la manera

70

FUOC P03/75064/00977

lor estimado del RTT. El nuevo RTT estimado (Est_RTT) se calcula de la manera
siguiente:
Est_RTT = Est_RTT + (1 ) M_RTT.

M_RTT es el ltimo RTT medido


(M_RTT o Measured RTT) y es
un factor cuyo valor se recomienda
que sea 0,9 (el 90% del valor de la
nueva estimacin proviene
de la ltima estimacin del RTT
y el 10% restante, de la ltima
medida del RTT).

Se recomienda que el temporizador valga:


es el factor de variacin
del retraso y se recomienda
que valga 2.

RTO = Est_RTT,

El problema de esta aproximacin es que no considera las fluctuaciones del

El problema de esta aproximacin es que no considera las fluctuaciones del

RTT, lo que provoca ms retransmisiones de las necesarias. Para solucionar

RTT, lo que provoca ms retransmisiones de las necesarias. Para solucionar

este problema, se propuso un estimador del RTT que tuviera en cuenta la va-

este problema, se propuso un estimador del RTT que tuviera en cuenta la va-

rianza del RTT.

rianza del RTT.

Algoritmo de Jacobson para calcular el RTO

Algoritmo de Jacobson para calcular el RTO

Este algoritmo mejora el clculo del temporizador del algoritmo de retransmi-

Este algoritmo mejora el clculo del temporizador del algoritmo de retransmi-

sin adaptativo. Jacobson propuso calcular el temporizador de retransmisio-

sin adaptativo. Jacobson propuso calcular el temporizador de retransmisio-

nes RTO utilizando la media y la varianza del RTT.

nes RTO utilizando la media y la varianza del RTT.

Tenemos que MRTT es la media estimada del RTT y que SRTT es la desviacin

Tenemos que MRTT es la media estimada del RTT y que SRTT es la desviacin

estndar estimada. De este modo, el temporizador tendr en cuenta las fluc-

estndar estimada. De este modo, el temporizador tendr en cuenta las fluc-

tuaciones en el retraso que puede experimentar un segmento al cruzar equipos

tuaciones en el retraso que puede experimentar un segmento al cruzar equipos

intermedios en una red. El algoritmo consiste en los pasos siguientes:

intermedios en una red. El algoritmo consiste en los pasos siguientes:

Las variables MRTT y SRTT se


inicializan a 0 y 3 segundos
respectivamente, y el valor de g es
1/8 y el de h es 1/4.

es el factor de variacin
del retraso y se recomienda
que valga 2.

Las variables MRTT y SRTT se


inicializan a 0 y 3 segundos
respectivamente, y el valor de g es
1/8 y el de h es 1/4.

Podemos notar que el clculo de la media MRTT es equivalente al estimador

Podemos notar que el clculo de la media MRTT es equivalente al estimador

adaptativo, con la diferencia de que g = (1 ) y adopta un valor diferente.

adaptativo, con la diferencia de que g = (1 ) y adopta un valor diferente.

Por ltimo, el temporizador se actualiza como una funcin de la medida y de

Por ltimo, el temporizador se actualiza como una funcin de la medida y de

la desviacin estndar (o varianza, puesto que estn relacionadas) del RTT:

la desviacin estndar (o varianza, puesto que estn relacionadas) del RTT:

RTO = MRTT + 2 SRTT para el primer temporizador.

RTO = MRTT + 2 SRTT para el primer temporizador.

RTO = MRTT + 4 SRTT a partir del primer temporizador.

RTO = MRTT + 4 SRTT a partir del primer temporizador.

Algoritmo de Karn

Algoritmo de Karn

Cuando el temporizador salta, el segmento se retransmite y el TCP repro-

Cuando el temporizador salta, el segmento se retransmite y el TCP repro-

grama el temporizador. Supongamos que a continuacin se recibe un ACK.

grama el temporizador. Supongamos que a continuacin se recibe un ACK.

El TCP no tiene manera de saber a quin pertenece (al primer segmento o

El TCP no tiene manera de saber a quin pertenece (al primer segmento o

FUOC P03/75064/00977

71

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

71

a su retransmisin), puesto que el ACK slo indica el prximo byte que es-

a su retransmisin), puesto que el ACK slo indica el prximo byte que es-

pera recibir. Esta situacin se denomina problema de ambigedad en las re-

pera recibir. Esta situacin se denomina problema de ambigedad en las re-

transmisiones y afecta a la manera de recalcular el RTO, puesto que este

transmisiones y afecta a la manera de recalcular el RTO, puesto que este

ltimo depende de las medidas del RTT que llevamos a cabo.

ltimo depende de las medidas del RTT que llevamos a cabo.

Es decir, debemos pensar que uno de los parmetros que se utiliza para calcu-

Es decir, debemos pensar que uno de los parmetros que se utiliza para calcu-

lar el valor del temporizador es la medida del tiempo de ida y vuelta (M_RTT).

lar el valor del temporizador es la medida del tiempo de ida y vuelta (M_RTT).

Si para medir el RTT, el TCP utiliza el ACK que llega despus de haber retrans-

Si para medir el RTT, el TCP utiliza el ACK que llega despus de haber retrans-

mitido uno o diferentes segmentos y se produce un problema de ambigedad

mitido uno o diferentes segmentos y se produce un problema de ambigedad

en las retransmisiones, el TCP puede computar valores que no son reales con

en las retransmisiones, el TCP puede computar valores que no son reales con

la situacin actual de la red. Para evitarlo, se utiliza el algoritmo de Karn.

la situacin actual de la red. Para evitarlo, se utiliza el algoritmo de Karn.

El algoritmo de Karn considera que el RTO slo se recalcular por medio de

El algoritmo de Karn considera que el RTO slo se recalcular por medio de

una estimacin del RTT (es decir, utilizando un algoritmo como el de Jacob-

una estimacin del RTT (es decir, utilizando un algoritmo como el de Jacob-

son) si el reconocimiento pertenece a un segmento no retransmitido. Cuando

son) si el reconocimiento pertenece a un segmento no retransmitido. Cuando

se produce una retransmisin, se utiliza un algoritmo de back-off exponencial

se produce una retransmisin, se utiliza un algoritmo de back-off exponencial

para doblar el valor del temporizador.

para doblar el valor del temporizador.

El algoritmo de back-off dobla el valor del ltimo RTO hasta un lmite de 64

El algoritmo de back-off dobla el valor del ltimo RTO hasta un lmite de 64

segundos. Cuando se reciba un ACK de un segmento que no se ha retransmi-

segundos. Cuando se reciba un ACK de un segmento que no se ha retransmi-

tido, se vuelve a tomar una medida del RTT y se aplica de nuevo el algoritmo

tido, se vuelve a tomar una medida del RTT y se aplica de nuevo el algoritmo

de Jacobson. Desde un punto de vista experimental, se ha comprobado que

de Jacobson. Desde un punto de vista experimental, se ha comprobado que

este algoritmo funciona muy bien incluso cuando la red experimenta muchas

este algoritmo funciona muy bien incluso cuando la red experimenta muchas

prdidas de datos.

prdidas de datos.

Algoritmo slow start

Algoritmo slow start

En numerosas ocasiones el transmisor empieza emitiendo el mayor nmero de

En numerosas ocasiones el transmisor empieza emitiendo el mayor nmero de

segmentos posible (tantos como le permite su ventana). Una vez ha agotado

segmentos posible (tantos como le permite su ventana). Una vez ha agotado

la ventana, el transmisor espera que el receptor le reconozca los datos y le ad-

la ventana, el transmisor espera que el receptor le reconozca los datos y le ad-

vierte de nuevas ventanas para continuar funcionando y emitir ms datos. Sin

vierte de nuevas ventanas para continuar funcionando y emitir ms datos. Sin

embargo, en una red hay equipos intermedios (direccionadores, conmutado-

embargo, en una red hay equipos intermedios (direccionadores, conmutado-

res, etc.) que pueden congestionarse. Por tanto, no podrn almacenar tanta in-

res, etc.) que pueden congestionarse. Por tanto, no podrn almacenar tanta in-

formacin como el transmisor est emitiendo.

formacin como el transmisor est emitiendo.

Los equipos intermedios se pueden congestionar por muchas razones: por ejemplo, a
causa de un direccionador con enlaces de entrada a alta velocidad y enlaces de salida a
baja velocidad, o con una CPU lenta o con memoria intermedia pequea.

Los equipos intermedios se pueden congestionar por muchas razones: por ejemplo, a
causa de un direccionador con enlaces de entrada a alta velocidad y enlaces de salida a
baja velocidad, o con una CPU lenta o con memoria intermedia pequea.

Asimismo, conviene considerar que el direccionador, adems de retransmitir la informacin, debe direccionarla. Por tanto, no slo debe procesar los datagramas IP que recibe,
sino que en ocasiones debe computar algoritmos de direccionamiento.

Asimismo, conviene considerar que el direccionador, adems de retransmitir la informacin, debe direccionarla. Por tanto, no slo debe procesar los datagramas IP que recibe,
sino que en ocasiones debe computar algoritmos de direccionamiento.

Es muy posible que estos equipos, para descongestionarse (tienen las memo-

Es muy posible que estos equipos, para descongestionarse (tienen las memo-

rias intermedias completas), descarten datagramas IP. Al fin y al cabo, por en-

rias intermedias completas), descarten datagramas IP. Al fin y al cabo, por en-

cima del IP hay un protocolo de retransmisiones (TCP) que retransmitir toda

cima del IP hay un protocolo de retransmisiones (TCP) que retransmitir toda

la informacin que no haya llegado a su destino.

la informacin que no haya llegado a su destino.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

72

El problema surge cuando el TCP se percata de que la informacin no ha llegado a su destino (los datagramas IP con esta informacin han sido descartados por el direccionador) y vuelve a retransmitir la ventana. El direccionador
se encuentra de nuevo con la misma situacin, o incluso peor*, y vuelve a des-

TCP/IP: los protocolos de la red Internet

*La razn de este empeoramiento


es que el direccionador recibe de
nuevo los datagramas de las
conexiones que haba rechazado y
todos al mismo tiempo, lo que no le
ayuda a eliminar la congestin.

FUOC P03/75064/00977

72

El problema surge cuando el TCP se percata de que la informacin no ha llegado a su destino (los datagramas IP con esta informacin han sido descartados por el direccionador) y vuelve a retransmitir la ventana. El direccionador
se encuentra de nuevo con la misma situacin, o incluso peor*, y vuelve a des-

cartar datagramas IP de esta conexin.

cartar datagramas IP de esta conexin.

El direccionador necesita aliviar la congestin; es decir, que las conexiones no

El direccionador necesita aliviar la congestin; es decir, que las conexiones no

le enven demasiados datagramas IP y as tenga tiempo de recuperarse. Un al-

le enven demasiados datagramas IP y as tenga tiempo de recuperarse. Un al-

goritmo que el TCP puede implementar para evitar la congestin de los equi-

goritmo que el TCP puede implementar para evitar la congestin de los equi-

pos intermedios de la red es el slow start.

pos intermedios de la red es el slow start.

El algoritmo slow start permite que el transmisor incremente el nmero de seg-

El algoritmo slow start permite que el transmisor incremente el nmero de seg-

mentos que es preciso transmitir exponencialmente cada vez que reciba un re-

mentos que es preciso transmitir exponencialmente cada vez que reciba un re-

conocimiento. El transmisor empieza transmitiendo un solo segmento.

conocimiento. El transmisor empieza transmitiendo un solo segmento.

El slow start define una segunda ventana a la que llama ventana de congestin.

El slow start define una segunda ventana a la que llama ventana de congestin.

El algoritmo funciona de la manera siguiente:

El algoritmo funciona de la manera siguiente:

1) La ventana de congestin se inicializa en el valor de un segmento de tama-

1) La ventana de congestin se inicializa en el valor de un segmento de tama-

o mximo (MSS bytes).

o mximo (MSS bytes).

2) Cada vez que se recibe un ACK, la ventana de congestin se incrementa en


un segmento (en MSS bytes).
3) El transmisor puede emitir lo mnimo entre la ventana de transmisin y la
ventana de congestin.

Cuando el algoritmo
slow start...
... incrementa la ventana
de congestin en un segmento, lo que hace es considerar
un segmento como el nmero
de bytes que ocupa un segmento de tamao mximo.

2) Cada vez que se recibe un ACK, la ventana de congestin se incrementa en


un segmento (en MSS bytes).
3) El transmisor puede emitir lo mnimo entre la ventana de transmisin y la
ventana de congestin.

De esta manera, el transmisor no enviar en un inicio toda su ventana de

De esta manera, el transmisor no enviar en un inicio toda su ventana de

transmisin. A medida que recibe el ACK, asume que no hay congestin e in-

transmisin. A medida que recibe el ACK, asume que no hay congestin e in-

crementa lentamente la cantidad de datos a transmitir.

crementa lentamente la cantidad de datos a transmitir.

La ventana de transmisin es un control de flujo impuesto por el receptor,

La ventana de transmisin es un control de flujo impuesto por el receptor,

mientras que la ventana de congestin consiste en un control de flujo impues-

mientras que la ventana de congestin consiste en un control de flujo impues-

to por el transmisor. Es conveniente considerar que el incremento de la ven-

to por el transmisor. Es conveniente considerar que el incremento de la ven-

tana de congestin es exponencial. En un inicio, vale un segmento. Cuando

tana de congestin es exponencial. En un inicio, vale un segmento. Cuando

el transmisor recibe un ACK, incrementa la ventana de congestin a dos seg-

el transmisor recibe un ACK, incrementa la ventana de congestin a dos seg-

mentos. Ahora recibir 2 ACK, de manera que podr incrementarla a cuatro

mentos. Ahora recibir 2 ACK, de manera que podr incrementarla a cuatro

segmentos. Y as continuamente.

segmentos. Y as continuamente.

Algoritmo congestion avoidance

Algoritmo congestion avoidance

El algoritmo slow start evita que se congestione un equipo intermedio que no

El algoritmo slow start evita que se congestione un equipo intermedio que no

est congestionado en un inicio. Sin embargo, ello no es suficiente para evitar

est congestionado en un inicio. Sin embargo, ello no es suficiente para evitar

la congestin: en algn momento la ventana de congestin ser mayor que la

la congestin: en algn momento la ventana de congestin ser mayor que la

de transmisin, de manera que el TCP siempre transmitir toda su ventana. Si

de transmisin, de manera que el TCP siempre transmitir toda su ventana. Si

TCP/IP: los protocolos de la red Internet

*La razn de este empeoramiento


es que el direccionador recibe de
nuevo los datagramas de las
conexiones que haba rechazado y
todos al mismo tiempo, lo que no le
ayuda a eliminar la congestin.

Cuando el algoritmo
slow start...
... incrementa la ventana
de congestin en un segmento, lo que hace es considerar
un segmento como el nmero
de bytes que ocupa un segmento de tamao mximo.

FUOC P03/75064/00977

73

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

73

el equipo intermedio se congestiona, debe disminuirse el nmero de segmen-

el equipo intermedio se congestiona, debe disminuirse el nmero de segmen-

tos a transmitir y volver a aplicar un algoritmo como el slow start.

tos a transmitir y volver a aplicar un algoritmo como el slow start.

Sabremos que hay congestin cuando el receptor no reconozca los datos. Ello
significa que el temporizador de retransmisin saltar porque no ha llegado
un ACK o porque ha llegado un ACK con el mismo nmero que el anterior (se
llama ACK duplicado).

Recordad...
... que un ACK duplicado es
un segmento con el mismo
nmero ACK que el segmento
anterior.

Sabremos que hay congestin cuando el receptor no reconozca los datos. Ello
significa que el temporizador de retransmisin saltar porque no ha llegado
un ACK o porque ha llegado un ACK con el mismo nmero que el anterior (se
llama ACK duplicado).

El algoritmo de congestion avoidance reduce la ventana de congestin a la mitad

El algoritmo de congestion avoidance reduce la ventana de congestin a la mitad

cada vez que se pierde un segmento, y reduce la congestin en la red. Para ello,

cada vez que se pierde un segmento, y reduce la congestin en la red. Para ello,

define un umbral (threshold) y trabaja junto con el slow start de la manera si-

define un umbral (threshold) y trabaja junto con el slow start de la manera si-

guiente:

guiente:

El TCP inicializa el umbral (threshold) a 65.535 bytes y la ventana de conges-

El TCP inicializa el umbral (threshold) a 65.535 bytes y la ventana de conges-

tin a un segmento (MSS bytes). En un inicio, el transmisor est en estado slow

tin a un segmento (MSS bytes). En un inicio, el transmisor est en estado slow

start.

start.

El transmisor enva datos de acuerdo con el algoritmo slow start.

El transmisor enva datos de acuerdo con el algoritmo slow start.

Si el transmisor detecta congestin (el temporizador salta o recibe un ACK

Si el transmisor detecta congestin (el temporizador salta o recibe un ACK

duplicado), actualiza el valor del umbral a la mitad del valor de la ventana

duplicado), actualiza el valor del umbral a la mitad del valor de la ventana

de congestin que hay en este momento; pero nunca por debajo de dos

de congestin que hay en este momento; pero nunca por debajo de dos

segmentos, y reinicializa la ventana de congestin a un segmento volvien-

segmentos, y reinicializa la ventana de congestin a un segmento volvien-

do al estado slow start:

do al estado slow start:

threshold = mx(2, MSS (ventana de congestin) / 2)

threshold = mx(2, MSS (ventana de congestin) / 2)

Cuando recibe un ACK, debe incrementar el valor de la ventana de conges-

Cuando recibe un ACK, debe incrementar el valor de la ventana de conges-

tin teniendo en cuenta las situaciones siguientes:

Si la ventana de congestin es inferior o igual que el umbral, el transmisor

est en un estado de congestion avoidance y la ventana de congestin se in-

est en un estado de congestion avoidance y la ventana de congestin se in-

crementa en un segmento cada vez que se recibe un ACK. El incremento es

crementa en un segmento cada vez que se recibe un ACK. El incremento es

exponencial, puesto que se corresponde con el algoritmo slow start.

exponencial, puesto que se corresponde con el algoritmo slow start.

Si la ventana de congestin es mayor o igual que el umbral, el transmisor

Si la ventana de congestin es mayor o igual que el umbral, el transmisor

se encuentra en un estado de congestion avoidance y la ventana de conges-

se encuentra en un estado de congestion avoidance y la ventana de conges-

tin se incrementa en 1/(ventana de congestin) cada vez que se recibe un

tin se incrementa en 1/(ventana de congestin) cada vez que se recibe un

ACK, de manera que el incremento es lineal.

ACK, de manera que el incremento es lineal.

Cuando una conexin TCP no dispone de datos para emitir, no se enva ningn
tipo de informacin (por ejemplo, de control) entre el cliente y el servidor. Ello
significa que la conexin puede estar horas o das abierta si la aplicacin no la

Recordad...
... que un ACK duplicado es
un segmento con el mismo
nmero ACK que el segmento
anterior.

tin teniendo en cuenta las situaciones siguientes:

Si la ventana de congestin es inferior o igual que el umbral, el transmisor

Temporizador keepalive

TCP/IP: los protocolos de la red Internet

Keepalive
El valor por defecto del temporizador es de dos horas, aunque puede activarse con otro
valor.

Temporizador keepalive
Cuando una conexin TCP no dispone de datos para emitir, no se enva ningn
tipo de informacin (por ejemplo, de control) entre el cliente y el servidor. Ello
significa que la conexin puede estar horas o das abierta si la aplicacin no la

Keepalive
El valor por defecto del temporizador es de dos horas, aunque puede activarse con otro
valor.

FUOC P03/75064/00977

74

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

74

cierra. Puede darse el caso de que la mquina haya cado, o haya rebotado, en

cierra. Puede darse el caso de que la mquina haya cado, o haya rebotado, en

uno de los extremos y que la otra no se haya dado cuenta puesto que no ha ha-

uno de los extremos y que la otra no se haya dado cuenta puesto que no ha ha-

bido ningn tipo de intercambio de informacin entre los extremos. El tempo-

bido ningn tipo de intercambio de informacin entre los extremos. El tempo-

rizador keepalive no forma parte de la especificacin TCP, aunque es interesante

rizador keepalive no forma parte de la especificacin TCP, aunque es interesante

saber qu hace, puesto que existen algunas versiones TCP que lo implementan.

saber qu hace, puesto que existen algunas versiones TCP que lo implementan.

Se recomienda que sea la aplicacin la que active este temporizador si le interesa.

Se recomienda que sea la aplicacin la que active este temporizador si le interesa.

Si no hay actividad durante dos horas (valor del temporizador keepalive), el ser-

Si no hay actividad durante dos horas (valor del temporizador keepalive), el ser-

vidor enva un segmento de prueba al cliente.

vidor enva un segmento de prueba al cliente.

Se pueden dar cuatro situaciones:

Se pueden dar cuatro situaciones:

Si el cliente todava corre, responde, y el servidor reinicializa el temporiza-

Si el cliente todava corre, responde, y el servidor reinicializa el temporiza-

dor keepalive dos horas despus. Si durante estas ltimas hay intercambio

dor keepalive dos horas despus. Si durante estas ltimas hay intercambio

de datos, el temporizador se reinicializa dos horas despus del mismo.

de datos, el temporizador se reinicializa dos horas despus del mismo.

Si el TCP cliente ha cado y no ha rebotado, el servidor enva hasta diez seg-

Si el TCP cliente ha cado y no ha rebotado, el servidor enva hasta diez seg-

mentos de pruebas cada 75 segundos. Si no recibe respuesta, el servidor cie-

mentos de pruebas cada 75 segundos. Si no recibe respuesta, el servidor cie-

rra la conexin.

rra la conexin.

Si la mquina cliente ha cado y ha rebotado, el servidor recibir una respuesta para que cierre la conexin.

Si la mquina cliente ha cado y ha rebotado, el servidor recibir una respuesta para que cierre la conexin.

El cliente est corriendo, pero no es asequible (por ejemplo, ha cado algn

El cliente est corriendo, pero no es asequible (por ejemplo, ha cado algn

direccionador y no hay manera de llegar a l). Esta situacin es equivalente

direccionador y no hay manera de llegar a l). Esta situacin es equivalente

a la segunda, puesto que el servidor no tiene manera de saber si el cliente

a la segunda, puesto que el servidor no tiene manera de saber si el cliente

no es asequible a causa de un error de la red o de una cada de la mquina.

no es asequible a causa de un error de la red o de una cada de la mquina.

Si la mquina cliente simplemente ha rebotado, el proceso aplicacin cliente

Si la mquina cliente simplemente ha rebotado, el proceso aplicacin cliente

habr cerrado la conexin TCP enviando un segmento FIN al servidor.

habr cerrado la conexin TCP enviando un segmento FIN al servidor.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

75

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

75

Resumen

Resumen

El objetivo principal de este mdulo didctico ha sido introducir los protoco-

El objetivo principal de este mdulo didctico ha sido introducir los protoco-

los que se utilizan en la red Internet. Estos ltimos son, en el nivel de interco-

los que se utilizan en la red Internet. Estos ltimos son, en el nivel de interco-

nexin, el IP y asociados, y en el nivel de transporte, el UDP y el TCP.

nexin, el IP y asociados, y en el nivel de transporte, el UDP y el TCP.

Se ha puesto especial nfasis en el encapsulamiento de la informacin y su

Se ha puesto especial nfasis en el encapsulamiento de la informacin y su

relacin con los protocolos orientados al nivel de red (por ejemplo, PPP y

relacin con los protocolos orientados al nivel de red (por ejemplo, PPP y

Ethernet).

Ethernet).

Uno de los puntos ms importantes en el estudio de Internet es la asignacin de

Uno de los puntos ms importantes en el estudio de Internet es la asignacin de

direcciones. Cada interfaz en la red Internet debe tener una direccin IP que

direcciones. Cada interfaz en la red Internet debe tener una direccin IP que

la identifique en la red. Esta direccin debe ser nica. Las direcciones IP no

la identifique en la red. Esta direccin debe ser nica. Las direcciones IP no

slo identifican las interfaces de la red, sino tambin la red o subred a la que

slo identifican las interfaces de la red, sino tambin la red o subred a la que

pertenece la interfaz. De este modo, es posible direccionar los datagramas IP de

pertenece la interfaz. De este modo, es posible direccionar los datagramas IP de

un direccionador a otro utilizando la identificacin de red de la direccin IP.

un direccionador a otro utilizando la identificacin de red de la direccin IP.

Adems del protocolo IP, en el nivel de interconexin se definen diferentes

Adems del protocolo IP, en el nivel de interconexin se definen diferentes

protocolos asociados a IP. Entre los ms significativos se encuentra el ARP,

protocolos asociados a IP. Entre los ms significativos se encuentra el ARP,

para el mapeado de direcciones IP en direcciones fsicas, o el ICMP, para co-

para el mapeado de direcciones IP en direcciones fsicas, o el ICMP, para co-

municar mensajes de errores y otras condiciones que requieren la atencin del

municar mensajes de errores y otras condiciones que requieren la atencin del

protocolo IP.

protocolo IP.

El objetivo principal del nivel de transporte es entregar la informacin a los

El objetivo principal del nivel de transporte es entregar la informacin a los

niveles orientados a la aplicacin en los extremos de la red. En la jerarqua de

niveles orientados a la aplicacin en los extremos de la red. En la jerarqua de

protocolos TCP/IP se definen dos protocolos de transporte:

protocolos TCP/IP se definen dos protocolos de transporte:

1) El UDP, que es un protocolo no orientado a la conexin. Por tanto, no efec-

1) El UDP, que es un protocolo no orientado a la conexin. Por tanto, no efec-

ta ningn control de errores ni de flujo. Si un datagrama UDP llega equivo-

ta ningn control de errores ni de flujo. Si un datagrama UDP llega equivo-

cado (el UDP utiliza un cdigo detector de errores), el UDP lo descarta y no lo

cado (el UDP utiliza un cdigo detector de errores), el UDP lo descarta y no lo

entrega a la aplicacin. Esta ltima deber ser capaz de responder a este tipo

entrega a la aplicacin. Esta ltima deber ser capaz de responder a este tipo

de servicio o deber asumir la prdida de la informacin. Este tipo de servicio

de servicio o deber asumir la prdida de la informacin. Este tipo de servicio

puede ser til en aplicaciones en tiempo real, en las que es ms importante que

puede ser til en aplicaciones en tiempo real, en las que es ms importante que

la informacin llegue cuando le toca; es decir, con un retraso delimitado, que

la informacin llegue cuando le toca; es decir, con un retraso delimitado, que

no que se pierda una parte de la misma.

no que se pierda una parte de la misma.

2) El TCP, que es un protocolo orientado a la conexin. Habr una fase de es-

2) El TCP, que es un protocolo orientado a la conexin. Habr una fase de es-

tablecimiento de la conexin (el llamado procedimiento three-way handshake),

tablecimiento de la conexin (el llamado procedimiento three-way handshake),

una fase de transmisin de la informacin y una fase de finalizacin de la co-

una fase de transmisin de la informacin y una fase de finalizacin de la co-

nexin. El TCP entregar la informacin a la aplicacin totalmente libre de

nexin. El TCP entregar la informacin a la aplicacin totalmente libre de

errores. Para conseguirlo, necesita efectuar un control de errores y de flujo. El

errores. Para conseguirlo, necesita efectuar un control de errores y de flujo. El

TCP utiliza un cdigo detector de errores junto con un protocolo de retrans-

TCP utiliza un cdigo detector de errores junto con un protocolo de retrans-

misiones para recuperar la informacin errnea. Como las memorias interme-

misiones para recuperar la informacin errnea. Como las memorias interme-

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

76

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

76

dias de recepcin se pueden desbordar, el TCP utiliza un control de flujo por

dias de recepcin se pueden desbordar, el TCP utiliza un control de flujo por

ventana deslizante. El TCP debe dimensionar correctamente los temporizado-

ventana deslizante. El TCP debe dimensionar correctamente los temporizado-

res de retransmisin. Existen diferentes algoritmos, entre los que destaca el de

res de retransmisin. Existen diferentes algoritmos, entre los que destaca el de

Jacobson, basado en una estimacin del RTT (tiempo de ida y vuelta de la in-

Jacobson, basado en una estimacin del RTT (tiempo de ida y vuelta de la in-

formacin entre los extremos TCP), y el clculo de la medida y la varianza del

formacin entre los extremos TCP), y el clculo de la medida y la varianza del

RTT. Asimismo, hemos estudiado los algoritmos que el TCP utiliza para aliviar

RTT. Asimismo, hemos estudiado los algoritmos que el TCP utiliza para aliviar

la congestin en la red: slow start y congestion avoidance.

la congestin en la red: slow start y congestion avoidance.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

77

TCP/IP: los protocolos de la red Internet

Ejercicios de autoevaluacin
1. Enviamos 8.192 bytes cruzando cuatro direccionadores (asumimos que estos ltimos son
del tipo store and forward, cada uno de los cuales conectado a una lnea telefnica T1 a
1.544.000 bps). Consideraremos que el tiempo de propagacin entre el primer y el ltimo
direccionador es una constante K.
a) Cul es el tiempo mximo para transmitir la informacin si la longitud del segmento de
datos es de 4.096 bytes?
b) Cul es el tiempo mximo para transmitir la informacin si la longitud del segmento de
datos es de 512 bytes?
2. Cuando se establece una conexin entre las estaciones argos y helios, tiene lugar el proceso
siguiente:

FUOC P03/75064/00977

77

TCP/IP: los protocolos de la red Internet

Ejercicios de autoevaluacin
Nota
Este ejercicio tiene como
finalidad averiguar si es
mejor utilizar segmentos
grandes o pequeos en la
transmisin de datos, y est
propuesto en:
W.R. Stevens (1994).

1. Enviamos 8.192 bytes cruzando cuatro direccionadores (asumimos que estos ltimos son
del tipo store and forward, cada uno de los cuales conectado a una lnea telefnica T1 a
1.544.000 bps). Consideraremos que el tiempo de propagacin entre el primer y el ltimo
direccionador es una constante K.
a) Cul es el tiempo mximo para transmitir la informacin si la longitud del segmento de
datos es de 4.096 bytes?
b) Cul es el tiempo mximo para transmitir la informacin si la longitud del segmento de
datos es de 512 bytes?
2. Cuando se establece una conexin entre las estaciones argos y helios, tiene lugar el proceso
siguiente:

15:56:54.796091 argos.1023 > helios.login S 3541904332: 3641904331 (0)


win 31744 <mss 1460>

15:56:54.796091 argos.1023 > helios.login S 3541904332: 3641904331 (0)


win 31744 <mss 1460>

15:57:00.796591 argos.1023 > helios.login S 3541904332: 3641904331 (0)


win 31744 <mss 1460>

15:57:00.796591 argos.1023 > helios.login S 3541904332: 3641904331 (0)


win 31744 <mss 1460>

15:57:13.797035 argos.1023 > helios.login S 3541904332: 3641904331 (0)


win 31744 <mss 1460>

15:57:13.797035 argos.1023 > helios.login S 3541904332: 3641904331 (0)


win 31744 <mss 1460>

15:57:13.797035 helios.login > argos.1023 S 548133143: 548133143 (0)


ack 34519043333 win 8760 <mss 1460>

15:57:13.797035 helios.login > argos.1023 S 548133143: 548133143 (0)


ack 34519043333 win 8760 <mss 1460>

15:56:54.797035 argos.1023 > helios.login .ack 548133144 win 31744

15:56:54.797035 argos.1023 > helios.login .ack 548133144 win 31744

El primer temporizador de argos se inicializa a 6 segundos. Determinad cunto valen el segundo y el tercer temporizador de argos.

El primer temporizador de argos se inicializa a 6 segundos. Determinad cunto valen el segundo y el tercer temporizador de argos.

3. Un TCP transmisor ha advertido, durante el establecimiento de una conexin, un MSS de


512 bytes y durante la transferencia de la informacin advierte una ventana de 512 bytes. Un
TCP receptor advierte ventanas de 2.048 bytes. Dibujad un diagrama de tiempo en el que se
perciba el algoritmo slow start.

3. Un TCP transmisor ha advertido, durante el establecimiento de una conexin, un MSS de


512 bytes y durante la transferencia de la informacin advierte una ventana de 512 bytes. Un
TCP receptor advierte ventanas de 2.048 bytes. Dibujad un diagrama de tiempo en el que se
perciba el algoritmo slow start.

Nota
Este ejercicio tiene como
finalidad averiguar si es
mejor utilizar segmentos
grandes o pequeos en la
transmisin de datos, y est
propuesto en:
W.R. Stevens (1994).

78

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

78

FUOC P03/75064/00977

Solucionario

Solucionario

Ejercicios de autoevaluacin

Ejercicios de autoevaluacin

1.

1.

a) En el primer caso, utiliza segmentos con un MSS igual a 4.096 bytes. Por tanto, necesita
dos segmentos. Es preciso aadir a estos segmentos los 40 bytes de cabecera TCP e IP. Por
consiguiente, los direccionadores transmitirn paquetes de (4.096 + 40) bytes. Como aplicamos la tcnica de store and forward, para transmitir un paquete necesitamos este tiempo:

a) En el primer caso, utiliza segmentos con un MSS igual a 4.096 bytes. Por tanto, necesita
dos segmentos. Es preciso aadir a estos segmentos los 40 bytes de cabecera TCP e IP. Por
consiguiente, los direccionadores transmitirn paquetes de (4.096 + 40) bytes. Como aplicamos la tcnica de store and forward, para transmitir un paquete necesitamos este tiempo:

( 4.096 + 40 ) 8 bits
T 4.096 = ------------------------------------------------------ = 21, 4 ms.
1.544.000 bits/s

( 4.096 + 40 ) 8 bits
T 4.096 = ------------------------------------------------------ = 21, 4 ms.
1.544.000 bits/s

El tiempo que se necesita para transmitir la totalidad de la informacin ser la propagacin


ms el nmero de paquetes (n), ms el nmero de enlaces (E) menos 1 por la transmisin.
Hay n = 2 paquetes y el nmero de enlaces es de E = 3. Ello significa lo siguiente:

El tiempo que se necesita para transmitir la totalidad de la informacin ser la propagacin


ms el nmero de paquetes (n), ms el nmero de enlaces (E) menos 1 por la transmisin.
Hay n = 2 paquetes y el nmero de enlaces es de E = 3. Ello significa lo siguiente:

TTOTAL = K + (n + E - 1) T4.096 = K + 4 T4.096 = K + 85,6 ms.

TTOTAL = K + (n + E - 1) T4.096 = K + 4 T4.096 = K + 85,6 ms.

b) Si los segmentos tienen un MSS de 512 bytes, entonces habr 16 paquetes (n = 16). El tiempo de transmisin de cada paquete ser el siguiente:

b) Si los segmentos tienen un MSS de 512 bytes, entonces habr 16 paquetes (n = 16). El tiempo de transmisin de cada paquete ser el siguiente:

( 512 + 40 ) 8 bits
T 512 = ------------------------------------------------ = 2, 9 ms.
1.544.000 bits/s

( 512 + 40 ) 8 bits
T 512 = ------------------------------------------------ = 2, 9 ms.
1.544.000 bits/s

En total tardaremos:

En total tardaremos:

TTOTAL = K + (n + E - 1) T512 = K + 18 T512 = K + 52,2 ms.

TTOTAL = K + (n + E - 1) T512 = K + 18 T512 = K + 52,2 ms.

Por tanto, el retraso total si utilizamos un MSS inferior, es menor que si utilizamos uno mayor. Sin embargo, ello no significa que sea mejor enviar segmentos con MSS pequeos. Hay
otros factores que argumentan que, aunque el retraso sea menor, cuesta ms enviar muchos paquetes pequeos que pocos grandes. La reduccin del coste al enviar paquetes grandes se consigue en los costes asociados a la red, como la relacin entre el tamao de los datos
y la cabecera, las decisiones de direccionamientos (cuantos ms paquetes, ms decisiones) y
el coste del proceso en los protocolos (cuantos ms paquetes, ms interrupciones).

Por tanto, el retraso total si utilizamos un MSS inferior, es menor que si utilizamos uno mayor. Sin embargo, ello no significa que sea mejor enviar segmentos con MSS pequeos. Hay
otros factores que argumentan que, aunque el retraso sea menor, cuesta ms enviar muchos paquetes pequeos que pocos grandes. La reduccin del coste al enviar paquetes grandes se consigue en los costes asociados a la red, como la relacin entre el tamao de los datos
y la cabecera, las decisiones de direccionamientos (cuantos ms paquetes, ms decisiones) y
el coste del proceso en los protocolos (cuantos ms paquetes, ms interrupciones).

Hay autores que estn a favor de tamaos grandes y otros que prefieren tamaos pequeos.

Hay autores que estn a favor de tamaos grandes y otros que prefieren tamaos pequeos.

2. El primer Tout est inicializado a 6 segundos. De las trazas del tcpdump podemos deducir
que el servidor en helios no responde y que el temporizador ha saltado. argos ha retrasnmitido
una peticin de conexin y activa el temporizador por medio del algoritmo de Karn; es decir,
mediane el algoritmo de back off para calcular el nuevo valor del Tout:

2. El primer Tout est inicializado a 6 segundos. De las trazas del tcpdump podemos deducir
que el servidor en helios no responde y que el temporizador ha saltado. argos ha retrasnmitido
una peticin de conexin y activa el temporizador por medio del algoritmo de Karn; es decir,
mediane el algoritmo de back off para calcular el nuevo valor del Tout:

Tout = 2 Tout = 12 s.

Tout = 2 Tout = 12 s.

TCP/IP: los protocolos de la red Internet

79

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

79

FUOC P03/75064/00977

helios no responde a la segunda peticin de argos. Por tanto, despus de 12 segundos, el temporizador salta y argos vuelve a retransmitir la peticin de conexin. Ahora vuelve a utilizar el
algoritmo de back off para calcular el temporizador. Ello significa que Tout valdr lo siguiente:

helios no responde a la segunda peticin de argos. Por tanto, despus de 12 segundos, el temporizador salta y argos vuelve a retransmitir la peticin de conexin. Ahora vuelve a utilizar el
algoritmo de back off para calcular el temporizador. Ello significa que Tout valdr lo siguiente:

Tout = 4 Tout = 24 s.

Tout = 4 Tout = 24 s.

3. El diagrama de tiempo en que se representa el algoritmo slow start por la transimisin indicada es el siguiente:

3. El diagrama de tiempo en que se representa el algoritmo slow start por la transimisin indicada es el siguiente:

Como puede observarse, el slow start empieza enviando un segmento de tamao MSS. En un
inicio, la ventana de congestin es igual a MSS (512 bytes) y la ventana de transmisin tiene
una longitud de 2.048 bytes. La secuencia de acontecimientos es la siguiente:

Como puede observarse, el slow start empieza enviando un segmento de tamao MSS. En un
inicio, la ventana de congestin es igual a MSS (512 bytes) y la ventana de transmisin tiene
una longitud de 2.048 bytes. La secuencia de acontecimientos es la siguiente:

a) El TCP transmisor enva un segmento de tamao MSS = 512 bytes. El TCP receptor reconoce estos 512 bytes con un ACK.

a) El TCP transmisor enva un segmento de tamao MSS = 512 bytes. El TCP receptor reconoce estos 512 bytes con un ACK.

b) El slow start incrementa su ventana de congestin en dos segmentos:

b) El slow start incrementa su ventana de congestin en dos segmentos:

Ventana de congestin = 2 MSS = 1.024 bytes.

Ventana de congestin = 2 MSS = 1.024 bytes.

Puede enviar el mnimo entre la ventana de congestin y la ventana de transmisin. Ello


significa que puede enviar 1.024 bytes. Como el tamao mximo de los segmentos es de
512 bytes, entonces transmite dos segmentos. El TCP receptor reconoce estos 1.024 bytes
con un ACK.

Puede enviar el mnimo entre la ventana de congestin y la ventana de transmisin. Ello


significa que puede enviar 1.024 bytes. Como el tamao mximo de los segmentos es de
512 bytes, entonces transmite dos segmentos. El TCP receptor reconoce estos 1.024 bytes
con un ACK.

c) El ACK reconoce dos segmentos; por tanto, el slow start puede incrementar la ventana
de congestin en un segmento por cada uno de los ACK que recibe. Aunque fsicamente
slo reciba un solo ACK, este ltimo vale por dos. Por tanto, la ventana de congestin
aumenta de dos segmentos a cuatro:

c) El ACK reconoce dos segmentos; por tanto, el slow start puede incrementar la ventana
de congestin en un segmento por cada uno de los ACK que recibe. Aunque fsicamente
slo reciba un solo ACK, este ltimo vale por dos. Por tanto, la ventana de congestin
aumenta de dos segmentos a cuatro:

Ventana de congestin = 4 MSS = 2.048 bytes.

Ventana de congestin = 4 MSS = 2.048 bytes.

TCP/IP: los protocolos de la red Internet

80

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

80

FUOC P03/75064/00977

Ahora puede transmitir lo mnimo entre la ventana de congestin y la de transmisin. Ello


significa que puede transmitir 2.048 bytes divididos en cuatro segmentos de tamao mximo. El receptor reconoce estos cuatro segmentos con un ACK.

Ahora puede transmitir lo mnimo entre la ventana de congestin y la de transmisin. Ello


significa que puede transmitir 2.048 bytes divididos en cuatro segmentos de tamao mximo. El receptor reconoce estos cuatro segmentos con un ACK.

d) El TCP transmisor recibe un ACK que vale por cuatro segmentos. Incrementa la ventana
de congestin a 8 segmentos:

d) El TCP transmisor recibe un ACK que vale por cuatro segmentos. Incrementa la ventana
de congestin a 8 segmentos:

Ventana de congestin = 8 MSS = 4.096 bytes.

Ventana de congestin = 8 MSS = 4.096 bytes.

Sin embargo, la ventana de transmisin contina valiendo 2.048 bytes. Ello significa que no
puede transmitir ms de 2.048 bytes, es decir, cuatro segmentos de tamao mximo.

Sin embargo, la ventana de transmisin contina valiendo 2.048 bytes. Ello significa que no
puede transmitir ms de 2.048 bytes, es decir, cuatro segmentos de tamao mximo.

Glosario

Glosario

address resolution protocol m Vase ARP.

address resolution protocol m Vase ARP.

ARP m Protocolo para el mapeado automtico de direcciones MAC con direcciones IP.
en address resolution protocol

ARP m Protocolo para el mapeado automtico de direcciones MAC con direcciones IP.
en address resolution protocol

bridge m Vase puente.

bridge m Vase puente.

concentrador m Equipo para la interconexin de terminales de una misma LAN. Todos los
equipos interconectados por medio de un concentrador pertenecen a un mismo dominio de
colisin.
en hub

concentrador m Equipo para la interconexin de terminales de una misma LAN. Todos los
equipos interconectados por medio de un concentrador pertenecen a un mismo dominio de
colisin.
en hub

conmutador m Equipo para la interconexin de terminales de una misma LAN. Hay algn
tipo que permite la interconexin de diferentes concentradores.
en switch

conmutador m Equipo para la interconexin de terminales de una misma LAN. Hay algn
tipo que permite la interconexin de diferentes concentradores.
en switch

cortafuegos m Direccionador con capacidad de filtrado de paquetes de acuerdo con unas


reglas establecidas. Estas ltimas se definen en cada instalacin de acuerdo con los problemas
de seguridad de la red en que se instala.
en firewall

cortafuegos m Direccionador con capacidad de filtrado de paquetes de acuerdo con unas


reglas establecidas. Estas ltimas se definen en cada instalacin de acuerdo con los problemas
de seguridad de la red en que se instala.
en firewall

Ethernet m Estndar de facto parcialmente compatible con el IEEE802.3. Ambos utilizan el


algoritmo CSMA/CD 1 persistente a 10 Mbps o 100 Mbps. Ethernet (red de ter) hace alusin tanto al hecho de que antiguamente se crea que el espacio que separaba a los astros estaba formado por un material (ter) capaz de transportar la luz, como al hecho de que la
arquitectura de su red competidora, la Token Ring, necesitaba bastantes ms elementos,
aparte del ter.

Ethernet m Estndar de facto parcialmente compatible con el IEEE802.3. Ambos utilizan el


algoritmo CSMA/CD 1 persistente a 10 Mbps o 100 Mbps. Ethernet (red de ter) hace alusin tanto al hecho de que antiguamente se crea que el espacio que separaba a los astros estaba formado por un material (ter) capaz de transportar la luz, como al hecho de que la
arquitectura de su red competidora, la Token Ring, necesitaba bastantes ms elementos,
aparte del ter.

firewall m Vase cortafuegos.

firewall m Vase cortafuegos.

hacker m Individuo (en argot) que se dedica a entrar en sistemas ajenos por medio de la red,
aprovechando defectos de su configuracin o gestin, o bien defectos de los sistemas que la
componen.

hacker m Individuo (en argot) que se dedica a entrar en sistemas ajenos por medio de la red,
aprovechando defectos de su configuracin o gestin, o bien defectos de los sistemas que la
componen.

hub m Vase concentrador.

hub m Vase concentrador.

ICMP m Protocolo de nivel de red utilizado slo para tareas de gestin del nivel de red.
en Internet control message protocol

ICMP m Protocolo de nivel de red utilizado slo para tareas de gestin del nivel de red.
en Internet control message protocol

IEEE m Asociacin de Estados Unidos dedicada, entre otras cosas, a tareas de estandarizacin.
en Institute of Electric and Electronic Engineers

IEEE m Asociacin de Estados Unidos dedicada, entre otras cosas, a tareas de estandarizacin.
en Institute of Electric and Electronic Engineers

initial sequence number m Vase ISN.

initial sequence number m Vase ISN.

Institute of Electric and Electronic Engineers m Vase IEEE.

Institute of Electric and Electronic Engineers m Vase IEEE.

integrated services digital network f Vase RDSI.

integrated services digital network f Vase RDSI.

Internet control message protocol m Vase ICMP.

Internet control message protocol m Vase ICMP.

Internet protocol m Vase IP.

Internet protocol m Vase IP.

IP m Protocolo de nivel de red utilizado en Internet.


en Internet protocol

IP m Protocolo de nivel de red utilizado en Internet.


en Internet protocol

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

81

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

81

ISN m Nmero de secuencia inicial que es asignado al principio de la conexin. A partir de


este momento, el TCP numera los bytes consecutivamente a partir de este nmero.
en initial sequence number

ISN m Nmero de secuencia inicial que es asignado al principio de la conexin. A partir de


este momento, el TCP numera los bytes consecutivamente a partir de este nmero.
en initial sequence number

LAN f red de rea local.


en local area network

LAN f red de rea local.


en local area network

local area network f Vase LAN.

local area network f Vase LAN.

MAC m Protocolo de control de acceso al medio utilizado por las estaciones de una misma
red de rea local como, por ejemplo, Ethernet o IEEE802.5 (Token Ring).
en medium access control

MAC m Protocolo de control de acceso al medio utilizado por las estaciones de una misma
red de rea local como, por ejemplo, Ethernet o IEEE802.5 (Token Ring).
en medium access control

maximum segment size f Vase MSS.

maximum segment size f Vase MSS.

medium access control m Vase MAC.

medium access control m Vase MAC.

MSS f Define la longitud mxima de datos que el TCP enviar. Se especifica durante el establecimiento de la conexin.
en maximum segment size

MSS f Define la longitud mxima de datos que el TCP enviar. Se especifica durante el establecimiento de la conexin.
en maximum segment size

puente m Tipo de conmutador utilizado para interconectar las LAN.


en bridge

puente m Tipo de conmutador utilizado para interconectar las LAN.


en bridge

RDSI f red digital de servicios integrados.


en integrated services digital network

RDSI f red digital de servicios integrados.


en integrated services digital network

read only memory f Vase ROM.

read only memory f Vase ROM.

ROM f Memoria slo de lectura utilizada para almacenar datos y/o programas pequeos.
en read only memory

ROM f Memoria slo de lectura utilizada para almacenar datos y/o programas pequeos.
en read only memory

switch m Vase conmutador.

switch m Vase conmutador.

Bibliografa

Bibliografa

Chapman, D.B.; Zwicky, E.D. (1995). Building Internet Firewalls. Sebastopol: OReilly &
Associates, Inc.

Chapman, D.B.; Zwicky, E.D. (1995). Building Internet Firewalls. Sebastopol: OReilly &
Associates, Inc.

Comer, D.E. (1995). Principles, Protocols and Architecture. Internetworking with TCP/IP
(vol. 1). Hertfordshire: Prentice Hall.

Comer, D.E. (1995). Principles, Protocols and Architecture. Internetworking with TCP/IP
(vol. 1). Hertfordshire: Prentice Hall.

Stevens, W.R. (1998). The Protocols TCP/IP Illustrated (vol. I). Wilmington: AddisonWesley, 1994.

Stevens, W.R. (1998). The Protocols TCP/IP Illustrated (vol. I). Wilmington: AddisonWesley, 1994.

Thomas, S.A. (1996). IPng and the TCP/IP protocols, implementing the next generation Internet.
Nueva York: John Wiley & Sons, Inc.

Thomas, S.A. (1996). IPng and the TCP/IP protocols, implementing the next generation Internet.
Nueva York: John Wiley & Sons, Inc.

Wright, G.R.; Stevens, W.R. (1995). The implementation. TCP/IP Illustrated (vol. II).
Wilmington: Addison-Wesley.

Wright, G.R.; Stevens, W.R. (1995). The implementation. TCP/IP Illustrated (vol. II).
Wilmington: Addison-Wesley.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

82

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

Anexos

Anexos

Anexo 1

Anexo 1

Aplicaciones mencionadas en el texto

Aplicaciones mencionadas en el texto

1) Aplicaciones estndar

1) Aplicaciones estndar

A continuacin, mostramos las aplicaciones estndar que se han explicado en este mdulo
didctico e indicamos los sistemas en que se pueden encontrar y qu utilidades tienen:
ping [UNIX, NT, MSWindows]: por medio de paquetes ICMP (del tipo peticin de eco y
respuesta de eco) permite saber si una mquina est funcionando o no y tener una idea de
cul es el retraso de ida y vuelta (round-trip). Asimismo, permite saber por qu mquinas pasa
el paquete hasta que llega a destino. Para esta funcin, va mejor el programa traceroute,
a causa de las limitaciones inherentes a los paquetes ICMP.
traceroute [UNIX, NT: tracert, MSWindows: tracert]: permite averiguar la ruta que
se sigue desde el equipo local hasta un destino cualquiera de Internet. Marca los retrasos
existentes en cada uno de los nodos que es preciso cruzar. Se basa en el campo TTL del
paquete IP y los mensajes ICMP-time-to-live-exceeded. Esta aplicacin no est disponible en
algunas distribuciones de UNIX; s que se puede conseguir como programa de libre distribucin (freeware) en cdigo fuente (lenguaje C).

Ms informacin
En los sistemas UNIX podris
encontrar ms informacin utilizando el comando man. Por
ejemplo, para saber ms detalles del comando route de
UNIX podis ejecutar:
$ man route
En MSWindows, podis obtener ms informacin de algunos comandos aadiendo /?
como argumento:
C:> route /?

82

A continuacin, mostramos las aplicaciones estndar que se han explicado en este mdulo
didctico e indicamos los sistemas en que se pueden encontrar y qu utilidades tienen:
ping [UNIX, NT, MSWindows]: por medio de paquetes ICMP (del tipo peticin de eco y
respuesta de eco) permite saber si una mquina est funcionando o no y tener una idea de
cul es el retraso de ida y vuelta (round-trip). Asimismo, permite saber por qu mquinas pasa
el paquete hasta que llega a destino. Para esta funcin, va mejor el programa traceroute,
a causa de las limitaciones inherentes a los paquetes ICMP.
traceroute [UNIX, NT: tracert, MSWindows: tracert]: permite averiguar la ruta que
se sigue desde el equipo local hasta un destino cualquiera de Internet. Marca los retrasos
existentes en cada uno de los nodos que es preciso cruzar. Se basa en el campo TTL del
paquete IP y los mensajes ICMP-time-to-live-exceeded. Esta aplicacin no est disponible en
algunas distribuciones de UNIX; s que se puede conseguir como programa de libre distribucin (freeware) en cdigo fuente (lenguaje C).

arp [UNIX, NT, MSWindows]: permite consultar y modificar la tabla ARP (cach ARP) de
una mquina.

arp [UNIX, NT, MSWindows]: permite consultar y modificar la tabla ARP (cach ARP) de
una mquina.

route [UNIX, NT, MSWindows]: sirve para consultar y modificar la tabla de direccionamiento IP de una mquina conectada a Internet.

route [UNIX, NT, MSWindows]: sirve para consultar y modificar la tabla de direccionamiento IP de una mquina conectada a Internet.

ifconfig [UNIX, NT: ipconfig, MSWindows: ipconfig]: permite consultar el estado


de las tarjetas de red disponibles en el sistema local.
netstat [UNIX, NT, MSWindows]: proporciona estadsticas de los protocolos TCP y
UDP. Permite listar los puertos que se escuchan. Muestra el estado en que se encuentran
los sockets TCP. Si queris un listado de todos los sockets activos y puertos abiertos, haced
netstat -a, y, si os interesan otras variantes, consultad la ayuda (netstat -help en
Windows, o man netstat en UNIX).
telnet [UNIX, NT, MSWindows]: ofrece, aparte de la principal emulacin de terminal,
conectar y experimentar los protocolos ASCII.

Derechos de acceso
Todos los comandos que se
muestran dentro de este
anexo estn parcial o totalmente limitados a ser utilizados por todos los usuarios a
excepcin del superusuario
(root en UNIX o Administrator
en MSWindowsNT).
MSWindows95/98 es menos
escrupoloso en este aspecto.

ifconfig [UNIX, NT: ipconfig, MSWindows: ipconfig]: permite consultar el estado


de las tarjetas de red disponibles en el sistema local.
netstat [UNIX, NT, MSWindows]: proporciona estadsticas de los protocolos TCP y
UDP. Permite listar los puertos que se escuchan. Muestra el estado en que se encuentran
los sockets TCP. Si queris un listado de todos los sockets activos y puertos abiertos, haced
netstat -a, y, si os interesan otras variantes, consultad la ayuda (netstat -help en
Windows, o man netstat en UNIX).
telnet [UNIX, NT, MSWindows]: ofrece, aparte de la principal emulacin de terminal,
conectar y experimentar los protocolos ASCII.

2) Aplicaciones no estndar

2) Aplicaciones no estndar

netcat [UNIX, NT, MSWindows (freeware-lenguaje C)]: esta aplicacin nos permite utilizar conexiones TCP y UDP desde la lnea de comandos (por ejemplo, transmitir un fichero)
o comprobar qu puertos tiene abiertos una determinada mquina, entre otros servicios.
Su autor es Hobbit.

netcat [UNIX, NT, MSWindows (freeware-lenguaje C)]: esta aplicacin nos permite utilizar conexiones TCP y UDP desde la lnea de comandos (por ejemplo, transmitir un fichero)
o comprobar qu puertos tiene abiertos una determinada mquina, entre otros servicios.
Su autor es Hobbit.

tcpdump [UNIX (freeware-lenguaje C)]: permite analizar el trfico de la red por medio de
conexin (LAN o punto a punto). Al contrario de lo que su nombre indica, es capaz de
interpretar los paquetes no slo en el mbito TCP, sino tambin en el IP, red, y aplicacin
(para aplicaciones comunes). Es una herramienta imprescindible para cualquier administrador de sistemas, aunque no aparezca en las distribuciones de las diferentes variantes de
UNIX. El cdigo es de libre distribucin. Sus autores son Van Jacobson, Craig Leres y Steven
McCanne, de la Universidad de California, aunque el programa en que se basaba el original, el Etherfind, era propiedad de Sun Microsystems y se distribua dentro de SunOS.
A continuacin, se indican los resultados que puede mostrar el programa tcpdump.
3) El programa tcpdump
El programa tcpdump permite capturar y filtrar paquetes que cruzan una interfaz de red que
se ha activado en modo promiscuo (todos los paquetes que pasan por el medio son capturados
y filtrados). Los paquetes son procesados por un software especial que slo puede ejecutar el
superusuario (root) de la mquina.
Para ver cmo funcionan los diferentes protocolos, proporcionamos ejemplos de las trazas
que muestra el tcpdump durante el establecimiento o la terminacin de la conexin.

Nota
En LAN, el tcpdump pone
la tarjeta de red en modo promiscuo. Lo que significa que
todo el trfico de la red es visible, con lo que cualquier usuario
malintencionado (un hacker)
puede hacer un mal uso del
mismo. Por tanto, el tcpdump
y otras herramientas similares o
derivadas del tcpdump, conocidas como detectores (sniffers)
se pueden considerar como una
herramienta potencialmente
peligrosa. De hecho, lo que es
arriesgado es no utilizar al menos uno de los tres mecanismos
de proteccin ms importantes
contra los detectores: cifrado, cifrado y cifrado.

tcpdump [UNIX (freeware-lenguaje C)]: permite analizar el trfico de la red por medio de
conexin (LAN o punto a punto). Al contrario de lo que su nombre indica, es capaz de
interpretar los paquetes no slo en el mbito TCP, sino tambin en el IP, red, y aplicacin
(para aplicaciones comunes). Es una herramienta imprescindible para cualquier administrador de sistemas, aunque no aparezca en las distribuciones de las diferentes variantes de
UNIX. El cdigo es de libre distribucin. Sus autores son Van Jacobson, Craig Leres y Steven
McCanne, de la Universidad de California, aunque el programa en que se basaba el original, el Etherfind, era propiedad de Sun Microsystems y se distribua dentro de SunOS.
A continuacin, se indican los resultados que puede mostrar el programa tcpdump.
3) El programa tcpdump
El programa tcpdump permite capturar y filtrar paquetes que cruzan una interfaz de red que
se ha activado en modo promiscuo (todos los paquetes que pasan por el medio son capturados
y filtrados). Los paquetes son procesados por un software especial que slo puede ejecutar el
superusuario (root) de la mquina.
Para ver cmo funcionan los diferentes protocolos, proporcionamos ejemplos de las trazas
que muestra el tcpdump durante el establecimiento o la terminacin de la conexin.

TCP/IP: los protocolos de la red Internet

Ms informacin
En los sistemas UNIX podris
encontrar ms informacin utilizando el comando man. Por
ejemplo, para saber ms detalles del comando route de
UNIX podis ejecutar:
$ man route
En MSWindows, podis obtener ms informacin de algunos comandos aadiendo /?
como argumento:
C:> route /?

Derechos de acceso
Todos los comandos que se
muestran dentro de este
anexo estn parcial o totalmente limitados a ser utilizados por todos los usuarios a
excepcin del superusuario
(root en UNIX o Administrator
en MSWindowsNT).
MSWindows95/98 es menos
escrupoloso en este aspecto.

Nota
En LAN, el tcpdump pone
la tarjeta de red en modo promiscuo. Lo que significa que
todo el trfico de la red es visible, con lo que cualquier usuario
malintencionado (un hacker)
puede hacer un mal uso del
mismo. Por tanto, el tcpdump
y otras herramientas similares o
derivadas del tcpdump, conocidas como detectores (sniffers)
se pueden considerar como una
herramienta potencialmente
peligrosa. De hecho, lo que es
arriesgado es no utilizar al menos uno de los tres mecanismos
de proteccin ms importantes
contra los detectores: cifrado, cifrado y cifrado.

FUOC P03/75064/00977

83

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

83

Para ver cmo funciona este comando, puede utilizarse la instruccin man de UNIX (o LINUX). En este anexo ofrecemos un ejemplo del significado de la traza del tcpdump.

Para ver cmo funciona este comando, puede utilizarse la instruccin man de UNIX (o LINUX). En este anexo ofrecemos un ejemplo del significado de la traza del tcpdump.

El formato general de salida del tcpdump es el siguiente:

El formato general de salida del tcpdump es el siguiente:

Data src> dst: flag data-sqno ack window urgent options

Data src> dst: flag data-sqno ack window urgent options

El significado de los componentes del formato son los siguientes:

El significado de los componentes del formato son los siguientes:

data: este componente nos proporciona la hora en que se produjo el acontecimiento en formato hora:minutos:segundos.microsegundos (o milisegundos, segn la resolucin del reloj).

data: este componente nos proporciona la hora en que se produjo el acontecimiento en formato hora:minutos:segundos.microsegundos (o milisegundos, segn la resolucin del reloj).

src y dst: son las direcciones IP y los puertos TCP/UDP de las conexiones de fuente y de
destino.

src y dst: son las direcciones IP y los puertos TCP/UDP de las conexiones de fuente y de
destino.

flags: son una combinacin de los posibles indicadores de un segmento/datagrama


TCP/UDP: S (SYN), F (FIN), P (PUSH), R (RST) y . (que significa que no hay indicadores).

flags: son una combinacin de los posibles indicadores de un segmento/datagrama


TCP/UDP: S (SYN), F (FIN), P (PUSH), R (RST) y . (que significa que no hay indicadores).

data-sqno: describe el nmero de secuencia de la porcin de datos.

data-sqno: describe el nmero de secuencia de la porcin de datos.

ack: es el nmero de secuencia del byte siguiente que espera recibir el otro extremo
TCP/UDP.

ack: es el nmero de secuencia del byte siguiente que espera recibir el otro extremo
TCP/UDP.

window: es el tamao de la ventana que el receptor advierte al transmisor.

window: es el tamao de la ventana que el receptor advierte al transmisor.

urgent: indica que existen datos urgentes en este segmento/datagrama.

urgent: indica que existen datos urgentes en este segmento/datagrama.

options: son las opciones TCP que suelen estar entre corchetes del tipo < >; por ejemplo,
el tamao mximo del segmento (por ejemplo, <mss 1.024>).

options: son las opciones TCP que suelen estar entre corchetes del tipo < >; por ejemplo,
el tamao mximo del segmento (por ejemplo, <mss 1.024>).

Un ejemplo de una lnea que retorna el comando tcpdump sera el siguiente: supongamos
que hacemos un rlogin desde la mquina argos (fuente) hasta la mquina helios (destino).
El comando tcpdump podra devolvernos lo siguiente:

Un ejemplo de una lnea que retorna el comando tcpdump sera el siguiente: supongamos
que hacemos un rlogin desde la mquina argos (fuente) hasta la mquina helios (destino).
El comando tcpdump podra devolvernos lo siguiente:

12:34:23.165439 argos.1023 > helios.login: S 7838437: 7838437 (0)


win 4096 <mss 1024>

12:34:23.165439 argos.1023 > helios.login: S 7838437: 7838437 (0)


win 4096 <mss 1024>

12:34:23.165439 helios.login > argos.1023: S 453534: 453534 (0)


ack7838438 win 4096 <mss 1024>

12:34:23.165439 helios.login > argos.1023: S 453534: 453534 (0)


ack7838438 win 4096 <mss 1024>

La primera lnea indica lo siguiente:

La primera lnea indica lo siguiente:

a) El acontecimiento tiene lugar a las 12:34:23.165439.

a) El acontecimiento tiene lugar a las 12:34:23.165439.

b) Su origen es la mquina argos con el puerto 1.024. Su destino es la mquina helios con el
puerto login.

b) Su origen es la mquina argos con el puerto 1.024. Su destino es la mquina helios con el
puerto login.

c) El indicador S seala que es un segmento de SYN (por ejemplo, por un inicio de conexin).

c) El indicador S seala que es un segmento de SYN (por ejemplo, por un inicio de conexin).

d) Advierte un nmero de secuencia 7.838.437 y consume hasta este nmero. Conviene observar que el tcpdump escribe el nmero inicial y el final del nmero de secuencia de datos,
y, entre parntesis, la diferencia indicando la longitud del campo de datos (en este caso 0 bytes,
puesto que es un segmento de peticin de conexin). Por tanto, indica entre parntesis la
longitud del segmento de datos. Este nmero de secuencia es absoluto. Las salidas siguientes
del tcpdump indicarn los nmeros de secuecia relativos al inicial. Por ejemplo, en lugar de
indicar 7.838.437: 7.838.450, (13) en notacin absoluta, indicar 1:13, (13) en notacin relativa al ISN (se cumple que valor absoluto es igual al ISN ms el valor relativo). Lo mismo se
aplica a los nmeros de secuencia del ACK.

d) Advierte un nmero de secuencia 7.838.437 y consume hasta este nmero. Conviene observar que el tcpdump escribe el nmero inicial y el final del nmero de secuencia de datos,
y, entre parntesis, la diferencia indicando la longitud del campo de datos (en este caso 0 bytes,
puesto que es un segmento de peticin de conexin). Por tanto, indica entre parntesis la
longitud del segmento de datos. Este nmero de secuencia es absoluto. Las salidas siguientes
del tcpdump indicarn los nmeros de secuecia relativos al inicial. Por ejemplo, en lugar de
indicar 7.838.437: 7.838.450, (13) en notacin absoluta, indicar 1:13, (13) en notacin relativa al ISN (se cumple que valor absoluto es igual al ISN ms el valor relativo). Lo mismo se
aplica a los nmeros de secuencia del ACK.

e) Advierte una ventana de 4.096 bytes.

e) Advierte una ventana de 4.096 bytes.

f) Hay una peticin de tamao mximo de segmento de 1.024 bytes.

f) Hay una peticin de tamao mximo de segmento de 1.024 bytes.

La segunda lnea indica lo siguiente:

La segunda lnea indica lo siguiente:

a) El origen es la mquina helios con el puerto login. El destino es la mquina argos con el
puerto 1.023.

a) El origen es la mquina helios con el puerto login. El destino es la mquina argos con el
puerto 1.023.

b) El indicador S seala que es un segmento de SYN (por ejemplo, para un inicio de conexin).

b) El indicador S seala que es un segmento de SYN (por ejemplo, para un inicio de conexin).

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

84

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

84

c) Indica el nmero de secuencia inicial 453.534.

c) Indica el nmero de secuencia inicial 453.534.

d) Reconoce con un ACK el byte siguiente que espera del transmisor, el 7.838.438 (es decir,
7.838.437 + 1), puesto que los recibi correctamente hasta el 7.838.437).

d) Reconoce con un ACK el byte siguiente que espera del transmisor, el 7.838.438 (es decir,
7.838.437 + 1), puesto que los recibi correctamente hasta el 7.838.437).

e) Advierte una ventana de 4.096 bytes.

e) Advierte una ventana de 4.096 bytes.

f) Hay una peticin de tamao mximo de segmento de 1.024 bytes.

f) Hay una peticin de tamao mximo de segmento de 1.024 bytes.

El programa tcpdump permite escuchar, de manera sencilla, todo lo que sucede en la red. Admite toda una serie de indicadores para filtrar slo las direcciones IP de fuente o de destino
que pueden interesar, o el tipo de protocolo que se quiere escuchar (TCP, UDP, ARP, etc.).
Asimismo, admite indicadores para obtener el campo de datos, para filtrar un nmero fijo de
segmentos, etc. Para ver todas las posibles opciones que permite el programa tcpdump se utiliza el comando man.

El programa tcpdump permite escuchar, de manera sencilla, todo lo que sucede en la red. Admite toda una serie de indicadores para filtrar slo las direcciones IP de fuente o de destino
que pueden interesar, o el tipo de protocolo que se quiere escuchar (TCP, UDP, ARP, etc.).
Asimismo, admite indicadores para obtener el campo de datos, para filtrar un nmero fijo de
segmentos, etc. Para ver todas las posibles opciones que permite el programa tcpdump se utiliza el comando man.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

85

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

85

Anexo 2

Anexo 2

Direcciones especiales

Direcciones especiales

Las direcciones especiales ms importantes son las siguientes:

Las direcciones especiales ms importantes son las siguientes:

Direccin 0.0.0.0: seala el mismo ordenador que lo enva. Posee dos funciones bsicas:

Direccin 0.0.0.0: seala el mismo ordenador que lo enva. Posee dos funciones bsicas:

Aparecer como direccin de origen en paquetes IP generados por estaciones sin direccin IP asignada. Por norma general, slo sale mientras la estacin trata de averiguar su
direccin por medio de protocolos como el RARP (reverse address resolution protocol), el
BOOTP (bootstrap protocol) o el DHCP (dynamic host configuration protocol).

Aparecer como direccin de origen en paquetes IP generados por estaciones sin direccin IP asignada. Por norma general, slo sale mientras la estacin trata de averiguar su
direccin por medio de protocolos como el RARP (reverse address resolution protocol), el
BOOTP (bootstrap protocol) o el DHCP (dynamic host configuration protocol).

Servir al software de gestin de direccionamiento para indicar la ruta por defecto.

Servir al software de gestin de direccionamiento para indicar la ruta por defecto.

Todas las direcciones de estos rangos:

Todas las direcciones de estos rangos:

10.0.0.0/8

10.0.0.0/8

De la 172.16.0.0/16 a la 172.31.0.0/16.

De la 172.16.0.0/16 a la 172.31.0.0/16.

De la 192.168.0.0/24 a la 192.168.255.0/24.

De la 192.168.0.0/24 a la 192.168.255.0/24.

Estas direcciones, que corresponden respectivamente a redes de clase A, B y C, no son


asignadas por Internet, ni nunca lo sern. Se utilizan en redes que no est previsto que
se conecten directamente a Internet, pero que, en caso de que se conectaran, no se quiere que sus direcciones se confundan con otras de estaciones que s que estn en Internet. Ejemplos de ello son estaciones parcialmente conectadas a la red, no por medio de
direccionadores, sino por medio de proxies o firewalls.

Estas direcciones, que corresponden respectivamente a redes de clase A, B y C, no son


asignadas por Internet, ni nunca lo sern. Se utilizan en redes que no est previsto que
se conecten directamente a Internet, pero que, en caso de que se conectaran, no se quiere que sus direcciones se confundan con otras de estaciones que s que estn en Internet. Ejemplos de ello son estaciones parcialmente conectadas a la red, no por medio de
direccionadores, sino por medio de proxies o firewalls.

Direcciones de clase D, desde la 224.0.0.0 hasta la 239.255.255.255: se reservan para el trfico multicast IP.

Direcciones de clase D, desde la 224.0.0.0 hasta la 239.255.255.255: se reservan para el trfico multicast IP.

Direcciones de clase E: se reservan para asignarlas a nuevos servicios.

Direcciones de clase E: se reservan para asignarlas a nuevos servicios.

TCP/IP: los protocolos de la red Internet

86

FUOC P03/75064/00977

TCP/IP: los protocolos de la red Internet

86

FUOC P03/75064/00977

Anexo 3

Anexo 3

El algoritmo checksum

El algoritmo checksum

Los protocolos IP y TCP utilizan, entre otros, un sencillo checksum para la deteccin de errores. sta es una versin del algoritmo checksum:

Los protocolos IP y TCP utilizan, entre otros, un sencillo checksum para la deteccin de errores. sta es una versin del algoritmo checksum:

u_short checksum(u_short * addr,int len)


{
int aux_len = len;
u_short *aux_addr = addr;
u_short res;
int sum = 0;

u_short checksum(u_short * addr,int len)


{
int aux_len = len;
u_short *aux_addr = addr;
u_short res;
int sum = 0;

while(aux_len > 1)
{
sum+ = *aux_addr++;
aux_len- = 2;
}

while(aux_len > 1)
{
sum+ = *aux_addr++;
aux_len- = 2;
}

if(aux_len == 1)
sum+ = *(u_char) *aux_addr;

if(aux_len == 1)
sum+ = *(u_char) *aux_addr;

sum = (sum>>16) + (sum & 0xffff);


sum+ = (sum>>16);
res = ~sum;

sum = (sum>>16) + (sum & 0xffff);


sum+ = (sum>>16);
res = ~sum;

return res;
}

return res;
}

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

87

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

87

Anexo 4

Anexo 4

NAT (network address translation)

NAT (network address translation)

La NAT (traduccin de direcciones de red) permite que los ordenadores de una LAN tengan
acceso transparente al exterior sin necesidad de disponer de direcciones Internet vlidas externamente. Ello puede ser til para abaratar costes (la tarifa se establece por direcciones) o
para aprovechar mejor el recurso escaso direccin.

La NAT (traduccin de direcciones de red) permite que los ordenadores de una LAN tengan
acceso transparente al exterior sin necesidad de disponer de direcciones Internet vlidas externamente. Ello puede ser til para abaratar costes (la tarifa se establece por direcciones) o
para aprovechar mejor el recurso escaso direccin.

La NAT se implementa en los direccionadores o en los cortafuegos que proporcionan acceso


a la red (por ejemplos, los direccionadoes ADSL) para ocultar al exterior los ordenadores de
la red local.

La NAT se implementa en los direccionadores o en los cortafuegos que proporcionan acceso


a la red (por ejemplos, los direccionadoes ADSL) para ocultar al exterior los ordenadores de
la red local.

Reunir en una sola direccin ms de un ordenador puede parecer inviable puesto que, aunque
los paquetes salientes no tendran problema (todos llevaran la misma direccin de origen), los
paquetes de respuesta no tendran manera de retornar al ordenador correcto, puesto que la direccin no sera una discriminacin suficiente. Para solucionar este problema, se discriminan
los ordenadores internos a partir de los puertos del nivel de transporte (con independencia de
que sea TCP o UDP). El direccionador recuerda la direccin interna correspondiente a cada
puerto que ha utilizado en la salida.

Reunir en una sola direccin ms de un ordenador puede parecer inviable puesto que, aunque
los paquetes salientes no tendran problema (todos llevaran la misma direccin de origen), los
paquetes de respuesta no tendran manera de retornar al ordenador correcto, puesto que la direccin no sera una discriminacin suficiente. Para solucionar este problema, se discriminan
los ordenadores internos a partir de los puertos del nivel de transporte (con independencia de
que sea TCP o UDP). El direccionador recuerda la direccin interna correspondiente a cada
puerto que ha utilizado en la salida.

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

88

TCP/IP: los protocolos de la red Internet

FUOC P03/75064/00977

88

TCP/IP: los protocolos de la red Internet