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
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