Network Programming with Go
- Chapter 1: An Overview of Networked Systems
- Chapter 2: Resource Location and Traffic Routing
- Chapter 3: Reliable TCP Data Streams
- Chapter 4: Sending TCP Data
- Chapter 5: Unreliable UDP Communication
- Chapter 6: Ensuring UDP Reliability
- Chapter 7: Unix Domain Sockets
- Chapter 8: Writing HTTP Clients
- Chapter 9: Building HTTP Services
- Chapter 10: Caddy: A Contemporary Web Server
- Chapter 11: Securing Communications with TLS
- Chapter 12: Data Serialization
- Chapter 13: Logging and Metrics
- Chapter 14: Moving to the Cloud
Chapter 1: An Overview of Networked Systems
The organization of nodes in a network is called its topology.
- point-to-point
- daisy chain, a series of point-to-point connections
- Bus, share a common network link
- Ring, a closed loop in which data travels in a single direction
- Star, a central node has individual point-to-point connections to all other nodes
- Mesh, every node has a direct connection to every other node, eliminates single points of failure
- hybrid, star-ring, start-bus etc.
Chapter 2: Resource Location and Traffic Routing
Sending packets from one IP address to another IP address is known as unicast addressing
IP multicasting: sending a single message to a group of nodes
Broadcasting is the ability to concurrently deliver a message to all IP addresses in a network.
Unlike multicasting, the nodes in the subnet don’t first need to opt in to receiving broadcast messages.
The Address Resolution Protocol(ARP) finds the appropriate MAC address for a given IP address—a process called resolving the MAC address
Nodes maintain ARP tables that map an IPv4 address to a MAC address.