19.05.2013 Views

INTRODUCCIÓN A TCP/IP - RUA - Universidad de Alicante

INTRODUCCIÓN A TCP/IP - RUA - Universidad de Alicante

INTRODUCCIÓN A TCP/IP - RUA - Universidad de Alicante

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PUBLICACIONES<br />

DE LA UNIVERSIDAD DE ALICANTE<br />

<strong>INTRODUCCIÓN</strong><br />

A <strong>TCP</strong>/<strong>IP</strong><br />

Sistemas <strong>de</strong> Transporte <strong>de</strong> Datos<br />

Luis Miguel Crespo Martínez<br />

Francisco A. Can<strong>de</strong>las Herías<br />

TEXTOS DOCENTES


© Luis Miguel Crespo Martínez<br />

Publicaciones <strong>de</strong> la <strong>Universidad</strong> <strong>de</strong> <strong>Alicante</strong>, 1998<br />

Portada: Gabinete <strong>de</strong> Imagen y Comunicación Gráfica<br />

<strong>Universidad</strong> <strong>de</strong> <strong>Alicante</strong><br />

ISBN: 84-7908-435-9<br />

Depósito Legal: A-1394-1998<br />

Fotocomposición:<br />

Imprime: INGRA Impresores<br />

Ninguna parte <strong>de</strong> esta publicación pue<strong>de</strong> ser reproducida, almacenada o<br />

transmitida en manera alguna o por ningún medio, ya sea eléctrico, químico,<br />

mecánico, óptico <strong>de</strong> grabación o <strong>de</strong> fotocopia, sin permiso previo <strong>de</strong>l editor.<br />

Estos créditos pertenecen a la edición<br />

impresa <strong>de</strong> la obra.<br />

Edición electrónica:


Portada<br />

Créditos<br />

Índice<br />

Prólogo 6<br />

1. Introducción a <strong>TCP</strong>/<strong>IP</strong> 8<br />

2. Topología 11<br />

3. El primer protocolo 19<br />

3.1 RFC 19<br />

3.2 Ethernet 20<br />

3.3 MTU 22<br />

3.4 Direcciones MAC 22<br />

4. El protocolo <strong>IP</strong> 26<br />

4.1 Direcciones <strong>IP</strong> 26<br />

4.2 SL<strong>IP</strong> 29<br />

4.3 PPP 30<br />

4.4 Interface <strong>de</strong> bucle local (Loopback Driver) 31<br />

4.5 Máscara <strong>de</strong> Subred 31<br />

4.6 Cabecera <strong>IP</strong> 37<br />

4.7 Administración <strong>de</strong> una red <strong>IP</strong> 43<br />

5. Caso práctico 45<br />

6. Configuración <strong>de</strong> TUN (MS-DOS) 49<br />

7. Cuestionario 1 52<br />

3


Índice<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong> 54<br />

8.1 Número <strong>de</strong> Puerto 56<br />

8.2 Socket 57<br />

8.3 Pequeño Inciso 57<br />

8.4 Ping 62<br />

8.5 Servidores <strong>de</strong> terminales 64<br />

9. Configuración en Unix 66<br />

9.1 Tabla <strong>de</strong> hosts 69<br />

10. El Protocolo ARP 71<br />

10.1 La memoria Caché <strong>de</strong> ARP 73<br />

11. ICMP 75<br />

12. Encaminamiento <strong>IP</strong> 79<br />

12.1 Mecanismo <strong>de</strong> encaminamiento 80<br />

12.2 Creación <strong>de</strong> Rutas 84<br />

12.3 Error <strong>de</strong> Redirección ICMP 85<br />

12.4 Encaminamiento Dinámico 86<br />

12.5 Routing Information Protocol (R<strong>IP</strong>) 87<br />

12.6 Comprobando el funcionamiento <strong>de</strong> R<strong>IP</strong> 89<br />

12.7 Registro <strong>de</strong> Ruta <strong>de</strong> «Ping» 92<br />

13. <strong>TCP</strong> y UDP 96<br />

13.1 Introducción 96<br />

4


Índice<br />

13.2 <strong>TCP</strong> 100<br />

13.3 UDP 106<br />

14. Cuestionario 2 109<br />

15. Protocolos <strong>de</strong> Aplicación en <strong>TCP</strong>/<strong>IP</strong> 111<br />

16. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: TELNET 113<br />

17. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: FTP 118<br />

17.1 FTP <strong>de</strong>s<strong>de</strong> MS-DOS a través <strong>de</strong> TUN 122<br />

18. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: POP3 127<br />

19. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: SMTP 129<br />

20. Protocolos <strong>de</strong> aplicación sobre UDP: TFTP 134<br />

21. Protocolos <strong>de</strong> aplicación sobre UDP: SNMP 136<br />

22. Protocolos <strong>de</strong> aplicación sobre UDP: NFS 141<br />

22.1 Configuración <strong>de</strong> NFS <strong>de</strong>s<strong>de</strong> TUN (MSDOS) 143<br />

22.2 Configuración <strong>de</strong> NFS <strong>de</strong>s<strong>de</strong> UNIX 144<br />

22.3 Unix - Unix NFS 146<br />

23. Cuestionario 3 148<br />

24. Anexo A 150<br />

25. Glosario <strong>de</strong> Términos 152<br />

26. Bibliografía 156<br />

5


ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong>. Sistemas <strong>de</strong> Transporte <strong>de</strong> Datos<br />

El objetivo fundamental <strong>de</strong>l presente libro es proporcionar<br />

una visión adaptada a la realidad en cuanto al<br />

diseño e implementación <strong>de</strong> re<strong>de</strong>s basadas en la pila<br />

<strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong>.<br />

Para ello, se utiliza como soporte <strong>de</strong> trabajo una configuración<br />

típica en instalaciones industriales y empresa privada.<br />

Éste será el punto <strong>de</strong> partida para los numerosos ejemplos<br />

prácticos que vienen propuestos a lo largo <strong>de</strong> la obra.<br />

Es conveniente, aunque no necesario, disponer <strong>de</strong> un mínimo<br />

<strong>de</strong> conocimientos referentes al sistema operativo Unix, así<br />

como nociones básicas en Re<strong>de</strong>s <strong>de</strong> Computadores, puesto<br />

que <strong>de</strong> este modo se logrará una asimilación más sencilla a<br />

nivel conceptual y práctico.<br />

Este libro, dadas sus características, es recomendable como<br />

manual <strong>de</strong> prácticas en estudios <strong>de</strong> Ingeniería Informática,<br />

Telecomunicación o Industrial.<br />

6


En el primer capítulo se realiza una introducción a los niveles<br />

físicos y <strong>de</strong> enlace empleados en la configuración <strong>de</strong> referencia,<br />

es <strong>de</strong>cir, Ethernet y Slip.<br />

A continuación, se <strong>de</strong>scriben los aspectos más funcionales<br />

<strong>de</strong>l protocolo <strong>de</strong> red <strong>IP</strong>, y su configuración sobre Unix y<br />

MSDOS. Se emplea un producto comercial <strong>de</strong>nominado TUN,<br />

que permite la integración <strong>de</strong> aplicaciones basadas en<br />

<strong>TCP</strong>/<strong>IP</strong> entre ambas plataformas.<br />

Por último, se <strong>de</strong>scribe el funcionamiento <strong>de</strong> los protocolos <strong>de</strong><br />

transporte <strong>TCP</strong> y UDP para po<strong>de</strong>r abordar, a continuación,<br />

algunas <strong>de</strong> las aplicaciones <strong>TCP</strong>/<strong>IP</strong> más usuales a nivel profesional,<br />

tales como Telnet, Snmp, Nfs y Ftp.<br />

Para que el lector pueda evaluar el nivel <strong>de</strong> comprensión<br />

adquirido, se han intercalado a lo largo <strong>de</strong>l libro una serie <strong>de</strong><br />

cuestionarios con propuestas referentes a la materia expuesta.<br />

ÍNDICE<br />

Prólogo<br />

7


Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Trataremos <strong>de</strong> tomar contacto con lo que hoy en día es<br />

el protocolo <strong>de</strong> red más extendido y con mayor aceptación<br />

a nivel mundial, es <strong>de</strong>cir, <strong>TCP</strong>/<strong>IP</strong>.<br />

Este protocolo que comenzó a finales <strong>de</strong> los años 60 como<br />

un proyecto <strong>de</strong> investigación financiado por el gobierno <strong>de</strong><br />

EE.UU., sobre la conmutación <strong>de</strong> paquetes, se ha convertido<br />

en la década <strong>de</strong> los 90 en la estructura <strong>de</strong> red más ampliamente<br />

utilizada.<br />

Se trata verda<strong>de</strong>ramente <strong>de</strong> un sistema abierto en la medida<br />

en que la <strong>de</strong>finición <strong>de</strong> la serie <strong>de</strong> protocolos, así como muchas<br />

<strong>de</strong> sus implantaciones se encuentran disponibles al público,<br />

gratuitamente o a un módico precio. Ello constituye la<br />

base para lo que se conoce como la red Internet mundial,<br />

una red <strong>de</strong> larga distancia (WAN), con más <strong>de</strong> 1 millón <strong>de</strong> or<strong>de</strong>nadores<br />

que literalmente inva<strong>de</strong> el planeta.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

8


Aunque actualmente y con motivo <strong>de</strong>l creciente <strong>de</strong>sarrollo<br />

tecnológico están surgiendo nuevos protocolos basados en<br />

tecnologías «Fast Paquet» (ATM, Frame Relay), <strong>TCP</strong>/<strong>IP</strong> se ha<br />

convertido en un estándar utilizado como protocolo <strong>de</strong> red nativo<br />

para sistemas Unix, estando sujeto <strong>de</strong> forma continua a<br />

nuevas implementaciones y mejoras.<br />

Para abordar la materia, utilizaremos el sistema operativo<br />

Unix <strong>de</strong> SCO en los Servidores y MS-DOS en las estaciones<br />

ÍNDICE<br />

TUN<br />

TUN<br />

TUN<br />

TUN<br />

50Ω<br />

Servidor 1<br />

SCO Unix<br />

Open Server<br />

Ethernet IEEE 802.3<br />

50Ω<br />

1. Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

RS232<br />

RS232<br />

SL<strong>IP</strong> o PPP<br />

Línea Telefónica<br />

<strong>TCP</strong>/<strong>IP</strong><br />

9<br />

Servidor 2<br />

SCO Unix<br />

Open Server<br />

Ethernet IEEE 802.3<br />

Figura 1. Topología <strong>de</strong> Referencia<br />

50Ω<br />

50Ω<br />

TUN<br />

TUN<br />

TUN<br />

TUN


<strong>de</strong> trabajo. La forma <strong>de</strong> integrar ambos sistemas operativos<br />

se realizará a través <strong>de</strong> un producto comercial <strong>de</strong>nominado<br />

TUN, cuya finalidad es la <strong>de</strong> realizar las funciones <strong>de</strong> cliente<br />

en las conexiones <strong>TCP</strong> (o UDP) que se establezcan.<br />

La topología <strong>de</strong> referencia sobre la que realizaremos nuestros<br />

ensayos, queda representada en la figura 1.<br />

El objetivo <strong>de</strong> la presente documentación, es proporcionar<br />

una visión general sobre la mecánica <strong>de</strong> funcionamiento <strong>de</strong><br />

los distintos protocolos que conforman <strong>TCP</strong>/<strong>IP</strong> utilizando como<br />

soporte físico la encapsulación Ethernet.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

10


2. Topología<br />

Puesto que nos encontramos con una configuración<br />

compuesta <strong>de</strong> 2 segmentos en cable coaxial fino tipo<br />

10Base2, sería conveniente comprobar algunas <strong>de</strong> las<br />

prescripciones <strong>de</strong>finidas en la normativa IEEE802.3 (Todas,<br />

sería muy complicado), como lo son:<br />

Impedancia característica <strong>de</strong>l cable 50Ω +/- 2Ω<br />

Atenuación <strong>de</strong>l segmento: 8.5dB a 10Mhz (Oscilador<br />

10Mhz y osciloscopio)<br />

Velocidad <strong>de</strong> propagación mínima 0.65C (fabricante o<br />

Scaner)<br />

Flanco <strong>de</strong> subida <strong>de</strong> la señal 25 +/- 5nS para pasar <strong>de</strong>l<br />

10% al 90%<br />

* Resistencia en cortocircuito <strong>de</strong>l cable R < 50mΩ /m<br />

* Resistencia en cortocircuito <strong>de</strong>l segmento<br />

ÍNDICE<br />

2. Topología<br />

11


(Cable+conectores+malla)< 10Ω<br />

* Resistencia <strong>de</strong> la interfaz <strong>de</strong> red sin alimentación R > 100<br />

KΩ<br />

Resistencia <strong>de</strong> la interfaz <strong>de</strong> red con alimentación R > 7.5<br />

KΩ<br />

Capacidad <strong>de</strong> entrada <strong>de</strong> la interfaz <strong>de</strong> red sin alimentación<br />

C < 6pF<br />

* Resistencias <strong>de</strong> terminación <strong>de</strong> 50Ω +/- 2Ω<br />

Longitud máxima <strong>de</strong>l segmento <strong>de</strong> 185m<br />

Las tarjetas <strong>de</strong> red utilizadas están provistas <strong>de</strong> dos tipos<br />

diferentes <strong>de</strong> interfaces Ethernet.<br />

El utilizado en la mayoría <strong>de</strong> los casos es el tipo BNC para<br />

cable 10Base2. Esto quiere <strong>de</strong>cir que la placa tiene integrados<br />

los dos módulos que conforman el nivel físico en las LAN:<br />

el PSS (Phisical Signaling Sublayer) o también conocido<br />

como C/D cuya principal finalidad es la codificación y <strong>de</strong>codificación<br />

<strong>de</strong> la señal (Manchester diferencial) así como la<br />

generación y <strong>de</strong>tección <strong>de</strong> funciones especiales <strong>de</strong> control; y<br />

el PMA (Phisical Medium Attachement) o AM (Adaptación al<br />

medio) que tiene por objeto aplicar las señales eléctricas o<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

12


modular, según sea banda ancha o banda base, sobre el<br />

medio utilizado.<br />

En nuestro caso, por tratarse <strong>de</strong> cable 10Base2, se trabaja<br />

directamente en banda base mediante una señal cuadrada<br />

con amplitu<strong>de</strong>s <strong>de</strong>l or<strong>de</strong>n <strong>de</strong> 2.5 Voltios.<br />

El PMA se encuentra conectado físicamente con el PSS a través<br />

<strong>de</strong> un tipo <strong>de</strong> interface <strong>de</strong>nominado AUI, consistente en<br />

una serie <strong>de</strong> señales implementadas sobre controladores <strong>de</strong><br />

línea en modo balanceado y con par trenzado en el caso <strong>de</strong><br />

que la unión sea externa (Cable Drop). Esta conexión se exterioriza<br />

mediante un conector <strong>de</strong> 15 polos situado junto a la<br />

salida BNC <strong>de</strong> la tarjeta. (Figura 2)<br />

La ventaja <strong>de</strong> disponer <strong>de</strong> este tipo <strong>de</strong> salida alternativa, es<br />

la flexibilidad que proporciona al po<strong>de</strong>r elegir un PMA o<br />

Transceptor para el tipo <strong>de</strong> medio que queramos utilizar, ya<br />

sea fibra óptica, par trenzado, radioenlace, etc.<br />

Lógicamente, para po<strong>de</strong>r hacer uso <strong>de</strong> la salida AUI o la BNC<br />

se necesita indicar la opción <strong>de</strong>seada a la tarjeta, en nuestro<br />

caso por la activación <strong>de</strong> un pequeño puente situado sobre<br />

ella. En otro tipo <strong>de</strong> tarjetas esta tarea se realiza mediante un<br />

software suministrado por el fabricante.<br />

ÍNDICE<br />

2. Topología<br />

13


Cuando se sobrepasa la longitud <strong>de</strong> un segmento, pue<strong>de</strong><br />

recurrirse al uso <strong>de</strong> repetidores. Estos dispositivos operan<br />

únicamente a nivel físico, propagando las señales a través <strong>de</strong><br />

todos los segmentos conectados.<br />

Un repetidor, es un dispositivo autónomo con alimentación <strong>de</strong><br />

corriente propia y dotado <strong>de</strong> una serie <strong>de</strong> salidas <strong>de</strong> red que<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Tranceiver<br />

[<br />

LLC<br />

MAC<br />

PSS<br />

PMA<br />

Medio<br />

BNC<br />

AUI<br />

AUI<br />

Figura 2. Estructura interna <strong>de</strong> la placa<br />

14<br />

]<br />

Enlace<br />

]<br />

Físico


pue<strong>de</strong>n ser <strong>de</strong> tipo coaxial, par trenzado, fibra óptica o <strong>de</strong> tipo<br />

AUI, que como ya se ha explicado anteriormente, permite la<br />

conexión <strong>de</strong> Transceptores externos proporcionando una<br />

flexibilidad adicional en cuanto a conectividad se refiere.<br />

Como era <strong>de</strong> esperar, los repetidores mo<strong>de</strong>rnos ofrecen una<br />

serie <strong>de</strong> prestaciones adicionales que sus antecesores no<br />

poseían. Cabe <strong>de</strong>stacar lo que se conoce como «particionamiento»<br />

consistente en la capacidad <strong>de</strong> <strong>de</strong>tectar un exceso<br />

<strong>de</strong> colisiones o ruido en un segmento <strong>de</strong>terminado y el aislamiento<br />

<strong>de</strong> ese segmento <strong>de</strong> forma automática, con el fin <strong>de</strong><br />

evitar la propagación <strong>de</strong> señales nocivas hacia el resto <strong>de</strong> la<br />

red. (Figura 3)<br />

Se <strong>de</strong>be tomar especial precaución con las salidas no utilizadas,<br />

puesto que si no se terminan correctamente con una<br />

resistencia, pue<strong>de</strong>n generar unos niveles <strong>de</strong> ruido que serán<br />

repetidos hacia el resto <strong>de</strong> los segmentos (excepto en aquellos<br />

repetidores que dispongan <strong>de</strong> «particionamiento»), produciendo<br />

fallos <strong>de</strong> diversa índole en toda la red.<br />

Según el tipo <strong>de</strong> fabricante, suele ser bastante común la<br />

incorporación <strong>de</strong> la resistencia <strong>de</strong> terminación <strong>de</strong>ntro <strong>de</strong> la<br />

electrónica <strong>de</strong>l repetidor, esto <strong>de</strong>be <strong>de</strong> ser comprobado antes<br />

<strong>de</strong> conectar el segmento. Normalmente existen unos peque-<br />

ÍNDICE<br />

2. Topología<br />

15


ños puentes sobre la placa base <strong>de</strong>l repetidor, cerca <strong>de</strong> cada<br />

boca <strong>de</strong> salida, que permiten la activación o <strong>de</strong>sactivación <strong>de</strong><br />

la resistencia <strong>de</strong> terminación.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

50Ω<br />

* Nota: Bocas libres cerrados<br />

con 50Ω<br />

Figura 3<br />

16<br />

50Ω (interna)<br />

±<br />

50Ω<br />

AUI


Des<strong>de</strong> hace algunos años, la ten<strong>de</strong>ncia actual <strong>de</strong>ntro <strong>de</strong><br />

Ethernet, es la utilización <strong>de</strong>l par trenzado como medio físico.<br />

Entre otras ventajas, presenta una mayor fiabilidad, un mayor<br />

control sobre las estaciones puesto que su topología aparen-<br />

te es en estrella y los concentradores <strong>de</strong> par trenzado o HUB<br />

UTP son casi en su totalidad gestionables. Esto significa que<br />

la localización <strong>de</strong> averías en el cableado es inmediata, cosa<br />

que no ocurre con 10Base2 o coaxial fino.<br />

ÍNDICE<br />

2. Topología<br />

Concentrador <strong>de</strong> Par Trenzado (HUB)<br />

Para IEEE 802.3<br />

Figura 4<br />

17


Una ventaja adicional <strong>de</strong>l par trenzado, es la posibilidad <strong>de</strong><br />

integrar el cableado <strong>de</strong> telefonía con el <strong>de</strong> datos, permitiendo<br />

al usuario mediante conmutaciones en el cuadro <strong>de</strong> distribución,<br />

la libre elección <strong>de</strong>l tipo <strong>de</strong> toma que <strong>de</strong>sea en su puesto<br />

<strong>de</strong> trabajo (telefonía o datos en varias combinaciones).<br />

El cable en par trenzado utilizado, presenta un menor coste<br />

que el coaxial, aunque requiere una mayor tirada <strong>de</strong> líneas.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

18


3. El primer protocolo<br />

3.1 RFC<br />

Antes <strong>de</strong> continuar, es necesario realizar un pequeño<br />

inciso. Todos los estándares oficiales <strong>de</strong> la comunidad<br />

Internet que como ya se ha comentado anteriormente<br />

se apoya directamente sobre <strong>TCP</strong>/<strong>IP</strong>, son publicados<br />

bajo la forma <strong>de</strong> RFC (Request for Comments). A<strong>de</strong>más <strong>de</strong><br />

ello, existen muchas RFC que no son estándares oficiales,<br />

pero que son publicadas con fines informativos.<br />

Una RFC pue<strong>de</strong> estar formada <strong>de</strong>s<strong>de</strong> 1 a más <strong>de</strong> 200 páginas.<br />

Cada una se i<strong>de</strong>ntifica por un número, como por ejemplo<br />

la RFC 1122, <strong>de</strong> forma que la más reciente tiene un número<br />

más alto.<br />

Todas las RFC están disponibles gratuitamente a través <strong>de</strong><br />

mensajerías electrónicas, o mediante FTP sobre Internet. El<br />

ÍNDICE<br />

3. El primer protocolo<br />

19


envío <strong>de</strong> un correo electrónico como el siguiente, <strong>de</strong>vuelve<br />

una lista <strong>de</strong>tallada <strong>de</strong> las diferentes formas <strong>de</strong> obtener RFC:<br />

To: rfc-info@ISI.EDU<br />

Subject: gettings rfcs<br />

help: ways_to_get_rfcs<br />

3.2 Ethernet<br />

El método <strong>de</strong> acceso utilizado por Ethernet es CSMA/CD,<br />

pero eso no es suficiente para que dos sistemas abiertos<br />

puedan coexistir en el mismo medio.<br />

Existen básicamente dos tipos <strong>de</strong> tramas <strong>de</strong>ntro <strong>de</strong> Ethernet.<br />

La <strong>de</strong>nominada IEEE802.2/802.3 y la Ethernet. La utilización<br />

<strong>de</strong> una u otra <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l protocolo utilizado. Así, <strong>TCP</strong>/<strong>IP</strong> utiliza<br />

la encapsulación <strong>de</strong>nominada Ethernet II, mientras que el<br />

protocolo utilizado por Novell, el <strong>IP</strong>X/SPX, utiliza la encapsulación<br />

802.3. Ello <strong>de</strong>berá <strong>de</strong> ser tenido en cuenta si se <strong>de</strong>sea<br />

hacer funcionar <strong>de</strong> forma simultánea Unix y Novell utilizando<br />

el mismo soporte físico.<br />

En las estaciones <strong>de</strong> trabajo, se <strong>de</strong>berá escoger el controlador<br />

ODI si se <strong>de</strong>sea hacer coexistir Novell y Unix. En caso<br />

contrario, es más efectivo utilizar Packet Driver. Estas opciones<br />

se encuentran disponibles en el menú <strong>de</strong> configuración<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

20


<strong>de</strong>l programa TUN<strong>TCP</strong>.EXE. El controlador ODI, es capaz <strong>de</strong><br />

simular dos tarjetas <strong>de</strong> red virtuales sobre una única tarjeta<br />

física; redireccionando así las tramas Ethernet al núcleo <strong>de</strong><br />

<strong>TCP</strong>/<strong>IP</strong> y las 802.3 al núcleo <strong>de</strong> <strong>IP</strong>X.<br />

3.2.1 Encapsulación en cola (Trailer Encapsulation)<br />

La RFC 893 (1984) <strong>de</strong>scribía otra forma <strong>de</strong> trama utilizada<br />

por re<strong>de</strong>s Ethernet, don<strong>de</strong> los campos <strong>de</strong> longitu<strong>de</strong>s variables<br />

al principio <strong>de</strong>l área <strong>de</strong> datos (Cabeceras <strong>IP</strong> y <strong>TCP</strong>) eran<br />

<strong>de</strong>splazados al final justo antes <strong>de</strong>l CRC. Ello permitía a la<br />

porción <strong>de</strong> datos <strong>de</strong> la trama ser ubicada enteramente en una<br />

única página <strong>de</strong> memoria, ahorrando así una copia <strong>de</strong> memoria<br />

a memoria cada vez que los datos eran guardados en el<br />

espacio <strong>de</strong> direccionamiento <strong>de</strong>l núcleo.<br />

Encapsulación IEEE 802.2/802.3 (RFC 1042):<br />

802.3 MAC<br />

802.2 LLC<br />

Encapsulación Ethernet (RFC 894):<br />

ÍNDICE<br />

3. El primer protocolo<br />

802.2 SNAP<br />

Dir. Destino Dir. Fuente Long. DSAP SSAP Cntl. org co<strong>de</strong> Tipo.<br />

6 6 2 1 1 1 3 2<br />

Dir. Destino Dir. Fuente Tipo.<br />

Datagrama <strong>IP</strong> CRC<br />

6 6 2<br />

Figura 5<br />

21<br />

46 - 1500<br />

Datagrama <strong>IP</strong> CRC<br />

38 - 1492 4<br />

4


3.3 MTU<br />

Como pue<strong>de</strong> verse en la figura anterior, existe un límite en el<br />

tamaño <strong>de</strong> la trama tanto para Ethernet como para<br />

IEEE802.3. Los tamaños máximos para datos (datagrama <strong>IP</strong>)<br />

son <strong>de</strong> 1500 y 1492 respectivamente. Esta característica <strong>de</strong><br />

la capa <strong>de</strong> enlace se conoce como MTU.<br />

Si un datagrama <strong>IP</strong> es mayor que el MTU <strong>de</strong> la capa <strong>de</strong> enlace,<br />

<strong>IP</strong> utiliza un mecanismo <strong>de</strong>nominado fragmentación,<br />

consistente en romper el datagrama en pequeños fragmentos<br />

<strong>de</strong> manera que cada uno <strong>de</strong> ellos sea menor que el MTU.<br />

Este parámetro varía en función <strong>de</strong>l tipo <strong>de</strong> enlace, y <strong>de</strong>pen<strong>de</strong><br />

<strong>de</strong> diversos factores como la tasa <strong>de</strong> error media (BER),<br />

política <strong>de</strong> acceso al medio, velocidad <strong>de</strong> transmisión, etc.<br />

3.4 Direcciones MAC<br />

Cuando un datagrama es enviado hacia una estación o un<br />

servidor <strong>de</strong>terminado, se necesita conocer ante todo su dirección<br />

física. Según la bibliografía consultada, pue<strong>de</strong> aparecer<br />

también como dirección Ethernet, dirección MAC, etc.<br />

Se trata <strong>de</strong> una combinación <strong>de</strong> 48 bits, <strong>de</strong> forma que los 3<br />

primeros bytes <strong>de</strong> la izquierda correspon<strong>de</strong>n al fabricante <strong>de</strong><br />

la tarjeta, y los 3 siguientes <strong>de</strong>pen<strong>de</strong>n <strong>de</strong> diversos factores.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

22


De aquí se <strong>de</strong>duce que utilizando los comandos a<strong>de</strong>cuados,<br />

es fácil conocer la proce<strong>de</strong>ncia <strong>de</strong> cada tarjeta conectada a<br />

la red. La dirección MAC es única e irrepetible.<br />

Toda tarjeta <strong>de</strong> red, <strong>de</strong>be ser capaz <strong>de</strong> respon<strong>de</strong>r a 2 direcciones:<br />

La suya propia, y la dirección <strong>de</strong> Broadcast. Esta última<br />

se caracteriza por tener los 48 bits a 1, con lo cual queda<br />

como FF:FF:FF:FF:FF:FF.<br />

Una trama ethernet enviada a la dirección <strong>de</strong> Broadcast será<br />

atendida por todas las estaciones conectadas sobre el mismo<br />

segmento. Esta particularidad es utilizada ampliamente por el<br />

protocolo ARP que veremos más a<strong>de</strong>lante.<br />

ÍNDICE<br />

3. El primer protocolo<br />

Dirección MAC - Unica<br />

02 : 60 : 8C : OD : OA : 5C<br />

Fabricante: 3Com<br />

Figura 6<br />

23


Una forma <strong>de</strong> saber si nuestro interface está correctamente<br />

instalado, es interrogar al hardware acerca <strong>de</strong> la dirección<br />

MAC. En Unix existen comandos para ello que luego veremos,<br />

y en MS-DOS se visualiza automáticamente al ejecutar<br />

el núcleo <strong>de</strong> <strong>TCP</strong>/<strong>IP</strong>, en nuestro caso el ejecutable<br />

ETH<strong>TCP</strong>.EXE <strong>de</strong> TUN mediante el fichero batch<br />

AUTO<strong>TCP</strong>.BAT situado en el directorio C:\TUN<strong>TCP</strong>.<br />

Se <strong>de</strong>talla a continuación una lista con los principales fabricantes<br />

<strong>de</strong> dispositivos LAN Ethernet:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

24


ÍNDICE<br />

3. El primer protocolo<br />

Dirección MAC Fabricante Dirección MAC Fabricante<br />

00:00:0C Cisco 08:00:0B Unisys<br />

00:00:0F NeXT 08:00:10 AT&T<br />

00:00:10 Sytek 08:00:11 Tektronix<br />

00:00:1D Cabletron 08:00:14 Excelan<br />

00:00:65 Network General 08:00:1ª Data General<br />

00:00:6B M<strong>IP</strong>S 08:00:1B Data General<br />

00:00:77 M<strong>IP</strong>S 08:00:1E Apollo<br />

00:00:89 Cayman Systems 08:00:20 Sun<br />

00:00:93 Proteon 08:00:25 CDC<br />

00:00:A2 Wellfleet 08:00:2B DEC<br />

00:00:A7 NCD 08:00:38 Bull<br />

00:00:A9 Network Systems 08:00:39 Spi<strong>de</strong>r Systems<br />

00:00:C0 Western Digital 08:00:46 Sony<br />

00:00:C9 Emulex 08:00:47 Sequent<br />

00:80:2D Xilogics Annex 08:00:5A IBM<br />

00:AA:00 Intel 08:00:69 Silicon Graphics<br />

00:DD:00 Ungermann-Bass 08:00:6E Excelan<br />

00:DD:01 Ungermann-Bass 08:00:86 Imagen/QMS<br />

02:07:01 MICOM/Interlan 08:00:87 Xyplex terminal<br />

02:60:8C 3Com 08:00:89 Kinetics<br />

00:C0:F0 Kingston 00:00:D0 D-LINK<br />

08:00:02 3Com(Bridge) 08:00:8B Pyramid<br />

08:00:03 ACC 08:00:90 Retix<br />

08:00:05 Symbolics AA:00:03 DEC<br />

08:00:08 BBN AA:00:04 DEC<br />

08:00:09 Hewlett-Packard 10:00:5A IBM<br />

Tabla 1<br />

25


4. El protocolo <strong>IP</strong><br />

4.1 Direcciones <strong>IP</strong><br />

Las direcciones MAC permiten i<strong>de</strong>ntificar máquinas <strong>de</strong>ntro<br />

<strong>de</strong> un mismo segmento, pero ello no es suficiente<br />

para satisfacer las necesida<strong>de</strong>s <strong>de</strong> comunicación <strong>de</strong>ntro<br />

<strong>de</strong> una red que pue<strong>de</strong> estar compuesta por miles <strong>de</strong> ellos.<br />

Se necesita pues un protocolo <strong>de</strong> red que permita hacer llegar<br />

a su <strong>de</strong>stino una unidad <strong>de</strong> información, datagrama <strong>IP</strong> en<br />

nuestro caso, que a lo largo <strong>de</strong> su recorrido pue<strong>de</strong> atravesar<br />

re<strong>de</strong>s con protocolos <strong>de</strong> enlace muy dispares (Ethernet,<br />

Token Ring, Token Bus, líneas punto a punto con SL<strong>IP</strong>, PPP,<br />

HDLC y un sinfín <strong>de</strong> combinaciones a través <strong>de</strong> otras re<strong>de</strong>s<br />

como RDSI o Frame Relay).<br />

Las direcciones <strong>IP</strong> tienen una longitud <strong>de</strong> 32 bits, organizadas<br />

en 4 grupos <strong>de</strong> 8 bits cada uno. Se divi<strong>de</strong>n fundamental-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

26


mente en dos partes: la porción <strong>de</strong> la Red y la porción <strong>de</strong> la<br />

máquina.<br />

La porción <strong>de</strong> red i<strong>de</strong>ntifica a un grupo <strong>de</strong> máquinas que comparten<br />

el mismo protocolo <strong>de</strong> enlace <strong>de</strong>ntro <strong>de</strong>l mismo medio<br />

físico. En nuestra configuración <strong>de</strong> referencia, tenemos realmente<br />

tres re<strong>de</strong>s: dos <strong>de</strong> tipo Ethernet y una <strong>de</strong> tipo punto a<br />

punto (Conexión RS232) en la que sólo intervienen dos partes<br />

correspondientes a cada extremo <strong>de</strong>l enlace.<br />

El campo <strong>de</strong> máquina hace referencia a todas aquellas estaciones<br />

conectadas a la misma red.<br />

El tamaño <strong>de</strong> cada parte <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l valor <strong>de</strong> los bits <strong>de</strong><br />

mayor peso, tal y como se muestra en la tabla 2.<br />

Clase<br />

ÍNDICE<br />

7bit<br />

A 0 Red<br />

B 1 0<br />

14bit<br />

Red<br />

4. El protocolo <strong>IP</strong><br />

21bit<br />

C 1 1 0 Red<br />

D 1 1 1 0<br />

28bit<br />

Multicast<br />

27bit<br />

E 1 1 1 1 0 Futuras ampliaciones<br />

Estructura <strong>de</strong> las direcciones <strong>IP</strong><br />

27<br />

24bit<br />

Máquina<br />

Tabla 2<br />

16bit<br />

Máquina<br />

8bit<br />

Máquina<br />

0.0.0.0<br />

127.255.255.255<br />

126.0.0.0<br />

191.255.255.255<br />

192.0.0.0<br />

223.255.255.255<br />

240.0.0.0<br />

239.255.255.255<br />

240.0.0.0<br />

247.255.255.255


De aquí surge una clasificación en 5 tipos <strong>de</strong> re<strong>de</strong>s en función<br />

<strong>de</strong>l contenido <strong>de</strong> cada uno <strong>de</strong> los campos <strong>de</strong> dirección,<br />

tal y como se muestra en la tabla.<br />

De esta forma, se logra una mayor optimización en las tablas<br />

<strong>de</strong> encaminamiento <strong>de</strong> los Routers y Gateways, puesto que<br />

únicamente tienen que localizar la porción <strong>de</strong> la red a la hora<br />

<strong>de</strong> encaminar un datagrama.<br />

Dentro <strong>de</strong>l direccionamiento <strong>IP</strong>, al igual que en las direcciones<br />

MAC, existe una dirección <strong>de</strong> Broadcast <strong>de</strong>finida con todos<br />

los bits a 1 correspondientes a la porción <strong>de</strong> máquina. Es<br />

<strong>de</strong>cir, la dirección 134.215.255.255 sería una dirección <strong>de</strong><br />

Broadcast perteneciente a la red 134.215. A diferencia <strong>de</strong><br />

MAC, <strong>de</strong>ntro <strong>de</strong> <strong>IP</strong> las re<strong>de</strong>s también poseen direcciones<br />

que se obtienen con todos los bits <strong>de</strong> la porción <strong>de</strong> máquina<br />

a 0. Continuando con el ejemplo anterior, la dirección<br />

134.215.0.0 correspon<strong>de</strong>ría a la dirección <strong>IP</strong> <strong>de</strong> la red<br />

134.215.<br />

Cada interface <strong>IP</strong> situado <strong>de</strong>ntro <strong>de</strong> un misma máquina,<br />

tiene una dirección propia <strong>IP</strong>. Significa que si en nuestro ejemplo<br />

tenemos una tarjeta <strong>de</strong> red en el servidor, y una conexión<br />

SL<strong>IP</strong> asociada a uno <strong>de</strong> sus puertos serie, éste presentará<br />

por tanto dos direcciones <strong>IP</strong>. Podríamos acce<strong>de</strong>r a él a través<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

28


<strong>de</strong> cualquiera <strong>de</strong> ellas siempre que sus tablas <strong>de</strong> enrutamiento<br />

lo permitiesen.<br />

4.2 SL<strong>IP</strong><br />

«Serial Line <strong>IP</strong>», es una forma sencilla <strong>de</strong> encapsulación <strong>de</strong><br />

datagramas <strong>IP</strong> sobre líneas serie, especificado en la RFC<br />

1055. La popularidad <strong>de</strong> SL<strong>IP</strong> se <strong>de</strong>be a las conexiones <strong>de</strong><br />

sistemas domésticos sobre Internet a través <strong>de</strong>l puerto serie<br />

RS232 existente en todos los or<strong>de</strong>nadores personales. Existe<br />

una variante <strong>de</strong>nominada CSL<strong>IP</strong> o SL<strong>IP</strong> comprimido que<br />

reduce las cabeceras tanto <strong>de</strong> <strong>TCP</strong> como <strong>de</strong> <strong>IP</strong> <strong>de</strong> 40 a 3 o 5<br />

bytes, especificado en la RFC 1144 (Van Jacobson).<br />

El formato <strong>de</strong> la trama SL<strong>IP</strong> es sencillo. Consiste únicamente<br />

en dotar al datagrama <strong>IP</strong> <strong>de</strong> unos caracteres <strong>de</strong> comienzo y<br />

final C0, y <strong>de</strong> un sistema <strong>de</strong> transparencia que se obtiene<br />

mediante el carácter <strong>de</strong> Escape Slip DB.<br />

Si <strong>de</strong>ntro <strong>de</strong>l datagrama <strong>IP</strong> aparece un carácter C0, éste se<br />

sustituye por la pareja <strong>de</strong> octetos DB,DC.<br />

Si aparece un carácter <strong>de</strong> Escape DB, se sustituirá por dos<br />

octetos correspondientes a DB,DD.<br />

SL<strong>IP</strong> no proporciona ningún algoritmo <strong>de</strong> control <strong>de</strong> errores<br />

similar al campo CRC <strong>de</strong> la trama Ethernet. Si una línea tele-<br />

ÍNDICE<br />

4. El protocolo <strong>IP</strong><br />

29


fónica con una relación señal ruido muy baja corrompe un<br />

datagrama transferido por SL<strong>IP</strong>, <strong>de</strong>ben ser las capas superiores<br />

las encargadas <strong>de</strong> <strong>de</strong>tectarlo.<br />

Este problema queda paliado en parte, con la aparición <strong>de</strong> las<br />

normas V42 y MNP4 que permiten la corrección <strong>de</strong> errores<br />

entre ambos mó<strong>de</strong>m <strong>de</strong> forma transparente.<br />

4.3 PPP<br />

«Point to Point Protocol», es una variante más mo<strong>de</strong>rna <strong>de</strong><br />

SL<strong>IP</strong> que introduce las siguientes mejoras:<br />

* Soporte tanto para líneas asíncronas <strong>de</strong> 8 bits como <strong>de</strong><br />

enlaces síncronos orientados a bit.<br />

* Protocolo <strong>de</strong> control <strong>de</strong> enlace (LCP). Para establecer, configurar<br />

y comprobar la conexión <strong>de</strong>l enlace <strong>de</strong> datos.<br />

* Protocolos <strong>de</strong> control <strong>de</strong> red (NCP). Por ejemplo, NCP <strong>IP</strong><br />

permite a cada extremo especificar si se autoriza la compresión<br />

<strong>de</strong> la cabecera igual que CSL<strong>IP</strong>.<br />

Tanto Slip como PPP, puesto que son conexiones punto a<br />

punto, <strong>de</strong>ben ser consi<strong>de</strong>rados como re<strong>de</strong>s in<strong>de</strong>pendientes<br />

compuestas únicamente por dos interfaces <strong>IP</strong> uno a cada<br />

lado <strong>de</strong> la conexión.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

30


4.4 Interface <strong>de</strong> bucle local (Loopback Driver)<br />

Este interface permite a un cliente y un servidor situados<br />

sobre la misma máquina, comunicarse entre sí vía <strong>TCP</strong>/<strong>IP</strong>.<br />

Para ello se reserva el i<strong>de</strong>ntificador <strong>de</strong> red <strong>de</strong> clase A 127. Por<br />

convención, la mayor parte <strong>de</strong> sistemas asignan la dirección<br />

<strong>IP</strong> 127.0.0.1 al «Loopback Driver» utilizando el nombre<br />

«localhost».<br />

Un datagrama <strong>IP</strong> enviado al interface <strong>de</strong> bucle local no aparecerá<br />

en ningún segmento <strong>de</strong> la red, produciendo una entrada<br />

<strong>IP</strong> en la misma máquina.<br />

4.5 Máscara <strong>de</strong> Subred<br />

Todo interface <strong>IP</strong>, necesita como mínimo dos parámetros: La<br />

dirección <strong>IP</strong> y su máscara asociada.<br />

La máscara, se compone <strong>de</strong> 32 bits. Estos se superponen bit<br />

a bit a la dirección <strong>IP</strong> <strong>de</strong> tal forma que aquellos cuyo valor es<br />

1, indican que la porción correspondiente a la dirección, es la<br />

parte <strong>de</strong> red. El valor 0, señala la parte <strong>de</strong> máquina.<br />

Lógicamente, existe siempre una máscara por <strong>de</strong>fecto asociada<br />

a la dirección <strong>IP</strong>, en función <strong>de</strong> la clase.<br />

En la figura 7.1, la máscara por <strong>de</strong>fecto representada en<br />

notación <strong>de</strong>cimal sería 255.255.0.0.(Clase B). Ello quiere<br />

ÍNDICE<br />

4. El protocolo <strong>IP</strong><br />

31


<strong>de</strong>cir que nunca vamos a po<strong>de</strong>r utilizar menos <strong>de</strong> 16 bits para<br />

el campo <strong>de</strong> red, aunque siempre tendremos la posibilidad <strong>de</strong><br />

aumentar los bits <strong>de</strong> la máscara por <strong>de</strong>fecto para crear lo que<br />

llamamos subre<strong>de</strong>s. Todas las máquinas actuales soportan<br />

el direccionamiento <strong>de</strong> subred (RFC 950).<br />

Por ejemplo, la dirección 10.2.45.1 pertenece a la red<br />

10.0.0.0 <strong>de</strong> clase A (Ver tabla 2). Su máscara por <strong>de</strong>fecto<br />

<strong>de</strong>berá ser 255.0.0.0 en notación <strong>de</strong>cimal o<br />

11111111.00000000.00000000.00000000 en notación binaria.<br />

En un único segmento ethernet, resulta muy sencillo. Todas<br />

las máquinas conectadas llevarían la máscara 255.0.0.0 y se<br />

numerarían 10.2.45.1, 10.7.23.124, 10.0.12.253, etc., manteniendo<br />

la porción <strong>de</strong> la red siempre igual a 10. Se dispondría<br />

por tanto <strong>de</strong> 224 máquinas menos 2: La dirección <strong>de</strong> broadcast<br />

10.255.255.255 y la dirección <strong>de</strong> la red 10.0.0.0 no válidas<br />

para numerar máquinas.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

16 Bits<br />

B Id. Red<br />

Clase B<br />

8 Bits 8 Bits<br />

Id. Subred Id. Máquina<br />

11111111111111111111111100000000<br />

Máscara <strong>de</strong> Subred Subred 255.255.255.0<br />

Figura 7.1<br />

32<br />

128.0.0.0<br />

191.255.255.255


Pero si quisiéramos conectar nuestro segmento con dos segmentos<br />

más, a través <strong>de</strong> una pasarela (Router), necesitaríamos<br />

ampliar la máscara como mínimo 2 bits más para tener<br />

así 4 subre<strong>de</strong>s. De este modo quedaría una máscara <strong>de</strong><br />

11111111.11000000.00000000.00000000 o 255.192.0.0.<br />

Dispondríamos en este caso <strong>de</strong> las siguientes subre<strong>de</strong>s:<br />

00001010.00000000.00000000.00000000 ó 10.0.0.0<br />

00001010.01000000.00000000.00000000 ó 10.64.0.0<br />

00001010.10000000.00000000.00000000 ó 10.128.0.0<br />

00001010.11000000.00000000.00000000 ó 10.192.0.0<br />

El número <strong>de</strong> máquinas por cada una <strong>de</strong> estas subre<strong>de</strong>s<br />

sería 222 menos 2. Por tanto, cada vez que se amplía la máscara,<br />

se pier<strong>de</strong>n 2 direcciones <strong>IP</strong> en cada subred (Broadcast<br />

y red).<br />

Resumiendo, hemos consi<strong>de</strong>rado que una dirección <strong>IP</strong> está<br />

compuesta <strong>de</strong> dos i<strong>de</strong>ntificadores, uno para la red y otro para<br />

la máquina. El ámbito <strong>de</strong> cada uno <strong>de</strong> ellos <strong>de</strong>pen<strong>de</strong> <strong>de</strong> la<br />

clase a la que pertenece esa dirección. En realidad, el i<strong>de</strong>ntificador<br />

<strong>de</strong> máquina pue<strong>de</strong> igualmente reagrupar un i<strong>de</strong>ntificador<br />

<strong>de</strong> subred.<br />

ÍNDICE<br />

4. El protocolo <strong>IP</strong><br />

33


Ello tiene sentido puesto que las direcciones <strong>de</strong> clase A y B<br />

reservan <strong>de</strong>masiados bits al i<strong>de</strong>ntificador <strong>de</strong> máquina. Nadie<br />

necesita conectar tantas máquinas a una única red.<br />

Después <strong>de</strong> haber obtenido el i<strong>de</strong>ntificador <strong>de</strong> red <strong>de</strong> una<br />

<strong>de</strong>terminada clase, es responsabilidad <strong>de</strong>l administrador local<br />

<strong>de</strong>l sistema <strong>de</strong>cidir si es necesario o no crear una subred. En<br />

caso afirmativo, también <strong>de</strong>berá estimarse el número <strong>de</strong> bits<br />

para i<strong>de</strong>ntificar a la subred y a la máquina. En el ejemplo<br />

siguiente se parte <strong>de</strong> una dirección <strong>de</strong> clase B, la 140.252, y<br />

sobre los 16 bits restantes, 8 son atribuidos al i<strong>de</strong>ntificador <strong>de</strong><br />

subred y 8 al i<strong>de</strong>ntificador <strong>de</strong> máquina.<br />

La utilización <strong>de</strong> 8 bits como máscara <strong>de</strong> subred suele ser<br />

comúnmente utilizada por su facilidad <strong>de</strong> comprensión, pero<br />

ello no impi<strong>de</strong> que se trabaje con otros formatos. Por ejemplo,<br />

la máscara 255.255.255.224 <strong>de</strong>fine una subred <strong>de</strong> 11 bits y 5<br />

bits para la dirección <strong>de</strong> máquina.<br />

4.5.1 Máscara <strong>de</strong> longitud variable<br />

La <strong>de</strong>cisión <strong>de</strong> ampliar la máscara nos permite crear subre<strong>de</strong>s<br />

y asignar así números <strong>de</strong> subred a máquinas que comparten<br />

el mismo nivel <strong>de</strong> enlace. Es lo que hemos estado<br />

viendo hasta el momento.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

34


Pero, pue<strong>de</strong> darse el caso <strong>de</strong> que alguna <strong>de</strong> las subre<strong>de</strong>s creadas<br />

y a la que se le ha asigando una dirección <strong>de</strong> red, necesite<br />

dar servicio a un nuevo segmento que <strong>de</strong>sea unirse a<br />

todo el conjunto.<br />

El administrador <strong>de</strong> esta nueva subred ya dispone <strong>de</strong> una<br />

máscara asignada previamente por el sistema. No le queda<br />

otro remedio que ampliar la máscara a 13 bit por ejemplo<br />

para así asignar un número <strong>de</strong> subred al nuevo segmento.<br />

En su máquina existirían dos interfaces con máscaras distintas:<br />

una <strong>de</strong> 11 bit que mantenía hasta el momento, y otra <strong>de</strong><br />

13 que estaría conectado al nuevo segmento.<br />

El número <strong>de</strong> bits utilizados para la ampliación <strong>de</strong> la máscara<br />

<strong>de</strong>pen<strong>de</strong>rá <strong>de</strong> lo que estimemos oportuno en función <strong>de</strong>l<br />

número <strong>de</strong> subre<strong>de</strong>s a añadir y <strong>de</strong>l número <strong>de</strong> máquinas.<br />

En el ejemplo <strong>de</strong> la figura 7.2 queda reflejada esta situación.<br />

En este caso la dirección <strong>de</strong> red impuesta por el administrador<br />

que da el acceso a Internet es 140.252.0.0. Es una clase<br />

B y por tanto disponemos <strong>de</strong> 16 bit para direccionar máquinas.<br />

Se opta por una máscara <strong>de</strong> 8 bit para asignar subre<strong>de</strong>s.<br />

En el esquema sólo se representan dos: la 140.252.1.0 y la<br />

140.252.13.0. Ocurre que el administrador <strong>de</strong>l segmento<br />

don<strong>de</strong> se encuentran las máquinas A y C necesita enlazar la<br />

ÍNDICE<br />

4. El protocolo <strong>IP</strong><br />

35


máquina D mediante una conexión Slip. Su solución es<br />

ampliar la máscara <strong>de</strong>ntro <strong>de</strong> su dominio a 11 bit para po<strong>de</strong>r<br />

así disponer <strong>de</strong> subre<strong>de</strong>s.<br />

Cabe resaltar que la máquina B y el resto <strong>de</strong>l sistema sólo<br />

ven una subred en ese dominio, la 140.252.13.0. Las máscaras<br />

<strong>de</strong> la máquina A son diferentes, una es <strong>de</strong> 8 bit y la otra<br />

<strong>de</strong> 11. Pue<strong>de</strong> comprobarse que no existirá ninguna dirección<br />

<strong>IP</strong> repetida.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Internet<br />

Red 140.252.0.0<br />

B<br />

D<br />

Máscara = 11 bits<br />

Subred 140.252.13.64<br />

.13.65 Slip .13.66<br />

C A<br />

.13.33 .13.34<br />

Máscara = 11 bits<br />

Subred 140.252.13.32<br />

36<br />

.1.4<br />

Figura 7.2<br />

Máscara = 8 bits<br />

Subred 140.252.1.0


4.6 Cabecera <strong>IP</strong><br />

La figura 7.3 muestra el formato <strong>de</strong>l datagrama <strong>IP</strong>. El tamaño<br />

normal <strong>de</strong> una cabecera <strong>IP</strong> es <strong>de</strong> 20 bytes, a no ser que presente<br />

opciones.<br />

El bit más significativo está marcado como 0 en el lado<br />

izquierdo, mientras que el menos significativo <strong>de</strong> la palabra<br />

<strong>de</strong> 32 bits se etiqueta como 31 en el lado <strong>de</strong>recho. Los 4 octetos<br />

<strong>de</strong> cada palabra <strong>de</strong> 32 bit se transmiten empezando por<br />

el 0 hasta el 31.<br />

0<br />

Ver 4 bit HL 4 bit TOS 4 bit<br />

ÍNDICE<br />

I<strong>de</strong>ntificación<br />

TTL 4 bit Protocolo 4 bit<br />

4. El protocolo <strong>IP</strong><br />

15<br />

Dirección <strong>IP</strong> Fuente 32 bit<br />

Dirección <strong>IP</strong> Destino 32 bit<br />

Opciones (si existen) Múltiplo <strong>de</strong> 32<br />

Figura 7.3<br />

37<br />

16<br />

Datos<br />

Flag 3 bit<br />

LONGITUD TOTAL 16 bit<br />

Fragment Offset 13 bit<br />

Suma <strong>de</strong> Control <strong>de</strong> cabecera 16 bit<br />

31


La versión en curso actualmente es la 4 también conocida<br />

como <strong>IP</strong>v4. El campo «Ver» sobre 4 bit transporta esta información.<br />

Existen actualmente en <strong>de</strong>sarrollo cuatro propuestas<br />

para la aparición <strong>de</strong> una nueva versión <strong>de</strong> <strong>IP</strong>: S<strong>IP</strong> (Simple<br />

Internet Protocol RFC 1347), P<strong>IP</strong>, TUBA (<strong>TCP</strong> and UDP with<br />

Bigger Address) y TP/IX (RFC 1475). Como únicamente<br />

podrá sobrevivir una <strong>de</strong> ellas, aquella que proporcione la<br />

mejor alternativa a <strong>IP</strong>v4 se <strong>de</strong>nominará <strong>IP</strong>v5 o <strong>IP</strong>ng (<strong>IP</strong> nueva<br />

generación).<br />

El campo HL indica el número <strong>de</strong> palabras <strong>de</strong> 32 bit que<br />

componen la cabecera, incluyendo las opciones eventuales.<br />

Puesto que su tamaño es <strong>de</strong> 4 bit, tendremos que 24 x 32 bit<br />

por palabra, son 64 bytes <strong>de</strong> longitud máxima en la cabecera<br />

<strong>IP</strong>. Este campo posee habitualmente el valor 5 (Cuando no<br />

existen opciones).<br />

TOS (Type of service) indica el Tipo <strong>de</strong> Servicio. Actualmente<br />

los 3 primeros bits son ignorados, los 4 siguientes representan<br />

el TOS y el último está inutilizado y su valor <strong>de</strong>be ser<br />

siempre 0.<br />

Los cuatro bits que componen este campo quedan <strong>de</strong>scritos<br />

en la figura 7.4. Únicamente uno <strong>de</strong> ellos pue<strong>de</strong> estar posicionado<br />

a 1. Si todos están a 0, esto significa un servicio nor-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

38


mal. La RFC 1340 especifica cómo <strong>de</strong>ben ser activados por<br />

el conjunto <strong>de</strong> las aplicaciones estándar. La RFC 1349 aporta<br />

algunas correcciones y una <strong>de</strong>scripción más <strong>de</strong>tallada <strong>de</strong><br />

las particularida<strong>de</strong>s <strong>de</strong>l TOS.<br />

La figura 7.4 indica los valores recomendados para diversas<br />

aplicaciones. Aquellas orientadas a una conexión interactiva<br />

como Telnet o Rlogin, necesitan tiempos <strong>de</strong> respuesta mínimos<br />

puesto que proporcionan un diálogo entre un ser huma-<br />

ÍNDICE<br />

Aplicación<br />

Telnet/Rlogin<br />

FTP<br />

Control<br />

Datos<br />

TFTP<br />

SMTP<br />

Comando<br />

Datos<br />

DNS<br />

Petición UDP<br />

Petición <strong>TCP</strong><br />

Transf. Zona<br />

ICMP<br />

Error<br />

Petición<br />

SNMP<br />

BOOTP<br />

NNTP<br />

4. El protocolo <strong>IP</strong><br />

Minimiza<br />

Retardo<br />

1<br />

1<br />

0<br />

1<br />

1<br />

0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

39<br />

Maximiza<br />

Caudal<br />

0<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

0<br />

Figura 7.4<br />

Maximiza<br />

Fiablilidad<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

1<br />

0<br />

0<br />

Minimiza<br />

Coste<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

0<br />

1


no y una máquina. Las transferencias <strong>de</strong> ficheros como FTP,<br />

requieren un caudal máximo para el enlace <strong>de</strong> datos.<br />

La particularidad <strong>de</strong> TOS no está soportada por la mayoría <strong>de</strong><br />

implementaciones <strong>TCP</strong>/<strong>IP</strong> actuales, únicamente sistemas<br />

mo<strong>de</strong>rnos con versiones posteriores a la 4.3BSD lo utilizan.<br />

Los protocolos <strong>de</strong> encaminamiento más recientes como<br />

OSPF e IS-IS son capaces <strong>de</strong> tomar <strong>de</strong>cisiones en función<br />

<strong>de</strong>l valor <strong>de</strong> este campo.<br />

El campo Longitud Total contiene el tamaño en octetos <strong>de</strong>l<br />

datagrama <strong>IP</strong>. Gracias a él y al campo HL po<strong>de</strong>mos conocer<br />

don<strong>de</strong> empieza y termina la porción <strong>de</strong> datos. Como utiliza 16<br />

bit, se pue<strong>de</strong> <strong>de</strong>ducir que el tamaño máximo o MTU <strong>de</strong> un<br />

datagrama <strong>IP</strong> será <strong>de</strong> 65535 bytes.<br />

El mecanismo <strong>de</strong> fragmentación utilizado por <strong>IP</strong> hace uso <strong>de</strong><br />

los siguientes 3 campos. El primero, I<strong>de</strong>ntificación, permite<br />

marcar <strong>de</strong> forma única cada datagrama enviado por una<br />

máquina. Se incrementa normalmente en cada nuevo envío.<br />

Cuando se produce una fragmentación, este valor es copiado<br />

en cada uno <strong>de</strong> los trozos o fragmentos que componen el<br />

datagrama original. El campo flag <strong>de</strong> 3 bit, activa entonces<br />

uno <strong>de</strong> ellos conocido como «more fragments» colocándolo a<br />

1 en todos los trozos excepto en el último. El campo<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

40


«Fragment Offset» contiene el índice <strong>de</strong>l fragmento a partir<br />

<strong>de</strong>l datagrama original. A<strong>de</strong>más, el campo Longitud Total <strong>de</strong><br />

cada fragmento es actualizado a su nuevo valor.<br />

Existe un bit en el campo «Flag» conocido como «don’t fragment».<br />

Si está activado a 1, <strong>IP</strong> no producirá ninguna fragmentación<br />

eliminando el datagrama y enviando un mensaje<br />

<strong>de</strong> error ICMP a la fuente.<br />

Para evitar que un datagrama que<strong>de</strong> atrapado en algún bucle<br />

<strong>de</strong>ntro <strong>de</strong> la red (Problemas con los protocolos <strong>de</strong> encaminamiento,<br />

p.ej.) existe un tiempo <strong>de</strong> vida representado mediante<br />

el campo TTL (Time to Live). Se inicializa a un cierto valor<br />

por el remitente y se <strong>de</strong>crementa en una unidad por cada<br />

Pasarela o Router que atraviesa. Cuando es alcanzado el<br />

valor 0, el datagrama se elimina y un mensaje ICMP es enviado<br />

a la fuente indicando el suceso.<br />

<strong>IP</strong> i<strong>de</strong>ntifica el protocolo (<strong>TCP</strong>, UDP, ICMP…) al cual <strong>de</strong>be<br />

hacer llegar la información, a través <strong>de</strong> campo Protocolo.<br />

La Suma <strong>de</strong> Control abarca únicamente la cabecera <strong>IP</strong>. Se<br />

calcula como una suma sin acarreo sobre 16 bit, <strong>de</strong> todos los<br />

bytes que componen la cabecera <strong>IP</strong> consi<strong>de</strong>rándolos como<br />

una secuencia <strong>de</strong> palabras <strong>de</strong> 16 bit. Sin embargo, otros pro-<br />

ÍNDICE<br />

4. El protocolo <strong>IP</strong><br />

41


tocolos como <strong>TCP</strong>, UDP, ICMP utilizan códigos <strong>de</strong> redundancia<br />

cíclica (CRC) basados en algoritmos más sofisticados.<br />

El motivo es claro. Una Pasarela o Router <strong>de</strong>be procesar<br />

gran<strong>de</strong>s cantida<strong>de</strong>s <strong>de</strong> paquetes por unidad <strong>de</strong> tiempo.<br />

Generalmente, el único valor que modifica a cada datagrama<br />

es el TTL, <strong>de</strong>crementándolo en una unidad. El cálculo <strong>de</strong> la<br />

suma <strong>de</strong> control pue<strong>de</strong> ser realizado <strong>de</strong> forma incremental<br />

disminuyendo drásticamente el tiempo <strong>de</strong> proceso <strong>de</strong> cada<br />

datagrama por las pasarelas intermedias.<br />

Como ya se comentó anteriormente, cada datagrama contiene<br />

la dirección <strong>IP</strong> <strong>de</strong>l <strong>de</strong>stinatario y la <strong>de</strong>l remitente.<br />

El campo Opciones es una lista <strong>de</strong> longitud variable con<br />

información específica <strong>de</strong>l datagrama. Las opciones actualmente<br />

<strong>de</strong>finidas son las siguientes:<br />

• Seguridad y gestión <strong>de</strong> restricciones. Para aplicaciones<br />

militares documentado en la RFC 1108.<br />

• Registro <strong>de</strong> ruta. Cada pasarela pue<strong>de</strong> añadir su <strong>IP</strong>.<br />

• Estampilla horaria. Cada pasarela pue<strong>de</strong> añadir su <strong>IP</strong> y el<br />

tiempo.<br />

• Enrutamiento no estricto <strong>de</strong> la fuente. Lista <strong>de</strong> direcciones<br />

<strong>IP</strong> por las que <strong>de</strong>be atravesar el datagrama.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

42


• Enrutamiento estricto <strong>de</strong> la fuente. Similar al caso anterior<br />

pero la lista <strong>de</strong> direcciones es obligatoria.<br />

Estas opciones son raramente utilizadas y no todas las<br />

máquinas las soportan. Las direcciones <strong>de</strong>l campo Opciones<br />

acaban siempre con fronteras <strong>de</strong> 32 bits. En caso necesario<br />

pue<strong>de</strong>n ser añadidos bits <strong>de</strong> relleno con el valor 0.<br />

4.7 Administración <strong>de</strong> una red <strong>IP</strong><br />

A la hora <strong>de</strong> asignar direcciones a las máquinas <strong>de</strong> una red<br />

con protocolo <strong>IP</strong>, po<strong>de</strong>mos encontrarnos básicamente con<br />

dos situaciones.<br />

1. Nuestra red no está conectada con una Internet y por<br />

tanto no <strong>de</strong>pen<strong>de</strong> <strong>de</strong> ningún direccionamiento existente.<br />

2. Tenemos un acceso a una Internet a través <strong>de</strong> un Router<br />

y el administrador <strong>de</strong>l sistema nos ha asignado una dirección<br />

<strong>de</strong> red (A, B o C) para que la administremos a nivel<br />

local.<br />

Tanto en un caso como en el otro tendremos que tener claro<br />

cuántas subre<strong>de</strong>s necesitamos.<br />

Las conexiones Punto a Punto son un caso especial, ya que<br />

dada su naturaleza <strong>de</strong> medio no «Broadcast» pue<strong>de</strong>n ser<br />

agrupadas <strong>de</strong>ntro <strong>de</strong> una misma subred en el caso <strong>de</strong> que<br />

ÍNDICE<br />

4. El protocolo <strong>IP</strong><br />

43


nuestro sistema posea más <strong>de</strong> una conexión punto a punto.<br />

Las tablas <strong>de</strong> encaminamiento cuando se trata <strong>de</strong> enlaces<br />

punto a punto siempre hacen referencia a la ruta especificando<br />

la dirección completa <strong>de</strong> cada extremo <strong>de</strong> la conexión.<br />

En el primer caso, la solución es sencilla, po<strong>de</strong>mos utilizar<br />

una Clase A, B o C con la máscara por <strong>de</strong>fecto. Simplemente<br />

tendremos que evitar asignar dos subre<strong>de</strong>s físicamente diferentes<br />

con el mismo i<strong>de</strong>ntificador <strong>de</strong> red. Cada subred <strong>de</strong>be<br />

tener un número <strong>de</strong> red diferente.<br />

En el segundo caso, <strong>de</strong>pen<strong>de</strong>mos <strong>de</strong> una dirección impuesta<br />

por el administrador <strong>de</strong> la red a la que nos hemos <strong>de</strong> conectar.<br />

No po<strong>de</strong>mos alterar el campo <strong>de</strong> red. Sin embargo, po<strong>de</strong>mos<br />

ampliar la máscara por <strong>de</strong>fecto asociada a la clase para<br />

crear las subre<strong>de</strong>s que necesitemos, tal y como se ha explicado<br />

en las secciones prece<strong>de</strong>ntes.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

44


5. Caso práctico<br />

En la figura siguiente queda representada con más<br />

<strong>de</strong>talle la configuración <strong>de</strong> referencia sobre la que se<br />

realizarán los ensayos, así como sus respectivas direcciones<br />

<strong>IP</strong>.<br />

En nuestro ejemplo, el servidor «std» tiene en su interface<br />

Ethernet la dirección 128.128.128.254 y la máscara con la<br />

que se ha configurado el sistema es 255.255.255.0. De aquí<br />

pue<strong>de</strong> <strong>de</strong>ducirse que se trata <strong>de</strong> una red <strong>de</strong> clase B, don<strong>de</strong><br />

existe una subred con un campo <strong>de</strong> 8 bits y una porción <strong>de</strong><br />

máquina <strong>de</strong> 8 bits.<br />

Aunque <strong>de</strong>bido a la máscara <strong>de</strong> subred utilizada podríamos<br />

utilizar hasta 128 subre<strong>de</strong>s, en nuestro ejemplo sólo tenemos<br />

tres.<br />

Dos <strong>de</strong> ellas pertenecen a segmentos Ethernet aislados entre<br />

sí, son las numeradas como .128.0 y .127.0, aunque una <strong>de</strong><br />

ÍNDICE<br />

5. Caso práctico<br />

45


.128.1<br />

ellas pudiera haber sido un anillo Token Ring por ejemplo. La<br />

tercera subred correspon<strong>de</strong> a la conexión Slip con la numeración<br />

.129.0, puesto que este tipo <strong>de</strong> enlaces requiere una<br />

dirección <strong>IP</strong> a cada extremo.<br />

La notación .128.4 o .129.0 indica que la dirección ha <strong>de</strong> ser<br />

completada (al empezar por un punto) y su objetivo es sim-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

50Ω<br />

std.128.254<br />

Subred .128.0<br />

50Ω<br />

.129.1<br />

SL<strong>IP</strong> o PPP<br />

mo<strong>de</strong>m<br />

Subred .129.0<br />

46<br />

.129.2<br />

10Base2 10Base2<br />

.128.2<br />

.128.3<br />

.128.4<br />

Máscara 255.255.255.0<br />

Redd 128.128.0.0<br />

Figura 8<br />

std.127.254<br />

Subred .127.0<br />

50Ω<br />

transceiver<br />

.127.1<br />

.127.2<br />

.127.3<br />

.127.4<br />

50Ω


plificar la representación gráfica. Se sobreentien<strong>de</strong> que las<br />

direcciones reales serían 128.128.128.4 y 128.128.129.0.<br />

Una red o subred está formada por un conjunto <strong>de</strong> máquinas<br />

que comparten el mismo medio <strong>de</strong> transmisión. Este pue<strong>de</strong><br />

ser <strong>de</strong> tipo multipunto o «broadcast» como lo es Ethernet, o<br />

sencillamente estar constituida por un enlace punto a punto<br />

en el que intervienen únicamente dos estaciones, tal es el<br />

caso <strong>de</strong> la conexión Slip.<br />

Los Routers se caracterizan por disponer <strong>de</strong> dos o más interfaces<br />

<strong>de</strong> red, a<strong>de</strong>más <strong>de</strong>l software <strong>de</strong> encaminamiento necesario.<br />

Cada interface <strong>de</strong>be disponer <strong>de</strong> una dirección <strong>de</strong> red<br />

distinta a los <strong>de</strong>más. El servidor std2 tiene dos direcciones <strong>IP</strong><br />

correspondientes a re<strong>de</strong>s diferentes, al igual que std.<br />

Si <strong>de</strong>seáramos unir nuestro sistema a un anillo Token Ring,<br />

bastaría con añadir una tarjeta Token Ring al servidor correspondiente<br />

y asignarle la subred .124.0 por ejemplo.<br />

Si una estación <strong>de</strong>sea enviar un datagrama <strong>IP</strong> a otra situada<br />

en su misma red, lo hará enviando una trama ethernet con la<br />

dirección MAC correspondiente a la estación <strong>de</strong>stino. Si el<br />

datagrama va dirigido a otra red diferente, se confecciona una<br />

trama ethernet con la dirección MAC <strong>de</strong>l Router por <strong>de</strong>fecto,<br />

i<strong>de</strong>ntificado a menudo como «Default Gateway».<br />

ÍNDICE<br />

5. Caso práctico<br />

47


En el primer caso, la trama ethernet contiene la dirección<br />

MAC <strong>de</strong>l <strong>de</strong>stinatario, y el datagrama que transporta también<br />

posee la dirección <strong>IP</strong> <strong>de</strong>l mismo.<br />

En el segundo caso, la trama ethernet enviada contiene la<br />

dirección MAC <strong>de</strong>l Router por <strong>de</strong>fecto, pero la dirección <strong>IP</strong> <strong>de</strong>l<br />

datagrama transportado es la <strong>de</strong>l <strong>de</strong>stinatario.<br />

Puesto que los dos servidores Unix están configurados como<br />

Routers o Gateways, esta circunstancia <strong>de</strong>berá ser consi<strong>de</strong>rada<br />

al configurar el parámetro «Default Gateway» en las<br />

estaciones <strong>de</strong> trabajo.<br />

Es necesario tener presente que a nivel <strong>de</strong> direccionamiento<br />

<strong>IP</strong>, el tipo <strong>de</strong> protocolo <strong>de</strong> enlace utilizado es in<strong>de</strong>pendiente.<br />

Es <strong>de</strong>cir, la conexión vía mó<strong>de</strong>m representada en la figura 1,<br />

pue<strong>de</strong> ser sustituida por una conexión a través <strong>de</strong> una red<br />

pública <strong>de</strong> datos como Iberpac con el protocolo <strong>de</strong> enlace<br />

X25, un enlace a través <strong>de</strong> RDSI, Frame Relay etc. Todo ello<br />

sin alterar para nada el direccionamiento <strong>IP</strong> establecido.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

48


6. Configuración <strong>de</strong> TUN (MS-DOS)<br />

En primer lugar, <strong>de</strong>be comprobarse que nuestra estación<br />

se encuentra conectada correctamente al segmento<br />

<strong>de</strong> la red. Seguidamente nos hemos <strong>de</strong> posicionar<br />

en el directorio C:\TUN<strong>TCP</strong> y lanzar un ejecutable <strong>de</strong>nominado<br />

TUN<strong>TCP</strong>.EXE. Se presentará un menú en la pantalla<br />

con diversas opciones <strong>de</strong> las que seleccionaremos, <strong>de</strong><br />

momento, la primera o <strong>TCP</strong>/<strong>IP</strong>. EL primer paso es crear la<br />

tabla <strong>de</strong> servidores con las direcciones <strong>IP</strong> correspondientes.<br />

Esta tabla se sitúa en el directorio \TUNCTP y se llama HOS-<br />

TTAB. No es una operación imprescindible, pero facilita el uso<br />

<strong>de</strong> posteriores comandos puesto que resulta más fácil referenciar<br />

una estación o un servidor por un nombre que por su<br />

dirección <strong>IP</strong>.<br />

El paso siguiente será la configuración <strong>de</strong>l núcleo <strong>de</strong> <strong>TCP</strong>/<strong>IP</strong>.<br />

En «Parámetros <strong>de</strong> Lanzamiento» se acce<strong>de</strong> a las opciones<br />

ÍNDICE<br />

6. Configuración <strong>de</strong> TUN (MS-DOS)<br />

49


<strong>de</strong> configuración. Todos los parámetros solicitados han sido<br />

expuestos con anterioridad, a excepción <strong>de</strong>l tipo <strong>de</strong> tarjeta,<br />

don<strong>de</strong> <strong>de</strong>berá referenciarse el mo<strong>de</strong>lo Etherlink I <strong>de</strong> 3Com o<br />

3C501, admitiendo todas las opciones por <strong>de</strong>fecto.<br />

Se <strong>de</strong>berán confirmar los cambios pulsando la tecla <strong>de</strong> función<br />

F2, lo cual provocará la aparición <strong>de</strong> un mensaje en pantalla<br />

indicando modificaciones en el fichero CONFIG.SYS.<br />

Una vez realizado esto, es necesario salir <strong>de</strong>l programa<br />

mediante la tecla Escape repetidas veces y arrancar <strong>de</strong><br />

nuevo la máquina.<br />

De nuevo nos posicionamos sobre C:\TUN<strong>TCP</strong> y ejecutamos<br />

ahora el fichero AUTO<strong>TCP</strong>.BAT. Aparecerán una serie <strong>de</strong><br />

mensajes entre los que figurará la dirección MAC <strong>de</strong> nuestra<br />

tarjeta, que anotaremos para posteriores consultas. Si esto<br />

no ocurre así, es muy probable que tengamos mal configurada<br />

la tarjeta.<br />

En este punto se pue<strong>de</strong> comprobar que la mayoría <strong>de</strong> las tarjetas<br />

instaladas en la sala pertenecen al mismo fabricante<br />

(3Com).<br />

Una forma rápida <strong>de</strong> conocer si estamos en red, es mediante<br />

el uso <strong>de</strong>l comando PING.EXE <strong>de</strong>s<strong>de</strong> el «prompt» <strong>de</strong><br />

MSDOS. Existe una versión más sofisticada en Unix que<br />

luego veremos. El modo <strong>de</strong> utilizarlo es el siguiente:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

50


PING o<br />

PING <br />

Si todo está correcto recibiremos el mensaje «host responding».<br />

Es importante comenzar por estaciones que se<br />

encuentren sobre el mismo segmento físico <strong>de</strong> red, para<br />

luego intentarlo sobre otras estaciones situadas al otro lado<br />

<strong>de</strong> la conexión SL<strong>IP</strong>.<br />

Posteriormente profundizaremos un poco más sobre el programa<br />

PING.<br />

Puesto que, suponiendo que todo haya ido bien, nuestro<br />

enlace <strong>IP</strong> funciona correctamente, vamos a comprobar que la<br />

capa <strong>TCP</strong> está operativa. Es necesario tener presente que<br />

«Ping» no utiliza protocolos <strong>de</strong> transporte y se basa únicamente<br />

en <strong>IP</strong> e ICMP, con lo que aunque funcione correctamente,<br />

no existe garantía <strong>de</strong> que los protocolos por encima<br />

<strong>de</strong> <strong>IP</strong> también lo hagan (Ver figura 9).<br />

Ejecutamos para ello <strong>de</strong>s<strong>de</strong> la máquina local en MS-DOS:<br />

C:\TUN<strong>TCP</strong>> REXEC STD -L login -P password <br />

Ello retorna la salida <strong>de</strong>l comando Unix invocado mediante el<br />

servicio «rexec», hacia la pantalla en modo MS-DOS.<br />

ÍNDICE<br />

6. Configuración <strong>de</strong> TUN (MS-DOS)<br />

51


ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

7. Cuestionario<br />

1º) ¿Qué ventaja pue<strong>de</strong> aportarnos el disponer <strong>de</strong> un interface<br />

AUI en nuestra placa <strong>de</strong> red?<br />

2º) ¿Qué ocurre si se intenta enviar un bloque <strong>de</strong> información<br />

<strong>de</strong> tamaño superior al MTU <strong>de</strong> la capa <strong>de</strong> enlace?<br />

3º) ¿A cuántos tipos <strong>de</strong> direcciones <strong>de</strong>stino es capaz <strong>de</strong> respon<strong>de</strong>r<br />

una tarjeta <strong>de</strong> red?<br />

4º) ¿Cuántas máquinas podrían ser direccionadas con los<br />

siguientes parámetros <strong>de</strong> red?<br />

Dirección <strong>de</strong> la red: 93.0.0.0<br />

Máscara <strong>de</strong> subred: 255.255.255.0<br />

5º) Determinar cuantas subre<strong>de</strong>s podrían ser generadas en<br />

la cuestión anterior.<br />

52


6º) Calcular las direcciones <strong>IP</strong> y las máscaras <strong>de</strong> subred <strong>de</strong><br />

cada uno <strong>de</strong> los interfaces <strong>de</strong> la red 203.109.44.0 representada<br />

en la figura 8.1.<br />

7º) ¿Qué suce<strong>de</strong> si se cambia la máscara <strong>de</strong> subred al valor<br />

por <strong>de</strong>fecto (0 bits <strong>de</strong> subred) en una estación conectada al<br />

segmento Ethernet?<br />

Razónense los hechos observados.<br />

8º) ¿Qué pasa si el Router por <strong>de</strong>fecto no es el a<strong>de</strong>cuado o<br />

no existe?<br />

?<br />

?<br />

ÍNDICE<br />

?<br />

7. Cuestionario 1<br />

Red 203.109.44.0<br />

masc: 255.255.255.0<br />

?<br />

? ?<br />

Slip Slip<br />

? ?<br />

?<br />

?<br />

? ? ? ?<br />

? ? ? ?<br />

Figura 8.1<br />

53<br />

?<br />

?<br />

?<br />

?


8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

En la figura siguiente se pue<strong>de</strong>n observar las distintas<br />

capas que forman la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong>, así<br />

como sus interacciones:<br />

Ping<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Telnet<br />

& Rlogin<br />

FTP SMTP DNS BOOTP SNMP NFS RPC<br />

<strong>TCP</strong> UDP<br />

ICMP <strong>IP</strong> IGMP<br />

ARP<br />

enlace<br />

<strong>de</strong><br />

datos<br />

RARP<br />

medio<br />

Figura 9<br />

54<br />

]<br />

Transporte<br />

]<br />

]<br />

Aplicación<br />

Red<br />

Enlace


Los protocolos <strong>de</strong> red están generalmente organizados en<br />

capas, <strong>de</strong> forma que cada una <strong>de</strong> ellas controla una parte <strong>de</strong><br />

las comunicaciones. <strong>TCP</strong>/<strong>IP</strong> es una combinación <strong>de</strong> diferentes<br />

protocolos situados en capas diferentes.<br />

<strong>IP</strong> es el «caballo <strong>de</strong> batalla» utilizado por todos los protocolos<br />

<strong>de</strong> la estructura. El conjunto <strong>de</strong> datos emitidos por <strong>TCP</strong>,<br />

UDP, ICMP y IGMP son transmitidos como datagramas <strong>IP</strong>. El<br />

hecho <strong>de</strong> que <strong>IP</strong> proporcione un servicio no fiable, utilizando<br />

una entrega <strong>de</strong> datagramas sin conexión, sorpren<strong>de</strong> muchos<br />

allegados a <strong>TCP</strong>/<strong>IP</strong>, especialmente aquellos que han conocido<br />

X.25 o SNA.<br />

Por «no fiable», se entien<strong>de</strong> que no existe ninguna garantía<br />

<strong>de</strong> que el datagrama llegue a su <strong>de</strong>stino. <strong>IP</strong> proporciona un<br />

servicio con el mínimo consumo <strong>de</strong> recursos. Cuando ocurre<br />

algún problema, como por ejemplo una saturación en los<br />

«buffers» <strong>de</strong> cualquier Router intermedio, <strong>IP</strong> utiliza un algoritmo<br />

<strong>de</strong> gestión muy simple: <strong>de</strong>vuelve el datagrama intentando<br />

enviar un mensaje <strong>de</strong> control ICMP a la fuente.<br />

Cualquier exigencia <strong>de</strong> fiabilidad <strong>de</strong>be ser asegurada por los<br />

niveles superiores, por ejemplo <strong>TCP</strong>.<br />

Observando el diagrama po<strong>de</strong>mos comprobar que hasta el<br />

momento no hemos echo en absoluto uso <strong>de</strong> los protocolos<br />

ÍNDICE<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

55


<strong>de</strong> transporte <strong>TCP</strong> o UDP. Únicamente han entrado en funcionamiento<br />

los protocolos ICMP y ARP que <strong>de</strong>scribiremos<br />

en breve.<br />

8.1 Número <strong>de</strong> Puerto<br />

<strong>TCP</strong> y UDP i<strong>de</strong>ntifican las aplicaciones utilizando números <strong>de</strong><br />

16 bits. Existen una serie <strong>de</strong> puertos claramente especificados<br />

para <strong>de</strong>terminados servicios. Por ejemplo, cada implementación<br />

<strong>TCP</strong>/<strong>IP</strong> que genera un servidor FTP, lo hace a través<br />

<strong>de</strong>l puerto <strong>TCP</strong> 21, cada servidor Telnet figura en el puerto<br />

<strong>TCP</strong> 23, y cada implementación <strong>de</strong> TFTP resi<strong>de</strong> sobre el<br />

puerto UDP 69.<br />

Aquellos servicios proporcionados por implementaciones<br />

<strong>TCP</strong>/<strong>IP</strong>, tienen números <strong>de</strong> puerto bien <strong>de</strong>finidos comprendidos<br />

entre 1 y 1023, y son gestionados por la IANA (Internet<br />

Assigned Numbers Authority). Los números <strong>de</strong> puerto <strong>de</strong> los<br />

clientes son efímeros puesto que éstos únicamente existen<br />

mientras necesitan hacer uso <strong>de</strong>l servicio. Se reservan por<br />

tanto, en la mayoría <strong>de</strong> versiones <strong>TCP</strong>/<strong>IP</strong> los puertos efímeros<br />

<strong>de</strong>l 1024 al 5000. Por encima <strong>de</strong>l puerto 5000 se reservan<br />

a otros servidores no <strong>de</strong>finidos sobre Internet.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

56


8.2 Socket<br />

Cada segmento <strong>TCP</strong> contiene los números <strong>de</strong> puerto fuente<br />

y <strong>de</strong>stino con el fin <strong>de</strong> i<strong>de</strong>ntificar la aplicación emisora y la<br />

receptora. Estos dos valores, combinados con las direcciones<br />

<strong>IP</strong> fuente y <strong>de</strong>stino, i<strong>de</strong>ntifican cada conexión <strong>de</strong> forma única.<br />

La combinación <strong>de</strong> un número <strong>de</strong> puerto y una dirección <strong>IP</strong><br />

se conoce como socket.<br />

Por tanto, el cuarteto compuesto por la dirección <strong>IP</strong> <strong>de</strong>l<br />

Cliente, el número <strong>de</strong> puerto <strong>de</strong>l Cliente, la dirección <strong>IP</strong> <strong>de</strong>l<br />

Servidor y el número <strong>de</strong> puerto <strong>de</strong>l Servidor; forma la pareja<br />

<strong>de</strong> sockets que i<strong>de</strong>ntifican cada conexión <strong>TCP</strong>.<br />

8.3 Pequeño Inciso<br />

Antes <strong>de</strong> continuar, vamos a dar un pequeño salto en el or<strong>de</strong>n<br />

lógico <strong>de</strong> exposición <strong>de</strong> la materia, ejecutando un servicio<br />

que nos permitirá tener acceso directo sobre los servidores<br />

Unix. Se trata <strong>de</strong>l servicio Telnet, implementado por TUN<br />

mediante el ejecutable TNVT52.EXE que proporciona una<br />

sencilla emulación tipo VT52 suficiente para nuestras pretensiones.<br />

TUN posee un producto adicional no instalado en nuestro<br />

caso, pero utilizado <strong>de</strong> forma asidua por todos los usuarios <strong>de</strong><br />

ÍNDICE<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

57


TUN<strong>TCP</strong> <strong>de</strong>nominado TUNEMUL, que permite cuatro sesiones<br />

simultáneas con emulación tipo ANSI.<br />

La forma <strong>de</strong> ejecutar TNVT52.EXE es muy similar a la <strong>de</strong><br />

PING.EXE, es <strong>de</strong>cir:<br />

TNVT52 o<br />

TNVT52 o<br />

TNVT52<br />

En el último caso, el programa preguntará el nombre o la<br />

dirección <strong>IP</strong> <strong>de</strong>l servidor al cual queremos conectarnos. El<br />

esquema <strong>de</strong> funcionamiento <strong>de</strong> Telnet queda reflejado en la<br />

figura 10.<br />

Lógicamente, para po<strong>de</strong>r acce<strong>de</strong>r <strong>de</strong> cualquier forma a un<br />

sistema Multiusuario como Unix se necesita tener creadas<br />

previamente las cuentas <strong>de</strong> usuario, labor que correspon<strong>de</strong> al<br />

administrador <strong>de</strong>l sistema.<br />

Los terminales <strong>de</strong> red en Unix se asocian a terminales virtuales<br />

y generalmente vienen representados como /<strong>de</strong>v/ttypn,<br />

don<strong>de</strong> n es el número <strong>de</strong> terminal asignado. Dicha asignación<br />

es dinámica, <strong>de</strong> forma que no existe ninguna seguridad <strong>de</strong><br />

tener el mismo número <strong>de</strong> terminal en dos conexiones con-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

58


secutivas. Ello pue<strong>de</strong> ser comprobado efectuando 2 conexiones<br />

al mismo servidor y ejecutando el comando:<br />

$ tty<br />

La respuesta podría ser:<br />

$ /<strong>de</strong>v/ttyp12<br />

Con:<br />

$ who -u<br />

Podremos visualizar el estado <strong>de</strong> todos los usuarios conectados<br />

y sus ttyp asociados.<br />

ÍNDICE<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

Cliente Telnet Servidor Telnet Login Shell<br />

Terminal<br />

Driver<br />

Usuario<br />

<strong>TCP</strong>/<strong>IP</strong> <strong>TCP</strong>/<strong>IP</strong><br />

núcleo núcleo<br />

Conexión <strong>TCP</strong><br />

Figura 10<br />

59<br />

Pseudo<br />

Terminal<br />

Driver<br />

(ptty*)


Una vez conectados vía Telnet (TNVT52.EXE) a nuestro servidor<br />

local, po<strong>de</strong>mos hacer <strong>de</strong> nuevo uso <strong>de</strong>l programa cliente<br />

Telnet <strong>de</strong> éste último.<br />

$ hostname permite conocer el nombre <strong>de</strong> nuestro servidor<br />

std<br />

$ telnet std2<br />

login: xxxxx<br />

Password: xxxxx<br />

Sin embargo el servicio Telnet proporcionado por la mayoría<br />

<strong>de</strong> los sistemas Unix, permite especificar en la línea <strong>de</strong><br />

comandos un parámetro mas: el número <strong>de</strong> puerto. Esto<br />

po<strong>de</strong>mos comprobarlo intentando una conexión al puerto<br />

número 7 correspondiente al servicio «echo», cuya única<br />

finalidad es la <strong>de</strong> <strong>de</strong>volver al remitente cualquier datagrama<br />

recibido.<br />

$ telnet std2 7<br />

En apariencia parece que no ocurre nada, sin embargo cualquier<br />

carácter pulsado será <strong>de</strong>vuelto a la pantalla indicando<br />

que nuestro interlocutor está realizando su labor correctamente:<br />

<strong>de</strong>volver todo lo que llega al puerto número 7.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

60


Puesto que utilizamos Telnet, la conexión con el puerto 7 será<br />

a través <strong>de</strong> un socket <strong>TCP</strong>. Ello nos pue<strong>de</strong> servir para seguir<br />

la pista a distintos tipos <strong>de</strong> problemas que suelen aparecer en<br />

este tipo <strong>de</strong> configuraciones.<br />

Una fuente <strong>de</strong> errores en muchas instalaciones, es la aceptación<br />

<strong>de</strong> parámetros por <strong>de</strong>fecto en la generación y configuración<br />

<strong>de</strong> <strong>TCP</strong>/<strong>IP</strong>. Ello provoca generalmente la creación <strong>de</strong><br />

un número limitado <strong>de</strong> ttypn (16 en algunos casos). Si tenemos<br />

en cuenta que cada puesto <strong>de</strong> trabajo, pue<strong>de</strong> tener más<br />

<strong>de</strong> una conexión Telnet y multiplicamos por el número <strong>de</strong><br />

estaciones veremos que 16 en nuestro caso sería insuficiente.<br />

Lo mismo ocurre con las conexiones <strong>TCP</strong>. Todo ello <strong>de</strong>berá<br />

ser corregido mediante el comando «netconfig».<br />

Aprovechando la conexión con el servidor mediante Telnet,<br />

resulta interesante comprobar la existencia <strong>de</strong>l proceso que<br />

controla la conexión SL<strong>IP</strong>. Este fue invocado en el proceso <strong>de</strong><br />

arranque <strong>de</strong> la máquina por una <strong>de</strong> las «shell» <strong>de</strong> conexión<br />

situada en el directorio /etc/rc2.d <strong>de</strong>nominada «S85tcp».<br />

Mediante el comando:<br />

$ more /etc/rc2.d/S85tcp<br />

Po<strong>de</strong>mos localizar una línea que hace alusión a:<br />

slattach +v +c tty1a 128.128.128.1 128.128.128.2 19200<br />

ÍNDICE<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

61


(Pue<strong>de</strong>n variar las direcciones <strong>IP</strong> según el servidor <strong>de</strong> don<strong>de</strong><br />

se lance)<br />

La opción +v indica modo «verbose» o emisión <strong>de</strong> mensajes<br />

<strong>de</strong> estado a la consola. La opción +c indica compresión <strong>de</strong><br />

cabeceras <strong>IP</strong> y <strong>TCP</strong> tipo Van Jacobson. A continuación aparecen<br />

las direcciones <strong>IP</strong> <strong>de</strong> cada extremo <strong>de</strong> la conexión SL<strong>IP</strong><br />

y luego se especifica la velocidad <strong>de</strong> transmisión: 19200 bps.<br />

Mediante el comando:<br />

$ ps -ef|grep slattach<br />

Localizamos en la tabla <strong>de</strong> procesos la línea correspondiente<br />

a «slattach» don<strong>de</strong> figura el comando completo tal y como fue<br />

lanzado, y el número <strong>de</strong> proceso Unix.<br />

8.4 Ping<br />

La versión proporcionada por los sistemas Unix, OS/2,<br />

Windows 95 o NT <strong>de</strong> este programa presenta una serie <strong>de</strong><br />

posibilida<strong>de</strong>s que le convierten en una herramienta muy valiosa<br />

a la hora <strong>de</strong> <strong>de</strong>purar y localizar errores.<br />

Se basa en el protocolo ICMP, o protocolo <strong>de</strong> control <strong>de</strong> transmisión.<br />

Ping a diferencia <strong>de</strong>l resto <strong>de</strong> aplicaciones <strong>TCP</strong>/<strong>IP</strong> no<br />

utiliza ninguno <strong>de</strong> los protocolos <strong>de</strong> transporte <strong>TCP</strong> o UDP. Se<br />

apoya directamente sobre <strong>IP</strong>. Este es un hecho a tener en<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

62


cuenta, dado que la recepción <strong>de</strong> una respuesta Ping indica<br />

que la máquina remota está activa, pero no asegura que el<br />

funcionamiento <strong>de</strong> su capa <strong>TCP</strong> o UDP sea el correcto.<br />

Ping utiliza el comando eco <strong>de</strong> ICMP para enviar un datagrama<br />

a su <strong>de</strong>stinatario y esperar su retorno. De este modo es<br />

capaz <strong>de</strong> evaluar tiempos <strong>de</strong> respuesta promedios.<br />

Dispone <strong>de</strong> varias opciones, entre las que cabe <strong>de</strong>stacar la<br />

posibilidad <strong>de</strong> modificar el tamaño <strong>de</strong>l paquete enviado, el<br />

registro <strong>de</strong> ruta, y el control <strong>de</strong>l número <strong>de</strong> paquetes enviados.<br />

$ ping -s 200 -c 3 std<br />

Provocaría la emisión hacia el servidor std <strong>de</strong> 3 paquetes con<br />

200 bytes cada uno <strong>de</strong> datos a los que habría que sumar 20<br />

bytes <strong>de</strong> la cabecera <strong>IP</strong> y 8 <strong>de</strong> la ICMP.<br />

La respuesta que PING proporciona en pantalla correspon<strong>de</strong><br />

a una serie <strong>de</strong> líneas don<strong>de</strong> se indica en tiempo <strong>de</strong> respuesta<br />

<strong>de</strong>l eco ICMP y el número <strong>de</strong> secuencia. Al concluir el<br />

ÍNDICE<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

datagrama <strong>IP</strong><br />

Cabecera <strong>IP</strong> ICMP Tamaño <strong>de</strong> datos variable según la opción -s<br />

20 Octetos 8 Octetos<br />

Figura 10.1<br />

63


comando, queda reflejado el número <strong>de</strong> paquetes perdidos,<br />

los tiempos mínimos, máximos y medios <strong>de</strong> respuesta (ida y<br />

vuelta).<br />

Nos permitirá conocer la tasa <strong>de</strong> error <strong>de</strong> un enlace así como<br />

la velocidad real <strong>de</strong> transmisión <strong>de</strong> forma experimental.<br />

8.5 Servidores <strong>de</strong> terminales<br />

Son dispositivos electrónicos que permiten la conexión <strong>de</strong> terminales<br />

asíncronos RS-232 sobre <strong>TCP</strong>/<strong>IP</strong>. En el caso <strong>de</strong><br />

Ethernet, disponen <strong>de</strong> una dirección MAC como cualquier tarjeta<br />

<strong>de</strong> red. A<strong>de</strong>más, <strong>de</strong>ben ser parametrizados <strong>de</strong> forma que<br />

puedan tener su dirección <strong>IP</strong>, su máscara <strong>de</strong> subred y gateway<br />

por <strong>de</strong>fecto.<br />

Incorporan normalmente los servicios Telnet y Rlogin.<br />

Opcionalmente pue<strong>de</strong>n hacer uso <strong>de</strong> BOOTP,TFTP y Ping.<br />

Todos ellos hacen uso <strong>de</strong> la misma dirección <strong>IP</strong> <strong>de</strong>l Servidor<br />

<strong>de</strong> terminales, asignándose un número <strong>de</strong> puerto <strong>TCP</strong> diferente<br />

para cada línea asíncrona. De esta forma queda perfectamente<br />

<strong>de</strong>finida cada conexión.<br />

Realmente un Servidor <strong>de</strong> Terminales no es más que un<br />

cliente Telnet, que proporciona sesiones <strong>de</strong> forma externa<br />

mediante líneas RS-232.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

64


La utilización <strong>de</strong> estos dispositivos queda justificada por el<br />

hecho <strong>de</strong> que la mayoría <strong>de</strong> usuarios que preten<strong>de</strong>n migrar a<br />

entornos <strong>de</strong> Red Local, disponen con frecuencia <strong>de</strong> periferia<br />

RS-232. La posibilidad <strong>de</strong> continuar aprovechando esta inversión<br />

integrándola en la red, es un po<strong>de</strong>roso argumento <strong>de</strong><br />

venta.<br />

ÍNDICE<br />

8. Estructura <strong>de</strong> la serie <strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong><br />

IEE802.3 LAN.3<br />

Servidor <strong>de</strong> Terminales<br />

Figura 11<br />

65<br />

(MAC + <strong>IP</strong> + <strong>TCP</strong> + TELNET)<br />

Terminal RS-232 Terminal RS-232 Terminal RS-232 Terminal RS-232


9. Configuración en UNIX<br />

Vamos a utilizar los comandos Unix <strong>de</strong> red ifconfig y<br />

netstat. Para ello <strong>de</strong>beremos establecer una conexión<br />

con nuestro servidor local en un principio.<br />

Una vez introducidos en el sistema, ejecutaremos:<br />

$ netstat -i<br />

La opción -i visualiza información acerca <strong>de</strong> los interfaces físicos<br />

<strong>de</strong>l sistema:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Name Mtu Network ddress Ipkts Ierrs Opkts Oerrs Collis<br />

e3A0 1500 128.128.12 std2 18 0 113 0 0<br />

lo0 8232 loopback localhost 1840 0 1840 0 0<br />

sl0 296 128.128 std2_slip 332 334 0 0 0<br />

66


La primera columna indica el nombre que Unix da al interface<br />

instalado. e3A0 es el nombre <strong>de</strong> la tarjeta <strong>de</strong> red Etherlink<br />

I <strong>de</strong> 3Com, lo0 es el «Loopback Driver», y sl0 es el nombre<br />

<strong>de</strong> la conexión SL<strong>IP</strong> realizada a través <strong>de</strong>l dispositivo tty1a<br />

(COM1 en MSDOS). Estos han sido creados previamente en<br />

el proceso <strong>de</strong> instalación mediante el comando «netconfig».<br />

La segunda columna indica el MTU que tiene asignado cada<br />

interface, y el resto presentan información adicional que<br />

comentaremos más a<strong>de</strong>lante.<br />

Para ver la configuración <strong>de</strong> cada interface haremos uso <strong>de</strong><br />

ifconfig. Su sintaxis es la siguiente:<br />

$ ifconfig <br />

Si quisiéramos saber las características <strong>de</strong> nuestra tarjeta <strong>de</strong><br />

red ejecutaríamos:<br />

$ ifconfig e3A0<br />

Obteniendo una respuesta similar a:<br />

ÍNDICE<br />

9. Configuración en UNIX<br />

e3A0: flags=823<br />

inet 128.128.127.254 netmask ffffff00 broadcast<br />

128.128.127.255<br />

one-packet mo<strong>de</strong> params: packet size: 512; threshold: 3<br />

67


Pue<strong>de</strong> observarse que el interface se encuentra en servicio<br />

(UP), que admite dirección <strong>de</strong> BROADCAST y que el tipo <strong>de</strong><br />

trama utilizado es Ethernet sin modo Trailer.<br />

La dirección <strong>IP</strong> correspondiente es 128.128.127.254 <strong>de</strong> clase<br />

B y existe una máscara que <strong>de</strong>fine una subred <strong>de</strong> 8 bits con<br />

una porción <strong>de</strong> máquina <strong>de</strong> 8 bits. A<strong>de</strong>más <strong>de</strong> la dirección <strong>de</strong><br />

broadcast, aparece el tamaño <strong>de</strong> trama y umbral <strong>de</strong> disparo<br />

para el modo One-Packet que actualmente está en <strong>de</strong>suso.<br />

Si lo que <strong>de</strong>seamos es son<strong>de</strong>ar el interface sl0 correspondiente<br />

a la conexión SL<strong>IP</strong>:<br />

$ ifconfig sl0<br />

El resultado será algo así:<br />

sl0: flags=11<br />

inet 128.128.129.2 --> 128.128.129.1 netmask ffffff00<br />

Como ejercicio, sería interesante ejecutar ifconfig en los dos<br />

servidores (std y std2) mediante respectivas conexiones<br />

Telnet.<br />

El comando ifconfig, no sólo permite observar las configuraciones<br />

sino también cambiarlas. Para ello se necesitan privilegios<br />

<strong>de</strong> superusuario (root). Por ejemplo, si se quisiera cambiar<br />

<strong>de</strong> forma dinámica la máscara <strong>de</strong> subred <strong>de</strong> la tarjeta:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

68


$ ifconfig e3A0 netmask 255.255.224.0<br />

Se estaría <strong>de</strong>finiendo una subred <strong>de</strong> 3 bits y 13 bits <strong>de</strong> máquina<br />

(.11100000.00000000). Pue<strong>de</strong>n ser modificados otros<br />

parámetros a<strong>de</strong>más <strong>de</strong> la máscara y la dirección <strong>IP</strong>. Tal es el<br />

caso <strong>de</strong> la «métrica», factor que hace prevalecer una ruta<br />

sobre otra a la hora <strong>de</strong> encaminar los paquetes.<br />

9.1 Tabla <strong>de</strong> hosts<br />

Mediante TNVT52.EXE, estableceremos una conexión con<br />

nuestro servidor y ejecutaremos el comando:<br />

$ more /etc/hosts<br />

El resultado sería una tabla similar a la siguiente:<br />

# @(#)hosts 1.2 Lachman System V STREAMS <strong>TCP</strong> source<br />

# SCCS IDENTIFICATION<br />

127.0.0.1 localhost<br />

128.128.128.254 std<br />

128.128.129.2 std2_slip<br />

128.128.129.1 std_slip<br />

128.128.127.254 std2<br />

128.128.128.1 ps1<br />

128.128.128.2 ps2<br />

128.128.128.3 ps3<br />

ÍNDICE<br />

9. Configuración en UNIX<br />

69


Don<strong>de</strong> en cada línea figuran los nombres <strong>de</strong> las estaciones,<br />

sus direcciones <strong>IP</strong> y eventualmente lo que se conoce como<br />

«Dominio», concepto que se explicará con posterioridad.<br />

Aunque el propio sistema operativo efectúa operaciones <strong>de</strong><br />

mantenimiento sobre la tabla <strong>de</strong> hosts, es labor <strong>de</strong>l administrador<br />

<strong>de</strong> la red incluir los nombres <strong>de</strong> las estaciones junto<br />

con sus direcciones <strong>IP</strong>.<br />

Se recomienda como ejercicio, realizar una inspección en<br />

ambos servidores. Pue<strong>de</strong> intuirse la semejanza existente con<br />

la tabla local en C:\TUN<strong>TCP</strong>\HOSTTAB. Sin embargo la tabla<br />

<strong>de</strong> hosts en Unix posee un significado más extenso, puesto<br />

que a<strong>de</strong>más <strong>de</strong> ser un modo abreviado para referirse a una<br />

dirección <strong>IP</strong>, muchas aplicaciones hacen uso <strong>de</strong> esta tabla<br />

para verificar la autenticidad <strong>de</strong> las estaciones conectadas.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

70


10. El protocolo ARP<br />

Puesto que un enlace <strong>de</strong> datos como Ethernet o Token<br />

Ring posee su propio esquema <strong>de</strong> direccionamiento (a<br />

menudo sobre 48 Bits), cada protocolo <strong>de</strong> red <strong>de</strong>berá<br />

<strong>de</strong> amoldarse en consecuencia. Una red como Ethernet<br />

pue<strong>de</strong> ser usada <strong>de</strong> forma simultánea por diferentes capas <strong>de</strong><br />

red (Unix, Novell, Lantasti, WFG etc. pue<strong>de</strong>n coexistir sobre<br />

el mismo soporte físico).<br />

En el seno <strong>de</strong> una Red Local, cuando una trama Ethernet se<br />

envía <strong>de</strong> una máquina a otra, es la dirección <strong>de</strong> 48 Bits<br />

(dirección MAC) quien <strong>de</strong>termina a qué interface físico va<br />

<strong>de</strong>stinada. El «driver» <strong>de</strong> red nunca se preocupa <strong>de</strong> la dirección<br />

<strong>IP</strong> <strong>de</strong> <strong>de</strong>stino contenido <strong>de</strong>ntro <strong>de</strong>l datagrama <strong>IP</strong>.<br />

La especificación ARP (Address Resolution Protocol), contenida<br />

en la RFC 826 es quien se encargará <strong>de</strong> efectuar una<br />

ÍNDICE<br />

10. El protocolo ARP<br />

71


correspon<strong>de</strong>ncia dinámica entre la dirección MAC y la dirección<br />

<strong>IP</strong>.<br />

Cada vez que se ejecuta la or<strong>de</strong>n<br />

$ telnet std<br />

se <strong>de</strong>senca<strong>de</strong>na la siguiente serie <strong>de</strong> acontecimientos:<br />

• El cliente telnet, llama a una función (gethostbyname) para<br />

convertir el nombre <strong>de</strong> la máquina (std) en una dirección <strong>IP</strong><br />

<strong>de</strong> 32 Bits.<br />

• El cliente telnet pi<strong>de</strong> a su <strong>TCP</strong> utilizar esta dirección para<br />

establecer una conexión.<br />

• <strong>TCP</strong> envía una petición <strong>de</strong> conexión a la máquina remota<br />

emitiendo un datagrama <strong>IP</strong> a su dirección <strong>IP</strong>.<br />

• ARP envía una trama especial Ethernet, <strong>de</strong> tamaño muy<br />

corto, llamada «petición ARP» a cada máquina <strong>de</strong> la Red<br />

Local. Este proceso se conoce como «Broadcast». La petición<br />

ARP contiene la dirección <strong>IP</strong> <strong>de</strong> la máquina <strong>de</strong>stino, y<br />

equivaldría a formular la pregunta:<br />

«Si Usted es propietario <strong>de</strong> esta dirección <strong>IP</strong>, por favor respóndame<br />

<strong>de</strong>volviendo su dirección MAC»<br />

• La capa ARP <strong>de</strong> la máquina <strong>de</strong>stino recibe el «Broadcast»,<br />

verifica que el solicitante pi<strong>de</strong> su dirección <strong>IP</strong> y emite una<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

72


«respuesta ARP». Esta respuesta contiene la dirección <strong>IP</strong> y<br />

la dirección MAC correspondiente.<br />

• La respuesta ARP es recibida y el datagrama <strong>IP</strong> que produjo<br />

la petición ARP pue<strong>de</strong> ser emitido.<br />

10.1 La memoria Caché <strong>de</strong> ARP<br />

El mantenimiento <strong>de</strong> una memoria caché ARP en cada<br />

máquina es esencial para el correcto funcionamiento <strong>de</strong> ARP.<br />

Ello mantiene las correspon<strong>de</strong>ncias entre las direcciones <strong>IP</strong> y<br />

las físicas. El plazo normal <strong>de</strong> expiración <strong>de</strong> una entrada en<br />

la tabla ARP es <strong>de</strong> 20 minutos <strong>de</strong>spués <strong>de</strong> su creación.<br />

A modo <strong>de</strong> ejemplo práctico vamos a realizar un «telnet»<br />

sobre nuestro servidor, ejecutando el siguiente comando:<br />

$ arp -a<br />

El resultado <strong>de</strong>pen<strong>de</strong>rá <strong>de</strong> en qué condiciones se encuentre<br />

la red. Sería muy probable obtener una serie <strong>de</strong> líneas similares<br />

a las siguientes:<br />

ps22 (128.128.127.22) at 2:60:8c:e:3b:c<br />

ps20 (128.128.127.22) at 2:60:8c:a:60:dd<br />

...<br />

ÍNDICE<br />

10. El protocolo ARP<br />

73


El comando «arp» posee una serie <strong>de</strong> opciones que permiten<br />

efectuar distintos ajustes en la memoria caché <strong>de</strong> ARP.<br />

arp hostname<br />

Visualiza dirección MAC <strong>de</strong> <br />

arp -a [/unix] [/<strong>de</strong>v/kmem]<br />

Visualiza toda la tabla<br />

arp -d hostname<br />

Borra dirección MAC <strong>de</strong> <br />

arp -s hostname ether_addr [temp] [pub] [trail]<br />

Aña<strong>de</strong> una nueva entrada<br />

arp -f filename<br />

Aña<strong>de</strong> una nueva tabla <strong>de</strong>s<strong>de</strong> un fichero<br />

La última opción suele ser útil para optimizar el arranque <strong>de</strong><br />

servidores con gran carga <strong>de</strong> estaciones conectadas.<br />

Bastaría con introducir el comando en algunas <strong>de</strong> las «shell»<br />

<strong>de</strong> conexión <strong>de</strong>l sistema.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

74


11. ICMP<br />

ICMP es consi<strong>de</strong>rado a menudo como parte <strong>de</strong> la capa <strong>de</strong><br />

red <strong>IP</strong>. Su misión es comunicar los mensajes <strong>de</strong> error y<br />

otras circunstancias que reclaman atención. La RFC 792<br />

contiene la especificación oficial <strong>de</strong>l «Internet Control<br />

Message Protocol».<br />

Los mensajes ICMP son transmitidos en el interior <strong>de</strong> datagramas<br />

<strong>IP</strong>, como lo muestra la figura.<br />

ÍNDICE<br />

datagrama <strong>IP</strong><br />

11. ICMP<br />

Cabecera <strong>IP</strong> Mensaje ICMP<br />

20 Octetos<br />

tipo (8 bits) código (8 bits) STV (16 bits) según el tipo <strong>de</strong> código<br />

Figura 12<br />

75


A continuación se <strong>de</strong>scriben los distintos grupos ICMP, <strong>de</strong>ntro<br />

<strong>de</strong> los cuales existen varios tipos <strong>de</strong> mensajes:<br />

• Respuesta eco (Respuesta <strong>de</strong> Ping). Tipo 0<br />

• Destino inaccesible.<br />

• Ca<strong>de</strong>ncia <strong>de</strong> envío <strong>de</strong>masiado elevada<br />

Tipo 3<br />

(Control <strong>de</strong> flujo) Tipo 4<br />

• Redirección. Tipo 5<br />

• Petición eco. Tipo 8<br />

• Aviso <strong>de</strong> Router. Tipo 9<br />

• Solicitud <strong>de</strong> Router. Tipo 10<br />

• Tiempo sobrepasado (ttl). Tipo 11<br />

• Problema <strong>de</strong> parámetros o <strong>de</strong> forma. Tipo 12<br />

• Petición «Timestamp» Tipo 13<br />

• Respuesta «Timestamp» Tipo 14<br />

• Petición <strong>de</strong> Información (Obsoleto). Tipo 15<br />

• Respuesta <strong>de</strong> Información (Obsoleto). Tipo 16<br />

• Petición <strong>de</strong> máscara <strong>de</strong> dirección. Tipo 17<br />

• Respuesta <strong>de</strong> máscara <strong>de</strong> dirección. Tipo 18<br />

El campo tipo se complementa con la información suministrada<br />

por el campo co<strong>de</strong>. En función <strong>de</strong>l valor que tomen<br />

ambos, el receptor pue<strong>de</strong> distinguir entre una solicitud o un<br />

error ICMP.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

76


En el primer caso, se solicita o se informa <strong>de</strong> un acontecimiento<br />

concreto que no es causa <strong>de</strong> ningún error. Una respuesta<br />

a un eco ICMP lanzado por «ping» o un aviso <strong>de</strong> presencia<br />

<strong>de</strong> Router, serían un ejemplo <strong>de</strong> ello.<br />

En el segundo caso, se ha producido una condición <strong>de</strong> error<br />

y es necesario emitir una notificación. El campo TTL a cero,<br />

una máquina inaccesible, una fragmentación requerida pero<br />

imposible <strong>de</strong> realizar <strong>de</strong>bido al bit «don’t fragment», etc.,<br />

serían ejemplos <strong>de</strong> errores ICMP.<br />

Es necesario establecer una distinción entre una solicitud<br />

ICMP y un error ICMP. Un mensaje <strong>de</strong> error, nunca pue<strong>de</strong> ser<br />

producido como consecuencia <strong>de</strong> otro mensaje <strong>de</strong> error. Si<br />

esta regla no fuese aplicada, podríamos encontrarnos sobre<br />

escenarios en los que un error ICMP provoca otro error ICMP<br />

y así sucesivamente.<br />

Un error ICMP enviado contiene siempre la cabecera <strong>IP</strong> y los<br />

8 primeros octetos <strong>de</strong> datos <strong>de</strong>l datagrama que lo provocó.<br />

Ello permite al módulo ICMP asociar el mensaje recibido a un<br />

protocolo particular (<strong>TCP</strong> o UDP en función <strong>de</strong>l campo «protocolo»<br />

<strong>de</strong> la cabecera <strong>IP</strong>) y a un proceso <strong>de</strong> usuario <strong>de</strong>terminado<br />

(mediante los números <strong>de</strong> puerto <strong>de</strong> <strong>TCP</strong> o UDP).<br />

ÍNDICE<br />

11. ICMP<br />

77


Las situaciones expuestas a continuación no generan mensajes<br />

<strong>de</strong> error ICMP:<br />

1. Un mensaje <strong>de</strong> error ICMP (Un mensaje <strong>de</strong> error ICMP<br />

pue<strong>de</strong>, a pesar <strong>de</strong> todo, ser generado como respuesta a<br />

una solicitud ICMP).<br />

2. Un datagrama <strong>de</strong>stinado a una dirección <strong>IP</strong> <strong>de</strong> «broadcast».<br />

3. Un datagrama enviado como «broadcast» <strong>de</strong> la capa <strong>de</strong><br />

enlace.<br />

4. Un fragmento recibido fuera <strong>de</strong> secuencia.<br />

5. Un datagrama cuya dirección fuente no ha sido emitida<br />

por una única máquina. Esto significa que la dirección<br />

fuente no pue<strong>de</strong> valer 0, ni ser el bucle local, ni una dirección<br />

broadcast.<br />

Estas reglas son necesarias para prevenir las «tormentas <strong>de</strong><br />

broadcast» (broadcast storm), que aparecían en el pasado<br />

cuando los errores ICMP se generaban como respuesta a<br />

paquetes emitidos bajo la forma <strong>de</strong> «broadcast».<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

78


12. Encaminamiento <strong>IP</strong><br />

El encaminamiento es una <strong>de</strong> las funciones más importantes<br />

<strong>de</strong>l protocolo <strong>IP</strong>. Los datagramas pue<strong>de</strong>n ser<br />

emitidos hacia una máquina local o hacia una máquina<br />

remota. En el último caso, ésta máquina <strong>de</strong>berá ser configurada<br />

como un Router, Gateway o Pasarela, o los datagramas<br />

recibidos que no pertenezcan a la máquina serán <strong>de</strong>struidos<br />

en silencio.<br />

Los procesos más habituales o «daemons» que implementan<br />

estas funciones en Unix son routed y gated.<br />

La elección <strong>de</strong> un protocolo <strong>de</strong> encaminamiento en función<br />

<strong>de</strong> una <strong>de</strong>terminada máquina, los modos <strong>de</strong> intercambio <strong>de</strong><br />

información <strong>de</strong> trayectorias con los Routers adyacentes y el<br />

funcionamiento <strong>de</strong> los protocolos <strong>de</strong> encaminamiento, son<br />

temas complejos y muy extensos que no vamos a abordar.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

79


Nuestra preocupación consistirá en cómo una simple capa <strong>IP</strong><br />

toma sus <strong>de</strong>cisiones <strong>de</strong> encaminamiento.<br />

La secuencia mediante la cual <strong>IP</strong> a partir <strong>de</strong> la tabla <strong>de</strong> encaminamiento<br />

<strong>de</strong>ci<strong>de</strong> por dón<strong>de</strong> enviará un <strong>de</strong>terminado datagrama<br />

es la siguiente:<br />

• Búsqueda <strong>de</strong> una dirección completa <strong>de</strong> máquina correspondiente<br />

• Búsqueda <strong>de</strong> una dirección <strong>de</strong> red correspondiente<br />

• Búsqueda <strong>de</strong> una entrada por <strong>de</strong>fecto<br />

Es necesario efectuar una distinción entre mecanismo <strong>de</strong><br />

encaminamiento y política <strong>de</strong> encaminamiento. En el primer<br />

caso <strong>IP</strong> busca en la tabla <strong>de</strong> rutas y <strong>de</strong>ci<strong>de</strong> a qué interface<br />

enviar el datagrama. En el segundo caso un «daemon»<br />

especializado como routed o gated, <strong>de</strong>ci<strong>de</strong> qué rutas <strong>de</strong>finir<br />

en su tabla para que pueda actuar el mecanismo <strong>de</strong> encaminamiento.<br />

Nos ocuparemos principalmente <strong>de</strong>l primer caso.<br />

12.1 Mecanismo <strong>de</strong> encaminamiento<br />

Veámoslo a través <strong>de</strong> un ejemplo. Para ello efectuaremos una<br />

solicitud «telnet» hacia nuestro servidor y acce<strong>de</strong>remos como<br />

usuario, haciendo uso <strong>de</strong>l comando netstat ya utilizado anteriormente<br />

pero con opciones diferentes:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

80


$ netstat -rn<br />

Obtendremos la tabla <strong>de</strong> encaminamiento actual (opción -r),<br />

mostrando las direcciones <strong>IP</strong> con notación <strong>de</strong>cimal (opción -<br />

n):<br />

Routing tables<br />

Para la correcta interpretación <strong>de</strong> la tabla, necesitaremos<br />

tener a mano el esquema <strong>de</strong> la topología <strong>de</strong> la red con las<br />

direcciones <strong>IP</strong> <strong>de</strong> cada máquina así como la máscara <strong>de</strong><br />

subred empleada.<br />

En el campo «Flags» pue<strong>de</strong>n existir 5 tipos diferentes:<br />

U La ruta está en servicio<br />

G La ruta es un Router (Gateway). Si este «flag» no está<br />

posicionado, el <strong>de</strong>stino está directamente conectado sobre el<br />

Router. Tal es el caso <strong>de</strong> las entradas 1,2,3,5 y 6.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

Destination Gateway Flags Refs Use Interface<br />

1) 128.128.129.1 128.128.129.2 UH 1 8 sl0<br />

2) 127.0.0.1 127.0.0.1 UH 1 0 lo0<br />

3) 128.128.129.2 127.0.0.1 UH 1 0 lo0<br />

4) 128.128.128 128.128.129.1 UG 0 0 sl0<br />

5) <strong>de</strong>fault 128.128.129.2 U 0 197 sl0<br />

6) 128.128.127 128.128.127.254 U 4 35 e3A0<br />

81


H La ruta hace referencia a otra máquina, el <strong>de</strong>stino es una<br />

dirección <strong>de</strong> máquina completa. La no existencia <strong>de</strong> este indicador<br />

implica que la ruta incluye otra red, y el <strong>de</strong>stino es una<br />

dirección <strong>de</strong> red: I<strong>de</strong>ntificador <strong>de</strong> red o <strong>de</strong> Subred.<br />

D La ruta ha sido creada por una redirección (Mecanismo<br />

que se activa durante la emisión <strong>de</strong> un datagrama a un<br />

Router cuando <strong>de</strong>bería <strong>de</strong> haber sido para otro).<br />

M La ruta ha sido modificada por una redirección.<br />

El indicador o «Flag» G tiene una especial importancia por<br />

cuanto permite distinguir entre una ruta directa y otra indirecta.<br />

La diferencia resi<strong>de</strong> en que un paquete sobre una ruta<br />

directa posee a la vez la dirección MAC e <strong>IP</strong> <strong>de</strong> la máquina<br />

<strong>de</strong>stino. Mientras que un paquete emitido sobre una ruta indirecta<br />

posee la dirección <strong>IP</strong> <strong>de</strong>l <strong>de</strong>stino pero la dirección MAC<br />

<strong>de</strong>l próximo Router.<br />

Supongamos que llega un datagrama con la dirección<br />

128.128.129.1. La búsqueda tendrá éxito en la primera entrada<br />

y el datagrama será enviado por el interface físico sl0 con<br />

dirección 128.128.129.2.<br />

Nótese que las conexiones punto a punto, han <strong>de</strong> ser <strong>de</strong>finidas<br />

<strong>de</strong> forma absoluta, es <strong>de</strong>cir, especificando la dirección<br />

completa <strong>de</strong> máquina en cada extremo <strong>de</strong> la conexión.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

82


La entrada número 4, indica una dirección indirecta hacia la<br />

red 128.128.128.0. Cualquier datagrama con esas características<br />

será retransmitido al Router 128.128.129.1 que pertenece<br />

al otro extremo <strong>de</strong> la conexión SL<strong>IP</strong>.<br />

Los datagramas enviados sobre el segmento 10Base2 perteneciente<br />

a la tarjeta <strong>de</strong> red e3A0 están <strong>de</strong>finidos por la entrada<br />

número 6 don<strong>de</strong> aparece una dirección <strong>de</strong>stino <strong>de</strong> red, la<br />

128.128.127. y el propio gateway 128.128.127.254 .<br />

Todas aquellas direcciones que no pertenezcan a ninguno <strong>de</strong><br />

los <strong>de</strong>stinos especificados en la tabla, serán reconducidos a<br />

la entrada por <strong>de</strong>fecto (5), perteneciente a la conexión SL<strong>IP</strong>.<br />

La columna «Refs» es un contador que indica el número <strong>de</strong><br />

veces que una ruta es utilizada. Puesto que <strong>TCP</strong> es un protocolo<br />

orientado a conexión, una ruta será conservada mientras<br />

dure el enlace. Si establecemos un servicio Telnet hacia<br />

el servidor, se podrá observar que este contador se incrementa<br />

en una unidad.<br />

La columna encabezada con «Use» expresa la cantidad <strong>de</strong><br />

paquetes enviados a través <strong>de</strong> esta ruta. Si somos los únicos<br />

en utilizarla, y lanzamos el programa Ping con el fin <strong>de</strong> enviar<br />

5 paquetes, veremos que el contador se incrementa en 5.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

83


De forma esquemática, podría todo quedar resumido como<br />

se muestra en la figura 13.<br />

12.2 Creación <strong>de</strong> Rutas<br />

Pue<strong>de</strong>n ser creadas <strong>de</strong> forma estática, es <strong>de</strong>cir, simplemente<br />

con la ayuda <strong>de</strong>l comando route, o <strong>de</strong> forma dinámica<br />

mediante un «daemon» o proceso especializado que en la<br />

mayoría <strong>de</strong> los sistemas Unix suele llamarse routed o gated.<br />

$ route add <strong>de</strong>fault 128.128.129.1 0 (Métrica 0 si local y >0<br />

si externa)<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

¿Para mi?<br />

No<br />

¿Para mi red?<br />

¿Tengo ruta específica?<br />

¿Tengo ruta por omisión?<br />

Sin ruta<br />

No<br />

No<br />

No<br />

Si<br />

Si<br />

Si<br />

Si<br />

Figura 13<br />

84<br />

Mantenerlo<br />

Enviar a través <strong>de</strong> ARP<br />

Enviar al Gateway<br />

Enviar al Gateway<br />

host local<br />

host conectado<br />

directamente<br />

host remoto<br />

Ruta al host remoto


12.3 Error <strong>de</strong> Redirección ICMP<br />

El error <strong>de</strong> redirección ICMP es enviado por un Router hacia<br />

el emisor <strong>de</strong> un datagrama <strong>IP</strong> cuando este datagrama <strong>de</strong>bería<br />

<strong>de</strong> haber sido transmitido a un Router diferente. Dado que<br />

para reproducir esta circunstancia se necesitan como mínimo<br />

3 Routers, lo vamos a ver únicamente <strong>de</strong> forma gráfica.<br />

Siguiendo el esquema <strong>de</strong> la figura 14, veamos paso a paso<br />

qué ocurre en la configuración representada:<br />

1. Suponemos que el Router 0 envía un datagrama <strong>IP</strong> al<br />

Router 1. La <strong>de</strong>cisión <strong>de</strong> encaminamiento es coherente puesto<br />

que el Router 1 está <strong>de</strong>finido por <strong>de</strong>fecto en ésta máquina.<br />

ÍNDICE<br />

(1) Datagrama <strong>IP</strong><br />

12. Encaminamiento <strong>IP</strong><br />

(3) Redirección ICMP<br />

Router 0<br />

Router 1 Router 2<br />

Figura 14<br />

85<br />

(2) Datagrama <strong>IP</strong><br />

Destino Final


2. Router 1 recibe el datagrama, interroga su tabla <strong>de</strong> rutas,<br />

y <strong>de</strong>termina que Router 2 es el siguiente salto <strong>de</strong> envío. En el<br />

momento <strong>de</strong> enviarlo, percibe que el interface <strong>de</strong> salida es el<br />

mismo por don<strong>de</strong> recibió el datagrama proce<strong>de</strong>nte <strong>de</strong> Router<br />

0.<br />

3. Proce<strong>de</strong> por tanto a emitir un error <strong>de</strong> redirección ICMP<br />

hacia Router 0, sugiriéndole que actualice su tabla <strong>de</strong> encaminamiento<br />

y que envíe directamente los próximos datagramas<br />

a Router 2 sin pasar por Router 1. Simultáneamente,<br />

envía el datagrama a Router 2.<br />

12.4 Encaminamiento Dinámico<br />

Hasta ahora únicamente hemos consi<strong>de</strong>rado el caso en que<br />

una tabla <strong>de</strong> encaminamiento era creada a través <strong>de</strong> «route<br />

add» bien en el inicio o durante un funcionamiento normal.<br />

Este tipo <strong>de</strong> encaminamiento se consi<strong>de</strong>ra estático.<br />

El encaminamiento dinámico pone en marcha un protocolo<br />

<strong>de</strong> comunicación entre Routers <strong>de</strong> forma que cada uno <strong>de</strong><br />

ellos tiene la suficiente información para actualizar sus tablas<br />

<strong>de</strong> rutas <strong>de</strong> forma dinámica.<br />

Los sistemas Unix ejecutan frecuentemente un proceso o<br />

«daemon» <strong>de</strong> encaminamiento <strong>de</strong>nominado routed, ya<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

86


comentado anteriormente. Se proporciona con casi la totalidad<br />

<strong>de</strong> implementaciones <strong>TCP</strong>/<strong>IP</strong>. Este daemon utiliza el protocolo<br />

<strong>de</strong>nominado R<strong>IP</strong>.<br />

El proceso gated, posee un radio <strong>de</strong> acción mucho más<br />

amplio que routed y pue<strong>de</strong> utilizar los protocolos R<strong>IP</strong>, HELLO<br />

y EGP.<br />

HELLO posee una métrica basada en retardos <strong>de</strong> enlaces<br />

<strong>de</strong> la red, permite sincronizar los relojes <strong>de</strong> un grupo <strong>de</strong><br />

máquinas así como el cálculo <strong>de</strong> vías <strong>de</strong> acceso óptimas que<br />

ofrezcan menor retardo.<br />

EGP soporta un mecanismo <strong>de</strong> adquisición <strong>de</strong> gateways<br />

adjuntos permitiendo el intercambio <strong>de</strong> información <strong>de</strong> accesibilidad.<br />

Cada gateway comprueba continuamente si sus<br />

EGP adjuntos respon<strong>de</strong>n.<br />

12.5 Routing Information Protocol (R<strong>IP</strong>)<br />

R<strong>IP</strong> utiliza una métrica basada en número <strong>de</strong> saltos, don<strong>de</strong><br />

el máximo se sitúa en 16. Es por tanto utilizado en re<strong>de</strong>s con<br />

dimensiones reducidas en cuanto a número <strong>de</strong> Routers. En el<br />

caso que nos ocupa es éste el que permite la comunicación<br />

<strong>de</strong> encaminamiento entre el servidor std y std2. Una métrica<br />

<strong>de</strong> 16 indica el valor infinito.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

87


Los mensajes R<strong>IP</strong> son transportados por datagramas UDP<br />

con el número <strong>de</strong> puerto 520. Cuando se inicia el proceso,<br />

son enviadas solicitu<strong>de</strong>s R<strong>IP</strong> por todos los interfaces activos<br />

reclamando las tablas <strong>de</strong> encaminamiento <strong>de</strong> los Routers<br />

adyacentes.<br />

Un mensaje R<strong>IP</strong> utiliza 20 octetos por ruta (sin contar los 20<br />

<strong>de</strong> <strong>IP</strong> y los 8 <strong>de</strong> UDP), permitiendo señalar un máximo <strong>de</strong> 25<br />

rutas por mensaje y así conservar un tamaño no superior a<br />

512 bytes por mensaje (20x25 + 4 <strong>de</strong> cabecera = 504), es<br />

<strong>de</strong>cir 512 bytes por datagrama UDP.<br />

Cada 30 segundos, una parte o la totalidad <strong>de</strong> la tabla <strong>de</strong><br />

encaminamiento es enviada a los Routers adyacentes por<br />

medio <strong>de</strong> un «broadcast» o al otro lado <strong>de</strong> una conexión<br />

punto a punto.<br />

Por cada ruta existe un temporizador asociado. Un sistema<br />

utilizando R<strong>IP</strong>, que encuentra una ruta no actualizada <strong>de</strong>s<strong>de</strong><br />

3 minutos, proce<strong>de</strong> a marcarla para su <strong>de</strong>strucción con el<br />

valor infinito (16). Esto significa que han faltado 6 actualizaciones<br />

<strong>de</strong> 30 segundos por parte <strong>de</strong>l Router que comunicó<br />

esa ruta. La eliminación permanente se retrasa 60 segundos<br />

más para asegurarse <strong>de</strong> que esta acción ha sido notificada al<br />

resto <strong>de</strong> la red con el tiempo suficiente.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

88


12.6 Comprobando el funcionamiento <strong>de</strong> R<strong>IP</strong><br />

Para verificar el correcto funcionamiento <strong>de</strong>l protocolo R<strong>IP</strong>,<br />

pue<strong>de</strong> ser útil hacer uso <strong>de</strong>l comando ripquery, cuya finalidad<br />

es la <strong>de</strong> permitir comprobar las actualizaciones periódicas<br />

realizadas por los sistemas adyacentes que ejecutan<br />

R<strong>IP</strong>.<br />

Por ejemplo, para comprobar si se reciben actualizaciones <strong>de</strong><br />

los servidores std2 y std3, ejecutaríamos el siguiente comando<br />

<strong>de</strong>s<strong>de</strong> std:<br />

$ ripquery –n –r std2 std3<br />

La opción -n indica que se visualicen las direcciones en forma<br />

numérica, sin intentar la conversión a nombres.<br />

Con -r solicitamos el uso <strong>de</strong>l comando REQUEST en vez <strong>de</strong>l<br />

comando POLL para interrogar al suministrador R<strong>IP</strong>. El<br />

comando POLL no está universalmente soportado, por lo que<br />

es más aconsejable utilizar la opción -r.<br />

Esta utilidad permite verificar el funcionamiento <strong>de</strong> los procesos<br />

R<strong>IP</strong>, así como la correcta configuración <strong>de</strong> las tablas <strong>de</strong><br />

encaminamiento.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

89


12.6.1 BGP (Bor<strong>de</strong>r Gateway Protocol)<br />

Aunque BGP, o protocolo <strong>de</strong> pasarela frontera, se <strong>de</strong>sarrolló<br />

para su uso con conjuntos <strong>de</strong> re<strong>de</strong>s que emplean la arquitectura<br />

<strong>de</strong> protocolos <strong>TCP</strong>/<strong>IP</strong>, los conceptos que <strong>de</strong>fine son aplicables<br />

a cualquier conjunto <strong>de</strong> re<strong>de</strong>s. BGP se ha convertido<br />

en el protocolo <strong>de</strong> dispositivo <strong>de</strong> encaminamiento exterior<br />

estándar en Internet.<br />

BGP se diseñó para permitir la cooperación en el intercambio<br />

<strong>de</strong> información <strong>de</strong> encaminamiento entre dispositivos <strong>de</strong><br />

encaminamiento, llamados pasarelas en el estándar, en sistemas<br />

autónomos diferentes. El protocolo opera en términos<br />

<strong>de</strong> mensajes, que se envían utilizando conexiones <strong>TCP</strong>. Cada<br />

mensaje comienza con una cabecera <strong>de</strong> 19 octetos, que contiene<br />

tres campos:<br />

• Marcador. Este campo es usado como parte <strong>de</strong> un mecanismo<br />

<strong>de</strong> autentificación. El emisor pue<strong>de</strong> insertar un valor en<br />

él para permitir al <strong>de</strong>stino verificar la i<strong>de</strong>ntidad <strong>de</strong>l emisor.<br />

• Longitud <strong>de</strong>l mensaje, en octetos.<br />

• Tipo <strong>de</strong> mensaje. Cada tipo <strong>de</strong> mensaje dispone <strong>de</strong> su propio<br />

formato. Estos son los posibles tipos <strong>de</strong> mensajes:<br />

– Open. Este tipo <strong>de</strong> mensaje sirve para establecer una relación<br />

<strong>de</strong> vecindad con otro dispositivo <strong>de</strong> encaminamiento.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

90


– Update. Sirve para transmitir información sobre una única<br />

ruta y/o enumerar rutas múltiples que se van a eliminar.<br />

– Keepalive. Sirve para confirmar un mensaje Open y confirmar<br />

periódicamente la relación <strong>de</strong> vecindad.<br />

– Notification. Se envía cuando se <strong>de</strong>tecta una condición <strong>de</strong><br />

error.<br />

BGP involucra tres procedimientos funcionales:<br />

1. Adquisición <strong>de</strong> vecino. Si los dos dispositivos <strong>de</strong> encaminamiento<br />

están en sistemas autónomos diferentes, podrían<br />

<strong>de</strong>sear intercambiar información <strong>de</strong> encaminamiento. Para<br />

esto, primero se realiza la adquisición <strong>de</strong> vecino. El término<br />

vecino se refiere a dos dispositivos <strong>de</strong> encaminamiento que<br />

comparten la misma subred. La adquisición <strong>de</strong> vecino ocurre<br />

cuando dos dispositivos <strong>de</strong> encaminamiento vecinos en diferentes<br />

sistemas autónomos se ponen <strong>de</strong> acuerdo en intercambiar<br />

regularmente información <strong>de</strong> encaminamiento. Se<br />

requiere un procedimiento formal <strong>de</strong> adquisición ya que uno<br />

<strong>de</strong> los dispositivos <strong>de</strong> encaminamiento pue<strong>de</strong> no querer participar.<br />

Así, un dispositivo envía un mensaje Open al otro, el<br />

cual pue<strong>de</strong> aceptar, <strong>de</strong>volviendo un mensaje Keepalive, o<br />

rechazar el ofrecimiento.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

91


2. Detección <strong>de</strong> vecino alcanzable. Para mantener la relación,<br />

se utiliza el procedimiento <strong>de</strong> <strong>de</strong>tección <strong>de</strong> vecino alcanzable,<br />

según el cual, ambos dispositivos <strong>de</strong> encaminamiento<br />

se envían periódicamente mensajes Keepalive.<br />

3. Detección <strong>de</strong> red alcanzable. Este procedimiento consiste<br />

en que cada dispositivo mantiene una base <strong>de</strong> datos con<br />

las subre<strong>de</strong>s que pue<strong>de</strong> alcanzar y la ruta preferida para<br />

alcanzar esa subred. Siempre que se realiza un cambio en<br />

esta base <strong>de</strong> datos, el dispositivo <strong>de</strong> encaminamiento envía<br />

un mensaje Update por difusión a todos los otros dispositivos<br />

<strong>de</strong> encaminamiento que implementan BGP.<br />

12.7 Registro <strong>de</strong> Ruta <strong>de</strong> «Ping»<br />

La mayoría <strong>de</strong> versiones <strong>de</strong> «ping» proporcionan la opción -<br />

R que activa la funcionalidad <strong>de</strong> registro <strong>de</strong> ruta. Ping pone<br />

entonces en funcionamiento <strong>de</strong>ntro <strong>de</strong>l datagrama <strong>IP</strong> el modo<br />

«RR» sobre el datagrama emitido, que a su vez contiene el<br />

mensaje <strong>de</strong> petición ICMP.<br />

Esta opción indica a cada Router <strong>de</strong> gestionar el datagrama<br />

con el fin <strong>de</strong> añadir su dirección <strong>IP</strong> a una lista <strong>de</strong>ntro <strong>de</strong> un<br />

campo <strong>de</strong>nominado «opciones» <strong>de</strong>l mismo datagrama.<br />

Cuando éste alcanza su <strong>de</strong>stino, la lista completa <strong>de</strong> direc-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

92


ciones <strong>IP</strong> se copia en la respuesta ICMP generada por el <strong>de</strong>stinatario.<br />

Asimismo, todos los Routers situados sobre el camino <strong>de</strong><br />

regreso aña<strong>de</strong>n igualmente sus direcciones <strong>IP</strong> a la lista.<br />

Cuando «ping» recibe la respuesta ICMP, visualiza una tabla<br />

similar a la siguiente:<br />

(<strong>de</strong>s<strong>de</strong> std2)<br />

$ ping -R 128.128.128.27<br />

PING 128.128.128.27 (128.128.128.27): 56 data bytes<br />

104 bytes from 128.128.128.27: icmp_seq=0 ttl=254<br />

time=270 ms<br />

RR:std (128.128.128.254)<br />

std_slip (128.128.129.1)<br />

localhost (127.0.0.1)<br />

104 bytes from 128.128.128.27: icmp_seq=1 ttl=254<br />

time=240 ms (same route)<br />

104 bytes from 128.128.128.27: icmp_seq=2 ttl=254<br />

time=220 ms (same route)<br />

104 bytes from 128.128.128.27: icmp_seq=3 ttl=254<br />

time=250 ms (same route)<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

93


– 128.128.128.27 ping statistics –<br />

4 packets transmitted, 4 packets received, 0% packet loss<br />

round-trip min/avg/max = 220/245/270 ms<br />

La opción -R existe en la mayoría <strong>de</strong> Routers existentes en la<br />

actualidad, aunque pue<strong>de</strong> darse la excepción. En tal caso faltaría<br />

la anotación correspondiente en la respuesta dada por<br />

«ping».<br />

Cuando un Router graba su dirección <strong>IP</strong> sobre la lista ¿Qué<br />

dirección usa entre todas las <strong>de</strong> sus interfaces? La RFC 791<br />

especifica que el Router <strong>de</strong>be anotar la dirección <strong>de</strong> su<br />

Interfaz <strong>de</strong> salida.<br />

El datagrama enviado <strong>de</strong>s<strong>de</strong> la estación std2 alcanza al<br />

Router std quien lo encamina por su Interfaz LAN Ethernet<br />

(e3A0) con dirección <strong>IP</strong> 128.128.128.254 (std). Al alcanzar el<br />

<strong>de</strong>stino, la lista (en este caso sólo 1 dirección) se copia sobre<br />

la respuesta ICMP y se <strong>de</strong>vuelve a std. Según su tabla <strong>de</strong><br />

encaminamiento, correspon<strong>de</strong> al Interfaz std_slip<br />

(128.128.129.1) la retransmisión hacia std2.<br />

A partir <strong>de</strong> aquí ocurre algo insólito: Parece ser el bucle local<br />

(127.0.0.1) <strong>de</strong> std2, el Interfaz <strong>de</strong>stino <strong>de</strong> la respuesta ICMP.<br />

Esto es lógico si observamos la tabla <strong>de</strong> encaminamiento <strong>de</strong><br />

std2:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

94


Routing tables<br />

El datagrama <strong>de</strong> respuesta ICMP posee la dirección <strong>de</strong>stino<br />

128.128.129.2. Observando la tabla, existe una entrada que<br />

hace alusión a la dirección <strong>de</strong> máquina 128.128.129.2, cuyo<br />

Gateway <strong>de</strong>stino es el bucle local.<br />

La tabla <strong>de</strong> encaminamiento, en este caso, ha sido creada<br />

íntegramente y <strong>de</strong> forma automática durante el proceso <strong>de</strong><br />

arranque por el daemon routed a través <strong>de</strong>l protocolo R<strong>IP</strong>.<br />

ÍNDICE<br />

12. Encaminamiento <strong>IP</strong><br />

Destination Gateway Flags Refs Use Interface<br />

128.128.129.1 128.128.129.2 UH 1 8 sl0<br />

127.0.0.1 127.0.0.1 UH 1 0 lo0<br />

128.128.129.2 127.0.0.1 UH 1 0 lo0<br />

128.128.128 128.128.129.1 UG 0 0 sl0<br />

128.128.127 128.128.127.254 U 4 35 e3A0<br />

95


13. <strong>TCP</strong> y UDP<br />

13.1 Introducción<br />

Aunque <strong>TCP</strong> y UDP utilizan la misma capa <strong>de</strong> red,<br />

<strong>TCP</strong> proporciona un servicio totalmente diferente<br />

hacia la capa <strong>de</strong> aplicación en comparación con<br />

UDP.<br />

Ambos protocolos se sitúan en la capa <strong>de</strong> transporte y la<br />

elección <strong>de</strong> uno u otro <strong>de</strong>pen<strong>de</strong>rá <strong>de</strong> las necesida<strong>de</strong>s <strong>de</strong> la<br />

aplicación que lo utilice.<br />

<strong>TCP</strong> proporciona un servicio <strong>de</strong> flujo <strong>de</strong> octetos orientado a<br />

la conexión y fiable. Significa que para establecer el enlace,<br />

<strong>de</strong>ben cumplirse unos «formalismos» <strong>de</strong> protocolo antes <strong>de</strong><br />

empezar la transmisión <strong>de</strong> datos. Ello es comparable al sistema<br />

telefónico: Si <strong>de</strong>seamos hablar con alguien, hemos <strong>de</strong><br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

96


marcar primero el número y esperar a oír la voz <strong>de</strong> nuestro<br />

interlocutor, para iniciar la conversación.<br />

Las dos aplicaciones que utilizan <strong>TCP</strong> (Cliente y Servidor)<br />

<strong>de</strong>ben <strong>de</strong> establecer por tanto una conexión <strong>TCP</strong>, antes <strong>de</strong><br />

intercambiar los datos.<br />

<strong>TCP</strong> aporta fiabilidad realizando las siguientes acciones:<br />

– Los datos <strong>de</strong> la aplicación son reducidos a fragmentos<br />

don<strong>de</strong> la talla correspon<strong>de</strong> a la mejor elegida por <strong>TCP</strong> para la<br />

transmisión. Esto es completamente diferente <strong>de</strong> UDP don<strong>de</strong><br />

cada escritura <strong>de</strong> la aplicación genera un datagrama UDP<br />

con ese tamaño. La unidad <strong>de</strong> información emitida por <strong>TCP</strong><br />

es conocida como segmento.<br />

– Cuando <strong>TCP</strong> emite un segmento, mantiene un temporizador<br />

esperando su asentimiento por parte <strong>de</strong>l otro extremo.<br />

– Si <strong>TCP</strong> recibe datos <strong>de</strong>l otro lado <strong>de</strong> la conexión, emite un<br />

asentimiento.<br />

– <strong>TCP</strong> mantiene una suma <strong>de</strong> control su cabecera y sus<br />

datos. Si aparece un segmento inválido, se rechaza y no se<br />

emite el asentimiento <strong>de</strong> éste.<br />

– Puesto que los segmentos <strong>TCP</strong> son emitidos como datagramas<br />

<strong>IP</strong>, y puesto que los datagramas <strong>IP</strong> pue<strong>de</strong>n llegar en<br />

ÍNDICE<br />

13. <strong>TCP</strong> y UDP<br />

97


completo <strong>de</strong>sor<strong>de</strong>n, <strong>de</strong>l mismo modo, los segmentos <strong>TCP</strong><br />

podrán llegar <strong>de</strong>sor<strong>de</strong>nados. Una recepción <strong>TCP</strong> reorganiza<br />

los datos si es necesario, pasándolos en el or<strong>de</strong>n correcto a<br />

la aplicación.<br />

– Como los datagramas <strong>IP</strong> pue<strong>de</strong>n ser duplicados, <strong>TCP</strong> elimina<br />

siempre los datos duplicados.<br />

– <strong>TCP</strong> proporciona un control <strong>de</strong> flujo. Cada extremo <strong>de</strong> la<br />

conexión <strong>TCP</strong> dispone <strong>de</strong> un tamaño <strong>de</strong>finido <strong>de</strong> ventana.<br />

Un flujo <strong>de</strong> octetos <strong>de</strong> 8 bits es intercambiado a lo largo <strong>de</strong> la<br />

conexión <strong>TCP</strong> entre las dos aplicaciones. No existen <strong>de</strong>limitadores<br />

<strong>de</strong> registro insertados por <strong>TCP</strong>. Es lo que se conoce<br />

como un servicio <strong>de</strong> flujo <strong>de</strong> octetos (byte stream service).<br />

Si una aplicación escribe 10 octetos y luego 20 y <strong>de</strong>spués 50<br />

octetos, la aplicación situada al otro extremo pue<strong>de</strong> leer los<br />

80 octetos en cuatro lecturas <strong>de</strong> 20. Un extremo coloca un<br />

flujo <strong>de</strong> octetos en <strong>TCP</strong>, y el mismo flujo aparece al otro lado.<br />

<strong>TCP</strong> no interpreta nunca el contenido <strong>de</strong> los octetos. Ignora si<br />

se trata <strong>de</strong> datos binarios, ASCII, EBCDIC o cualquier otra<br />

cosa. Es <strong>de</strong>cir, es un protocolo transparente. La interpretación<br />

<strong>de</strong> ese flujo <strong>de</strong> datos correspon<strong>de</strong> a las aplicaciones situadas<br />

a cada extremo.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

98


UDP es un protocolo <strong>de</strong> transporte sencillo no orientado a la<br />

conexión. Cada operación <strong>de</strong> salida efectuada por un proceso<br />

<strong>de</strong>terminado, genera un único datagrama UDP, provocando<br />

la emisión <strong>de</strong> un datagrama <strong>IP</strong>.<br />

UDP no ofrece ninguna garantía <strong>de</strong> fiabilidad: envía datagramas<br />

que la aplicación emite hacia la capa <strong>IP</strong>, pero no existe<br />

seguridad <strong>de</strong> que algún día lleguen a su <strong>de</strong>stino. Dada esta<br />

falta <strong>de</strong> fiabilidad, parece lógico pensar que <strong>de</strong>bemos utilizar<br />

siempre <strong>TCP</strong>. Ello no es <strong>de</strong>l todo cierto puesto que existen<br />

casos en los que es preferible la utilización <strong>de</strong> UDP dada su<br />

sencillez y bajo consumo <strong>de</strong> recursos.<br />

Cuando una aplicación utiliza UDP, <strong>de</strong>be <strong>de</strong> controlar expresamente<br />

el tamaño <strong>de</strong> los datagramas <strong>IP</strong> que emite. Si esta<br />

talla exce<strong>de</strong> el propio MTU, se producirá una fragmentación<br />

<strong>de</strong>l datagrama <strong>IP</strong>. Esta operación se aplica en cada red que<br />

atraviesa el datagrama <strong>de</strong>s<strong>de</strong> su origen hasta su <strong>de</strong>stino y no<br />

sólo a la máquina emisora.<br />

El MTU no tiene porqué ser el mismo en cada red, y se <strong>de</strong>nomina<br />

MTU <strong>de</strong> camino al más pequeño <strong>de</strong> todas las re<strong>de</strong>s<br />

atravesadas por el datagrama.<br />

Las sumas <strong>de</strong> control <strong>de</strong> <strong>TCP</strong>, UDP e <strong>IP</strong> abarcan los siguientes<br />

espectros:<br />

ÍNDICE<br />

13. <strong>TCP</strong> y UDP<br />

99


UDP. Protege únicamente la cabecera UDP y sus datos<br />

<strong>TCP</strong>. Protege únicamente la cabecera <strong>TCP</strong> y sus datos<br />

<strong>IP</strong>. Abarca sólo la cabecera <strong>IP</strong> y no tiene en cuenta el datagrama<br />

<strong>IP</strong> completo.<br />

13.2 <strong>TCP</strong><br />

Un mecanismo <strong>de</strong>nominado Asentimiento Positivo con<br />

Retransmisión (PAR) proporciona la fiabilidad requerida. Los<br />

datos son reenviados transcurrido un tiempo si no se recibe<br />

una confirmación positiva por parte <strong>de</strong> la máquina remota.<br />

Si los datos recibidos son correctos, se emite un asentimiento<br />

positivo hacia el emisor. En caso contrario se ignoran los<br />

datos recibidos, y transcurrido un cierto tiempo, la unidad<br />

<strong>TCP</strong> emisora reenviará cualquier segmento no confirmado<br />

correctamente por el receptor.<br />

Como ya se comentó, <strong>TCP</strong> está orientado a conexión.<br />

Establece un conexión lógica extremo a extremo, entre dos<br />

máquinas. Para ello se intercambia una información <strong>de</strong> control<br />

previa a la transmisión <strong>de</strong> datos.<br />

<strong>TCP</strong> señala funciones <strong>de</strong> control a través <strong>de</strong> la activación <strong>de</strong><br />

<strong>de</strong>terminados bits en el campo «Flags» <strong>de</strong> su cabecera.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

100


0<br />

Offset<br />

El establecimiento <strong>de</strong> conexión utilizado por <strong>TCP</strong> se conoce<br />

como «three-way handshake», literalmente «apretón <strong>de</strong><br />

manos a tres vías», <strong>de</strong>bido a que se necesitan tres segmentos<br />

<strong>TCP</strong>. La figura 16 muestra cómo se lleva a cabo este proceso.<br />

La máquina A inicia la conexión enviando a la B un segmento<br />

con el bit SYN activado. La finalidad es comunicar a la<br />

máquina B la intención <strong>de</strong> establecer una comunicación <strong>TCP</strong>,<br />

e informarle qué número <strong>de</strong> secuencia utilizará para iniciar la<br />

numeración <strong>de</strong> todos sus segmentos.<br />

ÍNDICE<br />

Puerto Fuente<br />

Suma <strong>de</strong> control<br />

13. <strong>TCP</strong> y UDP<br />

15<br />

16<br />

Número <strong>de</strong> secuencia<br />

Número <strong>de</strong> asentimiento<br />

Opciones<br />

Figura 15<br />

101<br />

Puerto Destino<br />

Reservado Ban<strong>de</strong>ras Ventana<br />

Puntero Urgente<br />

31


La máquina B respon<strong>de</strong> con un asentimiento o ACK correspondiente<br />

al enviado anteriormente por A y con el bit SYN<br />

activado, indicando así cual será el primer número <strong>de</strong><br />

secuencia con el que comenzará la numeración <strong>de</strong> todos sus<br />

segmentos.<br />

Por último, la máquina A envía un segmento ACK confirmando<br />

el anterior, e iniciando la transmisión <strong>de</strong> sus datos.<br />

Después <strong>de</strong> este intercambio, la capa <strong>TCP</strong> <strong>de</strong> la estación A<br />

tiene claras evi<strong>de</strong>ncias <strong>de</strong> que el <strong>TCP</strong> remoto está operativo<br />

y listo para recibir o transmitir datos. Tan pronto como la conexión<br />

sea establecida, pue<strong>de</strong> iniciarse la transmisión.<br />

Así como son necesarios tres segmentos para establecer la<br />

conexión, hacen falta cuatro para terminarla. Esto se <strong>de</strong>be al<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Máquina A<br />

SYN<br />

ACK, datos<br />

Figura 16<br />

102<br />

Máquina B<br />

SYN.ACK<br />

Envío <strong>de</strong> datos


cierre incompleto <strong>de</strong> <strong>TCP</strong>. Dado que una conexión <strong>TCP</strong> es <strong>de</strong><br />

tipo dúplex, es <strong>de</strong>cir, los datos pue<strong>de</strong>n <strong>de</strong>sfilar <strong>de</strong> forma<br />

in<strong>de</strong>pendiente en ambas direcciones, cada dirección a su vez<br />

pue<strong>de</strong> ser <strong>de</strong>tenida por separado.<br />

La regla es que cada extremo pue<strong>de</strong> enviar un segmento con<br />

el bit FIN activado mientras está enviando datos. Cuando un<br />

<strong>TCP</strong> recibe un FIN, <strong>de</strong>be notificar a la aplicación que el otro<br />

extremo ha terminado <strong>de</strong> enviar datos en ese sentido. La emisión<br />

<strong>de</strong> un FIN, normalmente suele correspon<strong>de</strong>r a la finalización<br />

<strong>de</strong> una aplicación o una sesión <strong>de</strong> trabajo.<br />

Por contra, el extremo que ha recibido un FIN, pue<strong>de</strong> seguir<br />

enviando datos. Esta característica <strong>de</strong> <strong>TCP</strong> suele ser utilizada<br />

por pocas aplicaciones. El comando Unix rsh, es un ejemplo<br />

<strong>de</strong> ello.<br />

El escenario normal <strong>de</strong> un cierre completo <strong>TCP</strong> se muestra<br />

en la figura 17.<br />

La capa <strong>TCP</strong> ve los datos que envía como una corriente <strong>de</strong><br />

bytes, y no como paquetes in<strong>de</strong>pendientes.<br />

Por tanto, se necesita mantener la secuencia en la que los<br />

bytes son recibidos y enviados. Los campos «Número <strong>de</strong><br />

secuencia» y «Número <strong>de</strong> asentimiento» en la cabecera <strong>de</strong><br />

ÍNDICE<br />

13. <strong>TCP</strong> y UDP<br />

103


cada segmento <strong>TCP</strong> son los encargados <strong>de</strong> llevar a cabo esta<br />

función.<br />

La norma no exige que cada sistema comience la numeración<br />

<strong>de</strong> sus bytes con un valor específico. De este modo,<br />

antes <strong>de</strong> iniciar la conexión cada unidad <strong>TCP</strong> elige el valor inicial<br />

o ISN (Initial Sequence Number) con el que comenzará<br />

su transmisión. Los dos extremos sincronizarán sus ISN a través<br />

<strong>de</strong> los segmentos SYN utilizados en la fase <strong>de</strong> establecimiento<br />

<strong>de</strong> la conexión.<br />

Cada byte se numera secuencialmente a partir <strong>de</strong>l ISN, <strong>de</strong><br />

modo que el primer byte real <strong>de</strong> datos posee el número <strong>de</strong><br />

secuencia ISN + 1 (comienza <strong>de</strong>s<strong>de</strong> cero). El ISN situado en<br />

la cabecera <strong>de</strong> cada segmento <strong>TCP</strong> i<strong>de</strong>ntifica la posición<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Máquina A<br />

FIN<br />

ACK<br />

Figura 17<br />

104<br />

Máquina B<br />

ACK<br />

FIN


secuencial en la corriente <strong>de</strong> datos <strong>de</strong>l primer byte <strong>de</strong> datos<br />

<strong>de</strong>l segmento. Por ejemplo, si el primer byte en la corriente <strong>de</strong><br />

datos tiene el número <strong>de</strong> secuencia 1 y ya han sido transferidos<br />

4000 bytes, entonces el primer byte en el segmento<br />

siguiente será el 4001, y el número <strong>de</strong> secuencia será 4001.<br />

El segmento ACK realiza dos funciones: Asentimiento positivo<br />

y control <strong>de</strong> flujo. En el primer caso el receptor notifica al<br />

emisor cuántos bytes han sido recibidos, y cuántos pue<strong>de</strong><br />

recibir aún. El número <strong>de</strong> asentimiento es el número <strong>de</strong><br />

secuencia <strong>de</strong>l último byte recibido por el extremo remoto. La<br />

norma <strong>TCP</strong> no requiere un asentimiento individual para cada<br />

paquete.<br />

El campo ventana contiene el número <strong>de</strong> bytes que el extremo<br />

remoto es capaz <strong>de</strong> aceptar. Si el receptor pue<strong>de</strong> recibir<br />

6000 bytes más, por ejemplo, el valor <strong>de</strong> la ventana será <strong>de</strong><br />

6000. La ventana indica al emisor que pue<strong>de</strong> continuar<br />

enviando segmentos mientras que el número <strong>de</strong> bytes enviados<br />

no supere la cantidad que el receptor pue<strong>de</strong> asimilar. El<br />

receptor, por tanto, controla el flujo <strong>de</strong> bytes <strong>de</strong>l emisor cambiando<br />

el tamaño <strong>de</strong> la ventana. Una ventana <strong>de</strong> cero significa<br />

un cese <strong>de</strong> la transmisión hasta la recepción <strong>de</strong> un nuevo<br />

valor <strong>de</strong> ventana superior a cero.<br />

ÍNDICE<br />

13. <strong>TCP</strong> y UDP<br />

105


<strong>TCP</strong> es también responsable <strong>de</strong> la entrega <strong>de</strong> los datos a la<br />

aplicación a<strong>de</strong>cuada. Para ello, las aplicaciones i<strong>de</strong>ntifican<br />

las conexiones <strong>TCP</strong> a través <strong>de</strong> los números <strong>de</strong> puerto, compuestos<br />

<strong>de</strong> 16 bits. Cada segmento queda por consiguiente<br />

i<strong>de</strong>ntificado por los valores <strong>de</strong> los números <strong>de</strong> puerto fuente<br />

y <strong>de</strong>stino.<br />

13.3 UDP<br />

El protocolo <strong>de</strong> datagramas <strong>de</strong> usuario, UDP, proporciona a<br />

los programas <strong>de</strong> aplicación un acceso directo a un servicio<br />

<strong>de</strong> entrega <strong>de</strong> datagramas. Esto permite el intercambio <strong>de</strong><br />

mensajes entre aplicaciones sobre la red con un gasto mínimo<br />

<strong>de</strong> información redundante <strong>de</strong>bida al protocolo.<br />

UDP es un protocolo no fiable y no orientado a la conexión.<br />

Por «no fiable» se entien<strong>de</strong> que no dispone <strong>de</strong> mecanismos<br />

capaces <strong>de</strong> recuperar errores, controlar el flujo, or<strong>de</strong>nar las<br />

secuencias <strong>de</strong> bytes, etc.<br />

Existen sin embargo buenas razones para utilizar UDP en<br />

<strong>de</strong>terminadas situaciones.<br />

• Cuando la cantidad <strong>de</strong> datos a ser transmitidos es muy<br />

pequeña, la sobrecarga que supone la creación <strong>de</strong> conexio-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

106


nes y el asegurar su fiabilidad pue<strong>de</strong> ser muy superior al trabajo<br />

<strong>de</strong> volver a transmitirlos.<br />

• En el caso <strong>de</strong> tráfico isócrono (sensible al retardo), especialmente<br />

la voz o el ví<strong>de</strong>o, no importa la pérdida <strong>de</strong> algunos<br />

paquetes, mientras que los que lleguen lo hagan en su justo<br />

momento. La voz o la imagen pue<strong>de</strong>n <strong>de</strong>gradarse, pero la<br />

función global seguirá siendo correcta.<br />

• Funciones <strong>de</strong> comprobación. Si por ejemplo <strong>de</strong>seamos<br />

diseñar un programa que permita evaluar el BER o tasa <strong>de</strong><br />

error <strong>de</strong> una conexión, enviaremos datagramas UDP para<br />

comprobar cuántos han llegado mal. <strong>TCP</strong> al ser fiable no permitiría<br />

conocer los errores puesto que intentaría recuperarlos<br />

por si mismo.<br />

• Aplicaciones basadas en el mo<strong>de</strong>lo Petición - Respuesta.<br />

La respuesta pue<strong>de</strong> ser usada como asentimiento positivo a<br />

la petición. Si no se recibe respuesta en un intervalo <strong>de</strong>terminado<br />

se envía <strong>de</strong> nuevo la petición.<br />

• Aquellas aplicaciones diseñadas para ser ubicadas en un<br />

espacio <strong>de</strong> memoria relativamente pequeño, y que permiten<br />

la carga <strong>de</strong> otras más complejas. Tal es el caso <strong>de</strong>l protocolo<br />

TFTP (Protocolo Trivial <strong>de</strong> Transferencia <strong>de</strong> Ficheros). Estas<br />

implementaciones pue<strong>de</strong>n ser contenidas en una memoria <strong>de</strong><br />

ÍNDICE<br />

13. <strong>TCP</strong> y UDP<br />

107


tipo EPROM o FLASH, puesto que únicamente necesitan las<br />

capas <strong>IP</strong> y UDP. Su uso está <strong>de</strong>stinado especialmente a sistemas<br />

sin disco, que cargan en memoria principal las aplicaciones<br />

a través <strong>de</strong> la red.<br />

En la figura 18 se pue<strong>de</strong> observar la simplicidad <strong>de</strong> los 8<br />

bytes que componen la cabecera UDP.<br />

0<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Puerto Fuente<br />

Longitud<br />

15<br />

16<br />

Datos<br />

Figura 18<br />

108<br />

Puerto Destino<br />

Suma <strong>de</strong> control<br />

31


14. Cuestionario 2<br />

1º) Obtener la tabla completa <strong>de</strong> encaminamiento <strong>de</strong> las<br />

máquinas (A), (B) y (C) respectivamente, correspondientes a<br />

la red 140.252. representada en la figura 18.1.<br />

2º) Diferencias entre los protocolos <strong>de</strong> transporte <strong>TCP</strong> y UDP<br />

3º) Si en un datagrama <strong>IP</strong> que transporta UDP, se produce<br />

un error en un byte <strong>de</strong> datos <strong>de</strong> la aplicación (porción <strong>de</strong><br />

datos <strong>de</strong> UDP). ¿Qué protocolo lo <strong>de</strong>tectará primero: <strong>IP</strong> ó<br />

UDP?<br />

ÍNDICE<br />

14. Cuestionario 2<br />

109


ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

Internet<br />

Red 140.252.0.0<br />

B<br />

Máscara = 11 bits<br />

Subred 140.252.13.64<br />

D<br />

.13.65 Slip .13.66<br />

C A<br />

.13.33 .13.34<br />

110<br />

.1.4<br />

Figura 18.1<br />

Máscara = 8 bits<br />

Subred 140.252.1.0<br />

Máscara = 11 bits<br />

Subred 140.252.13.32


15. Protocolos <strong>de</strong> Aplicación en <strong>TCP</strong>/<strong>IP</strong><br />

En <strong>TCP</strong>/<strong>IP</strong> no hay niveles <strong>de</strong> sesión ni <strong>de</strong> presentación.<br />

En su día se pensó que no eran necesarios y no se<br />

consi<strong>de</strong>raron. En realidad estos son unos niveles muy<br />

poco utilizados <strong>de</strong>ntro <strong>de</strong> la arquitectura OSI.<br />

Por encima <strong>de</strong> los niveles <strong>de</strong> sesión y transporte está el nivel<br />

<strong>de</strong> aplicación con los protocolos <strong>de</strong> más alto nivel. Los protocolos<br />

<strong>de</strong> este nivel <strong>de</strong> <strong>TCP</strong>/<strong>IP</strong> más conocidos y más antiguos<br />

son el FTP para la transferencia <strong>de</strong> archivos, el SMTP para<br />

correo electrónico y TELNET para terminal virtual. Pero a<strong>de</strong>más<br />

existen otros protocolos algo menos conocidos, los cuales<br />

se fueron añadiendo a lo largo <strong>de</strong>l tiempo, como son el<br />

DNS para nombres <strong>de</strong> dominio o el HTTP para transferencia<br />

<strong>de</strong> páginas <strong>de</strong> hipertexto <strong>de</strong> paginas web.<br />

Algunos <strong>de</strong> los protocolos <strong>de</strong> aplicación se apoyarán sobre<br />

<strong>TCP</strong> y otros sobre UDP en función <strong>de</strong> sus necesida<strong>de</strong>s.<br />

ÍNDICE<br />

15. Protocolos <strong>de</strong> Aplicación en <strong>TCP</strong>/<strong>IP</strong><br />

111


En los capítulos siguientes se <strong>de</strong>scribirán algunos los protocolos<br />

más importantes <strong>de</strong>l nivel <strong>de</strong> aplicación <strong>de</strong> <strong>TCP</strong>/<strong>IP</strong>.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

112


16. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: TELNET<br />

El protocolo TELNET permite al usuario comunicarse<br />

con el S.O. <strong>de</strong> una máquina remota, iniciar una sesión<br />

en ese S.O. y ejecutar programas en la máquina remota,<br />

<strong>de</strong> forma que pue<strong>de</strong> interaccionar con ellos como si la terminal<br />

<strong>de</strong>l usuario estuviera conectada directamente a la<br />

máquina remota.<br />

Para ello TELNET <strong>de</strong>fine el concepto <strong>de</strong> terminal virtual <strong>de</strong><br />

red (NVT, network virtual terminal) que especifica cómo interaccionan<br />

dos terminales utilizando un flujo <strong>de</strong> caracteres bidireccional.<br />

Este flujo <strong>de</strong> caracteres bidireccional se consigue<br />

utilizando una conexión <strong>TCP</strong>.<br />

La especificación <strong>de</strong> TELNET permite que los dos puntos<br />

extremos puedan negociar un conjunto <strong>de</strong> funcionalida<strong>de</strong>s<br />

opcionales más allá <strong>de</strong>l suministrado por la especificación<br />

ÍNDICE<br />

16. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: TELNET<br />

113


ásica. La mayor parte <strong>de</strong>l propio protocolo TELNET se <strong>de</strong>dica<br />

a la <strong>de</strong>finición <strong>de</strong>l protocolo <strong>de</strong> negociación <strong>de</strong> opciones.<br />

TELNET utiliza el concepto <strong>de</strong> NTV como apoyo para mo<strong>de</strong>lar<br />

la conexión entre dos entida<strong>de</strong>s TELNET.<br />

Conceptualmente, ambos extremos <strong>de</strong> una conexión TEL-<br />

NET utilizan un NVT, aunque en las aplicaciones reales, el<br />

extremo <strong>de</strong> la conexión formado por el servidor normalmente<br />

es un proceso <strong>de</strong> i<strong>de</strong>ntificación (login) en lugar <strong>de</strong> una aplicación<br />

<strong>de</strong> emulación <strong>de</strong> un terminal TELNET.<br />

El NVT es un dispositivo <strong>de</strong> caracteres bidireccional.<br />

Conceptualmente, consiste en un teclado y una impresora o<br />

monitor. Los caracteres proce<strong>de</strong>ntes <strong>de</strong>l NVT remoto se<br />

imprimen en la impresora local para que el usuario pueda verlos.<br />

Los caracteres introducidos con el teclado se envían al<br />

NVT remoto y, opcionalmente, se imprimen en la impresora<br />

local para proporcionar un eco local. El eco local pue<strong>de</strong> <strong>de</strong>sactivarse<br />

mediante la negociación <strong>de</strong> opciones y, en su lugar,<br />

pue<strong>de</strong> ser suministrado por el proceso NVT remoto.<br />

El NVT no tiene especificados ni un ancho ni una longitud <strong>de</strong><br />

página. Es capaz <strong>de</strong> reproducir los códigos <strong>de</strong> caracteres US-<br />

ASCII <strong>de</strong> 7 bits (bit 7 a 0) imprimibles (los códigos <strong>de</strong>l 32 al<br />

126). De los códigos US-ASCII <strong>de</strong> 7 bits <strong>de</strong> control sólo tie-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

114


nen significado para el NVT unos pocos. A<strong>de</strong>más <strong>de</strong> estos<br />

códigos <strong>de</strong> control estándar, la especificación <strong>de</strong> TELNET<br />

<strong>de</strong>fine comandos genéricos adicionales que no son códigos<br />

<strong>de</strong> carácter asignados en el conjunto <strong>de</strong> caracteres ASCII,<br />

sino que se señalizan utilizando el protocolo <strong>de</strong> TELNET, y se<br />

<strong>de</strong>finen como datos <strong>de</strong> 8 bits con el bit 7 activo. Los comandos<br />

adicionales <strong>de</strong> TELNET son los siguientes:<br />

• IAC (Interpret as command) (255). Interpretar el siguiente<br />

byte como un comando.<br />

• NOP (241). Sin operación.<br />

• EC (Erase Character) (247). Solicita al NTV remoto que<br />

borre el último carácter <strong>de</strong>l flujo <strong>de</strong> datos.<br />

• EL (Erase Line) (248). Solicita al NTV remoto que borre la<br />

último línea <strong>de</strong>l flujo <strong>de</strong> datos (hasta la última secuencia<br />

CR-LF).<br />

• AYT (Are you there) (246). Solicita al NTV remoto que<br />

envíe alguna ca<strong>de</strong>na imprimible como prueba <strong>de</strong> que aún<br />

sigue conectado (normalmente la ca<strong>de</strong>na «yes»):<br />

• <strong>IP</strong> (Interrupt Process) (244). Interrumpe o finaliza el proceso<br />

remoto.<br />

ÍNDICE<br />

16. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: TELNET<br />

115


• AO (Abort Output) (245). Solicita que continúe el proceso<br />

remoto hasta acabar, pero sin producir salida.<br />

• SB (String begin) (250). Indica que a continuación viene la<br />

ca<strong>de</strong>na <strong>de</strong> negociación <strong>de</strong> una opción <strong>de</strong>seada.<br />

• SE (String end) (240). Indica que se acaba la ca<strong>de</strong>na <strong>de</strong><br />

negociación <strong>de</strong> una opción <strong>de</strong>seada.<br />

• WILL (251). Acordar o solicitar una opción.<br />

• WON'T (251). Rehusar una solicitud <strong>de</strong> opción.<br />

• DO (253). Aceptar una solicitud <strong>de</strong> opción.<br />

• DON'T (254). Rehusar aceptar una solicitud <strong>de</strong> opción.<br />

Por ejemplo, para solicitar al receptor que acepte el modo<br />

binario <strong>de</strong> 8 bits (en vez <strong>de</strong> la transferencia ASCII <strong>de</strong> 7 bits<br />

habitual) se <strong>de</strong>be enviar esta ca<strong>de</strong>na <strong>de</strong> bytes:<br />

IAC, SB, WILL, «0», SE<br />

Don<strong>de</strong> el «0» representa la opción <strong>de</strong> negociar el cambio a<br />

modo <strong>de</strong> 8 bits. El receptor pue<strong>de</strong> <strong>de</strong>volver<br />

IAC, SB, DO, «0», SE<br />

si está dispuesto a aceptar la opción, o<br />

IAC, SB, DON'T, «0», SE<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

116


en caso contrario. El receptor también pue<strong>de</strong> iniciar el cambio<br />

al modo binario enviando<br />

IAC, SB, DO, «0», SE<br />

Y el transmisor pue<strong>de</strong> <strong>de</strong>volver<br />

IAC, SB, WILL, «0», SE<br />

si acepta el cambio, o<br />

IAC, SB, WON'T, «0», SE<br />

si no lo acepta.<br />

El puerto asociado a un servidor <strong>de</strong> TELNET es habitualmente<br />

el 23.<br />

TELNET no se utiliza sólo para simples aplicaciones con terminales.<br />

Por ejemplo, como se comenta en el apartado sobre<br />

FTP, la conexión <strong>de</strong> control <strong>de</strong> una sesión FTP utiliza el protocolo<br />

TELNET para permitir al cliente y al servidor intercambiar<br />

comandos y respuestas FTP. A<strong>de</strong>más, muchos otros protocolos<br />

emplean el concepto básico <strong>de</strong> NVT.<br />

ÍNDICE<br />

16. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: TELNET<br />

117


17. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: FTP<br />

El FTP, o protocolo <strong>de</strong> transferencia <strong>de</strong> archivos, permite<br />

al usuario <strong>de</strong> una terminal tener acceso a un sistema<br />

<strong>de</strong> archivos remoto e interaccionar con él a través<br />

<strong>de</strong> comandos. Con FTP se pue<strong>de</strong> transferir ficheros <strong>de</strong> texto<br />

o ficheros binarios.<br />

FTP también proporciona características para controlar el<br />

acceso <strong>de</strong> los usuarios. Cuando un usuario solicita la transferencia<br />

<strong>de</strong> un fichero, FTP establece una conexión <strong>TCP</strong> con el<br />

sistema <strong>de</strong>stino para el intercambio <strong>de</strong> mensajes <strong>de</strong> control.<br />

A través <strong>de</strong> esta conexión se pue<strong>de</strong> transmitir el i<strong>de</strong>ntificador<br />

y la contraseña <strong>de</strong>l usuario, y el usuario pue<strong>de</strong> especificar el<br />

fichero y las acciones sobre él <strong>de</strong>seadas.<br />

Una vez que se aprueba la transferencia <strong>de</strong>l fichero, se establece<br />

una segunda conexión <strong>TCP</strong> para la transferencia <strong>de</strong><br />

datos. El fichero se transmite a través <strong>de</strong> esa conexión <strong>de</strong><br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

118


datos, sin información suplementaria o cualquier cabecera <strong>de</strong><br />

la capa <strong>de</strong> aplicación. Cuando la transferencia se completa, el<br />

control <strong>de</strong> la conexión se utiliza para indicar el final y la posibilidad<br />

<strong>de</strong> aceptar nuevas ór<strong>de</strong>nes <strong>de</strong> transferencia.<br />

Como en otros muchos protocolos <strong>de</strong> Internet, FTP emplea<br />

un sencillo protocolo tipo comando - respuesta. Los comandos<br />

FTP son breves ca<strong>de</strong>nas ASCII seguidas <strong>de</strong> parámetros<br />

opcionales <strong>de</strong>pendientes <strong>de</strong>l comando. Estos son algunos<br />

comandos FTP:<br />

• USER. Especifica nombre <strong>de</strong> usuario para el control <strong>de</strong><br />

acceso.<br />

• PASS. Especifica contraseña <strong>de</strong> usuario, si se dispone <strong>de</strong><br />

ella, para el control <strong>de</strong> acceso.<br />

• CWD. Cambia <strong>de</strong> directorio <strong>de</strong> trabajo al nuevo directorio<br />

<strong>de</strong>l sistema remoto especificado.<br />

• CDUP. Cambia al directorio padre <strong>de</strong>l directorio <strong>de</strong> trabajo<br />

actual.<br />

El cliente FTP conecta con el servidor en un número <strong>de</strong> puerto<br />

conocido (habitualmente el 21). Esta conexión inicial se<br />

convierte en la conexión <strong>de</strong> control FTP y se utiliza para<br />

enviar ór<strong>de</strong>nes y respuestas. La transferencia <strong>de</strong> los datos<br />

tiene lugar en una segunda conexión, en la conexión <strong>de</strong><br />

ÍNDICE<br />

17. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: FTP<br />

119


datos. Esta última pue<strong>de</strong> establecerse en el puerto 20 por<br />

<strong>de</strong>fecto, pero normalmente se cambia <strong>de</strong> puerto con los<br />

comandos PORT o PASV.<br />

La conexión <strong>de</strong> control requiere <strong>de</strong>l protocolo TELNET para<br />

intercambiar comandos y respuestas orientados a líneas. Si<br />

bien TELNET es todo un protocolo por sí mismo, FTP sólo<br />

necesita un subconjunto <strong>de</strong> las funciones <strong>de</strong> TELNET. La<br />

razón principal <strong>de</strong> utilizar TELNET en la conexión <strong>de</strong> control<br />

resi<strong>de</strong> en que sirve para <strong>de</strong>finir un conjunto básico <strong>de</strong> caracteres<br />

(US-ASCII) y una convención <strong>de</strong> carácter <strong>de</strong> fin <strong>de</strong> línea<br />

(CR-LF). Estos son los parámetros por <strong>de</strong>fecto <strong>de</strong>l terminal<br />

virtual <strong>de</strong> red (NVT).<br />

FTP permite especificar la estructura <strong>de</strong>l archivo a transferir,<br />

así como su tipo <strong>de</strong> datos. La aplicación cliente es la responsable<br />

<strong>de</strong> informar al servidor FTP sobre el tipo <strong>de</strong> archivo y<br />

<strong>de</strong> datos que ha <strong>de</strong> usar para la transferencia <strong>de</strong> los mismos.<br />

Los tres posibles tipos <strong>de</strong> estructuras <strong>de</strong> archivo son éstas:<br />

• Archivo no estructurado. Contiene datos binarios o <strong>de</strong><br />

texto, que se transfieren <strong>de</strong> forma transparente al nivel <strong>de</strong><br />

aplicación. Debe ser el usuario quien interprete los datos.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

120


• Archivo no estructurado. Está or<strong>de</strong>nado como una<br />

secuencia <strong>de</strong> registros <strong>de</strong> tamaño fijo y <strong>de</strong> tipo <strong>de</strong>finido, que<br />

se suelen transferir como bloques <strong>de</strong> tamaño fijo.<br />

• Archivos <strong>de</strong> acceso aleatorio. Se componen <strong>de</strong> registros<br />

<strong>de</strong> tamaño variable llamados páginas. Cada página tiene su<br />

propia cabecera con información sobre su longitud y sobre la<br />

posición <strong>de</strong> la página en el archivo completo.<br />

Para el tipo <strong>de</strong> datos <strong>de</strong>l archivo hay cuatro opciones, que se<br />

pue<strong>de</strong>n especificar con el comando TYPE:<br />

• Texto ASCII.<br />

• Texto EBCDIC.<br />

• IMAGE, o datos binarios <strong>de</strong> ocho bits.<br />

• LOCAL, o datos binario <strong>de</strong> tamaño variable.<br />

En nuestro sistema físico, disponemos <strong>de</strong>l servicio FTP<br />

(ftp.exe) en todas las estaciones o PC <strong>de</strong> la red y en cada uno<br />

<strong>de</strong> los servidores.<br />

Ello quiere <strong>de</strong>cir que po<strong>de</strong>mos hacer uso <strong>de</strong>l servicio Telnet<br />

(tnvt52.exe) para conectarnos sobre un servidor y luego lanzar<br />

<strong>de</strong>s<strong>de</strong> allí «ftp» (unix) hacia otro servidor diferente.<br />

ÍNDICE<br />

17. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: FTP<br />

121


17.1 FTP <strong>de</strong>s<strong>de</strong> MS-DOS a través <strong>de</strong> TUN<br />

Lógicamente, <strong>de</strong>be existir un camino <strong>de</strong> conexión <strong>TCP</strong>/<strong>IP</strong><br />

hacia la máquina sobre la que queremos conectar, para ello,<br />

previamente <strong>de</strong>beremos <strong>de</strong> lanzar un «ping» <strong>de</strong> comprobación.<br />

Para activar FTP <strong>de</strong>s<strong>de</strong> MS-DOS se necesita efectuar:<br />

C:\TUN<strong>TCP</strong>\FTP<br />

Ello provoca la entrada sobre un intérprete <strong>de</strong> comandos,<br />

<strong>de</strong>s<strong>de</strong> el que po<strong>de</strong>mos comenzar nuestra sesión.<br />

Po<strong>de</strong>mos, sin embargo, utilizar la forma inmediata especificando<br />

una serie <strong>de</strong> parámetros <strong>de</strong>l modo siguiente:<br />

C:\TUN<strong>TCP</strong>\FTP [-d] [-u usuario password] [-p port] [host]<br />

[comando]<br />

don<strong>de</strong>:<br />

-d Activa el modo «<strong>de</strong>bug».<br />

-u Permite introducir login y password<br />

-p Especifica el puerto tcp usado (21 por <strong>de</strong>fecto)<br />

host Servidor al que solicitamos el servicio<br />

comando Comando reconocido por el intérprete <strong>de</strong> comandos<br />

<strong>de</strong> FTP, una vez establecida la conexión.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

122


Veamos a continuación algunos <strong>de</strong> los comandos más relevantes:<br />

! Permite realizar una «shell» al MSDOS<br />

? Visualiza la lista completa <strong>de</strong> comandos<br />

help [comando] Proporciona información acerca <strong>de</strong> un<br />

comando<br />

aget Inicia una transferencia en modo ASCII <strong>de</strong>s<strong>de</strong> el host<br />

hacia el PC.<br />

aget fichero_remoto fichero_local<br />

aput Inicia una transferencia en modo ASCII <strong>de</strong>s<strong>de</strong> el PC<br />

hacia el host.<br />

aput fichero_remoto fichero_local<br />

bget Inicia una transferencia en modo Binario <strong>de</strong>s<strong>de</strong> el host<br />

hacia el PC.<br />

bget fichero_remoto fichero_local<br />

bput Inicia una transferencia en modo Binario <strong>de</strong>s<strong>de</strong> el PC<br />

hacia el host.<br />

bput fichero_remoto fichero_local<br />

bye Finaliza una sesión y abandona ftp.<br />

ÍNDICE<br />

17. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: FTP<br />

123


cd Permite cambiar <strong>de</strong> directorio en la máquina<br />

remota. Los caminos se <strong>de</strong>ben especificar en<br />

formato Unix.<br />

<strong>de</strong>lete Borra un fichero en el host remoto.<br />

dir [camino] Visualiza el contenido <strong>de</strong> un directorio en la<br />

máquina remota.<br />

drive Utilizado para cambiar <strong>de</strong> unidad <strong>de</strong> disco<br />

en la máquina local.<br />

fpwd Indica el nombre <strong>de</strong>l directorio actual en la máquina<br />

remota.<br />

lpwd Indica el nombre <strong>de</strong>l directorio actual en la máquina<br />

local.<br />

lcd Cambia el directorio actual en la máquina local.<br />

ldir[camino] Lista el contenido <strong>de</strong>l directorio actual en la<br />

máquina local.<br />

mkdir Crea un directorio en el host remoto.<br />

rmdir Borra un directorio en el host remoto.<br />

rename Permite cambiar <strong>de</strong> nombre a un fichero remoto.<br />

rename <br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

124


ascii Activa el modo <strong>de</strong> transferencia por <strong>de</strong>fecto a texto.<br />

Cuando se transfiere en modo ASCII, existe una conversión<br />

<strong>de</strong> los caracteres y para compatibilizar las diferencias<br />

existentes entre los ficheros <strong>de</strong> texto DOS y UNIX.<br />

binary Activa el modo <strong>de</strong> transferencia por <strong>de</strong>fecto a binario.<br />

Tanto ASCII como BINARY, seleccionan el tipo <strong>de</strong> transferencia<br />

utilizada por los comandos MPUT y MGET.<br />

mget Inicia una transferencia con el modo en curso, <strong>de</strong>s<strong>de</strong> el<br />

host hacia el PC. Permite el uso <strong>de</strong> caracteres comodín (* ?).<br />

bget fichero_remoto fichero_local<br />

mput Inicia una transferencia con el modo en curso <strong>de</strong>s<strong>de</strong> el<br />

PC hacia el host. Permite el uso <strong>de</strong> caracteres comodín (* ?).<br />

bput fichero_remoto fichero_local<br />

stat Visualiza el estado <strong>de</strong> la máquina remota.<br />

El servicio FTP cliente resi<strong>de</strong>, al igual que NFS, también en<br />

los servidores. Por tanto pue<strong>de</strong> ser utilizado a través <strong>de</strong> una<br />

conexión Telnet (TNVT52.EXE) sobre cualquiera <strong>de</strong> ellos,<br />

permitiendo la transferencia <strong>de</strong> archivos entre las máquinas<br />

Unix.<br />

Los comandos proporcionados por FTP <strong>de</strong>s<strong>de</strong> Unix son similares<br />

en la mayoría <strong>de</strong> los casos, con algunas diferencias. Lo<br />

ÍNDICE<br />

17. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: FTP<br />

125


correcto sería verificar mediante el comando help la lista <strong>de</strong><br />

opciones disponibles y actuar en consecuencia. La forma <strong>de</strong><br />

invocarlo es similar a MS-DOS:<br />

$ ftp std<br />

FTP pue<strong>de</strong> ser automatizado con la ayuda <strong>de</strong>l redireccionamiento.<br />

Es <strong>de</strong>cir, si creamos por ejemplo un fichero llamado<br />

«auto» mediante un editor <strong>de</strong> texto, con una serie <strong>de</strong> comandos<br />

ftp tales que:<br />

BINARY<br />

CD /u0/ps22<br />

MGET factura0*.*<br />

BYE<br />

y lanzamos <strong>de</strong>s<strong>de</strong> la línea <strong>de</strong> comandos <strong>de</strong>l DOS:<br />

C:>\tuntcp\ftp -u ps22 aixftursop std < auto<br />

Provocaremos la transferencia automática <strong>de</strong> todos los archivos<br />

que empiecen por «factura0» <strong>de</strong>l directorio remoto<br />

/u0/ps22, hacia nuestra estación <strong>de</strong> trabajo.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

126


18. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: POP3<br />

POP3 es un protocolo sencillo y muy extendido que permite<br />

a una máquina cliente recuperar mensajes <strong>de</strong><br />

correo electrónico <strong>de</strong> un servidor. El protocolo IMAP4<br />

ofrece el mismo servicio pero, a<strong>de</strong>más, incorpora el movimiento<br />

bidireccional <strong>de</strong> mensajes y permite la gestión <strong>de</strong><br />

buzones remotos.<br />

POP3 utiliza el puerto 110 para aten<strong>de</strong>r peticiones <strong>de</strong> conexión<br />

<strong>TCP</strong>.<br />

POP3 está orientado a líneas y es un protocolo <strong>de</strong> respuesta<br />

a peticiones basado en ASCII. El cliente envía los comandos<br />

al servidor, el cual <strong>de</strong>vuelve respuestas al cliente. Los comandos<br />

POP3 se componen <strong>de</strong> breves palabras clave, seguidas<br />

<strong>de</strong> parámetros opcionales enviados como una sola línea <strong>de</strong><br />

texto, seguida <strong>de</strong> CR-LF. El protocolo emplea únicamente un<br />

reducido número <strong>de</strong> comandos.<br />

ÍNDICE<br />

18. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: POP3<br />

127


Las respuestas al POP3 pue<strong>de</strong>n adoptar dos formas: respuestas<br />

<strong>de</strong> una sola línea y respuestas multi-línea. Las respuestas<br />

<strong>de</strong> una sola línea indican primero el éxito o el fallo <strong>de</strong>l<br />

comando y, luego, suministra información adicional legible por<br />

el usuario o a<strong>de</strong>cuada para que las máquinas la analicen. Los<br />

códigos básicos POP3 <strong>de</strong> éxito o fallo son +OK y -ERR.<br />

Cualquier información adicional que aparezca en la línea que<br />

sigue a los códigos básicos es <strong>de</strong>scrita con el comando apropiado.<br />

Las respuestas multi-línea consisten en una respuesta <strong>de</strong><br />

una sola línea seguida <strong>de</strong> líneas adicionales <strong>de</strong> información<br />

a<strong>de</strong>cuadas al comando que invocó la respuesta. Una respuesta<br />

multi-línea finaliza con una línea que contiene un solo<br />

carácter <strong>de</strong> punto seguido <strong>de</strong> CR-LF. Esta línea final no se<br />

consi<strong>de</strong>ra parte <strong>de</strong> la respuesta. Cualquier línea <strong>de</strong> la respuesta<br />

multi-línea que comience por un punto lleva un punto<br />

adicional insertado antes <strong>de</strong>l primer carácter. Esto asegura<br />

que el cliente no las confunda con la línea <strong>de</strong> finalización. El<br />

cliente elimina el punto inicial <strong>de</strong> todas las líneas que no son<br />

la línea <strong>de</strong> finalización. Este proceso se <strong>de</strong>nomina dot stuffing<br />

(relleno con puntos).<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

128


19. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: SMTP<br />

El SMTP, o protocolo simple <strong>de</strong> transferencia <strong>de</strong> correo,<br />

ofrece un servicio <strong>de</strong> transferencia <strong>de</strong> correo electrónico<br />

(e-mail) <strong>de</strong>s<strong>de</strong> el sistema <strong>de</strong> correo <strong>de</strong> un computador<br />

servidor o anfitrión al computador <strong>de</strong>l usuario <strong>de</strong>stinatario<br />

(computador local). SMTP no se encarga <strong>de</strong> aceptar<br />

correo <strong>de</strong> otros usuarios locales, ni <strong>de</strong> eliminar el correo recibido<br />

a su <strong>de</strong>stinatario, y éstas son funciones que se <strong>de</strong>jan al<br />

sistema <strong>de</strong> correo local, también llamado sistema <strong>de</strong> correo<br />

nativo.<br />

Consi<strong>de</strong>rando lo anterior, SMTP queda oculto a las transferencias<br />

locales <strong>de</strong> correo <strong>de</strong>l computador <strong>de</strong>l usuario, y sólo<br />

se ejecuta cuando hay que enviar correo a una máquina<br />

remota o se recibe correo <strong>de</strong>s<strong>de</strong> una máquina remota. En el<br />

computador <strong>de</strong> un usuario, se dispone <strong>de</strong> un servidor <strong>de</strong><br />

SMTP encargado <strong>de</strong> recibir correo remoto, un cliente encar-<br />

ÍNDICE<br />

19. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: SMTP<br />

129


gado <strong>de</strong> enviar correo remoto y <strong>de</strong> unas colas a través <strong>de</strong> las<br />

cuales se comunica SMTP y el Interfaz <strong>de</strong>l sistema <strong>de</strong> correo<br />

local.<br />

Dentro <strong>de</strong>l sistema <strong>de</strong> correo local se mantiene un buzón por<br />

cada usuario, don<strong>de</strong> se pue<strong>de</strong> <strong>de</strong>positar o recibir correo.<br />

Cada buzón tiene un nombre único compuesto <strong>de</strong> dos partes.<br />

La primera parte, o parte local, es un nombre <strong>de</strong> usuario<br />

único <strong>de</strong>ntro <strong>de</strong>l sistema local. La segunda, o parte global, es<br />

el nombre <strong>de</strong>l computador servidor, que <strong>de</strong>be ser único <strong>de</strong>ntro<br />

<strong>de</strong> toda la internet don<strong>de</strong> actúa el sistema. La parte global<br />

se divi<strong>de</strong> normalmente en varios campos <strong>de</strong>pendientes <strong>de</strong> la<br />

localización <strong>de</strong>l servidor. Un ejemplo <strong>de</strong> nombre <strong>de</strong> buzón<br />

pue<strong>de</strong> ser usuario@disc.ua.es.<br />

El formato <strong>de</strong> los mensajes <strong>de</strong> correo <strong>de</strong> SMTP consta <strong>de</strong><br />

una cabecera y <strong>de</strong>l cuerpo <strong>de</strong>l mensaje. Ambas partes se<br />

componen <strong>de</strong> varias líneas <strong>de</strong> texto ASCII. Una línea en blanco<br />

separa la cabecera <strong>de</strong>l cuerpo. Cada línea <strong>de</strong> la cabecera<br />

consta <strong>de</strong> una palabra clave seguida <strong>de</strong>l carácter <strong>de</strong> dos puntos<br />

y una ca<strong>de</strong>na <strong>de</strong> texto. Hay palabras clave obligatorias y<br />

otras opcionales. SMTP no especifica la forma en la que se<br />

crean los mensajes, se requiere un programa <strong>de</strong> correo electrónico<br />

nativo o un editor local.<br />

La cabecera mínima <strong>de</strong> un mensaje es ésta:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

130


TO: nombre <strong>de</strong>l <strong>de</strong>stinatario<br />

FROM: nombre <strong>de</strong>l remitente<br />

Otra cabecera pue<strong>de</strong> ser:<br />

TO: nombre <strong>de</strong>l <strong>de</strong>stinatario<br />

REPLY TO: nombre al que <strong>de</strong>be enviarse la contestación<br />

Y éste es un ejemplo <strong>de</strong> cabecera con más campos:<br />

TO: nombre <strong>de</strong>l <strong>de</strong>stinatario<br />

FROM: nombre <strong>de</strong>l remitente<br />

CC: copias para...<br />

SUBJECT: resumen <strong>de</strong>l asunto <strong>de</strong>l mensaje<br />

DATE: fecha <strong>de</strong>l mensaje<br />

ENCRYPTED: indicador <strong>de</strong> que el cuerpo <strong>de</strong>l mensaje esta<br />

cifrado<br />

Otro posible campo que pue<strong>de</strong> aparecer en la cabecera es<br />

éste:<br />

RECEIVED FROM: i<strong>de</strong>ntidad <strong>de</strong> pasarela<br />

Este campo es añadido por las pasarelas que se encuentran<br />

en la ruta que recorre el mensaje, si es que el mensaje pasa<br />

por varias re<strong>de</strong>s. Así se pue<strong>de</strong> conocer la ruta que ha seguido<br />

un mensaje.<br />

Cuando es un computador local se ha creado ya un mensaje<br />

con el formato indicado, el sistema <strong>de</strong> correo local <strong>de</strong>termina<br />

ÍNDICE<br />

19. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: SMTP<br />

131


si <strong>de</strong>be <strong>de</strong>positarlo en un buzón local o <strong>de</strong>be colocarlo en la<br />

cola hacia SMTP para su reenvío. SMTP <strong>de</strong>terminará la dirección<br />

<strong>IP</strong> <strong>de</strong>l <strong>de</strong>stinatario según el sistema <strong>de</strong> nombres <strong>de</strong><br />

dominio (o DNS; este protocolo se estudiará más a<strong>de</strong>lante), y<br />

junto con la dirección <strong>de</strong> puerto <strong>de</strong>l servidor SMTP al que<br />

está conectado el usuario <strong>de</strong>stinatario (normalmente 25) se<br />

establece una conexión <strong>TCP</strong> por la que se transfiere el mensaje<br />

<strong>de</strong> correo.<br />

En la transferencia se intercambian una serie <strong>de</strong> comandos y<br />

respuestas como PDUs <strong>de</strong> SMTP, todas ellas codificadas<br />

como ca<strong>de</strong>nas ASCII acabadas en CR-LF. Cada comando es<br />

un simple nombre <strong>de</strong> comando seguido <strong>de</strong> ciertos parámetros,<br />

<strong>de</strong>pendiendo <strong>de</strong>l comando. Ninguno <strong>de</strong> los comandos es<br />

sensible a las mayúsculas o minúsculas, aunque la información<br />

transmitida como parámetros sí pue<strong>de</strong> serlo (como son<br />

los nombres <strong>de</strong> buzones <strong>de</strong> correo).<br />

Las respuestas consisten en un código numérico <strong>de</strong> tres dígitos<br />

seguido <strong>de</strong> una ca<strong>de</strong>na que explica la respuesta. El software<br />

cliente procesa fácilmente el código numérico y la ca<strong>de</strong>na<br />

<strong>de</strong> error pue<strong>de</strong> pasar para po<strong>de</strong>r ser interpretada por una<br />

persona, si así se <strong>de</strong>sea.<br />

Justo <strong>de</strong>spués <strong>de</strong> contactar con el servidor, el cliente espera<br />

recibir un simple mensaje <strong>de</strong> saludo <strong>de</strong>l servidor. Cuando el<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

132


cliente recibe el mensaje, envía un comando HELO i<strong>de</strong>ntificándose<br />

a sí mismo. Los siguientes comandos i<strong>de</strong>ntifican a<br />

los receptores <strong>de</strong> un mensaje y transfieren los propios datos<br />

<strong>de</strong>l mensaje.<br />

SMTP es capaz <strong>de</strong> transferir múltiples mensajes durante una<br />

<strong>de</strong>terminada sesión. Cada mensaje pue<strong>de</strong> direccionarse<br />

in<strong>de</strong>pendientemente y no necesita estar relacionado con los<br />

otros mensajes enviados durante la sesión. Esta capacidad<br />

permite a un cliente SMTP intercambiar un conjunto <strong>de</strong> mensajes<br />

en un solo lote con el servidor SMTP, lo que da como<br />

resultado una comunicación más eficaz.<br />

En la práctica hay muchas re<strong>de</strong>s que utilizan protocolos distintos<br />

<strong>de</strong>l SMTP para manejar el correo, y resulta necesario el<br />

uso <strong>de</strong> pasarelas <strong>de</strong> correo para el intercambio <strong>de</strong> correo. Por<br />

ejemplo, una pasarela <strong>TCP</strong>/<strong>IP</strong> - OSI, que transfiera correo<br />

entre un sistema <strong>TCP</strong>/<strong>IP</strong> con SMTP y un sistema <strong>de</strong> niveles<br />

OSI con el protocolo MOTIS para correo electrónico.<br />

ÍNDICE<br />

19. Protocolo <strong>de</strong> aplicación sobre <strong>TCP</strong>: SMTP<br />

133


20. Protocolos <strong>de</strong> aplicación sobre UDP: TFTP<br />

Como FTP está diseñado para manejar diversos tipos<br />

<strong>de</strong> archivo, e incluso algoritmos <strong>de</strong> compresión, resultar<br />

ser un protocolo <strong>de</strong>masiado complejo para aplicaciones<br />

<strong>de</strong> re<strong>de</strong>s <strong>de</strong> área local. Para este caso se ha <strong>de</strong>finido<br />

un protocolo <strong>de</strong> transferencia trivial <strong>de</strong> archivos (TFTP) más<br />

simple que el FTP.<br />

Como la tasa <strong>de</strong> errores en las re<strong>de</strong>s <strong>de</strong> área local suele ser<br />

muy baja, TFTP se apoya sobre UDP en vez <strong>de</strong> <strong>TCP</strong>, como<br />

ocurría con FTP. Para evitar la posibilidad <strong>de</strong> que se altere el<br />

or<strong>de</strong>n <strong>de</strong> los mensajes, se retrasa el envío <strong>de</strong> un mensaje o<br />

bloque <strong>de</strong> datos hasta haber recibido confirmación <strong>de</strong>l bloque<br />

anterior o hasta el vencimiento <strong>de</strong> n cronómetro <strong>de</strong> tiempo <strong>de</strong><br />

espera máximo. Consi<strong>de</strong>rando la velocidad <strong>de</strong> las re<strong>de</strong>s <strong>de</strong><br />

área local, éste es un buen método.<br />

TFTP solo maneja cuatro tipo <strong>de</strong> mensajes sobre la red:<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

134


• Solicitud <strong>de</strong> lectura. Enviado por un cliente para iniciar la<br />

lectura <strong>de</strong> un archivo <strong>de</strong>s<strong>de</strong> el servidor.<br />

• Solicitud <strong>de</strong> escritura. Enviado por un cliente para iniciar<br />

la escritura <strong>de</strong> un archivo en el servidor.<br />

• Bloque <strong>de</strong> datos. Para comunicar un bloque <strong>de</strong> datos o<br />

mensaje <strong>de</strong>l contenido total <strong>de</strong> un archivo. Tienen como máximo<br />

512 bytes y llevan una cabecera con número <strong>de</strong> secuencia.<br />

• Confirmación. Para confirmar la recepción <strong>de</strong> un bloque<br />

<strong>de</strong> datos.<br />

ÍNDICE<br />

20. Protocolos <strong>de</strong> aplicación sobre UDP: TFTP<br />

135


21. Protocolos <strong>de</strong> aplicación sobre UDP: SNMP<br />

El crecimiento <strong>de</strong> las re<strong>de</strong>s en el seno <strong>de</strong> las empresas,<br />

y la diversidad <strong>de</strong> sistemas correspondientes, es <strong>de</strong>cir<br />

routers <strong>de</strong> diversa proce<strong>de</strong>ncia, servidores centrales,<br />

<strong>de</strong> terminales, bridges locales y remotos, Hubs etc. imponen<br />

una gestión coherente <strong>de</strong>l conjunto <strong>de</strong> toda esta estructura.<br />

Vamos a dar, en este apartado, una breve <strong>de</strong>scripción <strong>de</strong>l<br />

estándar <strong>de</strong> gestión más difundido a través <strong>de</strong> todos los protocolos<br />

Internet: SNMP.<br />

EL control <strong>de</strong> una red <strong>TCP</strong>/<strong>IP</strong> bajo SNMP reposa sobre estaciones<br />

/ puestos <strong>de</strong> control <strong>de</strong> red (Los «Managers» o<br />

manejadores) que comunican con elementos <strong>de</strong> red, término<br />

que engloba cualquier equipo capaz <strong>de</strong> ejecutar <strong>TCP</strong>/<strong>IP</strong>:<br />

Servidores, Routers, terminales X, servidores <strong>de</strong> terminales,<br />

impresoras, repetidores, hubs, bridges ... y un largo etcétera<br />

<strong>de</strong> dispositivos físicos.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

136


La porción <strong>de</strong> software que asume la gestión <strong>de</strong> la red sobre<br />

el elemento <strong>de</strong> red se <strong>de</strong>nomina agente.<br />

Las estaciones que explotarán la información almacenada<br />

por los agentes, son generalmente equipos <strong>de</strong> trabajo equipados<br />

con monitores en color y entornos gráficos. Presentan<br />

<strong>de</strong> forma intuitiva una variada información concerniente a los<br />

elementos <strong>de</strong> red o agentes.(Enlaces inactivos, volúmenes<br />

<strong>de</strong> tráfico etc.)<br />

La comunicación pue<strong>de</strong> ser bidireccional. El manejador solicita<br />

un valor específico al agente («¿Cuántos puertos ICMP<br />

inaccesibles ha generado Vd.?»), o bien el agente señala un<br />

evento importante al manejador («un interfaz ha perdido el<br />

enlace»). El manejador <strong>de</strong>be po<strong>de</strong>r pedir al agente el valor<br />

<strong>de</strong> una variable y cambiarla («cambia el valor por <strong>de</strong>fecto <strong>de</strong><br />

<strong>IP</strong> TTL a 64»).<br />

El control <strong>de</strong> una red <strong>TCP</strong>/<strong>IP</strong> <strong>de</strong>scansa sobre 3 puntos:<br />

1. Una Base <strong>de</strong> información <strong>de</strong> gestión (MIB) quien precisa<br />

cuáles son las variables soportadas por los elementos <strong>de</strong><br />

la red. Información que podrá ser consultada o modificada por<br />

el manejador. La RFC 1213 <strong>de</strong>fine la segunda versión MIB-<br />

II.<br />

ÍNDICE<br />

21. Protocolos <strong>de</strong> aplicación sobre UDP: SNMP<br />

137


2. Un juego <strong>de</strong> estructuras comunes y una nomenclatura utilizada<br />

para referenciar las variables <strong>de</strong>ntro <strong>de</strong> la MIB, bajo el<br />

nombre <strong>de</strong> Estructura <strong>de</strong> Gestión <strong>de</strong> Información (SMI).<br />

Por ejemplo, SMI estipula que un «Counter» es un entero<br />

absoluto <strong>de</strong>finido entre 0 y 4,294,967,295 que retorna a cero<br />

cuando alcanza el límite máximo.<br />

3. El protocolo entre el manejador y el agente, el SNMP, está<br />

<strong>de</strong>finido en la RFC 1157. Detalla el formato <strong>de</strong> los paquetes<br />

intercambiados. A pesar <strong>de</strong> soportar una larga serie <strong>de</strong> protocolos<br />

<strong>de</strong> transporte, UDP es el más utilizado.<br />

Existen diversos productos comerciales que permiten la gestión<br />

SNMP a través <strong>de</strong> los MIB <strong>de</strong> todos aquellos dispositivos<br />

que lo soporten. Actualmente la mayoría <strong>de</strong> éstos disponen<br />

<strong>de</strong> SNMP. D-View y NMS son dos paquetes populares sobre<br />

plataforma WINDOWS que permiten efectuar gestión SNMP.<br />

Son productos <strong>de</strong> D-LINK y AMP respectivamente y disponen<br />

<strong>de</strong> gran<strong>de</strong>s posibilida<strong>de</strong>s en cuanto a flexibilidad <strong>de</strong> actuación<br />

y establecimiento <strong>de</strong> alarmas.<br />

El significado y la catalogación <strong>de</strong> todas las variables <strong>de</strong>l MIB<br />

sobrepasa el objetivo <strong>de</strong> este curso, existiendo documentación<br />

específica y <strong>de</strong> uso público sobre el tema. Nos limitare-<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

138


mos únicamente a utilizar algunos <strong>de</strong> los comandos que ofrece<br />

Unix al respecto.<br />

El daemon utilizado se <strong>de</strong>nomina snmpd, y es lanzado por<br />

la shell <strong>de</strong> arranque <strong>de</strong> tcp mediante el comando:<br />

# snmp start<br />

ÍNDICE<br />

Agente (MIB)<br />

Estación<br />

Hub<br />

21. Protocolos <strong>de</strong> aplicación sobre UDP: SNMP<br />

Gateway<br />

Estación<br />

Manejador SNMP<br />

Agente (MIB)<br />

Hub<br />

Agente (MIB)<br />

Agente (MIB)<br />

Router<br />

Gateway<br />

Agente (MIB)<br />

Figura 19<br />

139<br />

Router<br />

WAN<br />

Agente (MIB)<br />

Estación<br />

Hub<br />

Agente (MIB)<br />

Estación


El manejador envía sus peticiones (get-request, set-request<br />

o get-response) al puerto UDP 161. El agente envía «traps»<br />

o indicaciones <strong>de</strong> sucesos al puerto UDP 162. Gracias a la<br />

utilización <strong>de</strong> puertos distintos, un mismo sistema pue<strong>de</strong> ser<br />

simultáneamente manejador y agente. Tal es el caso <strong>de</strong>l servidor<br />

std o el std2.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

140


22. Protocolos <strong>de</strong> aplicación sobre UDP: NFS<br />

La mayor parte <strong>de</strong> la programación en red se efectúa<br />

escribiendo aplicaciones que realizan llamadas a funciones<br />

ofrecidas por el sistema para ejecutar operaciones<br />

específicas <strong>de</strong> red. Por ejemplo, una función realiza una<br />

apertura <strong>TCP</strong> activa, otra pue<strong>de</strong> <strong>de</strong>finir opciones específicas<br />

<strong>de</strong>l protocolo, otra envía datos a través <strong>de</strong> un enlace <strong>TCP</strong> ya<br />

establecido, y así sucesivamente.<br />

De forma general, el cliente envía comandos al servidor, y<br />

éste respon<strong>de</strong> al cliente. Todas las aplicaciones utilizadas<br />

hasta ahora, Ping, routed, Telnet ...etc, están construidas <strong>de</strong><br />

este modo.<br />

Sin embargo, existe otra forma <strong>de</strong> realizar estas tareas. Las<br />

RPC, o llamadas <strong>de</strong> procedimientos distantes (Remote<br />

Procedure Call), son otra forma <strong>de</strong> programar en red.<br />

ÍNDICE<br />

22. Protocolos <strong>de</strong> aplicación sobre UDP: NFS<br />

141


Un programa cliente realiza únicamente llamadas a subrutinas<br />

situadas en el programa servidor. Todos los <strong>de</strong>talles <strong>de</strong> la<br />

programación en red son ocultados por el software RPC.<br />

Como ventajas po<strong>de</strong>mos citar las siguientes:<br />

1- La programación es más sencilla puesto que existe muy<br />

poca y en algunos casos nula programación asociada a la<br />

red. El programador <strong>de</strong> la aplicación escribe únicamente un<br />

programa cliente y las funciones <strong>de</strong>l servidor llamadas por el<br />

cliente.<br />

2- Si un protocolo sin corrección <strong>de</strong> errores como UDP es utilizado,<br />

<strong>de</strong>talles como el timeout y la retransmisión son gestionados<br />

por RPC.<br />

3- La biblioteca RPC gestiona eventuales conversiones <strong>de</strong><br />

datos para los argumentos y los valores <strong>de</strong> retorno. Es <strong>de</strong>cir,<br />

si los argumentos consisten en números enteros <strong>de</strong> coma flotante,<br />

RPC se ocupa <strong>de</strong> todas las diferencias que pudieran<br />

existir en la forma <strong>de</strong> guardar los datos en el cliente y en el<br />

servidor. Ello simplifica la codificación <strong>de</strong> clientes y servidores<br />

que pudieran estar operando en entornos heterogéneos.<br />

NFS (Network file system) proporciona un acceso transparente<br />

a los ficheros y a los sistemas <strong>de</strong> ficheros <strong>de</strong> un servidor.<br />

Acce<strong>de</strong> únicamente a partes <strong>de</strong>l fichero que referencia<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

142


un proceso, siendo uno <strong>de</strong> sus objetivos es el <strong>de</strong> proporcionar<br />

un acceso transparente. Significa que cualquier aplicación<br />

cliente que trabaje con un fichero local, podría trabajar<br />

con un fichero NFS, sin ninguna modificación <strong>de</strong>l programa,<br />

cualquiera que sea.<br />

NFS es una aplicación cliente-servidor basada en Sun RPC.<br />

Los clientes NFS acce<strong>de</strong>n a los ficheros <strong>de</strong>l servidor NFS<br />

enviando peticiones RPC.<br />

22.1 Configuración <strong>de</strong> NFS <strong>de</strong>s<strong>de</strong> TUN (MSDOS)<br />

Entrando <strong>de</strong>s<strong>de</strong> el directorio C:\TUN<strong>TCP</strong> y ejecutando<br />

TUN<strong>TCP</strong>, se selecciona la opción «Network File System» o<br />

sistema <strong>de</strong> ficheros <strong>de</strong> red.<br />

Aparece un submenú con una serie <strong>de</strong> opciones, <strong>de</strong> las que<br />

seleccionamos «Nfs, parámetros iniciales». Seleccionamos la<br />

configuración «Standar» que nos proporcionará 2 discos virtuales.<br />

(Depen<strong>de</strong> también <strong>de</strong> la cantidad <strong>de</strong> memoria <strong>de</strong> que<br />

dispongamos). Salimos salvando con F2 y regresamos al<br />

menú anterior.<br />

Seleccionamos ahora el apartado «Setup - Sistema <strong>de</strong><br />

Ficheros». Aquí tenemos que especificar el I<strong>de</strong>ntificador <strong>de</strong><br />

Volumen <strong>de</strong> la unidad <strong>de</strong> disco virtual (por ejemplo<br />

ÍNDICE<br />

22. Protocolos <strong>de</strong> aplicación sobre UDP: NFS<br />

143


«std_nfs»), su nombre (por ejemplo D:) utilizando una letra<br />

<strong>de</strong> unidad no empleada y asegurándose <strong>de</strong> que el parámetro<br />

LASTDRIVE <strong>de</strong>l config.sys está bien dimensionado, el nombre<br />

<strong>de</strong>l servidor sobre el que queremos montarlo (por ejemplo<br />

std), el directorio <strong>de</strong>stinado a nfs por el servidor y nuestro<br />

nombre <strong>de</strong> usuario.<br />

Esta operación se realizará por cada unidad <strong>de</strong>signada. Sin<br />

olvidar pulsar F2 para salvar los cambios, regresamos<br />

mediante «Escape» al símbolo <strong>de</strong>l sistema.<br />

A partir <strong>de</strong> aquí, lanzaremos en primer lugar la aplicación<br />

cliente, mediante el fichero autonfs.bat.<br />

Si no aparece ningún error, estamos en condiciones <strong>de</strong> montar<br />

las unida<strong>de</strong>s virtuales.<br />

C:\TUN<strong>TCP</strong>\mount std_nfs<br />

Disponemos ahora <strong>de</strong> una unidad <strong>de</strong> disco D: en nuestro<br />

ejemplo<br />

22.2 Configuración <strong>de</strong> NFS <strong>de</strong>s<strong>de</strong> UNIX<br />

Los ficheros necesarios son 2 básicamente: /etc/exports y<br />

/etc/hosts. En este último, figura una relación entre los nombres<br />

<strong>de</strong> las estaciones y sus direcciones <strong>IP</strong>. Con el comando:<br />

$more /etc/hosts<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

144


Se pue<strong>de</strong> visualizar el contenido <strong>de</strong> esta tabla.<br />

El fichero /etc/exports está directamente relacionado con la<br />

accesibilidad <strong>de</strong> los usuarios hacia el sistema. Su contenido<br />

podría ser algo similar a:<br />

/usr -access=clientes#exporta sólo a clientes<br />

/usr/local #exporta hacia todo el mundo<br />

/usr2 -access=hermes:zip:tutorial #exporta solamente a<br />

estas máquinas<br />

/usr/sun -root=hermes:zip #proporciona privilegios <strong>de</strong><br />

root a la máquina hermes<br />

/usr/new -anon=0 #proporciona a todas las máquinas privilegios<br />

<strong>de</strong> root<br />

/usr/bin -ro #exporta en sólo lectura para todo el<br />

mundo<br />

/usr/stuff -access=zip,anon=-3,ro #pue<strong>de</strong>n existir varias<br />

opciones en una sola línea<br />

Se pue<strong>de</strong>n ver los distintos modificadores y sus efectos sobre<br />

el acceso <strong>de</strong> los usuarios, cuyos nombres <strong>de</strong>ben <strong>de</strong> haber<br />

sido introducidos previamente en el fichero /etc/hosts.<br />

ÍNDICE<br />

22. Protocolos <strong>de</strong> aplicación sobre UDP: NFS<br />

145


Una vez introducidos en el fichero exports los nombres <strong>de</strong><br />

los directorios que <strong>de</strong>seamos exportar, <strong>de</strong>bemos invocar el<br />

comando:<br />

# exportfs -a<br />

De este modo el «daemon» nfs actualizará su tabla con los<br />

nuevos directorios exportados. El comando:<br />

# exportfs<br />

Nos muestra los directorios actualmente exportados.<br />

22.3 Unix - Unix NFS<br />

Cada servidor dispone a<strong>de</strong>más, <strong>de</strong>l servicio NFS cliente permitiendo<br />

ser ejecutado <strong>de</strong>s<strong>de</strong> un servidor hacia el otro. Ello<br />

significa que podríamos tener <strong>de</strong>ntro <strong>de</strong>l servidor std2 un<br />

subdirectorio <strong>de</strong> std, <strong>de</strong> forma totalmente transparente.<br />

A modo <strong>de</strong> ejemplo vamos a suponer que quisiéramos montar<br />

un directorio nfs sobre la máquina std2, en un directorio<br />

vacío llamado /u0/Unfs. El directorio origen <strong>de</strong> la máquina std<br />

es /u0/nfs1, que contiene una serie <strong>de</strong> datos susceptibles <strong>de</strong><br />

ser copiados en std2.<br />

Primeramente <strong>de</strong>beríamos añadir una línea en el fichero<br />

/etc/exports <strong>de</strong> std conteniendo /u0/nfs1 -anon=0.<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

146


A continuación ejecutar el comando «exportfs -a», para<br />

exportar las modificaciones realizadas sobre exports.<br />

El comando ejecutado en std2, que nos permitirá realizar el<br />

montaje es:<br />

# mount -v -f NFS std:/u0/nfs1 /u0/Unfs<br />

Indica que <strong>de</strong>seamos montar el filesystem /u0/nfs1 <strong>de</strong> la<br />

máquina std (std:/u0/nfs1), sobre el subdirectorio /u0/Unfs<br />

<strong>de</strong> la máquina actual (std2).<br />

Una vez realizada la operación, po<strong>de</strong>mos realizar una copia<br />

<strong>de</strong> los datos en /u0/nfs1 simplemente con:<br />

# cp /u0/Unfs/* /u1/datos<br />

Suponiendo que /u1/datos fuera el <strong>de</strong>stino <strong>de</strong> la copia.<br />

Para <strong>de</strong>shacer la operación, el comando relacionado es:<br />

# umount /u0/Unfs<br />

ÍNDICE<br />

22. Protocolos <strong>de</strong> aplicación sobre UDP: NFS<br />

147


23. Cuestionario 3<br />

1º) ¿Bajo qué tipo <strong>de</strong> programación se encuentra implementado<br />

el servicio NFS?<br />

2º) Se disponen <strong>de</strong> dos máquinas Unix unidas por una conexión<br />

en fibra óptica, <strong>de</strong>nominadas «fobos» y «<strong>de</strong>imos» respectivamente.<br />

Describir la secuencia <strong>de</strong> pasos y comandos necesaria para<br />

montar el directorio /u0/disco <strong>de</strong> la máquina «fobos», sobre el<br />

directorio /u0/tmp <strong>de</strong> «<strong>de</strong>imos».<br />

3º) ¿ Qué se necesita hacer para que el directorio /u0/disco<br />

<strong>de</strong> «fobos» sea exportable únicamente para la máquina «<strong>de</strong>imos»?<br />

4º) ¿ Cuántos sockets consume un cliente en una conexión<br />

FTP?<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

148


5º) Se <strong>de</strong>sea realizar una transferencia <strong>de</strong> archivos entre dos<br />

sistemas Unix conectados a la Internet, «ganíme<strong>de</strong>s» y<br />

«europa», <strong>de</strong>s<strong>de</strong> un tercero <strong>de</strong>nominado «io».<br />

Descríbase algún modo <strong>de</strong> hacerlo.<br />

ÍNDICE<br />

23. Cuestionario 3<br />

149


24. Anexo A<br />

Red: 196.14.162.0<br />

Máscara para todos los interfaces: 255.255.255.224<br />

(3 bits)<br />

Los Bridges conectan re<strong>de</strong>s sólo a nivel <strong>de</strong> Enlace.<br />

Son transparentes al protocolo <strong>IP</strong><br />

Las conexiones punto a punto se agrupan en una única<br />

subred (.192)<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

150


PC Cliente<br />

PC Cliente<br />

PC Cliente<br />

ÍNDICE<br />

.65<br />

.66<br />

.67<br />

Puente (Bridge)<br />

Remote<br />

V24<br />

V24 Mo<strong>de</strong>m<br />

(LAN3)<br />

Mo<strong>de</strong>m<br />

Puente (Bridge)<br />

Remote<br />

.69<br />

PC Cliente<br />

(LAN1)<br />

.68<br />

PC Cliente<br />

Subred.64<br />

.70 .72<br />

PC Cliente PC Cliente<br />

.71<br />

PC Cliente<br />

.74<br />

.37<br />

PC Cliente<br />

24. Anexo A<br />

Subred .96 Subred .128<br />

(LAN2) (LAN5)<br />

.73<br />

.98<br />

PC Cliente<br />

Pasarela (Router)<br />

(B)<br />

.99<br />

.194 .195<br />

PC Cliente<br />

151<br />

.100<br />

.193 V35<br />

V35<br />

.197<br />

V35<br />

Pasarela (Router) - 190.3.2.9<br />

(A)<br />

V35<br />

V35<br />

PC Cliente<br />

Mo<strong>de</strong>m<br />

Mo<strong>de</strong>m<br />

Mo<strong>de</strong>m<br />

Mo<strong>de</strong>m<br />

190.3.2.8<br />

Internet<br />

.129<br />

Mo<strong>de</strong>m<br />

PC Cliente<br />

.1<br />

Mo<strong>de</strong>m<br />

Mo<strong>de</strong>m<br />

PC Cliente<br />

PC Cliente<br />

.34<br />

.130<br />

Subred .192<br />

Pto.a Pto.<br />

.36<br />

(LAN6)<br />

PC Cliente<br />

.2<br />

V35<br />

.198 .4<br />

V35<br />

Pasarela (D)<br />

PC Cliente<br />

.35<br />

PC Cliente<br />

.131<br />

Subred .0<br />

Token Ring<br />

PC Cliente<br />

Pasarela (Router)<br />

Unix<br />

(C)<br />

(LAN4)<br />

Subred .32<br />

.33<br />

PC Cliente<br />

.3<br />

.132<br />

PC Cliente


25. Glosario <strong>de</strong> términos<br />

10Base2<br />

ACK<br />

AM<br />

ARP<br />

Asentimiento Positivo con Retransmisión<br />

AUI<br />

BER<br />

BNC<br />

Broadcast<br />

Cabecera <strong>IP</strong><br />

conexiones punto a punto<br />

CRC<br />

Creación <strong>de</strong> Rutas<br />

datagrama <strong>IP</strong><br />

direcciones <strong>IP</strong><br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

152


Direcciones MAC<br />

EGP<br />

Encaminamiento Dinámico<br />

Ethernet<br />

ETH<strong>TCP</strong>.EXE<br />

fabricantres<br />

FIN<br />

fragmentación<br />

gated<br />

HELLO<br />

hostname<br />

HUB<br />

IEEE802.3<br />

ifconfig<br />

Interface <strong>de</strong> bucle local<br />

Máscara <strong>de</strong> Subred<br />

mensajes ICMP<br />

MTU<br />

netconfig<br />

netstat<br />

NFS<br />

Número <strong>de</strong> asentimiento<br />

Número <strong>de</strong> Puerto<br />

ÍNDICE<br />

25. Glosario <strong>de</strong> términos<br />

153


Número <strong>de</strong> secuencia<br />

NVT<br />

ODI<br />

Packet Driver<br />

particionamiento<br />

PMA<br />

PPP<br />

protocolos <strong>TCP</strong>/<strong>IP</strong><br />

PSS<br />

Puertos efímeros<br />

Redirección ICMP<br />

RFC<br />

R<strong>IP</strong><br />

ripquery<br />

routed<br />

RPC<br />

segmento<br />

servicio <strong>de</strong> flujo <strong>de</strong> octetos<br />

Servidores <strong>de</strong> terminales<br />

Slip<br />

Socket<br />

Sun RPC<br />

SYN<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

154


Tabla <strong>de</strong> hosts<br />

<strong>TCP</strong><br />

Telnet<br />

TOS (Type of service)<br />

tramas Ethernet<br />

Transceptor<br />

TTL (Time to Live)<br />

TUN<strong>TCP</strong>.EXE<br />

UDP<br />

UTP<br />

ventana<br />

ÍNDICE<br />

25. Glosario <strong>de</strong> términos<br />

155


26. Bibliografía<br />

W.R. Stevens<br />

<strong>TCP</strong>/<strong>IP</strong> Illustrated: The Protocols<br />

Addison-Wesley<br />

Craig Hunt<br />

<strong>TCP</strong>/<strong>IP</strong> Network Administration<br />

O’Reilly & Associates, Inc.<br />

Axis & Agix<br />

CLIENT-SERVEUR. Programmation <strong>TCP</strong>/<strong>IP</strong><br />

Editions Laser<br />

Douglas Comer<br />

<strong>TCP</strong>/<strong>IP</strong><br />

InterEditions<br />

ÍNDICE<br />

Luis Miguel Crespo Martínez - Francisco A. Can<strong>de</strong>las Herías<br />

Introducción a <strong>TCP</strong>/<strong>IP</strong><br />

156

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!