SlideShare a Scribd company logo
1 of 22
Download to read offline
1
MUTHAYAMMAL ENGINEERING COLLEGE, RASIPURAM
DEPARTMENT OF COMPUTER APPLICATIONS
MC7404 – Network programming
UNIT WISE 2 MARKS QUESTIONS AND ANSWERS
UNIT I
1. Define directory and filename.
A directory is a file that contains directory entries. The directory entry contains a file
name along with structure of information describing the attributes of the file. The names
in a directory are called filename. The only two characters that cannot appear in a file
name are / and null character.
2. Define file descriptor.
File descriptors are nonnegative integers that the kernel uses to identify the file being
accessed by a particular process. Whenever the kernel opens an existing file or creates a
new file it returns the file descriptor.
3. Define program and process.
A program is a executable file residing in a disk file. An executing instance of a program
is called a process. Every UNIX process have a unique numeric identifier called the
process ID. The process ID is always a non negative integer.
4. What are the two different time values supported by UNIX?
Calendar time: This value counts the number of seconds which is 00 : 00 : 00 January 1,
1970, coordinated universal time. The data type time_t hold this time values.
Process time: It is also called CPU time and measures the central processor resources
used by process. Process time is measured inc clock ticks. The data type clock_t hold
these time values.
5. Define user CPU time, system CPU time.
The time attributed to user instructions are referred as user CPU time. The time attributed
to kernel, when it executes an behalf of th process is called system CPU time.
6. What are the kernel data structures are used for open files?
 Process table entry
 File table entry
 V node structure

7. Define atomic operation.
An operation composed of multiple steps. If the operation is performed atomically either
all the steps are performed or none is performed.
8. How will you retrieve the file status?
The file status information are retrieved by using the functions stat, fstat, lstat. The stat
function returns a structure of information about the named file. The fstat function
2
obtains information about the file that is already open. The lstat function similar to stat
but when the named file is a symbolic link.
9. List down the different file types.
o Regular file
o Directory file
o Character special file
o Block special file
o FIFO
o Symbolic ink
o Socket
10. What are the macros available for identifying the file type?
 S_ISREG() for regular file
 S_ISDIR() for directory file
 S_ISCHR() for character special file
 S_ISBLK() for block special file.
 S_ISFIFO() For FIFO file
 S_ISLNK() for symbolic link
 S_ISOCK() for socket file
The argument to these macros is the st_mode member from the stat structure.
11. What are the options available to determine the group ID of the new file?
 The group ID of the new file can be the effective group ID of the process.

 The group ID of the new file can be the group ID of the directory in which the file
is being created.

12. Define sticky bit.
The bit S_ISVTX is known as sticky bit. If this bit is set for an executable program file, then
the first time the program was executed a copy of the programmer’s text was saved in the
swap area when the process terminated. The advantage of using this is the program is
loaded into memory faster the next time.
13. Define symbolic link.
A symbolic link is an indirect pointer to a file unlike the hard links. There are no file
system limitations on a symbolic link and what it points to and any one can create a
symbolic link to a read directory. Symbolic links are typically used to move a file or an
entire directory hierarchy to some other location on a system.
14. What are the different times fields maintained for each file?
 Last access time of file data
 Last modification time of file data
 Last change time of i_node status

15. Define the purpose and format of utime function.
The access time and modification time of a file can be changed with the utime function.
3
The general format is
# include <sys/types.h>
# include <utime.h>
int utime (const char * pathname, const struct utimbuf *times);
Returns 0 if OK –1 on Error
16. What are the directory routines available in POSIX . 1?
# include <sys/types.h>
#include <dirent.h>
DIR *opendir ( const char *pathname)l
Returns pointer if OK NULL on
error struct dirent *readdir(DIR *dp);
Returns pointer if OK , Null at end of directory or error
void rewinddir(DIR *dp);
int closedir(DIR *dp);
Returs 0 if OK –1 on error
17. What is the major goal of buffering?
To use the minimum number of read and write calls. It tries to do its buffering
automatically for each I/O stream.
18. What are the different types of buffering is supported by UNIX?
 Fuly buffered : In this case the actual I/ O takes place when the standard I/ O
buffer is filled
 Line buffered: In this case the standard I/O library performs I/o when a new line
character is encountered on input or output.
 Un buffered: The standard I/O library does not buffer the characters.

19. What are the different types of unformatted I/O?
 Character at a time I/O
 Line at a time I/O
 Direct I/O

20. How will you position a standard I/O stream?
 ftell, fgetpos: to retrieve the current byte position
 fseek ,fsetpos: to move the file pointer to specified place

21. List down the contents of password file.
 User name
 Encrypted password
 Numerical user ID and group ID
 Comment field
 Initial working directory
 Initial shell

4
22. What do you mean by shadow password?
The duplicate copy of password file is called password file. Minimally this file has the
user name and the encrypted password. Other information relating to the password is also
stored here. For example system with shadow passwords often required to choose a new
password at certain intervals.
23. What are the different functions for system’s data file?
o A get function that reads the next record, opening the file if necessary. These
functions normally return a pointer to the structure. A null pointer is returned
when the end of file is reached.
o A set function opens the file and rewinds the file.
o An end entry that closes the data file.
24. How will you identify the system in POSIX.1?
The system is identified by using the function uname. This function return information on
the current host and operating system.
25. List down the different time conversion functions?

 gmtime
 local time
 mktime
 asctime
 ctime
 strftime

26. List down the functions for process termination.
The normal terminations are return from main, calling exit, calling _ exit. The abnormal
terminations are by calling abort, terminated by a signal
27. Write down the contents of C program in memory layout.
Text segment, initialized Data segment, uninitialized, stack, heap
28. What is the purpose of memory allocation functions and what are the functions
available for memory allocation?
The memory allocation functions are used to allocate, reallocate, and deallocate
memory locations. The functions available for memory allocation are malloc, calloc,
realloc and free.
29. What are the rules govern the changing of resource limits?
 A soft limit can be changed by any process to a value less than are equal to its
hard limit
 Any process can lower its hard limit to a value greater than are equal to its soft
limit
 Only a super user process can raise a hard limit.

30. Write down the functions those who are return a process ID.
The functions return process ID is Getpid, getppid, getuid, geteuid, getgid, getegid
5
31. Define zombie process.
The process that has terminated but whose parent has not yet waited for it called
zombie process.
32. What is the difference between wait and waitpid function?
 Wait can block the caller until a child process terminates while waitpid has
no option that prevents it from blocking.
 Waitpid doesn’t wait for the first child to terminate- it has a number of
options that control which process it waits for.

33. What are the additional features available for waitpid comparing to wait?
 Waitpid function waits for one particular process
 Waitpid provides a non blocking version of wait
 Waitpid supports job control

34. What is the purpose of exec functions?
When a process calls one of the exec functions, then that process is completely replaced
by the new program. The new program starts execution from main function. The
processed does not change across an exec because a new process is not created. But this
function replaces the current process with new program from disk.
35. Write down the rules for changing user ID?
 The process must have super user privileges

 If the process does not have super user privileges, but uid equals either the real
user ID or the saved set user ID

36. What are the uses of interpreter files?
 Interpreter files hide the fact that certain programs are scripts in some other
language.
 Interpreter scripts provide an efficiency gain
 Interpreter scripts let us write shell scripts using shells other than / bin/ sh

37. Define process group.
A process group is a collection of one or more processes. Each process group has
a unique process ID. A function getpgrp returns the process group id of the calling
process. Each process group have a leader. The leader is identified by having its process
group ID equal its process ID. A process joins an existing process group or creates a new
process group by calling setpgid.
38. Define session.
A session is a collection of one or more process groups. A process establishes a
new session by calling setsid function. This function returns process group id if OK.
39. What do you mean by signal?
Signals are software interrupts. Signals provide a way of handling asynchronous
events: a user at a terminal typing the interrupt key to stop a program or the next program
in the pipeline terminating prematurely.
6
40. What are the conditions to generate a signal?
 The terminal generated signals occur when users press some terminal keys.
 The hardware exceptions generate signals
 The kill(2) function allows a process to send any signal to another process or
process group.
 The kill(1) function allows a process to send
 Software conditions generate signals

41. Define pending signal.
A signal is generated for a process when a process event that causes the signal
occurs. The signal is delivered to a process when the action for a signal is taken. During
the time between the generation of signal and its delivery is referred as pending.
42. Define the purpose of kill and raise functions.
The kill function sends a signal to a process or a group of processes. The raise
function allows the process to send a signal to it.
43. What is the purpose of alarm and pause functions.
The alarm function allows setting a timer that will expire at a specific time in the
future. When the timer expires the SIGALRM signal is generated. If we ignore or don’t
catch this signal its default action is terminate the process. The pause function suspends
the calling function until signal is caught.
44. Define the different modes of terminal I/ O.
Canonical mode input processing. In this mode terminal input is processed as
lines. The terminal driver returns at most one line per read request. Default mode Non
canonical mode input processing. The input characters are not assembled into lines. Used
by programs that manipulates the screen.
45. What are the different problems used in fork function?
Fork is expensive because memory and all descriptors are duplicated in the child. Inter
process communication is required to pass information between the parent and the child
after the fork.
46. What do you mean by thread?
Threads are light weight processes. All threads with in the process share the same
global memory. This makes communication simple but necessitates synchronization. All
threads with in a process share process instructions, data, open files, signal handlers and
signal descriptors, current working directory, user and group Ids.
47. Define pipe.
Pipe were the first widely used inter process communication method available
both within programs and from the shell. The problem with pipe is that they are usable
only between processes that have a ancestor, this problem is solved with the named pipes
or FIFOs
7
48. List down the types of IPC.
 Message Queues
 Semaphore
 Shared memory

49. Explain the purpose of ftok function with format
This function used to generate a IPC key. The general format for this function is
# include<sys/ipc.h>
key_t ftok(const char *pathname, int id);
This function takes information derived from the pathname, the files inode
number and the lower order 8 bits of id.
50. Explain the purpose of popen and pclose functions with format.
The popen function creates a pipe and initiates another process that either reads
from the pipe or writes to the pipe.
51. Define message queue.
Message queue is a linked list of messages. It is used to make a communication
between the related or unrelated processes
52. What are the attributes in the message on the message queue?
 An unsigned integer priority
 The length of the data portion of the message
 The data

53. What are the differences between POSIX message queue and system V
message queue?
 POSIX message queue always returns the oldest message of the highest priority,
But the system V message queue can return a message of any desired priority.
 Posix message queues allow the generation of a signal or the initiation of a thread
when a message is place onto an empty queue, where as nothing similar is
provided by system V message queues.

54. What is the purpose of mq_open, mq_close functions?
The mq_open functions open an existing Posix message queue or create a new
message queue. The mq_close function is used to close the opened message
queue.
55. What is the purpose of mq_unlink functon?
The mq_unlink function is used to delete a Posix massage queue permanently
from the system. But the message queue is deleted only the reference count for the queue
reached 0.
56. How will you send and receive an message to the POSIX message queue?
The posix message queue can pass a message to the queue by calling the function
mq_send with the parameters are the descriptor,character array pointer, length of the
8
message and priority of a message. The posix message queue can retrieve a message to
the queue by calling the function mq_receive with the parameters are the descriptor,
character array pointer, length of the message and priority of a message.
57. What are the informations available in system V message queue?
Read write permissions, pointer to first message, pointer to last message, number
of bytes currently in queue, Number of messages in the queue, maximum number of
bytes allowed, process id of last message send, process id of last message receive,
process time of last message send, time of last message receive, time of last message
control function called.
58. List down the system calls related to system V message queue with desription.
 msgget- to create a new message queue or open an existing message queue.
 msgsnd – to send a message to a queue
 msgrcv – to receive a message from a message queue.
 msgctl – to provide a variety of control operations in a message queue.

59. What are the features provided by type field in the system V message queue?
 Used to identify a message, allowing multiple processes to multiplex messages
onto a single queue.
 Used as a priority field

60. What is the purpose of synchronization? List the building blocks of
synchronization?
Synchronization normally needed to allow the sharing of data between threads
and processes. Mutexes and condition variables are the building blocks of
synchronization.
61. What is the use of Mutex?
Mutex is used to protect a critical region, to make certain that only one thread at a
time executes the code within the region.
62. List down the function formats for lock and unlock a region.
#include<pthread.h>
int pthread_mutex_lock(pthread_mutex_t *mptr); int
pthread_mutex_trylock(pthread_mutex_t *mptr); int
pthread_mutex_unlock(pthread_mutex_t *mptr);
63. Define bounded buffer problem or producer- consumer problem.
One or more produces are creating data items are then processed by one or more
consumers.
64. What are the rules for allocating read- write locks?
 Any number of threads can hold a given read-write lock for reading as long as no
thread holds the read write lock for writing.
 A read-write lock can be allocated for writing only if no thread holds the
readwrite lock for reading or writing.


9
65. What do you mean by critical region?
The critical region access or update one or more pieces of data that are shared
between threads.
66. What do you mean by semaphore? List different type of semaphores.
Semaphore is a primitive used to provide synchronization between various processes or
between the various threads in a given process.
The types of semaphore are
 Posix named semaphores
 Posix memory based semaphore
 System V semaphores.

67. List down the operations performed on a semaphore by semaphore.
 Create a semaphore
 Wait for a semaphore
 Post to a semaphore

68. Write down the differences between the semaphore and mutexes and condition
variables.
The thread that locked the mutex, where as a semaphore the same thread that did
the semaphore wait need not perform post, must always unlock a mutex. A mutex is
either locked or unlocked.
69. Define shared memory.
It is the fastest form of IPC. It is a memory shared by unrelated processes. Once the
memory is mapped into the address space of the process that are sharing the memory
region no kernel involvement occurs in placing data between the processes.
70. List down the purpose for using the function mmap.
 To provide a memory mapped I/O
 To provide anonymous memory mappings
 To provide shard memory between unrelated processes

71. What are the different ways to share memory between unrelated processes?
 By using memory mapped files
 By using shared memory objects
10

UNIT II
1. Define sockets
A socket is a construct to provide a communication between computers. It hides the
underlying networking concepts and provides us with an interface to communicate
between computers.
2. Define value result arguments.
The way in which the length of the structure passed is depends on which direction the
structure is being passed from process to kernel or vice versa. The size parameter is
passed by value when the function is called and passed by result when the function
returns. This type of argument is called value result argument.
3. Define little byte endian order,big byte endian order.
 Little byte endian order: in sixteen bit integer number the low order byte at the
starting address.
 Big byte endian order: in sixteen bit integer number the high order byte at the
starting address.

4. Write down the different byte manipulation functions.
Bzero,bcopy,bcmp,memset,memcpy,memcmp
5. What is the purpose of address conversion functions?
The functions inet_aton,inet_ntoa and inet_addr convert IPv4 address between
dotted decimal string and its 32-bit network byte ordered binary value. The functions
inet_pton,inet_ntop handle both IPv4 and IPv6 address. The letters p and n stands for
numeric and presentation.
6. What are the different options and type values available for creating a socket?
The different option values are AF_INET, AF_INET6, AF_LOCAL, AF_ROUTE,
AF_KEY. The different type values are SOCK_STREAM, SOCK_DGRAM,
SOCK_RAW.
7. What is the purpose of connect and bind function?
The connect function is used by a TCP client to establish a connection with a TCP server.
The bind function assigns a local protocol address to a socket.
8. What are the actions performed by listen function.
The listen function is called by TCP server and it performs the following actions.
It converts the unconnected socket into a passive socket, indicating that the kernel should
accept incoming connection requests directed to this socket. It specifies the maximum
number of connections that the kernel should queue for this socket.
9. Give the syntax of connect( ) in TCP
int connect(int sockfd, const struct sockaddr *servaddr, socklen_t
addrlen); connect to server
sockfd is socket descriptor from socket( )
servaddr is a pointer to a structure and addrlen is the length of structure.
11
10. Give the syntax of listen( ) in TCP.
listen(int sockfd, int backlog)
sockfd => socket descriptor from socket( )
backlog => number of connection requests queued by system while waiting
for server to accept( ) an incoming connection.
11. Give the syntax of sendto( ) systemcall in UDP.
sendto( int sockfd, char *buffer, int nbytes, int flags, struct sockaddr *toaddr,
int toaddr_len);
sockfd => socket on which to send datagram
buffer => address of the buffer to send
nbytes => number of bytes to send
flags => special send options
toaddr => internet address and port to use
toaddr_len => length in bytes of toaddr structure
12. What is the processing function of an Echo Client?
It reads a line of text from standard input, writes it to the server, reads back the
server’s echo of the line and outputs the echoed line to standard output.
13. Give an example of an Echo Server
 The client reads a line of text from its standard input and writes the line to the server
 The server reads the line from its network input and echoes the line back to the client
 The client reads the echoed line and prints it on its standard output.

14. Differentiate system call and a function
 The system call is an entry point into the kernel
 Function is used to describe what appears to the user to the functions, even though
on some implementations they may be system calls.

15. Define Source client.
The program performs a fixed number of writes to a network of some specified size.
Source client server
TCP connection OR
UDP datagrams
16. Define Sink Server.
The program performs a fixed number of reads from a network.
Sink server server
TCP connection OR
UDP datagrams
12
17. Define tcpdump program.
This program reads packets from a network and prints lots of information about
the packets. It also has the capability of printing only packets that match some
criteria that we specify.
Eg: tcpdump ‘(udp and port daytime) or icmp’
Prints only the UDP datagrams with a source or destination port of 13(the
daytime server) or ICMP packets.
18. Mention the uses of netstat program
It shows the status of networking endpoints
 It shows the multicast groups that a host belongs to on each interface
 It shows the per-protocol statistics
 It displays the routing table and the interface information.
19. Define concurrent servers and iterative servers.
The servers that can handle multiple clients simultaneously are called concurrent
servers. The servers that can handle multiple clients serially are called concurrent servers.
20. What are the uses of fork functions?
A process makes a copy of itself so that one copy can handle one operation does
another task.
A process wants to execute another program, that is done by one of the
processes by calling exec to replace itself with the new program.
13
UNIT III
1. Depicts this simple client/server along with the functions used for input and
output.
2. Differentiate TCP from UDP.
 TCP is a sophisticated, reliable byte-stream protocol
 TCP is connection-oriented protocol
 UDP is a simple, unreliable datagram protocol
 UDP is connection-less protocol
3. Define IPV6.
IPV6 was designed as a replacement for IPV4. This is due to a larger address
comprising 128 bits. IPV6 provides packet delivery service for TCP, UDP, SCTP
and ICMPv6
4. What is ICMP?
Internet Control Message Protocol handles error and control information between
routers and hosts. These messages are generated by and processed by the TCP/IP
networking software.
5. What is ARP?
Address Resolution Protocol maps an IPV4 address into a hardware address. ARP
is used on broadcast networks such as Ethernet, token ring and FDDI and is not
needed on point-to-point networks.
6. Give a brief note on TCP three-way handshake.
 Server-Passive open (SYN J)
 Client- Active open (SYN K, ACK J+1)
 Acknowledgement (ACK K+1)
The minimum number of packets required for this exchange is three. Hence it is
called TCP’s three-way handshake.
7. Define MSS option in TCP.
With this option, the TCP sending the SYN announces its maximum segment size,
the maximum amount of data that it is willing to accept in each TCP segment, on this
connection. The sending TCP uses the receiver’s MSS value as the maximum
size of a segment that it sends.
8. What are sockets?
 A socket is an endpoint for communication
 Socket is an abstraction for an endpoint of communication that can be
manipulated with a file descriptor.
 Scope of a socket is the communication domain in which it exists.

14
9. Differentiate Well-known ports from ephemeral ports
 Servers listen on well-known ports . Well-known ports are 0- 1023. In
Unix these are reserved ports.
 Clients use ephemeral (ie, transient) ports. These ports are usually
assigned by TCP or UDP to the client
10. Why should an application in a network call ―shutdown‖ with an argument of
SHUT_RDWR instead of just calling close?
If we use the close() to release the connection, the socket fd is no longer available
in the kernel. It will immediately delete the socket fd.
But in shutdown() with has an argument of SHUT_RDWR, we can’t read or write
from the socket but the socket is still available in the kernel.
11. List down the different I/O models.
Blocking I/O
Nonblocking I/O
I/O multiplexing
Signal driven I/O
Asynchronous I/O
12. Define synchronous and asynchronous I/O operations.
1. A synchronous I/ O operations causes the requesting process to be blocked
until I/O operations complete
2. An asynchronous I/O operation does not cause the requesting process to be
blocked.
13. Write down any 8 generic socket options
SO_BROADCAST, SO_DEBUG, SO_ERROR, SO_DONTROUTE,
SO_KEEPALIVE, SO_LINGER, SO_RCVBUF, SO_SNDBUF
14. Give the syntax to get and set the socket options.
include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname, void *optval,
socklen_t *optlen);
int setsockopt(int sockfd, int level, int optname, const void
*optval socklen_t optlen);
15. What is called socket state?
Some socket options have timing considerations about when to set or fetch
the option versus the state of the socket. The following socket options are inherited
by a connected TCP socket from the listening socket.
SO_DEBUG, SO_DONTROUTE, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE,
SO_RCVBUF, SO_RCVLOWAT, SO_SNDBUF, SO_SNDLOWAT, TCP_MAXSEG, and
TCP_NODELAY.
15
16. What is the usage of IP_HDRINCL?
 IP always calculates and stores the IP header checksum.
 If we set the IP identification field to 0, the kernel will set the field.

 If the source IP address is INADDR_ANY, IP sets it to the primary IP address
of the outgoing interface.
 Setting IP options is implementation-dependent.

 Some fields must be in host byte order, and some in network byte order.
This is implementation-dependent, which makes writing raw packets with
IP_HDRINCL not as portable.

17. What is the usage of SO_LINGER?
The SO_LINGER socket option lets us change this default. This option requires the
following structure to be passed between the user process and the kernel. It is defined
by including <sys/socket.h>.
struct linger
int l_onoff; /* 0=off, nonzero=on */
int l_linger; /* linger time, POSIX specifies units as
seconds */
};
18.Define polling.
When an application sits in a loop calling RECVFROM on a nonblocking descriptor, it
is called polling. The application is continually polling the kernel to see if some
operation is ready. The disadvantage is the waste of CPU time.
19.When does the error EWOULDBLOCK occur.
It occurs in a non blocking I/O model. When we call recvfrom system call and if
there is no data to return, the kernel immediately returns an error of
EWOULDBLOCK. When a datagram is ready, recvfrom returns successfully.
20.What is the use of select function?
The select function allows the process to instruct the kernel to wait for any one of
multiple events to occur and to wake up the process only when one or more of these
events occurs or when a specified amount of time has passed.
21. Define Signal-driven I/O.
We can use signals, telling the kernel to notify us with the SIGIO signal when the
descriptor is ready. This is called signal-driven I/O.
22. Define TCP_KEEPALIVE Socket Option.
It specifies the idle time in seconds for the connection before TCP starts sending
keepalive probes. The default values must be atleast 7200 seconds, which is 2
hours. This option is enabled only if SO_KEEPALIVE socket option is enabled.
23. Give any two Socket options in IPv6 .
IPv6_ADDFORM – This option allows a socket to be converted from IPv4
to IPv6 or viceversa.
IPv6_CHECKSUM – This socket option specifies the byte offset into the user
data of where the checksum fields is located.
16
24. Define fncntl().
fcntl stands for "file control" and this function performs various
descriptor control operations. Before describing the function and how it affects a
socket
#include <fcntl.h>
int fcntl(intfd, int cmd, ... /* int arg */ );
Returns: depends on cmd if OK, -1 on error
Each descriptor (including a socket) has a set of file flags that is fetched with the
F_GETFL command and set with the command. The two flags that affect
a socket are
 O_NONBLOCK—nonblocking I/O
 O_ASYNC—signal-driven I/O

17

UNIT IV
1. Define UDP sockets.
UDP is a connection less unreliable, datagram protocol. In UDP the client does
not establish connection with a server. Instead the client just sends a datagram to the
server.
2. Give the syntax for recvfrom() and sendto().
#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int
flags, struct sockaddr *from, socklen_t *addrlen);
ssize_t sendto(int sockfd, const void *buff, size_t nbytes, int
flags, const struct sockaddr *to, socklen_t addrlen);
Both return: number of bytes read or written if OK, –1 on error
3. How accept() and connect() replaced by recvfrom() and sendto()?
The final two arguments to recvfrom are similar to the final two
arguments to accept: The contents of the socket address structure upon return tell
us who sent the datagram (in the case of UDP) or who initiated the connection (in
the case of TCP). The final two arguments to sendto are similar to the final two
arguments to connect: The socket address structure is filled with the protocol
address of where to send the datagram (in the case of UDP) or with whom to
establish a connection (in the case of TCP).
4. Define TCP sockets.
TCP sockets provide a simple and effective way to provide connection
oriented client server networking.
5. What is called lost datagrams?
If a client datagram is lost (say it is discarded by some router between the client
and server), the client will block forever in its call to recvfrom in the function
dg_cli, waiting for a server reply that will never arrive. Similarly, if the client
datagram arrives at the server but the server's reply is lost, the client will again
block forever in its call to recvfrom. A typical way to prevent this is to place a
timeout on the client's call to recvfrom.
6. What is called an ICMP error?
ICMP error is an asynchronous error. The error was caused by sendto, but
sendto returned successfully. This ICMP error message contains the IP header
and UDP header of the datagram that caused the error. ICMPv4 and ICMPv6
error messages always contain the IP header and all of the UDP header or part of
the TCP header to allow the receiver of the ICMP error to determine which socket
caused the error.
18
7. Differentiate Connected and unconnected socket.
 An unconnected UDP socket, the default when we create a UDP socket
 A connected UDP socket, the result of calling connect on a UDP socket

8. How TCP is multiplexed with UDP?
Create listening TCP socket
 Create UDP socket
 Establish signal handler for SIGCHLD
 Prepare for select
 Handle arrival of datagram

9. What is the purpose of DNS?
The domain name system or DNS is used primarily to map between host names
and IP addresses. DNS entries are known as resource records (RRs).
10. What is the purpose of resolvers?
The client and server applications contact a DNS server by calling functions in a
library known as resolver. The common resolver functions are gethostbyname and
gethostbyaddr.
11. Define Resource Records.
Entries in the DNS are known as resource records(RR). The following are the
types of Resource Records.
 A
 AAAA
 PTR
 MX
 CNAME
12. Define CNAME.
CNAME stands for ―canonical name‖. common use is to assign
CNAME records for common services such as ftp and www.
Eg:ftp IN CNAME linux.unpbook.com
www IN CNAME linux.unpbook.com
13. Give the syntax of to get the host and service addresses and port number.
#include <netdb.h>
struct hostent *gethostbyname (const char *hostname);
struct hostent *gethostbyaddr (const char *addr, socklen_t
len, int family);
struct servent *getservbyname (const char *servname, const
char *protoname);
struct servent *getservbyport (int port, const
char *protoname);
19
14. Compare TCP with UDP
 TCP uses SOCK_STREAM and UDP uses SOCK_DGRAM

 TCP uses accept() to accept the connections from client and UDP replaces
accept() with recvfrom()
 TCP uses connect() to connect to the server and UDP replaces connect()
with sendto()

15. Depict Simple echo client/server using UDP.


20
UNIT V
1. What are the additional facilities supported by raw sockets?
Raw sockets are used to read and write ICMPv4, IGMPv4, and ICMPv6 packets.
With the raw socket a process can read and write IPv4 data grams with an IPv4 protocol
field that is not processed by kernel. With a raw socket a process can build its own IPv4
header using the IP_HDRINCL socket option
2. How do you create a raw socket?
The socket function creates a raw socket when the second argument is
SOCK_RAW. The third argument (the protocol)is normally nonzero.
sockfd= socket(AF_INET, SOCK_RAW, protocol);
where protocol is one of the constants, IPPROTO_xxx defined by including the
<netinet/in.h> header such as IPPROTO_ICMP. Only the superuser can create a raw
socket.
3. Mention the use of IP_HDRINCL option in a raw socket.
 If IP_HDRINCL option is not set, the starting address of the data for the
kernel to send specifies the first byte following the IP header because the kernel will
build the IP header and prepend it to the data from the process.
 If IP_HDRINCL option is set, the starting address of the data for the
kernel to send specifies the first byte of the IP header. The amount of data to
write must include the size of the caller’s IP header.
4. What are the inputs passed to a raw socket?
 Most ICMP packets are passed to a raw socket after the kernel
has finished processing the ICMP messages.
 All IGMP packets are passed to a raw socket after the kernel has
finished processing the IGMP messages.
 All IP datagram with a protocol field that the kernel doesnot understand
are passed to a raw socket.
5. Differentiate fgets and fputs function
 The function fgets reads a line of text from the standard input
 The function fputs prints the line on the standard output.
6. What are the differences between raw IPv6 sockets with ordinary raw output?
 All fields in the protocol send or received on a raw IPv6 socket are in network
byte order.
 There is no equivalent of IP_HDRINCL socket option with IPv6.
 Checksums on raw Ipv6 sockets are handled differently using the IPv6 socket
option
7. What are the different level constants are available for socket option
functions?
SQL-SOCKET, IPPROTO_IP, IPPROTO_ICMPV6, IPPROTO_IPV6,
IPPROTO_TCP.
8. What are the functions available for set and retrieve the socket options?
The functions for set and retrieve socket options are getsockopt and setsockopt
21
9. What are the different system tracing tools are available?
 SVR streams based socket library
 BSD kernel sockets
 Solaris 2.6 kernel sockets
10. Describe different TCP/IP services.
 echo server return whatever the client sends
 discard server discards whatever the client sends
 daytime server returns the date and time in a human readable form

11. What is the purpose of sock program?
It is used to generate special case conditions that can help us visualize various
scenarios without writing individual test programs.
12. List down the different operation modes for sock program.
 Standard input, standard output client
 Standard input, standard output server
 Source client
 Sink server

13. What are the different functions done by TCP echo client server program?
 The client reads a line of text from its standard input and writes it to the server
 The server reads the line from the network input and echoes the line back to
the client
 The client reads the echoed line and prints it on its standard output

14. What is the purpose of trace route program?
The trace route program allows us to determine the path that IP datagrams follow
from our host to some other destination.
15. What is the purpose of ping program?
The ping program is a utility program that is used to fetchecho replies from the
server.
16. What is the purpose of netstat program?
 It shows the status of networking endpoints.
 It shows the multicast groups that a host belongs to on each
interface.
 It shows the pre protocol statistics with the –s option.
 It displays the routing table with the –r option and the interface information
with the –i option
17. What is the goal of ping program?
The goal of Ping program is to understand the network programming concepts
and techniques without being distracted from some common programming
disease known as creeping featurism.
22
18. What are the 2 parts in operating a ping program?
 The first part reads everything received on a raw socket, printing the ICMP
echo replies
 The second half sends an ICMP echo request once per second. The
second part is driven by a SIGALRM signal once per second.

19. Mention the advantage of traceroute.
Trace route lets us determine the path that IP datagrams follow from our host to
some other destination.
20. What are the two proto structures defined in trace route?
o IPv4
o IPv6

21. What are the 2 sockets needed in a trace route program
 A raw socket on which we read all returned ICMP messages
 An UDP socket on which we send the probe packets with the increasing
TTLs.
22. What is a thread?
When a program is started by exec, a single thread is created, called the initial thread
or main thread. Additional threads are created by pthread_create.
#include <pthread.h>
int pthread_create(pthread_t *tid, const pthread_attr_t *attr,
void *(*func) (void *), void *arg);
Returns: 0 if OK, positive Exxx value on error

More Related Content

What's hot

The Linux Kernel Implementation of Pipes and FIFOs
The Linux Kernel Implementation of Pipes and FIFOsThe Linux Kernel Implementation of Pipes and FIFOs
The Linux Kernel Implementation of Pipes and FIFOsDivye Kapoor
 
Internal representation of files ppt
Internal representation of files pptInternal representation of files ppt
Internal representation of files pptAbhaysinh Surve
 
AOS Lab 2: Hello, xv6!
AOS Lab 2: Hello, xv6!AOS Lab 2: Hello, xv6!
AOS Lab 2: Hello, xv6!Zubair Nabi
 
Unit 2
Unit 2Unit 2
Unit 2siddr
 
IPC mechanisms in windows
IPC mechanisms in windowsIPC mechanisms in windows
IPC mechanisms in windowsVinoth Raj
 
Linux System Programming - File I/O
Linux System Programming - File I/O Linux System Programming - File I/O
Linux System Programming - File I/O YourHelper1
 
What is-a-computer-process-os
What is-a-computer-process-osWhat is-a-computer-process-os
What is-a-computer-process-osManish Singh
 
Char Drivers And Debugging Techniques
Char Drivers And Debugging TechniquesChar Drivers And Debugging Techniques
Char Drivers And Debugging TechniquesYourHelper1
 
Process creation and termination In Operating System
Process creation and termination In Operating SystemProcess creation and termination In Operating System
Process creation and termination In Operating SystemFarhan Aslam
 
Unit 1
Unit 1Unit 1
Unit 1siddr
 
Linux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/OLinux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/OYourHelper1
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filtersAcácio Oliveira
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filtersAcácio Oliveira
 
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3WE-IT TUTORIALS
 

What's hot (17)

The Linux Kernel Implementation of Pipes and FIFOs
The Linux Kernel Implementation of Pipes and FIFOsThe Linux Kernel Implementation of Pipes and FIFOs
The Linux Kernel Implementation of Pipes and FIFOs
 
Spsl unit1
Spsl   unit1Spsl   unit1
Spsl unit1
 
Internal representation of files ppt
Internal representation of files pptInternal representation of files ppt
Internal representation of files ppt
 
Spsl by sasidhar 3 unit
Spsl by sasidhar  3 unitSpsl by sasidhar  3 unit
Spsl by sasidhar 3 unit
 
AOS Lab 2: Hello, xv6!
AOS Lab 2: Hello, xv6!AOS Lab 2: Hello, xv6!
AOS Lab 2: Hello, xv6!
 
Unit 2
Unit 2Unit 2
Unit 2
 
IPC mechanisms in windows
IPC mechanisms in windowsIPC mechanisms in windows
IPC mechanisms in windows
 
Linux System Programming - File I/O
Linux System Programming - File I/O Linux System Programming - File I/O
Linux System Programming - File I/O
 
What is-a-computer-process-os
What is-a-computer-process-osWhat is-a-computer-process-os
What is-a-computer-process-os
 
Char Drivers And Debugging Techniques
Char Drivers And Debugging TechniquesChar Drivers And Debugging Techniques
Char Drivers And Debugging Techniques
 
Process creation and termination In Operating System
Process creation and termination In Operating SystemProcess creation and termination In Operating System
Process creation and termination In Operating System
 
Unit 1
Unit 1Unit 1
Unit 1
 
Linux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/OLinux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/O
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filters
 
101 3.2 process text streams using filters
101 3.2 process text streams using filters101 3.2 process text streams using filters
101 3.2 process text streams using filters
 
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3
 
Linuxbasiccommands
LinuxbasiccommandsLinuxbasiccommands
Linuxbasiccommands
 

Similar to Mc7404 np final

Ppt project process migration
Ppt project process migrationPpt project process migration
Ppt project process migrationjaya380
 
Linux admin interview questions
Linux admin interview questionsLinux admin interview questions
Linux admin interview questionsKavya Sri
 
UNIT-2-Process-Management.pdf
UNIT-2-Process-Management.pdfUNIT-2-Process-Management.pdf
UNIT-2-Process-Management.pdfaakritii765
 
Assignment unix & shell programming
Assignment  unix  & shell programmingAssignment  unix  & shell programming
Assignment unix & shell programmingMohit Aggarwal
 
Linux@assignment ppt
Linux@assignment pptLinux@assignment ppt
Linux@assignment pptRama .
 
ipc.pptx
ipc.pptxipc.pptx
ipc.pptxSuhanB
 
02 fundamentals
02 fundamentals02 fundamentals
02 fundamentalssirmanohar
 
18CS56-UP-Module 3.pptx
18CS56-UP-Module 3.pptx18CS56-UP-Module 3.pptx
18CS56-UP-Module 3.pptxChenamPawan
 
Linux Operating System
Linux Operating SystemLinux Operating System
Linux Operating SystemKunalKewat1
 
Week 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docxWeek 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docxmelbruce90096
 

Similar to Mc7404 np final (20)

Unix1
Unix1Unix1
Unix1
 
Java IO
Java IOJava IO
Java IO
 
Ppt project process migration
Ppt project process migrationPpt project process migration
Ppt project process migration
 
Linux admin interview questions
Linux admin interview questionsLinux admin interview questions
Linux admin interview questions
 
Linux security
Linux securityLinux security
Linux security
 
UNIT-2-Process-Management.pdf
UNIT-2-Process-Management.pdfUNIT-2-Process-Management.pdf
UNIT-2-Process-Management.pdf
 
Systemcall1
Systemcall1Systemcall1
Systemcall1
 
Assignment unix & shell programming
Assignment  unix  & shell programmingAssignment  unix  & shell programming
Assignment unix & shell programming
 
Question bank unit i
Question bank unit iQuestion bank unit i
Question bank unit i
 
Linux@assignment ppt
Linux@assignment pptLinux@assignment ppt
Linux@assignment ppt
 
Tutorial 2
Tutorial 2Tutorial 2
Tutorial 2
 
Windows Kernel-
Windows Kernel-Windows Kernel-
Windows Kernel-
 
ipc.pptx
ipc.pptxipc.pptx
ipc.pptx
 
Unix-module3.pptx
Unix-module3.pptxUnix-module3.pptx
Unix-module3.pptx
 
Lab 1 Essay
Lab 1 EssayLab 1 Essay
Lab 1 Essay
 
Linux basics
Linux basicsLinux basics
Linux basics
 
02 fundamentals
02 fundamentals02 fundamentals
02 fundamentals
 
18CS56-UP-Module 3.pptx
18CS56-UP-Module 3.pptx18CS56-UP-Module 3.pptx
18CS56-UP-Module 3.pptx
 
Linux Operating System
Linux Operating SystemLinux Operating System
Linux Operating System
 
Week 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docxWeek 11Linux InternalsProcesses, schedulingLecture o.docx
Week 11Linux InternalsProcesses, schedulingLecture o.docx
 

Recently uploaded

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxvipinkmenon1
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

Introduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptxIntroduction to Microprocesso programming and interfacing.pptx
Introduction to Microprocesso programming and interfacing.pptx
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 

Mc7404 np final

  • 1. 1 MUTHAYAMMAL ENGINEERING COLLEGE, RASIPURAM DEPARTMENT OF COMPUTER APPLICATIONS MC7404 – Network programming UNIT WISE 2 MARKS QUESTIONS AND ANSWERS UNIT I 1. Define directory and filename. A directory is a file that contains directory entries. The directory entry contains a file name along with structure of information describing the attributes of the file. The names in a directory are called filename. The only two characters that cannot appear in a file name are / and null character. 2. Define file descriptor. File descriptors are nonnegative integers that the kernel uses to identify the file being accessed by a particular process. Whenever the kernel opens an existing file or creates a new file it returns the file descriptor. 3. Define program and process. A program is a executable file residing in a disk file. An executing instance of a program is called a process. Every UNIX process have a unique numeric identifier called the process ID. The process ID is always a non negative integer. 4. What are the two different time values supported by UNIX? Calendar time: This value counts the number of seconds which is 00 : 00 : 00 January 1, 1970, coordinated universal time. The data type time_t hold this time values. Process time: It is also called CPU time and measures the central processor resources used by process. Process time is measured inc clock ticks. The data type clock_t hold these time values. 5. Define user CPU time, system CPU time. The time attributed to user instructions are referred as user CPU time. The time attributed to kernel, when it executes an behalf of th process is called system CPU time. 6. What are the kernel data structures are used for open files?  Process table entry  File table entry  V node structure  7. Define atomic operation. An operation composed of multiple steps. If the operation is performed atomically either all the steps are performed or none is performed. 8. How will you retrieve the file status? The file status information are retrieved by using the functions stat, fstat, lstat. The stat function returns a structure of information about the named file. The fstat function
  • 2. 2 obtains information about the file that is already open. The lstat function similar to stat but when the named file is a symbolic link. 9. List down the different file types. o Regular file o Directory file o Character special file o Block special file o FIFO o Symbolic ink o Socket 10. What are the macros available for identifying the file type?  S_ISREG() for regular file  S_ISDIR() for directory file  S_ISCHR() for character special file  S_ISBLK() for block special file.  S_ISFIFO() For FIFO file  S_ISLNK() for symbolic link  S_ISOCK() for socket file The argument to these macros is the st_mode member from the stat structure. 11. What are the options available to determine the group ID of the new file?  The group ID of the new file can be the effective group ID of the process.   The group ID of the new file can be the group ID of the directory in which the file is being created.  12. Define sticky bit. The bit S_ISVTX is known as sticky bit. If this bit is set for an executable program file, then the first time the program was executed a copy of the programmer’s text was saved in the swap area when the process terminated. The advantage of using this is the program is loaded into memory faster the next time. 13. Define symbolic link. A symbolic link is an indirect pointer to a file unlike the hard links. There are no file system limitations on a symbolic link and what it points to and any one can create a symbolic link to a read directory. Symbolic links are typically used to move a file or an entire directory hierarchy to some other location on a system. 14. What are the different times fields maintained for each file?  Last access time of file data  Last modification time of file data  Last change time of i_node status  15. Define the purpose and format of utime function. The access time and modification time of a file can be changed with the utime function.
  • 3. 3 The general format is # include <sys/types.h> # include <utime.h> int utime (const char * pathname, const struct utimbuf *times); Returns 0 if OK –1 on Error 16. What are the directory routines available in POSIX . 1? # include <sys/types.h> #include <dirent.h> DIR *opendir ( const char *pathname)l Returns pointer if OK NULL on error struct dirent *readdir(DIR *dp); Returns pointer if OK , Null at end of directory or error void rewinddir(DIR *dp); int closedir(DIR *dp); Returs 0 if OK –1 on error 17. What is the major goal of buffering? To use the minimum number of read and write calls. It tries to do its buffering automatically for each I/O stream. 18. What are the different types of buffering is supported by UNIX?  Fuly buffered : In this case the actual I/ O takes place when the standard I/ O buffer is filled  Line buffered: In this case the standard I/O library performs I/o when a new line character is encountered on input or output.  Un buffered: The standard I/O library does not buffer the characters.  19. What are the different types of unformatted I/O?  Character at a time I/O  Line at a time I/O  Direct I/O  20. How will you position a standard I/O stream?  ftell, fgetpos: to retrieve the current byte position  fseek ,fsetpos: to move the file pointer to specified place  21. List down the contents of password file.  User name  Encrypted password  Numerical user ID and group ID  Comment field  Initial working directory  Initial shell 
  • 4. 4 22. What do you mean by shadow password? The duplicate copy of password file is called password file. Minimally this file has the user name and the encrypted password. Other information relating to the password is also stored here. For example system with shadow passwords often required to choose a new password at certain intervals. 23. What are the different functions for system’s data file? o A get function that reads the next record, opening the file if necessary. These functions normally return a pointer to the structure. A null pointer is returned when the end of file is reached. o A set function opens the file and rewinds the file. o An end entry that closes the data file. 24. How will you identify the system in POSIX.1? The system is identified by using the function uname. This function return information on the current host and operating system. 25. List down the different time conversion functions?   gmtime  local time  mktime  asctime  ctime  strftime  26. List down the functions for process termination. The normal terminations are return from main, calling exit, calling _ exit. The abnormal terminations are by calling abort, terminated by a signal 27. Write down the contents of C program in memory layout. Text segment, initialized Data segment, uninitialized, stack, heap 28. What is the purpose of memory allocation functions and what are the functions available for memory allocation? The memory allocation functions are used to allocate, reallocate, and deallocate memory locations. The functions available for memory allocation are malloc, calloc, realloc and free. 29. What are the rules govern the changing of resource limits?  A soft limit can be changed by any process to a value less than are equal to its hard limit  Any process can lower its hard limit to a value greater than are equal to its soft limit  Only a super user process can raise a hard limit.  30. Write down the functions those who are return a process ID. The functions return process ID is Getpid, getppid, getuid, geteuid, getgid, getegid
  • 5. 5 31. Define zombie process. The process that has terminated but whose parent has not yet waited for it called zombie process. 32. What is the difference between wait and waitpid function?  Wait can block the caller until a child process terminates while waitpid has no option that prevents it from blocking.  Waitpid doesn’t wait for the first child to terminate- it has a number of options that control which process it waits for.  33. What are the additional features available for waitpid comparing to wait?  Waitpid function waits for one particular process  Waitpid provides a non blocking version of wait  Waitpid supports job control  34. What is the purpose of exec functions? When a process calls one of the exec functions, then that process is completely replaced by the new program. The new program starts execution from main function. The processed does not change across an exec because a new process is not created. But this function replaces the current process with new program from disk. 35. Write down the rules for changing user ID?  The process must have super user privileges   If the process does not have super user privileges, but uid equals either the real user ID or the saved set user ID  36. What are the uses of interpreter files?  Interpreter files hide the fact that certain programs are scripts in some other language.  Interpreter scripts provide an efficiency gain  Interpreter scripts let us write shell scripts using shells other than / bin/ sh  37. Define process group. A process group is a collection of one or more processes. Each process group has a unique process ID. A function getpgrp returns the process group id of the calling process. Each process group have a leader. The leader is identified by having its process group ID equal its process ID. A process joins an existing process group or creates a new process group by calling setpgid. 38. Define session. A session is a collection of one or more process groups. A process establishes a new session by calling setsid function. This function returns process group id if OK. 39. What do you mean by signal? Signals are software interrupts. Signals provide a way of handling asynchronous events: a user at a terminal typing the interrupt key to stop a program or the next program in the pipeline terminating prematurely.
  • 6. 6 40. What are the conditions to generate a signal?  The terminal generated signals occur when users press some terminal keys.  The hardware exceptions generate signals  The kill(2) function allows a process to send any signal to another process or process group.  The kill(1) function allows a process to send  Software conditions generate signals  41. Define pending signal. A signal is generated for a process when a process event that causes the signal occurs. The signal is delivered to a process when the action for a signal is taken. During the time between the generation of signal and its delivery is referred as pending. 42. Define the purpose of kill and raise functions. The kill function sends a signal to a process or a group of processes. The raise function allows the process to send a signal to it. 43. What is the purpose of alarm and pause functions. The alarm function allows setting a timer that will expire at a specific time in the future. When the timer expires the SIGALRM signal is generated. If we ignore or don’t catch this signal its default action is terminate the process. The pause function suspends the calling function until signal is caught. 44. Define the different modes of terminal I/ O. Canonical mode input processing. In this mode terminal input is processed as lines. The terminal driver returns at most one line per read request. Default mode Non canonical mode input processing. The input characters are not assembled into lines. Used by programs that manipulates the screen. 45. What are the different problems used in fork function? Fork is expensive because memory and all descriptors are duplicated in the child. Inter process communication is required to pass information between the parent and the child after the fork. 46. What do you mean by thread? Threads are light weight processes. All threads with in the process share the same global memory. This makes communication simple but necessitates synchronization. All threads with in a process share process instructions, data, open files, signal handlers and signal descriptors, current working directory, user and group Ids. 47. Define pipe. Pipe were the first widely used inter process communication method available both within programs and from the shell. The problem with pipe is that they are usable only between processes that have a ancestor, this problem is solved with the named pipes or FIFOs
  • 7. 7 48. List down the types of IPC.  Message Queues  Semaphore  Shared memory  49. Explain the purpose of ftok function with format This function used to generate a IPC key. The general format for this function is # include<sys/ipc.h> key_t ftok(const char *pathname, int id); This function takes information derived from the pathname, the files inode number and the lower order 8 bits of id. 50. Explain the purpose of popen and pclose functions with format. The popen function creates a pipe and initiates another process that either reads from the pipe or writes to the pipe. 51. Define message queue. Message queue is a linked list of messages. It is used to make a communication between the related or unrelated processes 52. What are the attributes in the message on the message queue?  An unsigned integer priority  The length of the data portion of the message  The data  53. What are the differences between POSIX message queue and system V message queue?  POSIX message queue always returns the oldest message of the highest priority, But the system V message queue can return a message of any desired priority.  Posix message queues allow the generation of a signal or the initiation of a thread when a message is place onto an empty queue, where as nothing similar is provided by system V message queues.  54. What is the purpose of mq_open, mq_close functions? The mq_open functions open an existing Posix message queue or create a new message queue. The mq_close function is used to close the opened message queue. 55. What is the purpose of mq_unlink functon? The mq_unlink function is used to delete a Posix massage queue permanently from the system. But the message queue is deleted only the reference count for the queue reached 0. 56. How will you send and receive an message to the POSIX message queue? The posix message queue can pass a message to the queue by calling the function mq_send with the parameters are the descriptor,character array pointer, length of the
  • 8. 8 message and priority of a message. The posix message queue can retrieve a message to the queue by calling the function mq_receive with the parameters are the descriptor, character array pointer, length of the message and priority of a message. 57. What are the informations available in system V message queue? Read write permissions, pointer to first message, pointer to last message, number of bytes currently in queue, Number of messages in the queue, maximum number of bytes allowed, process id of last message send, process id of last message receive, process time of last message send, time of last message receive, time of last message control function called. 58. List down the system calls related to system V message queue with desription.  msgget- to create a new message queue or open an existing message queue.  msgsnd – to send a message to a queue  msgrcv – to receive a message from a message queue.  msgctl – to provide a variety of control operations in a message queue.  59. What are the features provided by type field in the system V message queue?  Used to identify a message, allowing multiple processes to multiplex messages onto a single queue.  Used as a priority field  60. What is the purpose of synchronization? List the building blocks of synchronization? Synchronization normally needed to allow the sharing of data between threads and processes. Mutexes and condition variables are the building blocks of synchronization. 61. What is the use of Mutex? Mutex is used to protect a critical region, to make certain that only one thread at a time executes the code within the region. 62. List down the function formats for lock and unlock a region. #include<pthread.h> int pthread_mutex_lock(pthread_mutex_t *mptr); int pthread_mutex_trylock(pthread_mutex_t *mptr); int pthread_mutex_unlock(pthread_mutex_t *mptr); 63. Define bounded buffer problem or producer- consumer problem. One or more produces are creating data items are then processed by one or more consumers. 64. What are the rules for allocating read- write locks?  Any number of threads can hold a given read-write lock for reading as long as no thread holds the read write lock for writing.  A read-write lock can be allocated for writing only if no thread holds the readwrite lock for reading or writing.  
  • 9. 9 65. What do you mean by critical region? The critical region access or update one or more pieces of data that are shared between threads. 66. What do you mean by semaphore? List different type of semaphores. Semaphore is a primitive used to provide synchronization between various processes or between the various threads in a given process. The types of semaphore are  Posix named semaphores  Posix memory based semaphore  System V semaphores.  67. List down the operations performed on a semaphore by semaphore.  Create a semaphore  Wait for a semaphore  Post to a semaphore  68. Write down the differences between the semaphore and mutexes and condition variables. The thread that locked the mutex, where as a semaphore the same thread that did the semaphore wait need not perform post, must always unlock a mutex. A mutex is either locked or unlocked. 69. Define shared memory. It is the fastest form of IPC. It is a memory shared by unrelated processes. Once the memory is mapped into the address space of the process that are sharing the memory region no kernel involvement occurs in placing data between the processes. 70. List down the purpose for using the function mmap.  To provide a memory mapped I/O  To provide anonymous memory mappings  To provide shard memory between unrelated processes  71. What are the different ways to share memory between unrelated processes?  By using memory mapped files  By using shared memory objects
  • 10. 10  UNIT II 1. Define sockets A socket is a construct to provide a communication between computers. It hides the underlying networking concepts and provides us with an interface to communicate between computers. 2. Define value result arguments. The way in which the length of the structure passed is depends on which direction the structure is being passed from process to kernel or vice versa. The size parameter is passed by value when the function is called and passed by result when the function returns. This type of argument is called value result argument. 3. Define little byte endian order,big byte endian order.  Little byte endian order: in sixteen bit integer number the low order byte at the starting address.  Big byte endian order: in sixteen bit integer number the high order byte at the starting address.  4. Write down the different byte manipulation functions. Bzero,bcopy,bcmp,memset,memcpy,memcmp 5. What is the purpose of address conversion functions? The functions inet_aton,inet_ntoa and inet_addr convert IPv4 address between dotted decimal string and its 32-bit network byte ordered binary value. The functions inet_pton,inet_ntop handle both IPv4 and IPv6 address. The letters p and n stands for numeric and presentation. 6. What are the different options and type values available for creating a socket? The different option values are AF_INET, AF_INET6, AF_LOCAL, AF_ROUTE, AF_KEY. The different type values are SOCK_STREAM, SOCK_DGRAM, SOCK_RAW. 7. What is the purpose of connect and bind function? The connect function is used by a TCP client to establish a connection with a TCP server. The bind function assigns a local protocol address to a socket. 8. What are the actions performed by listen function. The listen function is called by TCP server and it performs the following actions. It converts the unconnected socket into a passive socket, indicating that the kernel should accept incoming connection requests directed to this socket. It specifies the maximum number of connections that the kernel should queue for this socket. 9. Give the syntax of connect( ) in TCP int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen); connect to server sockfd is socket descriptor from socket( ) servaddr is a pointer to a structure and addrlen is the length of structure.
  • 11. 11 10. Give the syntax of listen( ) in TCP. listen(int sockfd, int backlog) sockfd => socket descriptor from socket( ) backlog => number of connection requests queued by system while waiting for server to accept( ) an incoming connection. 11. Give the syntax of sendto( ) systemcall in UDP. sendto( int sockfd, char *buffer, int nbytes, int flags, struct sockaddr *toaddr, int toaddr_len); sockfd => socket on which to send datagram buffer => address of the buffer to send nbytes => number of bytes to send flags => special send options toaddr => internet address and port to use toaddr_len => length in bytes of toaddr structure 12. What is the processing function of an Echo Client? It reads a line of text from standard input, writes it to the server, reads back the server’s echo of the line and outputs the echoed line to standard output. 13. Give an example of an Echo Server  The client reads a line of text from its standard input and writes the line to the server  The server reads the line from its network input and echoes the line back to the client  The client reads the echoed line and prints it on its standard output.  14. Differentiate system call and a function  The system call is an entry point into the kernel  Function is used to describe what appears to the user to the functions, even though on some implementations they may be system calls.  15. Define Source client. The program performs a fixed number of writes to a network of some specified size. Source client server TCP connection OR UDP datagrams 16. Define Sink Server. The program performs a fixed number of reads from a network. Sink server server TCP connection OR UDP datagrams
  • 12. 12 17. Define tcpdump program. This program reads packets from a network and prints lots of information about the packets. It also has the capability of printing only packets that match some criteria that we specify. Eg: tcpdump ‘(udp and port daytime) or icmp’ Prints only the UDP datagrams with a source or destination port of 13(the daytime server) or ICMP packets. 18. Mention the uses of netstat program It shows the status of networking endpoints  It shows the multicast groups that a host belongs to on each interface  It shows the per-protocol statistics  It displays the routing table and the interface information. 19. Define concurrent servers and iterative servers. The servers that can handle multiple clients simultaneously are called concurrent servers. The servers that can handle multiple clients serially are called concurrent servers. 20. What are the uses of fork functions? A process makes a copy of itself so that one copy can handle one operation does another task. A process wants to execute another program, that is done by one of the processes by calling exec to replace itself with the new program.
  • 13. 13 UNIT III 1. Depicts this simple client/server along with the functions used for input and output. 2. Differentiate TCP from UDP.  TCP is a sophisticated, reliable byte-stream protocol  TCP is connection-oriented protocol  UDP is a simple, unreliable datagram protocol  UDP is connection-less protocol 3. Define IPV6. IPV6 was designed as a replacement for IPV4. This is due to a larger address comprising 128 bits. IPV6 provides packet delivery service for TCP, UDP, SCTP and ICMPv6 4. What is ICMP? Internet Control Message Protocol handles error and control information between routers and hosts. These messages are generated by and processed by the TCP/IP networking software. 5. What is ARP? Address Resolution Protocol maps an IPV4 address into a hardware address. ARP is used on broadcast networks such as Ethernet, token ring and FDDI and is not needed on point-to-point networks. 6. Give a brief note on TCP three-way handshake.  Server-Passive open (SYN J)  Client- Active open (SYN K, ACK J+1)  Acknowledgement (ACK K+1) The minimum number of packets required for this exchange is three. Hence it is called TCP’s three-way handshake. 7. Define MSS option in TCP. With this option, the TCP sending the SYN announces its maximum segment size, the maximum amount of data that it is willing to accept in each TCP segment, on this connection. The sending TCP uses the receiver’s MSS value as the maximum size of a segment that it sends. 8. What are sockets?  A socket is an endpoint for communication  Socket is an abstraction for an endpoint of communication that can be manipulated with a file descriptor.  Scope of a socket is the communication domain in which it exists. 
  • 14. 14 9. Differentiate Well-known ports from ephemeral ports  Servers listen on well-known ports . Well-known ports are 0- 1023. In Unix these are reserved ports.  Clients use ephemeral (ie, transient) ports. These ports are usually assigned by TCP or UDP to the client 10. Why should an application in a network call ―shutdown‖ with an argument of SHUT_RDWR instead of just calling close? If we use the close() to release the connection, the socket fd is no longer available in the kernel. It will immediately delete the socket fd. But in shutdown() with has an argument of SHUT_RDWR, we can’t read or write from the socket but the socket is still available in the kernel. 11. List down the different I/O models. Blocking I/O Nonblocking I/O I/O multiplexing Signal driven I/O Asynchronous I/O 12. Define synchronous and asynchronous I/O operations. 1. A synchronous I/ O operations causes the requesting process to be blocked until I/O operations complete 2. An asynchronous I/O operation does not cause the requesting process to be blocked. 13. Write down any 8 generic socket options SO_BROADCAST, SO_DEBUG, SO_ERROR, SO_DONTROUTE, SO_KEEPALIVE, SO_LINGER, SO_RCVBUF, SO_SNDBUF 14. Give the syntax to get and set the socket options. include <sys/socket.h> int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, const void *optval socklen_t optlen); 15. What is called socket state? Some socket options have timing considerations about when to set or fetch the option versus the state of the socket. The following socket options are inherited by a connected TCP socket from the listening socket. SO_DEBUG, SO_DONTROUTE, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_RCVLOWAT, SO_SNDBUF, SO_SNDLOWAT, TCP_MAXSEG, and TCP_NODELAY.
  • 15. 15 16. What is the usage of IP_HDRINCL?  IP always calculates and stores the IP header checksum.  If we set the IP identification field to 0, the kernel will set the field.   If the source IP address is INADDR_ANY, IP sets it to the primary IP address of the outgoing interface.  Setting IP options is implementation-dependent.   Some fields must be in host byte order, and some in network byte order. This is implementation-dependent, which makes writing raw packets with IP_HDRINCL not as portable.  17. What is the usage of SO_LINGER? The SO_LINGER socket option lets us change this default. This option requires the following structure to be passed between the user process and the kernel. It is defined by including <sys/socket.h>. struct linger int l_onoff; /* 0=off, nonzero=on */ int l_linger; /* linger time, POSIX specifies units as seconds */ }; 18.Define polling. When an application sits in a loop calling RECVFROM on a nonblocking descriptor, it is called polling. The application is continually polling the kernel to see if some operation is ready. The disadvantage is the waste of CPU time. 19.When does the error EWOULDBLOCK occur. It occurs in a non blocking I/O model. When we call recvfrom system call and if there is no data to return, the kernel immediately returns an error of EWOULDBLOCK. When a datagram is ready, recvfrom returns successfully. 20.What is the use of select function? The select function allows the process to instruct the kernel to wait for any one of multiple events to occur and to wake up the process only when one or more of these events occurs or when a specified amount of time has passed. 21. Define Signal-driven I/O. We can use signals, telling the kernel to notify us with the SIGIO signal when the descriptor is ready. This is called signal-driven I/O. 22. Define TCP_KEEPALIVE Socket Option. It specifies the idle time in seconds for the connection before TCP starts sending keepalive probes. The default values must be atleast 7200 seconds, which is 2 hours. This option is enabled only if SO_KEEPALIVE socket option is enabled. 23. Give any two Socket options in IPv6 . IPv6_ADDFORM – This option allows a socket to be converted from IPv4 to IPv6 or viceversa. IPv6_CHECKSUM – This socket option specifies the byte offset into the user data of where the checksum fields is located.
  • 16. 16 24. Define fncntl(). fcntl stands for "file control" and this function performs various descriptor control operations. Before describing the function and how it affects a socket #include <fcntl.h> int fcntl(intfd, int cmd, ... /* int arg */ ); Returns: depends on cmd if OK, -1 on error Each descriptor (including a socket) has a set of file flags that is fetched with the F_GETFL command and set with the command. The two flags that affect a socket are  O_NONBLOCK—nonblocking I/O  O_ASYNC—signal-driven I/O 
  • 17. 17  UNIT IV 1. Define UDP sockets. UDP is a connection less unreliable, datagram protocol. In UDP the client does not establish connection with a server. Instead the client just sends a datagram to the server. 2. Give the syntax for recvfrom() and sendto(). #include <sys/socket.h> ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int flags, struct sockaddr *from, socklen_t *addrlen); ssize_t sendto(int sockfd, const void *buff, size_t nbytes, int flags, const struct sockaddr *to, socklen_t addrlen); Both return: number of bytes read or written if OK, –1 on error 3. How accept() and connect() replaced by recvfrom() and sendto()? The final two arguments to recvfrom are similar to the final two arguments to accept: The contents of the socket address structure upon return tell us who sent the datagram (in the case of UDP) or who initiated the connection (in the case of TCP). The final two arguments to sendto are similar to the final two arguments to connect: The socket address structure is filled with the protocol address of where to send the datagram (in the case of UDP) or with whom to establish a connection (in the case of TCP). 4. Define TCP sockets. TCP sockets provide a simple and effective way to provide connection oriented client server networking. 5. What is called lost datagrams? If a client datagram is lost (say it is discarded by some router between the client and server), the client will block forever in its call to recvfrom in the function dg_cli, waiting for a server reply that will never arrive. Similarly, if the client datagram arrives at the server but the server's reply is lost, the client will again block forever in its call to recvfrom. A typical way to prevent this is to place a timeout on the client's call to recvfrom. 6. What is called an ICMP error? ICMP error is an asynchronous error. The error was caused by sendto, but sendto returned successfully. This ICMP error message contains the IP header and UDP header of the datagram that caused the error. ICMPv4 and ICMPv6 error messages always contain the IP header and all of the UDP header or part of the TCP header to allow the receiver of the ICMP error to determine which socket caused the error.
  • 18. 18 7. Differentiate Connected and unconnected socket.  An unconnected UDP socket, the default when we create a UDP socket  A connected UDP socket, the result of calling connect on a UDP socket  8. How TCP is multiplexed with UDP? Create listening TCP socket  Create UDP socket  Establish signal handler for SIGCHLD  Prepare for select  Handle arrival of datagram  9. What is the purpose of DNS? The domain name system or DNS is used primarily to map between host names and IP addresses. DNS entries are known as resource records (RRs). 10. What is the purpose of resolvers? The client and server applications contact a DNS server by calling functions in a library known as resolver. The common resolver functions are gethostbyname and gethostbyaddr. 11. Define Resource Records. Entries in the DNS are known as resource records(RR). The following are the types of Resource Records.  A  AAAA  PTR  MX  CNAME 12. Define CNAME. CNAME stands for ―canonical name‖. common use is to assign CNAME records for common services such as ftp and www. Eg:ftp IN CNAME linux.unpbook.com www IN CNAME linux.unpbook.com 13. Give the syntax of to get the host and service addresses and port number. #include <netdb.h> struct hostent *gethostbyname (const char *hostname); struct hostent *gethostbyaddr (const char *addr, socklen_t len, int family); struct servent *getservbyname (const char *servname, const char *protoname); struct servent *getservbyport (int port, const char *protoname);
  • 19. 19 14. Compare TCP with UDP  TCP uses SOCK_STREAM and UDP uses SOCK_DGRAM   TCP uses accept() to accept the connections from client and UDP replaces accept() with recvfrom()  TCP uses connect() to connect to the server and UDP replaces connect() with sendto()  15. Depict Simple echo client/server using UDP.  
  • 20. 20 UNIT V 1. What are the additional facilities supported by raw sockets? Raw sockets are used to read and write ICMPv4, IGMPv4, and ICMPv6 packets. With the raw socket a process can read and write IPv4 data grams with an IPv4 protocol field that is not processed by kernel. With a raw socket a process can build its own IPv4 header using the IP_HDRINCL socket option 2. How do you create a raw socket? The socket function creates a raw socket when the second argument is SOCK_RAW. The third argument (the protocol)is normally nonzero. sockfd= socket(AF_INET, SOCK_RAW, protocol); where protocol is one of the constants, IPPROTO_xxx defined by including the <netinet/in.h> header such as IPPROTO_ICMP. Only the superuser can create a raw socket. 3. Mention the use of IP_HDRINCL option in a raw socket.  If IP_HDRINCL option is not set, the starting address of the data for the kernel to send specifies the first byte following the IP header because the kernel will build the IP header and prepend it to the data from the process.  If IP_HDRINCL option is set, the starting address of the data for the kernel to send specifies the first byte of the IP header. The amount of data to write must include the size of the caller’s IP header. 4. What are the inputs passed to a raw socket?  Most ICMP packets are passed to a raw socket after the kernel has finished processing the ICMP messages.  All IGMP packets are passed to a raw socket after the kernel has finished processing the IGMP messages.  All IP datagram with a protocol field that the kernel doesnot understand are passed to a raw socket. 5. Differentiate fgets and fputs function  The function fgets reads a line of text from the standard input  The function fputs prints the line on the standard output. 6. What are the differences between raw IPv6 sockets with ordinary raw output?  All fields in the protocol send or received on a raw IPv6 socket are in network byte order.  There is no equivalent of IP_HDRINCL socket option with IPv6.  Checksums on raw Ipv6 sockets are handled differently using the IPv6 socket option 7. What are the different level constants are available for socket option functions? SQL-SOCKET, IPPROTO_IP, IPPROTO_ICMPV6, IPPROTO_IPV6, IPPROTO_TCP. 8. What are the functions available for set and retrieve the socket options? The functions for set and retrieve socket options are getsockopt and setsockopt
  • 21. 21 9. What are the different system tracing tools are available?  SVR streams based socket library  BSD kernel sockets  Solaris 2.6 kernel sockets 10. Describe different TCP/IP services.  echo server return whatever the client sends  discard server discards whatever the client sends  daytime server returns the date and time in a human readable form  11. What is the purpose of sock program? It is used to generate special case conditions that can help us visualize various scenarios without writing individual test programs. 12. List down the different operation modes for sock program.  Standard input, standard output client  Standard input, standard output server  Source client  Sink server  13. What are the different functions done by TCP echo client server program?  The client reads a line of text from its standard input and writes it to the server  The server reads the line from the network input and echoes the line back to the client  The client reads the echoed line and prints it on its standard output  14. What is the purpose of trace route program? The trace route program allows us to determine the path that IP datagrams follow from our host to some other destination. 15. What is the purpose of ping program? The ping program is a utility program that is used to fetchecho replies from the server. 16. What is the purpose of netstat program?  It shows the status of networking endpoints.  It shows the multicast groups that a host belongs to on each interface.  It shows the pre protocol statistics with the –s option.  It displays the routing table with the –r option and the interface information with the –i option 17. What is the goal of ping program? The goal of Ping program is to understand the network programming concepts and techniques without being distracted from some common programming disease known as creeping featurism.
  • 22. 22 18. What are the 2 parts in operating a ping program?  The first part reads everything received on a raw socket, printing the ICMP echo replies  The second half sends an ICMP echo request once per second. The second part is driven by a SIGALRM signal once per second.  19. Mention the advantage of traceroute. Trace route lets us determine the path that IP datagrams follow from our host to some other destination. 20. What are the two proto structures defined in trace route? o IPv4 o IPv6  21. What are the 2 sockets needed in a trace route program  A raw socket on which we read all returned ICMP messages  An UDP socket on which we send the probe packets with the increasing TTLs. 22. What is a thread? When a program is started by exec, a single thread is created, called the initial thread or main thread. Additional threads are created by pthread_create. #include <pthread.h> int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void *(*func) (void *), void *arg); Returns: 0 if OK, positive Exxx value on error