Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MONOGRAFA
Qu para obtener el Ttulo de:
Licenciado en Sistemas
Computacionales Administrativos
Presenta:
Tecnologas de la Informacin y
Organizaciones Inteligentes en la Sociedad
del Conocimiento
Xalapa-Enrquez, Veracruz
Septiembre 2007
UNIVERSIDAD VERACRUZANA
Facultad de Contadura y Administracin
Redes Inalmbricas en Linux
MONOGRAFA
Qu para obtener el Ttulo de:
Licenciado en Sistemas
Computacionales Administrativos
Presenta:
Tecnologas de la Informacin y
Organizaciones Inteligentes en la Sociedad
del Conocimiento
Xalapa-Enrquez, Veracruz
Septiembre 2007
II
III
AGRADECIMIENTOS
IV
NDICE
Captulo 1 LINUX
...
1.1
ETIMOLOGA
1.2
HISTORIA
1.3
DISTRIBUCIONES LINUX
1.3.1
. 11
1.4
COMO SE INSTALAN
17
1.5
1.6
1.7
EN LINUX EL MERCADO . 20
1.8
1.9
.. 21
. 22
Captulo 2
2.1
TCP/IP EN LINUX 33
TCP/IP
34
2.2
TCP/IP LINUX
38
2.2.1 IPv4 41
2.2.2 Desperdicio de direcciones
2.3
. 41
43
. 47
73
Captulo 3
3.1
......... 76
VI
3.2
3.1.1.1
Cmo trabajan
3.1.1.2
3.1.1.3
Chipset
..... 77
...... 79
3.3
..... 77
...... 79
Funcionamiento
...... 80
...... 81
......... 81
LINUX
........... 82
Captulo 4
.............. 85
4.1
86
........ 86
...... 87
..... 87
.. 88
..... 89
.. 91
VII
.. 92
...... 93
...... 94
VIII
NDICE DE IMGENES
Fig. 1 Linus Torvalds, creador del kernel
....... 7
........ 20
........... 39
45
.. 48
51
.... 52
53
54
55
56
IX
56
57
. 58
....... 59
....... 60
....... 61
... 62
63
64
....... 65
... 68
... 72
.......... 73
.... 94
95
96
NDICE DE TABLAS
Tabla 1. Linux
.......... 9
11
13
.... 15
23
34
35
XI
INTRODUCCION
CAPITULO I
LINUX
1.1 Etimologa
Linux se refiere estrictamente al ncleo Linux, pero es comnmente
utilizado para describir al sistema operativo tipo Unix (que implementa el estndar
POSIX), que utiliza primordialmente filosofa y metodologas libres (tambin
conocido como GNU/Linux) y que est formado mediante la combinacin del
ncleo Linux con las bibliotecas y herramientas del proyecto GNU y de muchos
otros proyectos/grupos de software (libre o no libre). El software que suelen incluir
consta de una enorme variedad de aplicaciones, como: entornos grficos, suites
ofimticas, servidores web, servidores de correo, servidores FTP, etctera.
Coloquialmente se aplica el trmino "Linux" a stas. Algunas personas opinan que
es incorrecto denominarlas distribuciones Linux, y proponen llamarlas sistema
GNU/Linux. Otras personas opinan que los programas incluidos proceden de
fuentes tan variadas que proponen simplificarlo denominndolo simplemente a
"Linux".
Linux (pronunciacin IPA: /lnks/) es la denominacin de un sistema operativo
tipo-Unix y el nombre de un ncleo. Es uno de los paradigmas ms prominentes
del software libre y del desarrollo del cdigo abierto, cuyo cdigo fuente est
disponible pblicamente y cualquier persona puede libremente usarlo, estudiarlo,
redistribuirlo y, con los conocimientos informticos adecuados, modificarlo.
Los primeros sistemas Linux se originaron en 1992, al combinar utilidades de
sistema y bibliotecas del proyecto GNU con el ncleo Linux, completando un
sistema tambin conocido como GNU/Linux. Desde fines de 1990 Linux ha
obtenido el apoyo de diversas empresas multinacionales del mundo de la
informtica, tales como IBM, Sun Microsystems, Hewlett-Packard y Novell.
Linux es usado como sistema operativo en una amplia variedad de plataformas de
hardware y computadores, incluyendo los computadores de escritorio (PCs x86 y
x86-64, y Macintosh y PowerPC), servidores, supercomputadores, mainframes, y
dispositivos empotrados as como telfonos celulares.
La marca Linux (Nmero de serie: 1916230) pertenece a Linus Torvalds y se
define como "un sistema operativo para computadoras que facilita su uso y
6
operacin". Existen grupos de usuarios del sistema Linux en casi todas las reas
del planeta
La pronunciacin correcta (para cualquier idioma) es muy cercana a como se
pronuncia en espaol: /l.nux/ o /lnks/ (Alfabeto Fontico Internacional).
1.2 Historia
GNU y de BSD, as como de otros muchos proyectos como Perl, Apache, Python,
etc. para trabajar con el ncleo Linux, creando un sistema operativo
completamente funcional procedente de muchsimas fuentes diferentes, la
mayora libres.
Varios
Familia de S.O.
Unix-like
Modelo de desarrollo
Open source
Ncleo
Linux
Tipo de ncleo
Monoltico
Licencia
GPL/LGPL/BSD/Otras
Estado actual
En desarrollo
10
la
primera
ltima
Predecesor
GNU/Linux
Fedora
Core
Precio ()
Licencia
Pblico
Pas
estable
P.R.
Debian
versin
Proyecto
agosto de
Debian
1993
Proyecto
noviembre
Fedora Linux,
Fedora
de 2003
N/A
4.0
(Etch)
Gratis
cualquier
DFSG
Ver. 7 /
Junio
2007
Desktop,
Workstation,
Server
Workstation,
Gratis
GPL
Server,
Mun
dial
EEU
U
Pblico
11
Gentoo
Mandriva
Linux
Fundacin
marzo de
Gentoo
2002
Mandriva
julio de
1998
Enoch
Mandrake
Linux/Conectiva
y Lycoris Xls
rxart, rxart
de 2001
Linux
Pixart
Slackware
Patrick
julio de
Volkerding
1993
2006.1
Gratis
GPL
Server,
Gratis
2007.1
(edicin
Spring
para
Desktop,
GPL
3.0
16
Workstation,
Server
descargar)
GPL
11.0
Gratis
GPL
Mun
dial
Workstation,
Arge
Server
ntina
Workstation,
SLS
Mun
dial
Pblico
octubre
Rxart
Linux
Workstation,
Server,
EEU
U
Pblico
Descarga
gratuita
SUSE
Novell,
marzo de
Linux
OpenSUSE
1994
Jurix
10.3
disponible
Ed.
Workstation,
GPL
Profesional:
Server,
Mun
Desktop,
dial
Pblico
51,95
Ubuntu
Canonical
octubre
Ltd.
de 2004
7.04
Debian
(Feisty
Fawn)
Gratis
LiveCD
Desktop,
GPL
Workstation,
Server
12
Mun
dial
a de
fichero
s
Sistemas
de
ficheros
compatib
principal
Herramie
Arquitect
ura
les
nta de
Administra
actualizac
dor de
in de
Paquetes
paquetes
y
lenguaje
para
Aplicacio
nes
Grficas
API
principal
y
lenguaje
para
Aplicacio
nes CLI
Debian
GNU/Lin
ux
Linux
2.6.18
ext3
ext2, JFS,
PowerPC,
XFS,
SPARC,
FAT,
SPARC64
dpkg,
NTFS,
, Alpha,
Synaptic,
ISO 9660,
MIPS,
UDF,
ARM, PA-
NFS,
RISC,
ReiserFS
Mac/VME
APT
Adept, APT
pre-LSB
con C,
Varias
otros
(estndar
y Aptitude
POSIX)
68k,
S/390
ext2,
Linux
Fedora
Core
ReiserFS,
2.6.18
Fed.C
ext3
ore
FAT, ISO
9660,
UDF,
Verid 9
pre-LSB
x86, x86-
up2date,
64, i386,
yum, APT
PowerPC
(limitado)
con C,
RPM, yum
Varias
(estndar
POSIX)
NFS
ext2,
ReiserFS,
Rxart
Linux
2.6.34
ext3
FAT, ISO
9660,
UDF,
pre-LSB
x86, x86-
up2date,
64, i386,
net, APT
PowerPC
(limitado)
con C,
DEB, ASK
Varias
Linux
a Linux
2.6.17
ext3
otros
(estndar
POSIX)
NFS
Mandriv
otros
ext2, JFS,
x86
XFS,
(i586),
urpmi
RpmDrake
Varias
pre-LSB
con C,
13
FAT,
x86-64,
otros
NTFS,
PPC
(estndar
ISO 9660,
POSIX)
UDF,
NFS,
ReiserFS
JFS,
Linux
Reiser
Slackwa
2.4.33
FS,
re Linux
ext3/ex
2.6.18
t2
XFS,
FAT,
NTFS,
ISO 9660,
pre-LSB
Swaret,
x86, IA64,
Slapt-get,
installpkg y
S/390
otros no
upgradepkg
con C,
Varias
(estndar
oficiales
UDF,
otros
POSIX)
NFS
ext2,
ext3, JFS,
XFS,
openSU
SE
Linux
2.6.18.
ext3
YaST2
pre-LSB
con C,
FAT,
x86, IA64,
(Misma
NTFS,
x86-64,
Versin de
ISO 9660,
PowerPC
YaST
(estndar
Avanzada)
POSIX)
UDF,
RPM, YaST
Varias
otros
NFS,
Reiser4
JFS,
Ubuntu
Linux
2.6.20
XFS,
ext3
NTFS,
ISO 9660,
ReiserFS
pre-LSB
dpkg,
x86, x8664
APT
Synaptic,
APT y
Aptitude
con C,
Varias
otros
(estndar
POSIX)
14
Paquetes
Debian
GNU/Linux
18000
Instalacin
Administrador de
Navegador
grfica
archivos
web
S (a partir de la
4.0 "Etch")
Nautilus, Konqueror
Iceweasel,
Konqueror
Entorno
Gestor de
Tema
grfico
ventanas
visual de
principal
principal
escritorio
GNOME
Metacity,
KWin
a elegir
Suite ofimtica
OpenOffice.org,
KOffice, GNOME Office
ClearLook
Fedora
Core
Mozilla
5000
Nautilus, Konqueror
Firefox,
Epiphany
GNOME,
Metacity,
KDE
Kwin
s
(GNOME)
Bluecurve
OpenOffice.org,
KOffice, GNOME Office
(KDE)
Mandriva
Linux
Rxart
Linux
Slackware
Linux
Konqueror,
4000
Konqueror
Mozilla
KDE
KWin
la Ora
OpenOffice.org
KDE
KWin
Rxart
OpenOffice.org
varios
a elegir
a elegir
KOffice
Firefox
Konqueror,
2000
Konqueror
Mozilla
Firefox
muchos
No
Konqueror
Mozilla
Firefox,
Seamonkey
Mozilla
Firefox,
SUSE
Linux
Konqueror
12500
Nautilus
(en KDE),
Epiphany
Gnome,
KDE
Metacity
ClearLook
OpenOffice.org,
(en
GNOME)
Ubuntu
menos de
18000
Nautilus
Mozilla
Firefox
GNOME
Metacity
Human
OpenOffice.org,
GNOME Office
17
Fig. 3 Escritorio KDE 3.4.2 corriendo sobre Gentoo Linux (2.6.13-r9) corriendo un cliente IRC
Konversation, un cliente p2p aMule y un reproductor musical Amarok.
19
dlares (ao 2000) el desarrollo por medios convencionales (no libres); y el ncleo
Linux continua siendo de unas 2,5 millones de lneas.
21
22
modprobe
23
depmod
Lsmod
24
CARGAR MDULOS
1.
2.
NULL,
NULL,
NULL,
NULL
};
2.4 Disear la funcin de inicializacin del modulo y descarga:
int manejador_init (void)
{
.....
}
#ifdef MODULE
/* funcin de inicio del modulo */
int init_module (void)
{
return manejador_init ();
}
/* Funcin de descarga del mdulo */
void cleanup_module (void)
{
unregister_chardev (mayor device, manejador);
printk (manejador modulo no se puede descargar \n);
}
#endif
2.5 Disear la funcin de lectura del manejador:
static int manejador_fs_read (struct inode *inode, struct file *file, char *buf, int
26
nbytes)
{
...
}
3.
4.
5.
c mayor_device menor_device
Insertarlo en el ncleo:
#insmod manejador
6.
7.
Utilizarlo:
#modprobe
8.
28
#pages:
Used by:
msdos
1 (autoclean)
vfat
1 (autoclean)
fat
30
request_module
Es la funcin llamada por el ncleo cuando este percibe, por la solicitud de
un proceso, la necesidad de cargar un mdulo.
exec_modprobe
Es el programa que aade el mdulo solicitado al ncleo, es llamado por
kerneld.
struct module
module
module_list
module
next
next
ref
ref
symtab
symtab
name
name
size
size
symbol_table
symbol_table
size
size
n_symbols
n_symbols
n_refs
n_refs
31
mdulo
Ncleo
Ncleo
request_module (mdulo)
kerneld
disco
modprobe (mdulo)
mdulo
32
CAPITULO II
TCP/IP EN LINUX
33
2.1 TCP/IP
2.1.1 Niveles en la pila TCP/IP
Hay algunas discusiones sobre como encaja el modelo TCP/IP dentro del
modelo OSI. Como TCP/IP y modelo OSI no estn delimitados con precisin no
hay una respuesta que sea la correcta.
El modelo OSI no est lo suficientemente dotado en los niveles inferiores como
para detallar la autntica estratificacin en niveles: necesitara tener una capa
extra (el nivel de Interred) entre los niveles de transporte y red. Protocolos
especficos de un tipo concreto de red, que se sitan por encima del marco de
hardware bsico, pertenecen al nivel de red, pero sin serlo. Ejemplos de estos
protocolos son el ARP (Protocolo de resolucin de direcciones) y el STP
(Spanning Tree Protocol). De todas formas, estos son protocolos locales, y
trabajan por debajo de las capas de Interred. Cierto es que situar ambos grupos
(sin mencionar los protocolos que forman parte del nivel de Interred pero se sitan
por encima de los protocolos de Interred, como ICMP) todos en la misma capa
puede producir confusin, pero el modelo OSI no llega a ese nivel de complejidad
para ser ms til como modelo de referencia.
La siguiente Tabla intenta mostrar la pila TCP/IP y otros protocolos relacionados
con el modelo OSI original:
Tabla 6. Pila de protocolos modelo OSI
7 Aplicacin
ej. HTTP, DNS, SMTP, SNMP, FTP, Telnet, SSH y SCP, NFS,
RTSP, Feed, Webcal
6 Presentacin
5 Sesin
4 Transporte
3 Red
ej. IP, ICMP, IGMP, X.25, CLNP, ARP, RARP, BGP, OSPF
34
Enlace
datos
1 Fsico
Normalmente,
los
tres
niveles
superiores
del
modelo
OSI
(Aplicacin,
ej.
5 Aplicacin
HTTP,
FTP,
DNS
TCP,
UDP,
RTP,
SCTP
TCP/IP
este
es
el
Protocolo
de
Internet
(IP)
2 Enlace
1 Fsico
35
Linux implementa todo lo necesario para trabajar en red con TCP/IP. Desde
administradores para las tarjetas de red ms populares hasta SLIP/PPP, que
permiten acceder a una red TCP/IP por el puerto serie. Tambin se implementan
PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto
a ficheros). Y tambin se han portado los clientes de TCP/IP, como FTP, telnet,
NNTP y SMTP.
Linux dispone de los dos principales protocolos de red para sistemas UNIX:
TCP/IP y UUCP. TCP/IP (para los aficionados a los acrnimos, Transmission
Control Protocol/Internet Protocol) es un conjunto de protocolos de red que
permite a sistemas de todo el mundo comunicarse en una nica red conocida
como Internet. Con Linux, TCP/IP y una conexin a la red, puede comunicarse con
usuarios y mquinas por toda Internet mediante correo electrnico, noticias
(USENET news), transferencias de ficheros con FTP y mucho ms. Actualmente
hay muchos sistemas Linux conectados a Internet.
La mayora de las redes TCP/IP usan Ethernet como tipo de red fsica de
transporte. Linux da soporte a muchas tarjetas de red Ethernet e interfaces para
ordenadores personales, incluyendo el adaptador Ethernet D-Link de bolsillo para
ordenadores porttiles.
Pero dado que no todo el mundo tiene una conexin Ethernet en casa, Linux
tambin proporciona SLIP (Serial Line Internet Protocol), el cual permite
conectarse a Internet a travs de un mdem. Para poder usar SLIP, necesitar
tener acceso a un servidor de SLIP, una mquina conectada a la red que permite
acceso de entrada por telfono. Muchas empresas y universidades tienen
servidores SLIP disponibles. De hecho, si su sistema Linux dispone de conexin
Ethernet y de mdem, puede configurarlo como servidor de SLIP para otros
usuarios.
NFS (Network File System) permite fcilmente compartir ficheros con otras
mquinas de la red. FTP (File Transfer Protocol) permite la transferencia de
ficheros entre mquinas.
Si tiene experiencia con aplicaciones TCP/IP en otros sistemas UNIX, Linux le
ser muy familiar. El sistema proporciona la interface estndar de programacin
por "sockets", lo que virtualmente permite que cualquier programa que use TCP/IP
36
37
mediante
los
ficheros
del
directorio
/proc,
por
ejemplo
/proc/sys/net/ipv4/
que
usted
tiene
"
Prompt
para
desarrollo
y/o
"Networking"
->
"Networking
options"
->
"TCP:
advanced
congestion control"
Entonces entre "TCP congestion control"
The default settings are: BIC-TCP with new Reno as a fallback
39
ser
cambiado
en
caliente
modificando
/proc/sys/net/ipv4/tcp_congestion_control.
Linux 2.4 usando el algoritmo SACK (acuse de recibo selectivo) consigue un
rendimiento mayor que otros sistemas que tambin usan SACK (como OpenBSD y
FreeBSD), segn Comparando las implementaciones modernas (2004/2005), se
ve que han evolucionado por caminos distintos, pero que todas aguantan bien la
congestin de red (a diferencia de la implementacin original de BSD). Segn las
pruebas, Linux 2.6 el que mejor rendimiento da (de entre FreeBSD 5.3, OpenBSD
3.5, y Windows XP Service Pack 2).
Como el desarrollo de Linux es un proceso abierto al pblico, en Internet se
encuentran pginas que explican los problemas que daba su implementacin de
TCP, y cmo se han solucionado. Por ejemplo: mejora de rendimiento en la
versin 2.0.36 (marzo 1999), problemas de TCP detectados al hacer una
comparativa (1999), ajustes para 2.4 y 2.6 (febrero 2006), problemas en los
algoritmos de TCP en Linux 2.6.16.3 (junio 2006), entre otros. Es habitual que
estos fallos se detecten cuando alguien est escribiendo un documento tcnico o
comparativa. En caso de comportamiento extrao, un estudio del cdigo fuente
sirve para confirmar las sospechas y poder corregir el error en Linux.
40
2.2.1 IPv4
IPv4 es la versin 4 del Protocolo IP (Internet Protocol). Esta fue la
primera versin del protocolo que se implement extensamente, y forma la
base de Internet.
IPv4 usa direcciones de 32 bits, limitndola a 232 = 4.294.967.296 direcciones
nicas, muchas de las cuales estn dedicadas a redes locales (LANs). Por el
crecimiento enorme que ha tenido del Internet (mucho ms de lo que esperaba,
cuando se dise IPv4), combinado con el hecho de que hay desperdicio de
direcciones en muchos casos, ya hace varios aos se vio que escaseaban las
direcciones IPv4.
Esta li|mitacin ayud a estimular el impulso hacia IPv6, que esta actualmente
en las primeras fases de implementacin, y se espera que termine
reemplazando a IPv4.
41
42
La figura 9 ilustra el proceso que se realiza capa por capa para hacer el envo de
un paquete, desde la escritura del socket hasta que el paquete sale al medio.
43
La figura 10 ilustra el proceso que se realiza capa por capa para hacer la
recepcin de un paquete, desde que el paquete llega del medio, hasta que la
aplicacin dispone de los datos para su uso.
44
45
46
47
48
49
50
Fig. 19 Estructura compuesta por una serie de operaciones para implementar los protocolos TCP y
UDP
51
52
53
54
55
56
57
Extrae de socket el puntero que apunta a una estructura sock (socket INET)
A travs de la estructura sock se llama a la funcin de envo de protocolo: El
campo prot de la estructura sock tiene los punteros de funcin para TCP (o UDP).
Es decir sk->prot->sendmsg(sk,msg,size) se traduce a tcp_sendmsg (figura 29).
58
struct sk_buff {
/* These two members must be first. */
struct sk_buff * next;
/* Next buffer in list
struct sk_buff * prev;
/* Previous buffer in list
struct sk_buff_head * list;
/* List we are on
struct sock
*sk;
/* Socket we are owned by
struct timeval stamp;
/* Time we arrived
struct net_device *dev;
/* Device we arrived on/are leaving by
/* Transport layer header */
union
{
struct tcphdr *th;
struct udphdr *uh;
struct icmphdr *icmph;
struct igmphdr *igmph;
struct iphdr *ipiph;
struct spxhdr *spxh;
unsigned char *raw;
} h;
/* Network layer header */
union
{
struct iphdr *iph;
struct ipv6hdr *ipv6h;
struct arphdr *arph;
struct ipxhdr *ipxh;
unsigned char *raw;
} nh;
*/
*/
*/
*/
*/
*/
/*
* This is the control buffer. It is free to use for every
* layer. Please put your private variables there. If you
* want to keep them across layers you have to do a skb_clone()
* first. This is owned by whoever has the skb queued ATM.
*/
char
cb[48];
unsigned int len;
/* Length of actual data
*/
unsigned int data_len;
unsigned int csum;
/* Checksum
*/
unsigned char __unused,
/* Dead field, may be reused
*/
cloned,
/* head may be cloned (check refcnt to be sure). */
pkt_type,
/* Packet class
*/
ip_summed; /* Driver fed us an IP checksum
*/
__u32
priority;
/* Packet queueing priority
*/
atomic_t
users;
/* User count - see datagram.c,tcp.c
*/
unsigned short protocol;
/* Packet protocol from driver.
*/
unsigned short security;
/* Security level of packet
*/
unsigned int truesize;
/* Buffer size
unsigned char *head;
* Head of buffer
unsigned char *data;
/* Data head pointer
unsigned char *tail;
/* Tail pointer
unsigned char *end;
* End pointer
void
(*destructor)(struct sk_buff *);/* Destruct function
*/
*/
*/
*/
*/
*/
};
59
60
61
El
mtodo
tcp_sendmsg()
mostrado
en
la
figura
32
visualizado
Trocea los datos en unidades MTU y crea una estructura sk_buff para
almacenar cada MTU. Se copian los datos desde la memoria de usuario a
las estructuras sk_buff. Mediante csum_and_copy_from_user() se realiza
la copia y el clculo del cdigo de eror. Las estructuras sk_buff para un
mismo mensaje estn enlazadas.
62
63
0x1
0x2
0x4
sysctl_flags = 0;
if (tcb->flags & TCPCB_FLAG_SYN) {
tcp_header_size = sizeof(struct tcphdr) + TCPOLEN_MSS;
if(sysctl_tcp_timestamps) {
tcp_header_size += TCPOLEN_TSTAMP_ALIGNED;
sysctl_flags |= SYSCTL_FLAG_TSTAMPS;
}
if(sysctl_tcp_window_scaling) {
tcp_header_size += TCPOLEN_WSCALE_ALIGNED;
sysctl_flags |= SYSCTL_FLAG_WSCALE;
}
if(sysctl_tcp_sack) {
sysctl_flags |= SYSCTL_FLAG_SACK;
if(!(sysctl_flags & SYSCTL_FLAG_TSTAMPS))
tcp_header_size += TCPOLEN_SACKPERM_ALIGNED;
}
} else if (tp->eff_sacks) {
/* A SACK is 2 pad bytes, a 2 byte header, plus
* 2 32-bit sequence numbers for each SACK block.
*/
tcp_header_size += (TCPOLEN_SACK_BASE_ALIGNED +
(tp->eff_sacks * TCPOLEN_SACK_PERBLOCK));
}
th = (struct tcphdr *) skb_push(skb, tcp_header_size);
skb->h.th = th;
skb_set_owner_w(skb, sk);
64
65
Funcin
tcp_transmit_skb()
que
se
encuentra
en
la
biblioteca
66
Fig. 40 ip_queue_xmit()
68
69
70
71
72
Fig. 45 Ubicacin de las funciones ejecutadas para enviar un mensaje a travs de sockets en Linux
73
74
CAPITULO III
LAS WIRELESS LAN EN LINUX
75
mejoras.
De
esta
manera,
tenemos
las
siguientes
especificaciones:
802.11 Especificacin para 1-2 Mbps en la banda de los 2.4 GHz, usando salto de
frecuencias( FHSS) o secuencia directa (DSSS).
802.11b Extensin de 802.11 para proporcionar 11Mbps usando DSSS.
76
Cmo trabajan
3.1.1.2
Pueden ser de muy diversos tipos y tan simples o complejas como sea
necesario. La ms bsica se da entre dos ordenadores equipados con tarjetas
adaptadoras para WLAN, de modo que pueden poner en funcionamiento una red
independiente siempre que estn dentro del rea que cubre cada uno. Esto es
llamado red de igual a igual (peer to peer). Cada cliente tendra nicamente
acceso a los recursos del otro cliente pero no a un servidor central. Este tipo de
redes no requiere administracin o preconfiguracin.
Instalando un Punto de Acceso se puede doblar la distancia a la cul los
dispositivos pueden comunicarse, ya que estos actan como repetidores. Desde
que el punto de acceso se conecta a la red cableada cualquier cliente tiene acceso
a los recursos del servidor y adems gestionan el trfico de la red entre los
terminales ms prximos. Cada punto de acceso puede servir a varias mquinas,
segn el tipo y el nmero de transmisiones que tienen lugar. Existen muchas
aplicaciones en el mundo real con un rango de 15 a 50 dispositivos cliente con un
solo punto de acceso.
Los puntos de acceso tienen un alcance finito, del orden de 150 m en lugares u
zonas abiertas. En zonas grandes como por ejemplo un campus universitario o un
edificio es probablemente necesario ms de un punto de acceso. La meta es
cubrir el rea con clulas que solapen sus reas de modo que los clientes puedan
moverse sin cortes entre un grupo de puntos de acceso. Esto es llamado roaming.
iuparticulares de topologas, el diseador de la red puede elegir usar un Punto de
Extensin (EPs) para aumentar el nmero de puntos de acceso a la red, de modo
que funcionan como tales pero no estn enganchados a la red cableada como los
puntos de acceso. Los puntos de extensin funcionan como su nombre indica:
extienden el alcance de la red retransmitiendo las seales de un cliente a un punto
78
3.1.1.3
Chipset
3.2.1.1
Funcionamiento
80
81
cp /boot/config-2.4.25-1-686 /usr/src/kernel-image-2.4.25/.config
modificar /etc/kernel-pkg.conf e incluir en el "do_clean := No"
recompilar el nucleo: make-kpkg --revision=custom.1.0 kernel_image
Enlaza ahora el directorio donde est el nucleo con el directorio build del directorio
de modulos que estn en uso en tu actual nucleo:
ln -s /usr/src/kernel-source-2.4.25 /lib/modules/2.4.25-1-586tsc/build
Compilando el mdulo madwifi
Ponte en el directorio donde lo descomprimiste antes, y ejecuta make:
cd /usr/src/madwifi
make
make install
Ya est listo el mdulo.
Asegurate de que est conectada la tarjeta (conectala y si usas pcmcia_cs vers
algo como lo siguiente en tu syslog):
May 14 00:32:10 gordon kernel: cs: cb_alloc(bus 1): vendor 0x168c, device
0x0012
May 14 00:32:10 gordon kernel: PCI: Enabling device 01:00.0 (0000 -> 0002)
May 14 00:32:10 gordon cardmgr [419] : socket 0: ?CardBus hotplug device
Ya que pcmcia_cs no conoce nada sobre tu tarjeta, no carga el modulo, as que lo
cargas a mano:
modprobe ath_pci
y el syslog reflejar algo como esto:
May 14 00:32:33 gordon kernel: ath_hal: 0.9.8.6
May 14 00:32:34 gordon kernel: wlan: 0.7.3.1 BETA
May 14 00:32:34 gordon kernel: ath_pci: 0.8.5.4 BETA
May 14 00:32:34 gordon kernel: ath_pci: cache line size not set; forcing 8
May 14 00:32:34 gordon kernel: Setup queue (0) for WME_AC_BK
May 14 00:32:34 gordon kernel: Setup queue (1) for WME_AC_BE
May 14 00:32:34 gordon kernel: Setup queue (2) for WME_AC_VI
May 14 00:32:34 gordon kernel: Setup queue (3) for WME_AC_VO
May 14 00:32:34 gordon kernel: ath0: mac 4.2 phy 3.0 5ghz radio 1.7 2ghz radio
2.3
83
May 14 00:32:34 gordon kernel: ath0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps
24Mbps 36Mbps 48Mbps 54Mbps
May 14 00:32:34 gordon kernel: ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
May 14 00:32:34 gordon kernel: ath0: turbo rates: 6Mbps 9Mbps 12Mbps 18Mbps
24Mbps 36Mbps 48Mbps 54Mbps
May 14 00:32:34 gordon kernel: ath0: 802.11 address: 00:01:24:60:0d:6d
May 14 00:32:34 gordon kernel: ath0: Atheros 5211: mem=0x10400000, irq=11
Si quieres que el mdulo se cargue siempre al arrancar (por simplificar, no podrs
quitar y poner la tarjeta como lo haces habitualmente con una pcmcia que si est
contemplada por pcmcia_cs), aade este mdulo en /etc/modules:
ath_pci
Configurar la interface ath0 (ojo, no eth con e, si no con a)
Manualmente:
iwconfig ath0 essid redlibre mode managed rate auto
pump -i ath0
(necesitas tener instalado pump, claro, para obtener una direccion ip
automaticamente de tu servidor dhcp), o bien:
ifconfig ath0 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255
En el fichero /etc/network/interfaces:
auto ath0
iface ath0 inet static
address 10.0.0.1
network 10.0.0.0
netmask 255.255.255.0
broadcast 10.0.0.255
#mode 3 para 802.11g, 2 para 802.11b y 1 para 802.11a
#mode no es necesario, la tarjeta chequea en buscando un ap por todos los
canales
#up /sbin/iwpriv ath0 mode 3
up /sbin/iwconfig ath0 essid "redlibre" mode managed rate auto
84
CAPITULO 4
MODIFICACIONES A UN DRIVER
PARA CALIDAD DE SERVICIO.
SWAN
(Stateless Wireless Ad hoc Networks)
85
crecimiento
en
las
telecomunicaciones,
donde
su
principal
consecuencia han sido dotar de movilidad a los nodos de la red al liberarlos de sus
conexiones fsicas, adems tambin estn empezando a ofrecer mltiples
servicios con calidad (QoS) como una conversacin telefnica, la transferencia de
ficheros, acceso a la web o la realizacin de videoconferencia, sin restricciones de
lugar y de tiempo. Estos ejemplos de comunicacin inalmbrica espontnea entre
dispositivos se denomina redes Ad Hoc, permitiendo a los dispositivos establecer
la comunicacin, en cualquier momento y en cualquier lugar. En realidad, la
formacin de redes Ad Hoc como tal no es nueva, sino lo es nuevo es la forma de
configuracin y uso de sus elementos [6]. Una aproximacin para otorgar calidad
de servicio es la de diferenciar entre el conjunto de paquetes que circulan por la
red clasificando los paquetes en un nmero pequeo de tipos de servicios y utiliza
mecanismos de prioridad para proporcionar una calidad de servicio adecuada al
trfico. Este estudio preliminar se realizo aplicando servicios diferenciados con el
modelo SWAN [1] en el entorno del simulador ns2. SWAN es un modelo de red
sin estados, el cual usa algoritmos de control distribuidos para entregar servicios
diferenciados en MANET de una manera escalable y robusta. Estos algoritmos
aplican controles basados en retroalimentaciones para soportar servicios de
tiempo real soft y servicios diferenciados en redes inalmbricas Ad Hoc. El
modelo usa el rate control (rc) para trafico UDP y TCP best effort, y un admission
control (ac) para trafico UDP de tiempo real. SWAN aplica la notificacin explicita
de congestionamiento (ECN) para regular dinmicamente trafico de tiempo real
admitido. El novedoso aspecto de este modelo es que no requiere de QoS en la
capa MAC.
86
4.1.2 Introduccin
Los sistemas inalmbricos han capturado la atencin y la imaginacin del publico,
y se han convertido en el segmento de mayor y ms rpido crecimiento en las
telecomunicaciones, donde su principal consecuencia han sido dotar de movilidad a los
nodos de la red al liberarlos de sus conexiones fsicas (cableado), dichos nodos pueden
funcionar de encaminadores y de anfitriones (Host).
Los sistemas inalmbricos tambin estn empezando a ofrecer mltiples servicios con
calidad (Quality of Service QoS-) como una conversacin telefnica, la transferencia de
ficheros, acceso a la web o la realizacin de videoconferencia, sin restricciones de lugar y
de tiempo. Estos ejemplos de comunicacin inalmbrica espontnea entre dispositivos o
nodos podra ser definido de manera informal como un esquema, al que a menudo se
denomina formacin de redes Ad Hoc, que permite a los dispositivos establecer la
comunicacin, en cualquier momento y en cualquier lugar. En realidad, la formacin de
redes Ad Hoc como tal no es nueva, sino lo es nuevo es la forma de configuracin, de uso
y de sus elementos. [6]
Administracin mvil
Seguridad
Creacin de contenidos.
89
Todos los paquetes reciben la misma prioridad al momento de ser procesados por
el planificador de paquetes el cual se encarga de decidir cual paquete es el que va
a pasar primero al enlace. De esta manera, los paquetes son ms sensibles a los
retardos.
Una manera de mejorar este esquema del mejor esfuerzo, es tratar a los paquetes
de manera diferente, tomando la decisin de cmo procesarlo dependiendo del
contenido del encabezado del paquete. Los campos que son de utilidad en el
encabezado para el manejo del paquete son los campos de direccin fuente y
destino, el puerto de origen y destino, tipo de servicio (ToS) y el protocolo. El
encaminador basndose en estos datos puede tomar una decisin de cmo
procesar el paquete. Sin embargo, cuando la cantidad de paquetes es muy grande
varios cientos o miles de paquetes por segundo- esto puede repercutir en el
rendimiento del encaminador.
Si existen similitudes entre diferentes paquetes, es posible clasificar los paquetes
en grupos y tomar decisiones de cmo procesar los paquetes dependiendo del
grupo al que pertenezca un paquete. Este mecanismo se logra reservando ciertos
bits en el encabezado del paquete de hecho el campo de tipo de servicio del
protocolo Ipv4 estaba reservado para este propsito- y definir en l, el tipo de
servicio que se le debe aplicar al paquete de acuerdo a las polticas que se hayan
especificado para ese propsito. [7]
usuarios, una expectativa predecible del servicio que las redes le proveer en
tiempos de congestin, y permite que diferentes usuarios obtengan diferentes
niveles de servicio de la red. [3]
robusta.
Estos
algoritmos
aplican
controles
basados
en
Laptops/mini-laptops
At least Three Laptops: One for Server (source node), Intermediate node,
Client (destination node) with Intel Pentium or higher.
For SWAN Rate Controller, Aironet Wireless Adapter Card (IEEE 802.11) is
needed.
92
Operating System
SWAN Project Testbed runs on Linux Kernel version 2.2.18. (RedHat Linux
7.3)
Complier
The SWAN Testbed is compiled by gcc compiler. Tcl/Tk 8.x is also needed.
Others
The libpcap package is needed. If /usr/include/pcap doesn't exist, you
should install it. (For download and installation, see 2.)
MpegTv is used
4.1.10
Metodologa
93
4.1.11
Resultados y conclusiones
95
mayoritariamente
de
tiempo
no
real.
Fig.
49.
96
97
CONCLUSIN
98
cableadas,
se
llega
la
conclusin
que
ambos
sistemas
de
101
BIBLIOGRAFIA
Instant Byte S.L., http://www.instantbyte.com , ejemplo de Linux, 20 de julio de
2007.
http://sopa.dis.ulpgc.es/ii-aso/portal_aso/practicas/modulo.htm, 28 de agosto de
2007.
http://es.wikipedia.org/wiki/Linux, 15 de marzo de 2007
[1] G-S. Ahn, T. Campbell, A. Veres and L. Sun, Stateless Wireless Ad Hoc
Networks (SWAN). http://www.comet.columbia.edu/swan/draft-ahn-swan-manet00.txt. Columbia University, October 2002.
[2] G-S. Ahn, T. Campbell, A. Veres and L. Sun, SWAN: Service Differentiation in
Stateless Wireless Ad Hoc Networks, Proc. IEEE INFOCOM'2002, New York,
New York, 2002.
[3] S. Andreozzi, DiffServ simulations using the Network Simulator: Requirements,
Issues and Solutions, Masters Thesis, University of Pisa, 2001
[4] S. Chakrabarti and A. Mishra, QoS issues in Ad Hoc Wireless Networks, IEEE
Communication Magazine, February 2001.
[5] S. Chen and K. Nahrstedt, Distributed QoS routing with imprecise state
information, In 7th Int. Conf. on Computer Communications and Networks (IC3N),
October 1998, Urbana ,IL
[6] M. Fording, P. Johansson and P. Larsson, Wireless Ad Hoc Networking The
Art of Networking without a network , Ericsson Review Num 4, 2000
[7] P. Pieda, J. Ethridge, M. Baines and F. Shallwani, A Network Simulator
Differentiated Services Implementation, Open IP, Nortel Networks, July 26, 2002.
[8] A .Qayyum, L. Viennot and A. Laouiti, Multipoint relaying: An efficient
technique for flooding in mobile wireless networks, 35th Annual Hawaii
International Conference on System Sciences (HICSS'2002).
[9] V. Rexhepi, G. Karagiannis and G. Heijenk, "A Framework for QoS and Mobility
in the Internet Next Generation, EUNICE 2000 proceedings, September 2000.
Beck, M., et al.:Linux Kernel Programming. Tercera Edicin. Addison Wesley,
2002.
102
103