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.
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


