Course info can be found here
Good Blog TCP and socket
Lecture videos: Bilibili and Youtube
Problem: Applications send and receive data in packets over an Internet that is unreliable.
Goal: Sending data reliably over an Internet that is unreliable.
In summary:
Packets are forwarded hop-by-hop using the IP destination address. Our applications use TCP to make sure they are delivered and put back in the correct order.
Reliability
A module behaves reliably when it:
- provides some stated abstraction/interface
- even in the face of underlying faults(e.g. packet loss)
- and when it can’t do that, the module signals failure
Question:
How to provide these abstractions reliably on top of an unreliable system?