Happy Thanksgiving! For those of you who missed last class, the deadline for the current project has been pushed back two days to Thursday. Random non-CS tidbits - the other producers who should've come to my mind are obviously Puff Daddy, and (in the reverse direction) David + David. The latter are two guys (named David) who wanted to be producers and weren't taken seriously, so they put out a really good album of their own (which they produced). After that, they were able to find work as producers, so never put out another album as David + David. Can you tell I worked at a record store for a number of years? Random shame tidbit - the Neptunes seem to have also produced some of the Backstreet Boys songs. DNS servers under attack - seems that seven of the 13 "root" DNS servers were down for an hour, and another two may have been partially degraded. I also said the most recent one was targeting ".com", when it was really targeting the company that handles a lot of DNS services, in addition to ".info" http://computerwire.info/cgnews/4FACA4EA8EC1C31808256C7D00007767 or http://www.theregister.co.uk/content/55/28291.html or http://www.internetnews.com/dev-news/article.php/1486981 If you're wondering why we're talking about networking in an operating systems class (or why we're delivering stuff via a server), here's Sun's CTO talking up networking as the future http://www.theregister.co.uk/content/53/28259.html How are port numbers managed? Is this another job for the OS? At one level, they're managed by the IANA - the Internet Assigned Numbers Authority, at http://www.iana.org/numbers.html At another level, it would be bad to have the first process that comes along be allowed to grab port 80, since that would mean that any process could become the official web server on a machine. So, ports under 1024 are only allowed to be grabbed by processes that have root privilege (the superuser). All "official" ports are less than 1024. When your web browser wants to create an outbound socket to talk to a web server, it doesn't care what its local port number is, so it lets the OS pick one for it. The OS usually assigns something in the range of 5000-48K for it (this range is usually configurable on each OS). This stuff is pretty cool - how close is it to the networking class next semester? This is the "OS-visible" side of networking, as opposed to the "hardcore" networking that goes on behind the scenes. So, the networking class will include a lot of the details, like how two computers actually break up, send, and retransmit data in order to make sure it reaches OK. In other words, we're looking at it from a pretty high level this semester - I just wanted to give everyone enough exposure so that they'd know what's going on rather than all the details. nslookup says www.cs.princeton.edu is 128.112.136.35, not 128.112.136.11 like in the slides You are correct. That's what I get for caching the information for one year... Do these registrars work for the companies that operate the .com, .edu, etc., servers? As far as I can tell, various companies/universities/organizations volunteer to host the 13 root DNS nameservers in operation. I can't seem to find any indication that they're getting paid for it. Some of the companies seem to be major bandwidth supliers, so the cost probably isn't an issue for them. I'm not actually sure if the registrars have to pay a cut to anybody. Does ping use a port number? Why don't standard firewalls that block all ports block ping as well? Ping uses a protocol called ICMP (Internet Control Message Protocol) that's a companion of the normal IP protocol. ICMP is normally used to do testing, report error conditions, and send other "control" sorts of messages, instead of sending data. As far as I can tell, there's no port number associated with this, since it's presumably destined for the ICMP processing capabilities of the device itself, rather than a specific service running on a port. How do ISPs get permission to use and distribute the IP addresses that they use? Everything comes from IANA (noted above) and Internic, at http://www.internic.net/ Internic's actually got a pretty good FAQ page explaining what they do and what ICANN does, etc., etc. Please re-explain the difference between circuits and packets, and the reason for using packets. A circuit (in theory) is reserving bandwidth along the entire connection, whether or not it's being used. In packet-switched networks, there are limited-sized packets that all share the same links, so that you can have high "peak" bandwidth usage without having to reserve it all the time. It's a more efficient form of sharing, and it works well for systems that want to always be connected. A reasonable high-level summary is at http://www.computerworld.com/networkingtopics/networking/story/0,10801,41904,00.html At the Akamai talk last year, the speaker noted that sysadmins try to set up their networks so they have less traffic, pushing it onto other networks. Can you explain this? When you decide to connect to the Internet, you need to convince someone to let you send your bits over their lines. The simplest way of doing this is to give them money. So, let's say that you use company A, and your friend is using company B. How does your data reach your friend? In general, company A and company B have some sort of "peering arrangement" if they carry comparable amounts of traffic. What this means is that they'll shuttle bits between their networks without charging each other for the traffic. The way routing on the Internet works is that each intermediate node (called a router) tells all the other nodes how far it is from various endpoints. This distance is measured in "network hops" - the number of routers away. So, if I'm trying to send packets to California and I see that there are two paths, my router will automatically choose the path with fewer hops. The problem arises because this means that if I've peered with someone, I'd like to advertise that I'm far away from everything. If that happens, more of my traffic will go over the other network, since it'll appear closer to the destination. If one of your peering points starts lying, you could try to measure the traffic that they're sending, and try to redo the peering arrangement such that they have to pay for it. However, this accounting isn't easy to do. So, instead, you could "fix" the problem by also lying about your network distances, and that's what happens.