Subject: Error in quiz and password problem (This message is being sent to all CPSC 881 students) 1 - There was a typo in the quiz that caused question 7.b.4 to be graded incorrectly. If you lost credit, bring your quiz to class next time and I will correct the error. If you got it right, then you read it they way I meant to type it and so you can keep your credit. (Thanks to Ling Zhang for pointing this out.) 2 - I have received e-mails from some saying they can't login. I tried to make clear in class yesterday that EVERYONE needed to put a password on their account IMMEDIATLY because unprotected accounts are a classic method for hacker intrusion. So after 5 HOURS I reset the passwds to * so that any overnight hackers would be defeated. If you want to come by my office today, I will enable your login while you reset your password. I will also open the window again after class tomorrow. mw Subject: Netcode subdirectories now unprotected (This message is being sent to all CPSC 881 students) There is a version of ping out there which does NOT compile correctly "out of the box". You may feel free to extract code from it though. There are some header files in the netinet subdirectory that you may also find useful. mw Subject: YEOWWW.... PLEASE STOP SMURF ATTACKS ON MY SYSTEM!!!!!!! (This message is being sent to all CPSC 881 students) I detected an unusual network load on jmw (> 600 packets per second for a LONG time)... So I whipped out my tcpdump and here what I found!! 13:11:39.390380 sagin > jmw: icmp: echo request 13:11:39.390419 sagin > jmw: icmp: echo request 13:11:39.390540 jmw > sagin: icmp: echo reply (DF) 13:11:39.391013 sagin > jmw: icmp: echo request 13:11:39.391191 jmw > sagin: icmp: echo reply (DF) 13:11:39.391356 jmw > sagin: icmp: echo reply (DF) 13:11:39.392647 sagin > jmw: icmp: echo request 13:11:39.392927 sagin > jmw: icmp: echo request 13:11:39.393124 sagin > jmw: icmp: echo request 13:11:39.393315 sagin > jmw: icmp: echo request 13:11:39.393494 sagin > jmw: icmp: echo request 13:11:39.393815 sagin > jmw: icmp: echo request 13:11:39.394006 sagin > jmw: icmp: echo request 13:11:39.394201 sagin > jmw: icmp: echo request 13:11:39.394402 sagin > jmw: icmp: echo request 13:11:39.394590 sagin > jmw: icmp: echo request 13:11:39.394774 sagin > jmw: icmp: echo request 13:11:39.394971 sagin > jmw: icmp: echo request 13:11:39.395328 sagin > jmw: icmp: echo request 13:11:39.395515 jmw > sagin: icmp: echo reply (DF) Note time scale here: 5 milliseconds of elapsed time!!! ----------------------------------------------------- So I ran a PS command on sagin and heres what I found ??????? 5990 9.6 0.9 892 140 ? R 04:32 55:48 ./a.out test 7 ??????? 5991 6.8 0.9 892 140 ? R 04:32 39:54 ./a.out test 7 ??????? 5992 6.9 0.9 892 140 ? R 04:32 40:07 ./a.out test 7 ??????? 5993 6.9 0.9 892 140 ? R 04:32 40:10 ./a.out test 7 ??????? 5994 6.9 0.9 892 140 ? R 04:32 40:19 ./a.out test 7 ??????? 5995 9.6 1.0 892 148 ? R 04:32 55:52 ./a.out test 7 ??????? 5996 7.4 1.0 892 148 ? R 04:32 43:10 ./a.out test 7 Id of inconsiderate and/or incompetent student redacted. Note that his processes have been STUCK IN HARD PING LOOPS and have consumed 6+ HOURS of CPU times. I have tried to put a humorous front on this in class but this is EXACTLY this type of mindless behavior that wastes dept resources BIG TIME and should it go OFF campus would be an UNBELIEVABLE EMBARASSMENT to our department and networks class. Lets use some d*mn common sense out there folks or we will surely be back to only READING ABOUT THIS STUFF IN THE BOOK!!!!!! AT NO TIME SHOULD YOUR PROGRAM ISSUE MORE THAN 64 PINGS TO A SPECIFIC DESTINATION IN A SINGLE RUN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! sheesh mw Subject: Assignment clarification (This message is being sent to all CPSC 881 students) Please do NOT fork child processes to perform the pings. When I said simultaneously, I should have said "round-robin". That is, when your program starts up it should issue an initial round of pings to all N targets. Then when it receives a ping from target "j" it should issue another ping to target "j". It should continue to do this until it has received "#ofpings" from all targets. Note that some targets may finish earlier than others. Also, it is possible that some pings will be totally lost. Thus you need to be able to detect and reissue lost pings. A timeout of about 10 seconds is reasonable. mw Subject: Assignment clarification (This message is being sent to all CPSC 881 students) Oops... forgot to create the "turnin" directories. They are out there now. mw Subject: Assignment 2 spec available. (This message is being sent to all CPSC 881 students) Its in assn2.s98 Subject: Assignment 1 ... Things not to do!! (This message is being sent to all CPSC 881 students) It has come to my attention today that at least 2 teams have been using a REALLY bad way of matching pings with responses. Once you start your "pinging" you should have ABSOLUTELY POSITIVELY <> calls to address resolution or address format manipulation routines. That is, no calls should be made to gethostbyANYTHING or inet_ntoa (or any of its ilk.) You should match your response with your pings by simply comparing 32 bit binary internet addresses! If you have turned in your assignment and it contains this problem, I recommend that you correct the problem. Subject: Assignment 1 ... Clarification of clarification (This message is being sent to all CPSC 881 students) If you use some sort of binary "magic cookie" that you send with your ping to match request with response that is fine. The thing that is not fine is name server calls and address format conversions with string matching. mw Subject: Assignment 2 ... Specification corrections (This message is being sent to all CPSC 881 students) The specification for assignment 2 was found to be suffering from a few deficiencies. 1 - It said that the turnin directory was a1 it should have said a2 2 - One of the conditions to be tested for a valid sample was: t2l < t2l It should have been t1l < t2l and finally.. 3 - The latency formula was a 1/way 2/way hybrid and said: B = 2 (J - K) and L = T1 - K ------- --- T2 - T1 B The 2 way formulae should be: B = 2 (J - K) and L = T1 - K ------- --- --- T2 - T1 2 B Thanks to Prasad Koya for pointing these out. Subject: Assignment 1 ... Compilability of your submission (This message is being sent to all CPSC 881 students) I have started grading assignment 1. On my very first project I encountered a problem that I fear I may see more of. Namely makefiles and/or header files that contain full path references to files located outside the turnin directory. These files are properly protected and thus the compile doesn't work. SO... If you are an offender in this regard with respect to either project 1 or project 2 please fix the problem and notify me ASAP. Specifically: (Assume that I am user "westall" and am turning in my assignmnent) 1 - My makefile MUST be located in ~/turnin/a1/westall and my a.out must be created here too. 2 - EVERYTHING my program needs to compile must be either a standard linux header or must be in ~/turnin/a1/westall or a subdirectory thereof. 3 - #includes of the form #include "./netinet.h" are OK #includes of the form #include "/home followed by ANYTHING are not. 4 - Please cleanup the core files. We don't need those in the turnin directory. No lateness penalty will be assessed for this problem THIS TIME. Subject: Assignment 2 ... More bad samples. There is yet another case that should be handled as a "bad sample". For some packet sizes we are getting a negative bandwidth (t2l-t1l < t2s-t1s). Should we still count this as a good sample? Thanks to R. Karthik and V. Vamshi for pointing this one out. Subject: Assignment 2 ... Directories fixed (This message is being sent to all CPSC 881 students) I think. Subject: Assignment 3 ... Clarifications... (This message is being sent to all CPSC 881 students) 1 - icmpd will receive its input (JUST like your "ping" programs) packets through a socket of protocol type "icmp". Its output through "printf" will go to the standard output. 2 - The program "sendsr" should send one datagram of the specified size and should receive NOTHING. The datagram should be received by a normal UDP receive program such as "dgrecv.c" in the class directory. However, to create sendsr you will need to use something like the traceroute source as a basis. That is, you will need to use a raw socket and build the ip header yourself. You will also have to define a build an option structure that follows the header. Your whole packet will look something like: 50 struct opacket 51 { 52 struct ip ip; 53 struct sropt sr; 54 struct udphdr udp; 55 u_char data[9000]; 58 }; In the IP header is where you must set DF. You must also set a few IP addresses up correctly: Suppose you want your packet to take the following path: A -----> B -------> C Then the source address in your IP header should clearly be "A". You now need to setup 3 additional addresses: 1 - The dest address in the IP header 2 - The source route address in the IP header option 3 - The IP address in the sockaddr structure that you pass to sendto. The correct answer to 1, 2, and 3 can be selected from {B, C}. Part of the objective of this exercise is for you to figure out where to use "B" and where to use "C". Hint: Your first guess will probably be wrong -- at least mine was. 3 - Finally, in order to test this thing you need to use some systems that support source routes. The following systems do: jmw3, 130.127.48.1, jmw, sagin, wayne (and probably most solaris suns and possibly all solaris systems.) Linux systems by default DON"T forward or allow the reception of source routed datagrams. jmw3 and sagin are exceptions configured by me to do so. Linux systems that don't support source routes will silently discard your datagram. The clemson gateway router will send you an ICMP message when it discards a source routed datagram. Subject: Assignment 4 is now available.. (This message is being sent to all CPSC 881 students) See assn4.s98 Subject: Assignment 4 turnin directories avaiable (This message is being sent to all CPSC 881 students) Assn 4 should be submitted in the usual spot on sagin. However, evaluation of assn4 will take place on jmw (a solaris sparc machine). Thus you should ensure that your make file and your program itself will work correctly when built and executed on jmw. mw Subject: Assn 2 graded.. (This message is being sent to all 881 students). I have finished grading assignment 2. The test was run from jmw3 and used the following command: a.out 130.127.48.1 www.orst.edu 640 8192 16 v >> ../$1.out I will be sending you your output and your evaluation.. As usual if you can demonstrate that I have incorrectly run or evaluated your program I will be glad to correct the problem. "Reasonable" looking output will be something like: ----------------------------------- Bandwidth and Latency between: 130.127.48.1 www.orst.edu Total number of iterations : 16 Total number of good samples received : 16 Total number of pings sent : 68 Sample t1s(msec) t1l(msec) t2s(msec) t2l(msec) B(bps) L(sec) 1 2.597 6.845 124.781 133.462 3407175 0.061 2 2.784 6.779 115.944 133.855 1085370 0.057 3 2.520 6.643 115.682 133.089 1137006 0.057 4 2.766 6.674 112.409 132.497 933499 0.055 5 2.526 7.200 117.144 138.135 925661 0.057 6 2.518 6.722 115.712 133.356 1123810 0.057 7 2.579 6.563 113.115 132.361 989648 0.055 8 2.519 6.764 114.813 143.114 627869 0.056 9 2.533 6.888 112.544 133.984 884051 0.055 10 2.519 6.539 112.559 133.348 900710 0.055 11 2.706 6.947 113.400 133.220 969510 0.055 12 2.580 6.900 118.386 134.895 1239150 0.058 13 2.699 6.693 113.817 134.152 924302 0.056 14 2.538 6.772 113.430 133.761 938311 0.055 15 2.519 6.643 114.703 135.474 907311 0.056 16 2.535 6.876 112.708 133.066 942999 0.055 Bandwidth: Mean 1121024 StandardDeviation 604817.625 Latency : Mean 0.056 StandardDeviation 0.002 Subject: Assn 4 warning.. (This message is being sent to all 881 students). This hasn't happened yet (I hope!).. But I want to warn you about putting some sort of loop in your program which a program error could lead to your infinitely streaming querys at some poor innocent nameserver. It would be desirable to have some limited timeout and retransmit facilty in your program, but under NO CIRCUMSTANCE should you ever transmit more 24 TOTAL requests in a run of your program. mw Subject: Assn 5 available... (This message is being sent to all 881 students). See assn5.s98 Subject: Reminder... (This message is being sent to all 881 students). Alice Flower will be presenting her work on IP over ATM in Linux at 2:30 today in 302 Edwards Subject: Assn 3 evaluations (This message is being sent to all 881 students). Have been mailed out... If you didn't get one it means I didn't see that you had submitted assn 3. Subject: Assn 5 (This message is being sent to all 881 students). 1 - Do NOT "turn in" the entire SNMP distribution. Do "turn in" only those elements required to "make" your program. 2 - You can test your program by sending requests to hubcap.clemson.edu.. As usual be VERY careful that you avoid some evil infinite loop scenario in which you bombard poor hubcap with 1000's of snmp requests per second! Subject: Grade reports (This message is being sent to all 881 students). You should have received a grade report for 881 if you took the course for credit... In the average section there is a typo that may make it a bit confusing.. It says: Eavg Pavg Aavg Favg It meant: Eavg Qavg Aavg Favg One quiz was dropped. That is, I included your makeups and dropped the THREE lowest marks. All quizzes were scaled to the 100 pt scale before any drops made.. Thus each quiz counts 1/11 of your quiz average. As per the policies statement at the start of the semester the final avg was .25 * exam + .5 * quizzes + .25 * assns. Cutoffs for grades were A = 90 and above, B = 80 and above.