Small day in the life here. Posting this for my family so that they think I’m a real scientist. Most days, I sit at my laptop and plink around at code or text, but some days I get to feel like I’m doing “science” and being “hands on” — those are the days I get to play in the machine room.
Here’s last week:
Me, with two hand-me-down 10Gbps NICs cards ready to insert in to my server.
What’s a NIC? A NIC is a Network Interface Card: it’s the thing you plug your network cables in to on your computer. 10Gbps is called the line rate: it’s how fast each port on the card can transmit at. Each port on this card can transmit about 10 billion bits every second — that’s something like one, hi-def copy of an episode of Downton Abbey, transmitted in only a second. These cards each of two ports on them, and I have other cards with four ports on them!
This is not what you have on your computer, probably. What you have probably looks more like this and does 1Gbps or 100Mbps:
Mine look like this:
Okay, so let’s pop this in to one of our servers, or “software routers.” We use these servers to run experiments testing how machines in the middle of the Internet might be built. For some experiments, we’re studying the machines (“routers”) that decide which packets get sent to China and which ones go to Amsterdam. For other experiments we are considering the machines (“middleboxes”) that inspect traffic for attacks and drop them before they reach your house, or in countries outside the US make sure you’re not trying to access websites hosting illegal content. There are a ton of machines that sit in between your house and the other computers that you talk to, and they do a lot of different things.
Here’s one of the server racks that belong to my lab:
Notice that they are all stacked up. This is not like your desktop computer — most of the time, nobody working on these computers is anywhere near them. We connect to them remotely, using something like Remote Desktop or SSH. If you do need to connect a keyboard or a monitor to them, we have these little carts with keyboards and monitors that you roll up to the server rack and plug in. Then when you’re done you unplug the keyboard and monitor and roll the cart away.
Because the servers are all stacked up, you might think it would be hard to open up the machine to put in new hardware like we want to do with the new Network Interface Cards. However, it’s actually super easy: every server is basically in a drawer, and you can pull it out just like you’re opening your kitchen silverware drawer (actually you need a screwdriver to unlock it it, but after that it pulls right out):
After we’ve opened up the drawer, we can see the insides of the server. In the back there (with the arrows) are where we’re going to insert the cards. We insert them in the back so that the plugs where we can insert cables are exposed on the back of the server — we want the new cards to sit right up against the back wall.
There are a bunch of other cool things to see in here. This server has 16 CPUs — the thinking part of the computer. For comparison, my laptop has 4, and yours probably only has 2. I wish I had 16 brains that could think about 16 different things at once, but alas, I am a mere human. There are also lots of slots to insert memory (I also wish I could remember more things). In the top right corner by the back is where power comes in. There are actually two plugs for power to come in: in case one cable get unplugged or the connection fails, there is a backup, just in case. Also, notice up front: there are a ton of fans! This thing gets hot with all the thinking and computing and packet processing it is doing.
Now that we’ve put the new cards into the server, let’s go around to the back to plug cables in to the new cards we’ve put in.
This is not our rack. This rack belongs to a different group. See all ports for Ethernet, but the normal kind, the kind you have on your laptop? Also see how orderly and organized this is? Someone set up these servers nicely, and they do not get messed around with very often.
Instead, this is our rack. It is an absolute disorganized disaster:
In fact, this is one of two racks the NetSys lab owns, and the other one is bigger and even messier. Why is it so messy? Around the course of a deadline week, everything gets re-cabled probably 4-5 times a day. People are in and out of the machine room swapping out cards, plugging computers together in different pairs, and setting up different experiments all day. We are one of the few research groups at Berkeley where the students actually spend a lot of time configuring their own machines. Think about it: how often do you spend climbing around under your desk plugging together your desktop computer? Not very often. And it’s not very often for most computer scientists either. Except us networking folks, we cable and re-cable and reconfigure all the time. Our System Administrator yells at us from time to time and makes us clean it up. Kind of like your dad or something. (I’m going to get in trouble for that comment.)
Now that we have our new cards in (see all the empty ports on the back of the servers?) We’re almost done! We can go ahead and plug one a cable in to the port at the server, and plug the other end of the cable in to a switch:
Just like the router you have at your house — only way faster, and with way more ports!
Brief, cute video on why HTTPS sucks.
AT&T switch in my neighborhood. Super nice engineer named Bruce had it open and was running some tests and let me take a peek. The central column has ports going directly to an AT&T “central office.” The ports on either side run to the houses in the neighborhood. There are a LOT of wires in between. It’s crazy to think how almost every neighborhood in the US has several such “switches”.. connecting cable, phones, power. Our towns are quite literally wired, although we barely notice it.
Barath Raghavan on future directions for SDN!