UNIT 1
1. What is network protocol? With a neat block diagram explain the network application for
client and server.
2. List out the various approaches used to handle multiple clients at the same time.
3. With a neat block diagram, explain the client and server communication on Local Area
Network using TCP.
4. With a neat block diagram, explain the client and server communication over Wide Area
Network using TCP.
5. List and explain the steps involved in simple daytime client.
6. Develop the ‘C’ program to implement simple daytime client.
7. Comment on the Protocol Independence. Modify the day time client program for IPv6.
8. What are wrapper functions? Develop the wrapper function for the following:
a. Socket function
b. Pthread_mutex_lock
9. List and explain the steps involved in simple daytime server.
10. Develop the ‘C’ program to implement simple daytime server.
11. Write a note on Unix errno value.
12. Explain with a neat block diagram the layers of OSI model and Internet protocol suite.
13. Write a note on 64- bit architectures.
14. Explain the features of the following protocols:
a. IPv4
b. IPv6
c. TCP
d. UDP
e. SCTP
f. ICMP
g. IGMP
h. ARP
i. RARP
j. ICMPv6
k. BPF
l. DLPI
15. List and explain the features of UDP Protocol in detail.
16. List and explain the features of TCP Protocol in detail.
17. Explain with a neat diagrams the following:
a. TCP connection establishment
b. TCP data transfer
c. TCP connection termination
18. Explain the TCP State Transition diagram with a neat diagram.
Unit 2: (Sockets Introduction)
1. With a standard POSIX definition explain socket address porotype for IPv4 (sockaddr_in) and
IPv6 (sockaddr_in6)
2. With a standard POSIX definition explain socket address structure porotype: sockaddr
3. Show the prototype for storage socket address structure: sockaddr_storage
4. Compare the various socket address structures: sockaddr_in (), sockaddr_in6.
5. What are Value- Result Arguments? Explain the scenario with a neat block diagram.
6. Explain the functions which passes socket address structure from the process to the kernel
with a neat block diagram.
7. Explain with a neat diagram the various byte ordering functions.
8. Write a note on the Byte Manipulation Functions.
9. Develop a ‘C’ program to determine host byte order.
10. Illustrate the significance of socket functions for elementary TCP client/server with a neat
block diagram.
11. Explain the following arguments of the socket function:
a. Family
b. Type
c. Protocol
12. Explain the following functions of TCP socket:
a. connect
b. bind
c. listen
d. accept
e. close
13. With a neat block diagram explain the queues maintained by TCP for a listening socket. Also
show the packets exchanged during the connection establishment with these two queues.
14. Illustrate the significance of fork and exec functions.
15. Outline the typical concurrent server with the help of pseudocode.
16. Demonstrate the status of client/ server before and after call to accept returns with a neat
block diagram.
17. Demonstrate the status of client/ server after fork returns with a neat block diagram.
18. Demonstrate the status of client/ server after parent and child close appropriate sockets
with a neat block diagram.
19. Comment on the significance of getsockname and getpeername functions.
20. Develop the pseudocode that returns the address family of a socket.
Self-Learning Topics:
21. List and explain with a neat block diagram the steps associated with simple TCP echo client
and server.
22. Develop the ‘C’ program to demonstrate the TCP echo server: main function
23. Develop the ‘C’ program to demonstrate the TCP echo server: str_echo function
24. Develop the ‘C’ program to demonstrate the TCP echo client: main function
25. Develop the ‘C’ program to demonstrate the TCP echo client: str_cli function
Unit 3: (Elementary UDP Sockets)
1. Illustrate the significance of socket functions for UDP TCP client/server with a neat block
diagram.
2. Explain the following functions of UDP socket:
a. recvfrom
b. sendto
3. List and explain with a neat block diagram the steps associated with simple UDP echo client
and server.
4. Develop the ‘C’ program to demonstrate the UDP echo server: main function
5. Develop the ‘C’ program to demonstrate the UDP echo server: dg_echo function
6. Develop the ‘C’ program to demonstrate the UDP echo client: main function
7. Develop the ‘C’ program to demonstrate the UDP echo client: dg_cli function
8. Outline the summary of TCP client/server with two clients.
9. Outline the summary of UDP client/server with two clients.
10. Develop the ‘C’ program for dg_cli function that verifies returned socket address.
11. Outline the summary of UDP client/server from client’s perspective with a neat block
diagram.
12. Outline the summary of UDP client/server from server’s perspective with a neat block
diagram.
13. Develop the ‘C’ program to demonstrate the UDP dg_cli function that calls connect.
14. Develop the ‘C’ program to demonstrate the UDP dg_cli function that writes a fixed number
of datagrams to the server.
15. Develop the ‘C’ program to demonstrate the UDP dg_echo function that counts received
datagrams.
16. Develop the ‘C’ program to demonstrate the UDP dg_echo function that increases the size of
the socket receive queue.
17. Develop the ‘C’ program for UDP that uses connect to determine outgoing interface.
18. Make use of select function for TCP and UDP Echo server.
19. Illustrate the significance of socket functions for SCTP using one-to-one style with a neat
block diagram.
20. Illustrate the significance of socket functions for SCTP using one-to-many style with a neat
block diagram.
21. With a neat block diagram explain the shutdown function to close an SCTP association.
Self-Learning Topics:
22. Explain the simple SCTP streaming echo client and server with a neat block diagram.
Unit 4: (Advanced Sockets-I)
1. With a neat block diagram explain IPv6 server on dual stack host serving IPv4 and IPv6
clients.
2. Explain with a neat block diagram how the received IPv4 and IPv6 datagrams are processed
depending on the type of receiving socket.
3. Explain with a neat block diagram how the client requests are processed depending on the
address type and socket type.
4. List and explain the numerous ways to start a daemon.
5. List and explain the actions on startup for syslogd Daemon.
6. With a function prototype explain the syslog Function.
Self- Learning Topics:
7. Explain the significance of daemon_init function.
8. List and explain the steps performed by of inetd Daemon.
9. With a neat block diagram explain the inetd descriptors when connection request arrives for
TCP port.
10. Explain the following with a neat block diagram:
a. inetd descriptors in child
b. inetd descriptors after dup2
11. Develop the pseudocode for daemon_inetd function to daemonize process run by inetd.
Unit 5: (Advanced Sockets-II)
1. Outline the important points with respect to unicasting, multicasting and broadcasting.
2. List and explain the routing protocols which makes use of multicasting.
3. Differentiate between unicast and broadcast.
4. Make use of UDP datagram to understand unicasting.
5. Make use of UDP datagram to understand broadcasting.
6. Explain with a neat block diagram how IPv4 and IPv6 multicast addresses are mapped to
Ethernet addresses.
7. What is the format of IPv6 multicast addresses?
8. Illustrate the scope of multicast addresses.
9. Illustrate with a neat block diagram, multicast example of a UDP datagram.
10. Illustrate the NTP packet format and definitions with the help of ntp.h header.