Understanding Networked Applications: A First Course Final exam review by David G. Messerschmitt
Understanding Networked Applications A First Course 2 Copyright notice ©Copyright David G. Messerschmitt, This material may be used, copied, and distributed freely for educational purposes as long as this copyright notice remains attached. It cannot be used for any commercial purpose without the written permission of the author.
Understanding Networked Applications A First Course 3 Note on material coverage On topics assigned by reading but not covered in class, this review lists what I consider the most important concepts To limit the material you are responsible for, exam questions will be limited to these topics or things touched on Therefore you can safely focus your studying around the topics mentioned here and issues they touch on
Understanding Networked Applications A First Course 4 Note This is a review of the material since the second midterm You are responsible for the entire course Please, therefore, see the midterm reviews as well
Understanding Networked Applications A First Course 5 Major topics since midterm Privacy Industrial organization Distributed systems basics –protocols –locating things
Understanding Networked Applications A First Course 6 Major topics (con’t) Communication services –message, queuing, multiplexing, reply, conversation, streaming, broadcast –internet: IP, TCP, etc Trust –availability –security
Understanding Networked Applications A First Course 7 Major topics (con’t) Networking –multiplexing, forwarding, routing, name services, flow and congestion control –encapsulation, fragmentation, layering –internet: IP, TCP, UDP Communications –Bitrate and delay limited communication –Caching
Understanding Networked Applications: A First Course Privacy By David G. Messerschmitt
Understanding Networked Applications A First Course 9 The issue In the course of using a networked application, there is an opportunity to capture a user profile, including –Information provided by the user for legitimate purposes (e.g credit card number) –Information not intended to be revealed by the user (e.g. message) –Information about the user’s activities These issues are aggravated within network applications
Understanding Networked Applications A First Course 10 Anonymous identification Complete anonymity. No identify information (personal or anonymous) is available to applications or service providers. There is no feasible way to capture traces of user activity over time or across applications. Anonymous identification. While no personal identify information (like name, address, address, etc.) is available, it can be inferred when the same user revisits an application or provider (using an anonymous identifier as in the deli example). Traces can be captured of a single user’s activity, but those traces cannot be matched to personal identity. Personal identification. Applications or providers are aware of (at least some) personal identity information. Often, even given incomplete information, it is possible to correlate across distinctive sets of personal information if there is some commonality (e.g. an address).
Understanding Networked Applications A First Course 11 User Application … User profile … Capture Aggregation
Understanding Networked Applications A First Course 12 Some specific privacy policy issues DisclosureDoes the application abide by a comprehensive privacy policy, and is that policy disclosed to the user? AnonymityIs the personal identity of the user known or included in the user profile? ControlIs the user allowed some degree of control over attributes of the policy, what information is collected, and how it is used? DefaultIf there are user-selected options, what is are the defaults if the user makes no explicit choice? Extreme cases are “opt in”, where no information is collected unless the user explicitly chooses, or “opt out”, where all information is collected unless the user explicitly says no. OwnershipWho owns and exercises control over information that is captured? SharingWith who is a user’s personal information shared, and how may they disseminate it further? PersistenceOver what period of time is personal information captured, and how long is it retained?
Understanding Networked Applications: A First Course Industrial Organization By David G. Messerschmitt
Understanding Networked Applications A First Course 14 Implementation ProvisioningOperation Implementation ProvisioningOperation Use Application Infrastructure Analysis Value chain for software
Understanding Networked Applications A First Course 15 System integrator Application software supplier Infrastructure software supplier Application service provider Infrastructure service provider End-user organization Business consultant Industry consultant
Understanding Networked Applications A First Course 16 From stovepipe to layering DataVoiceVideo All applications Value-added services Common services Core technologies Application-dependent infrastructure Application-independent
Understanding Networked Applications A First Course 17 Applications Integrative services Generic services Common representations ProcessingStorageConnectivity Application components
Understanding Networked Applications A First Course 18 Diversity of applications Application and technology- independent infrastructure Technology specific infrastructure Application-specific infrastructure Structure of a layered industry
Understanding Networked Applications: A First Course Distributed systems by David G. Messerschmitt
Understanding Networked Applications A First Course 20 Protocol Distributed algorithm realized by two or more modules to coordinate their actions or accomplish some shared task Module interoperability focuses on actions and protocols
Understanding Networked Applications A First Course 21 ClientServer Time send receive request response subscribe responses
Understanding Networked Applications A First Course 22 Three ways of locating things Name Address Reference
Understanding Networked Applications: A First Course Communication services by David G. Messerschmitt
Understanding Networked Applications A First Course 24 Example communication services Messages Queuing and multiplexing Message with reply Conversation Broadcast
Understanding Networked Applications A First Course 25 Sender1 Recipient Sender2 Mux & queue Multiplexing and queuing Infrastructure Recipient deals with one message at a time even if coming from many senders
Understanding Networked Applications A First Course 26 Send/receive Request/ response Queue = Work on message or request = Blocked waiting for response Send/receive Request/ response Message waiting SenderRecipient SenderRecipient Comparison
Understanding Networked Applications A First Course 27 Audio coder Audio decoder Video coder Video decoder Streaming multimedia
Understanding Networked Applications A First Course 28 Time Accumulate audio in message Send message Receive message Playback audio in message Delay A session supports streaming multimedia
Understanding Networked Applications: A First Course Security by David G. Messerschmitt
Understanding Networked Applications A First Course 30 Availability Application up and running correctly –increasingly 24x7 Expressed as expected downtime per unit time Some types of downtime: –Off-line upgrade and maintenance –Software crashes –Equipment failure –Successful denial-of-service attack
Understanding Networked Applications A First Course 31 Encryption Encrypt Decrypt Ciphertext Encryption keyDecryption key Plaintext message Plaintext message
Understanding Networked Applications A First Course 32 Information Data Block: plaintext EncryptDecrypt Information Data Block: plaintext Representation by data (defined by application) FragmentationAssembly Interpretation assumed by encryption algorithm Ciphertext Encryption obscures data representation
Understanding Networked Applications A First Course 33 Brute force approach: block substitution table Plaintext (n bits) … Ciphertext (n bits) …
Understanding Networked Applications A First Course 34 ffff bits Bit-by bit addition (base-two) 16 rounds k 15 k 16 k2k2 k1k1 Plaintext block Ciphertext block Confusion Diffusion DES symmetric algorithm 64 bit plaintext 56 bit key
Understanding Networked Applications A First Course 35 0 n-1 P = plaintext C = ciphertext Encrypt Decrypt RSA asymmetric algorithm C = P s mod n P = C t mod n t cannot be computed from (n,s) in reasonable time
Understanding Networked Applications A First Course 36 Alice writes message on paper in permanent ink Alice adds her signature Alice seals message in envelope Only Bob breaks seal and opens envelope Bob verifies Alice’s signature Post office physical security Alice requests return acknowledgement from Bob
Understanding Networked Applications A First Course 37 EncryptionDecryption Plaintext P Original plaintext P Ciphertext C SK EncryptionDecryption P PC BPKBSK Secret key Public key Secret key Message sent by Alice Message received by Bob Or Confidentiality
Understanding Networked Applications A First Course 38 k Alice (being authenticated) DecryptionEncryption APKASK Response Bob Compare Challenge-response protocol Random integer Challenge
Understanding Networked Applications A First Course 39 EncryptionDecryption P S ASKAPK Signature (Alice) senderBob (recipient) Plaintext Compare Secret keyPublic key Digital signature Verified by a signature authority
Understanding Networked Applications A First Course 40 BobAlice CA Alice convinces CA of her identity Alice provides Bob with a replica of her digital certificate, which provides and certifies Alice’s public key CA gives digital certificate and secret key to Alice Bob verifies CA signature using CA’s public key Digital certificate protocol
Understanding Networked Applications A First Course 41 Certificate authority Bank’s certificate issued by CA Merchant’s certificate issued by bank Verify signature Authority’s known public key Bank’s public key Verify signature Merchant’s public key Chain of trust (e-commerce example)
Understanding Networked Applications A First Course 42 Secure socket layer Illustrated as an example of –Authentication (PKI) –Confidentiality (symmetric encryption with secret session key) Shortcomings –No authentication of client –No client digital signatures
Understanding Networked Applications: A First Course Performance By David G. Messerschmitt
Understanding Networked Applications A First Course 44 Performance measures Delay –How long does it take things to happen? Capacity and throughput –How many things can happen (per unit time)? –Utilization Tradeoff –Increasing throughput through utilization is cost effective but degrades delay
Understanding Networked Applications A First Course 45 Wherefrom congestion? time (50% utilization, regular arrivals, no backlog) time (50% utilization, irregular arrivals, inevitable backlog) Increased delay from congestion is due to irregular arrivals causing system resources to be temporarily oversubscribed Actual delay depends on arrival statistics
Understanding Networked Applications: A First Course Networking by David G. Messerschmitt
Understanding Networked Applications A First Course 47 Impact of network on applications Communication service provided the application –what does application have to do for itself? Impact on application performance –message (packet) latency –message (packet) loss –message (packet) corruption
Understanding Networked Applications A First Course 48 Internetworking (IP) Subnetworks Datagram (UDP)Bytestream session (TCP) Remote method invocation (RMI) Application Middleware OS Network Partial internet protocol architecture
Understanding Networked Applications A First Course 49 Packet switch AddrOutLink Output link Routing table Packet Packet forwarding...
Understanding Networked Applications A First Course 50 ProducerConsumer Queue Stream of messages Flow control Normally the producer determines what information is sent, but consumer has to have a way to slow down producer
Understanding Networked Applications A First Course 51 Carried traffic Offered traffic Network “capacity” Increasing portion of network traffic is resent packets Social optimum Congestion instability
Understanding Networked Applications A First Course 52 Key ideas Packet encapsulation: one packet can be encapsulated in another Packet fragmentation: one packet can be split into two or more packets and encapsulated Protocol layering: one service can be layered on another by fragmentation and encapsulation
Understanding Networked Applications A First Course 53 Layer n+1 Layer n Layer n+1 protocol header Layer n protocol header Encapsulated layer n+1 packet, including header Peer-to-peer communication
Understanding Networked Applications A First Course 54 Destination Source Destination Source ACK Task Concurrent tasks for higher throughput Packets can be reordered using sequence number
Understanding Networked Applications A First Course 55 Gateway Public telephone network Internet IP telephone Plain old telephone Voice over IP
Understanding Networked Applications: A First Course Communications by David G. Messerschmitt
Understanding Networked Applications A First Course 57 Conveyer belt Bits waiting to be sent Bits that have already been received Conveyer belt analogy = “0” = “1” Constant speed
Understanding Networked Applications A First Course 58 Bottlenecks and workarounds Compare message size to delay-throughput product (number of bits on conveyer) Bitrate limited –compression Delay limited –caching
Understanding Networked Applications A First Course 59 Remote data being accessed Local cache Communication bottleneck Future references (where possible) Caching Predictive caching becomes very important in the delay-limited regime