CMSC 417


Shankar: F99

Overview of the Internet


The Internet is a network of computers connected by communication links. The computers are also referred to as nodes (ie, nodes of a graph whose arcs are the communication links).

Computers are either hosts (also called end systems or end nodes) or routers (also called intermediate nodes). Hosts are the sources and sinks of application data. Hosts can be workstations, servers, PCs, mobiles, laptops, pagers, ...

Hosts have application processes (i.e., clients and servers for web, ftp, telnet, mail, ...). The Internet provides data connectivity between these application processes.

Physically, The communication links can be made up various physical media (coaxial cables, copper wire, fiber, radio, ...) with various physical layer protocos and data link layer protocols above them. The Internet protocols treat the link as a simple data pipe.


The network topology is roughly hierarchical.

At one end are the backbone networks, consisting of high-speed links and routers. Examples are internetMCI, SprintLink, UUNet, ATT net, ...

Next come the regional networks, which connect to the backbones at Network Access Points. Examples are Baby Bells, ...

Local/metropolitan area networks connect to regional networks. Examples are networks in campuses (eg, UMD), companies, ...

Finally, hosts connect to local area networks.

Usually, each network (backbone, regional, local) is managed by an independent organization.


The neigbors of a node are the nodes that are connected by a single communication link, ie, one hop away.

Each node has a routing table specifying a neigbor node (or equivalently, outgoing link) for each host. This neigbor node is referred to as the next hop for that host, and packets destined for the host are forwarded to this neighbor.

The entries of the routing table are set by a distributed algorithm(s) run by the nodes, namely the routing algorithm(s) (also called routing protocol, route update algorithm, etc.).

The routing algorithm regularly checks the status of links and nodes, disseminates this information  to routers, and updates the next hops in each router appropriately.

For any node x and any host y, the sequence of next hops for y starting from x SHOULD lead to y. That is, if x1 is x's nexthop for y, and x2 is x1's nexthop for y, and x3 is x2's nexthop for y, and so on, then eventually xN (for some reasonably small N) should be y.

This sequence of next hops is called the route (or path) from x to y.

Note that the routing tables may not always satisfy the desired condition. For example, it would not hold after a link has failed and the responding routing update has not yet completed.


Information moves in packets (specifically, IP packets) each containing the id (specifically, the IP address) of the destination host.

A host, say A, sends data to another host, say B, by breaking up the information into IP packets and sending the packets to its next hop for B. Each packet has id of the destination host in its header.

When a router receives a packet destined for host B, it forwards the packet to its next hop for B.

If the outgoing link is busy, the router buffers the packet. Thus associated with each outgoing link is a queue of packets awaiting transmission. The queue is usually FIFO (first-in-first-out).

If buffer space is not available or a next hop is not defined, the packet is dropped (and perhaps an indication sent back to source).


The Internet provides data transfer service between applications on hosts. Two kinds of service are available, connection-oriented and connectionless.

Connection-oriented service provides reliable data transfer. It involves a connection establishment phase, followed by data transfer phase in which data is transferred subject to flow/congestion control limitations, followed by a connection termination phase. The protocol that provides this is TCP (over IP).

Connectionless service provides unreliable data transfer. It requires no connection establishment, imposes no flow/congestion control. The protocol that provides this is UDP (over IP).

The Internet does not provide any real-time service, that is, data transfer service with (deterministic or probabilistic) guarantees of delay, jitter, and loss. Such services are appropriate for audio/video/multimedia applications, both interactive and (to a less stringent extent) non-interactive. Currently, these applications can meet (normal) user expectations only when the Internet is not heavily loaded.

The Internet does not provide differentiated data services, for example, high-priority data and low-priority data. The only thing a customer can do currently to improve its Internet service is to acquire a faster access link (to its ISP).


  Host --- ACCESS NETWORK -- router -- rest of internet

Residential access
 - telephone (physical media: twisted-pair)
    - modem over voice
    - isdn
    - ADSL
 - cable (phsyical media: fiber, coax)
    - HFC

Institutional access
 - Ethernet (physical media: coax, twisted-pair)
 - FDDI (physical media: fiber)
 - ..

Mobile access (phsyical media: radio)
 - IP over cellular
 - wirelss LAN  (400-900MHz, 1-4 GHz)
 - satellite link


Networking software organized in layers. Each layer uses the lower layer's service, and provides improved service to above layer. The improvement can be in terms of functionality (eg, larger messages, better naming, better synchronization, fifo delivery, ...) or in terms of performance (lower probability of loss, lower delay, ...).

A layer typically implements one or more of the following functions:
 - Error control
 - Flow/congestion control
 - Segmentation/Reassembly
 - Multiplexing
 - Connection management

Each layer consists of entities, where an entity is the intersection of the layer with a node (and is the implementation). Peer entities (ie, entities in the same layer) talk to each other using the protocol of the layer. An entity talks to the adjacent entities (above and below it in the same node) via the interface service calls.

                            ^ control, data           control, data ^
 layer N+1 service        --|---------------------------------------|---
                            v                                       v
                          entity    <---- protocol ---------->   entity

                            ^ control, data           control, data ^
 layer N service          --|---------------------------------------|---
                            v                                       v

 layer N implementation   entity    <---- protocol ---------->   entity

                            ^ control, data           control, data ^
 layer N-1 service        --|---------------------------------------|---
                            v                                       v


Physical Layer (Layer 1):
Provides bit communication over physical media (single hop).
Example protocols are V32, V32bis, ... Example entities are modems.

Link Layer (Layer 2):
Provides frame communication over phsyical link (single hop).
Example protocols are HDLC, LAPB, ...

Network Layer (Layer 3):
Provides packet communication between any two hosts (over multiple hops).
Example protocols are IP, Ethernet (which also subsumes layer 2), ...

Transport Layer (Layer 4):
Provides unreliable/reliable message communication between any two applications.
Protocols are TCP and UDP.

Application Layer (Layer 5):
Applications. Protocols include web (http, html), ftp, telnet, voice, ...