Return to Training Programs


Course-Number: ATR-030

Course-Description: Advanced Linux Networking

Duration of course: 3 days

Course Description:

This is a 3-day advanced course in linux networking. The course gives a complete and detailed treatment of the TCP/IP layer inside linux. Starting from basic socket programming, it then covers advanced socket internals, special socket communication protocols such as Netlink Sockets and RT_Netlink sockets, IP architecture inside linux such as Forwarding Information Base (FIBs), Neighbour Tables, routing caches, manipulation of routing tables, Ethernet layer and driver interfacing mechanisms. The course uses the RTL-8139C chipset and the PL-2301 USB chipset as a vehicle to teach advanced networking concepts.

Target Audience:

This course would be ideal for experienced systems programmers and architects who wish to know more about the inner details of the TCP/IP protocol stack implementation under Linux. This is not a beginners course. It assumes that participants already have a clear understanding of the sockets interface and some knowledge of linux internals and kernel programming mechanisms.

This course would be ideal for linux systems programmers who do not have any exposure to the networking interfaces under linux. The course would also be useful for systems programmers already familiar with the networking code, coming into linux for the first time, in case they are interested in knowing how linux works with the network device interface.

The course covers advanced concepts like Netfilter, Netfilter-extensions, AF_Netlink and AF_RTNetlink address families etc.


Knowledge of 'C' programming is mandatory for this course. Also, some knowledge of linux internals and kernel programming is deemed necessary since these are not part of the 2-day course.







1.5 hrs

The ISO OSI model, the TCP/IP protocol stack mapping, linux networking model. Peer-to-peer networks, basic concepts, IP addressing etc.

The Physical Layer - Ethernet Protocol

1.5 hrs

Headers, ARP, RARP, CSMA/CD, implementation under linux.

Network Drivers under Linux

1.5 hrs

Kernel structures & algorithms for driver support, Network BH handlers,registering/unregistering, probing for interfaces.

RTL-8139C chipset & Data Sheets

1.5 hrs

Inside the Realtek chipset, reading the data sheets, application notes. Data transfer from chip registers to memory / reverse flow, DMA bus mastering.


Transport Layer - TCP

1.5 hrs

Protocol, flow control, reliability mechanisms, header details etc.

Socket Programming - Basic

1.5 hrs

Standard calls - socket(), bind(), listen, connect(), send(), sendto(), recv(), recvfrom(), library support, network byte_ordering etc.

Advanced Sockets - Internals

1.5 hrs

Implementation, AF_Netlink and AF_RTNetlink address families.

TCP and UDP servers - Case studies/Implementation

1.5 hrs

Implementation of an echo server using UDP and TCP. Code walk through.


The IP Layer

Protocol, responsibilities, implementation details.

Routing Tables, Mechanisms and Policies

Internal data representations, structures, interior/exterior gw protocols.

Packet Filtering ( iptables - filter, nat, mangle )

Basic filtering mechanisms, usage guidelines.

Netfilter extensions

Advanced filtering mechanisms.

User defined extensions using Netfilter.

(C) 2005 -   All Rights Reserved.

Return to Training Programs