Question 7

For Client/Server applications, both connection oriented (e.g TCP/IP) and connectionless (e.g UDP/IP) services can be used. Describe the impact of the choice on the application, and what type of parameters will guide an application to use one or the other.

Explaination

When a Client/Server system is implemented, the choice of communication service is heavily dependent on the characteristics of the application. The choice will almost always be a compromise.

The question gives a few leads:

Answers for question 7

The exact formulation of the answer is not important. Some answers could be given as the opposite of the alternative listed here (e.g UDP is insecure vs. TCP is secure), but both forms will be accepted. Points for answers will be added until a maximum of 10 points are awarded.

Partial points may be awarded for incomplete answers, and in some cases point might be awarded for answers that are not covered by this table.

Ref Connectionless Pts Ref Connection oriented Pts
1 No ordering of packets, i.e packets are not necessarily received in the order they were sent. 1 2 "Simple" to implement congestion control. 1
3 Suitable if the time between request and answer is long, since no state information is kept for the connection. 1 4 Suitable if many related requests will be made. E.g, if new requests will be made (immediately) in response to the reply to the previous request. 1
5 Faster, since no connection needs to be setup. (For short request, more data may be needed to setup the connection, than is actually transferred by the connection.)
1.5 6 Might be suitable, if the amount of data to be transferred is large. (Then the time to setup the connection will be negligible.) 1
7 Will not discover that a server is down until it fails to answer a request. (With a connection oriented service, this will be noticed when the attempt to connect fails.) 1.5 8 Makes it simple for the server to refuse clients. / Makes it possible to do resource allocation based on number of clients. 1.5
9 Broadcasts can are often only implemented in connectionless protocols. (Low relevance.) 0.5 10 Loss of connection is fatal. E.g, if the server crashes and reboots, this must be explicitly handled. 1
In the section below, the focus is on UDP and TCP
11 No automatic handling of lost packages, the application must survive occational lost packages, or provide its own handling of acknowledgements and resends. 2 12 Provides faultless transmission, or if not possible, generates an error and closes the connection. 1
13 Packages can be duplicated. 1 14 Provides an untyped byte stream. I.e, the only structure of the communication is that imposed by the application. 1.5
15 Message oriented. 1.5 - (Some difference in speed due to error control, but in most cases the real difference is due to the setup time mentioned in ref 5.) 0