Rounded curve

Internet application
protocols and standards


Last revision: 2 Feb 2016

Contents and references for a technical university course segment on Internet application layer protocols and standards. This course segment was given once or twice a year in September-October until 2008. The course is not given any more since 2008.

Table of contents

Swedish, less complete info (Svensk information, kortare och ej helt aktuell).

Schema fall 2007 (pdf format).

Course segment presenter: Professor Jacob Palme
+46-8-16 16 67
Course segment codes: SU: *.96, KTH: ID1008, ID1012.

Why Take this Course Segment?

This course segment describes the most common application layer protocols on the Internet, and describes the general principles and methods used in these protocols.

This course segment will give useful information if, in the future, you will design, specify or write programs which communicate acting as mail, web or other clients or acting as the corresponding servers, or if you will design, specify or write software for new applications which need communication between processes on different servers. The course segment is also useful if you will work with maintenance and extension of such software. It is also useful if you want to understand better how the Internet works. HTTP and SMTP are today the most common protocols used as a basis when designing new protocols.

Study Plan

Study Plan from autumn 2003 (Note: If you are using the old compendiums, you also need the old Study Plan.)

Added overheads about CSS in September 2004.

Segment contents

  • Methods and solutions in design of distributed application layer protocols: Architecture, ports, layering, protocols, authentication, connection-less and connection-oriented protocols, chaining, referral, multicasting, replication and caching.
  • Extensibility in distributed applications.
  • How software based on old and new versions of a protocol can interact.
  • DNS (Domain Naming System) - Globally unique names, specifying and searching.
  • ABNF (Augmented Bachus-Naur Format) - A common way of specifying the syntax in many Internet application layer protocols.
  • An alternative encoding method: ASN.1 (Abstract Syntax Notation One).
  • A third encoding method: XML: Extended Markup Language.
  • The Basic Encoding Rules (BER) for ASN.1 for example Kerberos, LDAP, SNMP and S/MIME.
  • URL, URI, URN, URC (Uniform Resource Locator, Identifier, Name, Characteristics).
  • Media types.
  • SMTP (Simple Mail Transport Protocol) - A protocol for transport of e-mail.
  • RFC822 - A protocol for the format of e-mail.
  • MIME (Multipurpose Internet Mail Extensions) - A protocol for content and media types, used by both e-mail and the WWW.
  • POP (Post Office Protocol) and IMAP - E-mail delivery protocols.
  • NNTP (Network News Transfer Protocol) - A protocol for the transmission of Network News.
  • FTP (File Transfer Protocol) - A protocol for file transmission.
  • HTML (Hypertext Markup Language) - A formatting language for WWW documents. How to produce your own web pages. Tools for web page generation.
  • CSS (Cascacing Style Sheets) a language for controlling the layout of HTML and XML documents.
  • XSLT (Extensible Style Sheet Language Transformations) a language for specifying reformatting of XML and HTML documents.
  • HTTP (Hypertext Transfer Protocol) - The access protocol of the World Wide Web.
  • Directory systems: X.500, Whois and Whois++.
  • CGI (Common Gateway Interface) - Standard for interfacing applications to WWW servers.
  • WebDav - Standard for remote management of a set of document by a set of people (New autumn 2007).
  • RSS - Standard for the distribution of news, such as podcasting (New autumn 2007).
  • Bittorrent - Peer-to-peer protocol for downloading of large files.

    Note: Some KTH students can choose to study the course according to the 2006 rules, without WebDav and RSS. They will then get less points for the course. KTH course code 1012 is for the new course with added content, course code 1008 is the for the old course without added content.

  • PICS (Platform Independent Content Selection) - a protocol for voluntary access control.
  • Adaptation of Internet to other languages than English.
  • The process of developing standards in IETF (Internet Engineering Task Force), ITU (International Telecommunications Union) and ISO (International Standards Organisation).
  • The golden rule: "Be liberal in what you accept, be conservative in what you produce.

Course segment format

The course segment format is lectures in Swedish, reading materials, a small work task, and an exam.

Changes since previous instances of this course segment

Changes in the fall of 2000: There will be more about e-mail standards and technology, and a new compendium 9 with information about e-mail has been added to the course segment documentation.

Changes in the spring of 2000: Much more complete coverage of XML.The work task is changed and is based on XML instead of on HTML. New additional compendiums with XML information.

Changes in the spring of 1999.
Changes in the year 2000.
Changes in the spring of 2001.
Changes in September 2002.
Changes in January 2003.
Changes in August 2004:
XSLT and CSS added.

Changes in August 2007: WebDav, RSS and BitTorrent added, course extended from four to five weeks (from 6 to 7,5 hp).

To get a complete view of the changes until September 2003, just take any two of the files below and compute a diff between them, for example using the Tools -> Track changes -> Compare documents command in MS Word.



In order to understand this segment, you have to have some experience in using the Internet, especially the World Wide Web and e-mail. If you do not have such experience, you will have problems following the segment. This segment is not primarily a course segment about usage of the Internet, it is a segment about how Internet works, for students who already know the basics of how to use the Internet. If you do not know the basics of how Internet works, read some book about it and try it out yourself before the start of the course segment.

You should also have some knowledge about how computers work, such as a programming course segment or some other technically oriented course segment about computers.

Special for KTH students

Information about registration, etc. is provided by Pia Haapala, phone +46-8-16 49 43, e-mail <piah@dsv.su.se>.

All KTH students must register their participation in this course segment to the study counseling ("studievägledning") at KTH.

Students in KTH courses of type self-contained and further education ("fristående", "fortbildning" and "vidareutbildning") must use application forms provided by the education and research administrative unit, Valhallavägen 79, KTH. The forms can be ordered from utbildningsexpeditionen, phone +46-8-790 70 07 or +46-8-790 70 08, fax +46-8-790 68 87.


Mailing List, First Class Conference

Important information about this segment will be distributed through an e-mail mailing list and this mailing list will be copied to a First Class conference. The same information will be sent to both media, so students can choose to subscribe to either. If, however you want to send a question, send it to the mailing list, not to the First Class forum.

All course segment participants should either register for this mailing list or regularly access the First Class conference.

To send a message to the mailing list, write to

Go to the web page http://lists.dsv.su.se/intprot to register for the mailing list. Remember the password you use, since you will need it to unsubscribe from the list when you have passed the course.


The location for the course segment is the Department of computer and systems sciences, Stockholm University and KTH, in Forum, Kista, north of Stockholm. Some exams may be in other locations.


Lectures in Swedish

The lectures are not mandatory, but there may be questions in the exam which ask about things mentioned in the overheads but more fully described in the lectures. Thus, if you do not go to the lectures, read the overheads carefully and ensure that you understand what is behind each overhead, not only what is actually on the overhead.

Exercise times

You can go to the DSV terminal rooms at any time, but if you go at times when the terminal rooms are booked for this course segment, you have priority of using the computers. At other times, other course segments may have priority in using the computers.

Requirements for passing this course segment

For passing this course segment you must pass the written exam (3.5 points), and you must submit the XML work task as described below (0.5 points). The written exam usually consists of four questions, with six points maximum grading on each question, and with a minimum of 12 out of 24 points for passed and a minimum of 18 out of 24 for VG.


For those exams, which are in the Forum building, room will be announced on a notice board inside the main entrance immediately before the exam and on a telephone answerer on number 674 70 04 the day before the exam.

Do not forget that you must register in advance, in order to participate in the exam. Registran is done using Daisy. If you do not have any account in Daisy, you can get such an account in Passerkortsrummet, Forum, Kista, lift A, floor 6. This rooms is only open at certain times, which are displayed on the door of the room.

Note that many of the documents for this course segment can be brought and used during the exam. For more info on which documents can be brought to the exam, see the list of reading material.

A few copies of the reading material, which are allowed to use during the exam, will be available for loan during the exam, for those who have not bought their own copies of these documents.

Supplementary exam

If you, on an exam got almost passed (1 or 2 points below the limit for passing the exam), you can complete the exam instead of doing the whole exam again. Such completion means that you need only answer some, but not all, the questions on the next exam. To do this, you must agree with the teacher about this in advance, and the teacher will then tell you which questions you have to answer on the next exam, depending on what part of the course you got particularly low points on. Such completion on an exam can never give you more than the lowest level of a passed exam (SU: G, KTH: 3).

Old exams

Most of the exam questions have been collected in a web site where they are ordered in logical order and with references to the replies, in a format suitable for self-studies.

Note: The contents of the course segment has shifted over the years, so old exams may not give a correct representation of the current course segment content. For example, XML was added in the year 2000, exams before 2000 do not ask such detailed questions on XML.

Exam 960920 with correct answers.
Exam 961026 with correct answers.
Exam 970111 with correct answers. (in Swedish)
Exam 971031 with correct answers

Note that since the exams above were given, this course segment has been extended from 3 to 4 weeks (points), by adding part from a previous course segment *:73. Below are some examples of exams from *:73:

Exam 960429 in Swedish and English
Exam 960615 only in Swedish

Below are exams given after the change from 3 to 4 points

Exam 970919 with correct answers
Exam 980508 with correct answers
Exam 980604 with correct answers
Exam 980926 with correct answers
Exam 981121 with correct answers
Exam 990601 with correct answers
Exam 990823 with correct answers
Exam 990918 with correct answers
Exam 991109 with correct answers
Exam 000419 with correct answers
Exam 000522 with correct answers
Exam 001114 with correct answers
Exam 010116 with correct answers
Exam 010221 with correct answers
Exam 010831 with correct answers
Exam 011020 with correct answers
Exam 011208 with correct answers
Exam 020306 with correct answers
Exam 020522 with correct answers
Exam 021019 with correct answers
Exam 021202 with correct answers
Exam 030310 with correct answers
Exam 030428 with correct answers

Exam 031018 with correct answers
Exam 031126 with correct answers
Exam 040214 with correct answers
Exam 040310 with correct answers
Exam 040422 with correct answers
Exam 041022 with correct answers
Exam 041204 with correct answers
Exam 040111 with correct answers
Exam 050219 with correct answers
Exam 050309 with correct answers
Exam 050526 with correct answers
Exam 051015 with correct answers
Exam 051207 with correct answers
Exam 060111 with correct answers
Exam 060218 with correct answers
Exam 060422 with correct answers
Exam 060517 with correct answers
Exam 060930 with correct answers
Exam 061021 with correct answers
Exam 071020 with correct answers

Important note: Since XML was not included in this course segment before the year 2000, exams in the year 2000 or later may contain questions about XML, even though there are no such questions in the old exams. Similarly, CSS was added to the course in the fall of 2004, so there are no CSS questions in exams before that date.

Observe especially the following exam questions:
001114-4, 980508-1, 990601-4, In these questions, you are not asked to specify something which already exists, but to specify extensions to standard. Such extensions should be written in the format used in related standard, and it should contain both a syntax and a semantics section, unless the question text says that only syntax is required.

Work task

About cheating: It is not allowed to download an existing DTD or XML from the Internet, or from a task done by someone else, and supply it, either as is or modified. It is not allowed to falsely report the validation result. Cheating may result in exclusion from future studies at the university for a period of several weeks or months.

Old work task: The work task is entirely different from the spring 2000 onwards, compared to 1999 and earlier.

Scheduled times: The times scheduled for the work tasks ("laborationer") are only scheduled so that you have priority to the workstations at those times. There will be no tutor present, you can do the work tasks with other workstations or home computers if you so prefer, there is no scheduled plan for the content of these times.

Submission time: Work tasks should be submitted on or before the Monday after the first exam. I will collect late arriving tasks and process them every second month.

  1. Write an XML DTD specification, and an XML text following this specification. A hint: Take any document you have, such as a web page, a ticket, a pamphlet, a time-table, and try to encode the information on it using XML.
  2. Important!

    Your dtd and xml documents must make use of the following facilities

    1. Multiple nested XML elements.
    2. Different types of attributes on elements.
    3. You must include a report from a program which checks the correctness of the DTD and XML used, such as the XML validator at http://validator.w3.org/
      List of more xml-validators and other xml info
      How to use the validator:
      1. Create a subdirectory, to the WWW directory on your unix account at DSV or your personal web site. The subdirectory can, for example, have the name xml.
      2. Put both the DTD and the XML files on this subdirector (you can use the FTP program to move the files to your unix account at DSV.)
      3. The XML file should contain the file name of the DTD file as a relative URL in the <!DOCTYPE> tag.
      4. Access the XML validator, and put the URL of the XML file into the URI field in the validator window.
      5. If your account at DSV is "my-name", and the XML file has the path "WWW/xml/xml-file.xml" then the URL to this file will be "http://dsv.su.se/%7Emy-name/xml/xml-file.xml"
        More info on how to use the validator.
      6. Warning: Do not use UTF-8, the validator cannot handle it.
    4. Include the report from the validator when you submit the work task.
    5. Minimum length 20 lines for the sum of the DTD and the XML file.
  3. Use of CSS is permitted, but not required. This means that your XML need not be very readable when printed with a web browser.
  4. There will not be any supervision during the allocated lab times. If you have problems, you are welcome to contact me by phone or e-mail or after the lectures, or come to my office room (but I am seldom there).
  5. Deliver the completed task and put it into the box for "inlämningsuppgifter" outside studentexpeditionen at DSV in Forum, or send it by postal mail (not e-mail) to Jacob Palme not later than the first Monday after the first exam after the start of the course segment. (Late tasks will also be accepted, but acceptance of them may be delayed up to two months.)

    Your submission of the work task must contain the following items:

    1. the DSV preface for work tasks (available in HTML or RTF-format).
    2. Your social security number ("personnummer").
    3. A print-out on paper of the DTD TEXT.
    4. A print-out of the XML text using this DTD.
    5. A print-out from a service which validates the correctness of the DTD and XML.

Submit the work task in the box for work task submissions outside Studentexpeditionen, DSV, or send it by postal mail to Jacob Palme, DSV, Forum 100, 164 40 Kista.

If you need extra fast handling of the work task, send it by postal mail to Jacob Palme, Skeppargatan 73, 11530 Stockholm, and mark the work task with the words "URGENT" or "BRÅTTOM" in large visible letters on the first page of the work task submission.

Students enrolled in the course segment in 1999 or earlier, can instead perform the old work task which was used in the course segment during those years.

Some hints on common problems with the XML task

Problems with National characters (åäöüøé¿, etc.) in XML: You must choose to encode the National characters using either UTF-8 or ISO 8859-1. If you use ISO 8859-1, then the processing instruction
   <?xml version="1.0" encoding="ISO-8859-1" ?>
must be placed at the top of the XML file. If you use national characters in the DTD file, you may have to put a similar instruction in that file.

The validator cannot find my files: Check with an ordinary web browser that you can access the DTD and XML files using the same URL as sent to the validator.

How to get neat layout of the XML when shown with a web browser: This is not required for the work task. But if you want to do it, you can use CSS, see the example in compendium 8, section 1.35.

Combining DTD and XML in one file: It is possible to combine DTD and XML in a single file. This means that you do not have to upload the DTD file to a server before validating your XML.


The reading material consists of ten compendiums numbered 0 to 9.

They are sold by Studerandeexpeditionen, DSV.

If you have old compendium, there are additions-compendiums with new information added to the course at various times. New information in the autumn 2002 can be found in this additions-compendium.

Table of contents for the reading materials sold by Studentexpeditionen:

Incomplete texts for the compendiums are available online in PDF format as follows:

For the September 2003 course segment, the compendiums were re-organized. Here is a list of the new compendiums, after the re-organisation.

Compendium No. and link Allowed during the exam? Content Available on the web?
compendium-0.pdf No Course description, study plan, etc. All.
compendium-1.pdf Yes Original standards document for ASN.1, ABNF, DNS, E-mail and LDAP. All except page
compendium-2.pdf Yes Original standards on FTP, Cookies, Usenet News, HTTP, URLs and lists of port numbers and media types. Probably all.
compendium-3.pdf Yes HTML 4.01 specification. All.
compendium-4.pdf No Networking basics, e-mail and NNTP. Partially.
compendium-5.pdf No GIF, JPEG, CGI, FTP, HTTP, IRC, PICS, X.500. Partially.
compendium-6.pdf   No Coding, ABNF, ASN.1, HTML, XML; WebDAV, RSS, Podcasting, XML Schema, Bittorrent. All.
compendium-7.pdf Yes XML original Recommendation (=official standard). All.
Compendium 8 No Lecture overhead pictures:  
compendium-8A.pdf No Compendium 8 part A. All.
compendium-8B.pdf No Compendium 8 part B. All.
compendium-8C.pdf No Compendium 8 part C. All.
compendium-8D.pdf No Compendium 8 part D. All.
compendium-9.pdf Yes CSS and XSLT Recommendations, RSS 2.0 and WebDAV standards. All.

List of additional (partly not mandatory, and partly not up-to-date) reading materials for this course segment:

Study Plan (also included in compendium 0):

Additional overheads for the lectures might be added at URL:

Introductory chapters with basic concepts for this course segment (also included in the compendiums):

An explanation of how to think when solving ASN.1 question:

Why do most web pages adhere to some simple common layout principles?

Which font is most readable on the screen:


Font size comparisons:

Why bitmapped screen dumps sometimes get ugly when shown on the screen

A web-based ASN.1 series of exercises with automatic checking that the answer you write is correct can be found at http://asn1.elibel.tm.fr/tutorial.

Additional Reading (If you want to learn more)

"ASN.1 - Communication between heterogeneous systems" by Olivier Dubuisson, available on the net and from bookstores. A very comprehensive and detailed book about ASN.1.

Web Design Layout Principles - Why are most web pages designed the way they are?
Getting started with HTML.
HTML code tutorial.
Direct answers to question about HTML.

URL for this web page