Linux Network Programming Training Course

Primary tabs

Course Code

lnxnetp

Duration Duration

14 hours (usually 2 days including breaks)

Requirements Requirements

  • C language
  • Linux user skills

Overview Overview

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.

Course Outline Course Outline

  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

 


Guaranteed to run even with a single delegate!
Public Classroom Public Classroom
Participants from multiple organisations. Topics usually cannot be customised
From $4930
(6)
Private Classroom Private Classroom
Participants are from one organisation only. No external participants are allowed. Usually customised to a specific group, course topics are agreed between the client and the trainer.
Private Remote Private Remote
The instructor and the participants are in two different physical locations and communicate via the Internet
From $3150
Request quote

The more delegates, the greater the savings per delegate. Table reflects price per delegate and is used for illustration purposes only, actual prices may differ.

Number of Delegates Public Classroom Private Remote
1 $4930 $3150
2 $2890 $1950
3 $2210 $1550
4 $1870 $1350
Cannot find a suitable date? Choose Your Course Date >>
Too expensive? Suggest your price

Related Categories


Upcoming Courses

VenueCourse DateCourse Price [Remote / Classroom]
AZ, Phoenix - 24th and CamelbackTue, Mar 7 2017, 9:30 am$3150 / $4930
CO, Denver - Colorado Boulevard CenterTue, Mar 14 2017, 9:30 am$3150 / $4950

Course Discounts

Course Discounts Newsletter

We respect the privacy of your email address. We will not pass on or sell your address to others.
You can always change your preferences or unsubscribe completely.

Some of our clients