Introduction to computer network: client/ server model, Protocol Suite (ISO/OSI, TCP/IP), Unix Standards (POSIX, Open Group, IETF), Network Utilities (telnet, route, ipconfig, ifconfig, ping, netstat, And ftp) Introduction to programming: wrapper functions, header files, libraries and ports numbers, IP address. Iterative server, concurrent server, networked servers
2. Elementary operating system calls
System call, program, thread, process, Kernel, fork(), exec() and its family, waitpid(), wait(), pipe(), Fifo(), signals (SIGCHLD, SIGINT, SIGIO). IPC Names, creating and opening IPC channels, IPC names, creating and opening IPC channels, IPC permissions
3. TCP/UDP transport layer protocols
TCP (Transmission Control Protocol): features, connection establishment and termination, states in communication (LISTEN, TIME_WAIT, ESTABLISHED, BLOCKED) UDP (user datagram protocol): features, uses, comparison with TCP. TCP and UDP buffer sizes and limitations. SCTP
4. Elementary socket calls
Socket address structure: for IPV4, IPV6, UNIX domain socket and generic socket address structure, value-result argument. Byte ordering and manipulating function: htonl(), htons(), ntohl(), ntohs(), inet_addr(), inet_aton(), inet_ntoa(), inet_pton()
5. Elementary TCP-UDP socket
Socket(), connect(), bind(), listen(), accept(), read(), write(), close(), sendto(), recvfrom(),
6. I/O multiplexing
Introduction, I/O models: blocking I/O, non-blocking I/O, I/O multiplexing, signal driven I/O (SIGIO) and asynchronous I/O model. Select(), poll(), shutdown()
7. Socket options
Getsockopt() and setsockopt() functions, IPV4, IPV6, TCP socket options
8. Name and address conversion
Domain name system, gethostbyname(), gethostbyaddr(), uname(), getservbyname() and getservbyport(), gethostname() functions, socket timeouts
9. Unix domain protocol
Introduction, Unix domain socket address structure, socket pair function, Unix domain stream client-server, UNIX domain datagram client/server
10. Daemon processes, Inetd super servers
Introduction, Sysloged (syslog function), daemon_init function, inetd daemon
11. Broadcast and multicast
Introduction, Broadcast and multicast addresses, comparison between broadcast, unicast and multicast socket options, Unicast versus Broadcast, multicasat versus broadcast on LAN
12. IP layers and raw socket
Introduction, raw socket creation, input and output (ping example)
Lab exercise
There shall be lab strictly using c/c++/Java/Linux
• Linux commands
• IPC (Pipe(), Fifo(), Message Queue)
• TCP, UDP and Unix Domain socket client server program
• TCP echo server and client program
• Fork() System call
• Wait() and waitpid() system call
• Uname(), gethostbyaddr(), gethostbyname(), gethostname() system call
• Shell programming
Reference books
• Stevens W. R., “Unix Network Programming”, Vol-1
• Stevens W. R., “Unix Network Programming”, Vol-II
• Doglous E. Comer, “Internetworking with TCP/IP”, Vol-III
Comments
Post a Comment