Rounded curve

Internet application layer
protocols and standards


 This book, which is under development (but some chapters are available on the web), will give an introduction to the Internet application layer protocols and standards. The book is written for people who want to know more about how the Internet works.

The application layer protocols and standards are the ways in which different applications (like e-mail programs, web servers and browsers, etc.) talk to each other.
     By protocols is meant the language used when the applications talk to each other through the network.

This book does not only describe the various protocols, but also describes the general principles used in many of the protocols, and compare different ways of solving important protocol design issues, such as design to make it easy to extend protocols in the future, without disrupting existing applications. 
Some chapters of the new book are already ready in preliminary versions. More will be added as I work on the book.

Chapter 1: Basic functions

Process, Client, Host, Server
Layering Model

Layers below the application layer
Layering within the application layer
Ports and Applications
Telnet: A Simple Application
Chaining, Referral or Multicasting
Symmetric and Asymmetric Protocols
Transfer of Responsibility
Transactions and Sessions
Turn-around Time, Pipelining and Windowing
Terminating a Connection
Names and Addresses
The Domain Name System
Top-level domains
The old versus new problem
Version number
Feature Selection Method
Feature naming
Built-in Extension Points
20 Standards Terminology
21 OSI versus the Internet

Chapter 2: Coding methods

Why is coding important?
Character sets
Textual and binary encoding

Augmented Backus-Naur Form, ABNF

An overview of ABNF syntax constructs
Examples of use of ABNF
RFC lexical scanner specified in ABNF
Abstract Syntax Notation, ASN. ASN. basic
Simple Types
Structured types
Special types and Concepts
Encoding Rules
ASN. compilers
HTML and CSS (Hypertext Markup Language)
Cascading Style Sheets (CSS)
Extensible Markup Language, XML Extensible Markup Language (XML) Introduction
Document Type Definition (DTD)
XML ELEMENT and its contents
Attributes of XML elements
Formatting XML layout when shown to users (CSS and XLST)
XML special problems and methods
A comparison of ABNF, ASN.-BER/PER and DTD-XML
Other Encoding Languages


SMTP - an interactive protocolSMTP Reply codes (RFC 821)
ESMTP (RFC 1869 SMTP Service Extensions; Obsoletes RFC 1651)
SMTP service extensions
Examples of ESTMP establishment interactions
SMTP command pipelining (RFC 1854)
Delivery status notifications RFC 822 - old standard for Message headings
Sending HTML in e-mail
Forwarding of e-mail
Multipurpose Internet Mail Extensions (MIME)
Message delivery protocols (POP and IMAP)
Network News Transfer Protocol (NNTP)



Hypertext Transfer Protocol (HTTP)

Optimization of delivery in browsers
Progressive rendering
Multiple connections
Cookies and simulation persistent connections
Two ways of remembering what a user did earlier
Example of use of cookies in HTTP transactions
Cookie management
Set-Cookie header from server to client
Privacy issues with cookies


File Transfer Protocol (FTP)

Directory systems Information stored in directory systems
Systems based on manually created directories
Systems based on automatic collection of information
X.500 — the OSI directory system
Old Internet Whois service
Main functional difference between Whois++ and X.500:
Censoring and rating protocols
About standards
Who develops standards?
Should you adhere to standards?
Standards development in IETF, ISO and ITU
Solutions to exercises
Copyright Jacob Palme. You may make copies of the web-published manuscript until the book has been published. After the publication of the book, copying of the chapters on the web (or copying of your copies of these chapters) will no longer be allowed, and these chapters may also be removed from the web.