Through The Ether And Back Again: What Happens To A Packet When You Send It
- Audience level:
- High Performance Computing
March 9th 5:20 p.m. – 6 p.m.
Many - perhaps even most - Python software involves a network, at least a little bit. You've probably written some yourself. But do you really know what happens - to your kernel, to your ethernet card, to Python - when you call socket.send()? Come to this talk and find out: if you dare.
Have you ever wondered what happens when you actually send some data over a TCP network connection? To a Python programmer, it looks like you just call one method with some bytes. But in reality, there's so much stuff that gets involved:
- Python hands off the data to the C library.
- The C library hands the data to your kernel.
- The kernel pokes some data into your ethernet card.
- Your ethernet card bounces some electrons off a switch.
- The switch sends those electrons out, possibly all the way to the internet.
- Later, they hit somebody else's ethernet card, which goes through the kernel, which reassembles the data stream, and wakes up a process, and gets read.
I will talk about each of these different steps, how they work, what technology is involved, and, most relevant to your Python programs: how they can fail.