Course Description
| Course Name: |
Embedded Linux Networking |
| Time & Date: |
6 - 9 PM, Thursdays, May 6, 13, 20, 27 |
| Location: |
Holiday Inn Select Hotel, 15
Middlesex Canal Park Rd, Woburn, MA |
| Speaker: |
Mike McCullough, President and CEO of
RTETC, LLC |
Course Summary:
This 4-day technical training course provides advanced training
in Embedded Linux Networking and the design of networkign
applications in Embedded Linux. The first part of the course focuses
on The BSD Stack and Socket applications development in an Embedded
Linux context with a focus on application performance measurement
and improvement. The latter part of the course covers Packet
Management in UDP and TCP, IPv6 and integrating open-source network
protocols in Embedded Linux.
Who Should Attend
The course is designed for real-time engineers who are developing
advanced networked Linux applications for Embedded Linux
distributions. It is also targeted at experienced developers
requiring a refresher course on Linux Network Device Driver
development.
Course Objectives
- To gain an understanding of the Embedded Linux Networking
Stack
- To provide an overview of Linux Socket application
performance measurement and improvement.
- To provide a basic understanding of Packet Movement Up and
Down the Network Stack.
- To gain an understanding of the complexities of Network
Device Driver development
- To learn about common networking protocols and their uses in
Embedded Linux systems.
- To give students the confidence to apply these concepts to
their next Embedded Linux networking project.
Course Schedule Day 1
Introduction to Embedded Linux Networking
- Getting Started with Linux Networking
- Networking Basics
- The OSI Model
- Networking in Embedded Linux
- Other Networking Models
- Embedded Linux Networking Code Layout
- Linux Networking References (Books and Online)
Sockets, Sockets Everywhere
- Creating and Managing UDP and TCP Sockets
- Socket Types and Socket Options
- IO System Calls and Sockets
- Other Linux Socket Capabilities
- Netlink and Rtnetlink
- Other Interconnects Using Sockets
The Linux TCP/IP Stack
- Packet Handler Glue
- TCP/IP Stack Initialization
- Kernel Threading
- Packet Queueing and the NET_RX_SOFTIRQ
- Transport Layer De-Multiplexing
- Internal Packet Routing
- The in_device Structure
- Security, Stackable Destination and XFRM
- Some Practical Considerations
Socket Buffers and Memory
- Heap-Based and Pre-Allocated Memory
- Mbufs in BSD 4.4
- Slab Allocations
- Socket Buffer Management
- Fragmentation and Segmentation
- Allocation and Lists
- Utility Functions
Client-Server Examples
- UDP Client-Server Applications
- TCP Client-Server Applications
Course Schedule Day 2
Network Booting
- Configuring and Booting Embedded Linux
- TFTP and NFS
- BOOTP and DHCP
Monitoring Network Performance
- Wireshark
- Other Linux Networking Tools
Linux Networking Code Structs
- The sk_buff struct
- Other Networking Structs
Sending Data through UDP and TCP
- The Socket Layer
- The Transport Layer
- Initiating a Connection
- Sending Data from a Socket via UDP
- Sending Data from a Socket via TCP
- TCP Output
- Key TCP Data Structures
- TCP Timers
The IP Network Layer
- Routing Theory
- IPv4 Routing and the Routing Cache
- The Routing Policy Database
- IP Protocol Initialization
- The Route Cache
- The RPDB, the FIB and the FIB Rules
- Routing Input and Output Packets
- Internet Peers and the Inet_peer Structure
- The Address Resolution Protocol (ARP)
- The Internet Control Message Protocol (ICMP)
- Multicast and IGMP
- Sending Packets from IP
- Receiving Packets in IP
Course Schedule Day 3
Receiving Data throughUDP and TCP
- Receive-Side Packet Handling
- Packet Reception in UDP
- UDP Socket-level Receive
- Receiving Data in TCP
- TCP Receive State Processing
- TCP Processing Data Segments in ESTABLISHED State
- TCP TIME_WAIT State
- TCP Socket-Level Receive
Network Device Driver Architecture
- MAC and PHY Device Drivers
- net_device and net_device_stats
- Network Device Initialization
- Device Discovery and Dynamic Initialization
- Network Interface Registration
- Network Interface Service Functions
- Receiving and Transmitting Packets
- Notifier Chains and Device Status Notification
Network Testing
- Ad Hoc Approaches
- Duplexing and Routing Considerations
- The Netperf and Netserver Application
Networking Performance in Embedded Linux
- Monitoring, Measurement & Optimization
Course Schedule Day 4
IPv6
- Addressing and Packet Format
- IPv6 Socket Implementation in Linux
- Fragmentation and Segmentation
- IPv6 Output and Input
- UDP and TCP in IPv6
- ICMPv6
- Neighbor Discovery
- Multicasting in IPv6
- AutoConfiguration and Routing
Common Embedded Networking Protocols
- FTP
- Telnet
- RSH
- Rlogin
- Rexec
- NTP and SNTP
- PTP
- SSL
- PRNGD
- SSH
- What’s Missing?
Some Final Recommendations
Lecturer
Mike McCullough is President and CEO of RTETC, LLC.
Mike has a BS in Computer Engineering and an MS in Systems
Engineering from Boston University. A 20-year electronics veteran,
he has held various positions at Embedded Planet, Wind River
Systems, Lockheed Sanders, Stratus Computer and Apollo Computer.
RTETC, LLC is a provider of Eclipse-based software development
tools, training and consulting services for the embedded systems
market.
Decision (Run/Cancel) Date for this Courses is Monday,
April 27, 2010
FEES
Payment received by April 23: IEEE Members
$390
Payment received by April 23: Non-members
$410
Payment received after April 23: IEEE
Members $410
Payment received after April 23: Non-members
$435
On-line registration to this course is closed. You may register from
5:30PM - 6:00PM, Thursday, May 6, 2010 at the Holiday Inn Select, 15
Middlesex Canal Park Road, Woburn, MA or by calling the IEEE Boston
Section office at 781-245-5405.