CIS 656, Spring 2004. Dr Ott. All homework is assigned on this page. Homework must be done before / is due on the date stated. Homework to be handed in: Unless stated differently, and unless you make a different arrangement with the TA (Mr Rahul Jain), homework must be handed in on the day stated, before 1:00 pm, by putting it in the envelope on the door of the Internet Laboratory. That is GITC 4325. --- January 31, 2004 (lecture 2): Read Forouzan pp 1 - 40 (Ch 1 and 2). Read Forouzan pp 47 - 53 (ethernet). Read Forouzan pp 89 - 93 (Start of ``adressing''). IETF stands for ``Internet Engineering Task Force''. RFC stands for ``Request for Comments''. IETF RFCs can be obtained on the web. Find out how. (For example, first use GOOGLE to find IETF). Get IETF RFC 1700 and read page 1. (The whole RFC is too long and too out-dated to read). Get IETF RFC 3232 and read the whole thing. (2 pages). 1. Use the mechanism described to find out what the content of the ``Frame Type Field'' (see below) in an ethernet frame header is, in case the ethernet frame contains an IP version 4 (IP v4) packet. (The answer is 0800 in hexadecimal, 0000 1000 0000 0000 in binary, 2048 in decimal). To prove you found the answer in the location I want you to know about, copy 5 lines from the page you found: the line with the answer, two lines above it, two lines below it (five lines total). Hand in these 5 lines. Note: What I usually call the ``frame type field'' in the ethernet header, other people sometimes call the `ether type field''. (And sometimes I do that, too). Forouzan p 50 calls it the ``Length PDU'' field. That is old-fashioned. Nowadays it is almost always used as ``frame type'', i.e., as descriptor of the next higher protocol. More about this in class. While doing the homework you may have to search for ``ethernet numbers'' or ``ether type''. --- Febr 07 (lecture 3): Read Forouzan pp 53 - 79 (Most of this is ``the other LANs'' that you must be aware of but that are not of further relevance in this course.) Read Forouzan pp 94 - 110. Read Forouzan pp 119 - 137. (CIDR etc). Read Forouzan pp 147 - 161. (In class I called this ``forwarding''). Read the ``nslookup and dig'' page on this website. 1. Visit http://cyberatlas.internet.com/big_picture/traffic_patterns/article/0,,5931_329 8891,00.html (I found this site by typing ``Internet Traffic Patterns'' into GOOGLE and then going with the flow). What fraction of the USA population was considered an ``active internet user'' in Nov 2003? Hand in your response. *** Do NOT do the following: Find the IP addresses (two of them!) of the computer(name) ftp.eu.uu.NET . For both addresses, find back what the name of the computer is. Hand in a copy of what you saw on the screen (your commands and the responses). Give an explanation of what you saw. (There is no single ``correct'' answer, just make sure that what you say makes sense). Hand in. The reason is that nslookup and dig no longer return an address for ftp.eu.uu.NET . See what happens if you try. Do NOT hand in. (Added later: nslookup DOES give a response for ftp.eu.uu.NET , aftewr all. But hand in the ``yahoo'' excercise. not the ``ftp.eu.uu.NET'' excercise.) INSTEAD: 2. Find the IP adresses (8 of them!) for the computer(name) www.yahoo.com . Then find the names that go with these addresses. Then write a SHORT paragraph giving an explanation of what you saw. There is no ``guaranteed correct answer''. Make sure that what you say makes sense. Hand in. Hint: do you believe those 8 computers are physically close to each other? *** 3. Go to the ``on line database'' you have used before and find the ethertype (or frametype) of IPv6 (IP version 6). Hand in 5 lines as before: The line in question, plus two above and two below. 4. Log on to a few of the afs1 - afs36 computers at NJIT and find what the network ID and Network Mask are of the net these computers are on. (say one from 1 - 8, one from 9 -16, etc). (Use ifconfig). (If you forgot what ifconfig options to use: do man ifconfig). Check that all (say four) of these computers have the same NetID. Hand in. --- Febr 14 (lecture 4): Read Forouzan Ch 7 (pp 169 -186) (ARP and RARP), Read Forouzan Ch 8 (pp 191 - 220) (IP) Read Forouzan Ch 9 (pp 227 - 246) (ICMP) Read the pages on ``ping and traceroute'', and on ``Domain Names and URLs'' (and if you have not done so, also those on arp, and on nslookup and dig) on my web page. If you have never used Google: use it. If you have trouble using Google, see Mr Jain. If you have trouble with remote access, see mr Jain. do man ifconfig and try it (do not hand in) do man netstat and try it (do not hand in). I forgot to mention in class: The fact that entries in the ARP Table time out after a while is said to mean that the ARP Cache maintains ``soft state''. (a ``wrong state'' disappears after a while). 1. Log on to one of the computers afs1 - afs36 and for 5 or 6 minutes, obtain its arp table once every 20 or 30 seconds. (If you forgot how: do "man arp"). Figure out how this computer handles the ``soft state'' situation for the arp cache (arp table) that was discussed in class. Write a SHORT!! paragraph explaining how these computers achieve the objective of being, for IP address - Physical Address translation, rarely wrong and never wrong for a long time. Hand in. Add copies of a SMALL AMOUNT!! of output to back up your claim that you understand how afs1 - afs36 handle this. Just enough to back up your claim. Not more! (Hint: If you want to ``prove'' at what time you executed a command, do ``date'' just before and/or after you execute the command.) E.g.: maan-2057 ott>: date Sat Jan 31 15:29:17 EST 2004 maan-2058 ott>: accurate to about 1 sec. 2. Suppose a router (R1) has the following forwarding table: Mask Network Action Interf NextHop I 255.255.240.0 128.235.192.0 F eth0 128.235.223.2 II 255.255.252.0 128.235.32.0 DD eth1 III 255.255.252.0 128.235.204.0 F eth1 128.235.35.1 IV 255.255.255.0 128.235.223.0 DD eth0 V 0.0.0.0 0.0.0.0 F eth0 128.235.223.2 VI 255.0.0.0 127.0.0.1 DD lo0 and suppose you also know that eth0 has IP address 128.235.223.1, and that eth1 has IP address 128.235.32.1 A. Make a drawing of this system of routers and networks that is consistent with the facts above. To make grading easy: Let 128.235.223.2 be a port on R2 and let 128.235.35.1 be a port on R3. B. What is the LENGTH of the mask of the network that eth1 is on? C. Which network(s) is (are) prefix(es) to which? D. This forwarding table has 6 ``routes'': I, II, III, IV, V, VI. For each of the following destination adresses, what does R1 do if it gets a packet with that destination address? Assume no problems with TTL, packetsizes, fragmentation, etc. 128.235.32.7 (answer: Route II. The rest you do yourself. To facilitate grading, just answer I, or II, or III, or IV, V or VI.)) 128.235.33.8 128.235.34.9 128.235.35.10 128.235.36.11 128.235.37.12 128.235.223.1 128.235.223.254 128.235.224.7 128.235.225.8 128.235.204.3 128.235.205.4 128.235.206.5 128.235.207.6 128.235.208.7 128.235.203.8 129.235.32.7 128.234.204.1 Hand in. (Do not hand in for E:) E. Often, what a router does with a packet depends not only on the destination address, but also on the interface that the packet comes in on. Examples: A packet with destination address 128.235.35.255 comes in on interface eth1. What does router R1 do? Answer: It ONLY gives the packet to its own software. This is a directed broadcast on network 128.235.32.0/22 . It comes from that network, so all stations on that network have already seen it. R1 is IS a station on that network, so it must look at the packet to see whether it has to further act on it. A packet with destination address 128.235.35.255 comes in on interface eth0. What does router R1 do? Answer: Now it gives the packet to its own software (for the reason above) AND it broadcasts it out over eth1. (Because the other stations on 128.235.32.0/22 have not seen the packet yet.) A packet with destination address 255.255.255.255 comes in on any interface. What does router R1 do? Answer: It only gives it to its own software. Does not send it out over any interface. There are many other (and more realistic) cases where the incoming interface matters. Later. 3. Log on to lafite. (lafite.njit.edu). Using ifconfig: A. Find the internal names of the ports on this computer. B. Find out which of these ports (apart from the loop-back port) are active (have an IP address assigned). C. Find the physical addresses and IP addresses of the active ports, and find the network addresses and masks of the networks these active ports are on. Hand in responses to A - C. 4. Log on to lafite. Using netstat (options -r and -rn) find the name and the IP address (IP address of the interface ``toward'' lafite) of the default router lafite uses. Hand in. Check that the information from ifconfig and netstat to a large degree is the same. Do not hand this in. --- Febr 21. Midterm All material covered thus far. Including Forouzan Ch 1 - 9, all notes, all homework. Incl homework for 02/21. The midterm will take about 45 minutes. Then I will lecture on IGMP. Excercise with ping and traceroute. Warning: I got strange results with ping inside NJIT. Among other things, mouton seems to have a much slower interface than lafite. (Possibly lafite is set at 100 Mb/s while mouton is set at 10 Mb/s?) But there is more that does not make sense. So do the experiment, organize your data, draw what conclusions you feel are warranted, and draw attention to inconsistencies, if any. I forgot to mention in class: In traceroute, the default is to send three packets for every starting TTL level. Barring exceptions (``routing storm'') all three will be bounced by the same router. The output gives three RTTs. If one or more responses does not come back the output usually is a * . So the ``worst'' is *** (nothing came back). Do traceroute from one of afsx, x = 1 , 2 , ... , 36 to another computer in the same group. Look at the result. Play with options. Do not hand in. Choose x among 1 , 2 , ... , 36 and y among 48 , ... , 56 . That afsy probably does not have ssh. So to log into it, you must first get into one of afsz, z = 1 , ... , 36, then telnet or rsh or rlogin to afsy. 1. Do traceroute from afsx to afsy . What are the name and IP address of the router on the way from 128.235.204.0/22 to 128.235.223.0/24 ? Call the IP address IPA1. (Hand in). 2. Do traceroute from afsy to afsx . What are the name and IP address of the router on the way from 128.235.223.0/24 to 128.235.204.0/22 ? Call the IP address IPA2. (Hand in) 3. From 1, 2 above: is routing ``symmetric? (Routing is symmetric if the path from destination to source is exactly the reverse of the route from source to destination: the same routers, but in inverse order). Hand in SHORT paragraph. (More like two lines). 4. From afsx, do traceroute to IPA2. From afsy, do traceroute to IPA1. Make a schematic drawing of the two networks and the two routers. Indicate IP adresses of ports on routers. 5. Suppose an IP packet without options arrives at a router R. Suppose the packet has TL (Total Length) 6214 Bytes, TTL = 27, DF = 0 , M = 0 , FragOffset = 0. Suppose R decides to route the packet through a next LAN that has MTU = 1500 (Bytes). (How many databytes does this packet have?) 5A. How many fragments will there be? 5B. For each of the fragments, compute Total Length, TTL, DF, M, FragOffset, number of data bytes. --- Febr 28. Read Forouzan Ch 10 and Ch 11. With the help of a few students, including Mr Kohli, I have come to the conclusion that almost certainly the three networks 128.235.32.0/22 , 128.235.204.0/22 , and 128.235.223.0/24 are not three LANs but a single ``network'' with three (or more) VLANs and a layer three switch. One of my reasons to believe that is that when I did the experiment below ``between'' VLANs I got strange results. I will talk about VLANs later in class. If you want to read ahead, go to Google and look for VLAN, and look for Layer Three Switch, Layer Three Switching, etc. In addition to the problem above, speed settings seem to change every now and then, but are pretty constant in-between. Do the experiment below anyhow and try to make sense out of it. Give me your best guess for the speed of the (imaginary? virtual?) LAN the two computers are on. If you find strange behaviors, document them! They may be very interesting! In particular if they are reproducible. 1. Choose two computers among afsx, x = 1 , ... , 36 and try to measure the data rate between these two computers. Report your conclusions. Keep it SHORT . If for some packet size you measure the Round Trip Time say 10 times, which of the (hopefully 10) RTTs do you use in the plot? All 10? Minimum? Mean? Max? Something else? Motivate your choice. For the next problem: Look at the ``Drawing of Network'' and ``Description of Network'' on the CIS 656 Spring 2004 page. 2. For the routers R1 and R11, make a forwarding table. (After the first few entrees it is tedious. I know. But you have to do this anyhow for the ``maxi project''). ----- For March 06: Read Forouzan pp 297 - 314. (We will be on TCP for a while). 1. Find the default route for lafite.njit.edu . Find the name of the default router and the ``next hop'' address of the default route. Describe what tool(s) you used to get the information, and how you got the information. Hand in. 2. Do traceroute from lafite.njit.edu to ucssgi6.njit.edu. What is the name of the first (and only) router on the way from lafite to ucssgi6? What is the address of the interface of that router ``toward'' lafite? Hand in. 3. Do you find an inconsistency between what you found in 1 and in 2? VERY BRIEFLY, describe what seems to be wrong. Hand in. 4. Get and read IETF RFC 867 (in its entirety!). What is the port number the ``date'' command uses on the server side? Hand in the two lines in the IANA database that give the port numbers for UDP-based and TCP-based date service. And work on your project! (miniproject due 03/13). I have added a number of problems on CIDR, NetIds, Masks, Forwarding Tables etc to my website ``Standard Questions''. (problem 47 X etc: in between old problems 47 and 48). I recommend that students who did not do well in the first midterm do these problems. In particular if you did not do well in problem 4 in the first midterm. ----- For March 13. MiniProject is due. Electronically to Mr Jain. rbj2@njit.edu The MiniProject is done by students individually. The Maxiproject is done in teams of 1 or 2. (2 is recommended). I recommend to make sure to have a partner by 03/13, so you can work together over the spring break. Maxiproject is due 04/17. No postponement possible: Final Exam is Sat 05/08. For March 13: Read Forouzan pp 314 - 341. In TCP every ``endpoint'' has a ``sendbuffer'' and a ``receivebuffer''. The sendbuffer is used to store data that must be sent but has not been sent yet, and data that has been sent but has not been acknowledged yet. (Such data must be kept until it is acknowledged, in case it must be retransmitted). The receivebuffer is used to store data that has been received but has not been sent to the destination application yet, including data that is waiting for previous data. (Waiting for re-sequencing, or waiting for data with a lower sequence number that has not been received yet). The ``advertised window'' the receiver sends to the sender is at most as large as the receive buffer. (1) Suppose we have a supercomputer in Pittsburg and a supercomputer in San Diego, and suppose these two two computers have a file of 1 TByte (10^(12) Bytes) that has to be sent from Pittsburg to San Diego. The people involved have measured the RTT and found it is about 50 msec. Suppose the people involved expect they can do this transfer in about 4 hours. Give a lower bound for the sizes of the send buffer (in Pittsburg) and receive buffer (in San Diego) to give them a chance to be correct in their prediction. Hand in. (2) Forouzan p 270 problem 20. Hand in. (3) Forouzan p 270 problem 21. Hand in. (4) Forouzan p 294 problem 29. Hand in. In class I said I also would ask a question about the cwnd increasing by about 1 MSS per RTT. After pondering I decided to assign that one for 03/27. ----- For March 27. There will NOT be a second midterm on March 27. The second midterm will be on April 03. Review Forouzan Ch 1 - Ch 12. (pp 1 - 351). Review all classnotes thus far. Read Forouzan pp 353 - 367. -- For the BSD-Unix code for TCP/IP, see W. Richard Stevens, TCP/IP Illustrated, Vol 1: The Protocols, and Gary R. Wright and W. Richard Stevens, TCP Illustrated, Vol 2: The Implementation. In BSD-Unix the congestion window of TCP flow tp is denoted by tp->snd_cwnd and is expressed in bytes. The MSS of TCP flow tp is denoted by tp->t_maxseg and is also expressed in bytes. tp->snd_ssthresh is the ``threshold value'': if (tp->snd_ssthresh > tp->snd_cwnd) the flow is in ``slowstart''. if (tp->snd_ssthresh < tp->snd_cwnd) the flow is in ``Congestion avoidance''. TCP_MAXWIN equals 65535. If no window scaling is in effect, this is the largest possible value for the ``advertised window''. tp->snd_scale is the ``window scale factor'' (at the sending side) for flow tp. In Stevens II the requirement is that 0 .LE. tp->snd_scale .LE. 14. (not 16, as in Forouzan). So (TCP_MAXWIN << tp->snd_scale) is the maximal value of the advertised window. (left-shift by tp->snd_scale bits : look in your C book or C++ book). In BSD Unix, every time the sending side of tp receives a ``good acknowledgement'' the following code is executed. (Stevens II p 977) { u_int cw = tp->snd_cwnd ; /* I think u_int has been defined as 32 bit unsigned integer. Not sure. Maybe machine dependent unsigned int? That would not work on 16 bit machines. cwnd definitely can grow beyond 2^16 . tjo */ u_int incr = tp->t_maxseg ; /* Always < 65535 . tjo */ if (cw > tp->snd_ssthresh) incr = (incr * incr)/ cw ; tp->snd_cwnd = min(cw + incr , (TCP_MAXWIN << tp->snd_scale) ); } (Actually, originally there was an error in this code and it was different, see Stevens II p 977.) I hope you agree with me this is ugly code. It was a little joke on Van Jacobson's part to get the code as short as possible. It does the wrong thing when (cw > incr * incr). -- For the linux code, the only good source I know is the linux code itself. In Redhat Linux, in /usr/src/linux/net/ipv4/tcp_input.c : /* This is Jacobson's slow start and congestion avoidance. * SIGCOMM '88, p. 328. */ static __inline__ void tcp_cong_avoid(struct tcp_opt *tp) { if (tp->snd_cwnd <= tp->snd_ssthresh) { /* In "safe" area, increase. */ if (tp->snd_cwnd < tp->snd_cwnd_clamp) tp->snd_cwnd++; } else { /* In dangerous area, increase slowly. * In theory this is tp->snd_cwnd += 1 / tp->snd_cwnd */ if (tp->snd_cwnd_cnt >= tp->snd_cwnd) { if (tp->snd_cwnd < tp->snd_cwnd_clamp) tp->snd_cwnd++; tp->snd_cwnd_cnt=0; } else tp->snd_cwnd_cnt++; } tp->snd_cwnd_stamp = tcp_time_stamp; } Only here, tp->snd_cwnd and tp->snd_ssthresh are expressed in MSSs. I have not looked up what tp->snd_cwnd_clamp stands for. Clearly, some upper bound above which tp->snd_cwnd is not allowed to grow. (Size of send_buffer or size of receive_buffer ? minimum of these two?) tp->snd_cwnd_cnt is a counter. It counts the number of ``good acknowledgements'' and when that number reaches tp->snd_cwnd, tp->snd_cwnd is increased by one (by one MSS) and tp->snd_cwnd_cnt is reset to zero. -- Homework for 03/27/04: Show that as long as (in the Unix BSD notation) tp->snd_ssthresh << tp->snd_cwnd << (tp->snd_ssthresh)^2 (and tp->snd_cwnd is the only constraint on the sender: all receive buffers and send buffers are large) ( A >> B means that (A/B) is a large number. In other words, the cwnd, in bytes, is large compared with the MSS but small compared with MSS * MSS. For example, MSS could be 1460 bytes, cwnd could be around 50,000 or 60,000 bytes), then the BSD-Unix implementation and the Linux impelementation ``behave similar''. Hand in. In both cases: if we are transporting a big file, and all packets are exactly one MSS big, and the dest immediately acknowledges every datapacket (no delayed ack), and the source sends one whole MSS as soon as it has permission, (AND nothing goes wrong: no loss) then the cwnd increases by one MSS roughly once every RTT. (RTT stands for Round Trip Time: the time from sending a datapacket until the acknowledgement returns, assuming the dest does not dawdle in sending acks). WITH delayed acks, the cwnd increases by one MSS roughly once every two RTTs. Do and hand in Forouzan p 349 problem 43. ----- Second Midterm is April 3. It is cumulative: Everything up to now. (Bad joke: what is the similarity between a midterm and an acknowledgement?) Example questions: Draw the TCP header without options. For each field, give number of bits and brief description of use or function or role. Where appropriate, give the units the field is expressed in. (bits, bytes, 32 bit words, liters, seconds, kilograms, carat, meters, ...). Look at the following output from tcpdump and ... . For example: Here is a tcpdump output for 1 IP packet, in hexadec: 4500 007a 0000 4000 4011 2568 0a07 00fe 0a07 ffff 0277 0277 0066 de61 3930 3536 2033 2069 7070 3a2f 2f74 7572 696e 672e 696e 7465 726e 6574 2e6c 6162 3a36 3331 2f70 7269 6e74 6572 732f 6665 6562 6520 2249 6e74 6572 6e65 7420 4c61 6222 2022 6665 6562 6522 2022 4850 204c 6173 6572 4a65 7420 3232 3030 220a a. This is a UDP packet. How can you see that? I planned to put a TCP packet here, but goofed and copied the wrong packet. Had this been a TCP packet, you should have answered the following questions. Find a TCP packet (preferably a ``first SYN'') in my webpage and try your hand at the questions below. b. Are there IP options? (yes/no) How can you tell? c. Are there TCP options? (yes/no) How can you tell? d. Give the values of all 8 TCP flags. ____ e. Draw a line ( like ____| ) between IP header and TCP header. f. Draw the boudaries between the various TCP options. I do NOT expect you to remember the code/type etc for the various options. In this example you have to look them up. In the real midterm, they will be given if you need them. Maybe even if you do NOT need them. But these are NOT the only possible questions! All homework questions are likely! and ... . Homework for April 3: Study for the second midterm. Forouzan Ch 1 - 12. All notes January 24 - March 27. (Incl TCP, excl RIP). All homework January 24 - March 27. Likely questions: (1) The TCP header. (2) A tcpdump question. Quite likely combined with ping, traceroute, etc, any of the tools you have learned to use. Work on the maxiproject! It is due 04/17. Do Forouzan p 350 problem 60. Hand in. With ``type'' is meant ``what flags are set?''. ---- A few students told me they found the second midterm hard, because while the questions were on tcpdump, they were unlike the ones you had done. (Students keep surprising me). I have put the the tcpdump output you saw in the midterm on my website. With the packets I threw away still there. As training, feel free to do the 7 questions. I may assign some of them as homework for 04/17. After the second midterm has been graded I came to the conclusion it was not hard. Three people had 100%, half the class had 88% or over. This is a good class! Still: Look at the tcpdump output. There is more than meets the eye. Mr Mynam drew my attention to the following: If an ``ordinary'' datapacket says it contains bytes x:y (y-x) then (y-1) is the highest sequence number sent, y is the lowest sequence number not sent yet, and (barring accidents) the next acknowledgement from the other side will have ack y. (``I want the byte numbered y''). However, if a FIN packet says it sends x:y (y-x), y still is the lowest sequence number not sent, but the packet that acknowledges it will have ack (y+1). This way the system differentiates between acknowledging the last data byte, and acknowledging the FIN (which often does not contain any data). So, the packet with timestamp 12:26:51.640739 acknowledges the datapacket with timestamp 12:26:51.640669. The FIN with timestamp 12:26:51.640672 gets acknowledged by the FIN with timestamp 12:26:511.640830, which in its turn gets acknowledged by the packet with timestamp 12:26:51.643385. That last one terminates the flow. ---- Homework for April 17: Hand in Maxiproject. Read Forouzan pp 353 - 388, and top half of 389. (I plan to skip the remainder of BGP). Do and hand in: Forouzan p 402 etc, problems 59, 61. As pointed out in class, VoIP does not use TCP but UDP (actually, RTP over UDP). RTP stands for ``Real Time Protocol'', see e.g. RFC 3550 (and many others), and Forouzan Ch 28. Why would VoIP use UDP and not TCP? Give a SHORT answer. If the Maxi Project leaves you time: start reading Forouzan pp 405 - 423, pp 429 - 440, pp 497 - 506, pp 555 - 560, pp 787 - 820. I plan to quickly cover highlights from these chapters in the remainder of the semester. I may change my mind on exactly what to cover in the remainder of the semester. These are good pages to have read in any case. ----- Program for the remainder of the semester: April 17: BGP, some stuff on Multicast, Client-Server, DNS, FTP. April 24: Some stuff on HTTP and WWW, Guest Lecture by Joel Gottlieb of ATT Research, on ``How things really work''. May 01: IP version 6, and wrap-up. May 08: Final Exam. Please study your notes, readings, projects, and homework. Please do not wait until May 01 with asking questions. Homework for summer 2004: Read the rest of the book :-) . ----- On Sat 04/24/2004, the second half of the classtime, there will be a guest speaker. Dr Joel Gottlieb from ATT Research will speak on ``How networks really work''. From break until about 12:15. Last time I had a guest speaker from ATT Research there were so many questions he went an hour over time. And none of the students left! So make sure to have breakfast before class. There WILL be at least one question in the final on what Dr Gottlieb talks about. (Only the part before 12:15 :-) ). Joel M. Gottlieb is a Principal Technical Staff Member in the Network Management and Performance Department at AT&T Labs-Research in Florham Park, New Jersey. Joel received his B. S. in Physics and Applied Math from the University of Michigan in 1983, and received M. S. and Ph. D degrees from the University of Wisconsin--Madison in theoretical physics in 1986 and 1990. Joel is an expert in the area of configuration management of large IP networks. His research interests include network modeling, anomaly detection using BGP data, and understanding the problems faced by large Internet service providers. ----- As you noticed, I spent most of Sat 04/24 on ATM and MPLS, because Dr Gottlieb had told me he would say something about the use of MPLS. Homework for Sat 05/01/2004: Read Forouzan Ch 26, IP over ATM. (On the final I will ask on ATM only what I did I did in class, but you should read that chapter. pp 699 - 711.) Read Forouzan Ch 17 (BOOTP and DHCP) pp 481 - 491. On the final I will not ask about packet formats in BOOTP and DHCP. I may very well ask about the material I covered in class. Read Forouzan Ch 18 (DNS) pp 497 - 509 only. I may very well ask about the DNS material I covered in class. In my treatment of RIP I goofed: In RIP, the distance from a host (incl router) to another host (incl router) is one if they are on the same physical network. Two if they have to go through one other router. etc. (I had said the distance from a router to a directly connected network is zero. RFC 1058 says it is one). See RFC 1058. (If you want to look this up, be carefull! RFC 1058 has been updated by RFC 1753. RFC 1753 has been obsoleted by RFC 2453. RFC 2453 has not been updated or obsoleted, yet. This means some, but not all, the information in RFC 1058 is out-dated.) Do the following: R0 (Router 0) and its neighbors do RIP1. At some point, R0 has routing table: network: 1 2 3 4 5 6 7 8 distance: 1 1 2 2 4 4 6 16 next hop: DD DD R1 R2 R3 R1 R2 (If R0 gets a packet for network 8, it drops the packet and sends an icmp message ``network unreachable''. If it gets a packet with a destination address that is not in any of the networks 1 , 2 , ... , 8 it drops the packet and sends an icmp message ``network unknown''.) Knowing this, do the following: The routers R0, R1, etc do ``Poison Reverse''. 1. If now R0 sends a route advertisement to R1, what does the advertisement say? 2. Suppose next R0 gets the following advertisement from R2: netw: 1 2 3 4 5 6 7 9 dist: 16 1 2 1 1 2 7 2 What is the R0 routing table after the update? From the original routing table you can see that R0 has distance 1 to R1 , R2 , and R3. 3. Do you know what network R0 and R1 both have access to? R0 and R2 ? R0 and R3? It is educational to try to draw a network that is consistent with the data above. I do not expect you to succeed, because for a realistic network I needed a much larger routing table. But you can get close. Close enough to answer 3. Do and hand in 1, 2, 3.. Warning: Questions about RIP are easy to formulate and easy to grade. So I often ask them on the final. ---- I will cover some material on IPv6 on Sat 04/01/2004. A question on IPv6 is likely on the final. Between 05/01 and 05/08, read Fourouzan Ch 31 (IPv6 and ICMPv6), at least those parts related to what I cover in class. ---- Final: Sat May 08, 9:15 - 11:45. ---- Homework for Summer 2004: Read all of Forouzan. ---- If you remember eveything I said in class, and understand all of it, you now can do independent work on ``Internet Stuff''. In the sense that you know enough to find and understand what you need to read next. Good Luck. This class was fun (for me :-) ). I hope you liked it, too. Teun Ott.