CIS 456-002 Open Systems Networking. Spring 2004. Instructor: Teunis J. Ott ott@oak.njit.edu http://web.njit.edu/~ott TA: Rahul Jain rbj2@njit.edu The course meets Tue and Fri 4:00 - 5:25 pm in Kupfrian 203. Kupfrian 203 (as the registrar's web page indicates) IS the correct room. First class meeting: Tuesday 01/20/04, 4:00. Dr Ott's office hours are Tue, Fri 3:00 - 3:50, and by appointment. In his office, GITC 4313. Mr Jain's office hours are Tue 2:00 - 3:00 and Thu 3:00 - 4:00, in the Internet Laboratory. GITC 4325. Please see Mr Jain first. If he can not help you, see Dr Ott. The book used is Douglas E. Comer Internetworking with TCP/IP, Vol I: Principles, Protocols, and Architectures. FOURTH EDITION. Prentice Hall. All students must have access to a copy of the book. The NJIT bookstore has the book in stock. The syllabus of the ``distance learning'' section of this course can be found on this website, ``Syllabus, Distance Learning Section''. The only formal requirement is that students have passed CIS 114. Programming ability is critical in the project. There are some differences between this section (CIS 456-002) and the Distance Learning section (Mr Wenping Yang). One difference is that I start faster. Mr Yang WILL cover ATM and socketprogramming. I will do very little on ATM, and I may decide not to cover socketprogramming. Mostly because I feel it either needs more time than we have, or should not be done at all. I will do more on dig, nslookup, ping, traceroute, arp, netstat, ifconfig, tcpdump, than Mr Yang. Mr Teklinski told me he also will spend more time on those packages. Different sections will be different, but only by 10 or at most 15%. Also see the list of chapters I plan to cover (below). The course roughly covers the chapters 4 - 17, (not 18 - 20), 21 - 28, 30, 32, 33 (not 29, 31) of the book. Several of the chapters listed, in particular the later ones, will be covered only partially. Rough time table: This does not mean that the material in chapters 1 - 3 is assumed to be known. The material in chapters 1 - 3, in so far required later in the course, will be covered in the first week. (Mostly the ethernet protocol). Chapters 1 - 3 will be assigned reading early in the course, and may be asked about in early quizes, but not in the final. The material in chapters 1 - 3 (and much more!) is covered in greater detail in CIS 451. Rough Time table: Week 1: Ch 1 - 3. Week 2: Ch 4, start 5. Week 3: Ch 5, 6, 7. Assign ``Read and print IP header'' project. Week 4: Ch 8, 9. Week 5: Ch 9, 10. Assign ``Routing Project''. Week 6: Ch 11, 12. Week 7: Ch 13. Week 8: Ch 14, 15, (start 16?) Week 9: Ch 16, 17 (17: only partially) Week 10: Ch 20, 21, (start 22?) If time runs out, Ch 22 will be skipped. Week 11: Ch 22, 23. Week 12: Ch 24, 25, 26. Week 13: Ch 27, 28. Week 14: Ch 30, 32, 33. There WILL be homework, frequent miniquizes, two projects, and a final exam. There will not be a midterm. There will be a miniquiz almost every week. Miniquizes take about 10 minutes. In miniquizes, only material from the most recent 3 weeks will be asked. There will not be catchup miniquizes. Up to 2 miniquizes will be forgiven for absence or low score. Barring exceptional circumstances, further missed miniquizes count for a score of zero. Weights: Homework: 20% Miniquizes: 20% Project I: 15% Project II: 20% Final: 25% The projects require programming. The prefered language is C++, with the CC, gcc, or g++ compiler. If you want to hand in your project in a different language you must first ask permission. If you want to use a different compiler, you must first ask permission. You must hand in code that must run on the afs machines in GITC 2305. (The Engineering Computing Laboratory I). Project I will probably be a simple example of socket programming (Comer Ch 21, 22), this will be assigned as soon as part of chapter 22 has been covered. (~ April 06), there will be three weeks to do the project. (Due 04/27). If time runs out Ch 22 will not be covered and there will not be a socket programming project. Project II itself consists of two parts. The first part consists of writing a program that reads an IP header in ``pseudo binary'' form, computes the fields (see Comer page 98) and prints out the fields in the header. The second part consists of writing a program that mimics what a router will do with the packet obtained in part 1. Project II will be assigned as soon as the IP packet header has been discussed (~ Febr 10) and will be due ~ March 23. Homework usually is assigned 1 week or more before due, but to be on the safe side look at the ``Assignments'' page every few days, and do ``refresh'' or ``reload'' to check you have the latest version of the file. Homework is handed in by putting it in the envelope on the door of the Internet laboratory, GITC 4325. CIS 456 is the ``undergraduate version'' of CIS 656 (Internet and Higher Level Protocols). Eager beavers among the undergraduates have permission to browse the CIS 656 material on Dr Ott's website (http://web.njit.edu/~ott). Project II above is similar to, but much simpler than, the project in CIS 656. --- 01/20/2004 One of the students asked (after class) about ``hexadecimal numbers''. You have had number representations (binary, octal, decimal, hexadecimal) in CIS 113. However, it is very easy to pick this up. One source (not necessarily the best) is: Forouzan, B.A. Data Communications and Networking (third ed) (Mc Graw-Hill) Appendix B. (pp 865 - 872) (has morec than you need). NO need to read any of the first 864 pages ! There probably are better books. This is the one I have in my book-case. Actually, I think in this class you mostly need to be able to do hexadec - binary and binary - hexadec conversion. One byte = 8 bits = 2 groups of 4 bits = two numbers, each in the range 0 - 15 . = two hexadecimal characters. Binary Hexadec 0000 = 0 0001 = 1 0010 = 2 0011 = 3 etc. 1001 = 9 1010 = A ( = 10) 1011 = B (etc) 1100 = C 1101 = D 1110 = E 1111 = F ( = 15) So, from the iana database: 32923 809B - - Appletalk [XEROX] The ``ethertype'' of appletalk packets is 809B (in hexadec), 1000 0000 1001 1011 (in binary), 11*16^0 + 9*16^1 + 0*16^2 + 8*16^3 = 32923 in decimal. My calculator (Texas Instruments TI-36X) has decimal to hexadec conversion. (Both directions). In my course CIS 451 in the Fall of 2003, there also were students who had problems with number representations. (decimal, binary, hexadec, octal). I wrote some notes. See my website. http://web.njit.edu/~ott click on CIS451.F.03 click on Classnotes Click on Discussion of Quiz and Binary Numbers That page has more than you need (I do not plan to use one's complement, two's complement in CIS 456). Still, that may be a good place to find what you need if hexadecimal representations are a mystry to you. If enough students still have a problem with hexadec we can schedule a short class, outside of of CIS456 hours.