sponse to the requestor, because users
do not have names and server names
are not unique.) Rather, the session
protocol leaves traces of the session
in every member that forwards the request, so that the response can follow
the path in reverse.
NDN is a “future Internet architecture,” as mentioned at the outset. In
current NDN deployments, wherever
NDN links must traverse non-NDN
nodes, they are implemented by being
layered on top of the public Internet.
NDN networks are particularly interesting because their design shows
how the session protocol, routing, and
forwarding of a network can be highly
specialized and tightly integrated.
Composition by Layering
Layering of self-contained networks.
The most important operator for the
composition of networks is layering,
which is simply what happens when
one network uses the services of another network, in exactly the sense discussed earlier. More specifically, a link
in a user network is implemented by a
session in a used network.
A usage hierarchy is a directed acyclic graph whose nodes are networks
and whose edges represent composition by link implementation. A level
in this graph is a set of networks that
all have the same graph distance from
some reference point. This definition
will be refined further.
For example, Figure 3 is derived
from a usage hierarchy, with the levels
of the graph being represented by vertical placement. The bidirectional link
between 2. 7 and 2. 8 in the campus IP
network is implemented by a bidirectional session in the administrators’
VLAN that follows the path shown between M7 and M8. The link between M7
and M4 in the VLAN is implemented by
a session in the left physical LAN following the spanning-tree path between
M7 and M4. Note that machines have
distinct members in VLANs and LANs,
even though those networks happen to
use the same Ethernet design and the
same namespace.
Consider the right LAN in Figure 3.
It links machines in both the students’
and administrators’ groups, so it must
implement links in at least two VLANs.
When the destination of a session
in this LAN receives a packet, which
member of which VLAN should it de-
liver the packet to? LAN packets in this
architecture have a user-network iden-
tifier called a “VLAN tag,” which tells
the destination which user network is
being served by the session.
The shift from a principle of fixed
layers to a principle of many self-contained networks encourages a shift in
thinking and terminology—from different concepts and terminology for
each layer to concepts and terminology
that emphasize the similarities among
layered networks. Most importantly of
all, users of networks—distributed application systems—can be networks
themselves, and the distinction between the two concepts weakens.
If the service provided by a session
protocol has a specification, then the
specified properties of a session are
also the guaranteed properties of a link
the session implements. For example,
the best-known service of IP networks
is implemented by the session protocol TCP. A user of TCP sends a stream
of bytes, and this byte stream must be
received by the user at the other end of
the session with no bytes missing or
duplicated, and all in the same order in
which they were sent.
In the case of TCP the work needed to satisfy this specification is performed by the protocol implementation in the network members at the
endpoint machines. IP/TCP packet
headers have a session identifier (the
four-tuple with both names and both
ports) and a user network (the destination port or “well-known port”). The
network has a maximum transmission
unit limiting the size of IP packets. So
the TCP implementation at the source
accepts a byte substream, disassembles it into IP packets, encapsulates
each packet in the TCP/IP header, and
sends it through the network. When
the TCP implementation at the destination receives packets, it decapsu-lates them by removing the TCP/IP
header, requests retransmissions of
missing substreams, assembles a complete substream in byte order, and delivers it to the receiver.
Names and directories. Classic descriptions of the Internet associate
“domain names” with the application
layer, IP “addresses” with the network layer, and MAC addresses with
the link layer. In the new model ev-
The most important
operator for
the composition
of networks
is layering, which
is when a link in
a network
is implemented
by a session in
a used network.