References
Beej's Guide to Network Programming -- Using Internet Sockets, by Brian E. Hall;
UNIX Network Programming, by Jim Kurose;
BSD Sockets: A Quick And Dirty Primer, by Jim Frost;
An Introduction to Socket Programming, by Reg Quinton;
Socket Programming -- The 10% you need -- for 90% of your work, by Steve Litt;
Asynchronous Socket Programming, by Sam Rushing;
Network programming under Unix systems, by Guy Keren;
BSD Socket Programming, by Jan-Mark S. Wams;
Introduction to Networks, by Jon A. Solworth;
Networked Operating System Programming, by Jon A. Solworth;
Computer Systems Security, by Jon A. Solworth;
Java Socket Programming, by Michael J. Golding;
Exam topics
- course 1:
- general concepts related with computer networking; (definition / description)
- protocols overview; (definition / description, classification, design principles)
- course 2:
- network architectures; (definition / description, examples)
- course 4:
- protocol characteristics and responsibilities; (definition / description, examples)
- network classification (by spread and by topology); (definition / description, examples)
- network architecture (definition / description, examples)
- token ring; (description and working principle)
- course 5:
- OSI model and TCP/IP model:
- description;
- layers (description);
- protocol examples;
- comparison;
- OSI model and TCP/IP model:
- course 6:
- classfication of physical medium;
- coaxial cable, twisted pair, fiber optics; (descriptions, characteristics, advantages / disadvantages, usage)
- wireless; (classification, examples)
- physical medium multiplexing (FDM and TDM); (definition / description)
- course 7:
- terminology; (definition / description, examples)
- PPP; (description, working principle, packet structure, authentication)
- CSMA/CD; (definition / description, working principle)
- Ethernet; (types, limitations, addressing, frame structure)
- course 8:
- Ethernet switch; (description, functions, working principle, advantages / disadvantages, comparison)
- STP, VLAN; (description, working principle)
- IP (description, characteristics, functions);
- IP addressing (address structure, network classes, subnetting, VLSM, special and private addresses);
- IP NAT (description, working principle);
- course 9:
- IP packet (structure);
- IP helper protocols (ARP, RARP, ICMP); (description, working principle)
- IP routing; (description, working principle, classification);
- IP dynamic routing; (description, working principle, classification, advantages / disadvantages);
- course 10:
- TCP; (description, functions, segment structure, connection life cycle, flow and congestion control working principle)
- UDP; (description, funcitons, datagram strucutre)
- course 11:
- DNS; (description, functions, working principle, actors, record structure)
- course 12:
- networking attacks; (definition / description, classification, working principle)
- course 13:
- firewalls; (definition / description, functions, classification, working principle)
- VPN; (description, functions, working principle)
Agenda
- Part 1 -- Fundamental networking concepts:
- topics:
- concepts;
- protocols;
- topologies;
- architectures;
- layering;
- OSI;
- physical medium;
- courses:
- course 1:
- introduction: definition, applications, organizations, standardization;
- concepts: short definitions for elements, topology, medium, frame, packet, bandwidth, errors;
- protocols (part 1):
- short definitions: communication, content, sender, receiver, message, channel, protocol;
- design principles: effectiveness, reliability, resiliency;
- classification: ordered / unordered, reliable / unreliable, connection-oriented / connection-less, stream / datagram;
- course 4:
- protocols (part 2):
- protocol data unit;
- responsabilities: addressing, segmentation / reassembly, sequencing, synchronization, encapsulation, connection control, flow control, error control, multiplexing (prioritization, encryption, authentication, anonymization);
- layering;
- service primitives;
- network architecture:
- classified by software architecture (node interactions): client-server);
- classified by physical interconnections and spread: LAN, MAN, WAN, WLAN, PAN;
- topology: bus, star, ring (mesh, hierarchical);
- token ring;
- protocols (part 2):
- course 5:
- OSI:
- definition;
- motivation and solutions;
- design principles;
- history;
- layers (short descriptions);
- (comparisons (DNA, SNA, DPA));
- OSI:
- course 6:
TODO: Marian -> theoretical part;
- physical medium:
- types: guided / un-guided, shared / un-shared, point-to-point / broadcast;
- characteristics: bandwidth, delay, latency, costs, compatibility, flexibility;
- guided media: twisted pair, coaxial cable, fibre optics;
- wireless media: radio- and micro-waves, light and infrared;
- trunk, multiplexing (FDM, WDM, TDM, CDMA);
- detailed functionality in case of twisted pair, fibre optics, wireless;
- data link layer:
- definition, concepts;
- framing;
- error control;
- flow control;
- (example algorithm for data link protocols);
- course 1:
- topics:
- Part 2 -- Network programming:
- topics:
- addressing;
- sockets: TCP, UDP;
- courses:
- course 2:
- sockets: introduction, history, life-cycle, operations, examples, portability, types (server / client, streaming / datagram, blocking / non-blocking / asynchronous);
- IP addressing: concepts (IP address, port, socket address, host name resolution), Java API;
- UDP sockets:
- socket: life-cycle, operations, Java API, "connected";
- (broadcast);
- course 3:
- TCP sockets:
- client: life-cycle, operations, Java API;
- server: life-cycle, operations, Java API;
- Java IO API;
- (HTTP);
- TCP sockets:
- course 2:
- topics:
- Part 3 -- Internet fundamentals:
- topics:
- PPP;
- Ethernet;
- IP, ARP, RARP;
- TCP, UDP;
- DNS, DHCP;
- tunneling;
- courses:
- course 7:
- PPP description;
- Ethernet:
- definition, standards;
- Ethernet as physical layer:
- CSMA/CD;
- transmission modes: half-duplex, full-duplex;
- cabling;
- Ethernet as data link layer:
- addressing: MAC, unicast, broadcast, multicast;
- frame structure;
- Ethernet switching:
- domains: colision, broadcast;
- network segmentation;
- hardware: repeater, hub, bridge, switch;
- switches:
- role;
- functions;
- filter tables;
- network loops, redundant links, STP;
- VLAN;
- security;
- course 8:
- TCP/IP model:
- layers: IP (+ARP/ICMP), TCP/UDP, app;
- comparison / relation with OSI;
- IP:
- role: addressing, routing;
- characteristics;
- services;
- IP address;
- network class;
- subnetting;
- CIDR, VSLM;
- special addresses;
- private addresses;
- NAT;
- TCP/IP model:
- course 9:
- IP:
- packet structure;
- versions: IPv4, IPv6;
- IP control / helper protocols:
- ARP (IPv4);
- RARP (IPv4);
- ICMP;
- DHCP;
- DNS;
- IP routing:
- concepts;
- static routing;
- dynamic routing;
- distance vector routing protocols: RIP, IGRP;
- link state routing protocol;
- IP:
- course 10:
- TCP:
- role;
- characteristics;
- services;
- functions;
- segment structure;
- connection lifecycle;
- UDP:
- role;
- characteristics;
- services;
- functions;
- datagram structure;
- (SCTP);
- TCP:
- course 11:
- DNS;
- HTTP, FTP;
- SMTP, POP3, IMAP;
- SSH;
- tunneling;
- network architecture (back-bone, distribution, client);
- course 7:
- topics:
- Part 4 -- Security:
- topics:
- attacks;
- solutions;
- firewalls;
- VPN;
- TLS/SSL;
- X509 certificates;
- courses:
- course 12:
- IP insecurity;
- attacks:
- introduction: types, phases;
- examples: DOS, MITM, sniffing, spoofing;
- solutions:
- security policy, encryption, hashes, digital signatures;
- security protocols: IPSec, TLS/SSL;
- secure protocols: HTTPS, SFTP, SSH;
- data link security: WPE, WPA, WPA2, Radius;
- X509 certificates;
- (PGP (GnuPG));
- course 13:
- firewalls:
- types: stateless / state-full / application;
- DMZ;
- intrusion prevention / detection;
- VPN;
- firewalls:
- course 12:
- topics: