Unit 6 CS 2204 Assignment
Unit 6 CS 2204 Assignment
To transfer 2000 bytes of user data with a single UDP send over standard 1500 byte Ethernet max
payloads, two IPv4 fragments will be needed. The first fragment will contain 1480 bytes of user data and
the second fragment will contain 520 bytes of user data. The fragmentation process involves dividing the
original IP datagram into smaller fragments, each of which can fit into the maximum transmission unit
(MTU) of the network. The IPv4 header of each fragment includes a flag to indicate that it is a fragment,
an offset to indicate its position in the original datagram, and a unique identification number to identify
the original datagram.
Source:
- Tight coupling: RPC requires the caller and the callee to agree on the method signature, protocol, and
data types. Any changes in the method signature or data types require changes in both the caller and
the callee, which can lead to tight coupling and maintenance issues.
- Security: RPC relies on network security measures, such as firewalls and VPNs, to protect against
unauthorized access and attacks. However, these measures can be complex to set up and maintain, and
may not provide sufficient protection against sophisticated attacks.
- Scalability: RPC can become a bottleneck in large-scale distributed systems, as it may not be able to
handle high volumes of requests and responses efficiently. This can lead to performance issues and
system failures.
Source:
Birrell, A. D., & Nelson, B. J. (1984, October). Implementing remote procedure calls. In ACM SIGOPS
Operating Systems Review (Vol. 18, No. 6, pp. 32-40). ACM.
Source:
Perkins, C. (2003). RTP: Audio and video for the Internet. Addison-Wesley Professional.
4. UDP exists as a transport protocol that provides a lightweight, low-latency alternative to TCP for
applications that do not require reliability or congestion control. UDP is used when the speed and
efficiency of data transfer are more important than accuracy and completeness. It is often used for real-
time and multimedia applications, such as video streaming and online gaming, where small delays or
packet loss are tolerable.
User processes could send raw IP packets, but this would require them to handle many low-level details,
such as fragmentation, reassembly, and error detection, that are typically handled by transport
protocols like UDP or TCP. In addition, using raw IP packets would not provide the level of abstraction
and functionality that transport protocols offer, such as port numbers and checksums.
Source:
5. QUIC (Quick UDP Internet Connections) eliminates a couple of RTTs (Round Trip Times) usually
needed at the start of a secure web connection by using several techniques. One of these techniques is
called 0-RTT (Zero Round Trip Time) mode, which allows the client to send encrypted data to the server
in the first message of the connection, without waiting for the server's response. This is possible
because the client can store the necessary cryptographic keys and parameters from a previous
connection to the same server, and use them to encrypt and authenticate the data in the first message.
The server can decrypt and verify the data using the stored keys and parameters, and respond with its
own encrypted data in the second message.
Another technique used by QUIC is called "connection migration". This allows a QUIC connection to be
moved from one network path to another, without having to renegotiate the cryptographic keys and
parameters or restart the connection. This can reduce the latency and improve the reliability of the
connection, particularly in mobile or wireless networks where network conditions can change
frequently.
Sources:
- Iyengar, J., & Thomson, M. (2015, July). QUIC: An UDP-based secure and reliable transport for HTTP/2.
In Proceedings of the 2016 ACM SIGCOMM Conference (pp. 265-278). ACM.
- Langley, A., Ritter, E., & Maruyama, K. (2017). The QUIC transport protocol: Design and Internet-scale
deployment. IEEE Journal on Selected Areas in Communications, 35(9), 2135-2144.