Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Implementing a Network Protocol in Go

Gopher Academy via YouTube

Overview

Explore the intricacies of implementing network protocols in Go through this GopherCon 2018 talk by Matt Layher. Dive into the world of modern computer networks and learn how to encode structured messages using a series of bytes on a wire. Focus on the implementation of an IPv6 Neighbor Discovery Protocol (NDP) package, understanding its similarities to ARP in IPv4 and its role in enabling communication between IPv6 hosts and routers on local networks. Gain insights into parsing bytes, handling message interfaces, validating inputs, and implementing options. Discover the power of go-fuzz for testing and learn how to build connection types and ICMP listeners. Develop practical skills by creating an NDP tool and troubleshooting ISP equipment using Go. Perfect for developers looking to deepen their understanding of network protocols and their implementation in Go.

Syllabus

Intro
What is IPv6?
How is IPv6 different from IPv4?
IPv6 tips and tricks
IPv6 and NDP's big advantage
Package ndp overview
Parsing bytes
ndp.Message interface
Bounds checking
Parsing messages
Validating byte inputs
Replacing the structure while unmarshaling
When allocating memory...
NDP option basics
ndp.Option interface
Parsing options
Tips for implementing options
Enter go-fuzz
go-fuzz setup
Building connection types
ICMPv6 listener
Reading ICMPv6 messages
Creating an ndp. Conn
Build a tool to test your package
Introducing the ndp tool
Troubleshooting your ISP's equipment with Go
Resources

Taught by

Gopher Academy

Reviews

Start your review of Implementing a Network Protocol in Go

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.