Often times it is unclear who the client is and who the server is in certain situations, in these types of situations RPC would not be suitable. RPC also makes unexpected messages hard or impossible to send if the receiver of the message is not expecting the message. Also RPC does not allow multi-threaded servers even when one would be appropriate(Tanenbaum & Renesse, n.d.).
2.Why is timestamping needed in Real Time Applications? (This is in context to RTP)
Time stamping allows for the synchronization of data packets. While RTP doesn't actually provide the synchronization, it does provid the necessary information to the …show more content…
If the server sends a file to the receiver, and it receives it near the end of the packet lifetime, then the ACK may take longer to receive then what is left on the packet lifetime, so the server may send another packet before it receives the ACK leading to duplicate packets.
4.Give one potential disadvantage when Nagle's algorithm is used on a badly congested network.
A big problem can occur when Nagle's algorithm is used alongside Delayed ACK, another method used to help prevent congestion which could possibly be used on a badly congested network. Basically there is a chance that they will work against each other, Nagle's algorithm won't send it's last packet unless it gets an ACK, but the delayed ACK won't be sent because the server still doesn't have all the data it needs. This can cause a slowdown if the buffer sze is 100,000 bytes (Cheshire, 2005).
5.Why does UDP exist? Would it not have been enough to just let user processess send raw IP packets?
We could use IP to send information between hosts, but we would have no way of knowing which application it needs to go to since information about port numbers is isn't known by IP, but it is by UDP. So UDP allows information to be sent to the correct applications since UDP uses source and destination ports(Cnicutar,