Implementing a Network Protocol in Go
Offered By: Gopher Academy via YouTube
Course Description
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
Related Courses
Introduction to Internetworking with TCP/IPopenHPI Objectif IPv6
Institut Mines-Télécom via France Université Numerique Networking for Web Developers
Udacity 网络互联技术
openHPI Introduction to TCP/IP
Yonsei University via Coursera