Ask Slashdot: Software For Learning About Data Transmission?
bellwould writes "In teaching information tech to a 13-year-old with autism spectrum disorder (ASD), I've found she's wildly interested in the details of data transmission but not programming. We've had limited success with command-line tools like traceroute and tcpdump, but now I'm seeking tips/advice on software that may help her explore and visualize things like transmission protocols." What would you recommend?
Play data games with a wireshark on someones network, and have fun decoding the packets.
Nmap comes with a GUI called Zenmap. If you want to be visual, the GUI has a tab labeled "Topology". There are also self-explanatory tabs for "Hosts" and "Services". It's also a nice way to teach your child about security.
I use the commercial version, but you can get it as freeware:
http://netwitness.com/products-services/investigator-freeware
basically, grab a pcap anywhere on the network, dump it into investigator, and then sift through the data. It's really powerful, but may take a little getting used to. Shows you all kinds of neat stuff about the data, lets you slice and dice it however you want by a whole host of criteria. Highly recommended.
A Mathematical Theory of Communication by Claude E. Shannon
Use your router to see where things are going. Set it up such that the firewall reports back to your computer (or displays when you log into it's interface), Or do the same with the firewall on the box you are using, or both. Wallwatcher, Syslogd, whatever works best for your situation.
Set up a separate box to act as a NID (e.g. Snort) and ratchet up it's output to verbose. Behold nearly infinite data to play with.
Set up a remote host, or log into a remote host you already have available, instruct it to portscan your home network, keep wireshark on, use resource manager to watch the TCP/IP connections come up and down, or task manager, or what have you.
Use TOR and watch the map screen that shows you your connection route, try to have the kid logic-together why the web takes so long to surf that way.
Lots and lots of tools that should be pretty much at your disposal with minimal effort are out there...
I would say start with the very foundation of telecommunication. Give a history lesson on the telegraph and telephone/circuit-switching. Move on to packet-switching and ip addresses/ports. Give hands-on experience building her own network topology. Once you have the foundations down, you may not need some fancy software to visualize something that is arcane and abstract. Work your way up the OSI layer model until programming becomes neccesary and understandable.
Network / socket programming would be very impressive at 13.
Your comment is pretty ignorant. She's 13, she almost certainly doesn't know what she wants but having tools to help convey the higher level concepts will help her in the long run. This is why there are tons of programming languages and other tech tools aimed at kids (Scratch, Alice, LEGO robots).
But fuck them, they should do everything in assembly. If it's too hard, then they're 'not ready'.
Careful with the CamelCase, but http://etherape.sourceforge.net/ is a fun real-time connection visualizer. We used that for a lot of network demonstrations.
The command-line based "iftop" is also really nice to get a quick realtime overview of what's using bandwidth.
I think she'll have lots of fun with any of the Wardriving software, which would also give you maps.
For Android, there are a few pretty interesting real-time displays. "Wifi Analyzer" will have her running all over the place exploring wifi signal attenuation. "OpenSignal" is also a cool app I just started playing with that will let you do the same with cell towers, which also shows their location on a map. Also look at "GPS Status" to visualize where all of the GPS satellites are, and what kind of attenuation you'd get from each one's signal with trees / buildings / mountains in the way.
Have fun!
I'm an adult female with ASD and I, too, was fascinated by data transmission. I couldn't hack school but for a couple decades I was an excellent (and highly compensated) network engineer, I recommend Wireshark and some books: "TCP/IP TCP/IP Illustrated, Vol. 1" by Richard Stevens, "Data Communications, Computer Networks, and Open Systems (4th Edition)" by Fred Halsall, and "Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (2nd Edition)" by Radia Perlman.
She might also be interested in databases, which is where I went when networking started to get dull.
I tried to get into programming but just couldn't. I really don't like doing it.
However I LOVE networking. You might have her go to your local Cisco network academy, and go to one that is offered at a community college. Not all are created equal, but the one I go to the instructors are very caring about their students, and will go that extra mile to help a motivated individual learn better.
I have a condition that I suspect is autism spectrum, but there's no name for. I have many traits of Asperger's and many traits of OCD, but not the full traits of either. I have a problem where I work fast but I take tests really slow, and I prefer smaller rooms/spaces. The psychologist I saw said he doesn't believe its autism, but said he does believe that I do have some kind of condition that there is no name for (I get accommodations for longer test time from Pearson Vue for industry certs.)
I'm a kinetic learner myself, yet still the instructors at the Cisco network academy are awesome. If you happen to live in the Phoenix metro area, have her go to the MCC network academy. Many employers recruit from there because it is easily regarded as by far the best place to learn networking in the state. Several of the students from there even go on to become CCIE's, which is in HUGE demand and pays very well, and its very rare for anybody to go into that.
Careful with names containing L slashdot.org/~AiphaWolf_HK slashdot.org/~AlphaWoif_HK slashdot.org/~AiphaWoif_HK
Anyone can understand packet braodcast and transmission but you should get the child interested in the harder stuff: TCP.
Sliding windows, data-retransmission algoritms, congestion backoff timers, etc...
It will explain not only how the data gets where it's going but how it gets there, ordered!
Fascinating stuff, really.
It's pure computer-science from there on.
Maybe the kid doesn't want to be a programmer but maybe the kid could end up designing/optimising data transmission algorithms, you never know.
Understanding TCP's challenges is the way towards that.
Good luck!
I don't know the meaning of the word 'don't' - J
I ~wrote my ow)n softWare to ddemonst^rate tHe priincipples of comM&uniction sofwware andd %it woRkks likee aa c!harr m ; + ~
Table-ized A.I.
e the rape?
Seriously... naming people - think it through...
Because there are a number of them that explore communications theory. Of course you could also just look at the TCP/IP stack on a computer.
Well, if you've got admin access to a decent sized network, go install NetDot, which gives you a visualization of all your gear & how it's connected at the physical & logical level, and will draw nice little network maps for you showing the paths between devices on the fly.
Netcat is good for experimenting at the application layer, especially combined with wireshark.
People are mentioning tcpdump, wireshark, etc. Why not sniff something a bit more lower level, a bit less documented, and therefore a bit more interesting?
Buy a cheap logic analyzer (here's one for $50). For even more fun buy a Bus Pirate, which works kind of like the old Game Genie game modification device from the 90's. Connect probes to conductors on various devices and try to figure out how they communicate at the electrical level, then modify the signals themselves to try to make new things happen!
First, she needs to read claude shannon's "a mathematical theory of communication"
http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf
Also, this class may help:
https://itunes.apple.com/us/itunes-u/principles-digital-communications/id341597796?mt=10
Start at the bottom, work your way up. Any local hackerspace should be able to help.
This is the way to go. In the beginning was the bit and it was good. Start with looking at CW (Morse code) on a waterfall display, then other modes, these relatively simple modes are the building blocks of almost all after them. Here are some tools to help:
http://www.websdr.org/ - MANY web enabled SDR rigs with a java app that includes a waterfall.
http://software.muzychenko.net/eng/vac.htm - Virtual Audio Cable software to make audio from previous app available to a lot more apps.
http://hfradio.org.uk/html/digital_modes.html
http://wb8nut.com/digital/
http://members.storm.ca/~ve3iay/digital.html - Some examples and basic info.
This will get the ball rolling in increasingly complex modes of transmission...then you begin to throw in real complexity by going over how some of this good old tech was made into the modern internet. Remember this is where the TCP in TCP/IP came from. If your area has an active VHF packet network that will keep her busy for a few years at least. There is a BBS on the space station she can use too (callsign RS0ISS-11, AR1SS, RS0ISS-3).
Have fun.
My favorite was always expertsexchange.com (now experts-exchange.com).
Either way, they want to take an appendage in exchange for information.
All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
Besides all the good tools mentionned, there's probably going to be interest in twiddling bits, or even protocol implementations and algos. Lisp is a little more ASD friendly and it's easy to write tools to interact with networks.
Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
kidsexchange was worse. And it is still live. http://kidsexchange.net/
and let her write her own client/server apps to talk to each other.
Never answer an anonymous letter. - Yogi Berra
I guess it depends what you mean by visualizing communications.
- An oscilloscope and a spectrum analyzer will show electrical properties at the hardware level.
- Traceroute, tcpdump, and wireshark will give you path and packet information.
- NMAP.org has a decent packet header reference for IP (http://nmap.org/book/tcpip-ref.html).
- NMAP is a very powerful network tool for scanning for open ports, etc.
- If you want to get deeper into packet headers, you can get into encapsulation such as VPN headers, Layer 2 encapsulation over layer-3 networks (i.e. Cisco OVT, EoMPLS, etc.)
- A Netflow application can graphically show you the breakdown of traffic type (i.e. http, ftp, etc) being sent across the connection. For this to would you would need a netflow capable device (i.e. Cisco router, etc.). Most also allow you to dig deeper into the actual conversation.
- For WiFi, there are applications where you can upload a floor blueprint and display a heat map based on the AP model and attached antenna. You play with it to see what AP/antenna combinations produces the widest range, throughput, etc. The better ones allow you to define walls, etc. where signals have problems penetrating. (i.e. AirMagnet)
- There are network monitoring tools that shows bandwidth usage, latency, etc.
- If you want to simulate a network I would recommend GNS3. It lets you run virtual routers, etc. in a virtual environment using the actual vendor firmware. It can be configured to interact with external devices through physical ports on your computer. Note: your CPU usage will be high unless the idle-pc value is set correctly.
Most of these are available as either open source or freeware. Most of the open source tools run on LINUX. If you are using Windows, most basic tools are free and most vendors offer trial versions.
You could try playing with a visual network simulator, which should make things easier to understand (and experiment with). This page seems have a nice overview and some screenshots to get you started. Have fun!
I am not exactly sure what you mean by "data transmission". But might running SMTP by hand using telnet be on the right path for beginners?
I have astonished a few friends who think computers are complicated just by "telnet domain.com 25" and running through a simple SMTP session to send a simple email. It's suddenly not quite so mysterious as before.
You can also do HTTP, but usually the returned data is too complex for a tty window. On the other hand, if you run your own webserver and "telnet localhost 80", you can set up simple pages to return.
Infuriate left and right
Set two machines up with their soundcards hooked together - you don't need radio for this, although if you've got an appropriate licence you may as well - and install soundmodem on them. Set it up so it appears as a network device.
Now when you ping from one machine to the other, you'll see (or hear) the ARP request and response, and the ICMP messages. You'll need to use something like ping -t 5 to make the pings slow enough. You will also need a suitably patched version of tcpdump or wireshark, that supports AX.25 as layer 2.
This lets you watch IP work in "slow motion" with each packet taking about a second. By adjusting the frequencies in soundmodem you can make the two machines sound slightly different (but not so much that they can't decode each other) which helps trace what's going on. You can even browse the net, *slowly*...
Can't believe it's still running, seeing as child trafficking is illegal.
...maybe buy a copy of James Gleick's "The Information" and see if any of it piques her interest? I have a sneaky suspicion that some of the concepts described that are broader may catch her imagination. Or read it yourself to explain some of the ideas in your own words to start with. I'd start with getting the _ideas_ across and let that fire up her imagination before trying to explain existing protocols too far. Maybe try and explain why the 7 layer OSI model is why it is but don't start with trying to detail TCP/IP!
--jch
The clack router is a little old but it's a great idea:
http://yuba.stanford.edu/vns/clack/
There might be too much abstraction for someone first starting out, though.
There are a few good books out there like "Digital Communications" by Proakis. Try writing some algorithms in MATLAB or python with all the pylab tools.
And you'll find some neat things like this: http://www.gns3.net/screenshots/ .
Powergen Italia could've done with a strategic hyphen insertion too.
Do you have any local hacker/maker space nearby? May be great and practical way to get introduced to tech and engineering.
There is no light without darkness.
Careful with the CamelCase, but http://etherape.sourceforge.net/ is a fun real-time connection visualizer. We used that for a lot of network demonstrations.
The command-line based "iftop" is also really nice to get a quick realtime overview of what's using bandwidth.
I think she'll have lots of fun with any of the Wardriving software, which would also give you maps.
For Android, there are a few pretty interesting real-time displays. "Wifi Analyzer" will have her running all over the place exploring wifi signal attenuation. "OpenSignal" is also a cool app I just started playing with that will let you do the same with cell towers, which also shows their location on a map. Also look at "GPS Status" to visualize where all of the GPS satellites are, and what kind of attenuation you'd get from each one's signal with trees / buildings / mountains in the way.
Have fun!
I think that the child can learn from http://class.stanford.edu/networking/Fall2012
There are some very basic informations. Pictorial representations, and concepts of flow, etc. I as a 13 year old became fixated on electronics, and this child may be fixated the same way on the TCP/IP.
Footnote: I pluraled information
Leslie Satenstein Montreal Quebec Canada