The Internet is a loose federation of networks.
|
Cooperative organization - no administration, no fees. Protocols and standards are evolved through the IETF, Internet Engineering Task Force.
|
Most national and international networks are members: NSFNET, ESNET, ARPANET, BITNET
|
All these networks are packet switched systems based on TCP/IP. Together these protocols allow for communication over a wide variety of technologies. Machines called gateways connect the networks.
|
Standard domain name system - names are looked up by name server to obtain routing information.
-
symbolic names: npac.syr.edu
-
internet addresses: 128.230.7.2
|
Multiplexing - Different protocols can be used to send different messages through the same network.
|
Sequencing is the property that data is received by the receiver in the same order as transmitted by the sender, which is not true in a packet-switched network.
|
Error control guarantees that error-free data is received by the application programs. Data can either get corrupted by the transmission medium or get lost. Checksums are added to the data and received data is acknowledged. If there is any problem, retransmission occurs.
|
Flow control assures that the sender doesnąt overwhelm the receiver by sending data at a faster rate than it can process.
|
Error and flow control are handled on an end-to-end basis by TCP and on a hop-by-hop basis by IP. (A hop goes to only one intermediate machine on the network route.)
|
Performance of network delivery depends on the size of the message, the capacity of the various pieces of network that the message may travel along and the congestion of the network.
|
Modem 14,400bps 1.22sec 2.22min 2.78min 4.40min 22.2min
|
ISDN 56,000bps 0.31sec 34.3sec 42.9sec 1.13min 5.71min
|
T1 1.54Mbps .011sec 1.24sec 1.55sec 2.46sec 12.4sec
|
T3 45.0Mbps .0004sec 0.04sec 0.05sec 0.08sec 0.42sec
|
Network Speed
|
Email book picture audio video
|
(2.2KB) (240KB) (300KB) (475KB) (2.4MB - 1min)
|
Here are a few sample Internet documents relevant for Internet and WWW message-passing.
|
RFC-822: Crocker, D., "Standard for the Format of ARPA Internet Text Messages", SRD 11, RFC 822, UDEL, 1982.
|
RFC-1521: Borenstein, N. and Freed, N., "MIME (Multipurpose Internet Mail Extension) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", RFC 1521, Bellcore, September 1993.
|
RFC-1524: Borenstein, N. "A User Agent Configuration Mechanism for Multimedia Mail Format Information", RFC 1524, Bellcore, September 1993.
|
Internet Draft: Tim Berners-Lee, "Basic HTTP", CERN, 1992/3.
|
RFP-1890: H. Schulzrinne, RTP Profile for Audio and Video Conferences with Minimal Control, Jan. 1996.
|
We all know and use it, but here is a formal specification.
|
Each message is a stream of 7-bit ASCII chars which contains a header and optional (newline separated) body.
|
Header consists of a set of entries with one entry per line given by a colon separated key:value pair.
|
Key contains no spaces or tabs and cannot exceed 63 chars.
|
Body is a fully unstructured sequence of ASCII chars.
|
There is a finite set of standard keys and an extension mechanism via the "X"-prefix. The standard set (as used by MH) is:
|
Date Bcc Resent-Date Resent-Fcc
|
From Fcc Resent-From resent-
|
Sender Message-ID Resent-To Message-Id
|
To Subject Resent-cc Forwarded
|
cc In-Reply-To Resent-Bcc Replied
|
Goals
-
Multimedia, multi-language, multi-component extension of RFC-822
-
Full backward compatibility with RFC-822
-
Open design to incorporate multiple well-known formats
-
Easy extension to new types and formats
|
Retain RFC-822 header+body format
|
Add new header fields
|
Allow for multipart multimedia bodies
|
Include media type and encoding information in new header fields such as: Content-Type, Content-Description, Content-Transfer-Encoding, Content-ID
|
Retain 7-bit ASCII for all valid encoding schemes
|
Implement multi-component bodies via a special 'magic type' Content-Type: multipart
|
Two level hierarchical typing scheme adopted of the form: basetype/subtype
|
Seven base media types are defined this minimal set is enforced, i.e. all extensions must pass the whole ID->RFC->STD process.
|
Allow for less restrictive subtyping the base types, for example:
-
Content-Type: text/plain
-
Content-Type: text/richtext
|
Some standard subtypes are specified and many more are expected. New subtypes must be registered with the IANA (Internet Assigned Numbers Authority).
|
Private experimental subtypes prefixed with "X-" may be used freely and without registration.
|
Seven base types are: text, image, audio, video, multipart, message, application.
|
multipart
-
Specifies a MIME message composed of several parts with possible different Content-Type fields.
-
Parts are separated by a boundary string, specified in the multipart header entry
-
Subtypes: mixed (serial combination of media), parallel (for parallel presentation if possible), alternative (multiple representations of the same data) and digest (all parts are messages)
|
message
-
Subtypes: rfc822 (standard ARPA e-mail format), partial (a single chunk of a larger message, chopped into pieces for transmission and then reassembled), external-body (pointer to a remote data - similar to typerlink/URL but different representation)
|
application
-
Current subtypes: postscript, ODA
-
Placeholder for "anything else" - several interactive/custom/creative extensions expected here
-
Already registered: Andrew-inset,t ATOMICMAIL (Bellcore)
|
Web servers provide access to a collection of files containing hyperlinked information
-
primary service is to send text files, images, digitized video
-
can also provide customized services through the form/CGI script interface
|
Browsers provide an easy graphical interface for users to request information. The client machine also provides viewers for a standard set of image and video formats.
|
The interface is kept very simple to run on all networks and most machines.
|
May also use CGI interface to access other services
|
Browser sends URL
|
Viewer displays file based on format
|
Server returns file with text, image or video
|
(may also send requests for CGI service)
|
HTTP provides an upper level to the Internet, that is, it is built on top of a back-bone network with all the packets flowing from client to server and vice versa using the standard TCP/IP protocol.
|
It uses MIME formats and concepts, but does not fully conform to MIME as the WWW is not a mail system.
|
HTTP protocol is compatible with other network services such as FTP (File Transfer Protocol), NNTP (Network News Transport Protocol).
-
On a UNIX-based machine, the basic services are enumerated in the file /etc/services. Each service cooresponds to a standard port. For example, telnet is mapped to port 43, and FTP is mapped to port 21. All ports below 1024 are privileged - only the system administrator can determine port use.
|
The HTTP service is standardly assigned to port 80 - it provides a much shorter service connection than the other services.
|
A URL has the standard form
-
service://machine:port/file.file-extension
|
HTML hyperlinks typically use the service http for linking to other documents and media files. Some other internet services can also be used such as
-
ftp://machine/file.file-extension.
|
In this way, a Web server can provide other Internet services through the browser interface.
|
The machine is an Internet address and can either be a symbolic name provided by the Domain Name Service (DNS) or the IP numbers.
|
If the port is not specified, it defaults to 80.
|
The file.file-extension is given by any Unix path name starting from the directory known to the server as "document root". Which path names are valid is one of the options of the server - whether "public_html" is automatically put into the path name and whether paths starting with "~username" are allowed.
|
In the http service, the file-extension is used to tell the browser what helper application to use to view the file. Typical file extensions are html, gif, jpeg, mpeg, au, ram, etc.
|
CGI is an interface for running programs on the server at the request of the client.
|
When the user clicks on a CGI link, the server calls the corresponding process and returns its output, not the data/file/code associated with the process.
|
Typical Applications
-
Support for dynamic generation of HTML documents, such as on-the-fly conversions from other formats.
-
Interface to and integration with Forms/GUI area of HTML - submitted forms are handled by suitable CGI processes.
-
Interfacing with other (non-HTTP) remote services such as databases, video-on-demand, simulations, etc.
-
This is current area of major development of the web.
|
Look at a simple example of an HTML form with its CGI Perl program.
|