Network Programming with Go teaches you how to write clean, secure network software with the programming language designed to make it seem easy.

Build simple, reliable, network software
 
Combining the best parts of many other programming languages, Go is fast, scalable, and designed for high-performance networking and multiprocessing. In other words, it’s perfect for network programming.
 
Network Programming with Go will help you leverage Go to write secure, readable, production-ready network code. In the early chapters, you’ll learn the basics of networking and traffic routing. Then you’ll put that knowledge to use as the book guides you through writing programs that communicate using TCP, UDP, and Unix sockets to ensure reliable data transmission.
 
As you progress, you’ll explore higher-level network protocols like HTTP and HTTP/2 and build applications that securely interact with servers, clients, and APIs over a network using TLS.
 
You'll also learn:
  • Internet Protocol basics, such as the structure of IPv4 and IPv6, multicasting, DNS, and network address translation
  • Methods of ensuring reliability in socket-level communications
  • Ways to use handlers, middleware, and multiplexers to build capable HTTP applications with minimal code
  • Tools for incorporating authentication and encryption into your applications using TLS
  • Methods to serialize data for storage or transmission in Go-friendly formats like JSON, Gob, XML, and protocol buffers
  • Ways of instrumenting your code to provide metrics about requests, errors, and more
  • Approaches for setting up your application to run in the cloud (and reasons why you might want to)
  •  
    Network Programming with Go is all you’ll need to take advantage of Go’s built-in concurrency, rapid compiling, and rich standard library.
     
    Covers Go 1.15 (Backward compatible with Go 1.12 and higher)
     
    Part One: Network Architecture
    Chapter 1: An Overview of Networked Systems
    Chapter 2: Domain Name Resolution and Routing

    Part Two: Socket-Level Programming
    Chapter 3: Creating Reliable Data Streams with TCP
    Chapter 4: Transmitting Data with TCP
    Chapter 5: Simple and Unreliable UDP
    Chapter 6: Ensuring UDP’s Reliability with TFTP
    Chapter 7: UNIX Domain Sockets

    Part Three: Application-Level Programming
    Chapter 8: Writing HTTP Clients
    Chapter 9: Writing HTTP Services
    Chapter 10: Creating a Custom HTTP/2 Server
    Chapter 11: Securely Traversing Untrusted Networks

    Part Four: Service Architecture and the Cloud
    Chapter 12: Microservices and Data Serialization
    Chapter 13: Structured Logging and Metrics
    Chapter 14: Moving to the Cloud
    Adam Woodbeck is a Senior Software Engineer at Barracuda Networks where he has implemented a distributed cloud environment in Go to supplant the previous cloud infrastructure, profoundly increasing its scalability and performance. Before his career in software engineering, Woodbeck spent time in the world of biomechanics and neurology, caring for patients as a chiropractor for nearly a decade. Adam relishes the opportunity to take a deep dive into interesting topics and distill that information into a digestible format for the benefit others.

    About

    Network Programming with Go teaches you how to write clean, secure network software with the programming language designed to make it seem easy.

    Build simple, reliable, network software
     
    Combining the best parts of many other programming languages, Go is fast, scalable, and designed for high-performance networking and multiprocessing. In other words, it’s perfect for network programming.
     
    Network Programming with Go will help you leverage Go to write secure, readable, production-ready network code. In the early chapters, you’ll learn the basics of networking and traffic routing. Then you’ll put that knowledge to use as the book guides you through writing programs that communicate using TCP, UDP, and Unix sockets to ensure reliable data transmission.
     
    As you progress, you’ll explore higher-level network protocols like HTTP and HTTP/2 and build applications that securely interact with servers, clients, and APIs over a network using TLS.
     
    You'll also learn:
  • Internet Protocol basics, such as the structure of IPv4 and IPv6, multicasting, DNS, and network address translation
  • Methods of ensuring reliability in socket-level communications
  • Ways to use handlers, middleware, and multiplexers to build capable HTTP applications with minimal code
  • Tools for incorporating authentication and encryption into your applications using TLS
  • Methods to serialize data for storage or transmission in Go-friendly formats like JSON, Gob, XML, and protocol buffers
  • Ways of instrumenting your code to provide metrics about requests, errors, and more
  • Approaches for setting up your application to run in the cloud (and reasons why you might want to)
  •  
    Network Programming with Go is all you’ll need to take advantage of Go’s built-in concurrency, rapid compiling, and rich standard library.
     
    Covers Go 1.15 (Backward compatible with Go 1.12 and higher)
     

    Table of Contents

    Part One: Network Architecture
    Chapter 1: An Overview of Networked Systems
    Chapter 2: Domain Name Resolution and Routing

    Part Two: Socket-Level Programming
    Chapter 3: Creating Reliable Data Streams with TCP
    Chapter 4: Transmitting Data with TCP
    Chapter 5: Simple and Unreliable UDP
    Chapter 6: Ensuring UDP’s Reliability with TFTP
    Chapter 7: UNIX Domain Sockets

    Part Three: Application-Level Programming
    Chapter 8: Writing HTTP Clients
    Chapter 9: Writing HTTP Services
    Chapter 10: Creating a Custom HTTP/2 Server
    Chapter 11: Securely Traversing Untrusted Networks

    Part Four: Service Architecture and the Cloud
    Chapter 12: Microservices and Data Serialization
    Chapter 13: Structured Logging and Metrics
    Chapter 14: Moving to the Cloud

    Author

    Adam Woodbeck is a Senior Software Engineer at Barracuda Networks where he has implemented a distributed cloud environment in Go to supplant the previous cloud infrastructure, profoundly increasing its scalability and performance. Before his career in software engineering, Woodbeck spent time in the world of biomechanics and neurology, caring for patients as a chiropractor for nearly a decade. Adam relishes the opportunity to take a deep dive into interesting topics and distill that information into a digestible format for the benefit others.

    Books for National Depression Education and Awareness Month

    For National Depression Education and Awareness Month in October, we are sharing a collection of titles that educates and informs on depression, including personal stories from those who have experienced depression and topics that range from causes and symptoms of depression to how to develop coping mechanisms to battle depression.

    Read more

    Horror Titles for the Halloween Season

    In celebration of the Halloween season, we are sharing horror books that are aligned with the themes of the holiday: the sometimes unknown and scary creatures and witches. From classic ghost stories and popular novels that are celebrated today, in literature courses and beyond, to contemporary stories about the monsters that hide in the dark, our list

    Read more

    Books for LGBTQIA+ History Month

    For LGBTQIA+ History Month in October, we’re celebrating the shared history of individuals within the community and the importance of the activists who have fought for their rights and the rights of others. We acknowledge the varying and diverse experiences within the LGBTQIA+ community that have shaped history and have led the way for those

    Read more