Programming with TCP/IP

TCP/IP is the de facto standard for internetworking heterogeneous networks and is increasingly relevant for real-time and embedded systems. This course presents the TCP/IP architecture and describes in detail how to develop client server applications that inter-operate over TCP/IP networks. Delegates will be provided with the required insight into how these protocols may be utilisedsed and the applications developed.

This course has a number of practical exercises which are undertaken in a Unix/Linux (BSD) environment.

TCP-401
4 days
Contact Feabhas (available for on-site delivery only)
pdf download

Course Outline

 

Introduction:

  • TCP/IP Layering
  • Internet Addresses
  • The Domain Name System
  • Client-Server Model
  • Port Numbers

Link Layer:

  • Ethernet and IEEE 802 Encapsulation
  • PPP: Point-to-Point Protocol

IP: Internet Protocol:

  • IP Header
  • IP Routing
  • Subnet Addressing,
  • ARP: Address Resolution Protocol
  • DHCP: Dynamic Host Configuration Protocol
  • ICMP: Internet Control Message Protocol
  • IPV6

IP Routing:

  • Routing Principles
  • Dynamic Routing Protocols
  • RIP: Routing Information Protocol, RIP Version 2
  • OSPF: Open Shortest Path First

UDP: User Datagram Protocol:

  • UDP Header
  • UDP Messages
  • UDP Applications

TCP: Transmission Control Protocol: TCP services

  • TCP Header
  • TCP Connection Management
  • TCP Data Flow
  • TCP Performance and Features

Connection-Oriented Application Development:

  • The TCP/IP Socket Model
  • Establishing a Connection
  • Performing Data Transfer
  • Client Programming
  • Server Programming

Connectionless Application Development:

  • UDP Programming
  • Data Transfer
  • Broadcasting and Multicasting

Concurrency:

  • Processes andTthreads
  • Posix Threads
  • Concurrent Servers
  • Data Protection
  • Using Select to Achieve Concurrency

Client/Server Application Architecture:

  • Connectionless/connection-oriented

I/O Models:

  • Multithreaded vs Multi-Process
  • Application Designs

Course Overview

 

A four-day course providing an introduction to the TCP/IP architecture and programming API at a level of detail that allows application programmers to utilise the features to develop high performance, scalable distributed applications.
50% of the course is spent developing distributed applications.


Course Objectives:
After completing the course, attendees will:

  • Appreciate the architecture of the TCP/IP protocol suite
  • Develop client/server applications that work over TCP/IP
  • Understand and use the BSD sockets API
  • Understand and be able to apply the different architectures for distributed applications using TCP/IP

Pre-requisites:

  • Knowledge of the C programming language.
  • No knowledge of TCP/IP is assumed.

Who Should Attend:

  • Hardware and software engineers who will be developing TCP/IP applications.

Duration:

  • Four days

Course Material:

  • Delegate handbook