Course not currently available

Linux Network Programming Training Course

Course

Online

£ 1,750 VAT inc.

Description

  • Type

    Course

  • Methodology

    Online

This course is addressed to junior software developers. After the course completion, the trainees will be able to understand the architecture of well-known web servers such as Apache or Nginx, and implement their own network programs.
The course is 67% lectures, 33% hands-on exercises.

About this course

C language
Linux user skills

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Options
  • Linux
  • Apache
  • Network
  • Web
  • Green
  • Programming
  • TCP
  • Network Training
  • Operating System

Course programme

  1. Sockets
    • Creating datagram sockets
    • Receiving and sending data
    • Creating and accepting TCP connections
    • Closing sockets
    • Handling errors
  2. Handling more than one client in a simple way
    • Prefork model, as found in Apache
    • Forking a new process per client
    • Cleaning up after finished processes
    • Threads
    • Inetd, systemd units
  3. Waiting for data
    • Blocking sockets
    • Non-blocking sockets and select
    • Select as a way to wait for "any of these sockets"
  4. Organizing reads and writes
    • Dealing with short reads and writes
    • Reading up to a delimiter
    • Pipelined requests
    • Application-level buffers
  5. Event-driven architecture
    • Using select for multiplexing all client connections in one thread
    • State machines
    • Callback hell
    • Event libraries
    • "Green" threads
  6. Problem of 10000 connections
    • Problems with prefork model and select-based loop
    • poll as an alternative to select
    • Realtime signals and why you shouldn't use them
    • Epoll (linux) and kqueue (BSD)
    • Why and when epoll and kqueue are faster than poll/select
  7. Timeouts and timers
    • SIGALARM
    • Timeout as a select argument
    • A simple case of all-equal timeouts
    • Priority queue as an abstract data stracture
    • Binary heap as a priority queue implementation
    • Timer wheel
    • timerfd
  8. Integration with the operating system
    • Traditional daemons
    • Systemd socket activation
    • Logging
    • Handling signals
  9. Performance and scalability optimizations
    • Choosing the right architecture
    • Setting socket options

Additional information

14 hours (usually 2 days including breaks)

Linux Network Programming Training Course

£ 1,750 VAT inc.