Unit Five Objectives, CSCI 561, Computer Networks I Tobin Maginnis 13-Nov-07 UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 13 - Daemon Processes and the inetd Superserver Omit)Contrast the two pronunciations of "daemon" and explain how they relate to the user's view of the operating system and network. 2)Explain how daemon programs are different from all other programs (define "controlling terminal") and give two examples of communication with a daemon. 3)Describe the four ways a daemon may be executed (started). 4)Describe the role of syslogd (four parts). 5)Describe the role of syslog() and openlog() functions (six parts). 6)Describe the 11 steps required to initialize the run time environment of a daemon. 7)Describe the reasons for using a "superserver" but yet obvious daemons such as WWW and DNS are not created through inetd. 8)Describe the two files that inetd must process to before it can act as a superserver. 9)Give a one sentence description for each of the 11 steps required to initialize inetd and execute a given "sub-server." UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 14 - Advanced I/O Functions 1)Describe the three ways implement socket timeouts, explain the "clumsy" use of signals, and explain why it is necessary over the other two ways. 2)Describe the five ways the recv() and send() services differ from read() and write(). 3)Describe the role of the gather (and scatter) atomic I/O service, describe the structure of its arguments, and explain its relationship to the Nagle algorithm. 4)Contrast the standard I/O library with read/write or recv/send, explain the "problem" and two possible "solutions." UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 17 - ioctl Operations 1)Explain how "ioctl" fits into the operating system. Omit)Describe five of the six uses for ioctl services (see p.460-480). Omit)Describe the odd nature of the SOIOCGIFCONF ioctl service (4 parts). UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 18 - Routing Sockets 1)Define, and support or refute, the use of "ioctl" versus "routing sockets" in OS/network interface design. 2)Summerize the design issues for handling multiple OOB events. 3)Describe the "sysctl" command and service and contrast it with the LINUX "/sys" and "/proc" strategy. UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 24 - Out-of-band Data Omit)Describe "in-band" or "normal" data transmission, give the design tradeoff, and give an example. 2)Contrast the normal data path, the OOB control path, the OOB data path, and explain the synchronization issues with OOB signaling. p.647-648 3)Summarize the design issues for handling multiple OOB data events (five parts). p.661 UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 28 - Raw Sockets 1)Contrast the traditional UNIX definitions of "raw" and "cooked" (e.g., cooked mode tty or raw hard disk). 2)Explain how "raw" sockets differ from "cooked" sockets and give the overall role of raw sockets. p.736-737 3)Describe the three general input constraints for raw sockets, which processes receive raw socket data, the three criteria for reception on a raw socket, and the special effect of protocol 0. p.739 4)Contrast ping (p.741) versus traceroute (p.755) and explain how traceroute was implemented from ICMP primitives. 5)Describe the role of the ICMP message daemon (icmpd). p.769-772 UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 29 - Data Link Access 1)Contrast raw sockets versus datalink access. 2)Describe the relationship of the BPF modules relative to the TCP/IP protocol stack (five parts). p.788 UNIX Network Programming - 3rd edition - W. R. Stevens Chapter 30 - Client-Server Design Alternatives 1)Explain the overall server scalability problem. 2)Explain what variables your authors do and do not control under the term "process control." p.818 3)Describe the the pre-forked server design and explain how it could be vulnerable to the thundering herd problem. p.829-830 4)Describe the select collision problem and solution and explain how it also is vulnerable to the thundering herd problem. p.831-832 Omit)Explain the need for file locking around the accept() function. 6)Describe the three main conclusions in server design alternatives. p.850