winmx ports

Transcripción

winmx ports
Redes de Ordenadores.
Protocolos
Antonio Salavert Casamor
http://www.tonet.jazztel.es
Página en blanco
2
http://www.tonet.jazztel.es
3
ÍNDICE
1.INTRODUCCIÓN................................................................................................................................................................8
1.1.EL PROCESO DE LA COMUNICACIÓN ........................................................................................................................................8
4.1.1.Esquema genérico..................................................................................................................................................9
4.1.2.Protocolos..............................................................................................................................................................9
4.2.REDES LAN / WAN.......................................................................................................................................................10
4.2.1.LAN......................................................................................................................................................................10
4.3.EJEMPLO DE LAN............................................................................................................................................................11
4.3.1.WAN.....................................................................................................................................................................11
4.3.2.Ejemplo de WAN..................................................................................................................................................12
4.3.3.MAN.....................................................................................................................................................................12
4.4.DISPOSITIVOS DE LAS REDES DE ORDENADORES.....................................................................................................................13
4.5. HALF-DUPLEX Y FULL-DUPLEX...........................................................................................................................................13
5. JERARQUÍA DE NIVELES............................................................................................................................................14
5.1.MODELO OSI (OPEN SYSTEM INTERCONNECTION)................................................................................................................14
5.1.1.¿Qué es?...............................................................................................................................................................14
5.1.2.Nivel de aplicación (7).........................................................................................................................................15
5.1.3.Nivel de presentación (6).....................................................................................................................................16
5.1.4.Nivel de sesión (5)................................................................................................................................................16
5.1.5.Nivel de transporte (4).........................................................................................................................................17
5.1.6.Nivel de red (3).....................................................................................................................................................17
5.1.7.Nivel de enlace (2)...............................................................................................................................................18
5.1.8.Nivel físico (1)......................................................................................................................................................19
5.2.NIVELES TCP/IP.............................................................................................................................................................19
5.2.1.Nivel de aplicación...............................................................................................................................................20
5.2.2.Nivel de transporte...............................................................................................................................................20
5.2.3.Nivel de Internet...................................................................................................................................................21
5.2.4.Nivel de red..........................................................................................................................................................21
5.3.REDES APPLE...................................................................................................................................................................21
5.4.TRANSMISIÓN DE LA INFORMACIÓN.......................................................................................................................................22
5.4.1.Encapsulación......................................................................................................................................................23
5.4.2.Nombres de los mensajes.....................................................................................................................................25
6.DISEÑO DE UN PROTOCOLO......................................................................................................................................26
6.1.LOS CINCO ELEMENTOS DE UN PROTOCOLO............................................................................................................................26
6.2.PRINCIPIOS GENERALES DEL DISEÑO DE UN PROTOCOLO..........................................................................................................26
6.3.DIEZ REGLAS DE DISEÑO.....................................................................................................................................................28
7.NIVEL FÍSICO..................................................................................................................................................................29
8. CONCEPTO DE SEÑAL.................................................................................................................................................30
8.1.TIPOS DE SEÑALES : CONTINUAS Y DISCRETAS........................................................................................................................30
8.2.DOMINIO TEMPORAL Y DOMINIO FRECUENCIAL.......................................................................................................................31
8.2.1.Ancho de banda....................................................................................................................................................32
8.3.TRANSMISIÓN ANALÓGICA Y TRANSMISIÓN DIGITAL.................................................................................................................33
8.3.1.Transmisión analógica.........................................................................................................................................33
8.3.2.Transmisión digital..............................................................................................................................................33
8.3.3.Resumen...............................................................................................................................................................34
8.4.VELOCIDAD DE MODULACIÓN, VELOCIDAD DE TRANSMISIÓN Y CRITERIO DE NYQUIST...................................................................34
8.4.1.Velocidad de propagación...................................................................................................................................34
8.4.2.Velocidad de transmisión.....................................................................................................................................35
8.4.3.Velocidad de modulación.....................................................................................................................................35
8.4.4.Relación entre velocidad de transmisión y de modulación.................................................................................35
8.4.5.Relación entre la velocidad de transmisión y las frecuencias.............................................................................35
http://www.tonet.jazztel.es
4
8.4.6.Criterio de Nyquist...............................................................................................................................................36
8.5.CONCEPTO DE DISTORSIÓN..................................................................................................................................................36
8.6.CONCEPTO DE ATENUACIÓN................................................................................................................................................37
8.7.FUENTES DE RUIDO............................................................................................................................................................39
8.7.1.EMI/RFI (Interferencia electromagnética/interferencia de la radiofrecuencia).................................................39
8.7.2.Diafonía (Crosstalk).............................................................................................................................................41
8.7.3.Ruido térmico.......................................................................................................................................................41
8.8.REFLEXIÓN DE LA SEÑAL....................................................................................................................................................42
9. LÍNEAS DE TRANSMISIÓN..........................................................................................................................................44
9.1.CABLE COAXIAL................................................................................................................................................................44
9.2.PAR TRENZADO.................................................................................................................................................................45
9.3.FIBRA ÓPTICA...................................................................................................................................................................46
10. MODULACIÓN..............................................................................................................................................................49
10.1.CONCEPTO DE MODULACIÓN.............................................................................................................................................49
10.2.TIPOS DE MODULACIÓN....................................................................................................................................................50
10.3.SEÑAL MODULADORA ANALÓGICA......................................................................................................................................51
10.4.SEÑAL MODULADORA DIGITAL...........................................................................................................................................52
11. CODIFICACIÓN DE CANAL......................................................................................................................................54
11.1.CODIFICACIÓN NRZ (NON RETURN TO ZERO)...................................................................................................................55
11.1.1.Codificación NRZ - L ........................................................................................................................................55
11.1.2.Codificación NRZ - I..........................................................................................................................................56
11.2.CODIFICACIÓN AMI BIPOLAR...........................................................................................................................................57
11.3.CODIFICACIÓN MANCHESTER............................................................................................................................................58
11.4.CODIFICACIÓN MANCHESTER DIFERENCIAL..........................................................................................................................59
11.5.CODIFICACIÓN B8ZS......................................................................................................................................................59
12. MODOS DE TRANSMISIÓN.......................................................................................................................................61
12.1. TRANSMISIÓN ASÍNCRONA................................................................................................................................................61
12.1.1.Sincronización de bit o de reloj.........................................................................................................................61
12.1.2.Sincronización de carácter................................................................................................................................62
12.1.3.Sincronización de trama....................................................................................................................................62
12.2. TRANSMISIÓN SÍNCRONA..................................................................................................................................................63
12.2.1.Sincronización de bit..........................................................................................................................................63
12.2.2.Sincronización de carácter................................................................................................................................64
12.2.3.Orientado al bit..................................................................................................................................................64
13. NIVEL DE ENLACE......................................................................................................................................................65
13.1. DETECCIÓN DE ERRORES.................................................................................................................................................65
13.1.1.Paridad simple...................................................................................................................................................66
13.1.2.Código Hamming...............................................................................................................................................66
13.1.3.Paridad longitudinal (LRC)...............................................................................................................................67
13.1.4.CRC (Cyclic Redundancy Check)......................................................................................................................68
13.2. SERVICIOS CONFIRMADOS Y NO CONFIRMADOS....................................................................................................................70
13.3. CONTROL DE ERRORES....................................................................................................................................................71
13.3.1.Control de errores manual.................................................................................................................................71
13.3.2.Echo checking....................................................................................................................................................71
13.3.3.Control de errores automático...........................................................................................................................71
13.3.4.Stop & Wait (Idle RQ)........................................................................................................................................72
13.3.5.Retransmisión continua (Continous-RQ)...........................................................................................................76
13.3.6.Repetición selectiva............................................................................................................................................78
13.3.7.Go-back-N..........................................................................................................................................................81
13.3.8.Piggy-backing....................................................................................................................................................82
13.4. CONTROL DE FLUJO........................................................................................................................................................83
13.4.1.Ventana deslizante (Sliding window).................................................................................................................84
14. REDES LAN (LOCAL AREA NETWORK)................................................................................................................89
14.1.INTRODUCCIÓN...............................................................................................................................................................89
http://www.tonet.jazztel.es
5
14.2. TOPOLOGÍAS.................................................................................................................................................................89
14.2.1.Topología bus.....................................................................................................................................................90
14.2.2.Topología en anillo............................................................................................................................................90
14.2.3.Topología en estrella.........................................................................................................................................90
14.2.4.Topología en estrella extendida.........................................................................................................................91
14.2.5.Estrella compartida y estrella conmutada.........................................................................................................91
14.3. IEEE 802.2................................................................................................................................................................92
14.4.CONMUTADORES / SWITCHES............................................................................................................................................94
14.4.1. Tipo Cut-Through Switching.............................................................................................................................95
14.4.2.Tipo Store-and-Forward Switching...................................................................................................................95
14.4.3.Conmutadores híbridos......................................................................................................................................96
14.4.4.Conmutación a nivel 2 y 3.................................................................................................................................96
15. PROTOCOLOS DE ACCESO AL MEDIO (MAC)...................................................................................................97
15.1.TOKEN RING..................................................................................................................................................................97
15.2. ETHERNET....................................................................................................................................................................99
15.2.1.Nivel físico........................................................................................................................................................100
15.2.2.Nivel MAC........................................................................................................................................................102
15.2.3.Tecnología CSMA/CD......................................................................................................................................103
15.2.4.Dominio de colisión ........................................................................................................................................106
15.2.5.Ventana de colisiones......................................................................................................................................107
15.3. PROTOCOLO FAST ETHERNET.........................................................................................................................................109
15.3.1.Nivel físico........................................................................................................................................................109
15.3.2.Repetidores.......................................................................................................................................................109
16. REDES INALÁMBRICAS...........................................................................................................................................111
16.1.PROTOCOLOS................................................................................................................................................................111
16.1.1.Protocolo 802.11a............................................................................................................................................111
16.1.2.Protocolo 802.11b............................................................................................................................................111
16.1.3.Protocolo 802.11g............................................................................................................................................112
16.1.4.Protocolo 802.11n............................................................................................................................................112
16.2.CANALES DE TRANSMISIÓN.............................................................................................................................................112
16.3.ARQUITECTURA LAN 802.11 ......................................................................................................................................113
16.4.PROTOCOLOS DE ACCESO AL MEDIO 802.11...................................................................................................................114
17.MODELO TCP/IP.........................................................................................................................................................117
17.1.IP V4 - INTERNET PROTOCOL.........................................................................................................................................117
17.1.1.Cabecera IPv4..................................................................................................................................................118
17.1.2. Fragmentación y ensamblado.........................................................................................................................120
17.1.3.Direccionamiento y clases IPv4.......................................................................................................................120
17.1.4.Máscaras..........................................................................................................................................................121
17.1.5.Enrutamiento....................................................................................................................................................122
17.2.IP V6 - INTERNET PROTOCOL VERSION 6..........................................................................................................................124
17.3.ICMP - INTERNET CONTROL MESSAGE PROTOCOL...........................................................................................................127
17.4.ARP - ADDRESS RESOLUTION PROTOCOL........................................................................................................................128
17.5.RARP - REVERSE ADDRESS RESOLUTION PROTOCOL.......................................................................................................130
17.6.TCP - TRANSMISSION CONTROL PROTOCOL.....................................................................................................................131
17.7.UDP - USER DATAGRAM PROTOCOL..............................................................................................................................139
18.REDES CLIENTE/SERVIDOR...................................................................................................................................141
18.1.INTRODUCCIÓN.............................................................................................................................................................141
18.2.ACCESO DEL CLIENTE A LA INFORMACIÓN..........................................................................................................................142
18.3.GESTIÓN DE LAS IDENTIDADES Y DE LOS PERMISOS DE ACCESO.............................................................................................142
18.3.1.Objetivos..........................................................................................................................................................143
18.3.2.Ampliación del Active Directory de Microsoft a entornos ajenos al mismo ..................................................144
18.3.3.La fragmentación de la gestión de las identidades y de los permisos de acceso dentro de un entorno
distribuído ..................................................................................................................................................................145
19.REDES P2P (PEER-TO-PEER)...................................................................................................................................150
19.1.ELEMENTOS DE LAS REDES P2P......................................................................................................................................151
http://www.tonet.jazztel.es
6
19.2.ARQUITECTURA DE LAS REDES P2P.................................................................................................................................151
19.2.1.Modelo híbrido o centralizado.........................................................................................................................151
19.2.2.Modelo P2P puro o totalmente descentralizado..............................................................................................152
19.2.3.Modelo P2P mixto o semicentralizado............................................................................................................152
19.3.COMUNICACIÓN EN LAS REDES P2P.................................................................................................................................153
19.3.1.Búsqueda de pares, contenidos y servicios......................................................................................................153
19.3.2.Tablas Hash Distribuidas (DHT).....................................................................................................................154
19.4.SEGURIDAD..................................................................................................................................................................156
19.5.INFORMACIÓN...............................................................................................................................................................156
19.6.ANCHO DE BANDA.........................................................................................................................................................157
19.7.ALMACENAMIENTO........................................................................................................................................................158
19.8.CICLOS DE PROCESADOR................................................................................................................................................159
19.9.BITTORRENT................................................................................................................................................................159
19.9.1.Interfaz.............................................................................................................................................................160
19.9.2.Implementación................................................................................................................................................160
19.9.3.Publicando el contenido..................................................................................................................................160
19.9.4.Distribución de los usuarios............................................................................................................................161
19.9.5.Selección del fragmento...................................................................................................................................161
19.9.6.Algoritmos de choking.....................................................................................................................................162
19.10.E-MULE...................................................................................................................................................................163
19.10.1.Conexión del cliente al servidor....................................................................................................................164
19.10.2.Conexión cliente a cliente..............................................................................................................................164
19.10.3.Identificación del cliente................................................................................................................................165
19.10.4.Identificación del usuario..............................................................................................................................166
19.10.5.Identificación del fichero...............................................................................................................................166
19.11.SKYPE.......................................................................................................................................................................167
19.11.1.Componentes clave........................................................................................................................................168
19.11.2.Funciones.......................................................................................................................................................169
19.11.3.Inicio de sesión..............................................................................................................................................169
19.11.4.Búsqueda del Usuario....................................................................................................................................170
19.11.5.Establecimiento y desconexión de la llamada...............................................................................................170
20. REDES WAN (WIDE AREA NETWORK)...............................................................................................................171
20.1.INTRODUCCIÓN.............................................................................................................................................................171
20.2.CONMUTACIÓN DE PAQUETES POR CIRCUITO VIRTUAL..........................................................................................................171
20.3.TIPOS DE REDES WAN.................................................................................................................................................173
22.1.TIPOS DE ENLACES........................................................................................................................................................174
22.2.SISTEMAS DE TRANSMISIÓN DIGITAL..................................................................................................................................175
22.3.RDSI (RED DIGITAL DE SERVICIOS INTEGRADOS)...........................................................................................................175
22.4.FRAME RELAY.............................................................................................................................................................179
22.5.ADSL........................................................................................................................................................................180
22.6.MODEMS EN TELEFONÍA MÓVIL......................................................................................................................................184
22.7.CONMUTACIÓN DE PAQUETES POR DATAGRAMA..................................................................................................................185
22.7.1.Enrutador.........................................................................................................................................................186
22.7.2.Protocolo enrutable.........................................................................................................................................186
22.7.3.Protocolos de enrutamiento.............................................................................................................................187
23.ANALIZADORES DE PAQUETES.............................................................................................................................189
23.1.FUNCIONES..................................................................................................................................................................189
23.2.FUNCIONAMIENTO.........................................................................................................................................................189
23.3.MODO PROMISCUO O NO PROMISCUO................................................................................................................................190
23.4.FORMATO DE UN PAQUETE IP.........................................................................................................................................190
23.5.FORMATO DE UN PAQUETE TCP.....................................................................................................................................191
23.6.FORMATO DE UN PAQUETE HTTP...................................................................................................................................192
24.GESTIÓN DE REDES...................................................................................................................................................194
24.1.MONITORIZACIÓN DE LAS REDES......................................................................................................................................194
24.2.GESTIÓN POR NIVELES....................................................................................................................................................195
24.3.GESTIÓN DE ANCHO DE BANDA........................................................................................................................................196
24.3.1.Conocimiento de las líneas de comunicaciones ..............................................................................................197
http://www.tonet.jazztel.es
7
24.3.2.Monitorización Dinámica por Circuito...........................................................................................................197
25.SIMULADORES DE REDES.......................................................................................................................................198
25.1.ELEMENTOS DE UNA SIMULACIÓN DE REDES.......................................................................................................................199
25.2.TIPOS DE SIMULACIONES.................................................................................................................................................200
25.3.NS – NETWORK SIMULATOR...........................................................................................................................................200
25.4.SIMULADOR OMNET++...............................................................................................................................................201
25.5.SIMULADOR GNS3......................................................................................................................................................201
25.6.SSFNET.....................................................................................................................................................................202
25.7.GTNETS....................................................................................................................................................................202
26.PROGRAMANDO EN RED CON PYTHON.............................................................................................................204
26.1.INTRODUCCIÓN.............................................................................................................................................................204
26.2.USO BÁSICO DEL SOCKET................................................................................................................................................204
26.3.CREANDO UN SOCKET....................................................................................................................................................205
26.4.CONECTANDO UN SOCKET Y TRANSFIRIENDO DATOS............................................................................................................206
26.5.DANDO UN NOMBRE AL SOCKET......................................................................................................................................206
26.6.ESCUCHANDO Y ACEPTANDO CONEXIONES........................................................................................................................207
26.7.SOCKETS UDP............................................................................................................................................................207
26.8.CERRANDO EL SOCKET..................................................................................................................................................208
26.9.DISEÑANDO UN SERVIDOR TCP......................................................................................................................................208
26.10.EL CLIENTE TCP.......................................................................................................................................................209
26.11.APLICACIÓN DE TRANSMISIÓN DE UN FICHERO..................................................................................................................209
26.11.1.Envío de un texto desde un cliente a un servidor..........................................................................................209
26.11.2.Envío de un texto desde un cliente a un servidor..........................................................................................210
26.11.3.Envío de un fichero del cliente al servidor....................................................................................................212
http://www.tonet.jazztel.es
8
1. Introducción
Para ampliar los conocimientos que se exponen en este libro, el autor recomienda
los siguientes libros de los que es autor:
–
–
Los protocolos en las redes de ordenadores de Edicions UPC y
Almacenamiento de la información en los ordenadores en
http:www.bubok.es
1.1. El proceso de la comunicación
La comunicación es la consecuencia del intercambio de información entre distintos
agentes. Sin comunicación, no hay posibilidad de intercambio de información. Así
los elementos básicos de una comunicación son:
•
El emisor, es el elemento que envía la información y que genera los
mensajes correspondientes que contienen la información que se quiere
enviar. También al emisor se le conoce como origen de la información a
enviar.
•
Un medio de transmisión, es el elemento a través del cual se envían los
mensajes y que es el elemento básico de comunicación.
•
El receptor, es el elemento que debe recibir la información. Se le conoce
también como elemento destino de la información.
Hay 2 tipos de comunicaciones:
•
•
Un emisor y un receptor.
Un emisor y varios receptores. En este caso cada uno de los receptores
recibirá la misma información procedente del emisor.
Una red de ordenadores nace cuando se dispone de más de 1 ordenador y es
necesario el intercambio de información entre ellos. Sin embargo normalmente la
mínima composición de dos ordenadores, se extiende a muchos ordenadores, así
en la red de redes, que es Internet, son miles los ordenadores interconectados.
Cada ordenador está configurado para funcionar como emisor y como receptor,
dependiendo de los programas que se están ejecutando en ellos.
http://www.tonet.jazztel.es
9
4.1.1.Esquema genérico
Otra forma de definir las redes es basándose en el llamado sistema cliente/servidor
y que consta de los dos elementos siguientes:
-
Clientes, que son los ordenadores que emplean los usuarios de una LAN, y que
son los que solicitan la información almacenada en los servidores.
-
Servidores, que son los ordenadores que contienen la información o recurso
compartido. Estos ordenadores son las que proporcionan los medios para que el
cliente obtenga la información que necesita.
En este tipo de redes, el fallo de un ordenador cliente no afecta a los demás
usuarios. También se conoce a estas redes con el nombre de proceso distribuido.
Las aplicaciones se ejecutan en los ordenadores cliente y en el caso de
aplicaciones cliente/servidor, se comunican con la parte de la aplicación que se
ejecuta en el servidor.
Hay 2 tipos de servidores:
-
servidor dedicado, que solo da servicios y
-
servidor no dedicado que hace de intermediario entre dos clientes.
4.1.2.Protocolos
Los protocolos son los lenguajes que se emplean en las comunicaciones entre los
dispositivos que forman las redes de ordenadores, es decir, son la base del
intercambio de información entre dispositivos.
Según el modelo de referencia OSI, protocolo es aquel conjunto de reglas y
formatos que gobiernan las comunicaciones entre entidades que ejecutan funciones
a un mismo nivel en diferentes sistemas abiertos. Así un protocolo es un conjunto
de normas que se usan para componer los mensajes que contienen la información
a transmitir.
http://www.tonet.jazztel.es
10
Dado que estamos trabajando con redes digitales, la información y estructura de los
protocolos siempre es binaria, es decir, está formada por unos y ceros. Así se dice
que los datos se transmiten de forma empaquetada, y que viajan como mensajes.
4.2. Redes LAN / WAN
Los conceptos de LAN y WAN son esenciales y básicos para entender como se
interaccionan y relacionan los protocolos en las redes de datos.
¿Por qué se han de tener muy claros la distinción entre LAN y WAN? Porque los
protocolos que se emplean son distintos, es decir, si es una WAN, además de los
protocolos de LAN, se utilizan aquellos protocolos de WAN de acuerdo con el tipo
de comunicaciones que se emplee.
Las características básicas que los distingue son:
–
la distancia entre dispositivos
–
los protocolos que se emplean
–
las velocidades de transmisión y
–
los costes asociados
4.2.1.LAN
Una LAN (Local Area Network) consiste en una red de ordenadores sin que exista
entre ellos ninguna línea de comunicaciones propiamente dicha. La comunicación
entre LANs sin líneas de comunicaciones emplea solamente los protocolos de
LANs.
http://www.tonet.jazztel.es
11
En cuanto a las velocidades en LAN son de
Ethernet
10 Mbps, 100Mps, 1 Gbps, 10 Gbps
Token Ring
4 Mbps, 16 Mbps
Bps = bits por segundo
En cuanto a los costes, una infraestructura de LAN es bastante más barata que una
de WAN, en cuanto no se requiere de ninguna línea de comunicaciones.
4.3. Ejemplo de LAN
Una LAN puede ser una sala con un servidor, varias estaciones de trabajo y una
impresora compartida. En esta caso todos los dispositivos estarán conectados a un
concentrador o conmutador.
Esto se puede ampliar en el caso de una empresa que está en un edificio de varias
plantas. En este caso, se requiere como mínimo un concentrador o conmutador por
planta, y entre ellos se pueden unir mediante cable para que todos los dispositivos
de cada planta sean una unidad.
Como se ve no se contempla su acceso a Internet, ya que está conexión se
corresponde a una WAN, ya que se requiere la necesidad de la existencia de una
línea de comunicaciones.
4.3.1.WAN
Una WAN (Wide Area Network) consta de 2 o más LANs conectadas entre si
mediante líneas de comunicaciones. Los protocolos de estas líneas de
comunicaciones son distintos de los que se utilizan en las LANs.
El dispositivo con interfaces de LAN y WAN que comunica una LAN a otra a través
de una línea de comunicación se denomina enrutador (router). En los enrutadores,
cuando la información entra o sale de una interface LAN, se utilizan protocolos de
LAN, pero si son interfaces de WAN, se emplean protocolos de WAN para
comunicarse con el otro extremo. Por está razón estos dispositivos han de poder
convertir internamente la información en base a protocolos de LAN a WAN y
viceversa.
En las comunicaciones, 1 kbps son 1000 bps, 1 Mbps son 1000000 bps y 1 Gbps
son 109 bps.
En una WAN, las velocidades oscilan entre los 33k bits por segundo en líneas
analógicas hasta 2 Mbps en Frame Relay o E1, y ultimamente con ADSL se
http://www.tonet.jazztel.es
12
alcanzan velocidades de hasta 10 Mbps. En el mundo de las comunicaciones
digitales se están alcanzando velocidades superiores pero la relación
precio/velocidad es muy superior a las LAN.
En WAN el precio del ancho de banda es bastante más caro que en LAN.
4.3.2.Ejemplo de WAN
Red corporativa con fábricas o distintos edificios de oficinas dispersos en la
geografía. En cada fábica se dispone de una LAN, pero para poder intercambiar
datos entre ellas, debido a la distancia, su conexión se debe hacer utilizando líneas
de comunicaciones, que soportarán alguno de los protocolos WAN.
4.3.3.MAN
Una MAN (Metropolitan Area Network) es un concepto intermedio entre LAN y
WAN.
En cuanto a distancias se corresponde a un ámbito metropolitano, es decir, de una
gran ciudad o de un campus universitario.
En cuanto a protocolos en general se emplean los de LAN o los de WAN
dependiendo del tipo de enlace que se utiliza. Si el enlace corresponde a una línea
de comunicaciones se emplean protocolos de WAN, de lo contrario se utilizan
protocolos de LAN.
Sin embargo dadas las distancias, siempre acostumbra a haber tramos de cables
de fibra óptica y por tanto susceptible de empleo de protocolos asociados a esta
tecnología.
http://www.tonet.jazztel.es
13
4.4. Dispositivos de las redes de ordenadores
Los dispositivos básicos son los ordenadores, que funcionan como clientes o
servidores, así como las impresoras. Estos dispositivos se conectan a las redes
mediante las tarjetas de red (NIC), que funcionan de acuerdo con los protocolos del
nivel 2 OSI.
Otros dispositivos son:
- repetidores. Funcionan a nivel de hardware, es decir, el nivel 1 OSI,
- concentradores o hubs. Funcionan según los protocolos del nivel 2 OSI,
- conmutadores o switches. Funcionan según los protocolos del nivel 2 OSI,
- puentes o bridges. Funcionan según los protocolos del nivel 2 OSI y
- enrutadores o routers. Funcionan según los protocolos del nivel 3 OSI.
4.5. Half-duplex y full-duplex
El intercambio de datos a través de una línea de transmisión se puede clasificar
como simplex, half-duplex o full-duplex.
La transmisión simplex consiste en la transmisión de las señales en una única
dirección. En las redes de ordenadores no se emplea este tipo de transmisión.
En la transmisión half-duplex solo una de las dos estaciones de un enlace punto a
punto puede transmitir simultáneamente. Equivale a un puente con un solo carril y
con circulación en ambos sentidos.
En la transmisión full-duplex, las dos estaciones pueden enviar y recibir datos
simultáneamente. Siguiendo el mismo ejemplo anterior, ahora el puente tendría 2
carriles, uno para cada sentido de circulación.
http://www.tonet.jazztel.es
5.
14
Jerarquía de niveles
En la actualidad todas las funciones necesarias para una transmisión de datos, se
distribuyen de acuerdo con varios niveles, jeraquizados entre si. Así un protocolo
solo pertenece a uno de estos niveles y se comunica con los protocolos de nivel
superior y de nivel inferior. De esta manera un ordenador necesita tener instalados
tantos protocolos como niveles, y cualquier dispositivo de nivel n, necesita tener
instalados n protocolos. Así se dice que una pila de protocolos estructurada en base
a un conjunto de niveles (con 1 o más protocolos) permite las comunicaciones entre
dos aplicaciones.
Los protocolos son independientes del hardware y del sistema operativo donde
estén funcionando, aunque sus controladores si tienen que ver con el sistema
operativo donde se están ejecutando. Las tarjetas de red dependen del hardware
donde están instaladas, y basicamente dependen del tipo de bus de entrada/salida
al que están asociadas.
Las pilas de protocolos más conocidas son:
-
OSI (Open System Interconnection)
-
TCP/IP (Transmission Control Protocol / Internet Protocol) y
-
AppleTalk de Apple
5.1. Modelo OSI (Open System Interconnection)
5.1.1.¿Qué es?
Este modelo ha sido y sigue siendo la referencia de todos los protocolos de redes
de ordenadores incluso muchas veces en el ámbito de las comunicaciones. Por
esta razón, se recomienda como base para poder organizar y entender los distintos
tipos de protocolos y su ámbito de actuación.
Se trata de un modelo dividido en niveles, cada una de los cuales realiza unas
funciones determinadas. Las razones de esta división de las funciones de una red
de ordenadores son las siguientes:
-
Los niveles dividen los aspectos de las operaciones de red en elementos menos
complejos.
-
Los niveles permiten que los ingenieros especialicen sus esfuerzos de diseño y
de desarrollo en funciones modulares.
-
Los niveles promueven la simetría en las distintas funciones modulares de red
para que trabajen de forma conjunta.
http://www.tonet.jazztel.es
15
-
Los niveles evitan que los cambios en un nivel afecten a otros niveles, de
manera que cada nivel pueda evolucionar de forma diferente.
-
Los niveles dividen la complejidad de la operativa de las redes en operaciones
separadas de más fácil aprendizaje.
Sin embargo, la evolución de los sistemas informáticos y las comunicaciones
asociadas a ellas, hace que en algunos casos este modelo no sea aplicable. De
todas maneras, como modelo de referencia sigue siendo plenamente válido.
En 1978, la Organización Internacional de Estándares (ISO) publicó un conjunto de
especificaciones que describía un sistema de arquitectura de red para interconectar
distintos dispositivos. En 1984, esta misma organización publicó una revisión de
este modelo y lo llamó modelo de referencia de Interconexión de Sistemas Abiertos
(OSI - Open System Interconnection).
Este modelo consta de 7 niveles :
7
Aplicación
Proporciona los servicios de red a las aplicaciones
del ordenador.
6
Presentación
Funciones relacionadas con la representación de
los datos. Conversión, codificación y compresión.
5
Sesión
Funciones de control del diálogo entre clientes
(sesiones).
4
Transporte
Conexiones extremo a extremo. Segmentación
3
Red
Direccionamiento y enrutamiento.
2
Enlace
Acceso al medio.
1
Físico
Transmisión de bits.
En cuanto a los niveles 1, 2, 3 y 4 se les llama niveles de medios y a los niveles 5,
6 y 7, niveles de dispositivo. La frontera entre el nivel de transporte(4) y el nivel de
sesión(5) es en realidad la frontera entre los protocolos del nivel de aplicación y los
protocolos de los niveles más bajos. Mientras los niveles de sesión, presentación y
aplicación tienen que ver con las funciones relativas a la aplicación, los cuatro
niveles más bajos se refieren a los elementos del transporte de la propia red de
datos. A continuación se describen las principales funcionalidades que deben tener
los protocolos que funcionan según el nivel al que pertenecen.
Así en la práctica resulta que el modelo OSI es un modelo teórico y no hay ningún
protocolo que se ajuste de una forma específica a un solo nivel. Los protocolos
existentes en la actualidad se ajustan al modelo OSI de forma aproximada.
5.1.2.Nivel de aplicación (7)
Este nivel consta de las funciones que sirven para comunicar los procesos de
aplicación con los servicios de red. Este nivel representa los servicios a disposición
de las aplicaciones del usuario, como por ejemplo los programas para la
http://www.tonet.jazztel.es
16
transferencia de ficheros (protocolo FTP), para el acceso a base de datos y para el
correo electrónico (protocolo SMTP, MIME, POP3 y IMAP) entre otros muchos.
El nivel de aplicación controla el acceso general a la red, el control de flujo y la
recuperación de errores.
Algunos protocolos de este nivel son: FTP, HTTP, X-Windows, SNMP, SMB,
NetBIOS sobre TCP/IP, Telnet.
5.1.3.Nivel de presentación (6)
El nivel de presentación consta de las funciones que convierten los datos, el vídeo,
el sonido, los gráficos, etc. a un formato adecuado para su transmisión, es decir, es
la conversión de los distintos formatos de datos a un formato común.
Este nivel determina el formato utilizado para intercambiar datos entre equipos en
red. En emisión, las funciones de este nivel convierten los datos desde un formato
enviado por el nivel de aplicación a otro formato intermedio reconocido. En
recepción, las funciones de este nivel convierten el formato intermedio a un formato
útil para el nivel de aplicación de ese equipo. Así las funciones de este nivel de
presentación son las responsable de convertir los formatos, traducir los datos,
codificar los datos, cambiar o convertir el juego de caracteres y expandir los
comandos gráficos.
El nivel de presentación administra también la compresión de datos con el fin de
reducir el número de bits que se necesita transmitir.
Formatos de ficheros gráficos: TIFF, BMP, JPEG, GIF
Codificación de caracteres: ASCII, EBCDIC
Formato de ficheros de vídeo y sonido: MPEG, AVI, WAVE, MIDI, MP3
Es difícil encontrar protocolos que únicamente desarrollen funcionalidades de este
nivel. Lo más habitual es que los protocolos del nivel de aplicación incorporen estas
funcionalidades.
5.1.4.Nivel de sesión (5)
Las funciones del nivel de sesión establecen, administran y finalizan las sesiones
entre dos ordenadores que se están comunicando, es decir, controlan el diálogo
entre dispositivos.
Las funciones de este nivel permiten que dos aplicaciones de dos dispositivos
distintos establezcan, usen y finalicen una conexión llamada sesión. Estas
funciones realizan el reconocimiento de nombres y así como lo relacionado con la
seguridad de la comunicación.
http://www.tonet.jazztel.es
17
Las funciones del nivel de sesión proporcionan la sincronización entre las tareas de
los usuarios mediante unos puntos de control en el flujo de datos. De esta forma, si
la red falla, sólo es preciso retransmitir los datos posteriores al último punto de
control. Las funciones de este nivel también llevan a cabo el control del diálogo
entre los procesos de comunicación, regulando el flujo de transmisión, cuando, por
cuanto tiempo, etc.
Es difícil encontrar protocolos que únicamente desarrollen funcionalidades de este
nivel. Lo más habitual es que los protocolos del nivel de aplicaciones incorporen
estas funcionalidades.
Unos protocolos con funcionalidades de únicamente este nivel serían: NFS
(Network File System), X-Windows, RPC (Remote Procedure Call) y SQL
(Structured Query Language)
5.1.5.Nivel de transporte (4)
Los protocolos de este nivel son los responsables de entregar la información entre
los extremos, es decir, entre el emisor o nodo origen al receptor o nodo destino.
Las funcionalidades de los protocolos de este nivel son:
-
Fragmentar los mensajes largos recibidos de los protocolos de niveles
superiores en unidades estructuradas llamadas segmentos. En la recepción se
ensamblan los mensajes, volviéndose a obtener los mensajes con el mismo
formato en que estaban en el dispositivo origen de este nivel.
-
Establecer la comunicación entre conexiones remotas
-
Enviar los segmentos del origen al destino.
-
Hay protocolos que incorporar un control de errores como el TCP y que por
tanto se dice que estos protocolos son fiables, mientras que otros no es así
como el UDP.
Las funciones de este nivel deben proporcionar un control de flujo y un control de
errores de la transmisión y participar en la solución de los problemas relacionados
con la transmisión y la recepción de mensajes.
El protocolo más extendido de este nivel es el TCP, así como el UDP y el SPX.
También el protocolo NetBIOS/NetBeui realiza funciones de este nivel.
5.1.6.Nivel de red (3)
Los protocolos de este nivel son los responsables de las funciones de
direccionamiento y de control (p.e. enrutamiento) necesarias para mover los datos a
través de la red. También estos protocolos tienen que establecer, mantener y
finalizar las conexiones, incluyendo la conmutación de mensajes, el enrutamiento,
http://www.tonet.jazztel.es
18
la congestión de mensajes, el ensamblaje de mensajes y la traducción de las
direcciones lógicas a direcciones físicas.
Las direcciones lógicas son aquellas que identifican cada una de las interfaces de
los dispositivos y que permiten el direccionamiento de los mensajes. Su sintaxis
varía según del protocolo de nivel de red de que se trate.
El protocolo más extendido de este nivel es el IP (Internet Protocol), así como el IPX
(Internetwork Packet Exchange) en las redes de Novell Netware. El protocolo
NetBIOS/NetBeui realiza funciones de este nivel y el de transporte.
También corresponden a este nivel los protocolos de enrutamiento como son: RIP,
BGP, IGRP y OSPF entre otros.
5.1.7.Nivel de enlace (2)
Los protocolos de este nivel son los responsables de proporcionar el tránsito de
información sobre un medio de transmisión o sobre una tecnología de red. Por esta
razón este protocolo está relacionado con el tipo de acceso al medio y con la
topología de la red. Esto se consigue empaquetando los bits procedentes del nivel
físico en bloques de datos, y enviando éstos con la necesaria sincronización y
orden. Los protocolos de este nivel efectúan la detección y la corrección de errores
que pueden producirse en el nivel físico.
Las direcciones físicas son aquellas que identifican cada una de las interfaces de
los dispositivos y que permiten distinguir unas de otras. En el caso de las redes de
ordenadores, todas y cada una de las tarjetas de red de cada dispositivo, llevan
asociadas un número, establecido de forma única por el propio fabricante. A este
identificación se le conoce como dirección MAC (Media Access Control) y tiene una
longitud de 6 octetos (48 bits). Esta dirección MAC consta de 2 partes:
-
Los primeros 3 octetos (24 bits), corresponden a un número identificativo del
fabricante. Por ejemplo IBM es 10005A. La asignación de esta numeración está
regida por el IEEE.
-
Los restantes 3 octetos, es un número dado por el propio fabricante y que no lo
puede repetir en dos tarjetas o interfaces.
Hay dos formatos para las direcciones MAC: 0000.0c12.3456 y 00-00-0c-12-34-56.
Las funciones de los protocolos de este nivel son :
-
Inicialización. Establecimiento de una conexión activa sobre un camino físico ya
existente.
-
Identificación. Proceso necesario para distinguir un receptor o un transmisor
entre todos los que pueden estar presentes.
-
Sincronización a nivel carácter.
-
Fragmentación de los mensajes.
http://www.tonet.jazztel.es
-
Control de error.
-
Recuperación de condiciones anómalas.
-
Terminación.
-
Control del enlace.
19
El protocolo más extendido de este nivel es el 802.3 o Ethernet. Otros protocolos
son el 802.5 o Token Ring y el FDDI.
En el mundo de las comunicaciones, los protocolos de este nivel son: HDLC, PPP,
SMDS, ATM, xDSL, Frame Relay y RDSI entre otros.
5.1.8.Nivel físico (1)
A este nivel corresponde la determinación de las especificaciones correspondientes
a las características mecánicas, eléctricas y de procedimiento requeridas para
establecer, mantener y desactivar los enlaces físicos. Por ejemplo, a este nivel se
determina las características físicas de los conectores y de los cables que se
emplean en las rede cableadas.
El nivel físico relaciona las interfaces eléctrica, óptica, mecánica y funcional con el
cable o con el medio aéreo.
Sus funciones son :
-
Activación y desactivación de la conexión física.
-
Transmisión de unidades de datos del servicio físico.
-
Control de nivel físico.
-
Sincronización a nivel de bit.
Las especificaciones de este nivel sirven para que los fabricantes de hardware
hagan que sus dispositivos sean compatibles entre si, ya sean codificaciones,
voltajes, conectores, cables, etc.
5.2. Niveles TCP/IP
El Departamento de Defensa de EE.UU. (DoD) creó el modelo TCP/IP porque
necesitaba una red que pudiera sobrevivir ante cualquier circunstancia, incluso una
guerra nuclear. Supongamos que el mundo está en estado de guerra, atravesado
en todas direcciones por distintos tipos de conexiones: cables, microondas, fibras
ópticas y enlaces via satélite. Imaginemos entonces que se necesita que fluya la
información o los datos, organizados en forma de mensajes, independientemente
de la condición de cualquier nodo o red. El DoD desea que sus mensajes lleguen a
destino siempre, bajo cualquier condición, desde un punto determinado a cualquier
otro punto determinado. Este problema de diseño de difícil solución fue lo que llevó
http://www.tonet.jazztel.es
20
a la creación del modelo TCP/IP, que desde entonces se ha transformado en el
estándar a partir del cual se ha desarrollado Internet.
El modelo TCP/IP consta de cuatro niveles: el nivel de aplicación, el nivel de
transporte, el nivel de Internet y el nivel de red. Es importante observar que algunas
de los niveles del modelo TCP/IP poseen el mismo nombre que los niveles del
modelo OSI. El nivel de aplicación tiene diferentes funciones ya sea en el modelo
OSI o en el modelo TCP/IP, aunque se le de el mismo nombre.
Nivel TCP/IP
Nivel OSI
5
Aplicación
5, 6, 7
4
Transporte
4
3
Internet
3
2
Red
2
1
Físico
1
5.2.1.Nivel de aplicación
Los diseñadores del modelo TCP/IP acordaron que los protocolos de nivel superior
deberían incluir las funcionalidades de los niveles de sesión y de presentación del
modelo OSI. Así crearon un nivel de aplicación que maneja los protocolos de alto
nivel y por lo tanto incluya los aspectos de representación, codificación y control de
diálogo. El modelo TCP/IP combina todos los aspectos relacionados con las
aplicaciones en un solo nivel y da por sentado que estos datos están correctamente
empaquetados para el nivel siguiente.
5.2.2.Nivel de transporte
El nivel de transporte se refiere a los aspectos de la calidad del servicio con
respecto a la confiabilidad, al control de flujo y a la corrección de errores. Uno de
sus protocolos, el TCP, ofrece distintas formas de alta calidad para crear
comunicaciones de red confiables, sin problemas de flujo y con un nivel de error
bajo. TCP es un protocolo orientado a la conexión. Mantiene un diálogo entre el
origen y el destino mientras empaqueta la información del nivel de aplicación en
unidades denominadas segmentos. Orientado a la conexión no significa que el
circuito exista entre los ordenadores que se están comunicando, significa que los
segmentos del nivel 4 viajan de un extremo a otro entre dos dispositivos para
comprobar que la conexión existe lógicamente durante un determinado período de
tiempo.
El otro protocolo básico en esta nivel es el UDP, que se explica con detalles más
adelante.
http://www.tonet.jazztel.es
21
5.2.3.Nivel de Internet
La finalidad de las funcionalidades del nivel de Internet es enviar los mensajes
desde un origen de cualquier red, de forma a su destino. La ruta que seguirán a
estos mensajes dependerá de las configuraciones de los nodos intermedios que
son atravesados por estos mensajes.El protocolo que rige este nivel se denomina
Internet Protocol (IP). En este nivel se determina la mejor ruta. Esto se puede
comparar con un sistema postal, así cuando se envía una carta por correo, no se
sabe cómo llega a su destino, ya que existen varias rutas posibles. Lo que le
interesa es que la carta llegue.
De este nivel son los protocolos:
-
ARP/RARP: mapeo de direcciones IP y MAC y viceversa
-
ICMP: control de mensajes de IP
5.2.4.Nivel de red
Es la nivel que se ocupa de todos los aspectos que requiere que un paquete de
nivel de Internet IP pase a través de un enlace físico. Equivale a las funcionalidades
del nivel de enlace y nivel físico del modelo OSI.
5.3. Redes Apple
AppleTalk es el nombre comercial utilizado para identificar las redes locales que
conectan ordenadores Apple Macintosh. Los protocolos que utilizan son propietarios
de Apple Computer. Sin embargo a nivel físico emplean el mismo protocolo
especificado por la IEEE y el modelo de referencia OSI.
La estructura de protocolos es la siguiente:
Presentación
AFP
Sesión
Transporte
ADSP
RTMP
AEP
Red
Enlace
ZIP
ASP
PAP
ATP
NBP
DDP
TokenTalk
EtherTalk
LocalTalk
Protocolos a nivel de enlace
El protocolo EtherTalk cumple las especificaciones del protocolo IEEE 802.3, el
protocolo TokenTalk las del protocolo IEEE 802.5, y FDDI Talk las del FDDI.
http://www.tonet.jazztel.es
22
Sin embargo el LocalTalk es específico de Apple y funciona en una topología de
bus y con el método de acceso CSMA/CA.
Protocolos a nivel de red
El protocolo fundamental es el DDP. Sin embargo los protocolos NBP, ZIP y RTMP
también se pueden considerar de nivel de red en cuanto usan los servicios del DDP.
Este protocolo RTMP también sirve para intercambiarse la información de las tablas
de enrutamiento entre enrutadores periódicamente.
Protocolos a nivel de transporte
Básicamente son dos: el ATP y el ADSP, el primero orientado a conexión y el
segundo de tipo stream, es decir, transmisión sin mensajes de reconocimiento.
Los demás protocolos como los ASP, AFP, PAP y AEP se pueden considerar de
aplicaciones.
5.4. Transmisión de la información
El modelo de referencia OSI describe como fluye la información a través de la red
de los programas de aplicación de un ordenador a otro programa de aplicación en
otro ordenador. Como ejemplo de esta transmisión según el modelo de referencia
OSI, supongamos que el sistema A sea un ordenador, que tiene que enviar
información al sistema B, que es otro ordenador. El programa de aplicación del
sistema A comunica con el protocolo de nivel 7 del sistema A y le transmite la
información que debe llegar al sistema B. A continuación envía esta información al
protocolo del nivel 6 del mismo sistema A y así sucesivamente hasta alcanzar el
protocolo de nivel 1 del sistema A. El nivel 1 es el que pone la información en el
medio físico de la red.
A continuación, esta información llega al sistema B porque están conectados
físicamente. El protocolo del nivel 2 absorbe esta información, verifica que es para
este sistema y a continuación transmite la información al protocolo de nivel 2 del
http://www.tonet.jazztel.es
23
sistema B. Así asciende a través de los protocolos de los distintos niveles del
sistema B en sentido inverso hasta llegar al programa de aplicación del propio
sistema B.
Así se dice que el protocolo de cada nivel del sistema A comunica con el protocolo
de los niveles adyacentes del propio sistema A, y a su vez que el protocolo de cada
nivel del sistema A se debe corresponder con el protocolo del mismo nivel del
sistema B. Así el objetivo principal del protocolo de nivel 1 del sistema A es
comunicarse con el protocolo de nivel 1 del sistema B; el protocolo de nivel 2 del
sistema A comunica con el protocolo de nivel 2 del sistema B y así sucesivamente.
El sistema de niveles del modelo OSI excluye la comunicación directa entre niveles
iguales en distintos sistemas. Cada nivel del sistema A debe sin embargo
relacionarse con los servicios de los niveles adyacentes del sistema A, con el fin de
alcanzar la comunicación del mismo nivel del sistema B.
Asumamos que el nivel 4 del sistema A debe comunicar con el nivel 4 del sistema
B. Para hacer esto, el protocolo de nivel 4 del sistema A debe usar los servicios del
protocolo de nivel 3 del sistema A. El nivel 4 se dice es el usuario del servicio,
mientras que el nivel 3 es el proveedor del servicio. Los servicios del nivel 3
suministran al nivel 4 un punto de acceso (SAP), que es simplemente un punto
donde se intercambian la información.
En el modelo TCP/IP, es exactamente igual, excepto en que hay 5 niveles en vez
de 7.
5.4.1.Encapsulación
Ahora este apartado se centra en el modelo TCP/IP, es decir, un modelo basado en
5 niveles. ¿Cómo es el mensaje que circula por la red a nivel físico? Su contenido
es un conjunto de bits con unos y ceros. Este contenido ha de tener una estructura
bien determinada para que cada protocolo lo entienda y actúe en función de ello.
Así todo mensaje de un protocolo consta de cabecera, datos y control de error.
Cabecera
Datos
Control de error
Volvamos al caso de una aplicación del sistema A que ha de transmitir información
a la aplicación del sistema B. En principio la aplicación del sistema A prepara un
mensaje de acuerdo con el formato del protocolo que se emplea a nivel 7. Por
ejemplo, el envío de un fichero con el protocolo FTP.
Esta información se transmite al protocolo de nivel 4. Un protocolo de nivel 4 sería
por ejemplo el TCP. Ahora el formato del mensaje sería
Cabecera
Nivel 4
Datos
http://www.tonet.jazztel.es
24
El protocolo de nivel 4 envía este mensaje al protocolo de nivel 3, por ejemplo, IP.
Ahora el formato del mensaje es
Cabecera Cabecera
Nivel 3
Nivel 4
Datos
Esto se repite con el nivel 2, con lo que el mensaje queda preparado para
transmitirlo al nivel físico y que por tanto su estructura es
Cabecera Cabecera Cabecera
Nivel 2
Nivel 3
Nivel 4
Datos
Control
de error
Este mensaje llegará con este formato o estructura al dispositivo destino y allí se
deberá proceder al proceso inverso.
El protocolo de nivel 2 del sistema B lee su cabecera y de ella extrae el protocolo de
nivel 3 al que debe transmitir el mensaje.
El protocolo de nivel 3 del sistema B repite el proceso de leer su cabecera y
transmitir su mensaje al protocolo de nivel 4 indicado en su cabecera.
Así llega finalmente la información a la aplicación correspondiente del sistema B.
A continuación se detalla la estructura de un mensaje, obtenida de un analizador de
redes, correspondiente a una red Ethernet, con protocolo de nivel 3 IP y de nivel 4
TCP.
SUMARY
Abs Time
1 15:35:58.5299
Destination
Backbone B
Source
Score
Summary
DLC Ethertype=0800, size=60 by
IP D=[36.54.0.11] S=[36.53.0.41]
TCP D=515 S=1023 SYN SEQ=10139
DLC:
-------------DLC Header ------------DLC:
DLC:
Frame 1 arrived at 15:35:58.5299 ; frame size is 60 (003C hex) bytes.
DLC:
Destination: Station IntrlnOO2C6O, Backbone B
DLC:
Source : Station 3Com 063885, Score
DLC:
Ethertype = 0800 (IP)
DLC:
IP:
---------------- IP Header -----------------IP:
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP:
000. ....
= routine
IP:
...0 ....
= normal delay
IP:
.... 0...
= normal throughput
IP:
---- -0..
= normal reliability
IP: Total length = 44 bytes
IP: Identification = 29539
IP: Flags = ox
IP: .0.. ....
= may fragment
IP: ..0. ....
= last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 14
IP: Protocol = 6 (TCP)
IP: Header checksum = F0CA (correct)
IP: Source address = [36.53.0.41]
IP: Destination address = [36.54.0.11), Lindy
http://www.tonet.jazztel.es
25
IP: No options
IP:
TCP:
--------------- TCP header ------------------------TCP:
TCP:
Source port = 1023
TCP:
Destination port = 515 (Remote print)
TCP:
Initial sequence number = 101396545
TCP:
Data offset = 24
TCP:
Flags = 02
TCP:
..0. ....
= (No urgent pointer)
TCP:
...0 ....
= (No acknowledgment)
TCP:
.... 0...
= (No push)
TCP:
.... .0..
= (No reset)
TCP:
.... ..1.
= SYN
TCP:
.... ...0
= (No FIN)
TCP:
Window = 2048
TCP:
Checksum = 0CEE (correct)
TCP:
TCP:
Options follow
TCP:
Haximum segment size = 1024
Se trata de un mensaje sin datos. El inicio de la línea DLC corresponde al la
cabecera de nivel 2 que en este mensaje corresponde al protocolo Ethernet. El
indicativo de principio de línea IP corresponde a la cabecera del protocolo IP de
nivel 3 y el resto es la cabecera del protocolo TCP de nivel 3.
La cabecera de un nivel contiene una identificación del protocolo del nivel superior.
En este caso en la cabecera de nivel 2 (DLC), el código 0800 corresponde al
protocolo IP de nivel 3. Lo mismo sucede con la cabecera IP, donde se especifica
el protocolo nº 6, que corresponde al protocolo TCP de nivel 4.
5.4.2.Nombres de los mensajes
Es habitual en redes dar un nombre distintos a los mensajes en función del nivel del
protocolo de que se trate. Lo más común es:
-
Mensaje (message) si es de nivel aplicación
-
Segmento (segment) si es de nivel 4
-
Paquete (packet) si es de nivel 3
-
Trama (frame) si es de nivel 2
El término PDU (Protocol Data Unit) es el nombre genérico de los mensajes
pertenezca al nivel que sea el protocolo en cuestión.
http://www.tonet.jazztel.es
26
6. Diseño de un protocolo
6.1. Los cinco elementos de un protocolo
La especificación de un protocolo se compone de cinco partes bien diferenciadas.
Para ser completa, cada especificación debe incluir de forma explícita:
1. El servicio a prestar por el protocolo
2. Los supuestos sobre el entorno en el que se ejecuta el protocolo
3. El vocabulario de los mensajes utilizados para implementar el protocolo
4. La codificación (formato) de cada mensaje en el vocabulario y
5. Las reglas de procedimiento que mantienen la coherencia de los intercambios
de mensajes.
6.2. Principios generales del diseño de un protocolo
Un diseñador se adherirá a la disciplina sólo si a cambio se puede obtener un
producto más fiable, que se pueda demostrar y reproducir. A continuación se
menciona los principios generales de diseño de sonido, que permite entrar en la
segunda fase de desarrollo en el campo de la ingeniería de protocolos.
Uno de los principios es la simplicidad, como es el caso de los protocolos ligeros.
Un protocolo bien estructurado se puede construir a partir de un número pequeño
de piezas bien diseñadas y bien entendidas. Cada pieza realiza una función y la
realiza bien. Para entender el funcionamiento del protocolo debería ser suficiente
comprender el funcionamiento de las piezas en las que se basa y la forma en que
interactúan. Los protocolos que están diseñados de esta manera son más fáciles de
entender y más fáciles de implementar de manera eficiente, y probablemente son
más propensos a ser verificables y mantenibles. Un protocolo ligero es sencillo,
robusto y eficiente. El caso de los protocolos ligeros soporta directamente el
argumento de que la eficiencia y la verificabilidad no son ortogonales, sino
preocupaciones complementarias.
Otro principio es la modularidad basada en una jerarquía de funciones. Un
protocolo que realiza una función compleja se puede construir a partir de piezas
más pequeñas que se interactúan en una forma simple y bien definida. Cada pieza
más pequeña es un protocolo ligero que se puede desarrollar, verificar, implementar
y mantener por separado. Las funciones ortogonales no se mezclan, ya que se
http://www.tonet.jazztel.es
27
diseñan como entidades independientes. Los módulos individuales no hacen
suposiciones acerca del trabajo de los demás, o incluso de su presencia. Por
ejemplo el control de errores y el control de flujo son funciones ortogonales. Ellas se
resuelven mejor por distintos módulos ligeros que son completamente conscientes
de la existencia de los demás. Ellos no hacen suposiciones acerca de la secuencia
de datos, a menos que sea estrictamente necesario llevarlo a cabo en su función.
Un esquema de corrección de errores no debe hacer suposiciones sobre el sistema
operativo, las direcciones físicas, los métodos de codificación de datos, las
velocidades de las líneas, o la hora del día. Esas preocupaciones, que deberían
existir, se colocan en otros módulos, específicamente optimizados para ese
propósito. La estructura resultante del protocolo es abierta, ampliable y modificable
sin afectar el buen funcionamiento de los componentes individuales.
Un protocolo bien construído no es un protocolo con un exceso de especificaciones,
es decir, es un protocolo que no contiene ningún código desmesurado ni imposible
de ejecutar. Un protocolo bien construído no es un protocolo con especificaciones
incompletas. Así un protocolo incompleto puede provocar recepciones no
especificados durante su ejecución. Una recepción no especificada se produce si
llega un mensaje cuando el receptor no lo espera recibir ni puede responder a él.
Un protocolo bien constrído está acotado: no puede exceder los límites conocidos
del sistema, ni sobrepasar la limitada capacidad de las colas de los mensajes. Un
protocolo bien construído ha de tener una estabilidad automática. Si un error
transitorio y arbitrario cambia el estado del protocolo, el protocolo ha de volver
siempre a un estado deseable en un número finito de transiciones, y a continuación
reanudar el funcionamiento normal. Del mismo modo, si un protocolo se inicia en un
estado arbritario del sistema, siempre debe alcanzar uno de los estados previstos
dentro de tiempo finito. Finalmente un protocolo bien construído ha de tener la
capacidad de auto-adaptarse. Por ejemplo, puede adaptar la tasa a la cual envía los
datos y la tasa a la cual el receptor puede recibirlos. Por ejemplo un método de
control de la tasa se puede utilizar para cambiar la velocidad de una transmisión de
datos o su volumen.
Otro principio es la robustez del protocolo. No es difícil diseñar protocolos que
trabajen en circunstancias normales. Es lo inesperado lo que los reta. Esto significa
que el protocolo debe estar preparado para desenvolverse adecuadamente en cada
acción posible y con cada posible secuencia de acciones en todas las condiciones
posibles. El protocolo debe hacer sólo un mínimo de suposiciones sobre su entorno
para evitar la dependencia respecto de las características particulares que podrían
cambiar. Por ejemplo, muchos protocolos de nivel de enlace que fueron diseñados
en la década de 1970 ya no funcionan correctamente si se utilizan en líneas de muy
alta velocidad de datos, en el rango de los Gbp. Un diseño robusto funciona
automáticamente con la nueva tecnología sin necesidad de cambios importantes.
Así la mejor forma de robustez no es diseño sobredimensionado, sino que se debe
añadir la funcionalidad de las nuevas condiciones previstas.
Otro principio es la consistencia del protocolo. Hay algunas formas en las que los
protocolos pueden fallar. Las tres más importantes son:
–
Puntos muertos. Los estados en los que no se puede ejecutar el protocolo,
por ejemplo porque todos los procesos del protocolo esperan condiciones
que no se puedan cumplir.
http://www.tonet.jazztel.es
de
ejecución
28
–
Bucles. Las secuencias
indefinidamente.
que
se
pueden
repetir
–
Finales inadecuados. La finalización de la ejecución de un protocolo sin que
se cumplan las condiciones de finalización adecuadas.
En general, la observancia de estos criterios no se puede verificar mediante
una inspección manual de la especificación del protocolo. Herramientas muy
potentes son necesarias para prevenir o detectar estos fallos.
6.3. Diez reglas de diseño
Estas diez reglas de diseño son:
1. Asegurarse de que el problema está bien definido. Todos los criterios de diseño,
los requisitos y las limitaciones se deben enumerar antes del inicio del diseño.
2. Definir el servicio que se realiza en todos los niveles de abstracción antes de
decidir qué estructuras deben usarse para realizar estos servicios.
3. Diseñar la funcionalidad externa antes de la funcionalidad interna. Primero
considerar la solución como un caja negra y decidir cómo se debe interactuar con
su entorno. A continuación decidir a cómo se puede organizar la caja negra.
Probablemente consta de cajas negras más pequeñas que pueden ser refinadas
de una forma similar.
4. Hacerlo sencillo. Los protocolos complejos son más difícil de verificar su
funcionamiento que los simples. También son más difícil de implementar y son
menos eficientes. Ha de haber pocos problemas realmente complejos en el diseño
del protocolo. Los problemas que aparecen como complejos, son a menudo varios
problemas simples a la vez. El trabajo de los diseñadores es el de identificar los
problemas más simples, separarlos y luego resolverlos de forma individual.
5. No conectar lo que es independiente. Separar las preocupaciones ortogonales.
6. No introducir lo que no es material. No restrinjir lo que es irrelevante. Un buen
diseño ha de ser fácilmente ampliable. Un buen diseño resuelve una clase de
problemas en lugar de una sola instancia.
7. Antes de la implementación de un diseño, construir un prototipo de alto nivel y
verificar que se cumplen los criterios de diseño.
8. Implementar el diseño, medir su rendimiento, y si es necesario, optimizarlo.
9. Comprobar que la implementación final optimizada es la prevista en el diseño de
alto nivel.
10. No saltarse las reglas del 1 a la 7.
http://www.tonet.jazztel.es
29
7. Nivel físico
El nivel físico es el encargado de la transmisión de las cadenas de bits no
estructuradas sobre el medio de transmisión o el medio físico. A este nivel
corresponde la determinación de las especificaciones correspondientes a las
características mecánicas, eléctricas y de hardware requeridas para establecer,
mantener y desactivar los enlaces físicos. Por ejemplo, a este nivel se determina las
características físicas de los conectores y de los cables que se emplean en las
redes. El nivel físico relaciona las interfaces eléctrica, óptica, mecánica y funcional
con el cable, si se trata de redes cableadas.
Sus funciones son :
–
Activación y desactivación de la conexión física.
–
Transmisión de unidades de datos del servicio físico.
–
Control de nivel físico.
–
Sincronización a nivel de bit.
Las especificaciones de este nivel sirven para que los fabricantes de hardware,
hagan que sus dispositivos sean compatibles entre si, ya sean conectores, cables,
etc. Por lo tanto las especificaciones de este nivel están directamente relacionadas
con la topología de la red. Así se desarrollan en los capítulos siguientes, los temas
relacionados con este nivel físico y que son:
–
los conceptos de señal
–
los conceptos de transmisión analógica y digital
–
los medios de transmisión y
–
los tipos de codificación
http://www.tonet.jazztel.es
8.
30
Concepto de señal
El término "señal" se refiere a un voltaje eléctrico, un patrón luminoso o una onda
electromagnética modulada, dependiendo del medio utilizado. Esta señal varía en
función del medio de transmisión de que se trate y se propaga a través del mismo
medio de transmisión. Se caracteriza por ser un valor en función del tiempo s(t), es
decir, su valor varía a lo largo del tiempo. Si esta señal es un voltaje o una
intensidad de corriente, es fácilmente relacionable con la potencia.
8.1. Tipos de señales : continuas y discretas
Señal continua
Es aquella señal en la que su intensidad varía suavemente con el tiempo, es decir,
no presenta discontinuidades. Matemáticamente si s(t) es la función temporal
correspondiente, y a su vez es continua, se cumplirá que limt->a s(t) = s(a) para
cualquier valor de a. Por ejemplo la función s(t)=A sen 2 π fs t es una función
continua.
Señal continua
Ejemplo de señales continuas puede ser la voz, las imágenes de TV, etc.
Un tipo especial de señal continua son las señales periódicas.
Señal discreta
Es aquella señal en la que su intensidad se mantiene constante durante un
determinado intervalo de tiempo, tras el cual la señal cambia a otro valor constante,
es decir, presenta discontinuidades o saltos en el tiempo.
http://www.tonet.jazztel.es
31
Señal discreta
Otro ejemplo es el caso de una onda cuadrada.
Una señal discreta es la utilizada en la transmisión de datos binarios.
8.2. Dominio temporal y dominio frecuencial
Cualquier señal, ya sea continua o discreta, se expresa como una función del
tiempo (dominio temporal) o como una función de la frecuencia (dominio
frecuencial), en tanto en cuanto se puede descomponer como la suma de
frecuencias, cada una de ellas con un factor. Por ejemplo la función temporal s(t) =
A sen 2πfst, tiene su equivalencia en la función frecuencial s(f) = A para f =fs y cero
para las demás frecuencias.
Mediante la transformada de Fourier, se puede descomponer cualquier señal
temporal en una señal constituida por componentes senoidales de distintas
frecuencias, por tanto, cualquier función temporal tiene su equivalencia en una
función frecuencial. Así si s(t) es una función temporal, su función frecuencial es
http://www.tonet.jazztel.es
32
⌠
s(f) =  s(t) e – j 2 π ft dt
⌡
Por tanto, para cada señal se puede decir que hay una función en el dominio
temporal que determina la amplitud de la señal en cada instante de tiempo.
Igualmente, hay una función en el dominio frecuencial que especifica las
frecuencias constitutivas de la señal.
8.2.1.Ancho de banda
Una transmisión siempre se hace a una frecuencia determinada. Sin embargo en la
realidad es imposible transmitir solo con una frecuencia fija. La razón es que
siempre hay distorsiones e interferencias, y la descomposición de la señal en
frecuencias (transformada de Fourier) consta de una frecuencia principal y otras
frecuencias de menor potencia.
El ancho de banda es el rango de frecuencias alrededor de la frecuencia principal y
en la que está confinada la mayor parte de la energía de la señal.
http://www.tonet.jazztel.es
33
Hay distintos criterios para su evaluación, y los más utilizados son
-
el criterio de potencia mitad, equivalente a la banda de los 3 dB
-
el criterio de equivalencia de la señal rectangular
-
el criterio de valor nulo a valor nulo
-
el criterio de potencial fraccional, que es el adoptado por la FCC. Deja fuera el
0,5% por cada extremo, es decir, es el 99%
-
los valores del 35 ó 50 dB
-
el criterio de ancho de banda absoluto, es el equivalente del 100%, por lo que es
utópico.
Si se transmiten todas las frecuencias, el receptor podrá reconstruir fielmente la
señal origen. Si se restringe el rango de frecuencias que se transmiten, la señal a
reconstruir por el receptor diferirá en más o menos con la original. Así en la práctica,
no es ncesario transmitir todas las frecuencias para que el receptor pueda
reconstruir la señal con una fiabilidad suficiente.
8.3. Transmisión analógica y transmisión digital
8.3.1.Transmisión analógica
La transmisión analógica es la transmisión de señales independientemente de su
contenido. Se pueden transmitir señales continuas o discretas. El receptor debe
recibir la señal del transmisor con la máxima fiabilidad.
Si las señales son continuas, se pueden transmitir fácilmente y de una forma poco
costosa en banda base, es decir, sin ningún tipo de modulación. Modulación es la
alteración sistemática de una onda sinusoidal, llamada señal portadora, en función
de las características de otra señal, llamada moduladora. Esta señal es la que
contiene la información que se transmite. El empleo de modulación permite
desplazar el ancho de banda de la señal en banda base hacia otra zona del
espectro como es el caso de la multiplexación por división de frecuencias.
Si la transmisión analógica es de señales discretas, es necesario el empleo de
modems (modulador/demodulador) que convierta las señales discretas en señales
analógicas, antes de realizar su transmisión.
8.3.2.Transmisión digital
La transmisión digital es la transmisión de símbolos con cierto grado de exactitud
en un tiempo determinado. A este intervalo se le llama tiempo de símbolo. La
información son bits, y un grupo de ellos representan a cada símbolo. Un bit tiene
dos estados: 0 y 1. Cada uno de ellos puede equivaler a un voltaje, así por ejemplo
el 0 corresponder a un voltaje positivo +V y el 1 al mismo volyaje pero con signo
negativo –V.
http://www.tonet.jazztel.es
34
En el caso de los símbolos, con n bits, se pueden representar 2n símbolos o a la
inversa, ¿cuántos bits se necesitan para representar M símbolos?
N = log2 M bits
Ahora si a cada símbolo, le ha de corresponder un nivel de tensión, en el caso de
un símbolo representado por 2 bits, una posible combinación de voltajes sería
Símbolo
Tensión
11
+V1
10
+V2
01
-V2
00
-V1
La transmisión de señales discretas es la transmisión característica de las redes de
ordenadores. Con el fin de regenerar la señal, que se atenua a lo largo de un
recorrido, se emplean repetidores.
Si las señales son continuas, primero tienen que ser digitalizadas. Luego se
pueden transmitir tal cual o aplicando algún tipo de modulación.
8.3.3.Resumen
Transmisión analógica
Transmisión digital
Señal continua
En banda base o con Antes de la transmisión, se
modulación.
deben digitalizar las señales
continuas.
Señal discreta
No se usa
Es una transmisión directa
con o sin codificación.
8.4. Velocidad de modulación, velocidad de transmisión y criterio de
Nyquist
8.4.1.Velocidad de propagación
Se define la velocidad de propagación Vp como la velocidad a la que se transmite la
señal a través de un medio de transmisión. Esta velocidad de propagación
determina el tiempo de propagación de la señal y unicamente depende de la
distancia a recorrer entre el emisor y el receptor.
http://www.tonet.jazztel.es
35
Asi si llamamos tp al tiempo de propagación, su valor viene determinado por la
fórmula
tp = distancia / Vp
8.4.2.Velocidad de transmisión
Se entiende por velocidad de transmisión Vt al número de bits que se transmiten
por unidad de tiempo. Su unidad es bits por segundo (bps). Esta velocidad depende
de las características de los equipos de transmisión y recepción.
Si la transmisión de 1 bit dura Tb segundos, la velocidad de transmisión Vt = 1/Tb
bps
Así el tiempo de transmisión de n bits valdrá
t t = n / Vt
8.4.3.Velocidad de modulación
Se entiende por velocidad de modulación Vm al número de símbolos que se
transmiten por unidad de tiempo. Su unidad son los baudios.
Si la transmisión de 1 símbolo dura T s segundos, la velocidad de modulación valdrá
Vm = 1/Ts baudios
8.4.4.Relación entre velocidad de transmisión y de modulación
La relación entre la velocidad de transmisión Vt y la velocidad de modulación Vm es
el número de bits n que se emplean para la representación de un símbolo.
V t = Vm · n
Así si cada bit representa un símbolo, es decir, n = 1, en este caso la velocidad de
transmisión Vt es igual a la velocidad de modulación Vm
De la misma forma con n=2, es decir, que cada símbolo se represente por 2 bits,
entonces Vt = 2 Vm.
8.4.5.Relación entre la velocidad de transmisión y las frecuencias
Si el tiempo de símbolo Ts disminuye, su frecuencia fs aumenta, dado que fs = 1 / Ts,
y por consiguiente aumenta la velocidad de modulación.
Si el tiempo de símbolo Ts aumenta, su frecuencia fs disminuye, dado que fs = 1 / Ts,
y por consiguiente disminuye la velocidad de modulación.
http://www.tonet.jazztel.es
36
8.4.6.Criterio de Nyquist
Según Nyquist, en un sistema sin ruido y dado un ancho de banda Bw, la velocidad
máxima de modulación Vm que se puede transmitir es
Vm = 2 B w
en el caso de señales de un solo nivel. Así con un canal de voz de 3100 Hz, la
velocidad máxima de modulación es 6200 bps.
En el caso de señales multinivel, la capacidad máxima de canal que se necesita es
Cmax = 2 Bw log2 M
donde Vm la velocidad de transmisión y M el número de niveles. Por ejemplo, en el
ejemplo anterior, si M=8, valor frecuente en los modems,
C = 2 · 3100 · log2 8 = 2 · 3100 · 3 = 18600 bps
8.5. Concepto de distorsión
Una señal mientras se transmite y circula através de un medio, varía de forma, con
lo que el receptor no recibe exactamente lo mismo que el emisor ha enviado. A esta
fenómeno se le llama distorsión.
Hay dos tipos de distorsiones: lineal y del retardo.
Distorsión lineal
Es el fenómeno producido porque el módulo de la función de transferencia no es
constante y como consecuencia de lo cual no todas las frecuencias son transferidas
con el mismo valor.
Distorsión del retardo
Es el fenómeno producido porque la velocidad de propagación varía con la
frecuencia de la señal y en consecuencia cada una de las frecuencias no tarda el
mismo tiempo en llegar al destino.
Así si el retardo es muy grande, se puede producir lo que se llama interferencia
intersimbólica (ISI), es decir, puede haber solapamiento de señales de distintas
frecuencias, porque hay frecuencias que llegan antes que la frecuencia base o
principal y otras llegan después de la frecuencia base o principal.
A esta distorsión del retardo, también se le llama dispersión, ya que en este caso
la señal se ensancha con el tiempo. La dispersión se puede solucionar a través del
un diseño adecuado de los cables, limitando su longitud y detectando cuál es la
impedancia adecuada. En el caso de la fibra óptica, la dispersión se puede controlar
http://www.tonet.jazztel.es
37
utilizando luz láser con una longitud de onda muy específica. En el caso de las
comunicaciones inalámbricas, la dispersión se puede reducir al mínimo a través de
las frecuencias que se usan para realizar la transmisión.
Fluctuación de fase
Todos los sistemas digitales disponen de relojes que son los que marcan el ritmo de
procesamiento de sus sistemas. Así cada CPU contiene un reloj que por un lado
marca la velocidad de procesamiento y por otro lado controla la frecuencia de los
bits transmitidos y recibidos. Si el reloj del dispositivo origen no está sincronizado
con el reloj del dispositivo destino, se producirá una fluctuación de fase de
temporización. Esto significa que los bits llegarán un poco antes o después de lo
esperado. La fluctuación de fase se puede solucionar mediante una serie de
complicadas sincronizaciones de reloj, incluyendo sincronizaciones de hardware y
software, o de protocolo.
Latencia
La latencia, también denominada demora, es el tiempo que tarda la señal en llegar
desde el emisor y al receptor.
Esta latencia tiene dos causas principales:
•
la velocidad de propagación y
•
el procesamiento de las señales dentro de los dispositivos. Esto sucede cuando
se trata de un dispositivo de enrutamiento. La función principal de este tipo de
dispositivos es reencaminar una señal que le llega, para a continuación
reenviarla. Por esta razón el dispositivo que recibe la señal, debe analizarla y
esto lleva tiempo. Este tiempo es una latencia.
8.6. Concepto de atenuación
Atenuación es la pérdida de la potencia de la señal como consecuencia de recorrer
una distancia a través de un medio durante una transmisión. Esto significa que si se
trata de un voltaje de una señal de 1 bit, esta señal pierde amplitud a medida que
recorre la distancia a recorrer entre el emisor y el receptor. Una selección cuidadosa
de los materiales y una geometría (forma y posicionamiento) del cable puede
disminuir la atenuación eléctrica, aunque no se puede evitar que se produzcan
pérdidas cuando se trata de una transmisión por cable debido al efecto de la
resistencia eléctrica. La atenuación puede afectar a una red dado que limita la
longitud de los cables de la red a través de la cual se envia un mensaje. Si el cable
es demasiado largo o demasiado atenuante, un bit que se envía desde el origen
puede parecer un bit cero para el momento en que llega al destino.
La atenuación también se produce en las señales ópticas, dado que la fibra óptica
absorbe y dispersa parte de la energía luminosa a medida que el pulso luminoso,
un bit, se desplaza a través de la fibra. Esto se puede reducir considerablemente
mediante el empleo de una longitud de onda determinada. Esto también se puede
http://www.tonet.jazztel.es
38
reducir dependiendo del tipo de fibra utilizada. A pesar de todo la atenuación de la
señal es inevitable.
La atenuación también se produce con las ondas de radio y las microondas, ya que
éstas son absorbidas y dispersadas por moléculas específicas de la atmósfera.
La atenuación At se mide como la relación entre la potencia del emisor Pe y la
potencia del receptor Pr
At = Pe / Pr
La unidad de medida de la atenuación es el decibelio y se define como el valor del
cociente entre dos niveles de señal, tomando a uno como referencia. Así por
ejemplo si tenemos una potencia P con una unidad de medida cualquiera, y otra Pref
con la misma unidad de medida, si queremos expresar su relación en decibelios,
emplearemos la fórmula
P (dB) = 10 log10 P / Pref
Dado el carácter logarítmico del decibelio, la expresión de la atenuación en
decibelios es
At = Pe (dB)- Pr (dB)
Si α es el parámetro de calidad de un cable, es decir, el número de db/km, entonces
At = α · D = Pe (dB) - Pr (dB)
Tres consideraciones respecto a la atenuación:
-
La señal recibida debe tener suficiente energía para que la electrónica del
receptor pueda detectar e interpretar la señal adecuadamente, es decir, la
interprete de forma que coincida con su valor original.
-
Para poder ser reproducida con suficiente fiabilidad, la señal debe conservar un
nivel suficientemente mayor que el ruido, es decir, la relación señal/ruido debe
ser lo más alta posible.
-
La atenuación es una función creciente de la frecuencia.
Con el fin de regenerar esta pérdida de potencia, se instalan los llamados
amplificadores. Son equipos electrónicos que aumentan la potencia recibida por
un factor de ganancia G. En este caso si la potencia de entrada al amplificador es
Pe y la de salida Ps,
G = Ps / Pe o en dB, sería G = Ps - Pe
Así si la potencia de entrada es de 1 mW y la de salida 1 w,
G = 1 / 0,001 = 1000 y en dB, G = 10 log10 1000 = 30 dB
http://www.tonet.jazztel.es
39
8.7. Fuentes de ruido
El ruido es un conjunto de señales no deseadas que interfieren a las señales
eléctricas, ópticas o electromagnéticas que se transmiten. Ninguna señal eléctrica
se produce sin ruido, sin embargo, lo importante es mantener la relación señal/ruido
(S/N) lo más alta posible, de forma que la proporción del nivel de ruido sobre la
amplitud de la señal sea la menor posible, porque de esta manera la distorsión es
menos sensible. En otras palabras, cada bit recibe señales adicionales no
deseadas desde varias fuentes. Demasiado ruido puede corromper un bit, haciendo
que un 1 binario se transforme en un 0 binario, o un 0 en un 1, y por tanto que se
corrompa el mensaje.
Los aparatos que generan ruido son por ejemplo: las luces fluorescentes, las
estufas, las radios, los filtros de aire, los televisores, los ordenadores, los sensores
de movimiento, los radares, los motores, los interruptores, los aparatos de
soldadura, los dispositivos electrónicos de encendido automático de todo tipo,etc.
El ruido puede clasificarse según su origen en
-
ruido impulsivo (EMI, ...)
-
diafonía (crosstalk) y
-
ruido térmico.
El ruido se mide calculando la relación señal/ruido en decibelios. Así se define la
relación señal/ruido como
S/N = 10 log10 (Potencia de señal / Potencia de ruido)
Una relación señal/ ruido (S/N) alta significará una señal de alta calidad.
8.7.1.EMI/RFI (Interferencia electromagnética/interferencia de la
radiofrecuencia)
Las fuentes externas que pueden disminuir la calidad de las señales eléctricas que
se transmiten por un cable son los sistemas de iluminación, los motores eléctricos y
los sistemas de radio. Estos tipos de interferencia pueden generar una interferencia
electromagnética (EMI) y una interferencia de la radiofrecuencia (RFI).
En los cables con varios conductores en cada uno de ellos, cada conductor puede
actuar como una antena. Cuando esto sucede, el conductor absorbe las señales
eléctricas de los demás conductores y de las fuentes eléctricas ubicadas fuera del
cable. Si el ruido eléctrico resultante alcanza un nivel lo suficientemente alto, puede
ser difícil para las tarjetas de red discriminar el ruido de la señal de datos. Esto es
un problema especialmente porque la mayoría de las LAN utilizan frecuencias en la
región de 1-100 MHz, que es la banda de las señales de la radio FM y las señales
http://www.tonet.jazztel.es
40
de televisión y también muchos otros aparatos tienen sus frecuencias operativas en
estas bandas.
Para comprender de qué manera el ruido eléctrico de cualquier origen causa un
impacto en las señales digitales, imaginemos que se desea enviar datos,
representados por el número binario 1011001001101, a través de una red. El
ordenador convierte el número binario en una señal digital. La señal digital se
transmite a través de los medios de la red hacia el destino. El destino como es un
ordenador, estará cerca de un toma de corriente eléctrica que es alimentada por
cables largos neutros y con conexión a tierra. Estos cables actúan como una antena
a efectos del ruido eléctrico. Como el chasis del ordenador destino se utiliza tanto
para la conexión a tierra como para la conexión a tierra de referencia de señal, este
ruido interfiere con la señal digital que recibe el ordenador. Así podría suceder que
el ordenador destino en vez de leer 1011001001101, podría leer la señal como
1011000101101, es decir, que los bits 7 y 8 resultasen cambiados. Evidentemente
el ordenador actuaría de forma difstinta.
A diferencia de los sistemas que utilizan cable de cobre, los sistemas inalámbricos
son particularmente propensos a la interferencia electromagnética y a la
interferencia de la radiofrecuencia.
Para evitar el problema de la conexión a tierra de referencia de la señal, es
importante trabajar en estrecha relación con el contratista eléctrico y la compañía de
electricidad, con el fin de obtener la mejor y la más corta conexión eléctrica a tierra.
Al trabajar con el contratista eléctrico, se debe solicitar la instalación para cada área
de oficina de paneles separados de distribución de electricidad, también conocidos
como disyuntores. Dado que los cables neutros y de conexión a tierra de cada toma
de corriente se juntan en el disyuntor, al tomar esta medida aumentarán las
posibilidades de acortar la longitud de la conexión a tierra. Si bien el instalar
paneles individuales de distribución de electricidad para cada grupo de ordenadores
aumentará el costo primario del cableado eléctrico, esto reducirá la longitud de los
cables de conexión a tierra y limitará varios tipos de ruido eléctrico que enmascaran
las señales.
Hay varias formas de limitar la interferencia electromagnética (EMI) y la
interferencia de la radiofrecuencia (RFI). Una forma consiste en aumentar la
sección de los cables conductores. Otra forma sería mejorar el tipo de aislante
empleado. Sin embargo estos métodos aumentan el tamaño y el costo de los
cables, sin mejorar demasiado la calidad.
Dos de las técnicas que los diseñadores de cables han usado con éxito para
disminuir la EMI y la RFI, son el blindaje y la cancelación. En el caso de un cable
que utiliza blindaje, cada par de hilos o grupo de pares de hilos se recubre de una
malla o un papel metálico. Este blindaje actúa como barrera contra las señales de
interferencia. Sin embargo, al igual que el uso de conductores de mayor sección, el
uso de revestimientos de malla o papel metálico aumenta el diámetro del cable y en
consecuencia también aumentan los costos.
En cuanto a la cancelación, es la técnica más comúnmente empleada para proteger
los cables de las interferencias indeseables. Cuando la corriente eléctrica fluye a
través de un cable, crea un pequeño campo magnético circular a su alrededor. La
http://www.tonet.jazztel.es
41
dirección de estas líneas de fuerza magnética se determina por la dirección en la
cual fluye la corriente a lo largo del cable. Si dos cables forman parte del mismo
circuito eléctrico, los electrones fluyen desde la fuente de voltaje negativo hacia el
destino a lo largo de un cable. Luego los electrones fluyen desde el destino hacia la
fuente de voltaje positivo a lo largo del otro cable. Cuando dos cables de un circuito
eléctrico se colocan uno cerca del otro, los campos magnéticos de un cable son el
opuesto exacto del otro. Así los dos campos magnéticos se cancelan entre sí.
También se cancelarán cualquier otro campo magnético externo. El hecho de
trenzar los cables puede mejorar el efecto de cancelación. Si se usa la cancelación
en combinación con cables trenzados, los diseñadores de cables pueden brindar un
método efectivo para proporcionar un autoblindaje para los pares de hilos dentro de
los medios de la red.
8.7.2.Diafonía (Crosstalk)
Cuando el ruido eléctrico del cable tiene origen en las señales de otros conductores
del cable, se dice que hay diafonía. Cuando dos hilos están colocados uno muy
cerca del otro y no están trenzados, la energía de un hilo puede trasladarse al hilo
adyacente y viceversa. Esto puede provocar ruido en ambos extremos de un cable.
En realidad existen muchas formas de diafonía que se deben tener en cuenta al
desarrollar las redes de ordenadores. En inglés diafonía es NEXT (near-end Xcrosstalk).
El efecto de la diafonía aumenta con la frecuencia, porque a frecuencias más altas,
se propaga más energía. Por el contrario, disminuye con la longitud.
8.7.3.Ruido térmico
El ruido térmico es debido al movimiento aleatorio de electrones dentro de los
cables. Este ruido térmico es inevitable pero por lo general es relativamente
insignificante su valor en comparación con las señales digitales. Se dice que el
ruido es blanco si su densidad espectral es plana para todas las frecuencias.
Según Shanon, en un sistema con ruido, la capacidad máxima del canal, en bps,
es la máxima velocidad a la que se puede transmitir la información con una
probabilidad de error acotada. Es decir Shannon amplía en trabajo de Nyquist a
sistemas con ruido y que por tanto se ajustan más a la realidad.
Así la definición de capacidad máxima de canal es
C = Bw log2 (1 + S/N )
siendo Bw el ancho de banda en hz y S/N la relación señal / ruido en valores
absolutos.
Si la velocidad de transmisión Vt es inferior a la capacidad de canal C, se puede
encontrar un esquema de codificación con una probabilidad de error acotada.
http://www.tonet.jazztel.es
42
Si la velocidad de transmisión Vt es superior a la capacidad de canal C, no es
posible transmitir información sin errores.
Por ejemplo, supongamos que tenemos un canal telefónico con un ancho de banda
Bw de 4 kHz y una relación señal/ruido de 30 dB. Con el fin de aplicar la fórmula de
Shanon, primero debemos transformar el valor de la relación señal/ruido a valores
absolutos.
30 = 10 log10 (S/N) por tanto 3 = log10 (S/N) y en consecuencia S/N = 1000
C = 4000 log2 (1 + 1000) = 4000 log2 1001 = 4000 · ( log10 1001 /log10 2)
C = 4000 · (3,000434 / 0,301030) = 39869 bps
Este es el límite de un canal telefónico.
8.8. Reflexión de la señal
Para comprender la reflexión de una señal, nos tenemos que imaginar una soga
extendida y sostenida por una persona en cada extremo. Luego imaginemos que
una persona le envía a la otra persona un "pulso" o un mensaje de 1 bit. Si se
observa cuidadosamente, se verá que una pequeña onda (pulso) vuelve (se refleja)
hacia el que originó el pulso.
Esta reflexión se produce en las señales eléctricas. Cuando los pulsos de voltaje, o
bits, tropiezan con una discontinuidad, se pueden producir reflexiones de la energía.
Si no se controla cuidadosamente este efecto, esta energía puede interferir con bits
posteriores. Recordemos que aunque en este momento estamos considerando sólo
1 bit a la vez, en las redes reales se envian millones y miles de millones de bits por
segundo, lo que requiere tener en cuenta este pulso de energía reflejado. Según el
cableado y las conexiones que utiliza la red, las reflexiones pueden o no ser un
problema.
La reflexión también se produce en el caso de las señales ópticas. Las señales
ópticas reflejan si tropiezan con alguna discontinuidad en el medio, como en el caso
de un conector enchufado a un dispositivo. Este efecto se puede apreciar de noche,
al mirar a través de una ventana. Usted puede ver su reflejo en una ventana aunque
la ventana no es un espejo. Parte de la luz que se refleja desde su cuerpo se refleja
en la ventana. Este fenómeno también se produce en el caso de las ondas de radio
y las microondas, ya que detectan distintas capas en la atmósfera.
Para un funcionamiento óptimo de la red, es importante que los medios de
transmisión tengan una impedancia específica para que concuerden con los
componentes eléctricos de las tarjetas de red. A menos que los medios de
transmisión tengan la impedancia correcta, la señal experimentará una determinada
reflexión y se creará la interferencia correspondiente. A continuación se pueden
producir múltiples pulsos reflejados. Ya sea que el sistema sea eléctrico, óptico o
inalámbrico, la falta de acoplamiento en cuanto a la impedancia puede provocar
http://www.tonet.jazztel.es
43
reflexiones. Si se refleja suficiente energía, un bit que puede tener dos estados 0 ó
1, se pueden confundir debido a toda la energía adicional que se genera a su
alrededor.
http://www.tonet.jazztel.es
9.
44
Líneas de transmisión
La línea de transmisión es el camino físico a través del cual se propaga la señal. La
transmisión de datos entre un emisor y un receptor siempre se realiza a través de
una línea de transmisión. Los medios de transmisión se pueden clasificar como
guiados y no guiados.
En los medios guiados, las ondas se transmiten confinándolas a lo largo de un
medio físico, tales como pares trenzados, cables coaxiales y fibras ópticas. Por el
contrario, los medios no guiados proporcionan una forma de transmitir las ondas
electromagnéticas pero sin encauzarlas, como por ejemplo en la propagación a
través del aire, el mar o el vacío.
Los medios guiados pueden ser:
•
con cable de cobre: coaxial o par trenzado
•
de fibra óptica: multimodo y monomodo
Los medios no guiados son por ejemplo las redes inalámbricas, las emisiones de
radio y TV, y las transmisiones via satélite.
9.1. Cable coaxial
El cable coaxial está formado por un núcleo de cobre rodeado por un aislante, una
malla metálica que hace de apantallamiento y una cubierta exterior. El
apantallamiento protege la señal transmitida contra las interferencias de señales
externas indeseadas o ruidos. El cable coaxial es más robusto frente a las
interferencias y a la atenuación que el par trenzado. El blindaje forma parte del
circuito de datos.
http://www.tonet.jazztel.es
45
Hay 2 tipos básicos de cable coaxial:
-
Fino. Tiene un grosor de 6 mm y se conecta directamente a las tarjetas de red.
La distancia recomendable máxima es de 185 m. y una impedancia de 50 ohm.
-
Grueso. Tiene un grosor de 12 mm. y su distancia máxima recomendable es de
500 m. También tiene una impedancia. 50 ohm. No se conecta directamente a
las tarjetas de red, por lo que utiliza un transceptor, que consiste en una caja
que pinza al coaxial grueso por un lado, y por el otro tiene un conector, al cual
se conecta el cable coaxial a la tarjeta de red. Este conector es conocido como
AUI.
Los conectores de los cables coaxiales son conocidos como BNC (British Naval
Connector), y hay de 3 tipos: cilíndrico, en T y terminador.
9.2. Par trenzado
El cable de par trenzado más sencillo está formado por 2 conductores de cobre
enttrelazados entre sí y con una cubierta aislante.
Hay 2 tipos: sin apantallar (UTP) y apantallados (STP). El UTP tiene una
impedancia de 100 ohm y el STP de 150 ohm. El cable STP, a diferencia del cable
coaxial, la malla de apantallamiento no forma parte del circuito de datos.
El cable apantallado STP mejora la respuesta a las interferencias respecto al UTP,
pero por el otro lado disminuye el ancho de banda máximo soportado.
Sus especificaciones corresponden a la norma 568 de EIA/TIA, y de acuerdo con
ésta hay 7 categorías:
-
Categoría 1. Empleado solo en voz.
-
Categoría 2. Consta de 4 pares trenzados y solo se recomiendan hasta 4 Mbps.
-
Categoría 3. Consta de 4 pares trenzados y solo se recomiendan hasta 10
Mbps.
-
Categoría 4. Consta de 4 pares trenzados y solo se recomiendan hasta 16
Mbps.
-
Categoría 5. Consta de 4 pares trenzados y solo se recomiendan hasta 100
Mbps.
-
Categoría 6. Consta de 4 pares trenzados y solo se recomiendan hasta 250
Mbps.
-
Categoría 7. Consta de 4 pares trenzados y solo se recomiendan hasta 600
Mbps.
Se recomiendan distancias máximas de 100 m.
Los conectores que se emplean son el RJ-11 de 4 hilos y el RJ-45 de 8 hilos.
http://www.tonet.jazztel.es
46
Tabla de atenuaciones máximas en dB de un cable de 305 m. a 20ºC
Frecuencia (Mhz)
1
4
10
16
20
25
100
Categoría 3
7,8
17
30
40
-
Categoría 4 Categoría 5
6,5
6,3
13
13
22
20
27
25
31
28
32
67
9.3. Fibra óptica
Este cable consiste en un núcleo, que es la fibra óptica propiamente dicha, y un
revestimiento o cladding. No solo se fabrican cables de una sola fibra, sino también
agrupaciones de cables de más de una fibra. Este medio físico consiste en la
transmisión de la información mediante la luz. En la actualidad hay de 2 tipos:
monomodo y multimodo.
El término multimodo indica que pueden ser guiados muchos modos o rayos
luminosos cada uno de los cuales sigue un camino distinto dentro de la fibra óptica.
Las fibras multimodo son las habituales y tienen un diámetro del núcleo superior a
10 micras. Su distancia máxima recomendada es de 10 km.
Las fibras monomodo solo permiten la propagación de un único modo o rayo, el
cual se propaga directamente sin reflexión. Estas fibras tienen un diámetro del
núcleo inferior a 10 micras. Se recomienda distancias máximas de 100 Km.
Las características ópticas, geométricas y de transmisión se recogen en las
recomendaciones del CCITT, tales como las G.651 y G.652
http://www.tonet.jazztel.es
47
Sus ventajas son:
-
bajas pérdidas, y en consecuencia necesidad de menor número de repetidores
-
gran anchura de banda, y en consecuencia bajo coste por canal
-
resistencia a radiaciones e inmunidad a las interferencias electromagnéticas, es
decir, no necesita apantallamiento
-
estable con la temperatura
-
bajo precio
Sus inconvenientes son:
-
necesidad de radios de curvatura amplios para disminuir de forma importante las
atenuaciones
-
difícil de empalmar (conectorización y empalmes). Tipos: empalme, fusión,
mecánico, pigtails
-
difícil de intervenir en cuanto a reparaciones.
En cuanto a los conectores, existen básicamente 6 tipos:
-
SMA. Anclaje por rosca y sólo se utiliza en fibras multimodo. Pérdidas de 1 dB
en 50/125 micras.
-
Bicónico. Anclaje por rosca. Pérdidas de 0,6 dB en 50/125 micras.
-
ST. Anclaje por bayoneta. Pérdidas de 0,3 dB en 50/125 micras.
-
Mini BNC. Anclaje por bayoneta y sólo se utiliza en fibras multimodo. Pérdidas
de 0,7 dB en 59/125 micras.
-
FC/PC. Anclaje por guía y rosca. Pérdidas de 0,1 dB en 50/125 micras.
-
SC. Anclaje por push-pull. Pérdidas de 0,3 dB en 50/125 micras.
http://www.tonet.jazztel.es
48
En la actualidad lo caro son las interfaces, y hay 2 tipos de focos de emisión:
-
LED para fibra multimodo y
-
Láser para fibra monomodo.
La atenuación en las fibras ópticas es producida por tres causas: dispersión, debida
a defectos microscópicos de la fibra; absorción, debida a materiales no deseados
de la fibra y flexión debida a las curvaturas.
A continuación se expone un ejemplo del cálculo de una transmisión por fibta
óptica. Se trata de un emisor con una potencia de -14 dB y un receptor con una
sensibilidad de -29 dB. Entre ellos se ha tendido un cable de fibra óptica de 2500
metros, habiendo 4 empalmes por fusión en este tramo. Los conectores que se
emplean son ST y se calcula el margen del diseño. Para ello es necesario el cálculo
de las pérdidas totales.
Potencia de transmisión
-14 dB
Sensibilidad del receptor
-29 dB
Ganancia disponible del sistema:
15 dB
4 empalmes por fusión (0.1 dB cada uno):
0.4 dB
2500 metros de cable de fibra óptica (3.5 dB/Km):
2 conectores ST (0.5 dB máx. por conector):
Total de pérdidas:
Margen de diseño:
8.75 dB
1.0 dB
10.15 dB
4.85 dB
Como podemos ver disponemos de 4.85 dB de margen. Es recomendable que se
disponga de un margen de 3 dB, ya que los valores utilizados para las pérdidas
pueden variar debido a efectos de temperatura, extensiones del enlace, empalmes
adicionales debido a restauraciones de emergencia.
http://www.tonet.jazztel.es
49
10. Modulación
10.1.Concepto de modulación
La modulación consiste en modificar la onda senoidal correspondiente a la
frecuencia base, llamada señal portadora, por distintos parámetros o la
combinación de varios de ellos.
Los parámetros posibles en cuanto a generar una modulación son: la amplitud, la
frecuencia y la fase.
Modulación por amplitud
En una onda modulada por amplitud, la amplitud de las oscilaciones de
radiofrecuencia se varía de acuerdo con la información que se quiere transmitir.
Modulación por frecuencia
En la modulación por frecuencia, se varía la frecuencia instantánea de la onda de
radiofrecuencia de acuerdo con la señal que se desea transmitir, mientras que se
mantiene constante la amplitud de la onda. Por ejemplo, si se quiere transmitir una
onda senoidal de 500 Hz por medio de la modulación por frecuencia de una
portadora de 1.000.000 Hz, se variará la frecuencia instantánea entre 1.000.010 y
999.990 Hz a razón de 500 Hz.
La agrupación de varias señales con frecuencias centrales muy cercanas permite la
transmisión simúltanea y diferenciada de estas señales a través de un mismo medio
de transmisión. A esto se le llama multiplexación por división de frecuencias (FDM).
http://www.tonet.jazztel.es
50
Cada una de las señales que constan de una frecuencia central y un pequeño
rango de frecuencia a su alrededor se la llama canal.
Modulación por fase
Una onda modulada por fase es una onda en la cual se varía el valor de la fase de
referencia de modo que su magnitud sea proporcional a la amplitud instantánea de
la señal moduladora.
10.2.Tipos de modulación
El cuadro resumen de los distintos tipos de modulaciones en comunicaciones es el
siguiente:
Señal moduladora
Analógica
Señal
Análogica
portadora
Digital
Banda base
Digital
Banda base
Modulaciones lineales: AM, FSK
ASK
DBL, BLU, BLV, QM
PSK
Modulaciones angulares: PM DPSK
QPSK
y FM
MPSK
QAM
TCM
PAM, PDM
No es modulación.
DM
DPCM
Modulaciones
digitales
adaptativas
http://www.tonet.jazztel.es
51
10.3.Señal moduladora analógica
Modulaciones lineales
AM: Modulación de amplitud. La amplitud de la señal es en función de la señal
moduladora. Se utiliza en radiofusión y tiene el inconveniente de que es muy
sensible al ruido.
DBL: Modulación de doble banda lateral. En inglés, DSB. Es como la anterior, con
la diferencia de que no se transmite la señal portadora.
BLV: Modulación de banda lateral única En inglés SSB. Es como la DBL anterior,
pero que en este caso se filtra una de las 2 partes del espectro. Esto conlleva la
necesidad de un ancho de banda más pequeño. Se utiliza mucho en la
multiplexación por frecuencia para telefonía.
BLV: Modulación de banda lateral vestigial. En inglés, VSB. Es como la anterior,
pero en la parte filtrada, se deja algo de señal, lo que facilita su demodulación.
QM: Modulación en cuadratura. Con esta modulación se pueden transmitir 2
informaciones al mismo tiempo. En este tipo de modulación, el problema es la
sincronización de las 2 informaciones, dado que esta modulación se basa en el
ángulo de fase de la señal.
Modulaciones angulares
PM: Modulación de fase
FM: Modulación de frecuencia. Tiene mejor relación señal/ruido que la AM, pero
necesita de mayor ancho de banda.
Modulación digital
Consiste en la conversión de una información analógica en una secuencia de
caracteres discretos.
Esto consta de 2 operaciones fundamentales: el muestreo y su cuantificación.
PAM (Pulse Amplitude Modulation) : modulación analógica por impulsos en función
de su amplitud. Es poco utilizada por ser muy sensible a la perturbaciones.
PDM (Pulse Duration Modulation) : modulación analógica por impulsos en función
de su duración.
PPM (pulse Position Modulation) : como la PDM, pero la duración de los impulsos
es más corta.
PCM (Pulse Code Modulation) : Modulación por impulsos codificados. Consiste en
un muestreo por frecuencia y una cuantificación de M niveles. Esta técnica se utiliza
para codificar las señales analógicas telefónicas, por ejemplo, la banda de voz de
http://www.tonet.jazztel.es
52
300 Hz a 3400 Hz, y se muestrea con una frecuencia de 8 kHz y 256 niveles.
También se utiliza en la transmisión de música y de TV.
DM : Modulación Delta. Se caracteriza porque su velocidad de transmisión coincide
con la frecuencia de muestreo.
DPCM : Modulación PCM diferencial.
10.4.Señal moduladora digital
Banda base
Es el caso en que la señal de datos se envía directamente a la línea.
Modulación FSK ( Frequency-Shift Keying)
Es una modulación por desplazamiento de la frecuencia. Solo se puede emplear
para baja velocidad, máximo 7200 bps.
Modulación ASK (Amplitud-Shift Keying)
Es una modulación por desplazamiento de la amplitud. No se utiliza por ser muy
sensible a los ruidos. Velocidad máxima 1200 bps.
A veces se usa en conjunción con PSK y FSK.
Modulación PSK (Phase-Shift Keying)
Es una modulación por desplazamiento de fase y por esta razón solo se puede
utilizar en sistemas síncronos, porque se deben sincronizar las fases del emisor y
del receptor. Se alcanzan velocidades de hasta 7200 bps.
Modulación DPSK (Differential Phase-Shift Keying)
Es una modulación por desplazamiento de fase diferencial, es decir, en este caso,
no se toman los valores absolutos de fase sino sus diferencias. Esta modulación
facilita la sincronización y es poco sensible al ruido. Su velocidad habitual de
transmisión es de 1200 bps.
Modulación QPSK (Quadrature Phase-Shift Keying)
Es una modulación de fase en cuadratura o modulación cuatrifásica diferencial.
Modulación MPSK (Multi Phase-Shift Keying)
Es una modulación multifásica.
http://www.tonet.jazztel.es
53
Modulación QAM (Quadrature Amplitude Modulation)
Es una modulación de amplitud en cuadratura. Se utiliza en los modems con
recomendación V.29
Modulación TCM (Trellis Coded Modulation)
Esta modulación es análoga a la QAM, pero antes de modular se hace una
codificación. Esta modulación se usa en la recomendación V.32
http://www.tonet.jazztel.es
54
11. Codificación de canal
El elemento básico de la información de las redes de datos es el dígito binario 1,
denominado bit o pulso. Un bit, en un medio eléctrico, es una señal eléctrica que
corresponde al 0 binario o al 1 binario. Esto puede ser tan sencillo como 0 voltios
para el 0 binario y +5 voltios para el 1 binario, o una codificación más compleja.
En el caso de las señales ópticas, el 0 binario se codifica como una intensidad baja,
o sin luz (oscuridad). El 1 binario se codifica como una intensidad luminosa alta
(brillo) o con otros modelos más complejos.
En el caso de las señales inalámbricas, el 0 binario podría ser una ráfaga breve de
ondas y el 1 binario podría ser una ráfaga de ondas de mayor duración, u otro
modelo más complejo.
En la práctica, estos bits se transmiten codificados siguiendo distintas técnicas de
codificación.
Esta técnicas se pueden agrupar en dos tipos:
-
codificaciones digitales. En estos casos se emplean señales discretas de baja
frecuencia mediante dispositivos del tipo paso bajo.
-
modulaciones digitales. En estos casos se emplean señales continuas y los
dispositivos pueden ser de paso bajo o de paso banda. Si son de paso bajo sólo
podrán pasar las frecuencias bajas, y si es de paso banda, es un rango de
frecuencias concreto y determinado. Estas son propias de los sistemas de
comunicaciones.
Las codificaciones digitales sin modulación son las que se emplean en las
transmisiones de las redes de ordenadores cableadas siendo sus características
más importantes:
-
El ancho de banda Bw que utilizan. Recordemos los conceptos de velocidad de
modulación y velocidad de transmisión. La ausencia de componentes de altas
frecuencias significa que se necesita menos ancho de banda para su
transmisión.
-
La robustez de la señal.
-
Influencia frente al ruido medido con el concepto de la relación señal/ruido
(SNR).
-
La facilidad de sincronización. Si ayudan o no a sincronizar el reloj de los
dispositivos.
-
La necesidad de envío de señales con o sin componentes continuas.
Las codificaciones digitales más habituales son : NRZ, AMI bipolar, Manchester y
B8ZS. También se usan otras como el 4B/5B en FDDI, el HDB3, etc.
http://www.tonet.jazztel.es
55
11.1.Codificación NRZ (Non Return to Zero)
La codificación NRZ, código sin retorno a cero, es la codificación más sencilla.
En general para transmitir un bit (0 o 1), es suficiente codificar un valor con una
señal alta y el otro valor con una señal baja, por ejemplo +5 o +3,3 V para el 1
binario y 0 V para el 0 binario. En el caso de las fibras ópticas, el 1 binario puede
ser un LED o una luz láser brillante, y el 0 binario la oscuridad o sin luz. En el caso
de las redes inalámbricas, el 1 binario puede significar que hay una onda portadora
y el 0 binario que no hay ninguna portadora.
Un inconveniente de esta codificación es que no se puede distinguir el estado de
reposo o el de no transmisión con la transmisión de un cero. Para ello es
conveniente usar un tercer nivel y esto es lo que incorpora la codificación NZR,
donde un 0 es una señal alta (+V) y el 1 una señal baja (-V) y el estado de no
transmisión es por ejemplo 0 V.
Estado
Tensión
Reposo
0
0
+V
1
-V
Las codificaciones NRZ son las más fáciles de implementar y además se
caracterizan por hacer un uso eficaz del ancho de banda. Se usan con frecuencia
en las grabaciones magnéticas más que en aplicaciones de transmisión de señales.
Hay de dos tipos. NRZ - L y NRZ – I
11.1.1.Codificación NRZ - L
El significado de NRZ-L es Non Return to Zero Level. En este caso, un bit 0 se
codifica como un nivel de tensión alto (+V) y un bit 1 con un nivel de tensión bajo (V).
Estado
Tensión
Reposo
0
0
+V
1
-V
http://www.tonet.jazztel.es
56
A continuación hay un ejemplo de codificación de la cadena 01001100011
+V
-V
0
1
0
0
1
1
0
0
0
1
1
Sus características son:
-
Fácil de implementar.
-
Robusto frente al ruido por su componente continua.
-
No tiene capacidad de sincronización.
-
Posibilidad de pérdida de la polaridad de la señal. Si se empleara una
codificación diferencial sería más difícil esta pérdida, ya que en este caso la
señal se codifica a partir de los elementos de señal adyacentes.
11.1.2.Codificación NRZ - I
El significado de NRZ-I es Non Return to Zero Invert on ones. En este caso, un bit 0
se codifica como sin transición al principio del intervalo del bit y un bit 1 como una
transición al principio del intervalo del bit.
Estado
Tensión
Reposo
0
0
Sin cambio
1
Con cambio
Antes ->
Después
0
0
1
No cambia No cambia
1
Cambia
Cambia
A continuación hay un ejemplo de codificación de la cadena 01001100011
+V
-V
0
1
0
0
1
1
0
0
0
1
1
http://www.tonet.jazztel.es
57
La codificación NRZ-I es un ejemplo de codificación diferencial. En la codificación
diferencial, en lugar de determinar el valor absoluto, la señal se decodifica
comparando la polaridad de los elementos de señal adyacentes.
Sus características son:
-
Es igual a una componente continua en el caso de una cadena de ceros
-
Sin problemas con la polaridad debido al empleo de codificación diferencial.
-
Mejora la sincronización con los unos pero no con los ceros.
11.2.Codificación AMI bipolar
Las codificaciones bipolares son de tipo multinivel, es decir, usan más de dos
niveles de señal. El significado de la AMI bipolar es bipolar with Alternative Mark
Inversion. En este caso, un bit 0 se codifica como la ausencia de señal, es decir, 0
voltios y un bit 1 como nivel +V o -V, alternando según los unos sucesivos.
Estado
Tensión
Reposo
0
0
0
1
Cambia en función de la tensión del
último bit
Antes ->
Después
0
1
0
0
0
1
+V o -V
+V o -V
A continuación hay un ejemplo de codificación de la cadena 01001100011
+V
-V
0
1
0
0
1
1
0
0
0
1
1
http://www.tonet.jazztel.es
58
Sus características son:
•
La codificación de los unos facilita la detección de errores.
•
Facilita el grado de sincronización.
•
Hay problemas en el caso de una cadena larga de ceros.
11.3.Codificación Manchester
La codificación Manchester da como resultado que el 0 se codifique como una
transición de alto a bajo y que el 1 se codifique como una transición de bajo a alta.
Dado que tanto los 0 como los 1 dan como resultado una transición en la señal, el
reloj se puede recuperar de forma eficaz en el receptor. No depende del bit anterior.
La codificación Manchester define un 0 como una señal alta durante la primera
mitad del período y baja durante la segunda mitad. Las normas definen al 1 como
una señal que es baja para la primera mitad del período y alta para la segunda
mitad.
En la codificación Manchester el 0 se codifica como una transición de baja a alta y
el 1 como una de alta a baja. Como tanto los 0 como los 1 tienen como resultado
una transición de la señal, el reloj se puede recuperar efectivamente en el receptor.
Sus características son:
-
Inmunidad al ruido.
-
No hay componente continua en ningún caso.
-
Mantiene la sincronización, es decir, no hay necesidad de reloj en cuanto hay
transición en medio del bit.
-
Peor ancho de banda Bw que la codificación NRZ
http://www.tonet.jazztel.es
59
11.4.Codificación Manchester diferencial
La codificación Manchester combina datos y reloj en símbolos de bit, que se dividen
en dos mitades, con la polaridad de la segunda mitad siempre inversa a la de la
primera mitad. Así con la codificación Manchester diferencial, el 0 se codifica como
una transición al principio del intervalo, mientras que el 1 se codifica como sin
transición al principio del intervalo. Como tanto los 0 como los 1 producen una
transición de señal, el reloj puede, en efecto, recuperarse en el receptor.
Sus características son:
-
Inmunidad al ruido.
-
No hay componente continua en ningún caso.
-
Mantiene la sincronización, es decir, no hay necesidad de reloj en cuanto hay
transición en medio del bit.
•
Necesita un mayor ancho de banda Bw que el Manchester sin diferencial ya que
trabaja a doble frecuencia de la velocidad de la red
11.5.Codificación B8ZS
El significado de sus siglas es Bipolar with 8 Zeros Substitution. Se basa en el AMI
bipolar, con la excepción de que modifica la cadena de 8 ceros seguidos, dando
lugar a un intervalo de señal continua muy grande, con una muy probable pérdida
de sincronización del reloj.
La cadena de 8 ceros seguidos se sustituye por una cadena 000VB0VB donde
-
B es polaridad normal, es decir, se codifica como un 1 normal
-
V es la violación de código, es decir, se codifica como un 1 inverso
http://www.tonet.jazztel.es
60
Así tendríamos
Por lo tanto las reglas son:
–
Si aparece un octeto con todos ceros y el último valor de tensión anterior a dicho
octeto fué positivo, codificar dicho octeto como 000+-0-+
–
Si aparece un octeto con todos ceros y el último valor de tensión anterior a dicho
octeto fué negativo, codificar dicho octeto como 000-+0+-
http://www.tonet.jazztel.es
61
12. Modos de transmisión
La transmisión digital consiste en una transmisión serializada de un conjunto de
bits, por lo que es necesario que los dispositivos transmisor y receptor funcionen de
una forma ordenada, de forma que el receptor pueda distinguir cada una de las
partes del mensaje recibido. En general, esta forma ordenada se consigue de 2
formas: síncrona y asíncrona.
12.1. Transmisión asíncrona
Este tipo de transmisión consiste en que el tiempo de inicio de transmisión del
grupo de bits es impredecible. Entre la transmisión de un grupo de bits y la siguiente
transmisión no se transmite nada. En este caso siempre hay una forma de
identificar el inicio y el final de la información útil mediante uno o más bits
adicionales. Es por ejemplo el caso de una comunicación entre el teclado y un
ordenador.
La polaridad de los bits de inicio (start) y de fin (stop) debe ser diferente de forma
que así siempre haya una transición. También en este tipo de transmisiones la
eficiencia es menor porque se envían unos bits adicionales sin llevar información
útil.
Se emplea en transmisiones de baja velocidad y se utiliza cuando se transmite
durante intervalos aleatorios, por ejemplo, un teclado. Lo habitual de esta
transmisión es su orientación a carácter y a trama.
12.1.1.Sincronización de bit o de reloj
En la transmisión asíncrona, el reloj del receptor corre asíncronamente respecto a la
señal de entrada. Pero con el fin de sincronizar el emisor y el receptor, el reloj del
receptor funciona a una frecuencia varias veces la velocidad de transmisión, siendo
habitual 16 veces. Así es más facil conseguir conocer el centro de la señal del bit
transmitido. Así si Vt es la velocidad de transmisión, el tiempo de transmisión de 1
bit tb vale 1/Vt.
Si fr es la frecuencia del reloj, es decir, fr = N · Vt y el tiempo de reloj tr valdrá
tr= 1 / fr = 1 / (N · Vt ) = tb / N
Cuanto más alto sea N, habrá mejor sincronización.
http://www.tonet.jazztel.es
62
12.1.2.Sincronización de carácter
Se trata de enviar los caracteres de forma secuencial y a su vez poder determinar
cual es el primer bit y el último que conforman el carácter, de acuerdo con las
distintas codificaciones de carácter existentes (ASCII, EBCDIC,etc.). Este tipo de
sincronización tiene que decidir cuando empieza la información de un carácter y
cuando termina.
La situación de reposo es el estado 1, por ejemplo en la codificación NRZ-L es la
tensión baja. El bit de inicio o start siempre es 0, porque el estado de reposo es 1.
En cuanto a la parada, siempre termina con 1 o más bits 0 con el fin de provocar al
menos un salto y poder resincronizar el reloj. La polaridad de los bits de start y stop
han de ser opuestos.
Con esta sincronización no todos los bits transmitidos son datos propiamente
dichos, por lo que debemos definir la eficiencia de transmisión Et como la relación
entre el número de bits de información y el número de bits totales.
Et = nº bits de información / nº bits totales
En consecuencia, la velocidad efectiva de transmisión Vef vale
Vef = Et · Vt
Por ejemplo si se transmite 1 carácter ASCII (8 bits), con 1 bit de inicio (start) y 2
bits de final (stop), la eficiencia de transmisión Et vale
Et = 8 / (1+8+2) = 8 / 11 = 72,7 %
Este esquema no es muy exigente en cuanto a los requisitos de temporización. Si
se transmiten caracteres de 8 bits, incluido el bit de paridad, y el receptor es un 5%
más rápido o lento que el emisor, el octavo muestreo estará desplazado un 45%
que aún es un valor aceptable. Pero si la velocidad de transmisión es de 10000 bps,
el tiempo de bit es 0,1 ms. Si el receptor está desincronizado un 6%, es decir, 6 µs
por cada bit, el octavo bit lo leerá erróneamente. En realidad tenemos dos errores,
uno que el último bit muestreado lo leerá incorrectamente el receptor y dos que la
cuenta de bits puede estar desalineada. A este error se le llama de delimitación de
trama y también se llama el efecto ISI.
12.1.3.Sincronización de trama
En este caso se trata de determinar no solo el inicio y el final de cada carácter sino
también poder determinar el inicio y el final de cada trama, es decir, se necesita la
sincronización de trama.
En estos casos lo habitual es encapsular los caracteres útiles entre 2 caracteres
especiales, no imprimibles, llamados STX (start-of-text) que indica el inicio de la
http://www.tonet.jazztel.es
63
trama y ETX (end-of-text) que indica el final de la trama. Estos caracteres también
se conocen con el nombre de caracteres de control de la transmisión.
STX
Caracteres imprimibles
ETX
Sin embargo, si se transmiten datos binarios, estos caracteres no son suficientes
por lo que se les precede de otro carácter especial denominado DLE (data link
escape)
DLE
STX
Datos binarios DLE
DLE
Datos binarios DLE ETX
Con el fin de detectar una posible combinación de bits que coincidan con el carácter
DLE, el emisor en este caso repite esta combinación. Es lo que se conoce como
stuffing.
12.2. Transmisión síncrona
En la transmisión síncrona, las señales digitales se transmiten a una velocidad
constante, de acuerdo con las señales de un reloj. La información transmitida
contiene las señales del reloj, permitiendo así la sincronización del reloj del receptor
con el reloj del emisor. Aunque no hayan datos a transmitir, siempre se está
enviando como mínimo la señal de sincronización.
En una transmisión síncrona,
-
la información transmitida se codifica para facilitar su sincronismo.
-
todas las tramas van precedidas de 1 o más octetos o caracteres con el fin de
que el receptor interprete correctamente el inicio y el fin de las tramas.
-
el contenido de cada trama se encapsula entre un par de caracteres reservados
u octetos para que haya sincronización.
Por tanto tenemos unos octetos de sincronización entre tramas y unos octetos de
inicio y fin de trama añadidos a la información útil de la trama. Este tipo de
transmisión se usa orientada a bit y orientada a carácter.
12.2.1.Sincronización de bit
En la sincronixzación de bit, el reloj del receptor debe funciona síncronamente con
el reloj del emisor. En este caso, no se emplean bits de inicio ni de fin, que son
propios de una transmisión asíncrona. La sincronización se consigue de una de las
formas siguientes:
-
Una que la información del reloj esté incluida en la señal transmitida y que el
receptor extraerá u
-
Otra que el receptor tenga un reloj local pero que se sincronice mediante lo que
se conoce como "digital phase-lock-loop".
http://www.tonet.jazztel.es
64
En el primer caso, es necesario que haya una codificación apropiada como la AMI
bipolar, la Manchester o la Manchester diferencial. En el segundo caso, se extrae
de la codificación NRZ-I.
12.2.2.Sincronización de carácter
Se trata del sincronismo de caracteres o bloques de ellos. En este caso no hay bits
de inicio ni de fin.
La sincronización se consigue mediante la adición de dos o más caracteres de
control conocidos como SYN, que es un carácter no imprimible. Este carácter tiene
dos funciones:
-
permitir al receptor obtener el bit de sincronización.
-
permitir al receptor la sincronización del carácter.
Como en la transmisión asíncrona, el carácter o bloque de caracteres está
encapsulado en los caracteres especiales STX y ETX. Sin embargo ahora el STX
estará precedido por un o más caracteres SYN.
SYN
SYN
STX
Caracteres imprimibles
ETX
Si se transmiten datos binarios, estos caracteres no son suficientes por lo que se
les precede de otro carácter especial, denominado DLE (data link escape)
SYN
SYN
DLE
STX
Datos binarios
DLE
DLE
Datos binarios DLE
ETX
Con el fin de detectar una posible combinación de bits que coincidan con el carácter
DLL, el emisor en este caso repite esta combinación. Es lo que se conoce como
stuffing.
12.2.3.Orientado al bit
El método anterior orientado al carácter es de una eficiencia bastante baja en
cuanto a la transmisión de datos binarios. Por ello se ha diseñado otro método
orientado al bit que es más eficiente. Se trata de una transmisión orientada al bit y
consiste en un flag de inicio y de un flag de final. Este flag consta de 8 bits con una
combinación específica y que es la 01111110
En realidad el transmisor antes de enviar el flag de inicio, envía una cadena de
unos y al final, después del flag de final, también envía otra cadena de unos.
Ahora también habrá stuffing, pero será en el caso de que hayan 5 unos seguidos.
En este caso después de 5 unos seguidos siempre se inserta un cero.
Por ejemplo si se ha de transmitir la cadena 0111111111101, se envía
011111011111001
Los 2 bits cero en negrita se debe convertir en unos en recepción.
http://www.tonet.jazztel.es
65
13. Nivel de enlace
A nivel de enlace, en los modelos OSI y TCP/IP, se debe definir el formato de las
tramas o mensajes que se envían por la red. Así las informaciones digitales de las
que estamos tratando, su elemento básico es el bit, y la transmisión no es bit a bit,
sino por grupos de bits, que se llaman tramas a nivel físico (nivel 2). Su formato
general es el siguiente
Cabecera
Datos
Control de error
es decir, siempre constan de tres partes:
–
Una cabecera. En este grupo de bits se especifica la información accesoria de la
trama, pero no por accesoria tan importante como los datos que se transmiten.
–
Los datos, en inglés, payload.
–
Un control de error, con el fin de que el receptor no solo detecte que hay un error
en la trama, sino que también haya la posibilidad de recuperarlo sin necesidad de
que se reenvíe esta trama.
13.1. Detección de errores
Los datos están formados por P bits significativos. Si queremos detectar errores en
una transmisión, tenemos que recurrir a la redundancia de los mismos, es decir, a
añadir más bits a los P significativos, pero a coste de disminuir su rendimiento. Así
el envío de P bits se transforma en el envío de P+Q bits, siendo Q el número de bits
redundantes empleados. Al código P+Q se le llama palabra código (code word) y a
la transformación de P en Q, código detector de errores. Por tanto la cantidad de
bits enviados es P+Q y esta palabra código es la que verifica el receptor si es válida
o no.
La tasa de error de bit (BER - Bit Error Rate) es el factor que se emplea para medir
el nivel de errores en una transmisión. Si Pb es la probabilidad de que un solo bit se
corrompa, se define la tasa de error de bit BER a la probabilidad de error de un bit
en un intervalo de tiempo dado.
En el caso de un bloque de n bits, la probabilidad Pf de bloque erróneo es
Pf = 1 - (1 - Pb)n
Hay dos técnicas básicas de detección de errores:
−
La FEC (Forward Error Control) que permite la detección del error y su
corrección y
http://www.tonet.jazztel.es
−
66
La Feedback / Backward Error Control que permite la detección pero no su
corrección. Es el caso de la los códigos de error basados en la paridad
simple, la paridad longitudinal LRC y el CRC.
Se entiende por burst errors o ráfaga de bits erróneos cuando son erróneos una
cadena de bits contiguos.
13.1.1.Paridad simple
Consiste en añadir 1 bit a cada carácter y a este bit se le llama bit de paridad.
Para el cálculo del bit de paridad a partir de los bits a transmitir hay dosmétodos
básicos:
−
Paridad par. En este caso el bit de paridad es 0, si el número de unos es par
y 1 si es impar. La suma total de unos es par.
−
Paridad impar. En este caso el bit de paridad es 0, si el número de unos es
impar y 1 si es par. La suma total de unos es impar.
Esta codificación se emplea en las transmisiones orientadas a carácter y sólo
permiten la detección de un único error y sin posibilidad de corrección.
13.1.2.Código Hamming
La utilización de paridad simple solo permite la detección de un bit erróneo, pero no
su corrección porque no puede saberse cual de los bits que conforman el carácter
es el bit erróneo, es decir, en que posición está. Para su corrección se necesita el
empleo de una mayor redundancia. Por ejemplo, si se transmiten caracteres de 7
bits, con 3 bits adicionales es posible la corrección de bits erróneos. En esto es lo
que se basa el código Hamming.
Se entiende por distancia Hamming a la mínima distancia (número de bits
diferentes) entre dos palabras código.
Así si dh es la distancia Hamming utilizada y n es el número de bits erróneos,
−
La cantidad máxima de bits erróneos detectables es n = dh -1 y
−
La cantidad máxima de bits erróneos corregibles n = ( dh -1) / 2
Si la distancia Hamming dh es 2, y por tanto
−
−
el número máximo de bits erróneos detectables es n = dh - 1 = 1
el número máximo de bits erróneos corregibles es n = (dh - 1) / 2 = 0
Este es el caso del empleo de paridad simple.
¿Cómo se calcula la distancia Hamming?
http://www.tonet.jazztel.es
67
Como se ha dicho más arriba, es el número de bits distintos y por tanto su cálculo
se hace aplicando la función XOR y contando el número de unos.
Supongamos que tenemos cuatro palabras código y sus contenidos son
000000
111111
001101
110100
La distancia Hamming del conjunto será la mínima. Así el número de bits distintos
entre los dos primeros es 6, y su distancia Hamming 6. Entre el primero y el tercero
hay 3 bits distintos y por tanto su distancia Hamming es 3.
A continuación el cuadro expone la distancia Hamming de cada pareja
1
2
3
4
1
--
6
3
3
2
6
--
3
3
3
3
3
--
4
4
3
3
4
--
La distancia Hamming del conjunto será la menor de ellas ya que es el caso peor,
por tanto en el ejemplo es 3.
Si la distancia Hamming dh es 3,
−
el número máximo de bits erróneos detectables es n = dh - 1 = 2
−
el número máximo de bits erróneos corregibles es n = (dh - 1) / 2 = 1
13.1.3.Paridad longitudinal (LRC)
Con este tipo de detección de errores, además del empleo del bit de paridad, se
introduce un nuevo carácter de paridades llamado BCC (Block Check Character).
Así cada n caracteres incluído su bit de paridad, se envía otro carácter el BCC que
es una combinación de los bits que componen los n caracteres.
Supongamos que transmitimos 3 caracteres, cada uno con su bit de paridad y
necesitamos calcular el carácter BCC que debemos transmitir a continuación con su
bit de paridad. En la tabla siguiente, se muestra este cálculo, y para ello se ha
utilizado paridad par en horizontal, es decir, el bit de paridad de cada carácter y
paridad par para el cálculo del BCC.
http://www.tonet.jazztel.es
68
B6
B5
B4
B3
B2
B1
B0
P
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
En consecuencia el carácter BCC sería 10000100 y en este caso se transmitiría
11000110 11010100 01101001 10000100
13.1.4.CRC (Cyclic Redundancy Check)
Esta metodología permite la detección de más de 1 bit erróneo. Se entiende por
error burst al número de bits entre dos bits erróneos consecutivos incluidos éstos. Si
Pb es la probabilidad de error de un bit y Pf la probabilidad de una trama errónea,
entonces
Pf = 1 - (1 - Pb ) L
siendo L el número de bits de una trama.
Si Pb · L << 1, entonces la probabilidad de trama errónea es
Pf = 1 - (1- Pb) L ≅ Pb · L
De hecho si L-> ∞ , es decir, si la trama es muy larga, entonces (1 - Pb) L ≅ 0, y por
tanto la probabilidad de trama errónea Pf = 1, es decir, cuanto más larga es la trama
más probable que haya un bit erróneo.
La teoría del CRC consiste en que dada una trama de k bits, el transmisor genera
además una secuencia de n bits, denominada FCS (Frame Check Sequence), de
tal manera que la trama resultante, de n + k bits, sea divisible por algún número
predeterminado. El receptor hará la operación inversa, es decir, dividirá la trama
recibida por este número y si el resto es cero, es indicativo de que no hay errores.
Por ejemplo, el transmisor envía el número 1234 y además un 9, que lo ha obtenido
de dividir 1234 por 35. Cuando llega al receptor el 1234 y el 9, como éste sabe que
el valor de referencia es 35, verifica que coincide. Si es así no hay errores y el
número 1234 es el correcto. Si por el camino, el número 1234 se hubiera
modificado y convertido en otro, se podría detectar. Evidentemente no siempre es
detectable el error porque únicamente verifica el resto y no es suficiente.
En las transmisiones digitales basadas en bits, una buena forma de entenderlo es
usando la representación polinómica. Una trama de k bits se puede representar por
http://www.tonet.jazztel.es
69
un polinomio de grado k -1, donde los coeficientes del polinomio son los bits de la
trama
M(x) = sk-1 xk-1 + sk-2 xk-2 + . . . +s1 x + s0
Donde sk = 0 si el bit de la posición k es 0 y sk =1 si el bit vale 1.
Por ejemplo la trama 10110, se representa por el polinomio M(x) = x4 + x2 + x
A continuación se debe definir el número de bits L de que constará el FCS. Con
este dato, se genera un polinomio generador G(x) de grado L, para que de esta
forma el resto sea de grado L – 1. Este polinomio es el que se empleará para dividir
el polinomio resultante del contenido de la trama.
CRC = resto ( (M(x) · xL ) / G(x) )
En recepción, se debe realizar la operación inversa.
Esta operación en aritmética de módulo 2 equivale al XOR exclusivo.
La ventaja de este mecanismo es que permite detectar:
−
Todos los errores de 1 bit
−
Todos los errores dobles siempre que el polinomio de referencia tenga al
menos tres 1
−
Cualquier número impar de bits erróneos siempre que el polinomio de
referencia contenga el factor (x + 1)
−
Cualquier error burst cuya longitud sea menor que la longitud del polinomio
divisor, es decir, menor o igual que la longitud de la FCS
−
La mayoría de los error burst de longitud mayor que la longitud del FCS.
Los polinomios de referencia más frecuentes son
CRC-12
x12+x11+x3+x2+x+1
Se utiliza para la transmisión de
tramas de caracteres de 6 bits y
genera una FCS de 12 bits.
CRC-16
x16+x15+x2+1
Es habitual en la transmisión de
tramas de caracteres de 8 bits.
CRC-CCITT x16+x12+x5+1
Es habitual en la transmisión de
tramas de caracteres de 8 bits.
CRC-32
X32+x26+x23+x22+x16+x12+x11+ Es muy utilizado en las LAN.
x10+x8+x7+x5+x4+x2+x+1
http://www.tonet.jazztel.es
70
Ejemplo
Supongamos que se quiere enviar la secuencia de bits 11100110 y emplear un
CRC de 4 bits. Por ello el polinomio generador ha de ser de grado 4 y supongamos
que es
G(x) = x4 + x3 + 1
Para calcular los 4 bits del CRC, primero transformaremos la secuencia de bits a
enviar en el polinomio correspondiente, en este caso será
M(x) = x7 + x6 + x5 + x2 +x
Ahora el CRC es el resto de la división M(x) · x4 / G(x), y en este caso será
x11 + x10 + x9 + x6 + x5 | x4 + x3 + 1
x11 + x10 + x7
| x7 + x5 + x4 + x2 + x
x9 + x7 + x6 +x5
x9 + x8 + x5
x8 + x7 + x6
x8 + x7 + x4
x6 + x4
x6 + x5 + x2
x5 + x4 + x2
x5 + x4 + x
x2 + x
Por tanto el resto siempre tiene un grado inferior al del polinomio generador.
El CRC estará compuesto por los coeficientes del polinomio resto resultante, es
decir, en este caso será la secuencia 0110
13.2. Servicios confirmados y no confirmados
Cuando un emisor envía un mensaje, puede ser que el mensaje llegue al receptor o
no. Así en algunos casos, el emisor quiere tener una confirmación del receptor en
cuanto ha recibido el mensaje. La razón de tener esta confirmación es de que si no
ha llegado, tenga razones para poderlo volver a enviar.
Así se entiende por servicios confirmados aquellos en que el receptor contesta si la
recepción ha sido correcta o no en cuanto a las tramas enviadas por el receptor. De
lo contrario estamos ante un servicio no confirmado. En realidad esta confirmación
o no está directamente ligada al control de errores y al control de flujo.
En cuanto al control de errores, en cuanto se detecta una trama errónea, es
necesario volverla a transmitir, ya que en general no se emplean mecanismos de
corrección de errores, porque penalizan mucho la eficiencia.
http://www.tonet.jazztel.es
71
En cuanto a la recuperación de errores hay dos técnicas básicas:
−
Stop and wait (Idle RQ) y
−
Continous RQ o protocolos de retransmisión continua y dentro de éstos, hay
los de repetición selectiva (selective repeat) y de go-back-N
A continuación se detalla el funcionamiento de cada una de estas técnicas.
Otro problema que aparece en el nivel de enlace de datos y en otros niveles, es
como controlar la velocidad a la que se transmite la información de forma que el
receptor tenga siempre recursos (p.e. buffers) necesarios para recoger la
información. A esto se le denomina control de flujo. En cuanto al control de flujo, la
técnica más empleada es la de la ventana deslizante (sliding window).
13.3. Control de errores
13.3.1.Control de errores manual
Se trata de un control de error realizado por el usuario. Por ejemplo cuando el
usuario se equivoca al teclear un carácter, pulsa la tecla de borrado, de forma que
el programa no tenga en cuenta el carácter enviado con anterioridad. En realidad no
hay un borrado propiadamente dicho, sino lo que se sucede es que se añade a la
secuencia un carácter (DEL) que le indica al receptor que el carácter anterior no lo
debe tener en cuenta.
13.3.2.Echo checking
Este control de errores se utiliza en la ejecución de aplicaciones remotas. El
terminal remoto que recibe un carácter, devuelve un eco del mismo al emisor que
consiste en el mismo carácter recibido. Esto permite al emisor verificar si el carácter
enviado es correcto y a la vez es una confirmación de que el carácter ha llegado a
su destino. En caso afirmativo, envía el carácter siguiente y en caso negativo,
vuelve a enviar el mismo carácter.
13.3.3.Control de errores automático
En este tipo de control de errores, si el receptor detecta errores, pide
automáticamente la retransmisión del bloque, trama o carácter enviado. La
detección del error se realiza mediante alguno de los métodos ya mencionados y es
el que emplea en la transmisión de tramas en las redes de ordenadores.
Así en el caso de los servicios confirmados, que es cuando hay la posibilidad de
control de errores, se contempla el hecho de la retransmisión de la información y
que se conoce con el nombre de repetición automática ARQ (Automatic Repeat
Request). Hay dos técnicas para realizarlo:
http://www.tonet.jazztel.es
−
−
72
Stop and wait (idle RQ). Se usa básicamente en transmisiones orientadas a
carácter. Hay dos tipos:
−
retransmisión implícita
−
retransmisión explícita
Continous RQ o de retransmisión continua. Se usa básicamente en
transmisiones orientadas a bit. Hay dos tipos:
−
repetición selectiva (selective repeat). En este caso la
retransmisión también puede ser implícita o explícita.
−
Go-back-N. Normalmente solo es explícito.
13.3.4.Stop & Wait (Idle RQ)
Retransmisión implícita
En este caso el transmisor después de enviar una trama de información, espera
recibir una trama de reconocimiento (ACK) antes de enviar la trama siguiente.
Para ello el transmisor utiliza un temporizador TOUT para el control del tiempo
transcurrido desde el envío. La necesidad de este temporizador es que si no llegase
nunca la trama de reconocimiento ACK, el transmisor quedaría bloqueado y
esperaría eternamente. La razón por la que el transmisor no recibe la trama de
reconocimiento puede ser
•
porque se ha perdido la trama de información, caso B del ejemplo,
http://www.tonet.jazztel.es
73
•
porque se ha perdido la trama de reconocimiento ACK, caso C del ejemplo, o
•
porque ha llegado con errores.
Si existe el temporizador TOUT, cuando expira, el transmisor vuelve a retransmitir la
trama Ik e inicializa el temporizador de nuevo. Logicamente el valor de inicialización
del temporizador debe ser lo más pequeño posible, pero lo suficiente grande para
dar tiempo a que lleguen las tramas de reconocimiento. Si el valor es muy grande,
la penalización en caso de error puede ser importante.
Retransmisión explícita
En este tipo de retransmisión, cuando el receptor detecta una trama corrupta, envía
al transmisor una trama del tipo NAK (Negative Acknoledgement), es decir, el
transmisor puede recibir
•
tramas de reconocimiento normales ACK y
•
tramas de reconocimiento negativo NAK.
Parámetros de evaluación del protocolo
Tiempo de propagación tp es el tiempo que tarda en ir la información desde el
transmisor al receptor. Es el tiempo de viaje y depende del medio de transmisión.
tp = D / V p
siendo D la distancia entre el transmisor y el receptor, y Vp la velocidad de
propagación del medio.
Tiempo de transmisión tt de trama se define como
tt = L / Vt
siendo L el tamaño de la trama en bits y Vt la velocidad de transmisión. El tiempo de
transmisión de una trama ACK sería tack = Lack / Vt
Tiempo de proceso tproc es el tiempo en que el transmisor o el receptor tarda en
procesar una trama. En general tproc << tt , tp. Por ejemplo cuando llega una trama al
receptor, el tiempo de proceso es el tiempo que tarda en verificarala y enviar la
trama de reconocimiento.
Tiempo del ciclo Tc es el tiempo transcurrido entre que el primer bit sale del
transmisor hasta que se recibe el último bit de la trama ACK. En la figura se
representa una trama de datos con una devolución de una trama de reconocimento
por parte del receptor. Esto es un ciclo completo de transmisión y el tiempo de ciclo,
de acuerdo con la figura, es
http://www.tonet.jazztel.es
74
Tc = 2 tp + tt + tack
Tiempo de espera Tespera es el tiempo transcurrido desde que el último bit de la
trama ha salido hasta que llegue el último bit de la trama ACK.
Tespera = 2 tp + tack
Este tiempo de espera siempre debe contemplarse ante el posible evento de que el
emisor no reciba el correspondiente mensaje de reconocimento, ya sea porque la
trama de datos no ha llegado al receptor o porque la trama de reconocimento se ha
perdido durante la transmisión. Si este tiempo de espera no existiera, en caso de
error, el emisor esperaría indefinitivamente la respuesta y por lo tanto se quedaría
colgado.
En cuanto a los tiempos del temporizador Twt variarán del momento en que se
active:
•
Si el temporizador se activa al comenzar la transmisión de la trama, su tiempo Twt
debe ser mayor que el tiempo de ciclo Tc .
•
Si el temporizador se activa al acabar la trama, su tiempo Twt debe ser mayor
que el tiempo de espera Tespera .
Si se considera que tack << tp , en este caso el tiempo del temporizador Twt debe ser
mayor que 2 tp
Se define la eficiencia del protocolo U como un factor de utilización que se calcula
como el cociente del tiempo de transmisión y el tiempo de ciclo.
U = tt / Tc
Si definimos como a = tp / tt , este parámetro a es una medida indicativa de la
distancia entre el emisor y el receptor, ya que para una misma trama el tiempo de
transmisión es independiente de la distancia.
http://www.tonet.jazztel.es
75
Si además tack << tp, tt entonces
Tc = 2 tp + tt + tack ≈ 2 tp + tt = tt · (1+ 2 a)
Y la eficiencia U vale
U = 1 / (1 + 2 a )
Por otro lado se define como velocidad efectiva Vef a
Vef = U · Et · Vt
siendo U la eficiencia del protocolo, Et la eficiencia de la transmisión (asíncrona,
síncrona, código de error, ...) y Vt la velocidad de transmisión.
Consideraciones
1) Este método es útil cuando la distancia sea lo más corta posible, ya que su peso
más importante es la velocidad de transmisión.
2) Hasta aquí se ha calculado la eficiencia del protocolo sin tener en cuenta las
retransmisiones. Si Nr es el número medio de retransmisiones, el tiempo de ciclo
con retransmisiones valdrá
T'c = Nr · Tc
siendo Tc el tiempo de ciclo sin retransmisiones y suponiendo que tack << tt , tp
T'c = Nr · ( 2 tp + tt + tack) = Nr · tt · (1 + 2 a )
y en consecuencia
U = 1 / (Nr · (1 + 2 a))
Así si hay muchas retransmisiones, Nr es muy grande, la eficiencia U es
prácticamente 0.
Si expresamos Nr en términos de probabilidad de trama errónea y por tanto de la
probabilidad de bit erróneo
Pf = 1 - (1 - Pb ) n
siendo n la longitud en bits de la trama, se demuestra que
Nr = 1 / (1 - Pf)
Por ejemplo, si Pf = 0,5, Nr = 2, es decir, la mitad de las tramas son erróneas,
suponiendo que todas las tramas ACK son correctas. En este supuesto la eficiencia
U vale
http://www.tonet.jazztel.es
76
U = ( 1- Pf ) / ( 1 + 2 a)
3) En cuanto a la posibilidad de que el receptor recibe más de una copia de la
misma trama, se resuelve porque en este caso los protocolos incluyen en su
cabecera un número de secuencia. Este número de secuencia es un campo y
dependerá de su longitud la cantidad de números de secuencia que se pueden
manejar.
El número de secuencia de la trama que sale del transmisor N(S) está incluida
dentro de la trama, así esta tendrá como estructura
SOH N(S) STX
Datos
ETX BCC
y el mismo número de secuencia de vuelta N(R) debe estar incluida en las tramas
ACK y NAK y por tanto su formato es
Trama ACK
ACK N( R ) BCC
Trama NAK
NAK N( R ) BCC
Se demuestra que este tipo de control Stop-and-wait es bueno para distancias
cortas y también tiene la ventaja de necesitar un buffer mínimo.
13.3.5.Retransmisión continua (Continous-RQ)
El problema del método Stop-and-wait es que si el tiempo de propagación tp es alto,
la eficiencia disminuye de forma significativa, ya que el transmisor se queda mucho
tiempo bloqueado. Es el caso de la existencia de distancias largas entre el
transmisor y el receptor, ya que el tiempo de propagación es proporcional a esta
distancia.
El método de retransmisión continua (Continous RQ) lo que hace es incrementar
la capacidad de almacenaje (buffers) y así transmitir de forma continua sin parar
mientras no se queden los buffers llenos. Estos buffers se emplean pues para
almacenar tramas que todavía no han sido reconocidas. El receptor también
dispone de buffers para almacenar tramas que puede recibir como copia debido al
funcionamiento del protocolo.
En este método las tramas, tanto las normales como las de reconocimiento ACK y
las de no reconocimiento NAK, deben ir numeradas con el fin de poder aparejarlas.
Así en la figura las tramas normales vienen identificadas por I(N) donde N es el
número de secuencia que las identifica. Una trama de reconocimiento ACK(N)
también debe contener un número de identificación para poder conocer de que
trama se trata. De forma análoga sucede con las tramas de no reconocimiento
NAK(N).
http://www.tonet.jazztel.es
77
Funcionamiento
La secuencia del funcionamiento de este control de error de tramas es el siguiente:
1) El transmisor envía tramas de forma continua sin esperar la recepción de las
tramas de reconocimiento ACK. En el buffer del transmisor se almacenan las
tramas pendientes de reconocimiento y se manejan mediante el sistema FIFO.
2) Si el receptor recibe una trama correctamente, devuelve una trama de
reconocimiento ACK con la identificación N de esta trama I.
3) Cuando el transmisor recibe la trama de reconocimiento ACK de una trama I, la
elimina de su buffer.
4) El receptor almacena las tramas I en una lista de recepción (buffer) para que
sean procesadas.
La eficiencia de los protocolos de retransmisión continua, si no hay errores, es
Up = 1
Si se producen errores, habrá retransmisiones y esto se hace con alguna de las
técnicas siguientes:
−
Repetición selectiva (Selective Repeat), consiste en retransmitir sólo las
tramas incorrectas
−
Go-back-N, que consiste en repetir la retransmisión a partir de la última
trama correcta.
http://www.tonet.jazztel.es
78
13.3.6.Repetición selectiva
Con este método de control de errores, el transmisor sólo retransmite las tramas
incorrectas y para ello hay dos maneras de hacerlo:
• mediante retransmisión implícita, es decir, en este caso el receptor reconoce
las tramas correctas y el transmisor deduce cuales han sido incorrectas.
• mediante retransmisión explícita, es decir, en este caso el receptor reconoce
las tramas correctas y también es él quien deduce cuales han sido incorrectas.
Por esta razón, en este caso, el receptor envía mensajes de reconocimiento
ACKs y de reconocimiento negativo NAKs.
Retransmisión selectiva implícita
Si el transmisor recibe tramas de reconocimento ACK, significa que la trama
enviada ha llegado correctamente.
http://www.tonet.jazztel.es
79
Supongamos que la trama IN+1 sea corrupta, y por tanto que el receptor ha enviado
tramas de reconocimento ACK de las tramas N, N+2, N+3, N+4.
El transmisor al no recibir una trama de reconocimiento ACK de la trama N+1,
deduce que el receptor no dispone de ella por alguna razón, y por lo tanto debe
retransmitirla. El transmisor no transmite nuevas tramas hasta que retransmite las
que tiene como no reconocidas.
Así el transmisor elimina la trama N+2 del buffer y retransmite la trama N+1 antes
de la N+5. A continuación el receptor recibe la trama N+1 y la reconoce.
Pero, ¿qué sucede si la trama ACKN es corrupta? En este caso el transmisor ha
detectado correctamente la tramas N-1 y N+1, en cuanto que ha recibido las
correspondientes tramas de reconocimiento ACKN-1 y ACKN+1. Ante esta situación,
el transmisor decide volver a retransmitir la trama IN
Si el receptor detecta que una trama es copia de una que ya recibió, la descarta,
pero debe reenviar la trama de reconocimiento ACK correspondiente al transmisor
para que éste la elimine de su lista de retransmisión.
Retransmisión selectiva explícita
Este tipo de retransmisón, llamada también retransmisión acumulada, consiste en
que una trama de reconocimento ACK no solo es un reconocimiento de una trama
sino también de todas las anteriores. En este caso las tramas corruptas se
reconocen con una trama de reconocimiento negativo NAK, cosa que no sucede
con una retransmisión implícita.
http://www.tonet.jazztel.es
80
Así puede verse en la figura de que no hay las tramas de reconocimiento de las
tramas identificadas por N+1, N+2 y N+3.
Supongamos que la trama IN+1 llega corrupta. En este caso el receptor habrá
enviado una trama de reconocimento ACKN y una trama de reconocimiento negativo
NAKN+1
http://www.tonet.jazztel.es
81
A continuación el transmisor al recibir la trama de reconocimento negativo NAKN+1,
reenvía la trama IN+1. El receptor la recibe y continúa enviando tramas de
reconocimento ACK. En este caso como los reconocimientos son acumulados,
puede enviar una trama de reconocimiento ACKN+4, ya que ello presupone que ha
recibido correctamente las tramas N+1, N+2, N+3 y N+4.
Consideraciones
En este tipo de control de errores, no se mantiene el orden de recepción, ya que la
trama N+1 se recibe después de las tramas N+2, N+3, ... Por tanto las tramas tiene
que estar identificadas, para que el receptor las pueda ensamblar en el orden
correcto. También en este caso, el tiempo de procesamiento de tramas en el
receptor es mayor porque requiere de una ordenación previa, antes de ensamblar
los contenidos de los datos de las tramas.
También implica la necesidad de más temporizadores para evitar un bloqueo del
transmisor. En la retransmisión implícita, si la última trama es corrupta, se necesita
detectarlo de alguna forma la no recepción de su trama de reconocimento ACK. Si
la retransmisión es explícita, se tiene que prever el hecho de que se pierda una
trama de reconocimiento negativo NAK.
13.3.7.Go-back-N
Este método de control de errores permite mantener el orden de las tramas en el
recepctor y así ahorrar en buffers a la hora de reensamblar las tramas fuera de
orden.
Para ello es necesario usar retransmisión explícita, es decir, tramas de recocimiento
ACKs acumuladas. Supongamos que la trama IN+1 ha llegado corrupta pero que se
han recibido tramas posteriores N+2, etc.
http://www.tonet.jazztel.es
82
En este caso el receptor envía una trama de reconocimiento negativo NAKN+1 para
que el transmisor empiece a retransmitir a partir de la trama N+1. El receptor
descarta cualquier trama que le llegue después de la N+1.
A continuación el transmisor entra en modo retransmisión y reenvía otra vez las
tramas N+1, N+2, N+3, ... y el receptor envía las tramas de reconocimiento
correspondientes ACKN+1, ACKN+2, …
¿Qué sucede si se pierde una trama de reconocimento ACK? Supongamos que la
trama de reconocimento ACKN+1 se pierde o es corrupta, pero que el transmisor
recibe la trama de reconocimento ACKN+2 correctamente. En este caso el
transmisor al no recibir una trama de reconocimento negativo NAK, supone que
todas las tramas hasta la N+2 han llegado correctamente.
En este caso también se necesitan más temporizadores por si se pierden tramas de
reconocimento negativo NAKs. Con todo esto, ya vemos que la repetición selectiva
es más eficiente ya que solo retransmite las tramas corruptas, pero por otro lado
tiene el inconveniente de que necesita más buffers.
El método de control de errores Go-back-n necesita menos buffers que otros
métodos pero desperdicia capacidad del ancho de banda ya que retransmite
información que ya había llegado correctamente.
13.3.8.Piggy-backing
Algunos protocolos en vez de devolver tramas de reconocimiento ACK y de
reconocimiento negativo NAK como tales, aprovechan el flujo de vuelta para
http://www.tonet.jazztel.es
83
incorporar en él, el reconocimiento o no de las mismas, es decir, en las tramas de
vuelta se incluye el reconocimiento o no de las tramas recibidas. De esta forma se
aumenta la eficiencia global del sistema.
En los protocolos, siempre hay una conversación entre los dos extremos. Entonces
puede darse el caso de que en un mismo instante, se quiera enviar un mensaje del
receptor al transmisor y a su vez también hay una trama de reconocimiento a
enviar. Si hay piggy-backing, no se envían dos tramas, sino solo una con las
información de ambas tramas.
En contraposición las tramas de información deben incluir un campo con el número
de secuencia y un campo de reconocimiento. El protocolo HDLC usa esta técnica
llamada de piggy-backing.
En estos caso el tiempo de ciclo Tc vale
Tc = tp + tt +tp + tt = 2 ( tp + tt )
13.4. Control de flujo
El objetivo del control de flujo es controlar la velocidad de transmisión de las tramas
de un enlace, de tal forma que siempre haya recursos, por ejemplo buffers,
suficientes para almacenar las tramas recibidas. Si la salida de tramas por unidad
de tiempo del transmisor es mayor que la que puede procesar el receptor, significa
que si no se regula aquella salida, se perderán tramas en recepción, lo que conlleva
a nuevas retransmisiones y en consecuencia a una pérdida de rendimiento. Esto
también puede ocurrir en algún dispositivo intermedio de la red, como puede ser un
enrutador. Esto implica la posibilidad de bloqueo del transmisor en el caso de que
las tramas salgan a demasiada velocidad y que se puedan desbordar los buffers de
recepción. Es el caso de que las prestaciones del transmisor y del receptor sean
diferentes.
Hay distintas posibilidades de control de flujo tales como:
−
Echo checking. En este caso además de controlar los posibles errores, este
método permite controlar el flujo, ya que si los buffers se llenan, se para el
envío de ecos y el transmisor se bloquea hasta que vuelva a recibir un eco.
−
X-OFF/X-ON o también llamado In-bound-flow-control. Este método es un
complemento del método anterior y consiste en que muchas veces aunque el
receptor deja de enviar ecos, el transmisor sigue enviando caracteres. En
este caso la forma de bloquear el transmisor, es enviando al receptor un
carácter de control X-OFF, que hace cesar el envío de caracteres. Para
reanudar la transmisión, el receptor envía un carácter de control X-ON al
transmisor.
−
Out-of-band-control. Este método se utiliza en las líneas de transmisión
analógicas y se le conoce como la norma V.24. Para ello se emplean los
http://www.tonet.jazztel.es
84
comandos RTS (request to send) y CTS (Clear to send). También en el caso
de las impresiones, es decir, entre ordenador e impresora, se utiliza este
método, ya que la impresora es un dispositivo mucho más lento que los
ordenadores a los que está asociada.
−
Mecanismos de ventanas. De estos mecanismos el más conocido y
empleado es el de ventana deslizante que se desarrolla a continuación.
13.4.1.Ventana deslizante (Sliding window)
Este control de flujo permite la existencia de un número máximo de tramas de
información esperando su confirmación en el transmisor. A este número se le llama
ventana de transmisión kT. La información de cada trama en espera de su
confirmación está contenida en esta ventana.
Cuando la ventana de transmisión se agota, el transmisor se bloquea. Así
podríamos decir que el control de errores Stop-and-wait es en realidad un control de
ventana deslizante de kT = 1
En general se define un límite inferior de ventana Linf (LWE - Lower Window Edge) y
un límite superior de ventana Lsup (UWE - Upper Window Edge). Al inicio de la
transmisión, ambos valores valen cero
Linf = Lsup = 0
Cuando el transmisor quiere transmitir una trama:
−
Si Lsup - Linf < kT entonces incrementa el valor de Lsup en 1 y a continuación
transmite la trama, es decir, primero verifica que la ventana no esté agotada.
−
Si Lsup - Linf = kT, el transmisor se bloquea, dado que la ventana está
agotada, y no transmite la trama.
−
Si el transmisor recibe una trama de reconocimiento ACK, entonces
incrementa el valor de Linf en 1. En este caso el transmisor si estaba
bloqueado, se desbloquea.
Por lo tanto
•
L sup es el número de tramas enviadas y
•
L inf es el número de tramas reconocidas
Se define la ventana de recepción kR como el número máximo de tramas que
pueden ser almacenadas en recepción. El valor de la ventana del receptor debe
estar relacionada con la ventana del transmisor y así se representa en la tabla
siguiente dependiendo del método de control de flujo utilizado.
http://www.tonet.jazztel.es
85
Ventana del Ventana del
transmisor
receptor
Stop-and-wait
1
1
Repetición selectiva
K
K
Go-back-N
K
1
Para calcular el valor mínimo en el lado receptor, nos tenemos que situar en el caso
peor. Por ejemplo en el caso de repetición selectiva, sería que se perdieran las
tramas de reconocimiento ACK. Por esta razón si la ventana del transmisor es K, la
del receptor también como mínimo debe ser K. Además en el caso de repetición
selectiva es así porque las tramas pueden llegar desordenadas.
Cálculo de la ventana óptima de transmisión
En retransmisión continua nos interesa seguir manteniendo eficiencias cercanas al
100%. Si introducimos un control de flujo, ¿qué ventanas necesitamos para que el
transmisor no se quede nunca bloqueado en condiciones normales?
Recordemos que el tiempo de ciclo vale
Tc = 2 tp + tt + tack
Ahora el tiempo máximo de transmisión es el tiempo que el emisor puede transmitir
hasta que se agota el buffer de transmisión y por tanto vale kT . tt
Por tanto en este caso la eficiencia U vale
U = ( kT· tt ) / Tc = ( kT · tt ) / ( 2 tp + tt + tack ) < 1
Por otro lado interesa que las tramas de reconocimiento ACK lleguen antes de que
se agote la ventana. Recordemos que cuando llega una trama de reconocimiento
ACK, se incrementa el valor del límite inferior de ventana Linf.
La solución óptima es aquella en que la eficiencia U vale 1, luego
U = ( kT · t t ) / T c = 1
kT óptima = Tc / tt
Si k < kopt entonces U = ( kT · tt ) / Tc < 1
Si k ≥ kopt entonces U = 1 y además el transmisor nunca se bloquea.
Desarrollando el valor de KT óptimo, resulta
kopt = Tc / tt = ( Tespera + tt ) / tt = ( Tespera / tt ) + 1
http://www.tonet.jazztel.es
86
siendo Tespera = 2 tp + tack , si suponemos que el temporizador se activa cuando sale
el último bit de la trama.
Numeración de las tramas
El objetivo de la numeración de las tramas sirve para poder relacionar las tramas de
reconocimiento con la trama que quiere reconocer en el caso de que haya varias
tramas pendientes de reconocimiento y además en este caso el orden de recepción
no tiene porque coincidir con el de envío. Si no se usasen ventanas se podría
utilizar una numeración con rango infinito.
Limitando el número de tramas que pueden ser transmitidas, limitamos también el
rango de números de secuencia que se pueden usar. El número de secuencia es
un campo de n bits en la trama. Con n bits, podemos secuenciar 2n números
N = 2n números de secuencia
Para calcular el valor máximo necesario de N nos debemos situar en el caso peor,
que sería cuando todas las tramas de reconocimiento ACK se pierden y por tanto al
receptor le llegan todas las tramas repetidas.
Caso de Stop-and-wait
Si se emplea el método Stop-and-wait, con un bit para la numeración de tramas es
suficiente (n=1), porque solo se necesitan dos números de secuencia (N=1), el 0 y
el 1, es decir,
•
si todo va bien, ahora usa 0, y a continuación el 1
•
si es necesario la repetición, si había mandado una trama con número de
secuencia 0, vuelve a enviar la misma trama con número de secuencia 0, y lo
mismo si el número de secuencia fué 1.
Caso de repetición selectiva
Si se emplea el método de repetición selectiva, ahora kT = k , es decir, el transmisor
envía toda su ventana de transmisión ( k tramas) y se queda bloqueado esperando
la primera trama de reconocimiento ACK de la secuencia.
Para calcular el máximo valor de N nos hemos de situar en el caso peor que es si el
receptor envía las tramas de reconocimiento ACK pero que todas están corruptas.
En este caso el transmisor retransmite toda la secuencia cuando han saltado los
temporizadores.
¿Cómo sabe el receptor si esta nueva secuencia es la repetición de la anterior
debido a que todas las tramas de reconocimiento ACK están corruptas o es una
nueva secuencia? La manera de hacerlo es enviando unos nuevos números de
secuencia distintos a los de la primera serie. Así en este caso el número de
secuencia debe ser mayor que el tamaño de la ventana.
N = 2n ≥ 2 kT
kT <= N / 2 = 2n-1
http://www.tonet.jazztel.es
87
Ahora pues nos encontramos que el valor de la ventana kT debe ser un compromiso
entre la desigualdad kT <= N/2 y la condición vista anteriormente de kT ≥ kopt
Por ejemplo si se emplean 3 bits para la numeración de tramas (n = 3), el valor
máximo de números de secuencia es 8 (N = 8) y en este caso por un lado
kT <= N / 2 = 4
pero por el otro supongamos que kopt = 24
En este supuesto no hay solución óptima porque para kT = 24, el número de bits n
necesario para la numeración de tramas es
24 = N/2  N=48  48= 2n-1 por tanto n = 6 bits.
Caso de Go-back-N
Si se emplea el método Go-back-N, el supuesto peor es cuando el transmisor envía
toda la ventana y el receptor reconoce todas las tramas pero determina que son
corruptas. Ahora el transmisor reenvía otra vez todas las tramas.
Al receptor le basta reconocer el primero de la nueva secuencia ya que si la primera
trama I0 fuera la incorrecta, el receptor descartaría automáticamente el resto de la
secuencia. Por tanto en este caso
N ≥ kT + 1
Por ejemplo si n = 3 , N = 8 y el tamaño de la ventana vale kT <= N – 1 = 7
Pero por otro lado si kopt = 24, entonces k + 1 ≥ N y 25 ≥ N = 2n
n= 5 bits
Utilización del enlace
Como ya hemos visto, si U es la utilización del enlace
U =1 si kT ≥ kopt
U = ( kT · tt ) / Tc si kT < kopt
Por otro lado:
-
Los números de secuencia pueden tener un gran impacto en la
eficiencia si no están bien diseñados.
-
La elección de la ventana de retransmisión tiene un gran impacto en el
cálculo del número medio de retransmisiones, recordemos que Tc’ = Nr ·
Tc
http://www.tonet.jazztel.es
88
Caso de repetición selectiva
Si se utiliza el método de repetición selectiva, el numero de retransmisiones vale
Nr = 1 / ( 1 – Pf)
siendo Pf la probabilidad de trama corrupta.
En este caso el valor de utilización U del enlace vale
U = 1 / Nr si kT ≥ kopt
U = ( kT · tt ) / ( Nr · Tc ) si kT < kopt
Caso de Go-back-N
Si se utiliza el método Go-back-N, cuando una trama está corrupta se han de
retransmitir más de una trama.
Si Nr es el número medio de tramas retransmitidas para conseguir éxito, se
demuestra que
Nr = ( 1 – Pf + k · Pf ) / ( 1 – Pf )
Y por tanto la utilización del enlace U valdrá
U =1 / Nr = ( 1 – Pf ) / (1 – Pf + k · Pf ) si kT ≥ kopt
U = ( k · tt ) / (Nr · Tc ) = k ( 1 – Pf ) tt / Tc · ( 1 – Pf + k · Pf ) si kT < kopt
En el caso de k  ∞ , k · Pf  0, entonces para k ≥ kopt
U = ( 1 – Pf )
y por tanto coincide con el valor del caso de repetición selectiva.
http://www.tonet.jazztel.es
89
14. Redes LAN (Local Area Network)
14.1.Introducción
LAN (Local Area Network) es una red que conecta directamente entre sí equipos
situados en un ámbito geográfico local (unos centenares de metros o unos pocos
Km). Suele ser administrada localmente por la misma empresa que dispone de la
red, es decir, se trata de una red privada. Ofrece velocidades de transmisión altas,
del orden de los Mbps y en la actualidad se llega al Gbps.
El medio de transmisión es compartido por todas las estaciones, por consiguiente
es necesario el uso de un protocolo de enlace que permita a las estaciones acceder
de forma coherente al medio.
Las LANs se dividen en:
-
LANs cableadas y que se caracterizan porque usan un medio guiado y
-
LANs no cableadas que se caracterizan porque usan medios no
guiados.
El componente básico de una LAN es la tarjeta de red (NIC: Network Interface
Cards) y sus controladores: las NICs implementan el hardware de red (nivel físico y
enlace) de la LAN mientras que los controladores implementan los programas del
protocolo a nivel de enlace.
Si la LAN es cableada, tiene como componentes adicionales:
−
El cable: medio guiado (coaxial, par trenzado o fibra óptica). Los cables se
instalan siguiendo los estándares de cableado estructurado (norma EIA
568) y
−
Los conectores: es lo que permite conectar la tarjeta de red al cable.
14.2. Topologías
La topología es la estructura que forman el medio de transmisión y los ordenadores
conectados al medio. Hay tres topologías físicas básicas:
-
Bus: típicas de las redes Ethernet antiguas
-
Anillo: típicas en las redes Token Ring y FDDI
-
Estrella: utilizadas en todas las LAN actuales en substitución de los
buses y los anillos.
http://www.tonet.jazztel.es
90
14.2.1.Topología bus
Punto de vista físico
En esta topología, cada dispositivo está conectado a un cable común y los
dispositivos comunes son aquellos que permiten que el dispositivo se una o se
conecte al único medio compartido. Una de las ventajas de esta topología es que
todos los dispositivos están conectados entre sí y, de ese modo, se pueden
comunicar directamente. Una desventaja de esta topología es que la ruptura del
cable hace que la red quede partida en dos de forma inaccesible una parte de la
otra.
Punto de vista lógico
Una topología de bus permite que todos los dispositivos de red puedan ver todas
las señales de todos los dispositivos del bus, lo que puede ser ventajoso si se
desea que todos los dispositivos obtengan esta información. Sin embargo, puede
representar una desventaja ya que es común que se produzcan problemas de
tráfico y colisiones.
14.2.2.Topología en anillo
Punto de vista físico
La topología en anillo muestra todos los dispositivos que están conectados
directamente entre sí por medio de cables en lo que se denomina una cadena
margarita.
Punto de vista lógico
Para que la información pueda circular, cada estación debe transferir la información
a la estación adyacente.
14.2.3.Topología en estrella
Punto de vista físico
La topología en estrella tiene un nodo central desde el que salen todos los enlaces.
La ventaja principal es que permite que todos los demás nodos se comuniquen
entre sí de manera conveniente, ya que el nodo central puede actuar como gestor.
La desventaja principal es que si el nodo central falla, toda la red se desconecta.
Según el tipo de dispositivo de red que se usa en el centro de la red en estrella, las
colisiones pueden representar un problema.
Punto de vista lógico
El flujo de la información puede ser transferido o no a todos los nodos de la red, en
función del tipo de dispositivo que sea el nodo central. Si este nodo central es un
http://www.tonet.jazztel.es
91
concentrador, que se caracteriza por ser un nodo pasivo, todos los nodos verán
todos los flujos venga del nodo que venga. Pero si el nodo central es un
conmutador, que se caracteriza por ser un nodo activo con su procesador, este
puede establecer filtros de forma que se impongan restricciones de tránsito al flujo
de información. Un inconveniente de este tipo de topología es que el fallo del nodo
central hace que toda la red deje de funcionar.
14.2.4.Topología en estrella extendida
Punto de vista físico
La topología en estrella extendida tiene una topología en estrella central, con cada
uno de los nodos finales de la topología central actuando como el centro de su
propia topología en estrella. La ventaja de esto es que el cableado es más corto y
limita la cantidad de dispositivos que se deben interconectar con cualquier nodo
central.
Punto de vista lógico
La topología en estrella extendida es sumamente jerárquica, y busca que la
información se mantenga local. Esta es la forma de conexión utilizada actualmente
por el sistema telefónico.
14.2.5.Estrella compartida y estrella conmutada
En cuanto a los dispositivos a los que se conectan los ordenadores de una red, hay
dos filosofías:
− Por difusión (Broadcasting) o compartido (Shared).
− Por conmutación (Switching).
En cuanto a topologías, por los dispositivos que las definen en las LANs son
− Estrella compartida. En este caso se emplean concentradores o hubs (repetidores
multipuerto) que son dispositivos pasivos. Internamente la conexión es en estrella
o mediante un bus interno. Se usa en las redes Ethernet. Es un dispositivo que
funciona por difusión, es decir, cuando una estación transmite una trama, el
concentrador propaga esta trama por todos los puertos de salida de forma que
todas las estaciones reciben una copia de la trama.
− Estrella conmutada. En este caso se emplean conmutadores o switches, que son
dispositivos activos dotados de un procesador. Internamente es una estrella o bus
interno. La trama transmitida por una estación es transmitida por un puerto
determinado dependiendo de la dirección de la estación (dirección MAC). Estos
dispositivos disponen de las tablas necesarias para realizar esta funcionalidad.
http://www.tonet.jazztel.es
92
14.3. IEEE 802.2
El proyecto 802 de IEEE define las especificaciones del nivel de enlace más
extendido en las LANs. Este nivel de enlace se divide en dos subniveles:
–
–
el subnivel MAC (Medium Access Control), que es un nivel 1 (físico) y
el subnivel LLC (Logical Link Control).
El subnivel MAC tiene como funcionalidades:
•
El envío y la recepción de tramas.
•
La asignación de una dirección a cada ordenador.
•
Una detección de errores y
•
La implementación del protocolo de acceso al medio.
Emplea tres clases defunciones primitivas en cuanto a su relación con el subnivel
LLC:
•
Request. Se trata de solicitar algún servicio por parte del subnivel LLC al subnivel
MAC, por tanto, siempre es en la dirección desde el subnivel LLC al MAC. Esta
primitiva incluye la dirección de destino, el tipo de servicio solicitado y los datos a
enviar.
•
Indication. Se trata de tramas con datos o avisos del subnivel MAC al LLC .
•
Confirmation. Estas tramas se envían al subnivel LLC desde el subnivel MAC,
indicándole que las tramas por el enviadas, ya han sido enviadas al medio y a su
vez incluyen información del tipo de fallo o no de la trama Request.
El subnivel LLC está entre el nivel MAC y el nivel 3 (red) y sus funcionalidades son:
•
La posibilidad de servicios confirmados.
•
Un control de error.
•
Un control de flujo.
•
Entramar y multiplexar jerarquías de protocolos de nivel superior (e.g. SPX/IPX,
TCP/IP, …).
El protocolo 802.2 se corresponde con el subnivel LLC del proyecto 802 dentro del
nivel de enlace (2) del modelo OSI. Por un lado interopera con los protocolos 802.3,
802.5,etc. del subnivel MAC del nivel de enlace (2) y por otro con los protocolos de
nivel de red (3).
Nivel 3
Nivel 2
IP
LLC
MAC
IPX
NetBIOS
802.2
802.3
802.5
Otros
http://www.tonet.jazztel.es
93
Este protocolo 802.2 no se refleja en los mensajes que circulan por las redes,
porque son internos, es decir, van dentro del propio dispositivo como un
controlador. Sus direcciones origen y destino, conocidas como SAPs, se
corresponden a los protocolos de nivel 3 de los dispositivos origen y destino.
El subnivel LLC inicia el intercambio de señales de control, organiza el flujo de
datos, interpreta los comandos, genera respuestas y gestiona las funciones de
control de errores y su recuperación.
Este protocolo 802.2 ofrece 3 tipos de servicio distintos:
•
Tipo 1 : sin reconocimiento y no orientado a conexión. También se llama
modo de operación datagrama del usuario. Es el más usado por ejemplo en
redes TCP/IP. No hay reconocimiento por parte del receptor, ni el emisor
espera este reconocimiento, porque se consideran las redes suficientemente
fiables. Por esta razón, los servicios del nivel transporte, es decir, de nivel
superior, los que tienen que proporcionar el control de error.
•
Tipo 2 : orientado a conexión. En este caso, se establecen circuitos virtuales
entre el dispositivo que envía y el dispositivo que recibe. Es el caso del
protocolo HDLC en modo ABME (Asyncrhonous Balanced Mode Extended).
En este caso, hay primero el establecimiento del enlace y luego durante la
transmisión, hay una detección de errores, su recuperación y un control de
flujo.
•
Tipo 3 : con reconocimiento y no orientado a conexión. En este caso no hay
circuitos virtuales. Este tipo resulta especialmente interesante para las LAN
de alta velocidad como FDDI y concretamente para los protocolos de gestión
de la LAN.
La estructura del mensaje es
SAP destino
SAP origen
Control
Datos
Donde
•
SAP destino es un campo de 8 bits, de los cuales 6 representan la dirección
propiamente dicha. El bit 8 es el indicativo de I/G (individual o grupo). La
dirección significa la puerta del protocolo LLC correspondiente con el
protocolo de nivel de red del dispositivo destino.
•
SAP origen es un campo de 8 bits. El bit 8 es 0 o 1, si el mensaje es un
comando o una respuesta. La dirección que utiliza 6 bits, significa la puerta
del protocolo LLC correspondiente con el protocolo de nivel de red del
dispositivo origen.
•
Control, campo de 1 o 2 octetos donde se especifica la función del comando
de solicitud o respuesta, así como el tipo de LLC empleado. Su contenido se
parece mucho al del protocolo SDLC, así hay 3 tipos de formatos: sin
secuencia, supervisor y de información.
•
Datos.
http://www.tonet.jazztel.es
94
En cuanto a la dirección SAP, un dispositivo puede tener más de un SAP asociado
a ella para un nivel específico, igual que un dispositivo puede tener más de una
sesión activa mediante un SAP.
Los procesos de los niveles superiores usan los servicios del protocolo 802.2 a
través de puntos de acceso al servicio (SAP - Service Access Points). Estos SAP
identifican los protocolos del nivel de red que deben recibirlo, en el caso de pasar
mensajes de nivel 2 al 3. Sin embargo si es al contrario, es decir, un mensaje que
pasa del nivel 3 al 2, el SAP destino es el protocolo de nivel de red del dispositivo
de destino.
Algunos valores de SAP son los siguientes:
APPN
TCP/IP
SNA
X.25
SNAP
04
06
08
7E
AA
Vines
IPX
NetBIOS
RPL
Ungerman-Bass
BC
E0
F0
F8
FA
14.4.Conmutadores / Switches
Al principio de la existencia de las redes de ordenadores, se utilizaba un
concentrador o hub, al cual se conectaban todos los ordenadores de la red. Así
cuando un ordenador emitía un mensaje, todos los ordenadores de la red lo
recibían y solo contestaba el ordenador cuya dirección MAC coincidía con el campo
destino del mensaje. Estos concentradores o hubs eran elementos pasivos, es
decir, no tenían ninguna capacidad de procesamiento.
La siguiente fase consiste en sustituir los concentradores o hubs por conmutadores
o switches. Estos dispositivos tienen capacidad de procesamiento, por lo que
internamente pueden disponer de capacidad de filtrado y enrutamiento. Así cuando
un ordenador envía un mensaje y llega al concentrador, este dispositivo de acuerdo
con sus instrucciones internas lo envía hacia una o más salidas. Estas instrucciones
internas pueden ser de filtrado o enrutamiento, es decir, a diferencia de los
concentradores, un mensaje enviado por un ordenador no es visto por todos los
ordenadores conectados al conmutador.
Así estos conmutadores se caracterizan por:
•
Incrementar el ancho de banda de la LAN.
•
El uso del “Spanning Tree Algorithm” para evitar bucles cerrados en el
caso de varios conmutadores conectados entre si. Este algoritmo lo
emplea el protocolo que permite a los conmutadores intercambiarse las
tablas de direcciones MAC que hay en cada puerto.
http://www.tonet.jazztel.es
95
Hay dos tipos de conmutadores o switches:
-
Cut-Through Switching
-
Store-and-Forward Switching
14.4.1. Tipo Cut-Through Switching
Este tipo de conmutador retransmite las tramas después de que algunos bits
acaban de ser recibidos, es decir, antes de leer toda la trama, ya empieza a
retransmitirla.
Esta es la razón por la que reenvía cualquier tipo de trama, ya sean correctas o no,
tales como:
-
“runt frames”. Se entiende por “runt frame”, una trama con un tamaño menor al
tamaño mínimo de un paquete Ethernet (64 octetos). Si la retransmisión de la
trama es después de leer más de 64 octetos, el propio switch puede detectar las
runt frames.
-
Tramas erróneas.
Este tipo de conmutadores se congestionan fácilmente.
14.4.2.Tipo Store-and-Forward Switching
Este tipo de conmutador retransmite tramas después de recibir todos los bits de la
trama.
Se caracteriza por:
-
No retransmitir tramas erróneas y “runt frames” .
-
No se congestiona tan fácilmente como un conmutador Cut-Through.
-
Desventaja: mayor latencia debido al almacenamiento previo de toda la trama.
Estos conmutadores emplean tres clases de topologías de almacenamiento:
-
Buffers de entrada: problema Head Of Line (HOL).
-
Buffers de salida: puede haber congestión si los buffers son pequeños.
-
Buffers compartidos: si es necesario permite implementar otras disciplinas de
planificación a FIFO.
-
Combinación de las distintas topologías.
http://www.tonet.jazztel.es
96
14.4.3.Conmutadores híbridos
También existen conmutadores híbridos de los tipos anteriores. Por ejemplo un
conmutador del tipo Store-and-Forward y Cut-Through. En este caso depende de
las circunstancias del estado y tráfico de la red, emplea un tipo u otro.
Así podemos establecer que
•
Si no hay congestión y la tasa de errores es pequeña, emplea el método CutThrough.
•
Si hay congestión o la tasa de errores es alta, emplea el método Store-andForward.
•
Conmutación adaptativa: la decisión de usar Cut-Through o Store-andForward se toma trama-a-trama.
14.4.4.Conmutación a nivel 2 y 3
Existen dos métodos de conmutación de tramas de datos:
-
conmutación a nivel 2 y
-
conmutación a nivel 3.
La conmutación es el proceso de tomar una trama que llega de una interfaz y enviar
a través de otra interfaz. Los enrutadores utilizan la conmutación de nivel 3 para
enrutar un paquete; los conmutadores utilizan la conmutación de nivel 2 para enviar
tramas.
La diferencia entre la conmutación de nivel 2 y nivel 3 es el tipo de información que
se encuentra dentro de la trama y que se utiliza para determinar la interfaz de salida
correcta. Con la conmutación de nivel 2, las tramas se conmutan tomando como
base la información de la dirección MAC. Con la conmutación de nivel 3, las tramas
se conmutan tomando como base la información del protocolo de nivel de red.
Si el conmutador de nivel 2 no sabe dónde enviar la trama, realiza una solicitud de
broadcast de la trama desde todos sus puertos hacia la red a fin de saber cuál es el
destino correcto. Una vez que vuelve la trama de respuesta, el conmutador aprende
la ubicación de la nueva dirección y agrega dicha información a la tabla de
conmutación.
http://www.tonet.jazztel.es
97
15. Protocolos de acceso al medio (MAC)
Se trata de aquellos protocolos cuyas funcionalidades corresponden al nivel de
acceso al medio (MAC) y que a su vez corresponde a un subnivel del nivel de
enlace según el modelo OSI. En la actualidad hay los tres tipos siguientes:
•
Paso de testigo. Los protocolos de este tipo consisten en que una estación no
transmite hasta que está en posesión de un token y que además esté libre.
•
Aleatorios. Los protocolos de este tipo consisten en que cuando una estación
quiere transmitir, transmite sin verificar si el medio está ocupado o no.
•
Reserva. Los protocolos de este tipo se caracterizan porque la estación
transmisora verifica si el medio está ocupado antes de transmitir, es decir, que
mientras una estación está transmitiendo, tiene el medio reservado hasta que
finaliza su transmisión. Es el caso de los protocolos CSMA/CD que emplea
Ethernet y CSMA/CA del protocolo IEEE 802.11
15.1.Token Ring
Esta tecnología de red de área local fue diseñada originalmente por IBM en los
años 70 y estandarizada por el IEEE con el nombre IEEE 802.5. La especificación
IEEE 802.5 es prácticamente idéntica a la red Token Ring de IBM y absolutamente
compatible con ella.
Este protocolo está en la actualidad en desuso por razones de mercado, aunque
aún existen instalaciones con este protocolo. Tecnológicamente es mejor que el
protocolo Ethernet, porque permite un mayor aprovechamiento del ancho de banda
(hasta un 90%, contra un 30% del Ethernet). Sin embargo el precio de los
http://www.tonet.jazztel.es
98
dispositivos y el no haber superado los 16 Mbps, hace que no hayan nuevas redes
con este protocolo.
En cuanto a su topología:
•
Físicamente es una estrella (MAUs: Multistation Access Unit).
•
Lógicamente es un anillo por paso de testigo (token).
El código Manchester Diferencial es el que se usa para codificar la señal que
contiene los datos binarios, que son transmitidos a velocidades de 4 o 16 Mbps
(velocidades estándar del IEEE). En la implementación de redes Token Ring de
IBM, se recomienda cable apantallado STP aunque también se puede usar el cable
sin apantallar UTP. El cable de fibra óptica multimodo es otra opción de cableado.
Este anillo consta de un conjunto de repetidores conectados entre sí con enlaces
half-duplex punto-a-punto formando un lazo cerrado. Cada estación se conecta al
repetidor con un enlace full-duplex punto-a-punto. Soporta como máximo 260
estaciones por anillo y los anillos se pueden unir mediante puentes o bridges.
El acceso al anillo es controlado por un token que circula continuamente por el
mismo. El equipo que quiera transmitir datos, esperará que le pase el token y a su
vez que esté libre. Cuando le llega el token, el equipo lo cambia por un mensaje, al
que le añade los datos y lo transmite. Si el equipo de destino está activo, copiará el
mensaje, lo marcará como copiado, y lo reenviará al equipo transmisor. Este equipo
descargará los datos y liberará el token al anillo.
Repetidores multipuerto o MAU/CAU
Los repetidores regeneran la señal y la retransmiten. Los repetidores pueden estar
en tres estados distintos:
•
En estado de transmisión. Es el estado del repetidor perteneciente a la
estación transmisora. La estación transmite una trama que el repetidor
regenera y retransmite al siguiente repetidor.
•
En estado de escucha. Es el estado de aquellos repetidores conectadas a
las estaciones receptoras. Estos repetidores además de regenerar y
retransmitir las tramas hacia el siguiente repetidor, copian la trama y la
retransmiten a la estación en el caso de que la dirección MAC destino
pertenezca a la estación a la que están conectadas. En este estado es
posible modificar bits de las tramas si el algoritmo de acceso al medio lo
considera necesario.
•
En estado de cortocircuito. Es el estado en el que el repetidor se comporta
como un cable, es decir, es como si no existiese un repetidor. Es el caso de
que en un conector del concentrador no haya conectado ningún dispositivo.
Métodos de liberación del testigo
El acceso al medio del Token Ring se basa en el paso de testigo (token passing).
Este algoritmo consiste en que sólo puede transmitir la estación que posee una
http://www.tonet.jazztel.es
99
trama especial llamada testigo (token). Una vez transmitida la trama, la estación
libera el testigo que pasa a la siguiente estación. Así se repite el proceso
continuamente.
Hay tres métodos de liberación del testigo:
•
Single Packet: la estación transmisora libera el testigo cuando recibe el
último bit de la trama, es decir, el último bit de la trama ha dado la vuelta
completa al anillo.
•
Single Token: la estación transmisora libera el testigo cuando recibe el
primer bit de la trama, es decir, el primer bit de la trama ha dado la vuelta
completa al anillo.
•
Multiple Token: la estación transmisora libera el testigo inmediatamente
después de haber transmitido el último bit de la trama.
15.2. Ethernet
Ethernet o IEEE 802.3 es el protocolo más utilizado actualmente en el mundo de las
redes de ordenadores por razones de economía. Desde su introducción en el
mercado en los años 70, se ha implantando en un gran abanico de ámbitos de todo
tipo. Inventado por Xerox en los años 70 y llevado al mercado con el nombre de
Ethernet V.1, el protocolo fue desarrollado en un foro donde estaban las empresas
DEC, Intel y Xerox. Este foro sacó en los años 80 una nueva versión de Ethernet
llamada Ethernet (DIX) V2.
También se hizo pública su arquitectura y así de la mano del Institute of Electrical
and Electronics Engineers (IEEE), ha llegado a ser un estándar internacional de
facto. El IEEE ratificó el estándar Ethernet DIX V2 con ligeras modificaciones y lo
denominó IEEE 802.3. El estándar IEEE 802.3 ha sido también aprobado por otras
organizaciones tales como el American National Standards Institute (ANSI) y el
International Organization for Standardization (ISO 8802-3).
Así hay 4 versiones de este protocolo que son las siguientes:
Ethernet
Esta versión corresponde a la versión original DIX y
su posterior versión II
802.3
Corresponde al protocolo 802.3 sin empleo del
protocolo 802.2. Este protocolo lo empleó Novell
Netware cuando aún no estaban aprobadas las
especificaciones del protocolo.
802.3 - 802.2 LLC
Es el protocolo 802.3 pero que necesita del
protocolo 802.2 para su funcionamiento.
http://www.tonet.jazztel.es
802.3 - 802.2 LLC - SNAP
100
Ethernet SNAP extiende el encabezado IEEE 802.2
agregando un encabezado de Protocolo de acceso
de subred (SNAP) que proporciona un código de
"tipo de encapsulamiento" similar al definido en la
especificación de Ethernet Versión II y utilizado con
TCP/IP y AppleTalk.
Las principales ventajas del protocolo Ethernet / 802.3 son :
•
Amplia elección de equipos.
•
Bajo precio de los mismos.
•
Alta velocidad de transmisión.
En cuanto a su topología:
•
Físicamente es una estrella (hub o concentrador).
•
Lógicamente es una estrella.
El acceso al medio utiliza el método CSMA/CD (Carrier Sense Multiple Access with
Collision Detection). Este método se basa en escuchar el medio para ver si está
ocupado por alguna trama de alguna estación antes de transmitir tramas. A pesar
de que se escuche el medio, las tramas pueden “colisionar” en el medio con lo que
en este caso es necesario retransmitirlas.
Otro método similar es el CSMA/CA, que consiste en informar de forma previa a la
red de que se va a transmitir. Con ello se evitan colisiones, pero disminuye la
eficiencia de la red, ya que hay una información adicional que se transmite y que no
son datos propiamente dichos.
15.2.1.Nivel físico
Ethernet forma una familia que abarca Ethernet (10 Mbps), Fast Ethernet (100
Mbps) y Gigabit Ethernet (1 Gbps, 10 Gbps) sobre cables de cobre apantallados
STP y sin apantallar UTP, y de fibra óptica multimodo y monomodo.
El método de codificación de las señales es la Manchester, es decir, el tiempo de bit
se divide en dos mitades, siendo su transición en función del contenido del bit, así
•
el 1 corresponde a una transición baja-alta y
•
el 0 a una transición alta-baja
http://www.tonet.jazztel.es
101
Medios de transmisión
La velocidad del protocolo Ethernet es de 10 Mbps. Sus medios de transmisión
definidos en sus especificaciones cintemplan 4 configuraciones básicas: 10Base2,
10Base5, 10BaseT y 10BaseF.
El significado del número a la izquierda es su velocidad. En cuanto el código a su
derecha, corresponde a la máxima distancia en cientos de metros o a la clase de
medio de transmisión empleado.
a) 10 Base2
En este caso se trata de redes Ethernet que emplean cable coaxial de tipo thin, de
aquí que también se las conozca como Thinnet o Cheapnet.
El empleo de este tipo de cableado hace que los dispositivos se conecten en bus
(segmento) y el empleo de taps (impedancias de 50 Ω) en sus extremos.
El tipo de conector es BNC-T. Este conector conecta la tarjeta de red (NIC) de la
estación al cable coaxial.
La distancia máxima recomendada es de 200 m.
b) 10Base5
En este caso se trata de redes Ethernet que emplean cable coaxial de tipo thick, de
aquí que también se las conozca como Thicknet.
En el caso de tener un 10Base5 se usa un transceiver para conectar la tarjeta de
red al cable. El hardware está repartido entre la tarjeta de red y el transceiver. En
este caso los conectores que se emplean son los AUI (Attachment Unit Interface).
La distancia máxima recomendada es de 500 m.
c) 10BaseT
Las configuraciones básica 10BaseT emplea cable de cobre con par trenzado sin
apanatallar UTP-3 y UTP-5.
Los concentradores implementan internamente un bus. Las estaciones se conectan
generalemente con cable sin apantallar UTP y conector RJ45 entre las tarjetas de
red de la estación y el puerto del concentrador.
d) 10BaseF
La configuracione básica 10BaseF emplea fibra óptica. Los conectores son del tipo
SC o ST.
10BaseF define 3 variantes:
•
10BaseFP (passive star): repetidor óptico pasivo con un máximo de 33
nodos y 1Km/segmento.
http://www.tonet.jazztel.es
•
•
102
10BaseFL (link): interconecta nodos o repetidores con un límite de 2 Km.
10BaseFB (backbone): interconecta repetidores hasta 2 Km entre ellos con
transmisión síncrona (hasta 15 repetidores en cascada), excediendo el límite
de la regla 5-4-3. Se usa para interconectar múltiples concentradores en
cascada y así incrementar la longitud de la red excediendo la regla de que
sólo haya 5 segmentos de red conectados entres sí.
15.2.2.Nivel MAC
El formato de trama es algo diferente de si se trata del protocolo Ethernet-II o el
Ethernet IEEE 802.3. Los formatos de los mensajes para Ethernet y IEEE 802.3 son
distintos, sin embargo, ambos protocolos usan el mismo medio y el mismo método
de acceso. Esto significa que los equipos de la red pueden compartir ambos
formatos en el bus común, pero no se pueden comunicar entre sí.
La estructura del mensaje 802.3 / Ethernet es la siguiente :
Preámbulo Sincroni- Dirección Dirección
zación
destino
origen
Tipo
Datos
PAD Control
de error
Donde
•
Preámbulo - 7 octetos. Permite que la electrónica de señalización del nivel
físico pueda sincronizar con la electrónica de recepción de mensajes. En
contenido de cada octeto es 10101010
•
Sincronización (SFD-Start Frame Delimiter) - 1 octeto. Indica que porción de
datos del mensaje vienen a continuación en la transmisión del mismo. Su
contenido es 10101011
•
Dirección destino (DA) - 48 bits. Se corresponde a la dirección MAC (Media
Access Control). Tres tipos de direcciones destino son posibles : individual,
de multicast y de broadcast. La individual contiene una única dirección de un
nodo concreto de la red. La de multicast significa que se usa un grupo de
direcciones. La de broadcast es una forma especial de multicast, pero para
todos los nodos de la red.
•
Dirección origen (SA) - 48 bits. Su significado es el mismo que la dirección
destino.
•
Tipo - 16 bits. Este campo identifica el tipo de protocolo del nivel superior.
Los fabricantes deben registrar sus protocolos de acuerdo con el estándar
Ethernet. Cada protocolo registrado tiene un identificador de 2 octetos. En el
protocolo 802.3, este campo corresponde a la longitud del mensaje. La
identificación del protocolo de nivel superior en el caso del protocolo 802.3 se
realiza en las direcciones SAP del protocolo 802.2, por ejemplo 0x0800 si es
protocolo IP o 0x0806 si es protocolo ARP.
•
Datos - Este campo contiene los datos a transmitir y su longitud oscila entre
38 y 1482 octetos. Ethernet asume que los niveles superiores asegurarán
http://www.tonet.jazztel.es
103
que el tamaño mínimo de mensaje sea de 46 octetos. Si se emplea el
protocolo 802.2, dentro de este campo se incluye la cabecera de este
protocolo.
•
PAD - campo de relleno. IEEE 802.3 (y Ethernet) especifican un tamaño
mínimo de mensaje de 64 octetos. Sin embargo, el 802.3 permite que el
campo de datos sea inferior a los 46 octetos requeridos para que la longitud
total sea como mínimo de 64 octetos. Por ello el 802.3 añade los caracteres
de rellenos necesarios para cumplir este requisito.
•
Control de error - 32 bits. Se emplea el método de control de error CRC-32.
En el caso del protocolo 802.3 con 802.2, el campo de datos se desglosa en:
•
SAP destino.
•
SAP origen.
•
Control, campo de 1 ó 2 octetos.
El protocolo 802.3 con SNAP desglosa su campo de datos en:
•
SAP destino.
•
SAP origen.
•
Control, campo de 1 ó 2 octetos.
•
Id. Organización, 3 octetos.
•
Tipo, 2 octetos. Corresponde al tipo de protocolo de nivel superior, así para
IP, es 2048 y para ARP, 2054.
El tamaño de trama es como mínimo de 64 octetos y como máximo 1518 octetos.
15.2.3.Tecnología CSMA/CD
CSMA/CD (Carrier Sense Multiple Access con Detección de Colisión) es el nombre
de la tecnología utilizada en el bus del protocolo Ethernet /IEEE 802.3 para
controlar la operación de la red.
Su esquema de funcionamiento está detallado en el esquema adjunto.
Fase de transmisión
Cuando la estación transmisora quiere enviar una trama,
•
primero debe montar la trama con la información recibida del protocolo del
nivel superior.
http://www.tonet.jazztel.es
104
•
A continuación verificar si el medio está libre. Si otro dispositivo está
transmitiendo, debe esperar a que termine su transmisión.
•
En el caso de que esté libre, verificar que el tiempo IPG que ha de
transcurrir entre la transmisión de dos tramas consecutivas ha transcurrido.
La razón de este tiempo IPG es con el fin de que una estación esté mucho
tiempo transmitiendo y no deje transmitir a otra.
•
Transmitir el primer bit de la trama y a continuación comprobar si hay
colisión. Esta colisión puede existir en cuanto dado que hay una distancia
entre dispositivos y en consecuencia un retardo, hace que aunque se
verifique que el medio esté libre, otra estación también puede estarlo
verificando casi simultaneámente. En este tiempo del retardo podrían
ponerse a transmitir ambas.
•
Esta transmisión de bits y su verificación de colisión se realiza durante toda
la transmisión de la trama.
http://www.tonet.jazztel.es
105
Fase de colisión
Si hay colisión, la estación que la detecta, envía una señal de jamming consistente
en varios bits que fuerzan a que la colisión se prolongue durante un tiempo
suficiente para que se enteren todas las estaciones del segmento.
A continuación la estación que quiere transmitir, deja transcurrir un tiempo aleatorio
o tiempo de backoff, y vuelve a intentar la transmisión pendiente. El componente
aleatorio de este tiempo es para minimizar la probabilidad de nuevas colisiones.
Este tiempo de backoff es un múltiplo del tiempo de bit y vale
t = k x 512 x tb
siendo k un valor entero aleatorio y tb el tiempo de bit.
http://www.tonet.jazztel.es
106
Estos intentos también son controlados por un contador, que una vez superado un
umbral establecido intentos, da la trama por no transmitida.
La probabilidad de una colisión es proporcional a
•
El número de dispositivos conectados al bus.
•
La frecuencia de transmisión.
•
El tamaño de los mensajes y
•
La longitud de los cables de la red.
Fase de recepción
Mientras un dispositivo no emite, está en estado de escucha. Cuando detecta la
presencia de una señal en la red, inhibe la posibilidad de transmisión del mismo.
Con los bits de preámbulo de la trama, obtiene la sincronización necesaria para
leerla. Lo primero que obtiene es la dirección MAC de destino de la misma y la
compara con la suya. En caso afirmativo, la dirección MAC origen, la dirección MAC
destino y los datos son enviados al buffer para su procesamiento. A continuación
verifica el código de error de la trama, dándola por correcta o errónea.También
verifica la longitud de la trama, y si es más pequeña de 64 octetos la descarta.
Si lo que lee es consecuencia de colisión, envía una secuencia de jamming y deja
de transmitir.
Valores de los parámetros
Es habitual en Ethernet el empleo de los siguientes valores:
Límite de intentos de transmisión = 16
Tamaño de la señal de jamming = 48 bits
IPG = 9,60 µs (96 bits)
15.2.4.Dominio de colisión
Dominio de colisión es aquel conjunto de dispositivos conectados físicamente entre
si, pero que en cada instante solo uno de ellos puede transmitir. Al área en el que
cuando se produce una colisión, se propaga la señal diciendo que hay una colisión,
se le llama Dominio de Colisiones.
En el caso de un concentrador, todos los dispositivos conectados a él forman un
dominio de colisión. Si tenemos varios concentradores conectados entre si, en este
caso solo hay un dominio de colisión. Sin embargo, si la unión de 2 concentradores
se hacen mediante el uso de un puente o un enrutador, cada concentrador es un
dominio de colisión.
http://www.tonet.jazztel.es
107
15.2.5.Ventana de colisiones
Cuando se utiliza el protocolo Ethernet en una LAN, y debido a la tecnología de
detección de colisiones CSMA/CD, existe técnicamente un tamaño mínimo de
trama. La razón es que si una estación transmite, y se produce una colisión porque
otra estación también está transmitiendo, ¿cuando tiempo se tarda en conocerse?
La situación peor, es decir, la del tiempo máximo es lo que se llama la ventana de
colisiones.
Este tiempo máximo es el que transcurre:
•
•
desde que se propaga el primer bit de la trama de una estación
más el tiempo que tarda en propagarse el primer bit de la señal de jamming
de la otra estación que ha detectado primero la colisión.
Hay que dar tiempo a que si se produce una colisión entre las dos estaciones más
lejanas el primer bit de la trama llegue a la estación más lejana (el tiempo de
propagación Tp ), que ésta detecte la colisión y transmita su jamming (otro tiempo
de propagación Tp ).
En esta situación límite, si cuando llega el primer bit de la señal de jamming a la
primera estación, ésta ya ha transmitido toda la trama, no detectará la colisión y
dará por entregada correctamente dicha trama, cuando en realidad no ha sido así
porque ha habido colisión.
La ventana de colisión, también llamada tiempo de vulnerabilidad Tv , nos permite
conocer durante cuanto tiempo el sistema es vulnerable a las colisiones dado que
una estación ha transmitido una trama.
Así la ventana de colisión es de dos veces el tiempo de propagación máximo,
teniendo en cuenta el viaje de ida y vuelta de la trama y el caso peor que
corresponderá al caso de las dos estaciones más alejadas.
Ventana de colisión = 2 · Tp max
Por otro lado se define como diámetro de la red (DR) a la distancia entre los dos
dispositivos más alejados.
Por todo lo expuesto el tamaño mínimo de trama L min vale
L min = ventana de colisión / T b
Siendo T b el tiempo de bit y la ventana de colisión
Ventana de colisión = 2 · T p max = 2 · ( DR / v p)
Siendo v p la velocidad de propagación.
El protocolo 802.3/Ethernet ha establecido el tamaño mínimo de trama en 64
octetos, es decir, 512 bits.
http://www.tonet.jazztel.es
108
En consecuencia para la velocidad de 10 Mbps, el diámetro máximo de red es
Ventana de colisión = L min · T b = 512 . (1 / 10000000) = 0,0000512 seg.
DR = (0,0000512 · v p ) / 2 = 0,0000256 · v p
La velocidad de propagación depende del medio de transmisión empleado, que
puede ser cable de cobre o fibra óptica. Para 100 Mbps, el diámetro máximo de red
vale
DR = (0,00000512 · v p ) / 2 = 0,00000256 · v p
Es decir, 10 veces menos.
Sin embargo el empleo de concentradores activos, introduce unos retardos por
cada uno de ellos que se encuentren entre los dos dispositivos más alejados.
Por esta razón en estos casos la ventana de colisión vale
Ventana de colisión = 2 · T p max + suma de retardos de los enlaces + suma de los
retardos de los repetidores + retardo NIC 1 + retardo NIC 2
Siendo el retardo NIC, el tiempo de procesamiento en la tarjeta de red del
dispositivo.
Las configuraciones básicas definen el tamaño máximo de un segmento Ethernet,
en 10Base2 es de 185 mt, en 10Base5 es de 500 mt, en 10BaseT es de 100 mt y
en 10BaseF depende si se emplea fibra multimodo o monomodo. Si queremos
aumentar el tamaño de la red (Diámetro de la Red) hasta su tamaño máximo
(Diámetro Máximo de la Red) hay que utilizar repetidores.
Las configuraciones básicas definen cual es el diámetro máximo de la red: en un
10Base2 es de 1 Km y en un 10Base5 es de 2.5 Km.
Primitivas
Las funciones necesarias para el funcionamiento del protocolo se llaman primitivas
y en el caso del protocolo 802.3/Ethernet son:
− request. Esta función consiste en una solicitud del protocolo 802.3/Ethernet
al protocolo de nivel superior, que en la actualidad es el 802.2
− Indication. Esta función consiste en recibir una notificación de sucesos
procedente del protocolo de nivel superior. En la actualidad es el 802.2
− Confirm. Esta función consiste en una respuesta a una solicitud del
protocolo de nivel superior, es decir, el 802.2
http://www.tonet.jazztel.es
109
15.3. Protocolo Fast Ethernet
15.3.1.Nivel físico
La característica más importante es su velocidad de 100 Mbps. Para obtener esta
velocidad hay que usar codificaciones digitales más complejas. La estructura de la
trama es exactamente igual que la del protocolo Ethernet 802.3.
Los tipos de medio de transmisión son:
•
100BaseTX. El medio de transmisión es cable de cobre sin apantallar UTP
clase 5 usando 2 pares trenzados. Es posible usar cable apantallado STP
pero no lo recomiendan. El conector que se emplea es RJ-45. Su
codificación es MLT-3. La transmisión es full-duplex.
•
100BaseFX. El medio de transmisión es cable de fibra óptica. Su
codificación es la misma que el protocolo FDDI, es decir, 4B/5B-NRZI. La
transmisión es full-duplex.
•
100BaseT4. El medio de transmisión es cable de cobre sin apantallar UTP
clase 3. La señalización 4T+ emplea un par de hilos para detectar la colisión
y los otros 3 pares para la transmisión de datos. Soporta operación fullduplex. La especificación IEEE 802.3u para redes 100BaseT4 permite un
máximo de dos repetidores y un diámetro máximo de red de 200 m.
Tanto los concentradores como los conmutadores permiten puertos con las
velocidades de 10 y 100 Mbps (puertos en 10Base y puertos en 100Base). Además
es posible conectar un 10BaseT a un 100BaseTX/T4. La tarjeta de red (NIC) usa un
mecanismo de autonegociación, que consiste en un pulso eléctrico de integridad
que le permite detectar si las tarjetas son de velocidad de 10 Mbps o 100 Mbps.
15.3.2.Repetidores
El protocolo Fast Ethernet define dos tipos de repetidores: clase I y clase II.
El repetidor clase I está pensado como un concentrador 100BaseT/F al que sólo
hay conectados estaciones, pero no otro repetidor.
Sus características son:
•
Solo se puede emplear un repetidor Clase I en una red Fast Ethernet.
•
Permite puertos T4, TX y FX en el mismo repetidor.
Si queremos conectar dos concentradores 100Base hay que definir un estándar que
cumpla los requisitos Ethernet, es decir, un Máximo Diámetro de la Red
dependiente de la ventana de colisiones. Ese estándar es el clase II. El clase II se
puede usar como un solo repetidor o conectado a un segundo repetidor (también
http://www.tonet.jazztel.es
110
clase II) a través del llamado “up-link port”. Este cable tiene una longitud máxima de
5 metros que es la máxima distancia que se permite entre dos concentradores
100Base.
Eso hace que los clase II no sean muy utilizados. Si queremos aumentar el número
de puertos de un clase I dentro del mismo dominio de colisiones, podemos usar otra
técnica distinta a la de interconectar dos concentradores: usar repetidores apilables
(en inglés “stackable”)..
Sus características son:
•
Uno o dos repetidores Clase II en un red Fast Ethernet.
•
Los dos repetidores se conectan con un puerto de 5 m.
•
Todos los puertos son T4.
•
Todos los puertos son TX y FX.
Repetidores apilables
Un concentrador apilable es un clase I que interconecta los buses internos a través
de una conexión interna (“Intra-hub connection”). De esta forma escalamos el
repetidor para que permita más puertos 100Base dentro del mismo dominio de
colisiones.
Se llaman apilables porque los repetidores se colocan uno encima de otro. Notar
que la conexión Intra-hub no es una conexión entre dos puertos 100Base, las
tramas no tienen que ser traducidos por el nivel físico, sino que se transmiten
digitalmente por el bus. Se puede ver como un alargamiento del bus interno, por
consiguiente no es una conexión entre dos concentradores.
La desventaja que tiene esta técnica es que los concentradores apilables no están
estandarizados, por lo que deben ser del mismo fabricante para que la conexión
Intra-hub sea compatible.
http://www.tonet.jazztel.es
111
16. Redes inalámbricas
El protocolo estándar IEEE 802.11 define el nivel físico y el nivel de acceso al
medio (MAC) para una red de area local inalámbrica. Este estándar define tres
niveles físicos distintos para las redes inalámbricas 802.11, cada uno operando en
un rango de frecuencias distintas y a velocidades diferentes.
En la actualidad hay dos normas la IEEE 802.11b y la IEEE.11a. La empleada
habitualmente es la primera y su compatibilidad viene regida por la etiqueta Wi-Fi.
Protocolo IEEE 802.11b: Trabaja en la frecuencia de 2,4 Ghz con una velocidad
máxima de transmisión de 11 Mbps y modulación DSSS.
Protocolo IEEE 802.11a: Trabaja en la frecuancia de 5 Ghz y velocidades de
transmisión hasta 54 Mbps. Su modulación es OFDM.
16.1.Protocolos
16.1.1.Protocolo 802.11a
El protocolo 802.11a utiliza el mismo protocolo del nivel de enlace y el mismo
formato de trama que el estándar original, pero a nivel físico emplea la modulación
OFDM. Opera en la banda de los 5 GHz con una velocidad máxima de 54 Mbps,
con un código de corrección de errores, lo que da un rendimiento real neto de unos
20 Mbps
Dado que la banda de 2,4 GHz es muy utilizada, la utilización de la banda de 5 GHz
es ventajosa. Sin embargo la alta frecuencia de la portadora tiene un
inconveniente: el rango efectivo total del protocolo 802.11a es menor que el del
protocolo 802.11b/g. En teoría, las señales del protocolo 802.11a se absorben más
fácilmente por las paredes y otros objetos sólidos que encuentra en su camino
debido a que su longitud de onda es más pequeña y, como resultado de ello, no
puede penetrar tanto como las señales del protocolo 802.11b. En la práctica, el
protocolo 802.11b tiene normalmente una myor rango a velocidades bajas.
16.1.2.Protocolo 802.11b
El protocolo 802.11b tiene una tasa de transmisión máxima de 11 Mbps, y utiliza el
mismo método de acceso que el estándar original. Los productos con el protocolo
802.11b aparecieron en el mercado a principios del año 2000, ya que el protocolo
802.11b es una extensión directa de la técnica de modulación definida en el
estándar original. El aumento en el rendimiento del protocolo 802.11b le llevó a una
rápida aceptación.
Los dispositivos con el protocolo 802.11b sufren interferencias de otros dispositivos
http://www.tonet.jazztel.es
112
que operan en la banda de los 2,4 GHz. Los dispositivos que operan en la banda de
2,4 GHz son: hornos microondas, dispositivos Bluetooth, monitores de bebés, y
teléfonos inalámbricos.
16.1.3.Protocolo 802.11g
En Junio de 2003, fue ratificado este protocolo 802.11g. Funciona en la banda de
2,4 GHz como el protocolo 802.11b, pero utiliza la misma modulación OFDM que el
protocolo 802.11a. Opera a una velocidad máxima de 54 Mbps con códigos de
corrección de errores incluídos o una tasa media de 22 Mbps compatible con el
hardware del protocolo 802.11b.
El protocolo 802.11g fue rápidamente adoptado por los consumidores a partir de
Enero de 2003, mucho antes de la ratificación, debido al deseo de tasas de datos
más altas. En el verano de 2003, la mayoría de los productos doble banda del
protocolo 802.11a/b se convirtieron para poder trabajar de forma conjunta con los
productos del protocolo a y b. Al igual que el protocolo 802.11b, el protocolo
802.11g sufre interferencias de otros dispositivos que operan en la banda de los 2,4
GHz, por ejemplo, los teclados inalámbricos.
16.1.4.Protocolo 802.11n
El protocolo 802.11n es una enmienda que mejora los estándares 802.11 anteriores
y añade las antenas MIMO (multiple-input multiple-output). El protocolo 802.11n
funciona tanto en la banda de 2,4 GHz y en la banda de 5 GHz. El IEEE ha
aprobado la enmienda, que fue publicada en Octubre de 2009. Antes de la
ratificación final, las empresas ya estaban migrando al protocolo 802.11n basado en
los productos con la certificación de la Wi-Fi Alliance que cumplen con el borrador
del año 2007 del protocolo 802.11n.
16.2.Canales de transmisión
El protocolo 802,11 divide cada una de las bandas que utiliza en canales, de
manera análoga a cómo se subdividen las bandas de radio y televisión de difusión.
Por ejemplo, la banda de 2,4000-2,4835 GHz se divide en 13 canales separados de
5 MHz, con el canal 1 centrado en los 2,412 GHz y el canal 13 en los 2,472 GHz. El
protocolo 802.11b se basa en las formas de onda DSSS que utilizan 22 MHz y que
no tienen bordes abruptos. En consecuencia sólo tres canales no se solapan.
Incluso ahora, los dispositivos que se venden con los canales 1, 6 y 11 como
opciones prefijadas. En cuanto al protocolo 802.11g hay cuatro canales que no se
http://www.tonet.jazztel.es
113
solapan y son los canales 1, 5, 9 y 13. En la actualidad hay cuatro, porque las
señales del protocolo 802.11g utilizan 20 MHz con una modulación OFDM.
La disponibilidad de los canales está regulado por cada país, y está limitado en
parte por la forma en que cada país tiene asignado su espectro radioeléctrico. En
Japón se permite el uso de todos los 14 canales para el protocolo 802.11b,
mientras que otros países como España solo permiten inicialmente los canales 10 y
11 y Francia sólo permite los canales 10, 11, 12 y 13. En la actualidad, ya permiten
los canales del 1 al 13. Norteamérica y algunos países de América Central y
Sudamérica sólo permiten los canales del 1 al 11.
Además de especificar la frecuencia central de cada canal, el protocolo 802,11
especifica también una máscara espectral que define la distribución de potencia
permitida a través de cada canal. La máscara requiere que la señal se atenúe por lo
menos 30 dB a ± 11 MHz de la frecuencia central, para que los canales tengan de
forma efectiva 22 MHz de ancho. Una consecuencia de esto es que las estaciones
sólo se puede los canales cuarto o quinto sin solapamientos, normalmente los
canales 1, 6 y 11 en América, y en teoría los canales 1, 5, 9 y 13 en Europa,
aunque también es normal los canales 1, 6, y 11. Otra cuestión es que los canales
del 1 al 13 requieren efectivamente requieren la banda 2,401-2,483 GHz, por
ejemplo, en el Reino Unido desde 2,400 hasta 2,4835 Ghz, en los Estados Unidos
desde 2,402 hasta 2,4735 GHz, etc
Puesto que la máscara espectral sólo define restricciones de potencia de salida de
hasta ± 11 MHz de la frecuencia central, y con un valor de -50 Db, a menudo se
supone que la energía del canal se extiende más allá de estos límites. Es más
correcto decir que, dada la separación entre los canales 1, 6 y 11, la señal de
cualquier canal debe ser suficientemente atenuada para interferir mínimamente con
un transmisor en cualquier otro canal.
16.3.Arquitectura LAN 802.11
Los principales componentes de la arquitectura LAN no cableada 802.11 se
encuentran representados en la figura siguiente.
El bloque fundamental de esta arquitectura es la celda, conocida como BSS (Basic
Service Set). Una celda BSS consta de una o más estaciones inalámbricas y una
estación central base, conocida como AP (Access Point) en la terminología del
protocolo 802.11
http://www.tonet.jazztel.es
114
Las estaciones inalámbricas, que pueden ser fijas o móviles, y la estación central
base se comunican entre ellas mediante el protocolo IEEE 802.11. Múltiples APs se
pueden conectar juntos mediante redes cableadas, conformando lo que se llama un
Sistema de Distribución (DS). Un Sistema de Distribución (DS) es una sola red 802
a efecto de los protocolos de niveles superiores, ya que la parte inalámbrica emplea
el protocolo 802.11 y en la parte cableada el Ethernet o 802.3. A este tipo de
arquitectura se le denomina “modo infraestructura”
Las estaciones IEEE 802.11 también se pueden agrupar para formar una red “ad
hoc” como se puede ver en la figura siguiente. Así una red “ad hoc” es una red sin
control central ni conexiones con el mundo exterior. En este caso la red además de
no disponer de cable alguno, no emplea ningún Punto de Acceso (AP).
BSS
16.4.Protocolos de Acceso al Medio 802.11
Igual que en una red Ethernet cableada 802.3, las estaciones en una red
inalámbrica IEEE 802.11 deben coordinar sus accesos y el uso del medio de
transmisión compartido, que en este caso es la frecuencia radio. El protocolo IEEE
802.11 es un protocolo de tecnología CSMA/CA (Carrier Sense Multiple Access )
con Prevención de Colisión.
Un protocolo CSMA consiste en que una estación antes de enviar una trama,
verifica si el medio está ocupado. En la especificación del protocolo 802.11, el nivel
físico monitoriza el nivel de energía de la frecuencia de radio con el fin de
determinar si hay otra estación transmitiendo y además suministra la información de
detección de portadora al protocolo del subnivel MAC correspondiente. Si el medio
está libre durante un tiempo igual o mayor que el valor del parámetro DIFS
(Distributed Inter frame Space), entonces una estación está autorizada a transmitir.
Como en el caso de un protocolo de acceso aleatorio, la trama será recibida
correctamente en la estación de destino si no han habido interferencias durante la
transmisión desde la estación origen.
Cuando una estación receptora ha recibido correctamente y completamente una
trama de la cual era el destinatario, a continuación espera un corto período de
tiempo, conocido como el parámetro SIFS (Short Inter Frame Spacing) y luego
envía una trama de reconocimiento explícito al transmisor. Este reconocimiento a
nivel de enlace de datos permite al transmisor saber si el receptor ha recibido
correctamente la trama de datos enviada al receptor. Este reconocimiento explícito
es necesario porque, a diferencia del protocolo Ethernet cableado, el transmisor
http://www.tonet.jazztel.es
115
inalámbrico no puede determinar por si mismo si la transmisión de la trama fué
recibida satisfactoriamente en destino. La transmisión de la trama por la estación
transmisora y su reconocimiento subsiguiente por la estación destino se representa
en la figura siguiente.
En esta figura se ilustra el caso cuando el transmisor escucha el medio para
verificar si está libre. ¿Qué sucede si el medio está ocupado? En este caso, la
estación realiza un proceso de backoff similar al del protocolo Ethernet. En el caso
de que la estación detecta que el medio está ocupado, demorará su acceso hasta
que el medio esté libre. Una vez detecta que el medio está libre durante un tiempo
igual o mayor que el valor del parámetro DIFS, la estación espera un tiempo
adicional de backoff. Una vez ha transcurrido el tiempo de backoff, la estación
transmite la trama. Como en el protocolo Ethernet, el temporizador aleatorio de
backoff sirve para evitar el inicio simultáneo de transmisión de varias estaciones, es
decir, con el fin de evitar sucesivas colisiones después de un tiempo de inactividad
DIFS. Como en el protocolo Ethernet, el tiempo de backoff es el doble cada vez que
la transmisión de una trama experimenta una colisión.
A diferencia del protocolo Ethernet 802.3, el protocolo 802.11 no implementa la
detección de colisiones. Hay dos razones para ello:
•
La posibilidad de detectar colisiones requiere la posibilidad de enviar y
recibir al mismo tiempo, cosa que no sucede en el protocolo 802.11. No
puede enviar su propia señal y recibir otra simultaneamente con el fin de
determinar si las transmisiones de otra estación están interfiriendo con la
propia transmisión.
•
El hecho de que, si una estación tuviese detección de colisión y no la
detectara cuando envía, puede haber una colisión en el receptor y no
detectarla.
Esta situación resulta que es una de las características del medio inalámbrico.
Supongamos que la estación A está transmitiendo a la estación B y que también al
mismo tiempo la estación C está transmitiendo a la estación B. En el caso de que
estemos frente al problema de la estación escondida (hidden terminal), las
obstrucciones físicas en el entorno pueden hacer que A y C no puedan escuchar las
transmisiones de la otr estación, aunque las transmisiones de A y C con destino a B
se estén interfiriendo entre ellas.
http://www.tonet.jazztel.es
116
Una segunda situación en el que no es posible detectar las colisiones en el receptor
es el “fading” o atenuación de la señal a medida que se propaga a través del medio
inalámbrico.
Dadas estas dificultades para detectar las colisiones en el receptor, los diseñadores
del protocolo IEEE 802.11 desarrollaron un protocolo de acceso al medio para
evitar las colisiones (CSMA/CA), en vez de detectar y recuperarse de las colisiones
(CSMA/CD). Primero la trama del protocolo IEEE 802.11 contiene un campo de
duración en que la estación transmisora indica explicitamente la cantidad de tiempo
que su trama será transmsitida en el medio. Este valor permite a las demás
estaciones determinar la cantidad mínima de tiempo, llamado NAV (Network
Allocation Vector), durante el cual retrasarán su acceso al medio.
El protocolo 802.11 también puede usar una trama corta de control RTS (Request
To Send) y una trama corta CTS (Clear To Send) para reservar el acceso al medio.
Cuando un transmisor quiere enviar una trama, puede enviar primero una trama
RTS al receptor, indicando la duración del paquete de datos y el paquete de
reconocimiento ACK. Un receptor que recibe una trama RTS responde con una
trama CTS, dando un permiso explícito al transmisor para enviar. Entonces todas
las demás estaciones que oyen las tramas RTS y CTS, saben que hay una
transmisión pendiente de datos y así pueden evitar la interferencia con estas
transmisiones. Un transmisor de protocolo IEEE 802.11 puede operar ya sea
usando las tramas de control RTS/CTS, o simplemente enviando sus datos sin usar
antes la trama de control RTS.
El uso de las tramas RTS y CTS ayudan a evitar colisiones de dos maneras:
•
Debido a que la trama CTS transmitida por el receptor será oida por todas
las estaciones dentro del radio de acción del receptor, la trama CTS ayuda a
evitar el problema de las estaciones escondidas y el problema de la
atenuación o “fading”.
•
Debido a que las tramas RTS y CTS son cortas, una colisión de una trama
RTS o CTS durará un tiempo muy pequeño. Fijémonos que cuando las
tramas RTS y CTS se transmiten correctamente, es seguro que en la
transmsión de datos subsiguiente y de la trama ACK no hay colisiones.
http://www.tonet.jazztel.es
117
17. Modelo TCP/IP
En la actualidad la expansión de Internet ha hecho que el protocolo TCP/IP sea un
estándar de facto en las redes de ordenadores.
El modelo TCP/IP consta fundamentalmente de los protocolos siguientes:
IP
ICMP
TCP
UDP
ARP
RARP
Internet Protocol
Internet Control Message
Protocol
Protocolo de nivel 3
Protocolo de nivel 3,
responsable de la
generación de mensajes
Transmission Control Protocol Protocolo de nivel 4
User Datagram Protocol
Protocolo de nivel 4
Address Resolution Protocol
Protocolo de nivel 3, dada
una dirección IP busca su
dirección MAC
Reverse Address Resolution Protocolo de nivel 3, que
Protocol
realiza la operación inversa
del protocolo ARP
Como se ve en la tabla anterior, los protocolos IP, ICMP, ARP y RARP funcionan a
nivel de red según el modelo de referencia OSI, mientras que los protocolos TCP y
UDP funcionan a nivel de transporte.
17.1.IP v4 - Internet Protocol
La especificación del protocolo IPv4 se encuentra en
-
La RFC 791 Internet Protocol y
-
La RFC 950 Internet Standard Subnetting Procedure.
IP es un protocolo que funciona a nivel de red (3) según el modelo de referencia
OSI, es decir, se interrelaciona con los protocolos que funcionan a nivel de enlace
(2) por debajo y a nivel de transporte (4) por arriba. Los protocolos de nivel de
enlace son cualesquiera que soporten el estándar IEEE 802 e incluso cualquier otro
protocolo de los que habitualmente se emplean en los sistemas de comunicaciones
y que ya se han explicado anteriormente. En cuanto a los protocolos de nivel de
transporte, el protocolo IP solo se entiende con el TCP y el UDP, que a su vez
enlazan con los protocolos de aplicaciones.
Las dos características básicas del protocolo IPv4 son:
-
Es un protocolo no fiable, es decir, no realiza un control de mensajes perdidos ni
duplicados y
http://www.tonet.jazztel.es
-
118
No está orientado a conexión. Esto significa que los mensajes IP pueden llegar
desordenados e incluso pueden llegar duplicados si la red es mallada, porque el
camino que siguen para ir del dispositivo origen al de destino puede variar en
función del estado de la red. Una de las razones por las que este protocolo IP es
no orientado a conexión, es porque así se minimiza la dependencia de otras
redes que utilizan redes jerárquicas orientadas a conexión.
Cuando un dispositivo envía un mensaje IP, inserta en el mismo la dirección IP
origen y la dirección IP destino en su cabecera. A continuación examina la dirección
IP destino y la compara con la tabla de enrutamiento local. En función de esto, hay
3 posibles soluciones :
-
pasar el mensaje a un nivel más arriba del propio dispositivo
-
enviarla a la red a través de su interface o
-
tirarlo, es decir, no enviarlo.
17.1.1.Cabecera IPv4
Los mensajes IPv4 constan de una cabecera, un campo de datos de longitud
variable y un tercer campo de control de error. Los campos de la cabecera son los
siguientes:
Versión
Longitud
Servicio
Identificación
Supervivencia
Tamaño
Flags
Protocolo
Fragmentación
Control de error
Dirección origen
Dirección destino
Tipo
Longitud
Opción
Opciones
Opciones
Relleno
Datos
donde
− Versión del IP, en este caso la 4, 4 bits
− Longitud, 4 bits. Corresponde al tamaño de la cabecera del mensaje en mensajes
de 32 bits.
− Servicio, 1 octeto. Es una indicación de la calidad de servicio requerida, es decir,
si tiene prioridad o no, se puede retrasar o no, etc.
− Tamaño del mensaje, 4 octetos. Es la longitud total del mensajes, es decir, la
longitud de la cabecera más los datos y se expresa en octetos.
http://www.tonet.jazztel.es
119
− Identificación, 2 octetos. Un número único asignado por el emisor. Esta
identificación permite el ensamblado de mensajes fragmentados si los hubiera,
ya que todos los fragmentos tienen la misma identificación.
− Flags, 3 bits. Dos bits DF y NF. El primero indica si el mensaje se puede o
fragmentar o no y el segundo indica si es el último mensaje de la fragmentación
o es uno intermedio.
− Fragmentación, 13 bits. Se utiliza con los mensajes fragmentados. Su valor indica
la posición relativa de cada mensaje fragmentado.
− Supervivencia, 1 octeto. Utilizado para indicar el tiempo máximo que se le permite
a un mensaje circular por la red. Es lo que también se llama tiempo de vida.
Cuando un mensaje es procesado por un enrutador, éste resta uno al valor
original.
− Control de error, 4 octetos. Suma de pruebas complementada a uno de la
cabecera IP para detectar posibles errores.
− Protocolo, 1 octeto. Indica el protocolo de nivel de red (3) del que procede o se
dirige. Algunos valores en decimal son:
1
4
6
8
17
29
36
ICNP
IP (IP encapsulado en IP)
TCP
EGP
UDP
ISO-TP4
XTP
•
Dirección origen/destino, 4 octetos. La dirección origen y destino se mantiene
siempre según va progresando por la red. La dirección destino permite encaminar el
mensaje a través de los diferentes enrutadores que interconectan las redes.
•
Opciones. Es un campo de longitud variable e implementa elementos de seguridad,
control etc.. Algunas de estas opciones son:
o Source routing. Si esta opción está activa, en el campo opciones se indica el
camino que debe seguir el mensaje hasta llegar a su destino. Para ello se
anotan las diferentes direcciones IP en estos campos de opciones.
o Record route. En este caso el campo opciones se va rellenando con las
direcciones de los dispositivos que va atravesando el mensaje hasta llegar a
su destino.
o Time stamp. Esta opción fuerza a los enrutadores a grabar la hora (contador
de 32 bits en unidades de milisegundos) en la que pasa el mensaje por este
dispositivo y esto se hace en el campo opciones. También se rellena con la
dirección IP del dispositivo en cuestión.
http://www.tonet.jazztel.es
120
17.1.2. Fragmentación y ensamblado
Las distintas redes interconectadas entre si no tienen por que utilizar el mismo
tamaño de mensaje (MTU), así por ejemplo en Ethernet lo habitual son tamaños del
orden de 1500 octetos y en las redes Token Ring, de 4096 octetos. Por definición el
tamaño máximo de un mensaje del protocolo IP es de 64K octetos. Cuando la
longitud del mensaje del protocolo IP es mayor que el del protocolo de nivel de
enlace, es preciso realizar una fragmentación del mensaje IPv4. Este proceso se
realiza en el propio dispositivo origen y cada fragmento se encamina a su destino
de forma independiente, siendo responsabilidad del dispositivo de destino su
ensamblado.
El proceso de fragmentación en el dispositivo origen consiste en:
•
Comprobar el bit DF del campo IP para ver si está permitida su
fragmentación. Si no lo está se descarga el mensaje, es decir, no se
transmite.
•
En función del tamaño máximo permitido por la red física, se divide el campo
de datos en varios segmentos.
•
Con estos mensajes del campo de datos del mensaje original, se forman
nuevos mensajes, cuyo cabecera IP es idéntica a la original excepto en:
* El bit de más datos (MF) se pone a uno, excepto el
del último mensaje.
* En el campo de fragmentación, se indica la posición
de cada fragmento.
* Se recalcula el campo de longitud.
* Se recalcula el control de error.
En el dispositivo destino se ensamblan todos los mensajes con la información
fragmentada. Para ello se utiliza el campo de identificación y el de fragmentación. El
primero para saber todos los mensajes que corresponden a la misma fragmentación
y el segundo para saber el orden en que se deben ensamblar.
El sistema final utiliza un buffer de recepción que liberará en caso de transcurrir un
tiempo determinado y no haber llegado todos los mensajes correspondientes.
Debido al propio funcionamiento del protocolo IP, se pueden producir situaciones de
pérdida de mensajes, duplicado de los mismos, la llegada al destino fuera de
secuencia, o con errores. En todos estos casos es el protocolo de nivel superior, es
decir, un protocolo de nivel de transporte quien se encarga del tratamiento de la
pérdida o duplicación de la información.
17.1.3.Direccionamiento y clases IPv4
http://www.tonet.jazztel.es
121
El protocolo IPv4 utiliza un modelo de direccionamiento, de forma que a cada
interfaz de cada dispositivo se le asigna una dirección independientemente de su
dirección MAC, que es la que utilizan los protocolos de nivel de enlace. La dirección
IP destino es un dato que debe ser suministrado por las aplicaciones que corren en
el propio dispositivo al protocolo IP. La dirección IP origen es un parámetro del
propio controlador del protocolo IPv4.
Estas direcciones IP constan de 32 bits y para su representación se emplea la
notación decimal de puntos (X.X.X.X). Ésta consiste en 4 números decimales
separados por un punto, por ejemplo
194.110.100.200
El ámbito de cada valor es de 0 a 255, dado que corresponden a 1 octeto, o sea, 8
bits. Su representación hexadecimal sería
C2.6E.64.C8
y la representación binaria
11000010.01101110.01100100.11001000
El valor más a la derecha sólo puede oscilar entre 1 y 254 porque el 255 está
reservado a la dirección de broadcast y el 0 es indicativo de toda la subred.
En Internet, para acomodar la estructura de direccionamiento a las diferentes
necesidades de utilización, el ámbito de direcciones IP se ha agrupado en clases
de acuerdo con el criterio siguiente:
Clase
Prefijo
Sufijo
Clase
A:
0
+ 7 bits para red y 24 para los dispositivos
Clase
B:
10
+ 14 bits para red y 16 para los dispositivos
Clase
C:
110
+ 21 bits para red y 8 para los dispositivos
Clase
D:
1110
+ 28bits para multicasting
Clase
E:
1111
+ 28 bits experimental
De esta forma la simple inspección de una dirección IP permite conocer a que clase
pertenece, así los rangos de direcciones IP correspondientes a cada clase son:
Clase
A:
de la 0.0.0.0
Clase
B:
de la 128.0.0.0 a la 191.255.255.255
Clase
C:
de la 192.0.0.0 a la 223.255.255.255
Clase
D:
de la 224.0.0.0 a la 238.255.255.255
Clase
E:
de la 240.0.0.0 a la 247.255.255.255
17.1.4.Máscaras
a la 127.255.255.255
http://www.tonet.jazztel.es
122
Con posterioridad a la definición inicial del protocolo IP, se definen lo que se conoce
como máscaras. Estas máscaras constan de 4 octetos (32 bits), igual que una
dirección IP y debido a como se utilizan deben contener unos a la izquierda y ceros
a la derecha, es decir, no pueden haber mezclas de unos y ceros.
En Internet es habitual el empleo de las siguientes máscaras para cada clase:
Clase
Máscara
A
255.0.0.0
B
255.255.0.0
C
255.255.255.0
Si a una dirección IP aplicamos la máscara con el operador AND, en realidad
dividimos la dirección IP en 2 partes:
-
La parte izquierda que corresponde a la identificación de la red física, y
-
La parte derecha que identifica al dispositivo dentro de cada red.
Con las máscaras introducimos el concepto de número de red dentro del campo de
dirección IP. Es característico del protocolo IPv4, el hecho de que las máscaras no
viajan en los mensajes IP, es decir, se emplean de forma local en cada dispositivo.
17.1.5.Enrutamiento
El protocolo IP es un protocolo de enrutamiento en cuanto sus mensajes son
encaminados según el contenido de unas tablas que contienen cada uno de los
dispositivos de la red. A estas tablas, se les denomina tablas de enrutamiento.
Estas tablas de enrutamiento se utilizan cuando un mensaje de protocolo IP tiene
que salir de un dispositivo.
¿Cómo llega el mensaje al protocolo IP? Hay 2 posibles caminos:
-
puede proceder de protocolos de nivel superior del propio dispositivo o
-
puede haber entrado por una interface de un enrutador, es decir, procedente de
un protocolo de nivel inferior, el cual lo debe encaminar para que siga su
camino.
Así una vez que el protocolo IP ha confeccionado su mensaje, su controlador debe
decidir por cual de sus interfaces debe salir. La decisión de cual es la interface de
salida se calcula mediante el empleo de la tabla de enrutamiento del dispositivo.
Para ello vamos a emplear el ejemplo siguiente. Se trata de un ordenador con una
tarjeta de red con dirección IP 192.168.0.5, máscara 255.255.255.0 y puerta de
enlace 192.168.0.254
http://www.tonet.jazztel.es
123
Su tabla de enrutamiento es la siguiente:
Dirección de
red
Máscara
Puerta de
enlace
Interface
0.0.0.0
0.0.0.0
192.168.0.254
192.168.0.5
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
192.168.0.0
255.255.255.0
192.168.0.5
192.168.0.5
192.168.0.5
255.255.255.255
127.0.0.1
127.0.0.1
192.168.0.255
255.255.255.255
192.168.0.5
192.168.0.5
255.255.255.255
255.255.255.255
192.168.0.5
192.168.0.5
Cada línea de la tabla es una solución posible, así para cada dirección de red con
su máscara, le corresponde una puerta de enlace y una interface por la que debe
salir el mensaje IP.
Vamos a analizar cada una de sus líneas que corresponde a una posible solución:
-
La dirección de red 0.0.0.0 con máscara 0.0.0.0 es la solución por defecto, es
decir, si no cumple ninguna de las otras soluciones, el mensaje IP será enviado
a la puerta de enlace 192.168.0.254 por la interface 192.168.0.5
-
La dirección de red 127.0.0.0 con máscara 255.0.0.0 siempre se reserva como
dirección IP interna o de localhost. Por esta razón siempre se encamina a la
propia dirección IP interna 127.0.0.1. En este caso el mensaje IP no sale por
ninguna interface y por tanto no es necesario que esté conectado a una red.
-
La dirección de red 192.168.0.0 y máscara 255.255.255.0 corresponde a la red
donde está conectado el dispositivo. Por esta razón, si la dirección IP destino
corresponde a esta red, debe salir por su interface 192.168.0.5 y no debe ser
dirigida a la puerta de enlace. El objetivo de la puerta de enlace es enviar el
mensaje a otras redes distintas de la suya 192.168.0.0
-
La dirección de red 192.168.0.5 y máscara 255.255.255.255 corresponde a la
propia interface, por lo que el mensaje IP se envía a la dirección IP interna
127.0.0.1
-
La dirección de red 192.168.0.255 y máscara 255.255.255.255 corresponde a la
dirección de broadcast de esta red, por lo que los mensajes IP con dirección IP
destino 192.168.0.255 deben salir por la interface 192.168.0.5
-
La dirección de red 255.255.255.255 y máscara 255.255.255.255 es una
dirección de broadcast general y como tal los mensajes IP con esta dirección IP
destino deben salir por la interface 192.168.0.5
Una vez explicado el significado de la tabla de enrutamiento, vamos a explicar como
el protocolo IP encuentra la solución de por cual interface debe enviar cada
mensaje IP. Esto lo realiza tomando la dirección IP de destino de cada mensaje y la
http://www.tonet.jazztel.es
124
compara con cada una de las direcciones de red de la tabla aplicándole la máscara
correspondiente con el operador lógico AND.
Supongamos una dirección IP de destino 192.168.0.100. En la tabla siguiente, la
columna resultado consiste en aplicar la máscara de cada línea a la dirección IP
destino 192.168.0.100, es decir,
resultado = 192.168.0.100 AND máscara
Dirección de
red
Máscara
Resultado
Interface
0.0.0.0
0.0.0.0
0.0.0.0
192.168.0.5
127.0.0.0
255.0.0.0
192.0.0.0
127.0.0.1
192.168.0.0
255.255.255.0
192.168.0.0
192.168.0.5
192.168.0.5
255.255.255.255
192.168.0.100
127.0.0.1
192.168.0.255
255.255.255.255
192.168.0.100
192.168.0.5
255.255.255.255
255.255.255.255
192.168.0.100
192.168.0.5
Si comparamos la columna dirección de red y resultado, hay 2 posibles soluciones,
la primera y la tercera. Como la solución solamente puede ser una, se elige la que
tiene la máscara con más unos a la izquierda en representación binaria, por tanto la
solución es la tercera y el mensaje IP es enviado a la interface 192.168.0.5
En el caso de un enrutador, se hace exactamente lo mismo, lo que sucede es que
en estos casos hay más de una interface posible. También en el caso de los
enrutadores, el mensaje IP no se procesa si su tiempo de vida es cero.
17.2.IPv6 - Internet Protocol version 6
La versión 4 del protocolo IP tiene entre otros problemas que:
-
el número actual de direcciones IP está saturado y
-
no contempla la implantación de ningún tipo de seguridad.
Por esta razón se ha definido la versión 6, con unas especificaciones bastantes
diferenciadas y que se encuentran detalladas en la RFC 2460. Así el protocolo IPv6
tiene como características más significativas las siguientes:
-
Un mayor espacio de direcciones
-
Globalmente un direccionamiento único y jerárquico, basado en prefijos más que
en clases de direcciones, permitiendo así unas tablas de enrutamiento más
pequeñas y eficientes.
-
Un mecanismo para la autoconfiguración de las interfaces de las redes.
-
Soporte para encapsulación propia y de otros productos.
http://www.tonet.jazztel.es
125
-
Clases de servicios que distinguen los tipos de datos.
-
Soporte de enrutamiento multicast mejorado, preferentemente frente al
broadcast.
-
Lleva incorporado autenticación y encriptación.
-
Métodos de transición desde el protocolo IPv4.
-
Métodos de compatibilidad para coexistir y comunicar con el protocolo IPv4.
Estructura del mensaje
El formato del mensaje del protocolo IPv6 es muy diferente del de la versión 4 del
protocolo IP. En principio como todos los protocolos, consta de una cabecera y un
campo de datos.
Sin embargo en este protocolo, la cabecera consta de una parte básica y fija en
cuanto a estructura, y de varias cabeceras adicionales y opcionales.
La estructura de la cabecera principal es
Versión
Clase de
tráfico
Etiqueta de flujo
Longitud
Cabecera
siguiente
Límite de
saltos
Dirección IP origen
Dirección IP destino
Datos
donde
-
Versión, 4 bits. Contiene el número 6 indicativo de esta versión.
-
Clase de tráfico, 4 bits.
Clase de tráfico de 0 a 7. Los mensajes con esta prioridad no
se envían si hay congestión.
Clase de tráfico de 8 a 15. Se intentan enviar estos mensajes
aunque haya congestión.
-
Etiqueta de flujo, 24 bits. Se emplea para etiquetar los distintos tipos de flujo,
con el fin de darles un tratamiento diferencial.
-
Longitud, 16 bits. Es la longitud del mensaje en octetos exceptuando esta
cabecera.
-
Cabecera siguiente, 8 bits. Indica el tipo de cabecera que hay a continuación de
la principal. Los posibles valores entre otros son
0
Opciones Hop-by-Hop
41
IPv6
http://www.tonet.jazztel.es
43
Enrutamiento IPv6
44
Fragmento Ipv6
45
Protocolo
Protocol)
IRP
46
Protocolo
Protocol)
RSVP
50
Protocolo
Payload)
ESP
51
Autenticación Ipv6
58
Mensaje ICMP IPv6
59
Sin cabecera
60
Opciones de destino
(Interdomain
(Resource
126
Routing
Reservation
(Encapsulating
Security
-
Límite de saltos, 8 bits. Equivale al tiempo de vida de la versión 4, pero ahora en
cantidad de saltos.
-
Dirección IP origen, 128 bits.
-
Dirección IP destino, 128 bits.
-
Datos, que incluyen más cabeceras.
Se puede observar si se compara con la estructura del mensaje del protocolo IPv4
que:
-
La alineación ha pasado de 32 bits a múltiplos de 64.
-
El campo de longitud de cabecera ha desaparecido y es reemplazado por otro
de longitud del mensaje (2 octetos) sin la cabecera. La longitud de la cabecera
principal es fija y consta de 40 octetos.
-
El tamaño del campo de direcciones pasa de 4 a 16 octetos cada uno de ellos.
-
La información de la fragmentación pasa a formar parte de las cabeceras
auxiliares.
-
El campo tiempo de vida se sustituye por un campo de limitación de número de
saltos (1 octeto).
-
El campo tipo de servicio es reemplazado por 2 campos: uno de clase de tráfico
y otro de etiqueta de flujo. El campo clase de tráfico permite a los enrutadores
clasificar los mensajes y establecer prioridades.
-
El campo protocolo es reemplazado por un campo que especifica el tipo de
cabecera adicional o extendida (1 octeto).
http://www.tonet.jazztel.es
127
Cabecera opcionales
Su estructura básica es la siguiente:
Cabecera siguiente
Longitud
Datos
donde
-
Cabecera siguiente, 8 bits. Identificación del tipo de cabecera que está a
continuación de ésta.
-
Longitud, 8 bits. Longitud de esta cabecera opcional.
-
Datos. La estructura de este campo es variable en función del tipo de cabecera
de que se trate.
Direccionamiento
Sus especificaciones se encuentran detalladas en la RFC 2373. Cada dirección IP
consta de 128 bits (16 octetos) y su sintaxis es igual a la de la versión 4, es decir,
16 números del 0 al 255 separados por un punto, o también en hexadecimal, como
8 valores separados por dos puntos(:).
Como los números de teléfono, es habitual el dividir la dirección en dos, un prefijo y
la dirección IP propiamente dicha.
La dirección IP interna equivalente a la 127.0.0.1 deIPv4 es ::1 y la de una dirección
IPv4 es ::dirección IPv4.
Hay un rango reservado a direcciones globales con estructura jerarquizada y
consiste en el prefijo 001.
17.3.ICMP - Internet Control Message Protocol
ICMP es un protocolo que se describe en la RFC 792 y está actualizada en la RFC
950. Es un protocolo que funciona en el nivel de red (3) según el modelo de
referencia OSI y se basa en el protocolo de red IP.
Cuando un enrutador o un dispositivo destino debe informar al dispositivo origen de
errores en el procesado de los mensajes del protocolo IP, usa el protocolo ICMP
para informar del tipo de error al dispositivo origen. Esto no siempre es bueno,
porque a veces el dispositivo origen no puede hacer nada según del error de que se
trate.
http://www.tonet.jazztel.es
128
El protocolo ICMP se caracteriza por :
− El uso del protocolo IP como protocolo de más bajo nivel, es decir, los mensajes
ICMP se encapsulan en mensajes IP. Sin embargo el protocolo ICMP es una
parte integral del protocolo IP y debe ser implementado en cada mensaje del
protocolo IP.
− Informar de algunos errores, es decir, no hace el protocolo IP más seguro. Los
mensajes pueden perderse, sin tener información vía ICMP. La seguridad del
protocolo IP debe llevarse en protocolos de más alto nivel.
− Informar de errores de cualquier mensaje del protocolo IP, excepto de los propios
mensajes ICMP.
− En el caso de fragmentación, los mensajes del protocolo ICMP solo informan de
errores del fragmento cero.
− Los mensajes del protocolo ICMP nunca se envían como respuesta de un
mensaje que tenga dirección IP origen que no sea de un dispositivo en concreto,
es decir, que no sea ni bucle, ni broadcast ni multicast.
− Los mensajes del protocolo ICMP nunca se envían como respuesta a mensajes
de error de ICMP.
Estructura del mensaje
Los mensajes ICMP su estructura es la misma que la de un mensaje IP excepto en
que el tipo de servicio es cero y el campo de protocolo es un 1 indicativo del
protocolo ICMP. Esta es la razón por la que el protocolo ICMP se considera de que
es un protocolo de nivel de red.
El campo de datos contiene los campos siguientes:
-
Tipo, 8 bits. Contiene la identificación del tipo de mensaje.
-
Código, 8 bits. Contiene más detalle del tipo de mensaje
-
Datos
-
Control de error, 16 bits
17.4.ARP - Address Resolution Protocol
El sistema de direccionamiento del protocolo IP plantea un problema desde el
punto de vista de direccionamiento del nivel físico (1). Por ejemplo en una red local
basada en el protocolo Ethernet, dos dispositivos solo pueden comunicarse si se
conocen sus respectivas direcciones físicas (MAC). Así cuando un dispositivo
desea enviar un mensaje, a nivel del protocolo IP, debe rellenar el campo de la
dirección IP origen con su propia dirección IP que conoce y lo mismo sucede en el
caso del protocolo Ethernet, donde se ha de rellenar la dirección MAC origen y que
http://www.tonet.jazztel.es
129
también el mismo conoce. La cosa cambia cuando se trata de rellenar el campo de
la dirección IP destino. Obviamente el dispositivo origen la ha de conocer. Pero en
el caso de la dirección MAC destino, ¿cómo la puede conocer? Para ello, se ha
creado el protocolo ARP que es el encargado de dada una dirección IP, buscar la
dirección MAC que le corresponde.
El protocolo ARP es un protocolo de nivel de red (3) según el modelo de referencia
OSI y sus especificaciones estan desarrolladas en la RFC 826.
El protocolo ARP permite encontrar las direcciones físicas basándose en las
direcciones IP de los dispositivos. Para ello se realiza primeramente una emisión
broadcast de un mensaje de control conteniendo entre otros datos la dirección IP
que se desea localizar. Todas los dispositivos de la red reciben este mensaje, pero
solamente aquel cuya dirección IP coincida, responde con otro mensaje de control.
Este mensaje contiene la dirección física (MAC) de dicho dispositivo. Al recibirse la
respuesta, el primer dispositivo "aprende" la dirección física (MAC) del segundo.
Esta información se mantiene en memoria caché para posteriores envíos.
Las entradas en la memoria caché se asocian a un temporizador para permitir la
modificación dinámica de la dirección física de los dispositivos porque
-
la dirección IP puede ser cambiada por necesidades de operación y
-
la dirección física MAC también cambia si se cambia su tarjeta de red.
En UNIX, se puede usar el comando arp –a para obtener el contenido de la tabla
ARP. La duracion de una entrada es del orden de unos 20 minutos.
- arp [-vn] [-H type] [-i if] -a [hostname]
- aucanada% arp –a
teix.ac.upc.es (147.83.35.110) at 00:20:E1:10:4f:34 [ether] on eth0
arenys5.ac.upc.es (147.83.35.2) at 00:10:F8:B3:E4:00 [ether] on eth0
En Windows, tambien hay el comando arp y su sintaxis para la visualizacion de la
tabla ARP es
ARP -a
Las llamadas al protocolo ARP proceden de los protocolos de nivel de enlace, ya
que estos son los que reciben los paquetes del protocolo IP con sus direcciones IP,
y que para construir su trama requieren de las direcciones MAC equivalentes a
estas direcciones IP.
El algoritmo para el envío del protocolo ARP es el siguiente:
- Dada una dirección IP, primero consultar en la tabla ARP del propio dispositivo.
- Si se encuentra dicha dirección IP, utilizar la correspondiente dirección física.
- Sí no está, enviar una solicitud ARP de broadcasting. Temporizar y reenviar si no
se recibe respuesta.
http://www.tonet.jazztel.es
130
El proceso de recepción de mensajes de búsqueda del protocolo ARP funciona de
la siguiente manera:
–
–
Al recibir una solicitud del protocolo ARP, si la dirección IP corresponde al
equipo:
–
Se almacenan las direcciones IP y las direcciones físicas recibidas
en la tabla ARP del propio dispositivo.
–
Se rellena el campo correspondiente de la dirección física del
dispositivo.
–
Se envía un mensaje de respuesta con su dirección física.
Sí la dirección IP no es la del dispositivo, se almacena la dirección IP y la
dirección física correspondiente en su tabla ARP para posibles usos futuros.
Un posible problema que puede aparecer en las redes TCP/IP es el denominado
"tormenta de broadcast". Cuando un dispositivo envía un comando ARP buscando
una determinada dirección, puede provocar una cadena de mensajes ARP por parte
del resto de los dispositivos. Normalmente esto se produce cuando algunas de los
dispositivos conectados a la red no cumplen exactamente las mismas reglas en
situaciones muy particulares. En el caso de que todos los dispositivos utilicen el
subdireccionamiento pueden repetir el comando ARP intentando buscar el
dispositivo en su subred.
Estructura del paquete
El mensaje ARP corresponde al campo de datos del protocolo de nivel de enlace de
la red en cuestión. Así si es una red 802.3/Ethernet con protocolo 802.2 SNAP, los
campos SAP origen y destino contienen el número 170, y el campo de tipo de
Ethernet 2054, indicativo de que se trata de un mensaje ARP. Por esta razón se
considera de que es un protocolo de nivel de red según el modelo de referencia
OSI.
Los campos de la dirección física del destino van a 0 en el mensaje de búsqueda.
El dispositivo destino insertará aquí su dirección física en el mensaje ARP de
respuesta.
17.5.RARP - Reverse Address Resolution Protocol
Las especificaciones del protocolo RARP están descritas en la RFC 903.
El protocolo RARP permite asignar direcciones IP a dispositivos sin unidades de
disco y así resolver este problema. Para ello se utilizan mensajes del mismo tipo
que los del protocolo ARP.
Todos los dispositivos con interface de red tiene una dirección física MAC pero en
nuestro caso, estos dispositivos no disponen de dirección IP, por lo que no pueden
http://www.tonet.jazztel.es
131
comunicarse con protocolos de niveles superiores al de enlace. Por esta razón este
protocolo RARP funciona a nivel de red (3) según el modelo de referencia OSI.
El proceso comienza cuando un dispositivo envía una solicitud de dirección IP. En
la respuesta se indica además de la dirección IP, la dirección física del dispositivo y
a continuación se pone en estado de espera de una respuesta por parte de uno o
varios servidores RARP que le indiquen su dirección IP.
También debemos tener en cuenta, de que si los servidores RARP están fuera de
servicio, los dispositivos pendientes de ellos, no podrán conectarse a la red.
El mensaje RARP corresponde al campo de datos del protocolo de nivel de enlace
de la red en cuestión. Así si es una red 802.3/Ethernet con protocolo 802.2 SNAP,
los campos SAP origen y destino contienen el número 170, y el campo de tipo de
Ethernet 32821, indicativo de que se trata de un mensaje RARP. Por esta razón se
considera de que es un protocolo de nivel de red según el modelo de referencia
OSI.
El protocolo RARP tiene “frame type = 0x8035” y “op= 3” en los mensajes de
request y “op=4” en los mensajes de reply.
A diferencia de los mensajes de reply del protocolo ARP son del tipo broadcast, los
mensajes de reply de RARP son unicast.
17.6.TCP - Transmission Control Protocol
El protocolo TCP es un protocolo que funciona a nivel de transporte según el
modelo de referencia OSI y como tal por una parte enlaza con los protocolos de
nivel super o de aplicación y por otro con el protocolo de nivel de red IP. Es un
protocolo que no se entiende con otros protocolos de nivel de red tales como IPX,
NetBIOS, etc.
El protocolo TCP se describe básicamente en la RFC 793. También se desarrolla,
amplia y complementa en las RFC siguientes:
-
RFC 1122, amplía y actualiza algunos conceptos.
-
RFC 813, describe la gestión de ventanas,
-
RFC 816, describe como aislar los fallos y como recuperarlos
-
RFC 879, desarrolla los tamaños máximos de los mensajes
-
RFC 896, comenta el tema de la congestión
Este protocolo TCP tiene como características principales:
-
Es un protocolo orientado a conexión
-
La realización de recuperación de errores
-
El control de flujo y
http://www.tonet.jazztel.es
-
132
Empleo de conexión full duplex. El protocolo TCP funciona mediante una
comunicación full duplex, es decir, suministra flujo de datos concurrentes en
ambas direcciones
El objetivo principal del protocolo TCP es suministrar un circuito lógico fiable y un
servicio de conexión entre pares de procesos de distintos dispositivos. No asume la
fiabilidad de los protocolos de nivel inferior como el IP, es decir, el TCP debe
garantizar por si mismo la fiabilidad de sus mensajes.
Desde el punto de vista de las aplicaciones, el protocolo TCP transfiere un flujo
continuo de octetos a través de la red. La aplicación no tiene que preocuparse con
la fragmentación de los datos en bloques. El protocolo TCP hace si es necesario la
segmentación, agrupando los octetos en segmentos TCP, que son pasados al
protocolo IP para su transmisión a destino.
A veces una aplicación necesita estar segura de que todos los datos han pasado al
protocolo TCP con el fin de ser transmitidos a su destino. Por esta razón, existe una
función push, que cuando se activa, se envían todos los segmentos TCP
almacenados en el buffer del dispositivo origen al dispositivo destino. La función de
cierre normal de la conexión incluye la función push. De esta forma se garantiza de
que no se queda nada en el buffer pendiente de envío.
Puertos
El protocolo TCP es un protocolo de nivel de transporte y como tal debe
intercambiar los datos con los distintos protocolos a nivel de aplicación. Este
intercambio será a doble dirección, es decir, del protocolo de aplicación al protocolo
TCP y viceversa.
Por esta razón el protocolo TCP debe poder distinguir los distintos protocolos de
aplicación existentes. Esto se realiza mediante la definición de puerto. Un puerto
TCP equivale a un buffer para cada protocolo de aplicación del dispositivo en
cuestión. Para un mismo protocolo pueden definirse más de un puerto.
Así el protocolo POP, deja sus datos en el puerto 110, datos que procesa el
protocolo TCP. A la inversa, cuando llega un mensaje POP al protocolo TCP de
este dispositivo, el protocolo TCP los deja en el puerto 110.
En una transmisión de información entre dos dispositivos, el mensaje TCP contiene
un campo que identifica el número del puerto del dispositivo origen y otro con el
número del puerto del dispositivo destino, y que no tienen porque coincidir.
Puerto 1
Puerto 2
Protocolo TCP
Protocolo IP
Puerto 3
http://www.tonet.jazztel.es
133
El empleo de puertos equivale pues a un efecto de multiplexación cuando se
transmiten mensajes al exterior y de desmultiplexación cuando se pasan a nivel
superiores al de transporte. Esto permite que varios protocolos de aplicaciones
puedan transmitir y recibir simultáneamente desde el protocolo TCP.
En Internet, los números de los puertos TCP se dividen en 3 rangos y pueden
encontrarse en la dirección de Internet http://www.iana.org/assignments/portnumbers y son:
-
Los Bien Conocidos (de 0 a 1023), asignados por el IANA
-
Los Registrados (de 1024 a 49151) y
-
Los Dinámicos y Privados ( de 49152 a 65535).
Cabecera TCP
Los mensajes TCP constan de una cabecera, un campo de datos de longitud
variable y un tercer campo de control de error. Los campos de la cabecera son los
siguientes:
Puerto origen
Puerto destino
Número de secuencia
Número de reconocimiento
Tamaño
Flags
Control de error
Ventana
Indicador de urgencia
Opciones
Datos
•
Puertos de origen / destino, 16 bits. Estos campos contiene el número de
los puertos de los dispositivos origen y destino de la conexión TCP. Estos
dos valores junto con las direcciones IP de origen y destino contenidas en la
cabecera del protocolo IP, constituyen la conexión entre procesos ULP, que
será única en la red.
•
Números de secuencia, 32 bits. Contiene un valor que representa el número
de secuencia del primer octeto de datos del mensaje. Si el indicador SYN
está activo, el campo número de secuencia será el inicial (ISN), por lo que el
primer mensaje de datos tendrá el número ISN+1.
•
Número de reconocimiento, 32 bits. Si el indicador ACK está activo, este
campo contendrá el valor del siguiente número de secuencia que el
transmisor del mensaje está esperando recibir.
•
Tamaño, 4 bits. Indica el número de palabras de 32 bits de la cabecera
TCP.
http://www.tonet.jazztel.es
•
134
Indicador de control. Son condiciones que se emplean en el
establecimiento, mantenimiento y finalización de las conexiones y están
representadas cada una de ellas por un bit.
URG:
ACK:
PSH:
RST:
SYN:
FIN:
Indicador de urgencia.
Este mensaje incluye un reconocimiento (ACK).
Activación de la función push.
Reinicio de le conexión.
Sincronización de los números de secuencia.
Indicativo de que no hay más datos del transmisor.
•
Ventana, 16 bits. Se emplea en los mensajes ACK, y especifica el número
de octetos de datos, comenzando en el número contenido en el campo del
número de validación, que el transmisor del segmento es capaz de aceptar.
•
Control de error, 16 bits. Es el complemento a uno de la suma de los
complementos a uno de la cabecera y el campo de datos.
•
Indicador de urgencia, 16 bits. Solamente es significativo cuando el bit URG
está activo. Contiene el valor del offset positivo desde el número de
secuencia del octeto que va a continuación de los datos urgentes.
•
Opciones. Existen solamente tres opciones definidas:
o
Fin de opciones, con el valor de opción 0
o
No operación, con el valor de opción 1.
o
Tamaño máximo de segmento con el valor de opción 2. Esta opción
se utiliza en la solicitud de conexión inicial.
Fases del protocolo TCP
El protocolo TCP está orientado a conexión, por lo que antes de enviar los datos
propiamente dichos, debe establecer la conexión entre los dispositivos origen y
destino y cuando ha terminado la transmisión de datos, debe cerrar esta conexión.
Así en la operación del protocolo TCP podemos distinguir tres fases: el
establecimiento de la conexión, la fase de transmisión de datos y la finalización de
la conexión. Vamos a detallar cada una de estas fases.
a) Fase de establecimiento de la conexión o sincronización
Las aplicaciones indican su disponibilidad a aceptar conexiones solicitando al
protocolo TCP el establecimiento de un estado "pasive open”. En esta solicitud se
debe indicar el número de puerto local. Establecido el estado de “pasive open”, el
puerto identificada se mantendrá en estado de escucha "listen" hasta la recepción
de su apertura activa.
Cuando una aplicación quiere establecer una conexión con otra aplicación de otro
ordenador que se encuentra en estado "listen", solicitará un "active open" a su
aplicación local, indicando la dirección IP y el número de puerto del otro ordenador
http://www.tonet.jazztel.es
135
junto con su número de puerto local. Para ello el protocolo TCP enviará un mensaje
de sincronización "SYN" en el que incluirá las direcciones IP y los puertos de los
ordenador origen y destino, el número de secuencia del siguiente octeto de datos
que espera recibir y otros datos opcionales.
El protocolo TCP del ordenador destino comparará los valores recibidos con sus
número de puertos en escucha salientes, y si algún valor coincide, enviará otro
mensaje de sincronización SYN con un mensaje de reconocimiento ACK, las
direcciones IP y el número de secuencia del primer octeto de datos que espera
recibir. Este mensaje se confirma a su vez mediante otro mensaje SYN-ACK, con lo
que queda la conexión establecida.
El ordenador destino, cuyo protocolo TCP está en estado de escucha, pasará al
estado de conexión establecida al recibir este tercer mensaje.
Si el mensaje SYN inicial no recibe el mensaje de reconocimiento ACK debido a
problemas en la red o que el ordenador destino no se encuentra en estado de
escucha para el puerto solicitado, cuando el correspondiente temporizador llega a
cero, se hará un reintento, repitiéndose un cierto número de veces. Si al final no
puede establecerse la conexión, el protocolo TCP del ordenador origen notificará el
fallo de la conexión mediante un mensaje "open failure" a la aplicación que había
realizado la solicitud del propio ordenador origen.
b) Fase de envío de datos
Una vez establecida la conexión, el protocolo TCP soporta un flujo de datos fullduplex entre las aplicaciones del ordenador origen y el ordenador destino que se
comunican. El flujo de datos que genera el ordenador origen respeta la secuencia
de origen.
Cuando no sea posible la entrega de los datos dentro de los límites impuestos por
los temporizadores del protocolo TCP, este notificará a su aplicación local el fallo
del servicio y finalizará la conexión.
El flujo de datos se controla numerando cada octeto que se transmite a través de la
conexión establecida. Este mecanismo también sirve para la ordenación de los
datos, la detección de duplicaciones, la aceptación y el mecanismo de ventana
deslizante en el ordenador destino. La información de control es también numerada
y se controla su secuencia.
Todos los datos que se transmiten deben ser validados por el prdenador destino.
Para controlar esto, se emplean temporizadores en el controlador del protocolo
TCP, que al vencimiento de los cuales sin aceptación del ordenador destino, se
procede a la retransmisión de los datos. Los valores particulares de los
temporizadores, los contadores de retransmisión y la frecuencia de las
aceptaciones dependen de cada implementación en particular.
El mecanismo de detección de error, basado en el control de error de 16 bits
incluido en la cabecera del protocolo TCP, permite recuperar los errores mdeiante
un sencillo mecanismo que consiste en descartar los mensajes erróneos, siendo
retransmitidos por el ordenador destino al no recibir la correspondiente aceptación.
http://www.tonet.jazztel.es
136
c) Fase de finalización de la conexión
Normalmente la finalización de las conexiones del protocolo TCP sigue un orden.
Esto requiere la sincronización de ambos extremos para garantizar que toda la
información correspondiente al canal full-duplex es transmitida y validada antes del
cierre final de la conexión.
La solicitud de finalización se realiza mediante un mensaje "close request", que
indica que la aplicación local ha completado su transferencia de datos. Una vez
solicitado el cierre de la conexión, el ordenador origen no enviará más información
por la conexión en proceso de cierre, y comprobará que todos los datos enviados
sean aceptados por el ordenador destino.
El protocolo TCP del ordenador origen enviará un mensaje FIN para notificar el
cierre al ordenador destino, que a su recepción lo notificará a su aplicación local
mediante un mensaje "closing indication". A continuación, el ordenador destino
enviará un mensaje FIN-ACK con lo que el ordenador origen transmite un mensaje
"close request" a su aplicación, momento en que ésta enviará un mensaje FIN.
Temporizadores
En todos los protocolos es importante conocer que temporizadores se emplean y en
base a que parámetros se rigen cada uno de ellos. En el caso del protocolo TCP, es
importante conocer estos temporizadores, porque muchas veces su conocimiento y
su análisis explican el porque algunos mensajes no llegan nunca a su destino, o se
http://www.tonet.jazztel.es
137
requiere una nueva retransmisión de los mismos, con lo que los tiempos de
respuesta aumentan.
El protocolo TCP utiliza 7 temporizadores en cada conexión, y son los siguientes:
1 ) Un temporizador arranca cuando se envía una señal de sincronización (SYN)
con el fin de establecer una nueva conexión. Si al cabo de 75 segundos no se ha
recibido respuesta, se aborta dicho intento de conexión.
2 ) Otro temporizador arranca cuando el protocolo TCP del ordenador origen
empieza a enviar datos, es decir, una vez ya establecida la conexión. Si no hay
reconocimiento por parte del ordenador destino, el protocolo TCP del ordenador
origen retransmite los datos. El valor de este temporizador se calcula
dinámicamente y varía en función de las retransmisiones. Su valor oscila entre 1 y
64 segundos.
3 ) Los mensajes de reconocimiento (ACK) tardan 200 ms. en enviarse a partir del
instante que el ordenador sabe que las tiene que enviar, es decir, se añade un
retardo. Si hay más datos a enviar, se envían con el mensaje de datos.
4 ) Cuando la ventana llega a cero, arranca otro temporizador mientras no se
envían nuevos datos. Si el protocolo TCP del ordenador origen continua sin poder
enviar datos porque el ordenador destino no contesta a una ventana de valor cero, y
el temporizador también llega a cero, el ordenador origen envía 1 octeto de datos
con el fin de verificar que la ventana sigue abierta.
5 ) Hay un temporizador llamado keepalive, que obliga al otro extremo a responder.
De esta forma un ordenador conoce si el ordenador en el otro extremo de la
conexión está en línea, es decir, activo.
6) Temporizador FIN_WAlT_2. Cuando una conexión pasa del estado FIN_WAlT_1
al FIN_WAlT_2 la conexión no puede enviar más datos, estableciéndose este
temporizador en 10 minutos. Pasado este tiempo, si no ha habido el cambio de
estado correspondiente, la conexión se pierde. El objetivo de este temporizador es
que no quede en permanente estado FIN_WAlT_2
7) También entra en juego otro temporizador cuando se entra en estado
TIME_WAlT. Transcurrido este tiempo sin un cambio de estado, la conexión se
cierra.
Para entender como funcionan estos 3 últimos temporizadores, debemos conocer
como funciona el cierre de una conexión que en principio siempre es solicitado por
el ordenador origen. Para ello el ordenador origen envía un mensaje FIN al
ordenador destino. En este instante el ordenador origen entra en estado
FIN_WAIT_1, en espera de recibir el mensaje de reconocimiento ACK del
ordenador destino, quedando este en estado CLOSE-WAIT. Cuando el ordenador
origen lo recibe pasa a estado FIN_WAIT_2.
Cuando se quiere cerrar la sesión, el ordenador destino también envía al ordenador
origen un mensaje de FIN, quedando en estado LAST-ACK. Cuando el ordenador
origen lo recibe, pasa a estado TIME-WAIT, a la vez que envía un mensaje de
reconocimiento ACK al ordenador destino.
http://www.tonet.jazztel.es
138
Reconocimientos y retransmisiones
El protocolo TCP asigna un número de secuencia a cada mensaje que transmite,
consistente en la posición del primer octeto que envía respecto a todos los datos a
enviar. Por ejemplo, supongamos que tienen que transmitirse 96234 octetos. Si el
número de secuencia es 11200, significa que el primer octeto de datos de este
mensaje corresponde al 11200 de todos los datos a transmitir.
Por otro lado, el ordenador destino envía reconocimientos periódicos de los
mensajes que va recibiendo. Si el mensaje de reconocimiento ACK no es recibido
en un tiempo preestablecido, el ordenador origen los retransmite pero solo a partir
del número de secuencia del mensaje que no ha recibido reconocimiento.
También el protocolo TCP del ordenador destino usa los números de secuencia
para ensamblar los segmentos cuando llegan sin orden y a su vez eliminar los
duplicados si los hubiere.
Control de flujo. Ventanas.
Se entiende por control de flujo a la sincronización que se establece entre dos
dispositivos que se transmiten datos. En el caso del protocolo TCP, cuando el
ordenador destino envía un mensaje de reconocimiento ACK al ordenador origen,
también le notifica del número de octetos que puede recibir después del último
mensaje TCP recibido, sin provocar saturación ni overflow en sus buffers internos.
Esto es lo que se llama ventana o windowing. De esta forma el ordenador origen
aumenta o disminuye el flujo de transmisión de datos, con el fin de optimizar el
tiempo de respuesta.
A mayor tamaño del mensaje, menor segmentación y por tanto el tiempo de
transmisión es menor. Sin embargo, un mayor tamaño de mensaje comporta una
mayor probabilidad de errores durante la transmisión. De aquí que se negocie este
tamaño entre el ordenador origen y el ordenador destino durante la transmisión.
Ejemplo del tráfico TCP
http://www.tonet.jazztel.es
139
17.7.UDP - User Datagram Protocol
UDP (User Datagram Protocol) es un protocolo descrito en la RFC 768. Es un
protocolo que funciona en el nivel transporte (4) del modelo de referencia OSI. Sus
relaciones con los protocolos a nivel de aplicación es escasa, es decir, hay pocos
protocolos de nivel 7 que lo emplean como protocolo de transporte. En cuanto a los
protocolos de nivel inferior, es decir de red, sólo se entiende con el protocolo IP.
UDP es un protocolo alternativo al protocolo TCP, sin embargo a diferencia de éste
no es ni fiable, ni hace control de flujo ni control de errores, por lo que solo se
recomienda en redes con sistemas de transmisiones fiables.
UDP es un protocolo no orientado a conexión, es decir, no hay un establecimiento
previo de la conexión
Este protocolo UDP aporta un procedimiento para que los programas de aplicación
puedan enviar mensajes a otros programas con un mínimo de mecanismo de
protocolo. El protocolo UDP se orienta a transacciones, y tanto la entrega como la
protección ante duplicados no se garantizan.
El protocolo UDP puede ser considerado como poco pesado, por lo que no genera
sobrecargas, sin embargo requiere que la aplicación se haga cargo de la
recuperación de errores.
Las aplicaciones que envían mensajes UDP a otro ordenador necesitan identificar
la aplicación de este ordenador destino, ya que los mensajes se dirigen
normalmente a ciertos procesos y no al sistema en general.
Los mensajes UDP constan de una cabecera, un campo de datos de longitud
variable y un tercer campo de control de error. Los campos de la cabecera son los
siguientes:
Puerto origen
Puerto destino
Longitud
Control de error
Datos
donde
− Puerto Origen, 16 bits. Indica el puerto del dispositivo origen. Es opcional y si no
se utiliza, se inserta un valor cero.
− Puerto Destino, 16 bits. Especifica el puerto del dispositivo destino.
− Longitud, 16 bits. Es el tamaño, en octetos, del mensaje incluida la cabecera.
http://www.tonet.jazztel.es
140
− Control de error, 16 bits. Es un conjunto de bits de comprobación.
Con el fin de calcular de una manera más fiable el campo control de error, se hace
a partir de la confección de una pseudo-cabecera UDP que no se transmite. Esta
pseudo-cabecera contiene la dirección IP del ordenador origen, la dirección IP del
ordenador destino, el código del protocolo UDP en el protocolo IP (17) y la longitud
del mensaje UDP. La razón de la inclusión de las direcciones IP hará que sea más
fiable en cuanto se garantiza mejor el reconocimiento por parte del dispositivo
destino.
En cuanto a los puertos que utiliza, su funcionamiento es exactamente igual que el
protocolo TCP, sin embargo tienen otros números. En Internet, el número de estos
puertos también esta reglamentado y es habitual que tengan el mismo número que
el puerto TCP.
Los principales protocolos a nivel de aplicación que utilizan este protocolo UDP a
nivel de transporte son:
-
el DNS (Domain Name Server)
-
el TFTP (Trivial File Transfer Protocol)
-
el SNMP (Simple Network Management Protocol) y
-
el programa Ping
http://www.tonet.jazztel.es
141
18. Redes Cliente/Servidor
18.1.Introducción
En una red de ordenadores que sigue el modelo cliente/servidor, los ordenadores
de la red se clasifican en dos tipos: servidores y clientes. La información que
manejan los clientes, como debe ser compartida por varios de ellos, se almacena
en los servidores. De esta forma en los ordenadores de los clientes, la información
almacenada se considera que no es necesaria para el funcionamiento de la
empresa en cuestión. De esta forma, solo debe asegurarse la información
contenida en los servidores, ya sea mediante copias de seguridad o de centros de
respaldo.
Caso de un sólo servidor
En este supuesto, en el servidor debe haber una base de datos que contenga de
cada cliente que pueda acceder a su información, el nombre y la contraseña que
autoriza su acceso.
Por otro lado, debe haber una base de datos en el servidor, que contenga para
cada cliente o grupos de ellos los nombres y los directorios a los que pueden
acceder del servidor. Además se ha de tener en cuenta que los ficheros tienen
distintas características mediante las cuales el acceso de cada cliente o grupos de
ellos puede ser distinto. Hay tres tipos muy claros que son:
–
sin acceso
–
acceso de sólo lectura
–
acceso total, que permite la modificación de su contenido.
Así debe haber otra base de datos donde cada fichero o directorio, diga que para
cada cliente o grupo, que tipos de acceso tiene.
Estos permisos de los ficheros depende del sistema de ficheros esté implementado
en el servidor. Estos sistemas de ficheros también dependerán del sistema
operativo del servidor.
Caso de más de un servidor
En este caso, la cuestión se complica en cuanto uno de los servidores debe ser el
principal y por lo tanto ha de tener las funcionalidades explicadas anteriormente.
Los servidores secundarios deben coordinarse con el principal, ya que de lo
contrario, el cliente debería darse de alta en cada uno de los servidores con la
consiguiente complicación que ello conllevaría.
http://www.tonet.jazztel.es
142
18.2.Acceso del cliente a la información
De forma general, cuando un cliente necesita una información almacenada en un
servidor, la solicitará y el servidor la servirá en función del reconocimiento del
cliente, mediante su nombre y su contraseña, y la verificación de los permisos que
tiene concedidos a este cliente para este fichero.
a) Caso de un fichero ofimático
En este caso, si el cliente sólo tiene acceso de lectura, el servidor lo enviará al
cliente pero no le permitirá su devolución, ya sea con o sin cambios.
Si el permiso del cliente le autoriza a modificar el contenido del fichero, cuando el
cliente haya realizado todas las modificaciones, devolverá el fichero al servidor. En
este caso, el servidor debe controlar la posibilidad de que más de un cliente pueda
realizar modificaciones. Por esta razón en estos caso, la solicitud de un fichero por
parte de un cliente, ha de bloquear las modificaciones por parte de otros clientes.
Este bloqueo no debe ser a efectos de sólo lectura.
b) Caso de una información contenida en una base de datos
En este caso, el cliente solo solicita una parte de la información contenida en la
base de datos, con una mayor o menor elaboración. Cuidado también en las
modificaciones del cliente de la información contenida en la base de datos. Las
principales bases de datos que soportan el lenguaje SQL, las modificaciones se
realizan en base a la tecnología de las colas de espera.
c) Caso de una información solicitada a un servidor web
En principio los ficheros de un servidor web son de sólo lectura, y no se requiere la
identificación del cliente solicitante. Sin embargo estos ficheros que envía un
servidor web ante una solicitud de un cliente son de dos tipos:
–
ficheros con información fija y
ficheros que se generan de acuerdo con la petición realizada por el cliente. En
este caso, quiere decir que en el servidor web hay una base de datos, de la cual se
extraerá la información solicitada por el cliente, se elaborará, y se enviará un fichero
de sólo lectura con esta información elaborada.
–
18.3.Gestión de las identidades y de los permisos de acceso
Durante estos últimos años, la solución de la gestión de las identidades y de los
permisos de acceso (en inglés, Identities and Access Management - I&AM) se ha
desarrollado a través de una infraestructura centralizada integrada. Este concepto
combina los procesos de negocio, sus políticas y sus tecnologías que permiten a las
empresas:
http://www.tonet.jazztel.es
•
proporcionar un acceso seguro a cualquier recurso,
•
un control eficiente de este acceso,
•
responder rápidamente a las relaciones cambiantes,
•
proteger la información confidencial de los usuarios no autorizados.
143
Así las tres cuestiones importantes que concurren hoy en día dentro de las
organizaciones de los departamentos de la Tecnología de la Información en cuanto
a este tema son:
•
La gran base instalada de ordenadores, estaciones de trabajo y servidores,
basados en Windows ha llevado a la adopción del Active Directory y el
amplio despliegue de aplicaciones basadas en Active Directory como
Microsoft Exchange.
•
Los departamentos de la Tecnología de la Información gestionan de forma
creciente entornos heterogéneos basados en un organización centralizada
para la seguridad, el cumplimiento y la reducción de costes. La actividad de
fusiones y adquisiciones también sigue presentando desafíos impredecibles
de integración en plazos muy ajustados. Al mismo tiempo, las herramientas
de gestión de las identidades y de los permisos de acceso y las prácticas no
han seguido el ritmo de la creciente diversidad de plataformas, en particular a
través de los muchos nuevos vendedores de Linux y las distribuciones.
•
Las empresas se enfrentan a una proliferación de almacenes de las
identidades, las cuentas de usuario y las contraseñas. Esto ha llevado a
mayores costos administrativos, mayores riesgos de seguridad, problemas
con cumplir con los requisitos de cumplimiento normativo y una disminución
en la satisfacción del usuario final y la productividad.
18.3.1.Objetivos
Durante los últimos años, las organizaciones han desarrollado sus negocios a
través de Internet, lo que aumenta las necesidades del acceso a su red. Esto crea
el reto de mantener dos restricciones opuestas: ser más flexible y mantener un
entorno seguro.
a)
Ampliar el acceso a los sistemas de información. Para hacer negocios, las
empresas tienen que abrir su red, es decir, hacer más accesible y no sólo a
los clientes, sino también a sus socios. Cada vez más usuarios y
aplicaciones traen una preocupación crítica a estas empresas, que es
garantizar y mantener la seguridad de los activos y la protección de la
privacidad, mientras que se identifican las partes autorizadas. Para llevar a
cabo estas operaciones, las empresas necesitan herramientas eficientes de
gestión y políticas de seguridad. La ausencia de un método centralizado para
la gestión de las identidades y los permisos de acceso es una fuente de
riesgos operacionales.
b)
Crear relaciones con las diferentes identidades. Las organizaciones pueden
tener que gestionar las crecientes relaciones con los diferentes tipos de
http://www.tonet.jazztel.es
144
comunidades: empleados, clientes y socios de negocios. Todos estos tipos
de poblaciones tienen necesidades diferentes. Para los empleados, el
enfoque se hace sobre la productividad, lo que significa un rápido acceso a
los recursos adecuados. Para los clientes, un punto crítico es la seguridad de
acceso web, incluyendo la facilidad de uso y privacidad y la confidencialidad
de la transacción. Por último, para los socios del negocio, la prioridad es la
definición de modelos de confianza y los acuerdos bilaterales para permitir el
acceso a la información confidencial entre cada organización. Sin una
propuesta de gestión integrada de las identidades y de los permisos de
acceso que implica los sistemas de la Tecnología de la Información y los
servicios Web, las empresas no serán capaces de gestionar correctamente
la seguridad de estas poblaciones diferentes.
c)
Gestionar múltiples identidades. A medida que crece el número de
aplicaciones de negocio, los usuarios y los administradores de sistemas se
enfrentan a un gran número de contraseñas para hacer su trabajo. Además
de consumir mucho tiempo para que un usuario inicie la sesión en los
diferentes sistemas operativos, los servicios de directorio o las aplicaciones,
el elevado número de identidades, nombres de usuario y contraseñas,
aumentan los costos del soporte a los usuarios en el tratamiento de las
solicitudes relacionadas con la identidad. Otro problema con la proliferación
de identidades es poner en marcha una política de contraseñas fuertes para
evitar la fácil adivinación de las contraseñas o prevenir a los usuarios de
escribirlas en un papel. En esta situación, las organizaciones deben hacer
hincapié en una metodología de inicio de sesión eficiente.
d)
Gestionar el ciclo de vida de los usuarios. El rápido crecimiento de la
población de usuarios hace que la tarea de gestionar los usuarios sea más
complicado. Dentro de los entornos más amplios, las empresas tienen que
gestionar de forma eficaz el ciclo de vida de cada usuario individual, así
como mantener el control de la seguridad, a pesar de los frecuentes cambios
de sus puestos de trabajo. La creación de nuevas cuentas con privilegios
adecuados a los recursos adecuados, y la modificación de los privilegios
asociados a un usuario cuando cambia su puesto de trabajo o desactivar
cuentas obsoletas para los empleados/contratistas/socios/clientes, cuando
estas cuentas ya no son necesarias, tienen que realizarse de manera
eficiente y en una forma segura. Si no es así, esto puede generar un número
inmanejable de permisos, pérdida de la productividad y podría llevar a
problemas graves de seguridad.
18.3.2.Ampliación del Active Directory de Microsoft a entornos ajenos al mismo
En un típico entorno de las Tecnología de la Información, la heterogeneidad es la
norma, no sólo en lo relacionado con los sistemas operativos de servidor dentro de
una organización, sino también en lo que respecta a las aplicaciones de software y
a las bases de datos que se ejecutan en los servidores. La realidad es que los
entornos mixtos de Windows, UNIX, Linux y Mac son un hecho en casi todos los
departamentos de la Tecnología de la Información. Y esto seguirá así, ya que tanto
http://www.tonet.jazztel.es
145
Linux como Windows seguirán creciendo en los centros de datos y se desplegarán
aplicaciones basadas en Java y en web.
No es de extrañar que la interoperabilidad entre estas plataformas sea una
preocupación muy importante para los administradores de los departamentos de las
Tecnologías de la Información. Las organizaciones desean servidores heterogéneos
y aplicaciones "plug and play" por lo que no se tiene que gastar tiempo y
presupuesto actuando como un integrador de sistemas o teniendo que administrar
manualmente un número cada vez mayor de sistemas y aplicaciones de forma
individual. Además las organizaciones quieren aprovechar las inversiones
existentes en sus presupuestos que les obliga a hacer más con menos.
Esta necesidad de la interoperabilidad en plataformas mixtas de aplicaciones de
Windows, UNIX, Linux, Mac, Web, bases de datos y aplicaciones empresariales es
probablemente más importante en lo que respecta a la gestión de las identidades y
de los permisos de acceso. La gestión de las identidades es un conjunto de
procesos y tecnologías que intervienen en el almacenamiento de la información de
las identidades de usuario y la concesión de derechos sobre la base de las reglas
de autenticación y de autorización. La administración de los permisos de acceso
permite a las organizaciones de manera determinista otorgar a los usuarios un
acceso adecuado a los recursos corporativos, independientemente de la plataforma
que se está utilizando.
18.3.3.La fragmentación de la gestión de las identidades y de los permisos de
acceso dentro de un entorno distribuído
En un entorno Windows, Microsoft ofrece una solución integral de gestión de las
identidades a través del Active Directory. Muchos departamentos de las
Tecnologías de la Información han invertido mucho dinero en la implementación del
Active Directory como reemplazo de la estructura de dominio de Windows NT 4.0 o
como parte de las implementaciones de Windows XP y Microsoft Exchange 2003.
De hecho, de acuerdo con una serie de analistas de la industria, la migración a
Windows Server y el despliegue del Active Directory estan entre los puntos más
presupuestados para todos los departamentos de las Tecnologías de la Información
en los últimos años. El despliegue actual del Windows Server 2003 y también del
Windows 2008 se prevé que sea uno de los principales puntos presupuestados.
La inversión en Active Directory es tan importante que el Gartner Group predice que
"a finales de 2010, al menos el 90 por ciento de las empresas grandes y medianas
habrán implementado el Active Directory en su infraestructura interna." Active
Directory se ha convertido en el directorio por defecto para muchos usos dentro de
la red corporativa. Por ejemplo en muchas organizaciones todos los usuarios
corporativos tienen cuentas de Active Directory para permitir el correo electrónico
corporativo y controlar el acceso a los recursos de red, como impresoras y ficheros
compartidos.
En cuanto al entorno UNIX/Linux, ninguna solución de gestión de las identidades
goza de algo parecido al Active Directory en el entorno Windows. Así los
departamentos de las Tecnologías de la Información deben hacer frente a una gran
http://www.tonet.jazztel.es
146
cantidad de almacenes de identidades desplegados por las plataformas en
UNIX/Linux, incluyendo:
1.
El uso significativo de la gestión local de los ficheros de texto /etc/passwd
en los sistemas individuales.
2.
Un pesado uso del obsoleto Network Information Service (NIS) de Sun y
otras soluciones anticuadas como el directorio de Netscape.
3.
4.
El uso de los directorios basados en LDAP, como OpenLDAP.
Mientras que las soluciones de gestión de las identidades existen para las
redes Apple Mac, representan otro sistema de identidades para que la
gestione el personal de los departamentos de las Tecnologías de la
Información. Muchas de las características clave de integración de
plataforma cruzada que necesitan los administradores carecen de las
soluciones que vienen de Microsoft y Apple.
Las funciones de control de acceso están integrados en el Active Directory y son
muy utilizadas para administrar el acceso a los recursos de un entorno Windows.
Sin embargo, existen pocas soluciones para ampliar el control de acceso a los
entornos que no son de Windows. Los administradores de los departamentos de las
Tecnologías de la Información se enfrentan a menudo con la implementación de
soluciones propietarias que son costosas y difíciles de manejar.
A medida que se lanzan nuevas aplicaciones Java y web en las distintas
plataformas, tales como Apache, JBoss, Tomcat, IBM WebSphere y BEA
WebLogic, los desarrolladores están creando aún más almacenes de identidades
mediante el uso de ficheros de texto o de tablas en bases de datos. Las
plataformas de bases de datos como DB2 de IBM e Informix, junto con las
aplicaciones empresariales como SAP, añaden otra serie de almacenes de
identidades.
Por lo tanto, la cuestión es que en la mayoría de las organizaciones, la gestión de
las identidades y de los permidsos de acceso para los sistemas, las aplicaciones y
las bases de datos de un entorno UNIX, Linux y Mac, está bastante fragmentado en
comparación con un entorno Windows. La gestión de la identidad y el acceso en
entornos heterogeneos debe tener una solución.
Una pregunta obvia es: ¿Por qué no han sido capaces las organizaciones de
estandarizar una solución de gestión de las identidades y los permisos de acceso?
La respuesta descansa en varios obstáculos:
•
La falta de interoperabilidad. Muchos almacenes de las identidades y los
servicios de directorio simplemente no operan unos con otros. El control de
acceso multiplataforma es difícil de implementar, especialmente si los
distintos sistemas de autenticación y de autorización se utilizan en cada
plataforma. Los sistemas de políticas que están vinculadas a los almacenes
de las identidades tienden a ajustarse a los sistemas operativos individuales
en lugar de la política en toda la empresa.
http://www.tonet.jazztel.es
147
•
Falta de soporte de la plataforma. Muchas de las soluciones líderes, como
Microsoft Active Directory, sólo funcionan en un subconjunto de plataformas
que ha implementado una organización. Y en el caso de la plataforma
Windows, una organización debe implementar el Active Directory. Como
denota Gartner Group, "... no hay más remedio ... si se implementan los
servidores Windows 2000 o Windows 2003, se va a implementar Active
Directory." Sin embargo, históricamente el Active Directory sólo ha sido
utilizado para las redes de Windows.
•
Falta de coordinación. En algunos casos, los grupos que están aislados uno
de otro en una organización instalan soluciones difrentes de servidores y de
aplicaciones. Esto puede hacer incompatible el despliegue de múltiples
soluciones puntuales.
•
Falta de transparencia. Los desarrolladores internos de las nuevas
aplicaciones a menudo no tienen los medios para interoperar con los
almacenes de identidades existentes. Cuando existen las API, los
desarrolladores tienen que realizar un gran esfuerzo para desarrollar las
complejas capacidades de integración en que se basan los metadirectorios o
la sincronización. Esto deja a varios almacenes de identidades intactos, lo
que requiere un continuo drenaje de recursos de mantenimiento al tiempo
que añade otro nivel de complejidad.
•
Falta de capacidades delegadas de administración. La administración de los
departamentos de las Tecnologías de la Información puede necesitar aislar
la gestión de determinados almacenes de identidades y asignar derechos
privilegiados a determinados administradores para un subconjunto de toda la
organización. Si se emplea una gestión centralizada de las identidades y de
los permisos de acceso, el sistema tendría que ser lo suficientemente flexible
para dar cabida a la administración delegada de los administradores de la
gestión de las identidades y los permisos de acceso.
Está claro que es difícil moverse a una única solución de gestión de las identidades
y los permisos de acceso. Sin embargo, una reducción significativa de los
almacenes de las identidades en la red corporativa puede mejorar
significativamente la productividad del usuario final, reducir los costes operativos,
mejorar la seguridad y que sea mucho más fácil cumplir con los requisitos
regulatorios.
Frente a los aspectos discutidos anteriormente, las organizaciones de los
departamentos de las Tecnologías de la Información tienen por lo menos tres
opciones para resolver esta crisis de gestión de las identidades y de los permisos
de acceso.
1)
No hacer nada y vivir con un ambiente balcanizado. La desventaja de esta
estrategia son los costos y riesgos potenciales documentados anteriormente.
Sin embargo, muchas organizaciones se sienten forzados a esta situación
debido a la falta de una solución que se ajuste a su presupuesto y no
requiere cambios intrusivos en los sistemas existentes o en la existentes
prácticas empresariales.
http://www.tonet.jazztel.es
2)
3)
148
Tratar de implementar una solución de sincronización costosa y compleja.
Muchas soluciones de gestión existentes siguen este enfoque. Dejan a los
sistemas existentes donde están e instalan soluciones que mapean y
sincronizan la información del usuario y los derechos de acceso entre los
diferentes sistemas incompatibles. A menudo, estas soluciones de mapeo se
ven facilitadas por una base de datos que mantiene los vínculos de la
credencial entre cada sistema. Los problemas con este enfoque son
numerosos:
•
Las implementaciones de estas soluciones son muy complejas, y
con frecuencia requieren una base de datos relacional para
proporcionar el mapeo de datos. La gestión de los departamentos
de las Tecnologías de la Información todavía se carga con el
mantenimiento de registros duplicados en múltiples sistemas de
identidad. En muchos casos, las contraseñas u otros datos
sensibles se sincronizan a través de la red sin encriptar.
•
Estas soluciones suelen ofrecer unas bajas capacidades de
denominador común a través de los sistemas de las identidades.
Por ejemplo, sólo pueden gestionar los nombres de usuario y sus
contraseñas, dejando a los departamentos de las Tecnologías de la
Información que busquen otra solución puntual a las necesidades de
directorio, control de acceso o la ejecución de la política.
•
Estos soluciones son muy caras de adquirir, implementar y
mantener. Si una organización cuenta con 30 sistemas de identidad,
se seguirían manteniendo los 30 sistemas de identidad. Además la
organización cargaría con el costo adicional de comprar y mantener
las soluciones de sincronización. En muchos casos los gastos son
altos y aumentan la complejidad, dejando a los beneficios
potenciales de este tipo de solución en cuestión.
Ampliar un almacén existente de las identidades como sustitución de los
distintos depósitos existentes de las identidades en lo que sea posible. El
objetivo sería empezar construyendo un sistema de directorio centralizado
mediante la selección de un sistema de identidades que tenga una probada
trayectoria y una clara dirección de futuro, y hacer que el sistema único de
identidades reemplace y/o consolide los sistemas existentes de identidades
en el tiempo. La consolidación y la centralización de los sistemas de
identidades ofrece unos claros beneficios en términos de productividad,
ahorro de costes, seguridad y presentación de informes. La pregunta difícil
de responder ha sido: ¿qué almacén de identidades tiene el potencial para
cubrir esta necesidad? Dado que el Active Directory es una parte
inseparable del entorno Windows y que la mayoría de las organizaciones ya
lo tienen implementado, y que Microsoft se ha comprometido a la aplicación
de importantes recursos para mejorar sus prestaciones y su escalabilidad, es
el candidato ideal para asumir el papel de un sistema de administración
centralizada de identidades de un sistema. Sin embargo Microsoft centra sus
esfuerzos en la plataforma Windows y no proporciona una solución integral
para el servicio de otras plataformas. Así las organizaciones se han visto
obligadas a utilizar otros almacenes de identidades para plataformas ajenas
http://www.tonet.jazztel.es
149
a Microsoft. Por lo tanto este tercer enfoque más práctico no se ha podido
implementar hasta ahora.
http://www.tonet.jazztel.es
150
19. Redes P2P (Peer-to-peer)
El término anglosajón P2P (Peer-to-Peer) suele ser traducido al castellano como
“entre pares”. Sin embargo, y según el diccionario, peer significa en inglés “par,
igual”. Luego la traducción correcta es entre iguales o de igual a igual, aunque lo
más normal es referirse directamente al acrónimo P2P.
Básicamente una red P2P se refiere a una red que no tiene clientes y servidores
fijos, sino una serie de nodos que se comportan a la vez como clientes y como
servidores de los demás nodos de la red. Este modelo de red contrasta con el
modelo cliente-servidor tradicionalmente empleado en las aplicaciones de Internet.
Así, en una red P2P todos los nodos se comportan igual y pueden realizar el mismo
tipo de operaciones; pudiendo no obstante diferir en cuanto a su configuración local,
su velocidad de proceso, su ancho de banda y su capacidad de almacenamiento.
El P2P no es un concepto nuevo aunque gracias a muchos factores como la gran
explosión de ordenadores conectados a Internet, el rápido incremento de ancho de
banda disponible por los usuarios, la mayor potencia de cálculo y la capacidad de
almacenamiento de los ordenadores personales y la proliferación de fuentes de
información y contenidos diversos a través de la Red han hecho que esta tecnología
sea por fin conocida por la inmensa mayoría de los internautas.
A continuación describiremos los conceptos fundamentales de las redes P2P. En
cuanto a sus aplicaciones se pueden clasificar en:
–
Aplicaciones de compartición de ficheros, siendo las más conocidas
Shareaza, BitTorrent, Ares, BearShare, Kazaa, Morpheus, Limewire, Emule,
WinMX entre otras.
–
Aplicaciones de programas colaborativos
–
Motores de búsqueda en las webs
–
Aplicaciones de transmisión de voz e imagen
–
Aplicaciones de computación distribuida
–
Aplicaciones relacionadas con las copias dde seguridad
–
Aplicaciones de distribución de contenidos, etc.
Más adelante se describen de forma breve tres aplicaciones P2P muy conocidas,
dos relacionadas con la compartición de ficheros BitTorrent y Emule y la otra
relacionada con la transmisión de voz e imagen Skype.
http://www.tonet.jazztel.es
151
19.1.Elementos de las redes P2P
El elemento fundamental de toda red P2P es un par o un igual, y es la unidad de
procesamiento básico de cualquier red P2P. Un par es una entidad capaz de
desarrollar algún trabajo útil y de comunicar los resultados de ese trabajo a otra
entidad de la red, ya sea directa o indirectamente.
Existen dos tipos de pares:
- Pares simples: Sirven a un único usuario final, permitiéndole proporcionar
servicios desde su dispositivo y empleando los servicios ofrecidos por otros pares
de la red. Los pares suelen tener una naturaleza dinámica y heterogénea, es decir
se conectan a la red de forma intermitente y tienen capacidades muy distintas.
- Superpares: Ayudan a los pares simples a que encuentre otros pares o a otros
recursos de los pares. Los pares lanzan solicitudes de búsqueda de recursos a los
superpares y los superpares les indican donde conseguirlos. Generalmente los
superpares tienen una naturaleza estática, se encuentran conectados normalmente
a la red y son fácilmente accesibles.
Otro elemento es el concepto de grupo de pares, Un grupo de pares es un conjunto
de pares formado para servir a un interés común u objetivo dictado por el resto de
pares implicados. Los grupos de pares pueden proporcionar servicios a sus
miembros pares que no son accesibles por otros pares de la red P2P.
Considerando un sistema P2P en el que todos los clientes pueden hablar el mismo
conjunto de protocolos, el concepto de grupo de pares es necesario para dividir el
espacio de la red.
Los servicios proporcionan una funcionalidad útil que se consigue mediante la
comunicación de los distintos pares. Esta funcionalidad o aplicación para el usuario
puede ser transferir un fichero, proporcionarle información de estado, realizar un
cálculo o comunicarse con otro usuario.
Los servicios se pueden clasificar en servicios de pares y servicios de grupo de
pares:
- Servicios de pares: funcionalidades ofrecidas por un par concreto de la red a otros
pares, si el par se desconecta el servicio se cae.
- Servicios de Grupo de pares: funcionalidades proporcionadas por varios miembros
del grupo consiguiendo así acceso redundante al servicio. Si un par del grupo se
cae el servicio sigue estando disponible.
19.2.Arquitectura de las redes P2P
19.2.1.Modelo híbrido o centralizado
http://www.tonet.jazztel.es
152
La primera generación de redes P2P empleaba una estructura de red
cliente/servidor. El servidor central mantiene una base de datos con información de
los ficheros servidos por cada par. Cada vez que un cliente se conecta o
desconecta de la red, la base de datos se actualiza. Todos los mensajes de
búsqueda y control son enviados al servidor centralizado. El servidor centralizado
compara la solicitud de sus clientes con el contenido de su base de datos y envía
las correspondencias al cliente en cuestión. Una vez que es informado de las
correspondencias, el cliente contacta con el par directamente y accede al recurso
solicitado.
Proporciona un rendimiento muy elevado a la hora de localizar recursos siempre y
cuando el servidor esté bien dimensionado, sin embargo es muy costoso y el
servidor es un elemento crítico en cuanto a la seguridad.
19.2.2.Modelo P2P puro o totalmente descentralizado
La segunda generación de redes P2P usa un modelo distribuido donde no existe
ningún servidor central y todos los nodos tienen el mismo estatus. Cada nodo actúa
como servidor y como cliente en la red. Como es evidente, cada par dentro de esta
arquitectura trata de mantener un cierto número de conexiones con otros pares
durante todo el tiempo. Este conjunto de pares conectados transporta el tráfico de
la red, que está conformado esencialmente por peticiones y las respuestas a estas
peticiones, y varios mensajes de control que facilitan el descubrimiento de otros
nodos.
A pesar de que el número de saltos de la red es potencialmente infinito, permanece
limitado por un tiempo de vida máximo (TTL-Time To Live), relacionado con el
máximo número de saltos que puede dar un mensaje. Por cada nodo o par por el
que circula el mensaje de petición se decrementa en una unidad el TTL
descartándose la petición si esta llega a cero.
El modelo P2P puro es más robusto al no depender de un servidor central, además
más económico. La principal desventaja es el elevado tiempo y la sobrecarga de
ancho de banda que suponen las búsquedas de información en la red. Además
puede ser que el recurso buscado ni siquiera pueda ser encontrado aunque exista.
19.2.3.Modelo P2P mixto o semicentralizado
La mayoría de aplicaciones P2P consideradas de tercera generación emplean un
modelo mixto. Dentro de este modelo, ciertos pares de la red son seleccionados
como superpares y ayudan a gestionar el tráfico dirigido hacia otros pares. Los
superpares cambian dinámicamente a medida que nuevos pares se conectan.
En este modelo cada nodo cliente mantiene sólo un pequeño número de
conexiones abiertas y cada una de esas conexiones es a un superpar. Así mismo
los superpares están conectados entre si.
http://www.tonet.jazztel.es
153
Esta nueva topología virtual tiene el efecto de hacer la red escalable, mediante la
reducción del número de nodos involucrados en el encaminamiento y manejo de los
mensajes, así como la disminución del volumen de tráfico entre ellos.
Además la velocidad de respuesta a las solicitudes dentro de un entorno mixto es
comparable al de un entorno P2P centralizado.
19.3.Comunicación en las redes P2P
Para que la comunicación tenga lugar es importante poder identificar los pares,
grupos de pares y los contenidos en la red. En los sistemas P2P tradicionales,
algunos de estos identificadores se basaban en detalles específicos de los
protocolos de transporte, por ejemplo, un par puede ser identificado mediante su
dirección IP y un puerto TCP. Sin embargo esta representación es inflexible e
incapaz de proporcionar un sistema de identificación independiente de la red de
transporte subyacente.
19.3.1.Búsqueda de pares, contenidos y servicios
La búsqueda de información (pares, contenidos y servicios), dada la ausencia de un
conocimiento global de los datos y recursos involucrados, es un aspecto
fundamental en entornos P2P, así como es también uno de sus grandes problemas.
Un sistema de búsqueda de
información en una red P2P debe soportar búsquedas flexibles, eficientes tolerantes
a fallos, y ofrecer garantías de que todo lo que existe puede ser encontrado;
también debe ser capaz de tratar con escalabilidad, dinamismo y heterogeneidad
de estos entornos distribuidos.
La búsqueda se realiza en tres niveles:
- Búsqueda en caché (Sin descubrimiento): Cada par mantiene una caché de
recursos previamente descubiertos. Este método es muy fácil de implementar y
reduce enormemente la cantidad de tráfico generado por cada par en la red. La
caché debe eliminar las entradas que han superado un tiempo de vida máximo o
aquellos recursos que dejan de estar disponibles. Se suele implementar como una
cola FIFO (First In – First Out). Este método es el más usado para encontrar
superpares y pares en el momento previo de conexión a la red. En la mayoría de las
aplicaciones P2P, la forma más sencilla de asegurar que un par en concreto pueda
encontrar a un superpar es descargar en el par un listado actualizado de
superpares.
- Búsqueda directa: Los pares en caso de no encontrar la información en su caché,
pasará a preguntar directamente a otros pares de la red con los que tenga conexión
directa, usando métodos de broadcast y multicast. Es la forma de búsqueda usada
en modelos P2P puros o totalmente descentralizados.
http://www.tonet.jazztel.es
154
- Búsqueda indirecta: Los superpares actúan como fuente de información de
localización de pares y otros recursos conocidos. Además esos hacen la búsqueda
en nombre del par. Es la búsqueda usada en arquitecturas mixtas o
semidescentralizadas.
19.3.2.Tablas Hash Distribuidas (DHT)
Las tablas hash distribuidas son un componente esencial de las redes P2P, y han
tenido un efecto revolucionario en la descentralización de estas redes. Las
topologías caóticas de red de la primera generación de protocolos P2P ha sido
sustituida por arquitecturas más escalables y con mejores propiedades gracias a las
DHT.
Una DHT realiza básicamente las funciones de una tabla hash, que básicamente se
resumen en dos operaciones, almacenar el par valor y clave en la tabla, y dada una
clave buscar su valor. Un ejemplo típico de tabla hash es un diccionario donde las
palabras son claves y sus definiciones los valores.
Lo que se pretende con las DHT es distribuir el almacenamiento y la búsqueda de
la tabla hash a múltiples máquinas. A diferencia de un modelo cliente/servidor en el
que se basan las arquitecturas de replicación de datos, todos los nodos son iguales
que pueden unirse y dejar la red libremente. A pesar del aparente caos producido
por el cambio de los miembros en la red, DHT garantiza su funcionamiento.
Para comenzar nuestro estudio sobre el diseño de una DHT, comenzaremos con
una lista doblemente enlazada. Cada nodo en la lista es una máquina en la red y
cada nodo mantiene una referencia al siguiente y al nodo previo. Para definir este
orden a cada nodo de la red se le asigna un Identificador (ID) de k bits, de forma
aleatoria y único. En la mayoría de los protocolos es un ID de k=64 bits,
suficientemente grande para que no se produzcan colisiones. Por lo tanto se define
el nodo siguiente como aquel que tiene el ID superior más cercano al suyo propio y
el nodo anterior el que tiene el ID inferior mas cercano al suyo propio. La única
excepción es para el nodo con ID mayor que tiene como siguiente al ID menor, y al
nodo ID menor que tiene como anterior al nodo con ID mayor También es
importante definir la distancia entre dos nodos, que por ejemplo, puede consistir en
calcular la distancia entre dos nodos con identificadores a y b, como la diferencia
entre sus identificadores. Hay otras formas mejores de medir la distancia.
Para construir una DHT, cada nodo tiene una tabla hash estándar, y las
operaciones de almacenar y consultar el valor, se realizarán en el nodo apropiado
de la red. Una manera simple de determinar cual es el nodo apropiado para una
clave en particular es la misma que para determinar cual es el sucesor de un nodo
con un ID particular.
Primero tomamos la clave que puede ser el nombre de un recurso, como el
contenido de un fichero, y el valor su ubicación) y realizamos una función hash para
generar una clave de exactamente k bits, el mismo número de bits que el ID.
Tratamos ese numero como un ID de nodo y determinamos cual es su nodo
sucesor empezando en cualquier punto en el anillo y desplazándose en sentido
horario hasta que se encuentre el nodo cuya ID sea la más cercana pero todavía
http://www.tonet.jazztel.es
155
superior que la clave en particular. El nodo encontrado es el responsable de
almacenar y buscar para esa clave en particular. Las funciones hash para generar
la clave deben tener la propiedad de generar claves con igual probabilidad en todo
el rango de IDs, para que la distribución sea lo mayor posible y no sobrecargar un
nodo en particular.
Este diseño DHT es simple pero suficiente para el propósito de una tabla hash
distribuida para una red de nodos estáticos. Una cosa a tener en cuenta en el
código es que en una DHT real cada nodo debería estar en un ordenador diferente
y todas las llamadas entre ellas se deben comunicar mediante algún protocolo de
red.
Para hacer más útil este diseño, se tiene que añadir la posibilidad de que los nodos
puedan unirse y dejar la red, ya sea intencionadamente o en caso de fallo. Para ello
se debe establecer un protocolo de entrada/salida de la red.
El primer paso para entrar a formar parte de la red es buscar el sucesor del nuevo
nodo ID usando el protocolo de búsqueda en cuestión. El nuevo nodo debería
insertarse entre el nodo sucesor y antecesor y hacerse responsable de la parte de
claves que le corresponde de su predecesor. Para garantizar el correcto
funcionamiento durante la unión del nodo, los nodos no cambiarán sus punteros
hasta que no se hayan copiado todas las claves que le corresponden al nuevo
nodo.
En cuanto a la salida de la red también es muy simple, el nodo que deja la red,
copia toda su información a su predecesor y este cambia su puntero de nodo
siguiente al mismo del nodo que abandona la red. En caso de caída del nodo, el
nodo anterior al nodo caído, tendrá que iniciar un proceso de salida para volver a
establecer el anillo.
También cabe destacar que en caso de caída de un nodo, la información
almacenada en dicho nodo deja de estar disponible temporalmente. Los distintos
protocolos establecen mecanismos de almacenamiento de la información pasado
un tiempo para que la información vuelva a estar disponible. Sin embargo este
protocolo no está del todo optimizado, ya que para encontrar un recurso en la red
se pueden dar tantos saltos como número de nodos como máximo, siendo el
número de saltos medio n/2, donde n es el número de nodos.
Para resolver esto, una modificación al protocolo es que cada nodo en lugar de
apuntar únicamente al siguiente nodo, tenga una tabla donde apunte a k nodos. La
distancia entre el ID del nodo que almacena la tabla y los IDs de los nodos
apuntados se incrementa de forma exponencial. Para que la búsqueda logarítmica
funcione, la tabla de punteros necesita estar actualizada. Una tabla de punteros a
nodos mal actualizada no tiene porque perjudicar a la búsqueda, siempre y cuando
todos los nodos tengan el puntero al siguiente nodo actualizado, aunque en el caso
de estar la tabla mal actualizada, no funcionará la búsqueda logarítmica. Así cada
nodo tiene k punteros a otros nodos.
Cuando se hace una búsqueda, hay que decidir cual de los k nodos apuntados se
elige en el siguiente salto. Para cada nodo, se buscará en la tabla de punteros a
nodos aquel que tenga la menor distancia a la clave.
http://www.tonet.jazztel.es
156
Otra propiedad útil para una DHT es la posibilidad de actualizar la tabla de punteros
de forma pasiva, haciendo búsquedas de forma pasiva para refrescar la tabla. Otra
de las mejoras que se le puede añadir al protocolo es la posibilidad para un nodo de
añadir mas punteros a nodos en su tabla, cuando contacta con otros nodos durante
la búsqueda, ya que en el proceso de búsqueda se establece la comunicación con
el nodo reduciendo la sobrecarga en la red.
Desafortunadamente estas tablas de punteros son unidireccionales, o lo que es lo
mismo, la distancia no es simétrica entre dos nodos y por lo tanto un nodo como
norma general no estará en la tabla de nodos apuntados de los nodos a los que el
apunta. Una solución a este problema es remplazar la distancia entre nodos
definida anteriormente, por la operación XOR entre las IDs de los nodos siendo así
la distancia(A,B)=distancia(B,A). Si A está en la tabla de punteros de B entonces B
está en la tabla de A. Esto significa que los nodos pueden actualizar sus tablas de
punteros guardando la tabla de los nodos a los que consulta, reduciendo así la
cantidad de tráfico.
19.4.Seguridad
Frecuentemente el uso compartido de los recursos tiene lugar entre iguales que no
se conocen entre si y, como resultado de ello, no confían necesariamente entre si.
En muchos casos, el uso de las aplicaciones P2P requiere reconocer los accesos
de las terceras partes a los recursos de un sistema interno, por ejemplo, con el fin
de compartir los ficheros o los ciclos de procesador. El abrir un sistema de
información para comunicar con las terceras partes o concederles acceso, puede
tener efectos contrarios a la seguridad. Frecuentemente esto sucede en los
mecanismos de seguridad convencionales, como la posibilidad de burlar el software
de un cortafuego. Otro ejemplo más es la comunicación vía el software de
mensajería instantánea. A menudo, en este caso, la comunicación tiene lugar sin
hacer uso de la encriptación. Como resultado de ello, se pone en peligro la cuestión
de la seguridad en cuanto a la confidencialidad. Las técnicas y los métodos para
suministrar la autenticación, la autorización, la comprobación de disponibilidad, la
integridad de los datos y la confidencialidad, están entre las cuestiones clave
relacionadas con las infraestructuras P2P.
19.5.Información
En cuanto a la información a intercambiar en las redes P2P hay que tener en
cuenta: la información de presencia, la gestión de documentos y la colaboración.
●
Información de presencia: La información de presencia juega un papel muy
importante en cuanto a las aplicaciones P2P. Es decisiva en la autoorganización de las redes P2P porque suministra la información sobre que
nodos y que recursos están disponibles en la red. Permite que los nodos
establezcan contacto directo con otros nodos y la pregunta sobre los
recursos. Un ejemplo ampliamente distribuído de aplicaciones P2P que usan
http://www.tonet.jazztel.es
157
esencialmente la información de presencia son los sistemas de mensajería
instantánea. Estos sistemas ofrecen a los nodos la oportunidad de pasar
información vía la red, como si estuvieran disponibles para los procesos de
comunicación. El uso de la información de presencia es interesante en el uso
compartido de los ciclos de procesador y en los escenarios relacionados con
los ordenadores omnipresentes y la disponibilidad de información.
Independientemente las aplicaciones pueden reconocer que nodos están
disponibles a ellas dentro de un red de ordenadores y determinar como las
tareas intensivas de computación se pueden distribuir entre los ciclos de
procesador libres de los respectivos nodos. Consecuentemente, en los
entornos de computación ubicuos, es útil si un dispositivo móvil puede
reconocer de forma independiente a estos nodos que están disponibles en
su entorno, por ejemplo, con el fin de solicitar servicios Web, información,
almacenamiento o ciclos de procesador.
●
Gestión de documentos: Habitualmente, los DMS (Document Management
Systems), que están organizados de forma centralizada, permiten el
almacenamiento, la gestión y el uso de los datos compartidos. Sin embargo
solo es posible acceder a los datos que han sido colocados en el repositorio
central del DMS. Como resultado de ello, se requiere un esfuerzo adicional
para crear un índice centralizado de los documentos importantes. La
experiencia muestra que una gran porción de los documentos creados en
una empresa, se distribuyen entre los ordenadores sin un repositorio central
que tenga conocimiento de su existencia. En este caso, el uso de redes P2P
puede ayudar a resolver esta cuestión.
●
Colaboración: el trabajo en grupo basado en P2P permite la gestión de
documentos a nivel de grupos de trabajo cerrados. Como resultado de ello,
los miembros de un equipo se pueden comunicar síncronicamente, mediante
reuniones online conjuntas y editar documentos compartidos, síncrona o
asíncronamente. En el trabajo en grupo basado en cliente/servidor, las
correspondientes areas de trabajo para la gestión de los datos centrales se
han establecido y se han administrado en el servidor para cada grupo de
trabajo. Con el fin de evitar esta tarea adicional de administración, se pueden
usar las redes P2P para el trabajo en colaboración.
19.6.Ancho de banda
Debido al hecho de que están subiendo continuamente las demandas de capacidad
de transmisión, en particular debido al incremento de los datos multimedia de gran
tamaño, se hace más y más importante el uso efectivo del ancho de banda.
Actualmente, en la mayoría de los casos, se usan principalmente las propuestas
centralizadas de forma que los ficheros están en un servidor de un proveedor de
información y se transfieren desde allí al cliente solicitante. En este caso, surge un
problema cuando espontáneamente se incrementa la demanda, lo que ejerce una
influencia negativa en la disponibilidad de los ficheros debido a la aparición de
cuellos de botella y al desarrollo de las colas de espera. Sin incurrir en una
administración adicional significativa, las propuestas basadas en P2P consiguen un
http://www.tonet.jazztel.es
158
mejor balanceo de la carga tomando ventaja de las rutas de transmisión que no
están plenamente explotadas. También facilitan el uso compartido del ancho de
banda suministrado por los proveedores de información.
19.7.Almacenamiento
Actualmente DAS (Direct Attached Storage), NAS (Network Attached Storage) o
SAN (Storage Area Networks) son los conceptos de diseño principales usados para
almacenar datos en una empresa. Estas soluciones tienen inconvenientes como el
uso ineficiente del almacenamiento disponible, de la carga adicional en la red de la
empresa o de la necesidad de personal especialmente entrenado y de las
soluciones de copias de seguridad adicionales.
Sin embargo la creciente conectividad y la creciente disponibilidad de ancho de
banda permiten formas alternativas de gestión de almacenamiento que resuelven
estos problemas y requieren menos esfuerzo de administración. Con las redes P2P
de almacenamiento, se asume generalmente que solo se usará una porción del
disco duro disponible de un ordenador de usuario. Una red P2P de almacenamiento
es un conjunto de ordenadores, formado en base a las redes existentes, que
comparten todo el almacenamiento disponible en la red. Entre los sistemas que
están disponibles para explicar la forma como trabajan las redes P2P de
almacenamiento son PAST, Pasta y OceanStore. Tienen similitudes básicas en la
forma que se construyen y se organizan. Con el fin de participar en una red P2P de
almacenamiento, cada nodo recibe un par de llaves pública/privada. Con la ayuda
de una función hash, la llave pública se usa para crear un número de identificación
único para cada peer. Con el fin de tener acceso a almacenar en otro ordenador, el
nodo tiene o que hacer disponible parte de su propio almacenamiento o pagar una
tasa. De acuerdo con esta contribución, cada nodo tiene asignado un volumen
máximo de datos que puede aportar a la red. Cuando se almacena un fichero en la
red, se asigna un número de identificación único, creado con una función hash del
nombre del contenido del fichero respectivo, así como de la llave pública del
propietario. El almacenamiento del fichero y su búsqueda en la red tiene lugar en la
forma descrita antes en el modelo encaminaniento del documento. Además también
se almacena un número de réplicas de ficheros determinado libremente. Cada nodo
recupera su propia versión actual de la tabla de encaminamiento que se usa para el
almacenamiento y la búsqueda. El nodo verifica la disponibilidad de sus vecinos a
unos intervalos establecidos con el fin de establecer que nodos ya no están en la
red. De esta forma los nuevos nodos que han entrado en la red también son
incluídos en la tabla.
Para coordinar las redes P2P de almacenamiento, se han de generar y distribuir
pares de claves a los nodos respectivos y se ha de monitorizar el uso del
almacenamiento.
Por medio de la réplica de ficheros y de la distribución aleatoria de los números de
identificación a los nodos usando una función hash, la red P2P de almacenamiento
se asegura automáticamente que se almacenan varias copias del mismo fichero en
distintas localizaciones geográficas. No se requiere una administración adicional o
http://www.tonet.jazztel.es
159
una solución de copia de seguridad adicional para conseguir la protección contra un
incidente local o una pérdida de datos. También este procedimiento reduce la
trascendencia de un problema que es la característica de las redes P2P: en las
redes P2P no hay garantía de que un determinado nodo estará disponible en la red
en un instante determinado. En el caso de las redes P2P de almacenamiento, esto
podría hacer que no hubiese ningún nodo disponible en la red que tuviera
almacenado el fichero que se está solicitando. Sin embargo incrementando el
número de réplicas almacenadas en distintas localizaciones geográficas, se puede
mejorar la probabilidad de que al menos haya un nodo disponible en la red. Los
bajos costes de administración, como consecuencia del carácter auto-organizativo
de las redes P2P de almacenamiento y del hecho que se requieran soluciones de
copias de seguridad adicionales, son entre otras las ventajas que ofrecen estos
nuevos sistemas con una gestión de almacenamiento eficiente.
19.8.Ciclos de Procesador
Reconociendo que no se usa con frecuencia toda la potencia de computación
disponible de las entidades de la red, hubo una primera iniciativa para manejar la
potencia de computación usando aplicaciones P2P. Al mismo tiempo, se ha ido
incrementando el requerimiento de una computación de alto rendimiento, es decir,
las operaciones de computación en el campo de la bioinformática, la logística o el
sector financiero. Usando las aplicaciones P2P para el manejo de los ciclos de
procesador, es posible conseguir una potencia de computación que aún los
supercomputadores más caros dificilmente pueden suministrar. Esto se efectúa
formando un grupo de ordenadores independientes en red, en que un solo
ordenador es transparente y todos los nodos de la red se combinan en un solo
ordenador lógico. Las respectivas propuestas sobre el uso coordinado de liberación
y compartición de recursos de computación distribuídos en organizaciones
dinámicas y virtuales que se extienden por una sola institución, normalmente caen
bajo el término de grid computing. El término grid computing es una analogía a las
redes de potencia habituales. Así estaría disponible a un usuario la cantidad más
grande posible de recursos, en particular la potencia de computación, idealmente
sin restriciones ni problemas de localización.
19.9.BitTorrent
El sistema de distribución de ficheros BitTorrent utiliza como método de búsqueda
la eficiencia de Pareto. Con esto se logra un mayor nivel de robustez y una mejor
utilización de los recursos que con otra técnica cooperativa conocida actualmente.
Así cuando se solicita una página web en Internet, todo su coste se carga al
servidor donde está almacenada aquella página, dado que es quien sirve la página.
Con BitTorrent, el fichero a descargar se ha fragmentado, y sus fragmentos se
encuentran repartidos entre distintos ordenadores que están conectados a Internet.
Así ahora cuando un cliente se quiere descargar un fichero, lo hará desde varios
http://www.tonet.jazztel.es
160
ordenadores, con lo que los costes quedan repartidos entre estos últimos que son
los que envían los fragmentos del fichero al ordenador solicitante.
La técnica a emplear en cuanto a la localización de los distintos fragmentos a
descargar en los ordenadores disponibles es uno de los puntos clave de esta
aplicación. Otra cuestión es el hecho de que en Internet, la mayoría de los usuarios
se conectan durante unos períodos de tiempo cortos y que una vez un usuario ha
obtenido su objetivo de disponer del fichero entero que quería, se desconecta, con
lo que deja de dar servicio a los demás usuarios.
Finalmente, existe un problema general de justicia y es como se distribuyen la
velocidad de descarga total desde un usuario entre los demás usuarios que
disponen de los fragmentos del fichero que uno se quiere descargar.
19.9.1.Interfaz
La interfaz de BitTorrent es muy sencilla, y basta con que los usuarios hagan un
click al hiperenlace del fichero que se quieren descargar y a la pregunta de donde
guardarlo, se guardará un fichero con extensión .torrent del que se habla a
continuación. Además de poder visualizar el tráfico de subida y bajada de cada
fichero, se puede configurar los distintos parámetros de la aplicación.
19.9.2.Implementación
Los ficheros disponibles a la descarga por parte del usuario, es a decisión de utilizar
BitTouna cosa suya, dado que él es el propietario del fichero. Los que se descargan
ficheros utilizan BitTorrent, porque es una forma de conseguir el fichero que se
desea. Con frecuencia los que se descargan ficheros, cesan la subida de ficheros
tan pronto como ha finalizado su descarga, aunque se considera de buena
educación dejar la descarga del cliente por un tiempo después de su descarga se
haya completado. La implementación estándar sigue con la descarga hasta que se
cierra la ventana, lo que se traduce con frecuencia que las subidas continuen hasta
que vuelva el usuario a su ordenador.
En una implementación normal, el número de personas con descargas incompletas,
se incrementa muy rápidamente después de que se encuentra disponible el fichero.
También acostumbre a suceder de que hay picos y luego se cae a una velocidad
aproximadamente exponencial. El número de personas con descargas completas
aumenta lentamente.
19.9.3.Publicando el contenido
Para iniciar una publicación de un fichero en Torrent, se ha de crear un fichero con
la extensión .torrent, ubicado en un servidor web corriente. El fichero con
extensión .torrent contiene información sobre el fichero, su longitud, el nombre y la
información del hash, y la dirección URL de un rastreador. Los rastreadores son los
responsables de ayudar a los descargadores de encontrarse unos a otros. Ellos
http://www.tonet.jazztel.es
161
hablan un protocolo muy sencillo por encima del protocolo HTTP, y mediante el cual
se envía información sobre el fichero que se está descargando, por que puerto está
escuchando, y otra información similar, y el rastreador responde con una lista de
información de contacto de los usuarios que están descargando el mismos fichero.
A continuación los descargadores utilizan esta información para conectarse entre sí.
19.9.4.Distribución de los usuarios
Todos los problemas logísticos de descarga de ficheros se manejan en las
interacciones entre pares. Las responsabilidades del rastreador se limitan
estrictamente a ayudar a los usuarios a encontrarse. Así además de que los
rastreadores es la única forma de encontrarse los usarios, también es el único
punto de coordinación. El algoritmo de seguimiento consiste en devolver una lista
aleatoria de usuarios.
Con el fin de facilitar la descarga de los ficheros, BitTorrent divide los ficheros en
fragmentos de tamaño fijo, por lo general de 250k octetos. Cada usuario que se
descarga un fichero, debe informar a todos sus pares de los fragmentos que tiene.
Para verificar la integridad de los datos, lse calcula un hash SHA1 de cada uno de
los fragmentos y está información está incluída en el fichero de extensión .torrent.
Los pares no comunican la existencia de un fragmento hasta que se haya
comprobado su hash.
Cuando se transfieren datos utilizando el protocolo TCP, que es lo que hace
BitTorrent, es muy importante tener siempre a la vez varias solicitudes pendientes
con el fin de evitar retrasos entre los fragmentos que se envían, lo que redundaría
en una tasa de transferencia desastrosa. BitTorrent facilita esto, dividiendo a su vez
los fragmentos en trozos más pequeños, por lo general de un tamaño de 16k
octetos, y manteniendo siempre un número, por lo general cinco, de solicitudes en
cola a la vez. Cuando llega un trozo, inmediata se envía una solicitud. La cantidad
de datos a enviar ha sido seleccionado como un valor que puede saturar de forma
fiable la mayoría de las conexiones.
19.9.5.Selección del fragmento
Si se quiere obtener un buen rendimiento, es importante el orden en que se
seleccionan los framentos. Un algoritmo pobre de selección de un fragmento puede
hacer que se seleccionan fragmentos de los que aún no dispone el usuario para su
subida.
Prioridad estricta
La primera política de BitTorrent para la selección de fragmentos es que una vez
que se ha solicitado un solo trozo, los trozos restantes de este fragmento se
solicitan antes que los trozos de otro fragmento. Con esto se consiguen fragmentos
completos tan pronto como sea posible.
Rarest First
http://www.tonet.jazztel.es
162
Cuando se determina que fragmento se va a usar en la descarga siguiente, en
general sus pares descargan los fragmentos que son más raros, en cuanto a que
los tienen la menor cantidad de sus propios pares. Estos fragmentos son los que se
sirven primero. A esta técnica se le denomkina como 'rarest first'. Con esta técnica
se asegura de que los fragmentos que son más comunes se dejan para más
adelante.
La teoría de la información dicta que ningún descargador se puede completar hasta
que descargan todas los fragmentos del fichero. Para las implementaciones con
una sola semilla, cuya capacidad de descarga es considerablemente menor que el
de muchos descargadores, el rendimiento es mucho mejor si diferentes
descargadores obtienen diferentes fragmentos de la semilla, ya que las descargas
redundantes desperdician la oportunidad para que la semilla obtenga más
información.
Random First Piece
Cuando empieza la descarga, el par no tiene nada que subir, así que es importante
obtener un fragmento completo lo más pronto posible. Los fragmentos raros, por lo
general sólo se encuentra en un compañero, por lo que se puede descargar más
lento que los fragmentos que están presentes en múltiples pares para los cuales es
posible descargar los trozos de diferentes lugares. Por esta razón, para descargar
fragmentos se seleccionan al azar hasta que el primer fragmento completo se
ensambla y, a continuación la estrategia cambia a la rarest first. A este método se le
denomina random first piece.
Modo endgame
A veces un fragmento solicitadao a un par se recibe con una velocidades de
transferencia muy lenta. Este puede retrasar la llegada de una descarga. Para evitar
que eso suceda, todos las trozos que no tiene un par, son solicitados de forma
general a todos los pares. A medida que llegan los trozos, se comunica que ya han
llegadocon el fin de repetir envíos.
19.9.6.Algoritmos de choking
BitTorrent no hace ninguna asignación de recursos de forma centralizada. Cada par
es responsable de tratar de maximizar su propia velocidad de descarga. Los pares
hacen esto mediante la descarga de los que pueden y decide de qué compañeros
se va a subir los fragmentos. Lo usuarios que cooperan suben ficheros y los que no
lo hacen, es porque no quieren colaborar, al menos de forma temporal.
El algoritmo de choking no es técnicamente parte del protocolo BitTorrent, pero es
necesario para un buen rendimiento. Un buen algoritmo de choking debería utilizar
todos los recursos disponibles, proporcionando unas velocidades de descarga
razonablemente consistentes para todo el mundo.
Eficiencia de Pareto
En términos de informática, la búsqueda basada en la eficiencia de Pareto es un
algoritmo de optimización local en el que los pares de las entidades de
http://www.tonet.jazztel.es
163
contrapartida ven si pueden mejorar su situación en conjunto, y los algoritmos de
este tipo tienden a conducir a los óptimos globales. En concreto, si dos pares tienen
una pobre reciprocidad en cuanto a lo que se refiere a la subida de ficheros, lo que
pueden hacer es comunicárselo, de forma que aumenten la tasa de descarga entre
ambos. A nivel técnico, cada par de BitTorrent mira la posibilidad de mejorar su
comunicación en base a la eficiencia de Pareto. Este enfoque permite un control de
congestión del protocolo TCP con el fin de saturar la capacidad de carga de forma
fiable.
Las decisiones en cuanto a que pares se aplica la eficiencia de Pareto, se basan
estrictamente en la velocidad de descarga actual. El cálculo de la velocidad de
descarga actual de manera significativa es un problema difícil, así la
implementación actual utiliza esencialmente promedios de 20 segundos. Los
algoritmos de choking anteriores utilizaban información de la transferencia de
tiempos anteriores, con lo que se obtenían resultados peores, porque el valor del
ancho de banda varía rápidamente con el tiempo cuando los recursos desaparecen
y se convierten en disponibles.
Para evitar situaciones en las que los recursos se desperdician por el uso de la
activación y desactivación del algoritmo de choking, los pares de BitTorrent
reaclculan quienes quieren la activación del algoritmo de choking cada diez
segundos. Diez segundos es un período de tiempo suficientemente largo para que
el protocolo TCP permita nuevas transferencias a su máxima capacidad.
Una vez que un cliente se está descargando algo, no tiene utilidad en cuanto a las
velocidades de descarga decidir desde que clientes hacerlo. La implementación
actual cambia a los clientes preferidos que tienen mejores velocidades de descarga.
19.10.E-Mule
eMule es una aplicación de intercambio de archivos muy popular que se basa en el
protocolo eDonkey. La red de eMule consta de varios cientos de servidores de
eMule y millones de clientes eMule. Los clientes deberían conectarse a un servidor
para obtener los servicios de red y la conexión al servidor se mantiene abierta,
siempre y cuando el cliente está en el sistema. Los servidores realizan los servicios
centralizados de indexación y no se comunican entre si.
Cada cliente de eMule está preconfigurado con una lista de servidores y una lista
de ficheros compartidos en su sistema local de ficheros. Un cliente utiliza una
conexión TCP a un servidor de eMule para conectarse a la red, obtener información
sobre los ficheros deseados y los clientes disponibles. El cliente eMule también
utiliza varios cientos de conexiones TCP a otros clientes que se utilizan para subir y
descargar ficheros. Cada cliente de eMule mantiene una cola de subida para cada
uno de sus ficheros compartidos. Los clientes que descargan ficheros se unen a la
cola de espera en su parte inferior y avanzan gradualmente hasta llegar al primero
de la cola y comienza a descargar el fichero. Un cliente puede descargar el mismo
fichero de varios clientes de eMule, consiguiendo diferentes fragmentos de cada
una de ellos. Un cliente también puede subir trozos de un fichero que aún no ha
completado la descarga. Por último, eMule amplía las capacidades del eDonkey, y
http://www.tonet.jazztel.es
164
permite a los clientes intercambiar información acerca de los servidores, otros
clientes y otros ficheros.
El servidor emplea una base de datos interna en la que se almacena la información
de los clientes y de los ficheros. Un servidor de eMule no almacena ningún fichero,
actúa como un índice centralizado de la información almacenada sobre la ubicación
de los ficheros. Una función adicional del servidor, que se está convirtiendo en
obsoleta, es tender un puente entre los clientes que se conectan a través de un
cortafuegos y no son capaces de aceptar conexiones entrantes. Esta funcionalidad
aumenta considerablemente la carga del servidor. eMule emplea el protocolo UDP
para mejorar las capacidades de los clientes frente al servidor y a otros clientes. La
capacidad del cliente de enviar y de recibir mensajes UDP no es obligatorio para el
correcto funcionamiento diario del cliente y podría funcionar sin problemas cuando
un servidor de seguridad le impide enviar y recibir mensajes UDP.
19.10.1.Conexión del cliente al servidor
Al inicio el cliente se conecta mediante el protocolo TCP a un único servidor eMule.
El servidor proporciona al cliente una identificación que es válida únicamente a
durante la conexión en cuestión del cliente al servidor, es decir, si el cliente se
desconecta, cuando se vuelve a conectar, debe volver a solicitar una identificación.
Tras el establecimiento de la conexión el cliente envía al servidor su lista de ficheros
compartidos. El servidor almacena la lista en su base de datos interna que por lo
general contiene varios cientos de miles de ficheros disponibles y los clientes
activos. El cliente eMule también envía su lista de descarga que contiene los
ficheros que desea descargar.
Una vez establecida la conexión, el servidor eMule envía al cliente una lista de otros
clientes que poseen los ficheros que el cliente desea descargar.
A partir de este momento, el cliente de eMule comienza a establecer conexiones
con otros clientes. Tener en cuenta que la conexión TCP cliente/servidor se
mantiene abierta durante toda la sesión del cliente. De vez en cuando, el cliente
envía peticiones de búsqueda de ficheros que son contestadas por los resultados
de búsqueda. Una operación de búsqueda es seguida generalmente por una
consulta de los posibles usuarios que tienen partes del fichero solicitado. La
respuesta contendrá las direcciones IP y los puertos TCP de estos usuarios.
El protocolo UDP se utiliza para la comunicación con los servidores que no son a
los que se ha conectado inicialmente el cliente. El propósito de los mensajes UDP
es mejorar la búsqueda de ficheros, la mejora de los clientes que disponen de los
ficheros y asegurarse de que todos los servidores eMule en la lista de servidores
del cliente son válidos.
19.10.2.Conexión cliente a cliente
Un cliente de eMule se conecta a otro cliente de eMule con el fin de descargar un
fichero, que se divide en fragmentos que luego se fragmentan más. Un cliente
http://www.tonet.jazztel.es
165
puede descargar el mismo fichero desde distintos clientes consiguiendo distintos
fragmentos de cada uno de ellos.
Cuando dos clientes se conectan, se intercambian la información de su capacidad y
luego negocian el comienzo de una descarga. Cada cliente tiene una cola de
descarga que contiene una lista de clientes que están esperando para descargar
ficheros. Cuando la cola de descargas del cliente de eMule se vacía, si a
continuación llega una solicitud de descarga, muy probablemente la descarga se
iniciará de inmediato. Cuando la cola de descarga no está vacía, una nueva
solicitud de descarga se añade a la cola. No hay ningún intento de servir a más de
unos pocos clientes en un momento dado, proporcionando un ancho de banda
mínimo de 2,4 Kbps para cada uno de ellos. La lista de clientes en espera puede
alterar su orden en función de un ranking en los primeros 15 minutos.
Cuando un cliente que está esperando la descarga un fichero, llega a la cabeza de
la cola de descarga, se inicia una conexión con el fin de enviar los fragmentos
necesarias del fichero. Un cliente de eMule puede estar en la cola de espera de
otros clientes, registrado para descargar los mismos fragmentos del fichero. Cuando
el cliente que esperaba completa con los fragmentos, no notifica a todos los demás
que pueden sacarle de sus colas, sino que simplemente rechazará el intento de
carga cuando llega a la cabeza de su cola.
eMule utiliza un sistema de crédito con el fin de fomentar la subida de los ficheros y
para evitar la suplantación del eMule mantiene un sistema de crédito mediante una
criptografía de clave pública del tipo RSA. Las conexiones de cliente pueden utilizar
un conjunto de mensajes que no estén definidos por el protocolo eDonkey, y a
estos mensajes se les llama el protocolo extendido. El protocolo extendido se usa
para la implementación del sistema de crédito, para el intercambio de información
general como las actualizaciones de las listas de servidores y fuentes, y para
mejorar el rendimiento mediante el envío y la recepción de fragmentos de ficheros
comprimidos. La conexión del cliente eMule utiliza el protocolo UDP de una forma
limitada para comprobar periódicamente el estado del cliente en la cola de subida
de sus clientes, mientras que se está esperando para comenzar a descargar un
fichero.
19.10.3.Identificación del cliente
La identificación del cliente es un identificador de 4 octetos proporcionada por el
servidor en el momento de la conexión. La identificación del cliente es válida sólo
durante la sesión de conexión TCP, aunque en el caso de que el cliente tenga una
identificación alta se le asignará la misma identificación en todos los servidores
hasta que cambie su dirección IP. Las identificaciones de los clientes se dividen en
dos categorías: baja y alta. Normalmente el servidor de eMule asignará a un cliente
una identificación baja cuando el cliente no puede aceptar conexiones entrantes.
Tener una identificación baja, restringe el uso del cliente de la red eMule y podría
hacer que el servidor lo rechazara durante la fase de conexión del cliente.
Una identificación alta se calcula sobre la base de la dirección IP del cliente.Una
identificación alta se da a los clientes que permiten que otros clientes se conecten
otros libremente al puerto TCP de eMule en su ordenador. Un cliente con una
http://www.tonet.jazztel.es
166
identificación alta no tiene restricciones en el uso de la red eMule. Cuando el
servidor no puede abrir una conexión TCP al puerto de eMule del cliente, le da una
identificación baja al cliente. Esto ocurre principalmente con los clientes que están
detras de un cortafuegos y que por lo tanto le niega las conexiones entrantes. Un
cliente también puede recibir una identificación baja en los casos siguientes:
• Cuando el cliente está conectado a través de un servidor NAT o proxy.
• Cuando el servidor es ocupado, lo que provoca la expiración del temporizador de
reconexión del servidor.
La identificaciones altas se calculan de la siguiente manera: si suponemos que la
dirección IP del cliente es X.Y.Z.W, la identificación será X+ 28 Y+ 216 Z+ 224 W
("representación big endian”). Una identificación baja es siempre inferior al
16777216 (0x1000000) que no se puede encontrar ninguna pista acerca de cómo
se calcula, dado que varía en función del servidor. Una identificación baja de un
cliente que no tiene IP pública, hace que el cliente se comunique a los demás a
través del servidor de eMule. Esto aumenta la carga computacional del servidor y la
resistencia de los servidores a aceptar clientes de identificación baja. Además esto
significa que un cliente con una identificación baja no se puede conectar a otro
cliente con identificación baja que no está en el mismo servidor porque eMule no
soporta un túnel de las peticiones entre los servidores. Para soportar los clientes
con una idnetificación baja, se ha introducido un mecanismo de devolución de la
llamada. Mediante este mecanismo, un cliente con una identificación alta puede
preguntar a través del servidor de eMule, la conexión a un cliente con identificación
baja con el fin de intercambiar ficheros.
19.10.4.Identificación del usuario
eMule soporta un sistema de crédito con el fin de animar a los usuarios a compartir
ficheros. Cuantos más ficheros camparta un usuario, más arriba estará en la cola
de espera. La identificación del usuario consta de 16 octetos y se crea a partir de la
concatenación de números aleatorios, los octetos sexto y quinceavo 15 no se
generan al azar, y sus valores son 14 y 111 respectivamente. Mientras que la
identificación del usuario sólo es válida durante la sesión del usuario con un
determinado servidor, la identificación del usuario es única y se utiliza para
identificar a un cliente a través de las sesiones. La identificación del usuario juega
un papel importante en el sistema de crédito. eMule soporta un esquema de
encriptación que está diseñado para prevenir el fraude y la suplantación de los
usuarios. La implementación de este esquema está basado en un método de
encriptación de clave pública/privada del tipo RSA.
19.10.5.Identificación del fichero
La identificación del fichero se utiliza para identificar los ficheros de forma única en
la red y para la detección y recuperación de errores en los ficheros. Tener en
cuenta que eMule no se basa en el nombre del fichero con el fin de identificarlo de
forma única y catalogarlo, un fichero se identifica mediante un identificador único
global calculado por hashing del contenido del fichero. Hay dos tipos de
identificadores de ficheros: el primero se utiliza principalmente para generar la
http://www.tonet.jazztel.es
167
identificación de forma única y el segundo es útil para la detección de la corrupción
y la recuperación.
19.11.Skype
Skype es una aplicación de videoconferencia basado en la tecnología P2P.
Desarrollado por KaZaa permite a sus usuarios hacer llamadas de imagen y voz y
enviar mensajes de texto a otros usuarios que sean clientes de Skype. Hay dos
tipos de nodos en esta red: nodos ordinarios y supernodos (SN). Un nodo ordinario
es un ordenador conectado a la red que tiene instalada la aplicación Skype. Un
supernodo es un ordenador conectado a la red y que hace de intermediario de los
nodos ordinarios. Este supernodo ha de tener una dirección IP pública y la
suficiente CPU, memoria y ancho de banda de red para soportar las funciones
propias del Skype. Por un lado un nodo ordinario debe estar conectar a un
supernodo y además se debe registrar al servidor de login de Skype. El servidor de
inicio de sesión de Skype no tiene que ser necesariamente un nodo Skype. Los
nombres y las contraseñas de los usuarios se almacenan en el servidor de inicio de
sesión. La autenticación del usuario también se hace en este servidor. Este servidor
también asegura que los nombres de inicio de sesión de Skype sean únicos en su
espacio de nombres del Skype.
Aparte del servidor de inicio de sesión, no hay ningún servidor central en la red
Skype. La información online y offline del usuario se almacena y propaga de una
forma descentralizada y así son las solicitudes de búsqueda de usuario. Cada nodo
ordinario usa una variante del protocolo STUN para determinar el tipo de NAT y
cortafuegos que hay detrás.
La red Skype es una red P2P, razón por la cual cada cliente Skype construye y
actualiza una tabla de los nodos a los que se puede conectar. En Skype, esta tabla
se llama host cache y contiene las direcciones IP y los números de los puerto TCP/
UDP de los supernodos.
Skype utiliza codecs de banda ancha que le permiten mantener una calidad
razonable de la llamada con un ancho de banda disponible de 32 kb/s. También
utiliza el protocolo TCP para la señalización y este y el UDP para el transporte del
tráfico de datos. La señalización y el tráfico de datos no se envían por los mismos
puertos.
Otras características son:
–
No soporta la supresión de los silencios
–
Soporta la llamada en espera
–
Conferencia a tres bandas
http://www.tonet.jazztel.es
168
19.11.1.Componentes clave
Un cliente Skype escucha por un determinado puerto las llamadas entrantes,
mantiene la tabla host cache, usa codecs de banda ancha, mantiene una lista de
compañeros, encripta los mensajes extremo a extremo y determina si está detrás
de un NAT o un cortafuegos.
Puertos
Un cliente Skype abre un puerto de escucha TCP y otro UDP de acuerdo con el
número de puerto configurado en su diálogo de conexión. El cliente Skype decide
aleatoriamente el número de puerto en el momento de la instalación y además
también abre los puertos de escucha TCP en el puerto número 80 (puerto HTTP) y
el número de puerto 443 (puerto HTTPS).
Host Cache
La host cache (HC) es una lista de direcciones IP y los puertos de los supernodos,
que se actualiza periodicamente. Es la parte más crítica del funcionamiento de
Skype y al menos debe tener una entrada válida, es decir, una dirección IP y el
número de puerto de un nodo de Skype en línea.
Codecs
Los codecs iLBC, ISAC u otrosson los habitualmente empleados. Lo que si permite
en un rango de frecuencias entre 50-8000 Hz. Esta gama de frecuencias es
característica de un codec de banda ancha.
Lista de contactos
Cada usuario Skype dispone de una lista de contactos que almacena localmente y
a su vez está firmada digitalmente y encriptada. Así sii un usuario utiliza el Skype en
un ordenador diferente para iniciar la sesión en la red de Skype, el usuario tiene
que reconstruir la lista de contactos.
Encriptación
Skype utiliza el sistema de encriptación AES(Advanced Encryption Standard) para
proteger la información confidencial. Skype utiliza una encriptación de 256 bits, que
cuenta con un total de 1,1 x 10 77 claves posibles, con el fin de encriptar los datos
de forma activa en cada llamada de Skype. Skype utiliza desde 1536 hasta 2048
bits RSA para negociar claves simétricas de AES. Las claves de usuario públicas
están certificadas por el servidor de Skype al iniciar la sesión.
NAT y cortafuegos
Un cliente Skype utiliza una variación del protocolo STUN para determinar el tipo de
NAT y cortafuegos que está detrás.
http://www.tonet.jazztel.es
169
19.11.2.Funciones
19.11.3.Inicio de sesión
La función de inicio de sesión es quizás la función más crítica para el
funcionamiento del Skype. Durante este proceso de login del cliente Skype se
autentica su nombre de usuario y su contraseña con el servidor de inicio de sesión,
anuncia su presencia a sus contactos, determina el tipo de NAT y cortafuegos que
está detrás, y descubre los nodos Skype con direcciones IP públicas.
Proceso de inicio de sesión
Como se explicó antes, la host cache debe contener como mínimo una entrada
válida para un cliente Skype para poder conectarse a la red de Skype. Si un cliente
Skype no puede conectarse a un supernodo, recibirá un mensaje de error.
La mayoría de los cortafuegos están configurados para permitir el tráfico saliente
TCP por el puerto 80 (puerto HTTP) y el puerto 443 (HTTPS). Un cliente Skype
detrás de un cortafuegos, que bloquea el tráfico UDP y el tráfico de permisos
selectivos de TCP, se aprovecha de este hecho. Al inicio de sesión, se establece
una conexión TCP con otro nodo de Skype con una dirección IP pública y el puerto
80 o el puerto 443.
Servidor de inicio de sesión
Una vez un cliente Skype se ha conectado a un supernodo, se debe autenticar el
nombre de usuario y la contraseña de inicio de sesión con el servidor de inicio de
sesión. El servidor de inicio de sesión es el único componente central en la red de
Skype. Almacena los nombres de usuario y las contraseñas de Skype y asegura
que los nombres de los usuarios de Skype son únicos en el espacio de nombres de
Skype.
Nodos de arranque
Después de iniciar la sesión por primera vez después de la instalación, la host
cache se inicializa con siete pares de dirección IP y números de puerto. A estos se
les denomina nodos de arranque. Estos pares de dirección IP y el puerto y sus
correspondientes nombres de host se obtienen mediante una búsqueda inversa.
Proceso de inicio de sesión
La primera vez la host caché está vacía después de una instalación. Por lo tanto, un
cliente de Skype debe conectarse a los nodos conocidos de Skype con el fin de
iniciar la sesión en la red de Skype. Lo hace mediante el envío de paquetes UDP a
algunos supernodos de arranque y luego espera su respuesta. A continuación el
cliente de Skype establece una conexión TCP con el supernodo de arranque que le
ha respondido. Puede darse el caso de que le responda más de un supernodo, en
cuyo caso se conecta a todos ellos. Después de intercambiar algunos paquetes con
estos supernodos, adquiere la dirección del servidor de inicio de sesión con lo que
http://www.tonet.jazztel.es
170
ya puede conectarse a él para su autenticación, y finalmente cierra las conexión
TCP con los supernodos de arranque.
El proceso de inicio de sesión que no es la primera vez, es muy similar al proceso
de inicio de sesión por primera vez. El cliente de skype ya dispone de una host cahe
que ahora no es vacía. Así ahora el cliente de Skype establece una conexión TCP
con al menos un par de nodos de la host cache.
19.11.4.Búsqueda del Usuario
Skype usa su tecnología de Global Index (GI) para buscar un usuario. Skype
pretende que la búsqueda sea distribuida y se garantiza encontrar al usuario si
existe y se ha conectado durante las últimas 72 horas.
Un cliente de Skype tiene determinado un diálogo de búsqueda. Después de entrar
la identificación de usuario Skype y pulsar el botón de búsqueda, el cliente de
Skype empieza la búsqueda de un determinado cliente. Para ello envía un paquete
TCP a su supernodo, que le da la dirección IP y el número de puerto de los nodos a
los que se puede dirigir para hacer la búsqueda.
19.11.5.Establecimiento y desconexión de la llamada
Es importante señalar que la señalización de llamadas se realiza siempre a través
de TCP. Para los usuarios que no están presentes en la lista de contactos, antes de
la llamada, debe realizarse la búsqueda del cliente. Así la llamda siempre consiste
en pulsar el botón de llamada sobre el contacto deseado de la lista de contactos.
De esta manera se establece una conexión TCP entre ambos. El primer intercambio
de mensajes entre la persona que llama y el destinatario indica la existencia de un
mecanismo de pregunta-respuesta.
En la configuración de la red en que la persona que llama está detrás de un NAT, el
intercambio de mensaje entre la persona que llama y el destinatario se hace
mediente unos nodos intermedios. Lo mismo sucede si hay algún cortafuegos por
en medio. En todos los casos, se establece una ruta para loa paquetes de voz.
Durante la desconexión de la llamada, la información de señalización se
intercambia a través de mensajes TCP entre el que llama.
Si el que llama y el destinario tienen una dirección IP pública, entonces el tráfico
fluye directamente entre ellos a través de mensajes UDP. El tamaño de paquete de
voz es de 67 octetos, que es el tamaño de un mensaje UDP. Así si el ancho de
banda total del enlace ascendente y descendente utilizado para el tráfico de voz es
de 5 kbps, la utilización del Skype equivale a un ancho de banda de 3-16 kbps.
Si la persona que llama o el destinatario de la llamada o ambos estan detrás de un
NAT, el tráfico de voz se hace mediante mensajes UDP. Si los usuarios están
detrás de un NAT y un cortafuegos, el tráfico de voz se hace mediante mensajes
UDP. El protocolo de Skype prefierie el uso del UDP para la transmisión de voz
tanto como sea posible.
http://www.tonet.jazztel.es
171
20. Redes WAN (Wide Area Network)
20.1.Introducción
Las limitaciones de la LAN son el número de ordenadores conectados y el diámetro
de la red. Una WAN es una red que permite conectar un gran número de
ordenadores situados a grandes distancias.
Los factores diferenciales de una WAN son
–
la distancia entre usuarios
–
el coste y
–
el nivel de protocolos
Una WAN se caracteriza por
– Ser una red que conecta equipos situados remotamente.
– Ser gestionados sus enlaces por una operadora de telecomunicaciones.
– Tener un alcance de decenas o centenares de Km.
– Utilizar velocidades muy variadas (desde baja velocidad a muy alta velocidad).
– Disponer de una gran conectividad entre las distintas redes.
– Disponer de sus propios protocolos.
20.2.Conmutación de paquetes por circuito virtual
La conmutación de paquetes por circuito virtual es la tecnología digital en que se
basan las comunicaciones actuales. Consiste en la comunicación con varios
extremos, y dada la cantidad de octetos a transmitir, se deben fragmentar, y a cada
uno de ellos se denomina paquete. Los nodos intermedios o conmutadores son los
que redirigen los paquetes a sus lugares de destino, pero no todos siguen
necesariamente el mismo camino.
En este tipo de comunicaciones se emplea un servicio orientado a la conexión.
En las redes de conmutación de paquetes también se efectúa una reserva de
recursos durante el establecimiento de la conexión. Pero a diferencia de la
conmutación de circuitos donde la reserva de recursos eran canales físicos TDM
síncronos, en la conmutación de paquetes la multiplexación es TDM asíncrona. Eso
significa que los canales se asignan bajo demanda después de que los datos
(tramas de nivel 2 o paquetes de nivel 3) se hayan almacenado en un buffer del
http://www.tonet.jazztel.es
172
conmutador. Por consiguiente, la reserva de recursos consiste en una reserva
virtual de buffers en el conmutador.
Los retardos son variables dada la existencia de buffers en los nodos.
Las redes de conmutación de paquetes implementan conmutadores con 2 ó 3
niveles y las funciones que se realizan en cada nivel son totalmente dependientes
de la red de conmutación de paquetes. Por ejemplo, el nivel de enlace Frame Relay
y ATM realizan algunas funciones parecidas (usan identificadores de circuito virtual
en nivel 2), pero también realizan funciones muy distintas (encapsulado distinto,
sincronismo de trama distinto, funciones de control de tráfico y de la congestión
distintos, ...).
Tablas de Circuitos Virtuales.
La decisión del camino a seguir por los paquetes se hace durante la fase del
establecimiento de la conexión. Una vez decidida la ruta hay que reservar los
recursos en los enrutadores.
Para poder identificar los paquetes de los distintos circuitos virtuales, los paquetes
incluyen un identificador de circuito virtual en la cabecera. Este identificador es local
a cada enrutador. Durante el establecimiento de la conexión, se indica con un
identificador en el paquete de conexión que circuito virtual atravesará ese enrutador
y que vendrá por un puerto de entrada Pin y saldrá por un puerto de salida Pout. El
identificador VCI del paquete de entrada viene fijado por el enrutador anterior, el
que está conectado al puerto Pin. Como este identificador VCI podría estar siendo
utilizado por un circuito virtual del enlace de salida, el enrutador escoge un
identificador VCI libre, y que no tiene porque ser el mismo que el de entrada y lo
asigna a este circuito virtual.
De esta forma los paquetes que entran con un identificador VCI, pueden salir del
enrutador con un identificador VCI distinto. El enrutador guarda una tabla donde se
indica para cada puerto de entrada, los identificadores VCI que están activos y a
que puerto de salida y con que identificador VCI van a salir los paquetes.
Retardos
Los retardos de los paquetes son difíciles de calcular ya que estos son variables. Se
puede aproximar el cálculo por un retardo medio. Así en la figura se representa la
transmisión de varios paquetes entre el transmisor y el receptor. En este ejemplo
http://www.tonet.jazztel.es
173
los paquetes siguen siempre la misma ruta y atraviesan N nodos intermedios. En
vertical es la escala del tiempo.
El retardo de la fase de transmisión se puede dividir en el retardo de propagación
(Tp ) entre los nodos de acceso y el retardo de transmisión. Para calcular este último
hay que tener en cuenta el retardo medio en los buffers. Supongamos que en media
haya B paquetes en los buffers, lo que significa que cuando llega un paquete tarda
un tiempo B·Tt en ser procesado. Por otro lado, si consideramos una transmisión de
n paquetes y que hay que atravesar N nodos, y por tanto N-1 enlaces, el tiempo de
transferencia T transf valdrá
Ttransf = Tconex + Tdesconex + Tp + n (Tt +B·Tt ) + (N-1) (Tt +B·Tt ) + Tt
El retardo de transferencia depende de
− el número de paquetes transmitidos,
− el número de nodos que se atraviesan y
− del retardo medio en los buffers.
Casos particulares en el cálculo del retardo de transferencia son:
– caso de B=0 (encuentra los nodos vacíos y sólo tarda una transmisión por
nodo):
Ttransf = Tconex + Tdesconex + Tp + n·Tt +N·Tt
– caso n=1 (Tiempo de transferencia de un sólo paquete):
Ttransf = Tconex + Tdesconex + Tp + N (B + 1) Tt + Tt
20.3.Tipos de redes WAN
Fundamentalmente son de 3 tipos: red pública, red privada y red privada virtual
Red pública:
http://www.tonet.jazztel.es
174
– Es una red que alquila líneas de comunicación a usuarios (clientes) para
conectarlos con otros usuarios o con servidores.
– En estas redes. el usuario no administra las líneas de comunicaciones, éstas
son administradas por la operadora de telecomunicaciones.
– Estas redes suelen usar tecnología WAN y los protocolos correspondientes a la
misma.
Red privada:
– Es una red que administra sus propias líneas de comunicaciones
– Estas redes pueden usar tecnología LAN o WAN
Red privada virtual
− Es una red privada, es decir, administrada por el dueño de la red, pero que usa
una red pública, es decir, administrada por una operadora, para interconectar a
sus usuarios.
− Estas redes pueden usar tecnología LAN o WAN
22.1.Tipos de enlaces
Los tipos de enlaces que en realidad son líneas de comunicaciones se pueden
agrupar en dos tipos en función del tipo de transmisión:
-
Comunicaciones analógicas, tales como las líneas telefónicas convencionales
(RTC) y
-
Comunicaciones digitales.
En cuanto a las comunicaciones analógicas, que en principio también son de
conmutación por circuito, pueden ser:
-
mediante llamada, como es el caso de la llamada telefónica convencional o
-
dedicada, es decir, una comunicación fija y permanente las 24 horas del día.
También se les llama punto a punto.
En cuanto a las líneas de comunicaciones digitales, hay tres tipos:
-
conmutación por circuito. En este caso también puede ser mediante llamada o
línea dedicada. Un ejemplo es el de RDSI.
-
conmutación por mensajes. Es el caso del X.25, Frame Relay y ADSL.
-
conmutación por celdas. Es el caso de ATM.
http://www.tonet.jazztel.es
175
22.2.Sistemas de transmisión digital
Los sistemas de transmisión digital están basados en la digitalización de los canales
de voz (PCM). El canal básico es de 64 kbps.
En RDSI se define 2 tipos de accesos :
•
el básico (BRI) (2B + D), que consta de 2 canales B y un canal D de 16 kbps, con
un ancho de banda total de 144 kbps y
•
el primario (PRI) (30B + D), que consta de 30 canales B y un canal de 128 Kbps
(8 canales D de 16 kbps), con un ancho de banda total de 2 Mbps
En comunicaciones la jerarquía de canales europea es la siguiente:
Velocidad
Sistema
Número de
canales
E–1
2048 Kbps
1er. orden
30
E–2
8448 Kbps
2º orden
E–3
34368 Kbps
E–4
Canales de
sincronismo
Nombre
vulgar
128 Kbps(2)
2 Mbps
120
768 Kbps(12)
8 Mbps
3er. orden
480
3648 Kbps(57)
34 Mbps
139264 Kbps
4º orden
1920
16384 Kbps(256) 140 Mbps
E-5
564992 Kbps
5º orden
7680
73472 Kbps(1148) 565 Mbps
E-6
2488000 Kbps
6º orden
30720
521920 Kbps(8155)
2,5 Gbps
Así en Europa una línea digital E1 consta de 30 canales de voz de 8 bits/canal más
2 canales de sincronización: L t =32*8=256 bits con una duración de 0,125 ms para
una V t =2,048 Mbps. Las sucesivas etapas de multiplexaciónson: E2 (120 canales
de voz), E3 (480 canales de voz =34,368 Mbps) ...
En todos los casos tiene que cumplirse que Vef ≥ Σ Vef i (para i =1…N). Eso significa
que si tenemos un enlace E3 a 34,368 Mbps con 480 canales de 64 Kbps, su
velocidad de transmisión para sincronismo vale
34,368 Mbps - 480 * 64 Kbps = 34,368 Mbps - 30,72 Mbps = 3,648 Mbps
es decir, 3,648 Mbps se dedican a transportar bits o canales de sincronismo (por
ejemplo 3,648 Mbps / 64 Kbps = 57 canales a 64 Kbps para sincronismos).
Sin embargo en EEUU y Japón, el equivalente al E1 es el DS -1 o T1 que consta de
24 canales de voz de 8 bits/canal más 1 bit de sincronización al principio de cada
trama: L t =24*8+1=193 bits con una duración de 0,125 ms para una V t =1,544
Mbps. Asimismo tiene su jerarquía equivalente para los niveles de mayor velocidad.
22.3.RDSI (Red Digital de Servicios Integrados)
http://www.tonet.jazztel.es
176
Red Digital de Servicios Integrados (RDSI), en inglés ISDN, se basa en la
tecnología de conmutación de circuitos. Es un sistema digital de comunicaciones
que permite el enlace entre distintas redes de datos. Este sistemas de
comunicaciones no solo permiten transmitir datos sino también voz.
Sus características principales son :
– Multiplexado por división de tiempo (TDM)
– Asignación estática de ancho de banda
– Time slots fijos
– Tiempo de latencia fijo, pequeño y predecible
– Tráfico isócrono
Componentes básicos
Los componentes de RDSI incluyen terminales, adaptadores de terminal (TA),
dispositivos de terminación de red (NT), equipo de terminación de línea y equipo de
terminación de intercambio. La tabla suministra un resumen de los componentes
de RDSI.
Equipo de terminal tipo 1
(ET1)
Designa un dispositivo que es compatible
con la red RDSI. Un ET1 se conecta a un
TR1 o TR2.
Equipo de terminal tipo 2
(ET2)
Designa un dispositivo que no es
compatible con la red RDSI y requiere un
adaptador de terminal (AT).
Adaptador de terminal (AT)
Convierte señales analógicas a digitales
compatibles con RDSI.
Terminación de red tipo 1
(TR1)
Conecta el cableado de RDSI de 4 hilos a
la instalación convencional de 2 hilos.
Terminación de red tipo 2
(TR2)
Es un dispositivo al que se pueden
conectar uno o varios equipos de terminal
1 (TE1) o adaptadores de terminal (AT), y
que realiza funciones de concentración y
conmutación.
Los terminales RDSI son de dos tipos, Tipo 1 o Tipo 2. Los terminales
especializados RDSI se denominan equipo de terminal de tipo 1 (ET1). Los
terminales que no son RDSI, como el equipo terminal de datos (DTE), más antiguos
que los estándares RDSI, se denominan equipo de terminal de tipo 2 (ET2). Los
ET1 se conectan a la red RDSI a través de un enlace digital de par trenzado de
cuatro cables. Los ET2 se conectan a la red RDSI a través de un AT. El AT RDSI
puede ser un dispositivo autónomo o una placa dentro del ET2. Si el ET2 se
implementa como un dispositivo autónomo, se conecta al AT a través de una
interfaz estándar de la capa física.
Más allá de los dispositivos ET1 y ET2, el siguiente punto de conexión en la red
RDSI es el dispositivo de terminación de red de tipo 1 (TR1) o de terminación de
http://www.tonet.jazztel.es
177
red de tipo 2 (TR2). Estos son dispositivos de terminación de red que conectan el
cableado de cuatro cables del suscriptor con el bucle local de dos cables
convencional. En Estados Unidos, TR1 es un dispositivo del equipo terminal del
abonado (CPE). En la mayoría de los países del mundo, además de Estados
Unidos, TR1 forma parte de la red suministrada por la portadora. TR2 es un
dispositivo más complicado, que habitualmente se encuentra en los intercambios
privados de ramas (PBX) digitales, que ejecutan servicios de protocolo de nivel 2 y
nivel 3. También hay un dispositivo TR1/2, que es un dispositivo único que combina
las funciones de TR1 y TR2.
S
T
ET1
TR2
R
U
TR1
S
ET2
AT
Puntos de referencia
Los puntos de referencia son un conjunto de especificaciones que definen la
conexión entre dispositivos específicos, según sus funciones en la conexión de
extremo a extremo. En la tabla siguiente se detalla cada uno de ellos.
R
Punto de conexión entre un dispositivo no
compatible con RDSI y un adaptador de
terminal (AT)
S
Punto de conexión de un TR2 con los
dispositivos compatibles con RDSI, es decir,
ET1 y ET2
T
Punto de conexión de un TR2 con un TR1
U
Punto de conexión entre un TR1 y la red
RDSI de la empresa de comunicaciones.
Canales: tipos
Este tipo de comunicaciones consta de 2 tipos de canales,
– el canal B que se emplea para la transmisión de datos y tiene un
ancho de banda de 64 Kbps y
– el canal D que se emplea como canal de señalización con una
velocidad de 16 Kbps.
El canal B funciona a nivel del red (3) según el modelo de referencia OSI, mientras
que el canal D o de señalización sólo funciona a nivel físico (1).
http://www.tonet.jazztel.es
178
El RDSI define 2 tipos de accesos :
– el básico (BRI) (2B + D), que consta de 2 canales B y un canal D,
con un ancho de banda total de 144 kbps y
– el primario (PRI) (30B + D), que consta de 30 canales B y un canal D,
con un ancho de banda total de 2 Mbps
En Estados Unidos, el tipo de acceso primario consta de 23 canales B y un canal D
con un ancho total de 1,544 Mbps
Canal D
Este canal de señalización emplea protocolos que comprenden los 3 primeros
niveles, físico, enlace y red, del modelo de referencia OSI. Asimismo se basa en la
recomendación SS7.
Las recomendaciones del CCITT empleadas en cada nivel son
Nivel red
Q.930/I.450 y Q.931/I.451
Nivel enlace Q.920/I.440 y Q.921/I.441
Nivel físico
I.430 para el acceso básico 0 I.431 para línea
multiplex primaria, con cable de cobre de 2 y
4 hilos
A nivel de enlace se utiliza el protocolo LAPD, protocolo orientado al bit. Se basa en
los estándares (HDLC) de la OSI (ISO 3309 a ISO 4355) y trabaja en modo de
operación asíncrono balanceado.
Las terminales no pueden transmitir al canal D a menos que antes detecten una
cantidad específica de unos (que indica que no hay señal) correspondiente a una
prioridad preestablecida.
Canal B
Este canal B solo se emplea en la transmisión de datos, por lo que solo se emplea
el nivel físico, siendo sus recomendaciones las mismas del canal D, es decir, I.430
para el acceso básico 0 I.431 para línea multiplex primaria, con cable de cobre de 2
y 4 hilos.
Transmisión
En una transmisión de datos de RDSI, el flujo de bits que se transmite comprende
no solo los de canal de datos B y el de señalización D, sino también otros bits
auxiliares o complementarios tales como bits de activación, de alineación de trama,
de equilibrado, de multitrama, etc.
Los bits del canal D se intercalan entre los octetos del canal B, y los octetos de los
distintos canales B también viajan intercalados, es decir, si es un acceso básico con
2 canales B, primero se envía un octeto del canal 1 del B, luego un octeto del canal
2, otro del 1, y así sucesivamente.
http://www.tonet.jazztel.es
179
22.4.Frame Relay
El Frame Relay es un protocolo de comunicaciones digital que se basa en la
conmutación de paquetes.
Sus características principales son :
-
Empleo de multiplexado estadístico, es decir, TDM asíncrono
-
Transmisión orientada a la conexión
-
Asignación dinámica del ancho de banda
-
Paquetes de longitud variable, por consiguiente el retardo es variable.
-
Tiempo de latencia alto e impredecible
Se trata de un protocolo que opera en los niveles físico y de enlace de datos del
modelo de referencia OSI, es decir, emplea conmutación a nivel 2.
En cuanto al control de errores y control de flujo depende de los protocolos de nivel
superior como TCP.
Su velocidad de transmisión puede llegar hasta 2 Mbps.
Hay 3 conceptos importantes en cuanto al protocolo Frame Relay y son :
-
Data link connection identifier (DLCI). El DLCI es el identificador de cada enlace
de comunicación, es decir, es el equivalente a una dirección. Los mensajes
Frame Relay contienen esta información, así se sabe su origen y destino. El
tráfico es multiplexado utilizando varios DLCIs por cada enlace físico, es decir,
un enlace físico puede soportar uno o más enlaces virtuales.
-
Circuitos virtuales permanentes (PVC). Los PVCs son enlaces predefinidos a
través de la red Frame Relay y que conectan dos sistemas finales. Son enlaces
http://www.tonet.jazztel.es
180
lógicos identificados cada uno de ellos por su DLCI. Estos enlaces son de
carácter permanente y se establecen de esta forma.
-
Circuitos virtuales conmutados (SVC). A diferencia de los PVCs, los SVCs no
están permanentemente definidos en la red Frame Relay. El equipo terminal
conectado requiere una llamada de inicio para establecer un circuito virtual antes
de una transmisión de datos. Las características de esta transmisión se
especifican en esta llamada. Asimismo cuando se termina la transmisión, se
cierra en enlace y el DLCI se libera para su uso posterior.
Una de las ventajas del Frame Relay es que los conmutadores utilizan una tabla de
enrutamiento con el formato que se ha detallado en el apartado anterior, es decir,
Puerto
entrada
DLCI
entrada
Puerto
salida
DLCI
salida
Esto ocupa muy poco espacio y por tanto cabe en memoria, y además como tiene
pocos elementos, es de un manejo extremadamente rápido, por lo que se
introducen unos retardos mínimos en el tráfico Frame Relay.
Con el fin de poder gestionar el tráfico de cada enlace, ya sea permanente PVC o
temporal SVC), hay un conjunto de parámetros que son los siguientes:
−
Velocidad de la línea. Es la velocidad nominal de la línea.
−
Commited Information Rate (CIR). Es el ancho de banda comprometido a
utilizar en condiciones normales. Esta velocidad es el promedio en un
período de tiempo. El CIR también se refiere al mínimo ancho de banda
aceptable. El CIR puede ser inferior o igual a la velocidad de la línea, es
decir, el DTE puede enviar mensajes a mayor velocidad que el CIR.
22.5.ADSL
El ADSL es un sistema digital de comunicaciones, que se emplea
fundamentalmente para la transmisión de datos mediante la utilización de los cables
de cobre existentes para telefonía analógica o digital. Con los modems habituales
se llega como máximo a 56 Kbps y con la tecnología ADSL se sobrepasa en mucho
este ancho de banda.
Un circuito ADSL conecta un adaptador ADSL a cada extremo de una línea
telefónica convencional, creando tres canales de información:
– un canal de alta velocidad en dirección al usuario,
– un canal dúplex de velocidad media, que depende de la
implementación de la arquitectura ADSL, y
http://www.tonet.jazztel.es
181
– un POTS (Plain Old Telephone Service) o un canal RDSI. El canal
POTS/RDSI se separa del adaptador digital mediante filtros, y así se
garantiza una conexión POTS/ISDN, aunque el ADSL falle.
La velocidad del canal rápido es de 1,5 a 6,1 Mbps, mientras que la del dúplex es
de 16 a 832 Kbps. Cada canal puede ser submultiplexado con el fin de generar
múltiples canales de menor velocidad, dependiendo del sistema.
Los adaptadores ADSL tienen una configuración mínima de 1,5 o 2,0 Mbps en
dirección al usuario y un canal dúplex de 16 Kbps; otras empresas ofrecen
velocidades de 6,1 Mbps y 64 Kbps para el dúplex. Los productos que hay
actualmente en el mercado soportan hasta 8 Mbps en una dirección y hasta 640 en
el dúplex.
La velocidad máxima soportada depende de varios factores tales como la longitud
de la línea de cobre, su sección, la presencia de puentes y las interferencias
existentes. La atenuación de la línea aumenta con la longitud y la frecuencia y
disminuye si aumenta la sección.
A continuación hay una tabla orientativa de las velocidades que se pueden llegar a
obtener en función de estos valores.
Velocidad
Wire Gauge
Longitud
Sección
Distancia
1,5 o 2 Mbps
24 AWG
18.000 ft
0,5 mm
5,5 km
1,5 o 2 Mbps
26 AWG
15.000 ft
0,4 mm
4,6 km
6,1 Mbps
24 AWG
12.000 ft
0,5 mm
3,7 km
6,1 Mbps
26 AWG
9.000 ft
0,4 mm
2,7 km
En el caso peor en cuanto a la existencia de ruido, se obtiene un caudal de 2 Mbps
en sentido descendente y 0,9 Mbps en sentido ascendente hasta una distancia de
2,6 Km. de la central. Esto supone que en la práctica, teniendo en cuenta la longitud
media del bucle de abonado en las zonas urbanas, la mayor parte de los usuarios
están en condiciones de recibir por medio del ADSL un caudal superior a los 2
Mbps. Este caudal es suficiente para muchos servicios de banda ancha, y desde
luego puede satisfacer las necesidades de cualquier internauta, teletrabajador así
como de muchas empresas pequeñas y medianas.
Comparación con los modems
El ADSL es una técnica de modulación para la transmisión de datos a gran
velocidad sobre el par de cobre. La primera diferencia entre esta técnica de
modulación y las usadas por los modems en banda vocal (V.32 a V.90) es que
estos últimos sólo transmiten en la banda de frecuencias usada en telefonía (300
Hz a 3400 Hz), mientras que los modems ADSL operan en un margen de
frecuencias mucho más amplio que va desde los 24 KHz hasta los 1104 KHz,
aproximadamente.
Otra diferencia entre el ADSL y otros modems es que el ADSL puede coexistir en
un mismo bucle de abonado con el servicio telefónico. Basta con ver que trabajan
http://www.tonet.jazztel.es
182
en bandas de frecuencia distintas, lo que no es posible con un módem convencional
ya que funciona en la banda vocal, la misma que la telefonía.
Tecnología
ADSL depende de los avances tecnológicos sobre el procesamiento de las señales
digitales y los algoritmos para transmitir la información sobre el par telefónico.
Además se han requerido muchos avances en transformadores, filtros analógicos y
convertidores A/D. Las líneas telefónicas largas pueden atenuar las señales de
hasta 1 Mhz hasta 90 dB, forzando a que las partes analógicas de los adaptadores
ADSL trabajen muy forzados, separando canales y manteniendo valores bajos de
ruido. Desde fuera, el ADSL parece sencillo, ya que consta de canales
transparentes de datos síncronos a distintas velocidades sobre las líneas
telefónicas convencionales.
Para crear múltiples canales, los adaptadores ADSL dividen el ancho de banda
disponible de una línea telefónica de dos formas, por Frequency Division
Multiplexing (FDM) o por Echo Cancellation. FDM asigna una banda en un sentido y
otra en el sentido contrario. En la dirección al usuario, se emplea multiplexación por
TDM en uno o más canales de alta velocidad. En el sentido desde el usuario, se
multiplexa en los correspondientes canales de baja velocidad. Con Echo
Cancellation, se asigna la banda que viene del usuario encima de la que va hacia
él, y se separan ambas por medio de local echo cancellation, una técnica bien
conocida en los modems V.32 y V.34. Con cualquiera de estas técnicas, ADSL
separa un canal de 4 kHz para POTS al final de la banda.
Un adaptador ADSL organiza el flujo de datos creado por multiplexación de los
canales en dirección al usuario, canales dúplex y canales de mantenimiento juntos
en bloques, y añade un código de corrección de error a cada uno de ellos. El
receptor así puede verificar y corregir los errores generados durante la transmisión
junto con la longitud del mismo especificado en el bloque. También pueden crearse
superbloques juntando subbloques. Así permite una eficiente transmisión de
señales de datos y vídeo.
Descripción de la modulación
Al tratarse de una modulación en la que se transmiten diferentes caudales en los
sentidos Usuario -> Red y Red -> Usuario, el módem ADSL situado en el extremo
del usuario es distinto del ubicado al otro lado del bucle, es decir, en la central local.
Así en los modems situados en casa del usuario (ATU-R o "ADSL Terminal UnitRemote) y en los de la central (ATU-C o "ADSL Terminal Unit-Central"), se ha de
colocar delante de cada uno de ellos un dispositivo denominado "splitter". Este
dispositivo no es más que un conjunto de dos filtros: uno paso alto y otro paso bajo.
La finalidad de estos filtros es la de separar las señales transmitidas por el bucle de
abonado, es decir, las señales de baja frecuencia (telefonía) de las de alta
frecuencia (ADSL).
http://www.tonet.jazztel.es
ATU-C
Splitter
183
Splitter
ATU-R
Bucle de
abonado
de cobre
Voz
Central telefónica
Telefóno
Domicilio del usuario
Modulación
En una primera etapa, coexistieron dos técnicas de modulación para el ADSL:
– CAP ("Carrierless Amplitude/Phase") y
– DMT ("Discrete MultiTone").
Sin embargo los organismos de estandarización (ANSI, ETSI e ITU) se han
decantado por la solución DMT. Esta solución consiste básicamente en el empleo
de múltiples portadoras y no sólo una, que es lo que se hace en los modems de
banda vocal. Cada una de estas portadoras (denominadas subportadoras) es
modulada en cuadratura (modulación QAM) por una parte del flujo total de datos
que se van a transmitir. Estas subportadoras están separadas entre sí 4,3125 KHz,
y el ancho de banda que ocupa cada subportadora modulada es de 4 KHz. El
reparto del flujo de datos entre subportadoras se hace en función de la estimación
de la relación Señal/Ruido en la banda asignada a cada una de ellas. Cuanto mayor
es esta relación, tanto mayor es el caudal que puede transmitir por una
subportadora. Esta estimación de la relación Señal/Ruido se hace al comienzo de la
transmisión, es decir, cuando se establece el enlace entre el ATU-R y el ATU-C por
medio de una secuencia de entrenamiento predefinida. La técnica de modulación
usada es la misma tanto en el ATU-R como en el ATU-C. La única diferencia estriba
en que el ATU-C dispone de hasta 256 subportadoras, mientras que el ATU-R sólo
puede disponer como máximo de 32.
La modulación es bastante complicada, pero el algoritmo de modulación se traduce
en una IFFT (transformada rápida de Fourier inversa) en el modulador, y en una
FFT (transformada rápida de Fourier) en el demodulador situado al otro lado del
bucle. Así el modulador del ATU-C, hace una IFFT de 512 muestras sobre el flujo
de datos que se ha de enviar en sentido "downstream". El modulador del ATU-R,
hace una IFFT de 64 muestras sobre el flujo de datos que se ha de enviar en
sentido "upstream". El demodulador del ATU-C, hace una FFT de 64 muestras
tomadas de la señal "upstream" que recibe. El demodulador del ATU-R, hace una
FFT, sobre 512 muestras de la señal "downstream" recibida.
Los espectros nunca se solapan con la banda reservada para el servicio telefónico
básico (POTS o "Plain Old Telephone Service"), y en cambio sí que se solapan con
los correspondientes al acceso básico RDSI. Por ello el ADSL y el acceso básico
RDSI son incompatibles.
http://www.tonet.jazztel.es
184
DSLAM
Como antes se ha explicado, el ADSL necesita una pareja de modems por cada
usuario: uno en el domicilio del usuario (ATU-R) y otro (ATU-C) en la central local a
la que llega el bucle de ese usuario.
Esto complica el despliegue de esta tecnología de acceso en las centrales. Para
solucionar esto, surgió el DSLAM ("Digital Subscriber Line Access Multiplexer").
Este dispositivo consiste en un chasis que agrupa gran número de tarjetas, cada
una de las cuales consta de varios modems ATU-C, y que además concentra el
tráfico de todos los enlaces ADSL hacia una red WAN.
22.6.Modems en telefonía móvil
Se trata de utilizar la telefonía móvil como línea de comunicaciones de transmisión
de datos. Para ello se necesita un módem que funciona como un modem estándar
analógico de acceso telefónico que se conecta al ordenador o a un dispositivo a
través de una interfaz serie y que se configura y llama con los comandos AT.
Cuando se diferencia es que utiliza una red celular inalámbrica para realizar la
conexión a través de su antena en oposición a una conexión física a una línea
telefónica analógica. Más allá de la conexión, actúa y funciona como un módem
normal.
Los modems en telefonía móvil funcionan de la misma forma que un módem
analógico de acceso telefónico, excepto que convierten los datos digitales en
señales de radio y viceversa. Lo que es interesante es que la evolución del módem
a través de una red de telefonía móvil se ha producido a un ritmo mucho más
rápido. De hecho el primer módem para telefonía móvil se desarrolló en la década
de 1990 y en el transcurso de sólo 14 años sus velocidades han pasado de 9.600
bps a 153K bps. Estas velocidades se espera mejorar aún más como la tecnología
evoluciona.
En la telefonía móvil, hay dos estándares que compiten entre ellos: GPRS y CDMA,
que dado son incompatibles, el usuario debe decidir cual de ellos va a emplear.
La elección de una tecnología se debe basar en la cobertura de la empresa, la
aplicación que va a utilizar, entre otras cuestiones por ejemplo de índole económica.
Una diferencia importante entre las tecnologías CDMA es que es más rápido que el
GPRS. Además, CDMA es también ligeramente más caro, tanto en el hardware y
en el servicio.
Con GPRS, el proceso de activación del servicio de datos de telefonía móvil es muy
similar a la activación de un teléfono móvil. Una vez que haya establecido una
cuenta con su compañía, la compañía proporcionará una tarjeta SIM (Subscriber
Identity Module). Esta tarjeta contiene todos los derechos de acceso, incluyendo la
identificación de la facturación. La tarjeta también incluye espacio de
almacenamiento para mensajes SMS y una agenda de teléfonos. Se enchufa en
una ranura en la parte frontal del módem inalámbrico. La tarjeta SIM se pueden
http://www.tonet.jazztel.es
185
intercambiar fácilmente con el nuevo hardware que le proporciona mayor flexibilidad
y movilidad.
Con CDMA, el módem de telefonía móvil, dependiendo de la compañía, utiliza la
tecnología de activación OTA (IP Over-The-Air). Tras la instalación, el módem de
forma inmediata y segura se registra en una red inalámbrica a través de la
mensajería estándar de registro. La red inalámbrica identifica de forma automática
el dispositivo a través del Número de Serie Electrónico, recoge los datos del usuario
y completa la activación. En la mayoría de los casos, el módem de telefonía móvil
está preparado para varias empresas, lo que significa que necesita comprar un
modelo específico según sea la compañía.
22.7.Conmutación de paquetes por datagrama
Se trata de una red tipo IP, es decir, una red de nivel 3, obviando los protocolos de
nivel 2.
En este caso la unidad de información es el datagrama y se trata de un servicio no
orientado a la conexión y no hay ningún tipo de reserva de recursos. La red de
paquetes se limita a hacer lo que puede, sin garantizar ningún tipo de calidad de
servicio (retardos o pérdidas acotadas), ya que la red no sabe por donde van a
pasar los paquetes.
El encaminamiento de los paquetes se decide en el instante en que llega el paquete
a la red. Esta decisión se hace por paquete y no por conexión. De hecho no
podemos hablar de “conexión” ya que la red no considera que haya conexiones,
considera que hay paquetes que viajan por la red.
Los nodos de estas redes son nodos no dedicados, por ejemplo, los enrutadores.
Ahora ya no se identifican los paquetes con un identificador de circuito virtual ya
que no hay un circuito establecido. Para tomar decisiones de por que puerto de
salida hay que sacar el paquete, se utilizan las direcciones origen y destino del
paquete. Estas direcciones identifican la red al que pertenece el equipo terminal y al
mismo tiempo identifican al equipo terminal.
La red sigue usando buffers para almacenar los paquetes que llegan. Al no haber
una reserva de recursos (buffers), cuando llegan muchos paquetes, los buffers se
saturan produciéndose congestión. En este momento, lo normal es que el
http://www.tonet.jazztel.es
186
conmutador descarte paquetes. Es problema de la pila de protocolos en el origen, el
ser capaz de recuperar esta información, usando algún mecanismo de
retransmisiones, por ejemplo con el protocolo de nivel de transporte.
Los retardos son variables para cada paquete, ya que la ruta puede ser distinta
para cada uno de los paquetes. Como mucho se puede calcular el retardo medio
por paquete transmitido.
El tiempo de transferencia T transf se define como el tiempo que tarda en transmitirse
una información que consta de un bloque de bits. Así su fórmula es
T transf = Tt + T red_Dat
Donde
-
Tt es el tiempo de transmisión y
-
T red_Dat es el tiempo desde que entra en la red hasta que sale.
22.7.1.Enrutador
Un enrutador o router es un dispositivo de nivel 3 que conecta distintos segmentos
de una red. Así si un host A (@IP A ) quiere enviar un paquete IP a otro host B
(@IP B ) que esté en otro segmento distinto, se hará a través de un router que
conecte ambos segmentos.
Las principales funciones de un enrutador son:
– “Forwarding”: envíar paquetes de una subred a otra
– “Routing”: decidir a que subred debe enviar un paquete que le llegue
de otra subred, es decir, decidir interficies de salida del router
– “Error messaging”: notificar al host origen con un mensaje ICMP de
cualquier problema que le impida realizar un “forwarding”
Otras funciones:
– “Fragmentation and reassembly”: (cada vez más en desuso) debido al
uso del “MTU Path Discovery”
– “Quality of Service” (QoS): cada vez más en uso con la introducción de
aplicaciones en tiempo real (Reserva de recursos)
– Otras: balanceos de cargas, servicios multiprotocolo, seguridad
informática (IPSec), protección de entrada en Intranets (firewalls), ....
22.7.2.Protocolo enrutable
Los protocolos como, por ejemplo, IP, IPX/SPX y AppleTalk suministran soporte de
nivel 3 y, en consecuencia, son enrutables. Sin embargo, hay protocolos que no
soportan la nivel 3, que se clasifican como protocolos no enrutables. El más común
http://www.tonet.jazztel.es
187
de estos protocolos no enrutables es NetBEUI. NetBeui es un protocolo pequeño,
veloz y eficiente que está limitado a ejecutarse en un segmento.
Para que un protocolo sea enrutable, debe brindar la capacidad para asignar un
número de red, así como un número de host, a cada dispositivo individual. Algunos
protocolos, tal como el protocolo IPX, sólo necesitan que se le asigne un número de
red; estos protocolos utilizan una dirección MAC de host como el número físico.
Otros protocolos como, por ejemplo, IP, requieren que se suministre una dirección
completa, así como también una máscara de subred. La dirección de red se obtiene
mediante una operación AND de la dirección con la máscara de subred.
22.7.3.Protocolos de enrutamiento
Los protocolos de enrutamiento determinan las rutas que siguen los protocolos
enrutados hacia los destinos. Entre los ejemplos de protocolos de enrutamiento
están el RIP, el IGRP, el EIGRP y el OSPF.
Los protocolos de enrutamiento permiten que los enrutadores conectados creen un
mapa interno de los demás enrutadores de la red o de Internet. Esto permite que se
produzca el enrutamiento (es decir, la selección de la mejor ruta y conmutación).
Estos mapas forman parte de la tabla de enrutamiento de cada router.
Los enrutadores usan protocolos de enrutamiento para intercambiar tablas de
enrutamiento y compartir información de enrutamiento. Dentro de una red, el
protocolo más común que se usa para transferir la información de enrutamiento
entre enrutadores ubicados en la misma red es el RIP. El IGP calcula las distancias
hacia un host destino en términos de cuántos saltos (es decir, cuántos
enrutadores) debe atravesar un paquete. El RIP permite que los enrutadores
actualicen sus tablas de enrutamiento a intervalos programables, generalmente
cada 30 segundos. Una de las desventajas de los enrutadores que usan RIP es que
constantemente se conectan con los enrutadores vecinos para actualizar sus tablas
de enrutamiento, generando así una gran cantidad de tráfico de red.
El RIP permite que los enrutadores determinen cuál es la ruta que se debe usar
para enviar los datos. Esto lo hace mediante un concepto denominado vectordistancia. Se contabiliza un salto cada vez que los datos atraviesan un router es
decir, pasan por un nuevo número de red, esto se considera equivalente a un salto.
Una ruta que tiene un número desaltos igual a 4 indica que los datos que se
transportan por la ruta deben atravesar cuatro enrutadores antes de llegar a su
destino final en la red. Si hay múltiples rutas hacia un destino, la ruta con el menor
número de saltos es la ruta seleccionada por el router.
Como el número de saltos es la única métrica de enrutamiento utilizada por el RIP,
no necesariamente selecciona la ruta más rápida hacia su destino. Una métrica es
una unidad de medición que permite tomar decisiones y próximamente aprenderá
que otros protocolos de enrutamiento utilizan otras métricas además del número de
saltos para encontrar la mejor ruta de transferencia de datos. Sin embargo, el RIP
continúa siendo muy popular y se sigue implementando ampliamente. La principal
razón de esto es que fue uno de los primeros protocolos de enrutamiento que se
desarrollaron.
http://www.tonet.jazztel.es
188
Otro de los problemas que presenta el uso del RIP es que a veces un destino
puede estar ubicado demasiado lejos como para ser alcanzable. El RIP permite un
límite máximo de quince para el número de saltos a través de los cuales se pueden
enviar datos. La red destino se considera inalcanzable si se encuentra a más de
quince saltos del enrutador.
http://www.tonet.jazztel.es
189
23. Analizadores de paquetes
Un analizador de paquetes es una aplicación que permite la captura de paquetes
para poder analizar su contenido. No se trata de una interceptación, sino sólo de
obtner una copia de los paquetes que se transmiten por la red.
23.1.Funciones
Entre las distintas funciones de un analizador de paquetes, podemos resaltar las
siguientes:
–
Decodificación de los paquetes. Esta función puede ser on-line u off-line, y
consiste en extraer la información que contiene cada paquete, no sólo los
datos, sino también el contenido de los distintos campos de cada protocolo.
–
Monitorizar el tráfico de la red. Esta función consiste en cuantificar el ancho
de banda consumido por cada protocolo, y su desglose de acuerdo con las
direcciones origen y destino.
–
Conocer las razones de la existencia de cuellos de botella. Cuando hay un
cuello de botella en la red, los tiempos de respuesta de las aplicaciones en
red aumentan de forma importante. El análisis de los paquetes de la red
permite conocer las causas de estos cuellos de botella y en consecuencia
actuar sobre los dispositivos de gestión para hacer frente a estos cuellos de
botella.
–
Detectar la actividad ilegal.
23.2.Funcionamiento
Un analizador de paquetes es un analizador de protocolo destinado a capturar los
paquetes que son vistos por la tarjeta de red (NIC) del ordenador. Cuando un
analizador de paquetes se ejecuta en un sistema, graba todos los paquetes que
entran y sale de la tarjeta de red (NIC) del ordenador en el que está instalado el
analizador de paquetes. Esto significa que, si la tarjeta de red está configurada en
modo promiscuo, entonces recibirá todos los paquetes enviados a la red si la red
está conectada a un concentrador. Por desgracia, en una red conmutada, dado que
no hay difusión de paquetes, los analizadores de paquetes no puede ver cualquier
paquete que no tenga la dirección de destino del ordenador en la que está
instalado. Desde el punto de vista de la seguridad, un ataque satisfactorio a un
analizador de paquetes en modo promiscuo puede ser muy peligroso.
http://www.tonet.jazztel.es
190
23.3.Modo promiscuo o no promiscuo
Los controladores de nivel 1 de las tarjetas de red (NIC) por defecto están
configuradas de forma que si la dirección MAC de destino de los paquetes no
coincide con la suya, los paquetes no son procesados. De esta forma no se
sobrecarga el procesador, ya que al principio de las redes Ethernet, que estaban
dotadas de concentradores en vez de conmutadores, todos los paquetes de una
LAN eran recibidos por todos los ordenadores de la LAN.
En la actualidad no es así, pero las configuraciones por defecto siguen de esta
manera. A este modo de trabajar se le llama modo no promiscuo. Sin embargo si se
quieren analizar todos los paquetes de la LAN, se tiene que configurar la tarjeta de
red como modo promiscuo. Insisto en que es básico que a la tarjeta de red le
lleguen los paquetes, ya que si hay un filtraje en algún punto de la LAN, y hace que
no le lleguen, es indiferente que la tarjeta de red esté en modo promiscuo o no.
23.4.Formato de un paquete IP
El formato de un paquete IP capturado por un analizador de paquetes puede ser
por ejemplo el siguiente:
------------ ETHER Header -----------ETHER: Destination: 00-20-18-3A-00-16
ETHER: Source: 00-20-18-3A-0A-12
ETHER: Protocol: IP
ETHER: FCS: DEF66737
------------ IP Header -----------IP: Version = 4
IP: Header length = 20
IP: Differentiated Services (DS) Field = 0x00
IP:
0000 00.. DS Codepoint = Default PHB (0)
IP:
.... ..00 Unused
IP: Packet length = 52
IP: Id = 121
IP: Fragmentation Info = 0x4000
IP:
.1.. .... .... .... Don't Fragment Bit = TRUE
IP:
..0. .... .... .... More Fragments Bit = FALSE
IP:
...0 0000 0000 0000 Fragment offset = 0
IP: Time to live = 64
IP: Protocol = TCP (6)
IP: Header checksum = C37B
IP: Source address = 147.83.40.67
IP: Destination address = 147.83.40.68
------------ TCP Header -----------TCP: Source port = 1031
TCP: Destination port = telnet (23)
TCP: Sequence number = 3513537882
TCP: Ack number = 3620132009
TCP: Data offset = 32
TCP: Flags = 0x11
TCP:
..0. .... URGENT Flag = FALSE
TCP:
...1 .... ACK Flag = TRUE
TCP:
.... 0... PUSH Flag = FALSE
TCP:
.... .0.. RST Flag = FALSE
TCP:
.... ..0. SYN Flag = FALSE
TCP:
.... ...1 FIN Flag = TRUE
TCP: Window = 32120
http://www.tonet.jazztel.es
191
TCP: Checksum = E036
TCP: Urgent pointer = 00000000
TCP: Options = (nop,nop,tsval = 736556 tsecr = 366040)
En este paquete se puede ver la cabecera Ethernet, la cabecera IP y también la
cabecera del nivel de transporte, en este caso, el protocolo TCP. Si analizamos los
campos de la cabecera IP, sus valores son:
−
Versión IP del paquete:
Versión 4
−
Longitud de la cabecera:
20 octetos
−
Longitud total del paquete: 52 octetos (20 de cabecera + 20 de datos)
−
Identificador: 0 (identifica que no hay fragmentación de paquetes)
−
Time to live: 64
−
Dirección origen: 147.83.40.68
−
Dirección destino: 147.83.40.67
23.5.Formato de un paquete TCP
El formato de un paquete TCP capturado por un analizador de paquetes puede ser
por ejemplo el siguiente:
------------ TCP Header -----------TCP: Source port = 1031
TCP: Destination port = telnet (23)
TCP: Sequence number = 103822598
TCP: Ack number = 160466417
TCP: Data offset = 32
TCP: Flags = 0x11
TCP:
..0. .... URGENT Flag = FALSE
TCP:
...1 .... ACK Flag = TRUE
TCP:
.... 0... PUSH Flag = FALSE
TCP:
.... .0.. RST Flag = FALSE
TCP:
.... ..0. SYN Flag = FALSE
TCP:
.... ...1 FIN Flag = TRUE
TCP: Window = 32120
TCP: Checksum = E036
TCP: Urgent pointer = 00000000
TCP: Options = (nop,nop,tsval = 736556 tsecr = 366040)
En este paquete solo se muestra la parte del protocolo TCP, dado que iría incluido
en un paquete IP que se ha mostrado en el apartado anterior. Si analizamos los
campos de la cabecera TCP, sus valores son:
−
Puerto origen: 1031 (16 bits)
−
Puerto destino: 23 (16 bits), correspondiente a la aplicación telnet
−
Número de secuencia: El número de secuencia del primer octeto de datos
del segmento.
−
Número de ACK: Si el bit ACK vale 1, este campo contiene el número de
secuencia siguiente al de recepción.
−
Longitud datos: 32 octetos.
−
Flags: Campo de 6 bits que contiene las funciones de control:
http://www.tonet.jazztel.es
192
−
URGENT: Puntero de emergencia
−
ACK: Campo de acuse de recibo
−
PSH: Implica que la aplicación ha solicitado enviar los datos
existentes en la memoria temporal.
−
RST: Campo de interrupción de la conexión actual.
−
SYN: Campo de la sincronización de los números de secuencia.
−
FIN: Campo que indica a la aplicación de que no hay más datos a
transmitir.
−
Window: Campo de 16 bits que indica cuantos octetos tiene la ventana de
transmisión del protocolo de control de flujo en el mecanismo de ventana
deslizante.
−
Checksum: Campo de 24 bits que contiene la suma de la comprobación de
errores.
−
Urgent Pointer: Campo de 8 bits que se utiliza cuando se envían datos
urgentes con preferencia sobre los demás.
-
Options: Puede estar presente o no y sus opciones son:
-
Timestamp: Sirve para monitorizar los retardos
-
Aumento del tamaño de la ventana (Window)
-
Indicar el tamaño máximo del segmento que se puede enviar.
23.6.Formato de un paquete HTTP
Se trata de un ejemplo de un protocolo de nivel de aplicación y que por lo tanto
debe ir dentro de paquete de un protocolo de nivel de transporte TCP/UDP y este a
su vez en un paquete de un protocolo de nivel red como es el protocolo IP. Ambos,
el IP y el TCP, ya se han mostrado en los apartados anteriores.
En el caso del protocolo HTTP, hay tres tipos de cabeceras: General Headers,
Request Headers y Entity Headers. En el ejemplo en cuestión solo se muestra la
Request Headers y es la siguiente:
------------ HTTP Header -----------HTTP: Full Request
HTTP: Method= GET
HTTP: Request-URI= /
HTTP: HTTP-version= HTTP/1.1
HTTP: Host= www.google.com
HTTP: User-Agent= Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830
HTTP:
Accept=text/xml,application/xml,application/xhtml+xml,text/html;
q=0.9,text/plain;q=0.8,video/xmng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
HTTP: Accept-Language= en-us, en;q=0.50
HTTP: Accept-Encoding= gzip, deflate, compress;q=0.9
HTTP: Accept-Charset= ISO-8859-1, utf-8;q=0.66, *;q=0.66
HTTP: Keep-Alive= 300
HTTP: Connection= keep-alive
Si analizamos los campos de la cabecera HTTP, sus valores son:
http://www.tonet.jazztel.es
193
-
Tipo de petición: Full-Request (petición completa)
-
Método: GET. Este método significa que el cliente desea obtener el
recurso especificado en el URI de la petición. Otros métodos: head,
post, put, delete, link y unlink
-
Request-URI: es parte del Request-Line e identifica el objeto al que se
aplicará el método solicitado.
-
Versión del protocolo: HTTP 1.1
-
Host, página web solicitada
-
User-Agent: Equipo y software desde donde se realiza la petición
-
Otros parámetros del protocolo dan información sobre el idioma, el
formato de compresión i la tabla de caracteres utilizada.
http://www.tonet.jazztel.es
194
24. Gestión de redes
La gestión de una red se refiere a las actividades, métodos, procedimientos y
herramientas que pertenecen a la operación, la administración, el mantenimiento y
el aprovisionamiento de los sistemas en red.
La operación se ocupa de que la red esté en funcionamiento sin problemas. Esto
incluye la monitorización de la red para detectar problemas tan pronto como sea
posible, idealmente antes de que los usuarios se vean afectados.
La administración se ocupa de hacer el seguimiento de los recursos en la red y
cómo se asignan. Incluye todas las operaciones que son necesarias para mantener
la red bajo control.
El mantenimiento se ocupa de realizar las reparaciones y mejoras, por ejemplo
cuando un equipo debe ser reemplazado, cuando un enrutador necesita un parche
en su sistema operativo, cuando se añade un nuevo conmutador a la red. El
mantenimiento también incluye medidas preventivas y correctivas para que la red
funcione mejor, tales como el ajuste de los parámetros de configuración de cada
uno de los dispositivos de la red.
El aprovisionamiento se refiere a la configuración de recursos en la red para dar
soporte a un determinado servicio. Por ejemplo, esto podría incluir la configuración
de la red para que un nuevo usuario puede recibir servicio de voz.
También hay que saber que hay dos aspectos importantes en las redes TCP/IP, el
encaminamiento y la utilización del ancho de banda, cuya gestión es muy
importante.
24.1.Monitorización de las redes
Se utiliza el término monitorización para designar el tipo de acciones consistentes
en obtener información de la red con el fin de detectar anomalías. Estas acciones
son pasivas y su único objetivo es conocer el comportamiento respecto al tráfico del
sistema. Una vez se conoce el sistema se puede proceder al control: para ello se
establece una señalización o plano de control en toda red que se ocupa de regular
activamente las comunicaciones y, en general, el tráfico de la red.
En el proceso de monitorización de la red se consideran una serie de aspectos
como son: en primer lugar, una definición de la información de gestión que se
monitoriza, una forma de acceso a la información de monitorización, un diseño de
los mecanismos de monitorización y, finalmente, un procesado de la información de
monitorización obtenida. Por otra parte, la información de monitorización puede
clasificarse según su naturaleza temporal en: información estática que se almacena
en los elementos monitorizados (p.e. inventario); información dinámica que se
http://www.tonet.jazztel.es
195
almacena en los propios elementos o en equipos especializados (p.e. cambios de
estado o fallos) e información estadística que se genera a partir de la información
dinámica y que puede residir en cualquier lugar que tenga acceso a la información
dinámica (p.e. Rendimientos).
Para la monitorización se utilizan los analizadores de paquetes descritos en el
capítulo anterior.
24.2.Gestión por niveles
En la gestión de una red de ordenadores debe tenerse en cuenta que estas
funcionan de acuerdo con un nivel de protocolos. Así a nivel hardware, debemos
controlar el correcto funcionamiento del mismo y en especial de la tarjeta de red
(NIC). Por ello es muy general la existencia de un indicador luminoso en la tarjeta
de red o en algún lugar del ordenador.
En cuanto a los protocolos de red y transporte, habitualmente TCP/IP, sus
controladores son piezas de programación. La verificación de su correcto
funcionamiento pasa por abrir una ventana del sistema, ejecutando el comando
cmd. Una vez en esta ventana, ejecutaremos
ping 127.0.0.1
y si la respuesta es correcta, significa que los controladores TCP/IP están
correctamente instalados. Eso se puede hacer con el ordenador conectado a la red
o no, dado que es una verificación interna del propio ordenador.
A continuación conectaremos el ordenador a la red, y necesitaremos conocer la
dirección IP del ordenador. Para ello dependiendo del sistema operativo utilizado,
ejecutaremos el comando ipconfig o ifconfig o uno equivalente.
Ahora en la ventana del sistema, ejecutaremos
ping (dirección IP del ordenador)
Si la respuesta es correcta, significa que el protocolo TCP/IP funciona
correctamente en esta red.
Con todo esto hay que hacer una última verificación en cuanto a la configuración
del DNS. Para ello en la ventana del sistema ejecutaremos
ping www.yahoo.com
o algo similar, con lo que se visualiza la traducción de la URL www.yahoo.com a
una dirección IP.
http://www.tonet.jazztel.es
196
24.3.Gestión de ancho de banda
Las redes de ordenadores de las empresas han ido incorporando nuevos servicios
tales como la videoconferencia, las aplicaciones multimedia, el seguimiento de
pedidos e inventario, el comercio Internet remoto y las aplicaciones críticas basadas
en Intranet. Estos servicios son en la actualidad la infraestructura de los modernos
negocios. Estas tendencias han llevado a la adopción generalizada de procesos de
negocio basados en Intranet y han transformado la WAN de la empresa de ser una
simple herramienta de conectividad a ser un recurso estratégico.
Sin embargo, a medida que las redes crecen, las organizaciones se dan cuenta de
que el costo operacional aumenta significativamente, mientras que su capacidad
para dirigir y controlar la red es muy limitado. La raíz de este problema yace en el
hecho de que a diferencia de la LAN, que son propiedad de la empresa, la Intranet
se basa en la WAN y ésta se alquila o contrata a las empresas de comunicaciones.
Así, mientras el uso de LAN es basicamente gratuito en tanto en cuanto la
compañía posee su infraestructura, el costo de propiedad de la WAN es importante
y es una partida significativa en el presupuesto de la empresa. Esta es la razón
principal de porque el ancho de banda de las líneas de comunicaciones que
enlazan las LAN ha sido siempre un recurso limitado.
La dificultad de controlar el tráfico por estas líneas de comunicaciones, ha hecho
que las aplicaciones que necesitan un amplio ancho de banda, colapsen las líneas,
sus servidores siempre estén muy ocupados, y que haya una demanda creciente de
las aplicaciones multimedia y que más usuarios estén autorizados a conectarse a
Internet cada día. Además el crecimiento exponencial de las velocidades de LAN
versus las bajas velocidades de las líneas de comunicaciones han creado un
desequilibrio entre la cantidad de tráfico que intenta cruzar la red de la empresa y la
cantidad que las líneas de comunicaciones pueden soportar realmente. Este
ambiente caótico y libre-para-todo ha hecho casi imposible garantizar el
rendimiento adecuado de las aplicaciones críticas para el negocio que se requieren
que permanezcan funcionando y corriendo en todo momento.
Es este problema ha llevado a los gestores informáticos a buscar herramientas que,
mediante un control activo y una priorización del tráfico de las líneas de
comunicaciones, puedan priorizar y asignar ancho de banda basándose en las
necesidades corporativas, optimizando la utilización del ancho de banda a través de
las aplicaciones y garantizando un tiempo de respuesta adecuado para cada
aplicación.
Hay actualmente dos enfoques distintos en cuanto a la gestión del ancho de banda
de las líneas de comunicaciones. El primer enfoque se basa en el uso de un
dispositivo de LAN que regule el tráfico de LAN que va al enrutador en la suposición
que la tal acción mejorará el rendimiento de las líneas de comunicaciones. El
segundo enfoque usa un dispositivo nativo de WAN, que se conecta físicamente a
la salida de las líneas de comunicaciones y regula el tráfico real que fluye por ellas.
http://www.tonet.jazztel.es
197
24.3.1.Conocimiento de las líneas de comunicaciones
Con el fin de gestionar de forma efectiva el ancho de banda de las líneas de
comunicaciones, un sistema de gestión necesita estar totalmente versado con las
topologías y los protocolos de WAN. El cálculo de la utilización de línea, por
ejemplo, requiere del análisis del BECN y FECN que generan los conmutadores
Frame Relay y están limitados por los enrutadores. Otros parámetros requeridos
para una eficaz gestión del ancho de banda tales como los errores de línea, el
análisis del tiempo de respuesta, la verificación del CIR y las medidas de
congestión, requieren que el hardware de monitorización esté conectado al enlace
WAN. Un sistema basado en LAN es incapaz de medir estos parámetros, por lo
tanto, será incapaz de comprender cual es el estado real de la WAN, con lo que no
puede hacer una gestión eficaz del ancho de banda de la misma. Los sistemas
basados en LAN se alimentan manualmente con el rendimiento teórico de WAN y
entonces simplemente asumen que el rendimiento de la WAN (tales como
utilización, tasa de error, nivel de congestión) nunca cambia. Esta suposición no es
válida, dado que el rendimiento de la WAN cambia dinámicamente. Sin embargo los
sistemas nativos basados en WAN pueden controlar fácilmente los parámetros
específicos de WAN porque ellos están conectados físicamente a ella.
24.3.2.Monitorización Dinámica por Circuito
La monitorización de los enlaces WAN donde el tráfico debe ser modulado, es un
requisito previo para una gestión eficaz del ancho de banda de WAN ya que sin
mediciones apropiadas, un sistema de gestión de ancho de banda es incapaz de
aplicar las prioridades correctas al tráfico de red. Dado que cada enlace WAN
consta de varios Circuitos (PVCs, SVCs, o punto-a-punto), la monitorización debe
hacerse por circuito. Así el enrutador WAN separará las tramas entrantes a la LAN
en los distintos circuitos con base al destino de los datos y los actuales caminos de
la red, y combinará el tráfico entrante de WAN de múltiples circuitos en una fuente
única de LAN. Dado que cada circuito se comporta como una entidad separada de
WAN teniendo su propio CIR, el rendimiento y los parámetros de ancho de banda,
la monitorización se debe basar por circuito.
El problema con los sistemas basados en LAN es que todo el tráfico de LAN parece
igual. Solamente después de que el enrutador divide las tramas de LAN en sus
apropiados circuitos de WAN, puede verdaderamente hacerse una monitorización
de la WAN.
En contraste a esto y dado que un sistema basado en WAN entiende de
topologías y protocolos de WAN y opera a nivel de circuito, este sistema WAN
puede identificar las posibles congestiones y garantizar que el tráfico más crítico
dispone de una prioridad más alta sobre este determinado canal.
http://www.tonet.jazztel.es
198
25. Simuladores de redes
Un simulador de red es un programa de software que imita el funcionamiento de
una red de ordenadores, sin estar presente una red real. En los simuladores, la red
de ordenadores se suele modelar con los dispositivos, el tráfico, etc. y se analiza el
rendimiento. Por lo general, los usuarios pueden personalizar el simulador para
satisfacer sus necesidades específicas de análisis y vienen con el soporte para los
protocolos más populares actualmente en uso, tales como WAN, Wifi, UDP y TCP.
La mayoría de los simuladores comerciales se basan en GUIs, mientras que otros
simuladores de red requieren scripts o comandos de entrada para parámetrizar la
red. Los parámetros de red describen el estado de la red (la situación de los nodos,
los enlaces existentes) y de los eventos (las transmisiones de los datos, los fallos
de los enlaces, etc.) Un resultado importante de las simulaciones son los ficheros
donde se alacenan los datos de la simulación. Estos ficheros pueden documentar
todos los eventos que ocurrieron durante la simulación y se utilizan para el análisis.
Determinados simuladores han añadido la funcionalidad de capturar este tipo de
datos directamente desde el entorno de producción en funcionamiento en distintos
momentos del día, semana o mes, a fin de reflejar el promedio, el peor de los casos
y las condiciones del mejor de los casos. Los simuladores de la red también puede
proporcionar otras herramientas que facilitan el análisis visual de las tendencias y
los posibles puntos débiles.
La mayoría de los simuladores de red utilizan la simulación de eventos discretos, en
el que se almacena una lista de eventos en espera, y estos eventos se procesan en
orden, de forma que desencadenen eventos futuros, como el evento de la llegada
de un paquete en un nodo.
Algunos problemas de la simulación de red, especialmente los que dependen de la
teoría de colas, se adaptan bien a las simulaciones de la cadena de Markov, en el
que no se mantienen una lista de eventos futuros y la simulación consiste en el
tránsito entre los estados diferentes del sistema de una forma sin mememoria. La
simulación de la cadena de Markov es en general más rápida pero menos precisa y
flexible que la simulación detallada de eventos discretos. Algunas simulaciones son
cíclicas y se basan en simulaciones y son más rápidas en comparación con las
simulaciones basadas en eventos.
La simulación de las redes puede ser una tarea difícil, por ejemplo, si la congestión
es alta, entonces la estimación de la ocupación media es un reto debido a la alta
variancia. Para estimar la probabilidad de un desbordamiento del búfer en una red,
el tiempo necesario para una respuesta precisa puede ser muy grande. Hay
técnicas que aceleran la resolución de esta simulación.
En comparación con el costo y el tiempo necesarios para crear un banco de
pruebas completo que contenga varios ordenadores conectados en red, los
enrutadores y los enlaces, los simuladores de red son más rápidos y más baratos.
Permiten a los ingenieros y a los investigadores probar escenarios que podrían ser
http://www.tonet.jazztel.es
199
especialmente difíciles o costosos de emular utilizando hardware real, como por
ejemplo, simulando un escenario con varios nodos o experimentando con un nuevo
protocolo en la red. Los simuladores de red son particularmente útiles para permitir
a los investigadores probar nuevos protocolos de red o cambios en los protocolos
existentes en un entorno controlado y reproducible.
Los simuladores de red, como su nombre indica, son utilizados por los
investigadores, los desarrolladores y los ingenieros para diseñar distintos tipos de
redes, simular y a continuación analizar el efecto de diversos parámetros en el
rendimiento de la red. Un simulador de red típica abarca una amplia gama de
tecnologías de red y puede ayudar a los usuarios a construir redes complejas a
partir de bloques constructivos básicos, tales como una variedad de nodos y
enlaces. Con la ayuda de los simuladores, se pueden diseñar redes jerárquicas con
varios tipos de nodos, como ordenadores, concentradores, puentes, enrutadores,
conmutadores, enlaces, etc.
Hay una gran variedad de simuladores de red, que van desde los más simples
hasta los más complejos. Como mínimo un simulador de red deberá permitir a un
usuario representar a una topología de red, especificando los nodos de la red, los
enlaces entre los nodos y el tráfico entre los nodos. Los sistemas más complicados
pueden permitir que el usuario especifique todo lo relacionado con los protocolos
utilizados para manejar el tráfico en una red. Las aplicaciones gráficas permiten a
los usuarios visualizar fácilmente el funcionamiento del entorno simulado. Las
simulaciones basadas en texto puede proporcionar una interfaz menos intuitiva,
pero puede permitir formas más avanzadas de personalización.
25.1.Elementos de una simulación de redes
El primer paso de una simulación de red es el establecimiento de su topología. Para
ello deben definirse los nodos que componen esta red a simular. A continuación
establecer los enlaces entre los nodos y en cada uno de ellos, definir sus
parámetros de funcionamiento, por ejemplo, distancia, resistencia eléctrica, etc.
El segundo paso es definir las fuentes de tráfico, es decir, toda red de ordenadores
sirve para llevar información desde un origen a un destino. Así en una red se deben
definir los nodos origen que son las fuentes del tráfico y los nodos destino que son
los que reciben el tráfico. Además las fuentes de tráfico pueden ser de distintos
tipos y en función de los análisis a realizar, se establecerán unos tipos u otros de
patrones de tráfico. El tráfico de Internet es del tipo que se conoce como best-effort.
Un tercer paso es parametrizar los nodos intermedios, que se conocen con el
nombre de enrutadores. Estos nodos intermedios, aparte de su tiempo de latencia,
deben estar dotados de las correspondientes tablas de encaminamiento, cuyo
contenido es fundamental para la distribución del tráfico de la red.
A todo esto hay que añadir los protocolos con sus parámetros y temporizadores, así
como los métodos de las teorías de cola que se utilizan en la gestión de los búferes.
http://www.tonet.jazztel.es
200
25.2.Tipos de simulaciones
Existen varias características de las cuales podemos clasificar las simulaciones,
siendo algunas de estas posibles clasificaciones las siguientes:
- Simulación estática: Se denomina modelo de simulación estática a la
representación de un sistema en un instante de tiempo determinado.
- Simulación dinámica: Se denomina modelo de simulación dinámica a la
representación de un sistema cuando evoluciona con el tiempo.
- Simulación determinista: Se denomina modelo de simulación determinista a la
representación de un sistema que no contiene absolutamente ninguna variable
aleatoria.
- Simulación aleatoria: Se denomina modelo de simulación aleatoria a la
representación de un sistema que contendrá variables aleatorias.
- Simulación continua: Se denomina modelo de simulación continuo a la
representación de un sistema donde su comportamiento cambia de forma continua
en el tiempo.
- Simulación Discreta: Se denomina modelo de simulación discreto a la
representación de un sistema donde su comportamiento cambia únicamente en
instantes de tiempo concretos, eventos.
25.3.ns – Network Simulator
El simulador ns es un simulador de eventos discretos de la red, basado en software
libre, licenciado bajo la licencia GNU GPLv2, y está a disposición del público de
investigación, desarrollo y uso.
El ns está desarrollado con los lenguajes C++ y Python, y utiliza secuencias de
comandos para su ejecución. Está compuesto por 30 módulos, y sus principales
características son:
–
Eventos de devolución de llamada
–
Sistemas de atributos gestionado por defecto y valores de simulación por
objeto
–
Ayudas que permitan un uso más simple de las API para configurar
simulaciones
Incluyen cuatro pasos:
1. La implementación de modelos de protocolos.
2. Configuración del escenario de simulación en un fichero texto plano.
http://www.tonet.jazztel.es
201
3. Ejecución de la simulación.
4. Análisis de los resultados de la simulación.
25.4.Simulador OMNeT++
OMNeT++ es un simulador de redes de eventos discretos, modular y orientado a
objetos. El simulador se puede usar para:
•
•
•
•
•
•
•
modelar el tráfico de las redes de telecomunicaciones
modelar protocolos
modelar las colas de espera de las redes
modelar sistemas multiprocesadores y otros hardware distribuido
validar arquitecturas de hardware
evaluar aspectos de rendimiento de complejos sistemas de software
modelar cualquier otro sistema donde la propuesta de eventos discretos sea
posible.
Un modelo OMNeT++ consta de módulos anidados jerarquicamente. La
profundidad del anidado de módulos no tiene límites, lo que permite al usuario
reflejar la estructura lógica del sistema actual en la estructura del modelo. Los
módulos se comunican a través del traspaso de mensajes. Los mensajes pueden
contener arbitrariamente estructuras complejas de datos. Los módulos pueden
enviar mensajes ya sea directamente a su destino o a lo largo de un camino
predefinido, a través de puertas y conexiones.
Los módulos pueden tener sus propios parámetros. Los parámetros se pueden usar
para customizar el comportamiento del módulo y parametrizar la topología del
modelo.
Los módulos al nivel más bajo de la jerarquía del módulo encapsulan el
comportamiento. Estos módulos se llaman módulos simples y están programados
en C++ usando la librería de simulación.
25.5.Simulador GNS3
GNS3 es un simulador gráfico de la red que permite la simulación de redes
complejas. Para proporcionar simulaciones completas y precisas, GNS3 está
estrechamente relacionado con:
–
Dynamips, un emulador de Cisco IOS.
–
Qemu, un emulador de máquina genérico y abierto y un virtualizador.
–
VirtualBox, un software de virtualización gratuito y potente.
También se puede utilizar para experimentar las características del IOS de Cisco, el
JunOS de Juniper o para verificar las configuraciones que deben implementarse
más tarde en los enrutadores.
http://www.tonet.jazztel.es
202
Este proyecto es un programa de código abierto y gratuito que se puede utilizar en
múltiples sistemas operativos, incluyendo Windows, Linux y MacOS X.
25.6.SSFNet
SSFNet es una colección de componentes basado en Java, que permiten la
modelización y la simulación de los protocolos utilizados en Internet y las redes por
encima del nivel de paquetes IP. El modelado de los niveles de enlace y de la capa
física se puede proporcionar en componentes separados.
Los modelos SSFNet se configura automáticamente, es decir, cada instancia de la
clase SSFNet se puede configurar de forma autónoma mediante la consulta de una
base de datos de configuración, que puede residir localmente o remotamente en
Internet. Los ficheros de configuración de la red están en formato DML. Se utilizan
para configurar un modelo completo e inician una simulación con la ayuda del
paquete escalable de datos de configuración en DML que se distribuye con los
simuladores SSF.
Las clases principales utilizadas para construir virtualmente cualquier modelo de red
se organizan en dos estructuras, SSF.OS para el modelado de los ordenadores y
los componentes del sistema operativo, como los protocolos y SSF.Net para el
modelado de la conectividad de las redes, creando las configuraciones de los nodos
y los enlaces.
Los marcos SSF.OS y SSF.Net ocultan todos los detalles de las API del simulador
de eventos discretos SSF, que permite implementar los protocolos, como en un
sistema operativo real.
25.7.GTNetS
El Georgia Tech Network Simulator (GTNetS) es un entorno completo de simulación
de red que permite a los investigadores en redes de ordenadores estudiar el
comportamiento de redes de distinto tamaño bajo una variedad de condiciones. La
filosofía de diseño de GTNetS es crear un entorno de simulación que está
estructurado al igual que están estructuradas las redes actuales. Por ejemplo, en
GTNetS, hay una separación clara de los niveles de la pila de protocolos.
Los paquetes en GTNetS consisten en una lista de PDUs de los distintos protocolos
que se añaden y se retiran del paquete a medidad que se mueve arriba y abajo de
la pila de protocolos. Los objetos de simulación que representan los nodos de red
tienen una o más interfaces, cada una de ellas puede tener una dirección IP
asociada y un enlace asociado. Los objetos del protocolo de nivel 4 en GTNetS
enlaza con los puertos, de manera casi idéntica a la unión a los puertos de
protocolos de red real. Las conexiones entre los objetos de protocolo en el nivel de
transporte se especifican mediante una tupla que contiene la dirección IP de origen,
el puerto de origen, la dirección IP de destino y el puerto de destino como las
conexiones TCP reales. La interfaz entre las aplicaciones y los protocolos de nivel
http://www.tonet.jazztel.es
203
de transporte utiliza las llamadas ahbituales connect, listen, send y sendto como en
las API de los entornos UNIX.
Las aplicaciones en GTNetS pueden tener asociadas uno o más objetos de
protocolo y pueden simulatar el flujo de datos entre aplicaciones.
http://www.tonet.jazztel.es
204
26. Programando en red con python
26.1.Introducción
En este capítulo se explica como desarrollar un protocolo a nivel de aplicación
utilizando el lenguaje de programación Python. Para ello se implementa el módulo
“socket” en Python, módulo que abarca sobre todo las llamadas del sistema y las
funciones, todo ello implementado con la programación orientada al objeto. Este
protocolo de nivel de aplicación debe correr con la pila TCP/IP, es decir, sólo
funcionara en ordenadores que tengan implementados el protocolo IP a nivel de red
y el TCP o UDP a nivel de enlace.
Python ofrece un interfaz simple, mucho más simple que en C, para crear y para
utilizar correctamente un socket. Sobre todo, se define la función “socket()”
devolviendo un objeto “socket”. El socket tiene varios métodos, correspondiendo a
sus pares de sys/socket.h de C, como bind(), connect(), listen() o accept(). Los
programadores acostumbrados con el uso del socket en lenguaje C, encontrarán
muy fácil traducir su conocimiento en la implementación del socket y más fácil de
utilizar en Python. Python elimina la tarea desalentadora de llenar estructuras como
“sockaddr” en un “hostent” y facilita el uso de métodos o de funciones previamente
mencionados, es decir, el pasar parámetro, así la llamada de las funciones son más
fáciles de dirigir. También se proporcionan algunas funciones orientadas a red: el
“gethostbyname()”, el “getprotobyname()” o las funciones de conversión “ntohl()”,
“htons()”, útiles cuando los números enteros que convierten a y desde red ajustados
a formato. El módulo proporciona constantes como SOMAXCONN, INADDR *,
usado en funciones del “gesockopt()” o del “setsockopt()”.
Python proporciona además del socket, los módulos adicionales que apoya los
protocolos más comunes de red a nivel de usuario. Por ejemplo podemos
encontrar los útiles módulos como el “httplib”, “ftplib”, “telnetlib” y “smtplib”. Está
implementado el soporte para la ejecución de los scripts de CGI a través del módulo
“cgi”, un módulo para el análisis del URL, clases que describen los servidores web.
Estos módulos son implementaciones específicas de protocolos bien conocidos
para que el usuario los utilice y no se esté intentando reinventar la rueda.
26.2.Uso básico del socket
El socket es la estructura básica para la comunicación entre los procesos. Un
socket se define como "un punto final de la comunicación a la cual se pueda limitar
con un nombre". La implementación 4.3 BSD define tres dominios de comunicación
para un socket: el dominio UNIX para la comunicación on-system entre procesos;
el dominio Internet para los procesos que se comunican sobre el protocolo de
http://www.tonet.jazztel.es
205
TCP(UDP)/IP; el dominio NS usado por los procesos que se comunican sobre el
viejo protocolo de comunicación de Xerox.
Python sólo utiliza los primeros dos dominios de la comunicación: los dominios
UNIX e Internet, las familias de direcciones AF UNIX y los AF INET
respectivamente. Las direcciones del dominio UNIX se representan como cadenas
de caracteres, nombrando un camino local: por ejemplo /tmp/sock. Esto puede ser
un socket creado por un proceso local o creado posiblemente por un proceso
foráneo. Las direcciones del dominio de Internet se representan como un par
(dispositivo, puerto), donde el dispositivo es una cadena de caracteres que
representa un nombre hostname válido de Internet, por ejemplo matrix.ee.utt.ro o
una dirección IP en el notación decimal con puntos y el puerto es un puerto válido
entre 1 y 65535.
Python ofrece los cinco tipos de socket definidos en la implementación 4.3 BSD
IPC. Dos se utilizan generalmente en la inmensa mayoría de las nuevas
aplicaciones. Un “stream socket” es un socket orientado a conexión y tiene el
soporte de la comunicación subyacente del protocolo TCP, suministrando un flujo
de datos bidireccional, confiable, secuenciado y sin duplicidades. Un “datagram
socket” es un socket de comunicación no orientado a conexión, apoyado en el
protocolo UDP. Ofrece un flujo de datos bidireccional, no confiable, no secuenciado
y con posibilidad de duplicidades. Un proceso que recibe una secuencia de
datagramas puede encontrar mensajes duplicados o, posiblemente, en otro orden
distinto de los paquetes cuando fueron enviados. Raramente se usan los tipos
“raw”, ordenados y confiablemente entregados de los zócalos del mensaje. El tipo
“raw socket” es necesario cuando una aplicación puede requerir el acceso a los
recursos más íntimos proporcionados por la implementación del socket. Nuestro
documento se centra en los “stream socket” y los “datagram socket”.
26.3.Creando un socket
Un socket se crea con la llamada socket(familia, tipo [, proto ]); la familia es una de
las antedichas familias de dirección: AF UNIX y AF INET, el tipo se representa con
las constantes siguientes: SOCK STREAM, SOCK DGRAM, SOCK RAW, SOCK
SEQPACKET y SOCK RDM. El argumento proto es opcional y por defecto es 0.
Vemos que la función socket() crea un socket en el dominio especificado con el tipo
especificado. Debido a que las constantes mencionadas arriba están contenidas en
el módulo socket, todas se deben utilizar con la notación CONSTANT de socket.
De no hacerlo así, el intérprete generará un error. Para crear un “stream socket” en
el dominio de Internet utilizaremos la línea siguiente:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Sustituyendo socket.SOCK_STREAM por socket.SOCK_DGRAM, creamos un
“datagram socket” en el dominio de Internet. La llamada siguiente creará un “stream
socket” en el dominio UNIX:
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
http://www.tonet.jazztel.es
206
Más adelante discutimos sobre la obtención de un socket de diferentes tipos en
diferentes dominios de comunicación.
26.4.Conectando un socket y transfiriendo datos
Un servidor es un proceso que escucha por un determinado puerto. Podemos
denominar servicio a la asociación puerto, proceso. Cuando otro proceso quiere
encontrar el servidor o utilizar un servicio determinado, debe conectarse a la
dirección y número de puerto especificado por el servidor. Esto se hace llamando
el método socket connect(dirección), donde la dirección es un par (ordenador,
puerto) en el dominio de Internet y un camino de nombre en el dominio UNIX. Si se
usa el dominio de Internet, una conexión se realiza con el código siguiente:
sock.connect(('localhost', 8000))
mientras que en el dominio UNIX,
sock.connect('/tmp/sock')
Si el servicio es inasequible o el servidor no desea hablar con el proceso del cliente,
se genera un socket.error (111, ' Conexión rechazada'). Por otra parte, después de
que se establezca la conexión con el servidor deseado, los datos se envían y se
reciben con los métodos send(buffer [, flags]) y recv(buffer [, flags]). Estos métodos
aceptan como parámetro obligatorio el tamaño del buffer en octetos y algunos flags
opcionales.
26.5.Dando un nombre al socket
El socket, después de su creación, no tiene nombre, aunque tiene un descriptor
asociado. Antes de que se pueda utilizar, se le debe dar un nombre a una dirección
apropiada puesto que ésta es la única manera que un proceso foráneo puede
referirse a él. El método bind(dirección) se utiliza para nombrar un socket. El
significado de la dirección se ha explicado anteriormente. La llamada siguiente
nombrará un socket en el dominio de Internet con la dirección compuesta de
nombre de ordenador localhost y del puerto número 8000:
sock.bind(('localhost', 8000))
Por favor cuidado al teclear: de hecho hay dos pares de paréntesis. El propósito de
los dos pares de paréntesis es simple: la dirección es un tuple que contiene una
cadena de caracteres y un número entero. El nombre de ordenador debe ser
escogido correctamente, y el mejor método es utilizar la rutina gethostname() para
asegurar la independencia del ordenador y su portabilidad. Para crear un socket en
el dominio UNIX, utilizar la dirección como una única cadena de caracteres,
nombrando un camino local:
http://www.tonet.jazztel.es
207
sock.bind('/tmp/sock')
Esto creará el fichero (pipe) '/tmp/sock' que se usará para la comunicación entre
los procesos del servidor y del cliente. El usuario debe tener los permisos de
lectura/escritura en el directorio especificado donde se creó el socket y el propio
fichero debe ser borrado una vez ya no se necesita.
26.6.Escuchando y aceptando conexiones
Una vez que tenemos un socket con un nombre propio y limitado a él, el paso
siguiente es llamar el método “listen(queue)”. Este método le dice al socket que
escuche pasivamente en el puerto establecido. El método listen() toma como
parámetro al número entero que representa la cola máxima de la conexión. Este
argumento debería ser por lo menos 1 y el máximo, dependiendo del sistema, 5.
Hasta este momento tenemos un socket con una dirección limitada apropiada.
Cuando llega una petición de conexión, el servidor decide si es aceptado o no.
Aceptar una conexión se hace con el método “accept()”. No toma ningún parámetro
sino que devuelve un tuple (clientsocket, dirección) donde clientsocket es un nuevo
socket que el servidor usa para comunicarse con el cliente y la dirección es la
dirección del cliente. Normalmente “accept()” se bloquea hasta que se realiza la
conexión. Este comportamiento puede ser eliminado ejecutando el método en un
thread separado, recogiendo los nuevos descriptores creados del socket en una
lista y procesarlos por orden. Los métodos antedichos se usan como sigue:
sock.listen(5)
clisock, address = sock.accept()
Este código manda al socket que escuche con una cola máxima de espera de cinco
conexiones y acepta todos las llamadas entrantes. Así el método “accept()”
devuelve un socket nuevo que será utilizado en el intercambio posterior de datos.
Con la cadena bind-listen-accept es como se crean los servidores TCP. Dado que
un socket TCP está orientado a la conexión, cuando un cliente desea hablar a un
servidor en particular al que debe conectarse, espera hasta que el servidor acepta
la conexión, se intercambian los datos y después se cierra la conexión. Esto es
como en una llamada telefónica: el cliente marca el número, espera hasta que el
otro lado establece la conexión, habla y después cuelga.
26.7.Sockets UDP
Un “datagram socket” se caracteriza por un intercambio simétrico de mensajes sin
conexión. El servidor y el cliente intercambian paquetes de datos, no secuencias de
datos, y los paquetes se tratan entre el cliente y el servidor por separado. La
conexión UDP se asemeja al sistema postal: cada mensaje se encapsula en un
sobre y se recibe como entidad separada. Un mensaje grande se puede partir en
http://www.tonet.jazztel.es
208
múltiples partes, cada una entregada por separado (no en el misma orden,
duplicado, etcétera). Es el deber del receptor el montar el mensaje.
El servidor tiene un método “bind()” que se usa para añadir un nombre propio y un
puerto. En los sockets UDP, no hay los métodos “listen()” ni “accept()”, porque el
servidor no está escuchando y no acepta la conexión. Básicamente se crea un
buzón de correos donde es posible recibir mensajes de los procesos del cliente.
Los clientes envían solamente los paquetes, los datos y la dirección estando
incluidos en cada paquete.
Los paquetes de datos se envían y se reciben con los métodos “sendto(data,
dirección)” y “recvfrom(buffer [, flags])”. El primer método toma como parámetros
una cadena de caracteres y la dirección del servidor de acuerdo con lo explicado
anteriormente con los métodos “connect()” y “bind()”. Debido a que se especifica en
el extremo remoto del socket, no hay necesidad de conectarlo. El segundo método
es similar al “recv()”.
26.8.Cerrando el socket
Cuando se deja de usar el socket, se debe cerrar con el método “close()”. Cuando
un usuario ya no está interesado en cualquier dato pendiente, se puede realizar una
parada antes de cerrar el socket. El método para hacer esto se llama
“shutdown(how)”, donde “how” es: 0 si no se acepta la entrada de más datos, 1 si
se desabilita el envío de datos y un valor de 2 previene de enviar y recibir datos.
26.9.Diseñando un servidor TCP
El diseño de un servidor TCP debe seguir los pasos “bind-listen-accept”. Se
muestra el código para un simple servidor de eco, corriendo en “localhost” y
escuchando por el puerto 8000. Aceptará una única conexión del cliente, hará un
eco de todos los datos y después de no recibir nada, cierra la conexión.
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('localhost', 8000))
serversocket.listen(1)
clientsocket, clientaddress = serversocket.accept()
print 'Connection from ', clientaddress
while 1:
data = clientsocket.recv(1024)
if not data: break
clientsocket.send(data)
clientsocket.close()
En la primera línea se declara la instrucción “import” del módulo “socket”. Las líneas
de la 3 a la 6 son la cadena estándar de servidor TCP. En la linea 6 el servidor
acepta la conexión iniciada por el cliente; el método “accept()” devuelve el socket
http://www.tonet.jazztel.es
209
clientsocket, usado a continuación para el intercambio de datos. El bucle “while 1”
es el código de eco; devuelve los datos transmitidos por el cliente. Una vez roto el
bucle (cuando el cliente envia una cadena vacía y no se cumple la condición “if not
data: break”) se cierra el socket y termina el programa.
26.10.El cliente TCP
El cliente entrará en bucle donde los datos son leidos desde una entrada estándar y
enviados (en paquetes de 1024 octetos – esta es la cantidad máxima de datos que
el servidor lee según el código de servidor anterior) al servidor. El servidor devuelve
los mismos datos y el cliente los visualiza. Aquí está el código:
import socket
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 8000))
while 1:
data = raw_input('>')
clientsocket.send(data)
if not data: break
newdata = clientsocket.recv(1024)
print newdata
clientsocket.close()
Primero el cliente envia datos y solo después de enviar los datos, en el caso de
datos cero, sale. Esto previene al servidor de colgarse (recuerde, el servidor sale
cuando recibe una cadena vacía). Decidimos almacenar los datos recibidos en
“newdata” para prevenir cualquier problema que pueda surgir, si no se transmiten
datos o algo malo vuelve al servidor. Comparado con el servidor, el código del
cliente es mucho más simple – solo la creación del socket y una conexión simple,
después el protocolo sigue.
26.11.Aplicación de transmisión de un fichero
26.11.1.Envío de un texto desde un cliente a un servidor
Este ejemplo consiste en abrir un servidor mediante la ejecución del comando
python 1server.py 2000
donde se le dice que el servidor escuche por el puerto 2000. A continuación se
debe ejecutar el comando
python 1client.py 127.0.0.1 2000 abc
con lo que el cliente abre el puerto 2000 para enviar el texto abc al servidor. Ahora
el servidor multiplica la cadena varias veces y la devuelve al cliente, y cuando
http://www.tonet.jazztel.es
210
termina, cierra la conexión y termina el programa. En la máquina cliente se visualiza
la cadena multiplicada y termina el programa.
El código del programa del servidor 1server.py es
import socket
import sys
# crear un socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# asociar el socket al puerto
host = ' ' # se puede dejar en blanco en el lado del servidor
port = int(sys.argv[1])
s.bind((host, port))
s.listen(1)
conn, addr = s.accept()
print 'client is at', addr
data = conn.recv(1000000)
data = 10 * data # concatenate data with itself 999 times
z = raw_input()
conn.send(data)
conn.close()
El código del programa cliente 1client.py es
import socket
import sys
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = sys.argv[1] # dirección IP del servidor
port = int(sys.argv[2])
# puerto del servidor por el que escucha
s.connect((host, port))
s.send(sys.argv[3])
# envío de la cadena de caracteres
i=0
while(1):
data = s.recv(1000000) # leer hasta 1000000 octetos
i += 1
if (i < 5): # mirar sólo la primera parte del mensaje
print data
if not data:
# finalizar si no hay datos
break
print 'received', len(data), 'bytes'
s.close()
26.11.2.Envío de un texto desde un cliente a un servidor
Consiste en abrir un servidor mediante la ejecución del comando
python 2server.py
usando el puerto cuyo número nos pide. A continuación se debe ejecutar el
comando
http://www.tonet.jazztel.es
211
python 2client.py
en otra máquina y nos pide:
1) la dirección o nombre del servidor
2) el puerto del servidor por el que escucha
3) un texto que se enviará al servidor.
A continuación el servidor pregunta cuantas veces se quiere multiplicar la cadena y
lo envía al cliente, y cuando termina, cierra la conexión y termina el programa.
En la máquina cliente además de visualizar la cadena multiplicada, crea un fichero
donde graba esta cadena de texto y a continuación termina el programa.
El código del programa servidor 2server.py es
import socket
import string
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = ' '
# se puede dejar en blanco en el lado del servidor
portc = raw_input("Puerto a usar: ")
portn = string.atoi(portc)
print portn
s.bind((host, portn))
s.listen(1)
conn, addr = s.accept()
print 'client is at', addr
data = conn.recv(1000000)
num1c = raw_input("Cuantas veces: ")
num1n = string.atoi(num1c)
data = num1n * data # concatenate data with itself 999 times
conn.send(data)
conn.close()
El código del programa cliente 2client.py es
import socket
import sys
import string
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
hostc = raw_input("Direccion del server: ")
portc = raw_input("Puerto a usar: ")
portn = string.atoi(portc)
s.connect((hostc, portn))
texto = raw_input("Texto a grabar: ")
s.send(texto) # send test string
f = open("foo","w")
i=0
while(1):
data = s.recv(1000000)
i += 1
http://www.tonet.jazztel.es
212
if (i < 5): # mirar sólo la primera parte del mensaje
f.write(data)
print data
print 'received', len(data), 'bytes'
if not data:
# finalizar si no hay datos
break
f.flush()
f.close()
s.close()
26.11.3.Envío de un fichero del cliente al servidor
Consiste en abrir un puerto en un servidor mediante la ejecución del comando
python 3server.py
usando el puerto cuyo número nos pide.
A continuación se debe ejecutar en el cliente el comado
python 3client.py
y nos pide:
4) la dirección o nombre del servidor
5) el puerto del servidor por el que escucha
Ahora el servidor lee el fichero foo y a continuación lo envía al cliente, y cuando
termina, cierra la conexión y termina el programa, especificando la duración de la
transmisión.
Ahora en la máquina cliente grabe el fichero foo del servidor en el fichero foow en el
cliente y a continuación termina el programa.
El código del programa servidor 3server.py es
import socket
import sys
import string
import time
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = ' '
# se puede dejar en blanco en el lado del servidor
portc = raw_input("Puerto a usar: ")
portn = string.atoi(portc)
print portn
s.bind((host, portn))
s.listen(1)
conn, addr = s.accept()
print 'client is at', addr
http://www.tonet.jazztel.es
f = open("foo","r")
starttime = time.time()
i=0
while(1):
f.seek(10000*i)
data = f.read(10000)
i += 1
if (i < 1000):
# mirar sólo la primera parte del mensaje
conn.send(data)
if not data:
# finalizar si no hay datos
break
f.close()
stoptime = time.time()
conn.close()
dur=stoptime - starttime
print 'Duracion ', dur
El código del programa cliente 3client.py es
import socket
import sys
import string
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
hostc = raw_input("Direccion del server: ")
portc = raw_input("Puerto a usar: ")
portn = string.atoi(portc)
s.connect((hostc, portn))
f = open("foow","w")
i=0
while(1):
data = s.recv(1000000)
i += 1
if (i < 1000):
# mirar sólo la primera parte del mensaje
f.write(data)
print i
print 'received', len(data), 'bytes'
if not data:
# finalizar si no hay datos
break
f.flush()
f.close()
s.close()
213
http://www.tonet.jazztel.es
214

Documentos relacionados