Professional Documents
Culture Documents
los protocolos
de la red Internet
TCP/IP:
los protocolos
de la red Internet
P03/75064/00977
P03/75064/00977
FUOC P03/75064/00977
FUOC P03/75064/00977
FUOC P03/75064/00977
FUOC P03/75064/00977
ndice
ndice
Introduccin............................................................................................... 5
Introduccin............................................................................................... 5
Objetivos ...................................................................................................... 7
Objetivos ...................................................................................................... 7
2.1.2. MTU........................................................................................ 15
2.1.2. MTU........................................................................................ 15
FUOC P03/75064/00977
FUOC P03/75064/00977
Resumen....................................................................................................... 75
Resumen....................................................................................................... 75
Solucionario................................................................................................ 78
Solucionario................................................................................................ 78
Glosario ........................................................................................................ 80
Glosario ........................................................................................................ 80
Bibliografa................................................................................................. 81
Bibliografa................................................................................................. 81
Anexos .......................................................................................................... 82
Anexos .......................................................................................................... 82
FUOC P03/75064/00977
FUOC P03/75064/00977
Introduccin
Introduccin
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 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-
* HTTP es la sigla de
hyper-text transfer protocol.
** WWW es la sigla de
world wide web.
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.
* HTTP es la sigla de
hyper-text transfer protocol.
** WWW es la sigla de
world wide web.
FUOC P03/75064/00977
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
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
ternet o no.
ternet o no.
FUOC P03/75064/00977
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:
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.
FUOC P03/75064/00977
FUOC P03/75064/00977
FUOC P03/75064/00977
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
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
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
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
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
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.
FUOC P03/75064/00977
10
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-
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
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.
FUOC P03/75064/00977
11
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.
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
1.2. Encapsulamiento
1.2. Encapsulamiento
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.
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 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
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
* PDU es la sigla de
protocol data units.
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
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
FUOC P03/75064/00977
12
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.
FUOC P03/75064/00977
13
FUOC P03/75064/00977
13
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
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-
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
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-
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
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:
el protocolo PPP*.
el protocolo PPP*.
dem) que se utiliza, sobre todo, en el mbito domstico, el ADSL* que, aunque
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:
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).
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.
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).
como puede ser IP. Pero tambin pueden transportar NETBEUI, AppleTalk,
como puede ser IP. Pero tambin pueden transportar NETBEUI, AppleTalk,
Decnet, etc.
Decnet, etc.
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.
15
FUOC P03/75064/00977
15
FUOC P03/75064/00977
Como ya hemos visto, la pirmide de PDU provoca ineficiencias en la transmisin, sobre todo en protocolos como Telnet, que con frecuencia envan blo-
(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-
Con las limitaciones impuestas por las cabeceras, slo podremos transmitir:
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.).
neas. La compresin Van Jacobson permite mantener una tabla de hasta dieci-
neas. La compresin Van Jacobson permite mantener una tabla de hasta dieci-
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-
Por medio del LCP tambin pueden obtenerse otras mejoras como, por ejem-
Por medio del LCP tambin pueden obtenerse otras mejoras como, por ejem-
2.1.2. MTU
2.1.2. MTU
que llamaremos MTU*, est determinada por diferentes factores segn el caso.
Con las limitaciones impuestas por las cabeceras, slo podremos transmitir:
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-
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
FUOC P03/75064/00977
16
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-
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-
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
aplicacin en tiempo real tienen preferencia sobre otros que previamente es-
aplicacin en tiempo real tienen preferencia sobre otros que previamente es-
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
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.
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
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
FUOC P03/75064/00977
17
FUOC P03/75064/00977
17
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-
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-
Algunas operadoras,...
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.
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
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
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-
FUOC P03/75064/00977
18
FUOC P03/75064/00977
18
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-
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
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
nes, y en algunos casos las estaciones tambin deben capturar tramas di-
nes, y en algunos casos las estaciones tambin deben capturar tramas di-
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).
FUOC P03/75064/00977
19
FUOC P03/75064/00977
19
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
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.
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
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
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.
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-
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
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.
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
FUOC P03/75064/00977
20
FUOC P03/75064/00977
20
Actividad
Actividad
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
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.
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).
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.
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
FUOC P03/75064/00977
21
FUOC P03/75064/00977
21
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.
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.
Las direcciones LAN estn divididas en diferentes campos, como puede obser-
Las direcciones LAN estn divididas en diferentes campos, como puede obser-
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
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
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
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-
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-
(FF:FF:FF:FF:FF:FF).
(FF:FF:FF:FF:FF:FF).
23
FUOC P03/75064/00977
3. El IP (Internet protocol)
23
FUOC P03/75064/00977
3. El IP (Internet protocol)
correcto puesto que los paquetes pueden seguir caminos diferentes y, por
correcto puesto que los paquetes pueden seguir caminos diferentes y, por
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-
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
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 representar una direccin, se suele escribir los 4 bytes en decimal y separados por puntos. Por ejemplo:
147.83.153.100
FUOC P03/75064/00977
24
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
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
estaciones cada una como mximo). Hace mucho tiempo que ya no queda
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.
estaciones cada una como mximo). Hace mucho tiempo que ya no queda
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
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
siguiente:
siguiente:
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
El primer byte
25
FUOC P03/75064/00977
25
FUOC P03/75064/00977
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
(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.
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
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.
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.
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.
tendra cualquier estacin suya y con todos los bits del identificador de
tendra cualquier estacin suya y con todos los bits del identificador de
FUOC P03/75064/00977
26
FUOC P03/75064/00977
26
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
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
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-
todo 1.
todo 1.
paquete viaje por la red con esta direccin como origen o destino.
27
FUOC P03/75064/00977
FUOC P03/75064/00977
27
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).
(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-
Tipo de servicio
Longitud total del paquete: da la longitud total del paquete (cabecera in-
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
28
FUOC P03/75064/00977
Consultad la fragmentacin
en el subapartado 3.2.1 de este
mdulo didctico.
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-
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-
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:
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
FUOC P03/75064/00977
29
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
FUOC P03/75064/00977
30
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-
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
Unos ejemplos que ya hemos visto son los protocolos PPP y Ethernet.
Unos ejemplos que ya hemos visto son los protocolos PPP y Ethernet.
Ejemplo
En una Ethernet, el paquete
mximo que puede transmitir
una estacin es de 1.500 bytes.
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-
Ejemplo
En una Ethernet, el paquete
mximo que puede transmitir
una estacin es de 1.500 bytes.
FUOC P03/75064/00977
31
FUOC P03/75064/00977
31
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
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
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,
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-
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.
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
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
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-
32
FUOC P03/75064/00977
32
FUOC P03/75064/00977
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
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-
conexin de todas las subredes que componen Internet. Cada equipo conec-
conexin de todas las subredes que componen Internet. Cada equipo conec-
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).
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
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.
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:
Mscara
Direccionador
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
33
FUOC P03/75064/00977
Mscara
Direccionador
33
FUOC P03/75064/00977
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
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
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.
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
configuracin de red:
configuracin de red:
La cuarta entrada tiene una importancia relativa. Nos indica que los
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.
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
34
FUOC P03/75064/00977
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/?).
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
Mscara
Direccionador
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
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
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).
35
FUOC P03/75064/00977
35
FUOC P03/75064/00977
$ 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
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()
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
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
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
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-
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.
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.
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).
cionador divide una subred sin que las estaciones ni el direccionador que
cionador divide una subred sin que las estaciones ni el direccionador que
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
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?
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
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.
38
FUOC P03/75064/00977
38
FUOC P03/75064/00977
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.
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
Tipo
Cdigo
Descripcin
Clase
Tipo
Cdigo
Peticin
Peticin
Peticin
Peticin
Descripcin
Clase
Error
0-15
Error
0-15
0-3
Redireccionamiento
Error
Publicacin de rutas
Peticin
Error
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
39
FUOC P03/75064/00977
Clase
Tipo
Cdigo
Peticin
10
Error
11
0-1
Error
Cabecera IP incorrecta
Error
12
0-1
Cabecera IP incorrecta
Error
Peticin de hora
Peticin
13
Peticin de hora
Peticin
Peticin
14
Peticin
17
Peticin
17
Peticin
18
Peticin
18
Peticin
Peticin de rutas
Descripcin
Peticin de rutas
Clase
Peticin
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-
broadcast MAC).
broadcast MAC).
Una direccin de origen que no identifique una nica estacin. Por ejem-
Una direccin de origen que no identifique una nica estacin. Por ejem-
255.255.255.255.
255.255.255.255.
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.
$ 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
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*.
* 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*.
40
cul de las instrucciones ping debe entregarse la respuesta, cada ping asigna
cul de las instrucciones ping debe entregarse la respuesta, cada ping asigna
mite aadir una cadena arbitraria de bytes a la peticin de eco (ping s en UNIX
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
no de los campos del mensaje ICMP, sino que se encuentra dentro de la misma
Actividad
* Evidentemente, la instruccin
debera llamarse ping-pong.
* 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
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
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
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
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
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
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
(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-
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.
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-
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-
En MSWindows traceroute
recibe el nombre de tracert.
FUOC P03/75064/00977
42
FUOC P03/75064/00977
42
cdigo 3).
cdigo 3).
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.
Cuando el mensaje llega al destino, debe devolver algn mensaje para sa-
Cuando el mensaje llega al destino, debe devolver algn mensaje para sa-
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
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.
dor B.
dor B.
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-
FUOC P03/75064/00977
44
FUOC P03/75064/00977
44
FUOC P03/75064/00977
45
FUOC P03/75064/00977
45
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-
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.
FUOC P03/75064/00977
46
FUOC P03/75064/00977
46
de protocolos TCP/IP.
de protocolos TCP/IP.
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-
FUOC P03/75064/00977
47
FUOC P03/75064/00977
47
conexin es tpico que una aplicacin (el cliente) inicie una comunicacin
conexin es tpico que una aplicacin (el cliente) inicie una comunicacin
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.
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,
(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-
Un puerto conocido (well-known port) es un puerto (nmero) reservado que identifica una aplicacin conocida.
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:
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:
* DNS es la sigla de
domain name server.
** TFTP es la sigla de trivial file
transfer protocol.
FUOC P03/75064/00977
48
FUOC P03/75064/00977
48
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.
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.
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.
FUOC P03/75064/00977
49
FUOC P03/75064/00977
49
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,
macin desordenada. La aplicacin debe estar preparada para que haya da-
macin desordenada. La aplicacin debe estar preparada para que haya da-
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-
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-
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.
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.
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.
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-
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-
Ejemplo
Ejemplo
FUOC P03/75064/00977
50
FUOC P03/75064/00977
50
cipios siguientes:
cipios siguientes:
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
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-
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
FUOC P03/75064/00977
51
FUOC P03/75064/00977
51
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
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-
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
de transferirlos.
de transferirlos.
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
mato el siguiente:
mato el siguiente:
FUOC P03/75064/00977
52
FUOC P03/75064/00977
52
destino.
destino.
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.
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-
FUOC P03/75064/00977
53
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
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-
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):
FUOC P03/75064/00977
54
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
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
Atencin
No debe confundirse con
el indicador URG, que indica
que la aplicacin ha sealado
una porcin del segmento
como urgente.
SYN: se utiliza para iniciar una conexin y tambin sirve para resincronizar
SYN: se utiliza para iniciar una conexin y tambin sirve para resincronizar
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-
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
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).
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).
modo poder monitorizar los retrasos que experimentan los segmentos des-
modo poder monitorizar los retrasos que experimentan los segmentos des-
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.
Indicar el tamao mximo del segmento (MSS*) que el origen est preparado para recibir. Por tanto, el receptor no le puede transmitir segmentos
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
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).
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).
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).
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
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
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
desde el origen hasta el destino* y utilizar como MSS esta ltima menos los
40 bytes de cabeceras IP y TCP.
desde el origen hasta el destino* y utilizar como MSS esta ltima menos los
40 bytes de cabeceras IP y TCP.
Este ltimo necesita tres segmentos TCP para poder establecer la conexin.
Este ltimo necesita tres segmentos TCP para poder establecer la conexin.
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
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
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
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
FUOC P03/75064/00977
57
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-
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
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-
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.
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
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
58
FUOC P03/75064/00977
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
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
open).
open).
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.
Las primeras lneas que obtenemos con el tcpdump son las siguientes:
Las primeras lneas que obtenemos con el tcpdump son las siguientes:
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.
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
Asumimos que nos hemos conectado a una mquina llamada argos y hacemos un rlogin
a la mquina helios.
Recordad
FUOC P03/75064/00977
59
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,
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
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,
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,
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
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
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
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
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
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
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).
helios % logout
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.
Lectura complementaria
helios % logout
La interpretacin es la siguiente:
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
FUOC P03/75064/00977
61
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.
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-
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
Lectura complementaria
W.R. Stevens (1998). The
Protocols TCP/IP Illustrated
(vol. 1). Wilmington:
Addison-Wesley, 1994.
FUOC P03/75064/00977
62
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
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-
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.
dera necesario.
dera necesario.
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*.
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
FUOC P03/75064/00977
63
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
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
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
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
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-
red con paquetes pequeos de informacin que con paquetes grandes. El TCP
red con paquetes pequeos de informacin que con paquetes grandes. El TCP
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-
Reconocimientos retrasados.
Reconocimientos retrasados.
Algoritmo de Nagle.
Algoritmo de Nagle.
Reconocimientos retrasados
Reconocimientos retrasados
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,
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-
FUOC P03/75064/00977
64
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
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-
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
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-
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-
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-
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,
volumen (correo electrnico, transferencias FTP, etc.), como las memorias in-
volumen (correo electrnico, transferencias FTP, etc.), como las memorias in-
FUOC P03/75064/00977
65
FUOC P03/75064/00977
65
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
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
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-
un segmento TCP reconoce, por medio de piggybacking, los datos que recibe
un segmento TCP reconoce, por medio de piggybacking, los datos que recibe
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?
FUOC P03/75064/00977
66
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.
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
FUOC P03/75064/00977
67
FUOC P03/75064/00977
67
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
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-
la izquierda.
la izquierda.
los siguientes:
los siguientes:
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.
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-
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.
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).
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)
1)
2)
2)
3)
3)
4)
4)
5)
5)
6)
6)
7)
7)
8)
8)
9)
9)
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.
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.
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.
FUOC P03/75064/00977
69
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.
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.
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.
Conviene recordar que tanto los segmentos como los reconocimientos se pue-
Conviene recordar que tanto los segmentos como los reconocimientos se pue-
porizador de retransmisiones.
porizador de retransmisiones.
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
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
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-
a continuacin:
a continuacin:
Algoritmo de Karn.
Algoritmo de Karn.
Temporizador keepalive.
Temporizador keepalive.
70
FUOC P03/75064/00977
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 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.
RTO = Est_RTT,
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-
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
es el factor de variacin
del retraso y se recomienda
que valga 2.
Algoritmo de Karn
Algoritmo de Karn
FUOC P03/75064/00977
71
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-
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-
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
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-
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
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.
res, etc.) que pueden congestionarse. Por tanto, no podrn almacenar tanta in-
res, etc.) que pueden congestionarse. Por tanto, no podrn almacenar tanta in-
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-
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-
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-
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-
mentos que es preciso transmitir exponencialmente cada vez que reciba un re-
mentos que es preciso transmitir exponencialmente cada vez que reciba un re-
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.
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.
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-
segmentos. Y as continuamente.
segmentos. Y as continuamente.
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
FUOC P03/75064/00977
73
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).
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:
start.
start.
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
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.
Temporizador keepalive
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
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-
saber qu hace, puesto que existen algunas versiones TCP que lo implementan.
saber qu hace, puesto que existen algunas versiones TCP que lo implementan.
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-
dor keepalive dos horas despus. Si durante estas ltimas hay intercambio
dor keepalive dos horas despus. Si durante estas ltimas hay intercambio
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.
FUOC P03/75064/00977
75
FUOC P03/75064/00977
75
Resumen
Resumen
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-
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).
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
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
protocolo IP.
protocolo IP.
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
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
FUOC P03/75064/00977
76
FUOC P03/75064/00977
76
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-
RTT. Asimismo, hemos estudiado los algoritmos que el TCP utiliza para aliviar
RTT. Asimismo, hemos estudiado los algoritmos que el TCP utiliza para aliviar
FUOC P03/75064/00977
77
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
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:
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.
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
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
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:
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.
79
FUOC P03/75064/00977
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.
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:
80
FUOC P03/75064/00977
80
FUOC P03/75064/00977
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:
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
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
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
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.
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
FUOC P03/75064/00977
81
FUOC P03/75064/00977
81
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
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
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
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.
FUOC P03/75064/00977
82
FUOC P03/75064/00977
Anexos
Anexos
Anexo 1
Anexo 1
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.
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.
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.
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
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.
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.
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.
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:
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.
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).
FUOC P03/75064/00977
84
FUOC P03/75064/00977
84
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).
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.
FUOC P03/75064/00977
85
FUOC P03/75064/00977
85
Anexo 2
Anexo 2
Direcciones especiales
Direcciones especiales
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).
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.
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.
86
FUOC P03/75064/00977
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:
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;
return res;
}
return res;
}
FUOC P03/75064/00977
87
FUOC P03/75064/00977
87
Anexo 4
Anexo 4
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.
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.
FUOC P03/75064/00977
88
FUOC P03/75064/00977
88