YoVDO

Implementing a Network Protocol in Go

Offered By: Gopher Academy via YouTube

Tags

GopherCon Courses Go Courses IPv4 Courses IPv6 Courses Input Validation Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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/IP
openHPI
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