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.
Wireshark is the way to go. And being autistic, she's probably got the focus (fixation?) to understand it thoroughly. www.wireshark.org/
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.
They have a nice way of visualizing tcp traffic routes, using a map of the world.
If she likes that sort of thing then you could get her a software defined radio to play with. Also, textbooks on datacom might be nice (BPSK, AM/FM, QAM, ect)
... really wants.
You said: "We've had limited success with command-line tools like traceroute and tcpdump,"
Well if she was REALLY interested she would want to know EVERYTHING about it, including the boring parts. Perhaps her interest is misplaced and she doesn't fully grasp that fact?
I mean I was a tinkerer as a kid I had to learn everything about computers by reading things like manuals (I read the dos manual!) and once you learn a few things and mess around the rest becomes second nature the more you do it. If she really DOES have the 'tinkering' gene then she will tinker and learn on her own. An interest as (seemingly) ephemeral as your daughters doesn't seem to me to be very valid. She doesn't seem to be mature enough to understand she's not really as interested as she says she is.
You may have to wait a couple more years if there is anything there. I would venture anyone who is truly interested in a thing doesn't give up so easily.
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.
NeoTrace
- geographically trace data transmissions (not a broadcast visualization)
Etherape
- visually draws connections per subnet (when machine is using 802.1q even more segments are visible)
NIST virtual machine
- a few visual network monitoring tools integrated with google earth
Honey net
- http://map.honeynet.org/
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!
You come off sounding like a pompous a@@. The kid is autistic and has found something she is excited about. If you can't contribute something helpful then stfu.
You pompous clueless idiot. She is autistic. Do you know anything about autism? Wait...I'll answer that. NO. Geeh.
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.
You might have fun playing with a systems dynamics tool like Vensim. It is commercial software, but free for personal use. Its a lot of fun to play with in visualizing the stocks flows of any kind network whether it is in computer, ecology, or the way businesses work.
Wireshark has some very cool graphical tools under the "Analyze" and "Statistics" menus
http://www.youtube.com/watch?v=JEpsKnWZrJ8
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.
Think big, the improtant concept is traffic. Traffic for most people is an enourmously obvious and self evident problem, but most people don't necessarily ask questions or look for answers. There are many practical examples you can teacher her from. She might learn that from Sim Building or more indirectly she might learn the issues of latency because other people are shooting her before she has a chance to shoot back when playing Doom. The simple act of waiting in a queue. There may be real world examples you can teach from and there are certainly an abundance of academic papers you can teach from, and knowing the problems that people are trying to solve migth be more useful than knowing the specific methods.
I've had to work at a variety of levels and would suggest:
Wireshark at the packet level.
Fiddler at the HTTP protocol level
A Wi-Spy 2.4x from Metageek or one of its equivalents to show what's happening the RF level for 802.11g. It's a fascinating way to visualize wifi traffic that's constantly whizzing all around you everywhere you go.
(If want to go really geeky, the RF Explorer does the same thing as the Wi-Spy across a broader spectrum, albeit with lesser resolution.)
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
It's actually a contraction of 'ether' and 'rape'. Since you know if you can't get them willing, then unconscious is the next best alternative :D
Start at the bottom, work your way up. Any local hackerspace should be able to help.
nicer and more flexible tcp visualisation that the wireshark built in, see http://www.tcptrace.org/ and http://tcptrace.org/jPlot/ (or xplot if you prefer)
also, see http://research.protocollabs.com/captcp/ which has a fancy "sound/spectrogram" output mode, which is blingy enough for a 13yr old.
-jg
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
Wireshark was already mentioned, so I'll list some other tools I've found useful:
Mtr is better than traceroute. It has ncurses and graphical versions.
For persistent ping tests, I can recommend SmokePing.
Any modern network should have SNMP monitoring capability in the switches and routers. Ask permissions to get read-only access on the devices and there's a wealth of information to be gathered. From basic information like port status, packet/byte counters, to more advanced like topologies learned by MAC learning and neighbor discovery protocols (CDP, LLDP). Or you can just buy one for the class. 100M 24-port managed switches are not that expensive and a Linux server can be used as a SNMP-enabled router (Install and configure snmpd).
To actually act on that data.. You can try one-off tools like Cacti for traffic monitoring, and NetDisco for device and topology discovery. Or a huge does-it-all tool like OpenNMS.
Managed network devices can also dump traffic, either using "monitoring ports" (that mirror traffic from other ports), sflow (sampled stream of packets, unless 1:1 sampling, only useful for statistical traffic measurements) or nflow/ipfix (aggregated flows).
I'm especially fond of nflow, in addition to previous tools. Nflows can be used to analyze, post-mortem, who contacted and where and how much data was transferred at what kind of approximate pattern. This kind of data can be dug out from a full dump, but it's usually infeasible to dump _everything_ to disk. I've used flow-tools.
I would recommend aircrack-ng to play with
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*...
http://online.stanford.edu/content/introduction-computer-networks
Can't believe it's still running, seeing as child trafficking is illegal.
TCP/IP Illustrated Vol.1, wireshark and scapy.
Scapy in particular is an essential tool in any protocol ninja toolbelt.
...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.
Looking more directly at the bits of data through a logic analyzer may be something to consider. The signal from a PS/2 keyboard would be a good candidate to look at. Press 'a' on the keyboard; about a dozen bits will be sent from the keyboard; eight of them will be data; and those eight data bits will match the scan code for 'a' (scan code of hex value 1C).
(Note: If you want to look at the signal, it's much easier to do using a serial PS/2 keyboard than a USB keyboard.
Also note: "Make" scan codes are for pressing a key, while "break" scan codes are for releasing the key.)
http://www.computer-engineering.org/ps2protocol/
http://www.computer-engineering.org/ps2keyboard/
http://www.computer-engineering.org/ps2keyboard/scancodes2.html
What a wonderful thread!
ya'll some helpful motherfuckers.
I teach networking, amongst other subjects. In the process, I use Cisco Networking Academy curriculum, TestOut Labsim curriculum, WireShark, NMap, Angry IP Scanner, Nessus, real equipment, subnetting guides, and everything that I can get may hands on.
For your Autistic child (I have one too), consider enrolling them in a vocational or community college class where lab equipment is used, and quality curriculum is available. Even if your child is homeschooled, they can enroll in the public education system to take this one class. If the child is underage for the class, call an IEP and make an exeption.
And you'll find some neat things like this: http://www.gns3.net/screenshots/ .
Get a Bus Pirate from HackaDay. You can do some pretty amazing things with just about any serial protocol out there.
http://hackaday.com/2008/11/19/how-to-the-bus-pirate-universal-serial-interface/
e the rape? Seriously... naming people - think it through...
So all names with r-a-p-e are banned? What are therapists going to do in your world?
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.
I'd say that for a very simple and intuitive user-controlled & animated GUI using real tcpdump logs (of your choice), you can check out our old uni project app (standalone jre): http://www.cs.helsinki.fi/group/dacopan/screenshots.html
It's both focused on using real data transmission protocols AND meant to be easy for people starting to learn them.
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
Use Packet Tracer! it's free!