Responsible for delivering data across networks with the desired reliability or quality Q2. Describe the following: a. Services Provided by transport layer Transport layer adds reliability to the network layer Offers connectionless (e.g., UDP) and connectionoriented (e.g, TCP) service to applications
Transport layer sends segments in packets (in frames
b. All Transport Service Primitives Primitives that applications might call to transport data for a simple connection-oriented service: Client calls CONNECT, SEND, RECEIVE, DISCONNECT Server calls LISTEN, RECEIVE, SEND, DISCONNECT
State diagram for a simple connection-oriented service Solid lines (right) show client state sequence Dashed lines (left) show server state sequence Transitions in italics are due to segment arrivals.
c. Three-way handshake for establishing connection Three-way handshake used for initial packet Since no state from previous connection Both hosts contribute fresh seq. numbers CR = Connect Request
Three-way handshake protects against odd cases: a) Duplicate CR. Spurious ACK does not connect
b) Duplicate CR and DATA. Same plus DATA will be rejected (wrong ACK).
d. main problem that effect the network performance Unexpected loads often interact with protocols to cause performance problems Need to find the situations and improve the protocols Examples: Broadcast storm: one broadcast triggers another Synchronization: a building of computers all contact the DHCP server together after a power failure Tiny packets: some situations can cause TCP to send many small packets instead of few large ones e. DTN Architecture Messages called bundles are stored at DTN nodes while waiting for an intermittent link to become a contact Bundles might wait hours, not milliseconds in routers May be no working end-to-end path at any time Example DTN connecting a satellite to a collection point
There may be no working path sometimes (satellite has no contact, ground station backhaul broken) or the path might not exist for long enough to send a but satellite software would still like to send images without worrying about these issues even if the network stores them. Storing bundles at ground stations also decouples the satellite link from the ground backhaul. If the wireless is faster then images may be stored in the ground station. Example DTN connecting a satellite to a collection point
Q3. Briefly explain: a. All Connection Release techniques Key problem is to ensure reliability while releasing Asymmetric release (when one side breaks connection) is abrupt and may lose data
Symmetric release (both sides agree to release) cant be handled solely by the transport layer Two-army problem shows pitfall of agreement
Normal release sequence, initiated by transport user on Host 1 DR=Disconnect Request Both DRs are ACKed by the other side
Error cases are handled with timer and retransmission
b. Packed Crash Recovery Application needs to help recovering from a crash Transport can fail since A(ck) / W(rite) not atomic
c. TCP Uses several mechanisms that work together for congestion control
Q4. B has a fixed buffer of 4 segments. A gets to send up to message ack+buf. Messages go into Bs buffer. a. Draw occupied buffer space. At unrelated times Bs application reads data from Bs buffer and frees up space for more data to arrive.
b. When does Bs application receive data from the buffer? Between times 5&6, 10&11, 11&12, and 15&16. Q5. Explain why does the maximum packet lifetime, T, have to be large enough to ensure that not only the packet but also its acknowledgements have vanished? If we wait a time T secs after a packet has been sent, we can be sure that all traces of it are now gone and that neither it nor its acknowledgements will suddenly appear out of the blue to complicate matters. With packet lifetimes bounded, it is possible to devise a practical and foolproof way to reject delayed duplicate segments. If a machine loses its memory or crashes, it will not know which the next identifier to assign to a new connection is, and which connection identifiers were already used. Consequently, we have to wait a time T after a packet or acknowledgement has been sent, to make sure an old duplicate appears as legitimate one to confuse matters.
Q6. briefly explain and draw the following: a. Max-min fairness gives equal shares of bottleneck
Note that fairness is more complicated than giving all flows the same bandwidth, e.g., 1/3 units. B, C, and D share a bottleneck so they each get 1/3 of it. But A does not have this bottleneck so giving it 1/3 units only wastes some bandwidth -- it can have 2/3 units without slowing anyone else down. This is max-min fair, which maximizes the minimum bandwidth flows get, then lets flows go ahead when they are able to use excess bandwidth. b. Changing bandwidth allocation over time We want bandwidth levels to converge quickly when traffic patterns change
c. UDP UDP (User Datagram Protocol) is a shim over IP Header has ports (TSAPs), length and checksum.
d. TCP Sliding Window TCP adds flow control to the sliding window as before ACK + WIN is the senders limit
Need to add special cases to avoid unwanted behavior E.g., silly window syndrome [below]
e. Bundle Protocol design format Features of the bundle message format: Dest./source add high-level addresses (not port/IP) Custody transfer shifts delivery responsibility Dictionary provides compression for efficiency
Q7. Give the full name for the following: a. UDP User Datagram Protocol b. TSAP Transport Services Access Point c. ACK Acknowledgement d. RPC Remote procedure call e. RTP Real-time Transport Protocol f. TCP Transmission Control Protocol
g. cwnd congestion window h. RTT round-trip time i. DTN Delay Tolerant Networks Q8. How the user's packet lost in the network? Wireless links lose packets due to transmission errors Q9. What are the rules of thumb for fast host software? Host speed more important than network speed Reduce packet count to reduce overhead Minimize data touching Minimize context switches Avoiding congestion is better than recovering from it Avoid timeouts Q10. Why for fast and better performance needs compression for packet header? Overhead can be very large for small packets 40 bytes of header for RTP/UDP/IP VoIP packet Problematic for slow links, especially wireless Header compression mitigates this problem Runs between Link and Network layer Omits fields that dont change or change predictably 40 byte TCP/IP header 3 bytes of information Gives simple high-layer headers and efficient links Q11. What is the purpose of DTNs? store messages inside the network until they can be delivered Q12. Why Convergence layers used in/with the bundle protocol? We want to define just one Bundle protocol to run over TCP or other transport layers (SCTP, etc.). The transport protocols are not going to have exactly the same interfaces, so they will not fit exactly with the bundle protocol. Convergence layers are the glue that join the interfaces together. Q1. Give the full title for the following: a. DNS Domain Name System b. IP Internet Protocol c. STMP Simple Mail Transfer Protocol) d. MIME Multipurpose Internet Mail Extension e. HTTP HyperText Transfer Protocol f. URL Uniform Resource Locators g. DCT Discrete Cosine Transformation h. JPEG Joint Photographic Experts Group i. SIP Session Initiation Protocol) j. CDN Content Delivery Network k. P2P Peer to peer l. DHT Distributed Hash Tables
Q2. What is the purpose for the DNS? The DNS resolves high-level human readable names for computers to low-level IP addresses Q3. How user/computer find an IP? Finding the IP address for a given hostname is called resolution and is done with the DNS protocol. Resolution: Computer requests local name server to resolve Local name server asks the root name server Root returns the name server for a lower zone Continue down zones until name server can answer DNS protocol: Runs on UDP port 53, retransmits lost messages Caches name server answers for better performance
Q4. Briefly explain this URL protocol: http://www.phdcomics.com/comics.php
Q5. Write all necessary Steps for a client (browser) takes to follow a hyperlink. Steps a client (browser) takes to follow a hyperlink: Determine the protocol (HTTP) Ask DNS for the IP address of server Make a TCP connection to server Send request for the page; server sends it back Fetch other URLs as needed to display the page Close idle TCP connections Q6. Write all necessary Steps for a server takes to serve pages. Steps a server takes to serve pages: Accept a TCP connection from client Get page request and map it to a resource (e.g., file name) Get the resource (e.g., file from disk) Send contents of the resource to the client. Release idle TCP connections Q7. What are the differences between the following: a. Static and dynamic web pages Static Web pages are simply files Have the same contents for each viewing Can be visually rich and interactive nonetheless: HTML that mixes text and images Forms that gather user input Style sheets that tailor presentation Vector graphics, videos, and more (over) . . . Dynamic pages are generated by programs running at the server (with a database) and the client E.g., PHP at server, JavaScript at client Pages vary each time like using an application Web page that gets form input and calls a server program PHP server program PHP calls that creates a custom Web page b. server and client programs
Q8. Briefly explain the HTTP. HTTP (HyperText Transfer Protocol) is a requestresponse protocol that runs on top of TCP Fetches pages from server to client Server usually runs on port 80 Headers are given in readable ASCII Content is described with MIME types Protocol has support for pipelining requests Protocol has support for caching Q9. Gives all steps are required by JPEG lossy compression sequence to compress one still Image
Q10. How do peers (P2P) find each other? Peers find each other via Tracker in torrent file