Health & Fitness

>>> SOLUTIONS <<< Answer the following questions regarding the basics of computer networks and the Internet.

Comprehensive Final Exam for Computer Networks Spring 2006 SOLUTIONS
of 10
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Comprehensive Final Exam for Computer Networks Spring 2006 SOLUTIONS Welcome to the comprehensive final exam for Computer Networks. Read each problem carefully. There are ten required problems each worth 10 points and one extra credit problem worth 10 points. You may have with you a calculator, pencils, blank paper, lucky rabbit's foot, and one 8.5 x 11 inch formula sheet. On this formula sheet you may have anything you want (definitions, formulas, homework answers, old exam answers, etc.) as handwritten by you on both sides of the sheet. Photocopies, scans, or computer generated text are not allowed on this sheet. You have 120 minutes for the exam. Unless otherwise stated in the problem, start the answer for each new problem on a separate sheet of paper and write only on one side of each sheet. Good luck and be sure to show your work! Problem #1 Answer the following questions regarding the basics of computer networks and the Internet. a) What are the fundamental measures of interest for a communications system? Throughput, delay, loss, cost, mobility, robustness, and secrecy b) Briefly describe circuit switching and packet switching. Circuit switching uses a dedicated path that is established before communications begins. Packet switching shares a path that need not be established before communications begins. c) What are the four causes of packet delay? Processing, transmission, propagation, and queueuing. d) Roughly, what is the signal propagation delay from here to Atlanta (about 400 miles)? Speed of light propagation delay is about 1 nanosecond per foot, so 1 mile is about 5 microseconds, and thus the propagation delay from Tampa to Atlanta is about 2 milliseconds (400 miles x 5 microsecond/mile). e) Define the open concept. The ability of any two systems conforming to the reference model and associated standards to communicate (and interoperate) with each other. Problem #2 Describe how works. Describe the key components and flows. Identify key standards that apply. Use figures as needed. About 150 words should be sufficient. is an asynchronous communications medium based on sent and received text messages (may include non-text attachments). The three major components of are user agents, mail servers, and the SMTP (Simple Mail Transfer Protocol). SMTP is used to transfer messages between mail servers using TCP/IP (client/server). SMTP uses ASCII commands and headers. Commands are not authenticated. Between a mail server and a user agent, POP (Post Office Protocol), IMAP (Internet Mail Access Protocol), or HTTP (HyperText Transfer Protocol) is used to access received mail stored in inboxes on the mail server. Mail servers have a fixed IP address and are always powered-on. The user agents need not always be powered-on and also need not be fixed in location or IP address. The figure shows a user agent accessing a mail server with POP, two mail servers exchanging messages using SMTP, and another user agent accessing its mail server using IMAP. user agent server server user agent POP SMTP IMAP The Internet Problem #3 Attached are server.c and client.c with some bugs. Identify the bugs and explain how to fix them. Server program: Missing welcome_s = socket() after line 25 Missing htons() in line 28 Missing bind() after line 29 Listen must have more than 0 connections in line 31 Missing addr_len assignment after line 32 Missing +1 for strlen for \0 in line 38 Should recv() on connect_s in line 38 Should send() on connect_s in line 38 Missing closesocket() of welcome_s after line 42 Client program: Type of server_addr should be struct sickaddr_in in line 18 Size of out_buf and in_buf is too small in lines 19 and 20 Should be SOCK_STREAM and not DATAGRAM in line 24 Missing htons() in line 28 Missing +1 for strlen for \0 in line 36 Problem #4 Derive the formula for link utilization (U) for the stop-and-wait protocol. You may assume that a sender always has packets to send and that packets are never lost or in error. If other assumptions are needed to complete a reasonable derivation, state them. We know U = t_useful / (t_useful + t_overhead). data ack t_pr t_fr t_proc t_pr t_proc t_ack For SAW protocol we have the following time components, t_fr for data frame transmission, t_pr for propagation, t_proc for processing, and t_ack for ack frame transmission. We have: t_useful = t_fr t_overhead = 2t_pr + 2t_proc + t_ack. Thus U = t_fr / (t_fr + 2t_pr +2t_proc + t_ack). Problem #5 Answer the following questions about TCP: a) Describe how TCP sets its retransmission time-out (RTO) value. The ideal RTO value would be the exact RTT for the current packet sent. TCP uses an algorithm to estimate the RTT value. The algorithm uses exponential smoothing (alpha is the smoothing parameter) to generate an SRTT (smoothed RTT) as a function of the last measured RTT sample and past history as SRTT(k+1) = alpha*srtt(k) + (1 alpha)*rtt_sample(k+1). RTO(k+1) is then beta*srtt(k+1). A more recent algorithm also estimates the variability in RTT and uses this variability estimate to add a value to SRTT(k+1) instead of just multiplying it by a fixed beta. b) Show the packet flows for TCP connection establishment and termination. Establish SYN SYN-ACK ACK Terminate FIN ACK FIN ACK Problem #6 Below are the first 60 bytes of a TCP/IP packet captured using Ethereal on an Ethernet network. On the last pages of this exam are packet header templates. Decode the packet for the following fields: - Ethernet MAC source and destination addresses (hexadecimal) - IP source and destination addresses (in standard dotted-decimal format) - TCP source and destination port numbers (decimal) - Type of TCP segment (e.g., SYN, FIN, ACK, etc.) - Application layer protocol (and command, if applicable) f7 88 7d b }..C..C..E. 02 4b 1f f ca 9b 83 f7 03 2a e0 5a 79 da 38 0b ef h.P.Zy.8..SP. ff ff 80 d f 7e GET /~chri e 2f e 2e sten/ 6d 6c f 31 2e 31 0d 0a 48 6f 73 ml HTTP/1.1..Hos MAC source = f7887d hex MAC dest = b79243 hex IP source = IP dest = TCP source port = 2152 TCP dest port = 80 TCP type = PUSH, ACK Application = HTTP (this is an HTTP 1.1 GET) Problem #7 Answer the following questions about LANs (wired and wireless): a) What is a LAN? Define it precisely. A LAN is a data network optimized for a medium-sized area (10s to 100s of stations and 100s to 1000s of meters). A LAN is owned and operated by a single organization. b) Describe CSMA/CD and BEB as used in IEEE Ethernet. CSMA/CD is Carrier Sense Multiple Access / Collision Detection and enables the sharing of a wired medium among multiple hosts. A 1-persistent CSMA algorithm is implemented as follows (for when a host has a frame to transmit): 1) if medium is idle then transmit 2) if medium is busy then wait for medium to go idle and then transmit 3) if detect a collision then xmit a brief jam signal, stop transmitting, wait a random period of time, then (1) The wait a random period of time is implemented with Binary Exponential Backoff: while (attempts 16) k = min(attempts, 10) r = rand(0, 2^k) delay = r * slot_time A slot_time is the time it takes to transmit 64 bytes. This time determines the maximum span of an Ethernet (i.e., tpr = tfr for frame of 64 bytes and tpr being the end-to-end propagation time). c) Describe CSMA/CA as used in IEEE WiFi. CSMA/CA is Collision Avoidance and has both a sender and receiver component. sender algorithm is: The 1) if sense channel idle for DIFS then transmit entire frame 2) if sense channel busy then start random backoff time timer count down while channel is idle transmit when timer expires if no ack, increase random backoff interval and repeat (2) The receiver algorithm is: 1) if frame received then return ACK after SIFS DIFS is distributed interframe time and SIFS is short interframe time. DIFS is longer than SIFS. Problem #8 Answer the following questions bridges and switches: a) What is a bridge? What is a switch? What are the motivations to use bridges and switches? A bridge is a 2-port layer-2 packet filter. A bridge forwards only non-local frames. A bridge has no knowledge of upper layer protocols. A switch is a multiport bridge. Motivations to uses bridges and switches include increasing performance (by localizing traffic), improving reliability (over a single large LAN), and defining organizational boundaries. b) Describe (give) the forwarding and learning algorithm for transparent bridges. receive a frame if (DA is in table) and (DA is local) then not forward else forward if (SA in table) then check/update direction if (SA not in table) then add to table c) What is media speed or wire speed (in packets per second) for 1500 byte packets on a 1 Gb/s Ethernet link. 10^9 bits/sec / (( ) bytes/frame * 8 bits/byte) = frames/sec Problem #9 IEEE WiFi uses three address fields in its frame format to forward packets from a host in a hotspot to the Internet and from the Internet to a host in a hotspot. Assume that a WiFi access point (AP) is connected to a router port via an Ethernet link. Describe the packet flow from WiFi host to Internet and from Internet to WiFi host. Carefully identify the contents of all WiFi and Ethernet addresses fields. From host to AP to router port: Host to AP: WiFi frame has addr1 = AP MAC, addr2 = host MAC, addr3 = router MAC AP to router: Ethernet frame has DA = router MAC and SA = host MAC From router port to AP to host: Router to AP: Ethernet frame has DA = host MAC, SA = router MAC AP to host: WiFi frame has addr1 = host MAC, addr2 =AP MAC, addr3 = router MAC Problem #10 Answer the following questions about multimedia networking and security: a) What is a jitter buffer? How does it work? Why is it needed? A jitter buffer is a FIFO queue in a receiving host where prefetched video (or audio) data is played-out. The playout rate is the same as the sender rate. The amount of pre-fetched data is such that it can tolerate delay variability in the network without starving (running out of data). A jitter buffer is needed to guarantee a needed constant playout rate (i.e., the same constant rate as at the sender) to the decoder in the receiver. b) If we were to design a next generation network that would give QoS guarantees, what are the four basic principles (or pillars) needed for this network? The four pillars are packet classification, isolation, call admission, and high utilization. c) What are the three desirable properties of secure communications? Describe each property in one sentence. The three properties are confidentiality, authentication, and integrity. Confidentiality is that only sender and receiver should be able to understand the message transmitted. Authentication is to confirm or prove the identity of the sender or receiver in the communication. Integrity assures that the message transmitted is not altered maliciously or by accident to achieve non-repudiation. Extra Credit Give 40 networking-related acronyms (covered in this class, or in the textbook) and define them. For example, TCP = Transmission Control Protocol is good. MCSE = Microsoft Certified Systems Engineering is not good (we did not cover this topic or acronym in class). No specific solution. To be graded individually. Key is that the acronym is related to networking. 1. //======================================================= file = server.c ===== 2. //= A message server program to demonstrate sockets programming = 3. //= - TCP/IP client/server model is implemented = 4. //============================================================================= 5. //----- Include files #include stdio.h // Needed for printf() 7. #include string.h // Needed for memcpy() and strcpy() 8. #include windows.h // Needed for all Winsock stuff 9. //----- Defines #define PORT_NUM 1050 // Arbitrary port number for the server 11. //===== Main program ========================================================== 12. void main(void) 13. { 14. WORD wversionrequested = MAKEWORD(1,1); // Stuff for WSA functions 15. WSADATA wsadata; // Stuff for WSA functions 16. unsigned int welcome_s; // Welcome socket descriptor 17. struct sockaddr_in server_addr; // Server Internet address 18. unsigned int connect_s; // Connection socket descriptor 19. struct sockaddr_in client_addr; // Client Internet address 20. struct in_addr client_ip_addr; // Client IP address 21. int addr_len; // Internet address length 22. char out_buf[100]; // Output buffer for data 23. char in_buf[100]; // Input buffer for data 24. // This stuff initializes winsock 25. WSAStartup(wVersionRequested, &wsadata); 26. // Fill-in server (my) address information and bind the welcome socket 27. server_addr.sin_family = AF_INET; 28. server_addr.sin_port = PORT_NUM; 29. server_addr.sin_addr.s_addr = htonl(inaddr_any); 30. // Listen on welcome socket for a connection 31. listen(welcome_s, 0); 32. // Accept a connection. 33. connect_s = accept(welcome_s, (struct sockaddr *)&client_addr, &addr_len); 34. // Print an informational message that accept completed 35. printf( accept completed \n ); 36. // Send to the client using the connect socket 37. strcpy(out_buf, Test message from server to client ); 38. send(welcome_s, out_buf, strlen(out_buf), 0); 39. // Receive from the client using the connect socket 40. recv(welcome_s, in_buf, sizeof(in_buf), 0); 41. printf( received from client... data = '%s' \n , in_buf); 42. // Close sockets and clean-up 43. closesocket(connect_s); 44. WSACleanup(); 45. } 1. //======================================================= file = client.c ===== 2. //= A message client program to demonstrate sockets programming = 3. //= - TCP/IP client/server model is implemented = 4. //============================================================================= 5. //----- Include files #include stdio.h // Needed for printf() 7. #include string.h // Needed for memcpy() and strcpy() 8. #include windows.h // Needed for all Winsock stuff 9. //----- Defines #define PORT_NUM 1050 // Port number used at the server 11. #define IP_ADDR // IP address of server (*** HARDWIRED ***) 12. //===== Main program ========================================================== 13. void main(void) 14. { 15. WORD wversionrequested = MAKEWORD(1,1); // Stuff for WSA functions 16. WSADATA wsadata; // Stuff for WSA functions 17. unsigned int client_s; // Client socket descriptor 18. double server_addr; // Server Internet address 19. char out_buf[10]; // Output buffer for data 20. char in_buf[10]; // Input buffer for data 21. // This stuff initializes winsock 22. WSAStartup(wVersionRequested, &wsadata); 23. // Create a client socket 24. client_s = socket(af_inet, DATAGRAM, 0); 25. // Fill-in the server's address information and do a connect with the 26. // listening server 27. server_addr.sin_family = AF_INET; 28. server_addr.sin_port = PORT_NUM; 29. server_addr.sin_addr.s_addr = inet_addr(ip_addr); 30. connect(client_s, (struct sockaddr *)&server_addr, sizeof(server_addr)); 31. // Receive from the server using the client socket 32. recv(client_s, in_buf, sizeof(in_buf), 0); 33. printf( received from server... data = '%s' \n , in_buf); 34. // Send to the server using the client socket 35. strcpy(out_buf, Test message from client to server ); 36. send(client_s, out_buf, strlen(out_buf), 0); 37. // Close and clean-up 38. closesocket(client_s); 39. WSACleanup(); 40. } NOTE: Ethereal traces do not contain the Preamble or SFD. All LAN addresses are 6 bytes. From: W. Stevens, TCP/IP Illustrated, Volume 1 The Protocols, Addison-Wesley, Boston, 1994.
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks