


Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of the topics covered in the final exam for virginia tech's ece 4564: network application design course, offered in fall 2008. The exam includes multiple-choice, short-answer, and long-answer questions, and students are allowed to refer to class notes, assignments, textbook, and instructor-provided materials on blackboard. Various aspects of networks and services, network applications, client-server protocols, programming interfaces and sockets, client and server algorithms and examples, server design techniques, client design techniques, design examples, application layer protocols, multicast applications, application security, xml, web applications, web services, remote procedure calls, and data representation.
Typology: Study notes
1 / 4
This page cannot be seen from the preview
Don't miss anything!



Virginia Tech Bradley Department of Electrical and Computer Engineering
Final Exam Topics The exam will be given on Dec. 16, from 3:25-5:25 p.m. You will have two hours to complete the exam. The final exam will consist of a mix of multiple-choice, short-answer, and long-answer questions. You will be allowed to refer to your class notes, your submitted or in-progress assignments, text book, and any material provided by the instructor on Blackboard. You may use a computer only to refer to notes and material on Blackboard. In particular, you will not be allowed to run a compiler or to view web sites other than the class Blackboard site. The final exam is comprehensive. To be successful, you should be able to do the following. verview of Networks and Services Distinguish between services, interfaces, and implementations related to protocols Identify the functions and specify the operation of the key protocols in the TCP/IP protocol suite, including IP, IPv6, UDP, and TCP. Identify the differences in transport layer services provided by TCP versus UDP and select an appropriate protocol based on application characteristics. Overview of Network Applications Describe the role of port numbers for network applications. Distinguish between clients and servers as determined by the transport protocol (TCP and UDP) and the application protocol. Introduction to Network Application Design Characterize client-server protocols with respect to being connection-oriented versus connectionless. Characterize client-server protocols with respect to being stateful versus stateless. Discuss design issues related to stateful and stateless application protocols. Characterize a server as being concurrent versus iterative. Compare and contrast the use of threads versus processes for concurrency. Programming Interface and Sockets Describe the role and functionality of a socket and a socket descriptor. Discuss the need for network byte order and provide an example. Describe the basic runtime structure of Microsoft’s .NET. Client Algorithms and Examples Describe how .NET classes and associated methods provide TCP and UDP clients with required functionality. Relate Connect() and Shutdown() methods in the Socket class to TCP connect and disconnect operations. Describe or analyze the basic operation of clients for both connection-oriented and connectionless application protocols. Analyze the operation of example DAYTIME, TIME, and ECHO clients.
Write pseudocode and/or C# code snippets for key functionality in synchronous TCP and UDP clients. Server Algorithms and Examples Describe how .NET classes and associated methods provide TCP and UDP servers with required functionality. Describe or analyze the basic operation of servers for both connection-oriented and connectionless application protocols and both iterative and concurrent implementations. Select iterative versus concurrent server designs based on requirements and application characteristics. Analyze the operation of example DAYTIME, TIME, and ECHO servers. Write pseudocode and/or C# code snippets for key functionality in synchronous TCP and UDP servers. Discuss causes of deadlock and analyze scenarios for possible deadlock. Server Design Techniques Identify and compare different methods of concurrency management and control for servers. Analyze, in a simple way, the performance of an iterative versus concurrent server design. Discuss design principles that can improve the robustness of server applications. Client Design Techniques Describe roles for concurrency in clients. Discuss design principles that can improve the robustness of client applications. Design Examples Discuss the key features and differences between the different designs for the ECHO servers and clients. Write pseudocode and/or C# code snippets for key functionality in the example ECHO clients and servers. Example Application Layer Protocols Describe the operation of the client-server model used for HTTP and the role of request and reply messages. Compare persistent and non-persistent connections and indicate the advantages and disadvantages of persistent connections. Describe techniques used by HTTP to support authorization, state (cookies), and caching. Discuss how FTP operates using a control and data channel. List the major components of a mail system. Describe the basic operation of SMTP. Describe the characteristics of mail message formats. Describe the role of MIME in email. Describe the basic operation of POP3 for mail access.
Describe .NET remoting’s structure and operation. Data Representation Describe the different schemes for data representation and identify strengths and weaknesses. Describe the basic operation of four example schemes, NDR, ASN.1, XDR, and SOAP with XML. Show how simple data types can be represented using four example schemes, NDR, ASN.1, XDR, and SOAP with XML. Raw Sockets Describe the use of ICMP for queries and replies. Describe the format of ICMP messages. Describe how ping and tracert work Projects Write pseudocode and/or C# code snippets for key functionality in the applications developed for the 5 Projects.