Assignment #4 : due electronically (since classes will be over), 5PM, Fri., May 6th  (no extensions!)

Problem #1 –
Scenario:
There exists a 10/100/1000 Ethernet switch, with a 1000 Mb/sec (gigE) full duplex uplink to a backbone network. On this switch lives a number of servers which provide resources of various kinds to the entire Internet community. On ports 3-5, live servers which provide Web and FTP access to various and sundry software and cultural resources. On port 7, lives a streaming media server which provides Real Audio streams for several radio stations.  On port 9, lives a server that provides telnet/SSH access for Unix shell commands. All servers are running at 1000 Mb/sec (gigE) full duplex.

Problem:
The server that lives on port 3 has recently made available the latest version of a popular "no cost" software product. As a result, utilization on this port is currently running at almost 800 Mb/sec (just about all outbound, as you’d expect). Utilization on ports 4 and 5 are running between 150-200 Mb/sec. Given, though, that the switch uplink to the backbone is only 1000 Mb/sec, the traffic from server/port 3 is overwhelming everything else. Web response on server/port 5 (which actually has more users, just pumping fewer bits) is really sluggish. Furthermore, the combined traffic from these three Web/FTP servers is overwhelming the traffic from the two "real time" servers: the streaming audio server and the ssh server. Given the amount of congestion in the switch, enough packets from the streaming audio are getting dropped to be problematic to the listener at the other end. Finally, there is SO MUCH Web/FTP traffic on port 3's server that its remote backup process keeps timing out, because packets keep getting dropped at the switch uplink port (the remote backup server is in another building).  Changing the hardware on the switch from a 1000 Mb/sec Ethernet uplink to a 10 gigabit Ethernet port uplink isn’t feasible at this time.  

Desired Result:
The administrators of these systems would like it if somehow the outbound traffic from server/port 3 could somehow be "throttled" to allow more traffic through from the other servers. Assume that there is no way to do this from the workstation.  (Actually, there are ways, but let's assume that they don't know how to. They want it done at the switch.) Furthermore, they would like the traffic from the "real time" servers: server/port 7 and server/port 9 to get "prioritized" so that any traffic from these server/ports always gets through before traffic from the other ports.  Finally, they'd like to be able to get backups of the files on server/port 3.   Assume that all of these applications have known TCP or UDP ports.

Question (finally):
Based on what we've said talked about in class, is this problem resolvable?  If it is, what standards-based technologies would be used to resolve this issue?  Describe in general terms (not the details of the technologies themselves, but just in general) the basic concepts associated with the technologies and how they would work in this situation.

Problem #2 -
In discussing TCP congestion avoidance (as opposed to congestion), we discussed several alternative approaches; two of these were marking a packet (as in the Explicit Congestion Notification mechanism) versus dropping a packet (as in RED implemented on routers).  Briefly discuss the relative advantages and disadvantages of these two approaches.

Problem #3 -
Suppose you want to use a filter-based firewall to block all INCOMING TCP connections, but to allow outbound TCP connections.   You don't want to block all incoming TCP traffic, just any initial connection attempts.  If you assume that your firewall is allowed to use the TCP header "Flags" bits (refer to Comer or Stevens as to what's in those bits, again) in addition to the usual port numbers, explain how you can achieve the desired effect of allowing no inbound TCP connections.   (Hint: note what fields are in the Flags bits of the TCP header and remember how those are used!)    I’m not asking for an actual filter here; what I’m asking for is what you would filter on.