<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

CS 779/879
Design of Network Protocols
Spring 2007
Midterm Exam
Time 2 & 1/2 hours
Open Book & Notes

 

 

 

Name:                              
Login:

 

Each Question is 10 points.


 

1.      How to find out the IPv4 and the IPv6 addresses of host “somethingextra”?

 

 

 

 

 

 

 

2.      Many of  the servers in our textbook examples uses port SERV_PORT.

a)      How to find out if there is a current running process that uses this port?

 

 

 

 

 

 

b)      How to find out the name of the user who is running this process?

 

 

 

 

 

 

c)      Is it possible to find more than one running processes using this port? Explain?

 


 

3.      Consider the following routing table of a give UNIX OS host:

 

Destination           Gateway            Flags    Ref    Use   Interface

-------------------- -------------------- ----- ----- ------ ---------

128.82.4.0            128.82.4.209         U            1     2432   eri0

224.0.0.0              128.82.4.209         U            1      0        eri0

default                  128.82.4.253         UG         1     265 

127.0.0.1              127.0.0.1               UH          6     2056   lo0

 

Describe the meaning of the “default” row in this table?

 

 

 

 

 

 

 

 

 

4.      Consider the following two programs:

·        Receiver   <port>      <mcast_addr>   

This program creates a udp socket, binds it  <port> and  INADDR_ANY, joins mcast address:  <mcast_addr>   and then displays any message received.  

The option SO_REUSEADDR is on for the udp socket.

·        Sender     <address>   < port>   <message>

The program sends <message>  to   ( <address> < port> )


Assume we have executed the Receiver on something (128.82.4.210) and the Sender on somethingelse (128.82.4.120) as follows:

% Receiver  9877       >  File1 &

% Receiver  7789      >  File2 &

% Receiver   9877    224.2.2.2    >  File3 &

% Receiver   9877    224.1.1.1    >  File4 &

% Receiver   7789    224.1.1.1    >  File5 &

 

% Sender   128.82.4.210    9877    “HI 1111”

% Sender   224.1.1.1          9877    “HI 2222”

% Sender   224.2.2.2          9877    “HI 3333”

% Sender   224.3.3.3          9877    “HI 4444”

% Sender   224.1.1.1          7789    “HI 5555”

% Sender   127.0.0.1          7789    “HI 6666”

% Sender   128.82.4.210    7789    “HI 7777”

 

What is the output of the following statements?

% cat File1

 

 

% cat File2

 

 

% cat File3

 

 

% cat File4

 

 

% cat File5


5.      The above Receive program may receive multicast or unicast messages.  Discuss if is it possible for the program to tell if a received message was sent as multicast or unicast.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.      How to use Stevens’s sock program to implement the functionality of the following statements:

 

% Receiver   9877    224.2.2.2    > File3

      and

% Send   224.2.2.2          9877    “HI 3333”

 

 


7.      How to use the tcpdump program to capture all the traffic (and no other traffic) generated by these two commands in Question 6?

 

 

 

 

 

 

 

 

 

 

8.      What is the difference between multicast address and multicast group?

 

 

 

 

 

 

 

If two persons randomly select two multicast groups g1 and g2, what is the probability that g1 and g2 are the same?

 

 


9.      Consider a lazy TCP daytime Server S that sleeps 75 seconds before serving a client. Assume that S backlog value is 0 and it is running on Solaris 10 (thus its accept queue size value is 1).  If a client C generates one request every 5 seconds and it started at the same time as S and there are no other clients will connect to S.

      Which requests among the first ten requests generated by C will get the daytime from S?

 

 

 

 

 

 

 

 

 

 

 

 

10.  To handle many concurrent clients, a server may use either select, fork or thread. If a server decides to use select, what is the maximum possible number of simultaneous of clients it can handle?