Final Exam, CIS451. Friday 12/12/2003. 4:00 - 5:15 pm. Closed Book. Use only official exam books. Name on every book. Leave margin. Use only black or blue pen or pencil. Make sure to give enough of your line of thought that I can give credit even if you make an error. (And not more!). Often, a small drawing will help both you and me! Total: 200 points 1. 30 points. 1A. What do LAN, MAN, WAN stand for? 1B. What does RAID stand for? 1C. What does ATM stand for? (in THIS course :-) ). 1D. What do MSC, MTSO stand for? 1E. What does AMPS stand for? 1F. What does DSL stand for? and ADSL? 2. What are the purposes of a sliding window protocol? (that includes ``stop and wait'': window = one frame). 20 points. Sliding Window Protocols have two purposes: 1. Flowcontrol. To make sure a fast source computer does not send at a higher rate than a slower destination computer can handle. 2. Error control. To take care of lost and damaged frames. (by retransmission of lost and damaged frames). 2*. 20 points. 2*. Two computers A and B are 600 km from each other. They are connected by a full duplex link of 8 Mbit/sec (actually: two simplex links, each 8 Mbit/sec). A sends data packets to B of 1000 bytes per frame. When appropriate, B send acknowledgement packets to A of 100 bytes per frame. The velocity of the signals is (2/3).c . 2*A. What is the serialization delay of the dataframes? 2*B. What is the serialization delay of the acknowledgement frames? 2*C. What is the propagation delay? 2*D. Suppose A and B use a ``go back n'' protocol. What window size do you recommend? BRIEFLY explain your answer. 2*E. Once a dataframe is in transmission, how long is it (in km) from the first bit to the last bit? (from the front end of the first bit to the rear end of the last bit). Serialization delay of data frame = (size)/(data-rate) = (1000*8)/8,000,000 = .001 sec = 1 msec. Serialization of ack frame = (100*8)/8,000,000 = .1 msec. Propagation delay = (length of link)/(velocity of signal) = 600/((2/3)*300,000) = .003 sec = 3 msec. Hence Round Trip Time (if processing is infinitely fast) is 7.1 msec. ( 1 + 3 + .1 + 3 = 7.1, this assumes buffers are empty when the frames are put into the buffers.) In case of ``go back n'' I would recommend a window size of 8 frames. That way (assuming sufficiently fast processing) the link from A to B never is idle. With a window of 7 frames, the output port of A could output 7 frames in 7 msec. Then the software in A has to wait for the acknowledgement of the first of these 7 frames before it can put another frame in the output buffer. So there is an idle period of .1 msec every 7.1 msec. (Or worse, if there is delay in the software in A or B). With a window of 8 frames, the output port of A can output 8 frames in 8 msec. .9 msec BEFORE the last of these 8 frames is done being put out, the acknowledgement for the first one should arrive at A. If that happens, A puts the ninth frame into the output buffer before the eigth frame is done being put out: The link never goes idle. (As long as no packet loss or so, and as long as A has stuff to send). The length of a dataframe: It takes 1 msec from the time the first bit of a dataframe starts leaving A until the last bit completes leaving A. In that 1 msec the first bit travels (.001*(2/3)*c) = .001*200,000 = 200 km. So the length of a dataframe is 200 km. Not asked, but think about this: If we assume serial transmission and baseband modulation: The length of a single bit is (1/8,000,000)*(2/3)*c = .025 km = 25 meters. (Why did I require serial transmission and baseband modulation?) 3. The ASCII representation of `T' is 1010100 . What is the parity bit if we use even parity? (5 points) Even parity: The total number of ones must be even. The parity bit is one. The total number of ones is 4, which is even. :-) . Assuming the parity bit is added to (affixed to) the end of the ASCII representation, in order to send `T' we actually send 10101001 . NOT 1010101, as one of the students said. If we did that, how could the receiver tell the difference between T = 1010100 and U = 1010101 ? When we say ``the parity bit is added'' we mean ``the parity bit is affixed''. So, (assuming post-fix, not pre-fix, and assuming big-endian transmission), T is transmitted as 10101001 , and U is transmitted as 10101010 . 4. BRIEFLY, describe Manchester coding. (one is ``up'' and zero is ``down''). Encode the pattern 00110101 . (10 points). Look in your notes. 5. Give the phase / amplitude diagram of 16-QAM with 2 amplitudes and 8 phases. (10 points). Look in your notes. 6A. In problem 4 (Manchester) what is the baud rate if the bitrate is 10 Mbit/sec ? (Add a short sentence explaining your answer). In Manchester coding, you need two baud for one bit. (Half a bit per baud). The baudrate in (4) is 20,000,000 baud/sec. (5 points) 6B. In problem 5 (16-QAM) what is the baud rate if the bit rate is 10 Mbit/sec ? (Add a short sentence explaining your answer). In 16-QAM there are 4 bits per baud. (2^4 = 16). The baudrate in (5) is 2.5 Mbaud/sec. (2,500,000 baud/sec). (5 points) 7. In HDLC, there is only one address field in the frame header. Is this a destination address? a source address? something else? How come one address field is enough? In HDLC we have one ``master node'' with several ``slave nodes''. All communication is between the master and a slave. The address is always the address of the slave. Hence only one address field. It can be source (slave -> master) or destination (master -> slave). (10 points). 8. In 802.11 there are 4 address fields in the frame header. How come we may need 4 addresses? In 802.11 (Wireless LAN) communication CAN be intra-LAN, over two different Base-Stations. If that happens, the addresses are: Source, first Base-Station, second Base-Station, Destination. (not necessarily in that order!). (10 points). 9. Describe how D-AMPS uses FDM as well as TDM. (Be BRIEF !). D-AMPS uses many (in fact: 832) frequency bands (each 30 KHz wide). These bands are separated using Frequency Division Multiplexing. Each band can be used by up to 6 users. These up to 6 users are separated using Time Division Multiplexing. It is a good idea to make a small drawing. (10 points). 10. You have bought cellphone service from your provider in New Jersey. You bought roaming priviliges all over the USA and Canada. You are making an unexpected business trip to San Francisco. In the plane you turned the phone off. (Pilot's orders). On San Francisco airport you turn your phone on but do not make a call. While in the taxi to your business contact, your business contact calls you on your cell phone. Assume there IS dogleg. Describe how the connection is established. Describe how the bits of the conversation flow from your contact's central office to your phone. (Do not worry about encoding schemes like PCM and possible code conversions in the base station or MSC.) There are two questions here: How the connection is established (``how the system finds you''), and how the bits flow once the connection has been establihed. (total 23 points). When you turn on the phone on San Francisco Airport your phone finds a strong control signal and registers with the local MSC. The MSC (using the phone number the cellphone gives it) notifies your home database with your provider in NJ. The home database now knows where you are. When your business contact in San Francisco then calls your number, the Central Office your contact is connected to routes the call (or some signalling information) to the home database in NJ. That home database ``knows where you are''. WITH dogleg: a connection is made in NJ between ``the call from your business contact in San Francisco to NJ'' and ``the call from NJ to you in San Francisco''. The bits flow from your business contact's Central Office to NJ and then back to the MSC in San Francisco you are connected to, then to the Base-Station, then to you. (And vice-versa from you to the business contact). Refinements: The MSC you are using for the conversation need not be the same as the one you registered with: You just may have driven far enough in the meantime that you go through a different MSC. In that case, ``the system'' finds you by paging you in areas close to where you were last time you registered. Also, the MSC your are using during the conversation may change during the conversation (hand-off usually is to another Base-Station, but can be to another MSC). Why did I say ``the central office your business ontact is using'' and not ``your business contact''? Because the connection from your business contact to the central office might be analog. Some wise guy among the students would complain: no bits on that link !! 11. In the context of network security, what is meant by: Confidentiality, Authentication, Integrity, Non-Repudiation? (20 points). Confidentiality: Assurance nobody but the source and destinations can obtain the plaintext. Authentication: Assurance to the destination that the message indeed comes from the purported source. Integrity: Assurance the message has not been modified on the way. Non-Repudiation: The ability, for the destination, to later PROVE (legally, in court) that the message indeed came from the purported source, and had the content is had. 12. Suppose persons A and B use public key encryption. A has private key R_A and public key U_A. (looks better handwritten!). B similarly has R_B and U_B. In order to achieve confidentiality, authentication, and non-repudiation, if A wants to send plaintext P to B, which of the following does he send: a. R_B(U_A(P)), b. U_A(R_B(P)), c. R_A(U_B(P)), d. U_B(R_A(P))? Explain your answer. I am afraid you will need a whole paragraph. Try to keep it brief. Feel free to use R_A, R_B, etc for the KEY as well as for the transformation the key generates. Do not worry about ``real world stuff'' like man in the middle attack, bad people advertising public keys under somebody else's name, etc. (22 points). a and b are nonsense: they would require A to have R_B. c and d both give confidentiality as well as authentication. Only c (effectively) gives non-repudiation: In c, B generates U_B(P) = U_A(R_A(U_B(P))) and P = R_B(U_B(P)), and keeps both P and the original encrypted message R_A(U_B(P)). If necessary, in a court of law, B gives the court P and R_A(U_B(P)) and U_B and U_A. The court then checks that indeed U_B applied to P and U_A applied to R_A(U_B(P)) give the same result. In d, B would have to give the court R_B and U_A. That makes R_B public, with all kinds of nasty results.