A topic that could be it own course. We will look at how the Internet protocols work and what quality of service they provide.
Since all distributed systems do communicate it's important to understand what services we can expect and what limitation s we have. Especially important are IP, TCP, UDP, DNS and NAT.
Having a network protocol does not solve all issues, we have to know how to actually access it from a program? What are the API:s that we can use and what do they provide. How do we code messages into byte streams in a way that the receiver can unpack the stream and recreate the message?