Network Design Workshop

The goal with this workshop is to introduce students to basic Network Design concepts, from understanding the OSI model, differences between TCP and UDP sockets, webservers, and network communications for embedded system.

Required Software

Python is an interpreted high-level general-purpose programming language.

A good portion of the concepts covered in this workshop can be applied using other programming languages (e.g. C/C++, Java, C#, etc).

Other software used (not required)

PyCharm is an integrated development environment (IDE) used in computer programming, specifically for the Python programming language.

Wireshark is a free and open-source packet analyzer.


  • Get familiar with the OSI model
    • Network Symbols
    • Network Layers
    • Data Unit
    • Encapsulation
  • Packet Sniffer
    • Wireshark
    • Packet Analyzing Example

Lab 1 - Wireshark Intro
Supplement material from
"Computer Networking: A Top-Down Approach"
7th ed., J.F. Kurose and K.W. Ross

  • UDP vs TCP sockets
  • Echo Example
    • Using UDP Sockets (Files)
    • Using TCP Sockets (Files)
  • HTTP Server - Simple Example
  • HTTP Server - Version 2
    • With the http.server Library (Files)

Embedded Application with ESP8266 + Arduino (Link)

ESP8266 NodeMCU Access Point (AP) for Web Server (Link)

ESP866 NodeMCU Set as an Access Point (AP) Mode