Midterm, CIS 656, April 04, 2006. 8:30 - 9:45. Dr Ott. Use the paper provided. Leave a margin. Name on every sheet. 1. Draw, in detail, the header of a TCP packet without options. Explain all fields. Give the sizes of all fields. Where relevant, give the units the field is expressed in. 2. A large file of weather data will be ftp-ed from the supercomputer center in San Diego to the supercomputer center in Pittsburgh. The file size is 600 GBytes. The RTT is 100 msec. Internet II has promised that 480 Mbit/sec will be available for the transfer. For some reason the system administration people want to send this data in 1 FTP (sequentially, i.e, not in parallel in several ftp flows). In your computations you can disregard overhead in header bytes etc. 2A. What window scaling factor is needed? Explain. 2B. What send_buffer size is needed in San Diego? Explain. 2C. What rcve_buffer size is needed in Pittsburgh? 2D. How long will the transfer take (if there are no problems)? 2E. If the system administrators had used the default window scale facter, how long would the transfer have taken? 2F. Assuming Pittsburgh uses the correct window scale factor, what number must Pittsburgh put in the ``WIN'' fields in the acknowledgements it sends, in order to make sure it does not try to get more than 480 Mbit/sec (and causing Buffer Overflows in Routers, upsetting Internet II, etc.). Model Solution: The target datarate is 480 Mbit/sec = 60 MByte/sec. Thput = flightsize/RTT , hence the target flightsize is target_flightsize = (60 MByte/sec) x (.1 sec) = 6 MBytes. 6,000,000/65535 = 91.554. 2A. The window scale factor must be 7, since 2^6 = 64 < 91.554 < 128 = 2^7. 2B. The send_buffer in San Diego must be at least 6,000,000 Bytes, or the flightsize can not be 6,000,000 Bytes. 2C. The rcve_buffer in Pittsburgh must be at least 6,000,000 Bytes, or the flightsize can not be 6,000,000 Bytes. 2D. If we indeed achieve the 60 MBytes/sec it will take (600,000,000,000 Bytes)/(60 Bytes/sec) = 10,000 seconds = 166.66667 minutes (= 166 minutes, 40 seconds) = 2 hours, 46 minutes, and 40 seconds. Of courses, saying 2.77777777778 hours is fine. 2E. If the flightsize is reduced to (at most) 65535 Bytes, the thput is reduced to (at most) (65535 Bytes) / (.1 sec) = 655,350 Bytes/sec. So the transfer times is at least 600,000,000,000 / 655,350 seconds = 915,541.3138 seconds = 15,259.0219 minutes = 254.3170316 hours = 10.59654298 days. Call it 11.6 days, or almost 10 days, 15 hours. 2F. We want a flightsize of 6,000,000 Bytes. If k = 7 and the number in the ``advertised window field'' is X , the flightsize could (probably would) be close to 128 x X. So we want X = 6,000,000/128 = 46875 (comes out an integer!). Pittsburgh should monitor the ``free space'' in its rcve_buffer. As long as that free space is at least 6,000,000 Bytes, it should put 46875 in the ``advertised window'' field of packets (acknowledgements) it returns to San Diego. If it puts in more than 46875 , it is trying to get a throughput of more than 60,000,000 Bytes/sec. That could make Internet II very angry. It could lead to congestion in the path from san Diego to Pittsburgh. It could lead to high buffer occupation in routers in that path. It could lead to buffer overflow, thus to packet loss, thus to smaller cwnd, next even to buffer underflow and reduced throughput. High buffer occupation could lead to high delay and delay-jitter. It could lead to bad service (bad QoS) in the path from San Diego to Pittsburgh, for the two supercomputer centres and for other users. Don't do that! PS: with ``free space'' I mean the available space past the Ack_Seq it is sending. (Ack_Seq itself included). 3. The list of allocated IPv4 multicast addresses in the IANA database contains the line 224.0.1.75 SIP [Schulzrinne] (That is Henning Schulzrinne at Columbia Univ. SIP stands for Session Initiation Protocol.) If a SIP multicast packet is forwarded over an ethernet, what is the ethernet destination address? Give your response in ``standard hexadecimal notation'' and give enough explanation to convince me you understand how this works. Model Solution: The ethernet destination address is a 48 bit address. Since the IP packet is an IP multicast packet, the first 25 bits of the ethernet destination address are 0000 0001 . 0000 0000 . 0101 1110 . 0 (01:00:5E plus a zero bit). The last 23 bits are the last 23 bits of the IP multicast address, i.e. the last 23 bits of 1110 0000 . 0 000 0000 . 0000 0001 . 0100 1011 . Hence, the destination ethernet address is 0000 0001 . 0000 0000 . 0101 1110 . 0 000 0000 . 0000 0001 . 0100 1011 In hexadecimal that is 01:00:5E:00:01:4B . Of course, 1:0:5E:0:1:4b , and variations, is also OK. (I personally prefer not to drop leading zeros in the hexadecimal representation of an ethernet address). 4. A network has address 128.235.64.0/20 . For each of the following addreses. tell whether it can be: Address of interface on the network / source address of packet in the network / destination address of packet in ther network. With a BRIEF but convincing explanation. 128.235.64.0/20 = 1000 0000.1110 1011.0100 twiggle 0000.0000 0000 a. 128.235.64.0 n/n/n the network address. b. 128.235.64.1 y/y/y perfectly fine interface address in the LAN c. 128.135.63.255 n/y/y could be interface address in other LAN. d. 10.0.1.2 n/n/n address in private adress space. e. 128.235.79.254 y/y/y 79.254 = 0100 twiggle 1111.1111 1110 This is a perfectly legal interface address in the LAN. f. 0.0.0.0 n/y/n the ``I am stupid'' source address. g. 128.235.79.255 n/n/y directed broadcast to the LAN. See e above. h. 224.0.0.1 n/n/y multicast address. In fact, it is the ``all systems this LAN'' multicast address. i. 127.234.63.1 n/n/n loopback address. j. 255.255.255.255 n/n/y limited broadcast address.