Tutorial #23 - Transport Layer: Part 1
- What are the characteristics of the interprocess communications service implemented in TCP?
- Why is TCP necessary? In other words, why can't two processes communicate simply by sending IP datagrams to one another? You should be able to think of at least a couple of reasons.
- The relationship between TCP and IP (in terms of hop-by-hop delivery versus end-to-end) has been described as being analagous to the relationship of a shipping container and its contents. Alternatively, you could think about an envelope, and the letter it contains. Why are these pretty good analogies?
- The TCP protocol is commonly used in the context of a client-server model of communication. Describe briefly what is meant by this term. In particular, what characterises a server process? How does a client process use the facilities provided by a server?
- Lost[1] TCP acknowledgements do not necessarily force retransmissions. Explain why.
- What is the efficiency of transmission of TCP segments containing 4 bytes, 100 bytes and 1000 bytes of data respectively, taking into account a minimal TCP header and a minimal IP header, but ignoring lower layer (MAC) headers?
-
Analyse the following
etherfindoutput:08 00 69 02 0c fc aa 00 04 00 ff 2f 08 00 45 00 00 4c a3 3f 00 00 3b 06 9b 0d 95 90 02 03 95 90 14 3c 09 6c 00 19 45 6d 70 01 3c 32 28 7d 50 18 10 00 a6 bd 00 00 45 48 4c 4f 20 72 65 64 67 75 6d 2e 62 65 6e 64 69 67 6f 2e 6c 61 74 72 6f 62 65 2e 65 64 75 2e 61 75 0d 0a
Practical Exercises:
-
Log into your friendly local UNIX host and have a look at a file called
/etc/servicesThis file contains a list of port numbers and the names of the server processes which "listen" on each of them. Discover the port numbers for:FTPTELNETSMTP(email)- How is it possible for a port number to appear twice in the
/etc/servicesfile?
-
Most UNIX systems do not actually have a process "listening" on every
port mentioned in
/etc/services. This task is carried out by the "Internet Super Dæmon",inetd. Discover whatinetddoes, and how it knows which ports to listen on (hint: "man inetd" is a good starting point.) -
Run "
netstat -a". What does it tell you?
[1] from Comer, Vol 1, 2nd ed, P.203