aodvand802.11
所属分类:网络
开发工具:C/C++
文件大小:10766KB
下载次数:33
上传日期:2010-05-11 17:07:33
上 传 者:
yangxialong
说明: 里面含有aodv路由协议源代码,可以在NS-2下直接运行,仔细研究能充分理解AODV协议;另外还包含802.11b, 802.11g,802.11n协议的最原始英文版,希望对大家有用
(Which contains the aodv routing protocol source code, you can run the NS-2 under the direct implications of the AODV protocol can be fully understood also includes 802.11b, 802.11g, 802.11n protocol most original English version, we want to be useful)
文件列表:
aodv-ucsb-0.1b\aodvConst.h (2292, 2002-05-16)
aodv-ucsb-0.1b\aodvMsg.h (1356, 2001-12-01)
aodv-ucsb-0.1b\aodvPktInfo.c (1838, 2002-03-15)
aodv-ucsb-0.1b\aodvPktInfo.h (1449, 2001-12-01)
aodv-ucsb-0.1b\aodvSocket.c (11418, 2002-03-28)
aodv-ucsb-0.1b\aodvSocket.h (1439, 2001-12-01)
aodv-ucsb-0.1b\callout.c (5374, 2002-01-25)
aodv-ucsb-0.1b\callout.h (1446, 2001-12-05)
aodv-ucsb-0.1b\const.h (1856, 2002-02-08)
aodv-ucsb-0.1b\debug.c (7296, 2002-03-15)
aodv-ucsb-0.1b\debug.h (3056, 2002-02-07)
aodv-ucsb-0.1b\GPL (17992, 2002-01-24)
aodv-ucsb-0.1b\helloMsg.c (2401, 2002-03-15)
aodv-ucsb-0.1b\helloMsg.h (1314, 2001-12-01)
aodv-ucsb-0.1b\inet.c (6268, 2002-03-15)
aodv-ucsb-0.1b\inet.h (1508, 2002-03-15)
aodv-ucsb-0.1b\ip_queue_aodv.c (17837, 2002-01-24)
aodv-ucsb-0.1b\kaodv.c (5344, 2002-01-24)
aodv-ucsb-0.1b\kofn.c (3839, 2002-03-15)
aodv-ucsb-0.1b\kofn.h (1271, 2002-02-01)
aodv-ucsb-0.1b\libipq.c (8887, 2002-01-24)
aodv-ucsb-0.1b\libipq.h (2146, 2002-01-24)
aodv-ucsb-0.1b\libnetlink.c (12606, 2001-12-05)
aodv-ucsb-0.1b\libnetlink.h (1911, 2001-12-01)
aodv-ucsb-0.1b\LICENSE (13378, 2001-12-01)
aodv-ucsb-0.1b\LICENSE.pimd (2077, 2001-12-01)
aodv-ucsb-0.1b\localRepair.c (3979, 2002-01-10)
aodv-ucsb-0.1b\localRepair.h (1374, 2001-12-05)
aodv-ucsb-0.1b\main.c (29186, 2002-05-17)
aodv-ucsb-0.1b\main.h (1476, 2002-02-07)
aodv-ucsb-0.1b\Makefile (2420, 2002-05-16)
aodv-ucsb-0.1b\packet_input.c (12479, 2002-05-10)
aodv-ucsb-0.1b\packet_input.h (1215, 2002-01-23)
aodv-ucsb-0.1b\precursor.h (1303, 2001-12-01)
aodv-ucsb-0.1b\rerr.c (6511, 2002-03-15)
aodv-ucsb-0.1b\rerr.h (1779, 2001-12-05)
aodv-ucsb-0.1b\routingTable.c (23527, 2002-05-16)
aodv-ucsb-0.1b\routingTable.h (2573, 2002-02-02)
aodv-ucsb-0.1b\routingTableEntry.h (1666, 2001-12-01)
... ...
UCSB AODV Implementation README
Written by Ian Chakeres, University of California, Santa Barbara, 2002
---------------------------------------------------------------------
Please direct support questions to the AODV implementers mailing list.
To subscribe visit
https://lists.sourceforge.net/lists/listinfo/aodvimpl-public.
Based on AODV Internet Draft version 10,
http://www.ietf.org/internet-drafts/draft-ietf-manet-aodv-10.txt
WARNING! WARNING! WARNING!
THIS RELEASE IS VERY ALPHA, SO PLEASE DO NOT REDISTRIBUTE AND DO NOT TRY
IT OUTSIDE OF YOUR TESTBED.
WARNING! WARNING! WARNING!
THIS IS UNSUPPORTED SOFTWARE, USE AT YOUR OWN RISK.
SUPPORTED PLATFORM: Linux 2.4.12
Should work with any kernel that has net filter compiled in
---------------------------------------------------------------------
QUICK START
Login as root
Configure wireless
Configure ip
make
copy kernel modules to /lib/modules/${KERNEL} and execute depmod -a
Execute aodvd daemon, use ./aodvd -? to see daemon options.
PRE INSTALL INSTRUCTIONS
You should be running 2.4.x kernel with netfilter compiled in.
You should have a functioning wireless card
FULL INSTALLATION INSTRUCTIONS
login as root
Configure your wireless settings (see man iwconfig)
To make these changes permanent edit /etc/pcmcia/wireless.opts
Configure wireless card in ad-hoc mode
"iwconfig eth1 mode ad-hoc"
Configure wireless card in essid "iwconfig eth1 essid my_essid"
Here is an example output from iwconfig
eth1 IEEE 802.11-DS ESSID:"aodv_test" Nickname:"one"
Mode:Ad-Hoc Frequency:2.457GHz Cell: 52:52:2D:00:29:44
Bit Rate=11Mb/s Tx-Power=15 dBm Sensitivity:1/3
Retry limit:4 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 invalid crypt:0 invalid misc:0
Note: Make sure all machines are configured the same.
Configure your ip settings (see man ifconfig)
To make these changes permanent edit /etc/pcmcia/network.opts
Use ifconfig to configure the ip address
Here is an example output from ifconfig
eth1 Link encap:Ethernet HWaddr 52:52:2D:00:29:44
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:63 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:3 Base address:0x100
Configure your routing table (see man route)
Add route for broadcast
"route add -host 255.255.255.255 dev eth1"
Add route for ad-hoc network
"route add -net 192.168.0.0 netmask 255.255.0.0 dev eth1"
All the nodes you plan to communicate with should be in the
Subnet specified here. If you need multiple subnets
add multiple entries.
Remove all other routes. Use "route del", see man route for
usage.
Here is an example output from route:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
255.255.255.255 * 255.255.255.255 UH 0 0 0 eth1
192.168.0.0 * 255.255.0.0 U 0 0 0 eth1
Note: You SHOULD NOT have a default route.
Compile AODV and install modules
unzip and untar aodv (if you're reading this you probably have)
execute "make"
copy kaodv.o and ip_queue.o to /lib/modules/${KERNEL}/aodv
execute "depmod -a"
Start the daemon
Use "./aodvd -?" for the command line options
Use "./aodvd -o -t all" to run the daemon in the
foreground with all debugging printed to the screen.
TROUBLESHOOTING
Check wireless settings
Check ip settings
Make sure machines can communicate after manually adding routes to
kernel routing table
Use tcpdump to watch message transmissions
---------------------------------------------------------------------
RUNNING A DEMO
requires 3 hosts and mac filtering. I use iptables (www.netfilter.org).
configure wireless, mode=ad-hoc essid=aodv
configure hosts 192.168.1.1,192.168.2.2,192.168.3.3
on 192.168.1.1 use iptables to block MAC address of 192.168.3.3
on 192.168.3.3 use iptables to block MAC address of 192.168.1.1
commands should look something like this:
iptables -A INPUT -m mac --mac-source 00:A2:6D:05:29:96 -j DROP
start daemons with hello messages on all hosts. ./aodvd -o -t demo
verify 2.2 connected on 1.1
verify 1.1 and 3.3 connected on 2.2
verify 2.2 connected on 3.3
ping 3.3 from 1.1
verify RREQ sent from 1.1, RREQ received on 2.2 from 1.1 RREP from 2.2
to 1.1, and gratuitous RREP received on 3.3
ping 3.3 from 1.1, should work.
wait
kill 3.3
2.2 should generate RERR
1.1 should receive RERR remove route and start issuing new RREQs
stop 1.1 ping to 3.3
wait
1.1 and 2.2 should delete routes to 3.3
bring 3.3 up
wait till reboot period is over
ping 3.3 from 1.1
verify RREQ sent from 1.1, RREQ received on 2.2 from 1.1 RREP from 2.2
to 1.1, and gratuitous RREP received on 3.3
ping 3.3 from 1.1, should work.
---------------------------------------------------------------------
INSTALLATION NOTES, MISSING FUNCTIONALITY AND KNOWN BUGS
Local Repair has not been tested
Expanding Ring search has not been tested
No RERR generated with local repair
All unused flags are set to 0.
connectivity is based on all messages received, not just control messages
Control packets do not receive higher priority than data packets.
---------------------------------------------------------------------
ACKNOWLEDGMENTS
Written by Ian Chakeres
Elizabeth Belding-Royer for support, guidance and AODV of course
Alexey Kuznetsov for libnetlink from iproute2 code
Pavlin Ivanov Radoslavov (pavlin@catarina.usc.edu) for PIM code
Erik Nordstrm (erno3431@student.uu.se) and Henrik Lundgren (henrikl@docs.uu.se) for packet_input and kernel modules from their AODV implementation
---------------------------------------------------------------------
近期下载者:
相关文件:
收藏者: