Tactical Data Link Training Introduction

Duration: 5 days

Introduction

The introduction of IPv6 has changed the network landscape forever. And any organization integrating the next generation protocol must contend with the new security paradigm IPv6 creates. Even organizations not deploying IPv6 today may find their security policies challenged by the widespread availability of IPv6 support in operating systems and network hardware and the ease with which it can be enabled. Irregardless of an organizationís IPv6 adoption plan, the key to securing tomorrowís network is an understanding of the relationship between IPv4 and IPv6 on multi-protocol networks, security issues associated with transition, and knowing the current mitigation techniques and best practices for a successful and secure IPv6 deployment.

After completing this course, attendees will be able to:

  • Explain the basics of Satellite Communications (SATCOM)
  • Understand new SATCOM services and features
  • Understand modern satellite system design , multiple access, modulation and coding schemes
  • Understand orbital aspects
  • Step through propagation aspects and antennas
  • Investigate the state of the art in new areas such as speech and video coding, satellite etworking and satellite personal communications
  • Understand satellites subsystem & launching
  • Understand satellite link design and analysis
  • Define Very Small Aperture Terminals (VSAT)
  • Understand Non-geosynchronous systems (NGSO)
  • Explore GPS & Mobile Systems (Voice, Data and Video)
  • Explain Internet Applications (GEO/ NGSO options)
  • Explore the SATCOM trends

1. GNU Compiler Collection (GCC)

  • History of GCC
  • Four Stages of GCC
  • Interrupting the Compiler
  • Compiling a C Program
  • Preprocessor Features
  • Predefined Preprocessor Symbols
  • Warnings and Extensions
  • Optimization
  • Linking

2. Building Software with Make

  • Introducing make(1)
  • How make Works
  • Makefile Rule Syntax
  • Example: Makefile First Steps
  • Makefile Improved
  • Implicit Rules
  • Example: Simpler Is Better Makefile
  • Variables
  • Defining Variables
  • Example: Makefile with Variables
  • Automatic Variables
  • Special Targets
  • Defining Useful Phony Targets

3. The GNU C Library and System Calls

  • Library Goals
  • Library Standards
  • GNU C Library – glibc
  • Library Functions vs. System Calls
  • Using System Calls
  • Handling Errors with errno
  • Making Sense of errno
  • Using strace

4. Program Arguments and Environment

  • Program Startup
  • Using argc/argv
  • Handling Options with getopt()
  • Handling Options with getopt_long()
  • Environment
  • Manipulating the Environment
  • Program Exit
  • Registering Exit Handlers

5. Building Libraries

  • Why Use Libraries?
  • Static vs. Shared
  • Static Library Benefits
  • Shared Library Benefits
  • Creating a Static Library
  • Using Static Libraries
  • Creating a Shared Library
  • Using Shared Libraries
  • Shared Library Management
  • Library Locations
  • ldconfig

6. Time Functions

  • When Does Time Begin?
  • Time Data Types
  • Determining Real Time
  • Converting time_t
  • Converting tm Structure
  • Process Time
  • Time Arithmetic
  • Second Resolution Timers
  • Fine-Grained Timers<
  • Real Time Clock (RTC)

7. Process Management

  • What a Process Is
  • Process Relationships
  • Create a Child Process
  • Doing Something Else
  • Related execve() Functions
  • Wait For a Child
  • More Precise Waiting
  • Changing Priority/Nice
  • Real Time Priority

8. Memory Operations

  • Allocating/Freeing Memory
  • Memory Alignment
  • Locked Memory
  • Memory Copy/Initialization
  • Memory Comparison/Search

9. Debugging

  • What Is My Program Doing?
  • Source Level Debugging
  • Invoking gdb
  • Getting Started with gdb
  • Examining and Changing Memory
  • Debuginfo Libraries
  • Using gdb with a Running Process
  • Using gdb to Autopsy a Crash
  • Debugging Libraries – ElectricFence
  • Debugging with valgrind
  • Profiling for Performance

10. Basic File Operations

  • Stream vs. System Calls
  • Opening/Closing Streams
  • Stream Input/Output Functions
  • Stream Status/Errors
  • Stream File Positioning
  • Stream Buffering
  • Temporary/Scratch Files
  • Opening/Closing File Descriptors
  • File Descriptor I/O
  • Repositioning File Descriptors
  • Stream/File Descriptor Conversions
  • cat using ANSI I/O
  • cat using POSIX I/O

11. Communicating with Pipes

  • Introduction to Pipes
  • Standard I/O: popen()/pclose()
  • Using popen()/pclose()
  • System Call: pipe()
  • Using pipe()
  • Named Pipes
  • Using Named Pipes
  • For Further Reading

12. Managing Signals

  • What Signals Are
  • Blocking/Checking Signals
  • Working with Signal Sets
  • Example of Blocking Signals
  • Handling Signals with sigaction()
  • sigaction() Example
  • Handling Signals with signal()
  • Sending Signals
  • Real-Time Signals

13. Programming with Threads

  • Introducing Threaded Programming
  • Applications Suited to Threads
  • Building Threaded Programs
  • Creating Threads
  • Thread Identity
  • Synchronizing by Joining
  • Detaching Threads
  • Stopping Threads
  • Synchronizing with Mutexes
  • Using Mutexes
  • Read/Write Locks
  • Conditional Variables
  • Using Conditional Variables
  • A Conditional Variable Gotcha
  • For Further Reading

14. Advanced File Operations

  • Directory Operations
  • File System Operations
  • Multiplexed I/O with select()
  • Miscellaneous I/O Functions
  • Memory Mapped I/O
  • Using Memory Mapped I/O
  • File Locking

15. Interprocess Communication (IPC)

  • Interprocess Communication (IPC)
  • POSIX IPC Overview
  • POSIX Shared Memory
  • POSIX Semaphores
  • POSIX Message Queues
  • System V IPC Overview
  • System V IPC Shared Memory
  • System V IPC Semaphore Arrays
  • System V IPC Message Queues

16. Basic Network Programming

  • Linux Networking Overview
  • Getting Started with socket()
  • Client Functions
  • Specifying IPv4 Addresses
  • Host Versus Network Byte Order
  • Example TCP/IP Client
  • Address Conversion Functions
  • Using getaddrinfo()
  • Server Functions
  • Example TCP/IP Server
  • Datagram Communication with UDP

17. Working with the Linux Community

  • Getting in Touch with the Community
  • General Considerations
  • Building a Community
  • Licenses
  • GPL
  • LGPL
  • BSD
  • Creative Commons

Your Name*

Company*

Position*

Your Email*

Phone*

Address*

Number of Participants *

Time Frame*

Subject*

Your Message*