Networking (TCP/IP) with Go
Every network engineer has at some point learned about the seven layers of the Open Systems Interconnection (OSI) model. A more concise version of it, with only four layers, is the TCP/IP model, which is the architectural model that governs communications over the internet.
Each layer defines a function, which one data communication protocol per layer performs. These layers pile one upon another, so we often call this collection of protocols a protocol stack. A data packet has to go through each of the four layers of the protocol stack before it gets to the destination host.
Go has several packages to work with protocols at each layer of the TCP/IP model. This enables us to build solutions for an array of use cases – from IP address management to running application transactions through the network or even implementing network protocols:
Figure 4.1 – TCP/IP model
In this chapter, we focus on use cases for...