Advanced Networking

Programming on Linux

Course Overview

This course is designed for participants who are looking for a deeper understanding of Network Programming concepts on Linux. Participants expecting assignments on network protocol development or network application development will find this course extremely handy.

Key Takeaways

  • Look at widely used protocols on each networking layer and writing programs using them
  • Creating own protocol headers instead of Socket layer
  • Look at working with socket-layer-less environment
  • Detailed look at Linux Network Stack
  • IPV6 programming


  • Basic C programming skills

Course Duration

  • 45 days

Courses Contents:


Understanding Network Basics

  • Introduction to Network Layers
  • A Big picture on all layers/li>
  • DLL Addressing (All about Ethernet addressing)
  • Network Layer Addressing (All about IP)
  • Transport Layer Addressing (All about ports)

Understanding DLL

  • Introduction to DLL protocols
  • Ethernet Protocol(with different header formats)
  • ARP

Understanding Network Layer Protocols

  • IP, IPV6
  • ICMP

Understanding Transport Layer Protocol

  • TCP protocol
  • UDP protocol

Linux Network Stack(Path from Network Cards to Applications)

Linux Network Socket Layer (Interface between the application and network stack)

TCP Programming (SOCK_STREAM)

  • A sample TCP server and client
  • Implementing a Program to transfer files(ftp)
  • Implementing a Web Server Program(an HTTP Server)
  • Implementing a small telnet program (a Remote login application)

Blocking and Non-Blocking I/O

I/O Multiplexing(select(), poll(), epoll()

Signal Driven I/O

Out Of Band Data

Concurrent Threads Implementation

UDP Programming (SOCK_DGRAM)

  • A Sample UDP Server and Client Program
  • Implementing UDP Server and Client to Monitor USB Device attachments on the network
  • Implementing UDP Server and Client for Instant Messaging(IM)

RAW Packets

  • A sample program to use RAW sockets
  • Building UDP Packet
  • Building IP packet
  • Building Ethernet Frame and forwarding the packet
  • Implementing a Network Sniffer(Like Wireshork)

Socket Options


Socket ioctls

  • Program to find MAC address of an interface
  • Program to find and List the interfaces on a host
  • Program to change MAC address of an interface
  • Program to set IP address to an interface

Implementing ping command

Implementing arp and arping commands

IPV6 Programming

  • A simple IPV6 TCP Server
  • A simple IPV6 TCP Client

Advanced Name and Address Conversions

  • >> Classroom
    • Course Name :
      Advanced Networking Programming on Linux
    • Next batch starts :
      To be Announced
    • Class Timing :
      To be Announced
    • Course Duration :
      45 days
    • Course Fee :
  • >> Audio/Video
    • Course Name :
      Advanced Networking Programming on Linux
    • Next batch starts :
      Not Available
    • Class Timing :
      Not Available
    • Course Duration :
      Not Available
    • Course Fee :
      Not Available
  • >> Online

Course feedbacks

Success Stories