CSE533 - Network Programming

2017 Fall

This course is focused on low-level networking protocols, including:

  • C / Unix TCP & UDP socket programming
  • routing & raw sockets
  • RPC
  • shared memory

Assignments and programming projects will focus the course on network programming in the context of network protocol development and implementation (e.g., TCP, ICMP, routing, multicasting, ARP, etc.), and distributed services and ‘system-level’ applications (e.g., client-server and peer-to-peer applications, distributed file systems, name services, etc.).

Topics covered include:

  • TCP/UDP Sockets, Raw Sockets, Unix Domain Sockets
  • Client/Server Interactions
  • Blocking and Non-Blocking I/O
  • ioctl and Advanced I/O options
  • Broadcasting/Multicasting
  • Data link Layer Access

Programming Assignments cover the following topics:

  • TCP socket client/server programming using I/O multiplexing, child processes and threads
  • UDP File transfer Client/Server with Reliability
  • Raw Sockets and ARP protocol for Strict Source Routing