Download single physical link

Document related concepts

SIP extensions for the IP Multimedia Subsystem wikipedia , lookup

Piggybacking (Internet access) wikipedia , lookup

Net bias wikipedia , lookup

IEEE 802.1aq wikipedia , lookup

Distributed firewall wikipedia , lookup

AppleTalk wikipedia , lookup

Asynchronous Transfer Mode wikipedia , lookup

RapidIO wikipedia , lookup

CAN bus wikipedia , lookup

Network tap wikipedia , lookup

Computer network wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Deep packet inspection wikipedia , lookup

List of wireless community networks by region wikipedia , lookup

Internet protocol suite wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Airborne Networking wikipedia , lookup

Serial digital interface wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

IEEE 1355 wikipedia , lookup

Real-Time Messaging Protocol wikipedia , lookup

UniPro protocol stack wikipedia , lookup

Routing in delay-tolerant networking wikipedia , lookup

Transcript
Introduction
1.1 Applications
1.2 Requirements
1.3 Network Architecture
1.4 Implementing Network Software
1.5 Performance
1
1.1 Applications
 Most people know the Internet through its
applications
 World Wide Web, email, chat rooms, etc
 The Web presents an intuitively simple interface.
Users view pages full of textual and graphical
objects, click on objects that they want to learn
about, and a corresponding new page appears.
 Each selectable object is bound to an identifier for
the next page to be viewed.
2
URL
 The identifier is called Uniform Resource
Locator (URL)
 http://www.cs.princeton.edu/~llp/index.html
 http indicates that the HyperText Transfer Protocol
should be used to download the page
 www.cs.princeton.edu is the name of the machine
serving the page
 /~llp/index.html uniquely identifies the page at this
site
3
 By clicking on just one such URL, as many as
17 messages may be exchanged over the
Internet
 6 messages to translate the server name into its
Internet address
 3 messages to set up a TCP connection between
your browser and this server
 4 messages for your browser to send the HTTP
“get” request and the server to respond with the
requested page
 4 message to tear down the TCP connection
4
 Another widespread application of the Internet
is the delivery of “streaming” audio and video
 While an entire video file could first be fetched
from a remote machine and then played on the local
machine
 Stream video implies that the sender and the
receiver are respectively the source and the sink for
the video stream
5
Difference classes of video applications
 Video-on-demand
 Reads a preexisting movie from disk and transmits
it over the network
 Videoconferencing
 More challenging case
 It has very tight timing constraints (just as using a
telephone). Too much delay makes the system
unusable.
 Video is flowing in both directions (interactive video)
6
VideoConferencing
7
VideoConferencing
8
1.2 Requirements





Building blocks
Switched networks
Addressing and routing
Multiplexing
Inter-process communication
9
 The expectations of a network from different
perspective:
 An application programmer: a guarantee that each
message the application sends will be delivered
without error within a certain amount of time
 A network designer: cost-effective design
 A network provider: a system that is easy to
administer and manage
10
Building Blocks
 A network must provide connectivity among a set
of computers
 Nodes: PC, special-purpose hardware…
 hosts
 switches
 Links: coax cable, optical fiber…
 point-to-point
 multiple access
(a)
(b)
11
 Indirect connectivity
 Terms
 node
 a computer or a more specialized piece of hardware
 network switch
 a small hardware device that joins multiple
computers together within one local area network
(LAN)
 technically, network switches operate at layer two
(data link layer) of the OSI model
12
 link
 physical medium
 point-to-point
 two nodes share a single physical link
 multiple-access
 more than two nodes share a single physical link
13
Switched Networks
A network can be defined recursively as...
 two or more nodes
connected by a link, or
Switched network
two or more networks
connected by two or
more nodes
Interconnection of networks
14
Strategies
 Circuit switching
 original telephone network
 carry bit streams
15
 Packet switching
 store-and-forward messages
 each node first receives a complete packet over some
link
 stores the packet in its internal memory
 forwards the complete packet to the next node
 multiplex multiple flows of data over a single
physical link
 example: Internet
16
Addressing and Routing
 Address
 a set of hosts directly or indirectly connected to each other
does not mean that host-to-host connectivity is provided
successful.
 byte-string that identifies a node
 usually unique (IP address, MAC address)
17
Addressing and Routing
 Switches, Router and Gateways
 Used if the sending and receiving nodes are not directly
connected
 Routing
 process of how to forward messages to the destination node
based on its address
18
 Types of address
 unicast: node-specific
 broadcast: all nodes on the network
 multicast: some subset of nodes on the network
19
 IP address (Internet Protocol address)
 a unique address that certain electronic devices use in
order to identify and communicate with each other on a
computer network utilizing the Internet Protocol
standard (IP)—in simpler terms, a computer address
 any participating network device—including routers,
computers, servers, printers, Internet fax machines, and
some telephones—can have their own unique address
 example: 140.119.164.54
20
 MAC address (Media Access Control address)
 a MAC address or EHA (Ethernet Hardware Address)
or hardware address or adapter address is a quasi-unique
identifier attached to most network adapters (NICs)
 a number that acts like a name for a particular network
adapter, so, e.g., the network cards (or built-in network
adapters) in two different computers will have different
names, or MAC addresses
 8:0:2b:e4:b1:2
 8:0:20:xx:xx:xx (AMD)
21
Multiplexing
 How do several hosts share the same link when
they all want to use it at the same time
 Multiplexing: a system resource is shared among
multiple users: ex, CPU
22
 three flows of data (L1 to R1 and so on)
 multiplexed onto a single physical link by switch 1
 demultiplexed back into separate flows by switch 2
L1
R1
L2
R2
Sw itch 1
L3
Sw itch 2
R3
Multiplexing multiple logical flows over a single physical link
23
 Synchronous Time-Division Multiplexing
(STDM)
 divide time into equal-sized quanta, and in a roundrobin fashion, give each flow a chance to send its
data over the physical link
24
 Frequency-Division Multiplexing (FDM)
 transmit each flow over the physical link at a
different frequency
 e.g. signals for different TV stations are transmitted
at a different frequency on a physical cable TV link
25
Drawbacks
 if one of the flows (host pairs) does not have
any data to send, its share of the physical link
(ie, time quantum or frequency) remains idle
 both STDM and FDM are limited to situations
in which the maximum number of flows is
fixed and known ahead of time.
26
Statistical Multiplexing
 Time-division & interleaved
 the physical link is shared over time (time-division) first data from one flow is transmitted over the physical
link, then data from another flow is transmitted, and so
on (interleaved)
27
 On-demand
 data is transmitted from each flow on demand rather
than during a predetermined time slot
 if only one flow has data to send, it gets to transmit that
data without waiting for its quantum to come around
and thus without having to watch the quanta assigned to
the other flows go by unused
 this avoidance of idle time gives packet switching its
efficiency
28
 Schedule link on a per-packet basis
 once a flow begins sending data, we need some way to
limit the transmission, so that the other flows can have a
turn
 an upper bound on the size of the block of data (packet)
is defined that each flow is permitted to transmit at a
given time
 the source may need to fragment the message into
several packets, with the receiver reassembling the
packets back into the original message
29
 each flow sends a sequence of packets over the
physical link, with a decision made on a packet-bypacket basis as to which flow’s packet to send next
 if only one flow has data to send, then it can send a
sequence of packets back-to-back
 should more than one of the flows have data to
send, then their packets are interleaved on the link
30
 Scheduling methods
 FIFO (First-In-First-Out)
 a fair scheduling method
 RR (Round-Robin)
 transmit the packets from each of the different
flows that are currently sending data
 ensure that certain flows receive a particular
share of the link bandwidth or that they never
have their packets delayed in the switch for more
than a certain length of time
31
 QoS (Quality of Service)
 a network that attempts to allocate bandwidth to
particular flows according service priorities
 a topic in Ch. 6
32
■■■
 Congested
 in the following figure, the switch has to multiplex three
incoming packet streams onto one outgoing link
 it is possible that the switch will receive packets faster
than the shared link can accommodate
 in this case, the switch is forced to buffer these packets
in its memory
 should a switch receive packets faster than it can send
them for an extended period of time, then the switch
will eventually run out of buffer space, and some
packets will have to be dropped
33
 when a switch is operating in this state, it is said to be
congested
■■■
A switch multiplexing packets from multiple sources onto one shared link
34
Inter-Process Communication
 Turn host-to-host connectivity into process-toprocess communication
 Fill gap between what applications expect and what
the underlying technology provides
Host
Host
Application
Channel
Host
Application
Host
Host
Processes communicating over an abstract channel
35
Host
Host
Application
Channel
Host
Application
 Figure
Host
Host
 cloud: abstractly represent connectivity among a set of
computers
 channel: connect one process to another
 view the network as providing logical channels over
which application-level processes can communicate
with each other, each channel provides the set of
services required by that application
36
Challenge
 what functionality the channels should provide to
application programs
 does the application require a guarantee that messages
sent over the channel are delivered
 is it necessary that messages arrive at the recipient
process in the same order
 does the network need to ensure that no third parties are
able to eavesdrop on the channel
 a network provides a variety of different types of
channels, with each application selecting the type
that best meets its needs
37
Types of Communication Channels
 Request/reply channel
 applications
 file transfer
 digital library
 delivery
 guarantee every message sent by one side is received
by the other side and that only one copy of each
message is delivered
38
 privacy and integrity
 might protect the privacy and integrity of the data
that flows over it
 unauthorized parties cannot read or modify the data
being exchanged between the client and server
processes
39
 Message stream channel
 applications
 video-on-demand
 videoconferencing
 delivery
 might not need to guarantee that all messages are
delivered, since a video application can operate
adequately even if some video frames are not
received
40
 sequence
 need to ensure the messages are delivered arrive in
the same order in which they were sent, to avoid
displaying frames out of sequence
 privacy and integrity
 might want to ensure the privacy aid integrity of the
video data
 might need to support multicast, so that multiple
parties can participate in the teleconference or view
the video
41
Reliability
 Reliable message delivery is one of the most
important functions that a network can provide
 The computer networks do not exist in a perfect
world
 Machines cash, fibers cut, packets lost, …etc
 a major requirement of a network is to recover
from certain kinds of failures so that application
programs don’t have to deal with them, or even be
aware of them
 there are three general classes of failure that
network designers have to worry about
42
 Bit-level errors
 as a packet is transmitted over a physical link, a “1” is
turned into a “0” or vice versa
 bit errors
 single bit is corrupted
 burst errors
 consecutive bits are corrupted
 causes (outside forces of electrical interference)
 lightning strikes, power surges, and microwave
ovens, etc. interfere with the transmission of data
43
 bit error rate
 one out of every 106 to 107 bits on a typical copperbased cable
 one out of every 1012 to 1014 bits on a typical optical
fiber
 there are techniques that detect these bit errors with high
probability
 sometimes it is possible to correct for such errors
 sometimes it is necessary to discard the entire packet (when
damage is too bad)
44
 Packet-level errors
 the failure is at the packet level, rather than the bit level
 a complete packet is lost by the network
 the packet contains an uncorrectable bit error and
therefore has to be discarded
45
 causes
 one of the nodes that has to handle the packet, e.g., a
switch that is forwarding it from one link to another,
is so overloaded that it has no place to store the
packet, and therefore is forced to drop it (congestion)
 the software running on one of the nodes that
handles the packet makes a mistake (ie., incorrectly
forward a packet)
 main difficulty
 distinguish between a packet lost and late arriving
46
 Node and Link level failures
 a physical link is cut or the computer it is connected to
crashes
 causes
 software crashes, power failure, misconfiguration of a
network device
 sometimes route around a failed node or link is possible
 difficulty
 distinguish between a failed computer and one that is merely
slow
47
 Others
 messages are delayed
 messages are deliver out-of-order
 third parties eavesdrop
48
1.3 Network Architecture
 a computer network must provide general, cost
effective, and robust connectivity among a large
number of computers
 network designers have developed general
blueprints—network architectures—that guide the
design and implementation of networks
49
Layering
 When a system gets complex, the system designer
introduces another level of abstraction
 Abstraction defines a unifying model that can
 capture some important aspect of the system
 encapsulate this model in an object that provides an
interface that can be manipulated by other
components of the system
 hide the details of how the object is implemented
from the users of the object
50
 we will use abstractions to hide complexity of the
network from application writers
 Abstractions naturally lead to layering
 start with the services offered by the underlying
hardware
 add a sequence of layers, each providing a higher
(more abstract) level of service
 the services provided at the high layers are
implemented in terms of the services provided by
the low layers
51
 imagine a simple network as having two layers of
abstraction
 Host-to-host connectivity
 abstracting away the fact that there may be an arbitrarily
complex network topology between any two hosts
 process-to-process channels
 builds on the available host-to-host communication service
 abstracting away the fact that the network
Application programs
Process-to-process channels
occasionally loses messages
Host-to-host connectivity
Hardware
52
Example of a layer network system
 layering provides two nice features
 it decompose the problem of building a network
into more manageable components
 can implement several layers and each of which solves
one part of the problem
 it provides more modular design
 when we want to add some new service
 need only to modify the functionality at one layer
 reusing the functions provided at all the other layers
53
 Many times there are multiple abstractions provided at
any given level of the system
 Each provides a different service to the higher layers
but builds on the same low-lever abstractions
 One provides a request/reply service and one supports a
message stream service at the same process-to-process
channel
Application programs
Request/reply Message stream
channel
channel
Host-to-host connectivity
Hardware
Layered system with alternative abstractions
available at a given layer
54
Protocols
 Protocol
 the abstract objects that make up the layers of a
network system
 used to provide a communication service that
higher-level objects (e.g. application processes,
higher-level protocols) use to exchange messages
 e.g. request/reply protocol, message stream
protocol
 building blocks of a network architecture
55
Host 1
Host 2
Service
interface
High-level
object
Protocol
Peer-to-peer
interface
High-level
object
Protocol
 Each protocol object defines two different
interfaces
 service interface
 defines a service interface to the other objects on
the same computer that want to use its
communication services
 defines the operations that local objects can
perform on this protocol
56
Host 1
High-level
object
Host 2
Service
interface
High-level
object
Protocol
Protocol
 examples
Peer-to-peer
interface
 a request/reply protocol would support
operations by which an application can send
and receive messages
 an implementation of the HTTP protocol
could support an operation to fetch a page of
hypertext from a remote server
 an application such as a web browser would
invoke such an operation whenever the
browser needs to obtain a new page
57
 peer-to-peer interface
 defines a peer interface to its counterpart (peer)
on another machine
 defines the form and meaning of messages
exchanged between protocol peers
Host 1
High-level
object
Protocol
Host 2
Service
interface
Peer-to-peer
interface
High-level
object
Protocol
58
 examples, in the case of HTTP, the protocol
specification defines in detail
 how a "GET" command is formatted
 what arguments can be used with the
command
 how a web server should respond when it
receives such a command
59
 summary: a protocol defines
 a communication service that it exports locally
(the service interface)
 a set of rules governing the messages that the
protocol exchanges with its peer(s) to implement
this service (the peer interface)
Host 1
High-level
object
Protocol
Host 2
Service
interface
Peer-to-peer
interface
High-level
object
Protocol
60
Host 2
Host 1
High-level
object
Protocol
Service
interface
Peer-to-peer
interface
Service and peer interfaces
High-level
object
Protocol
61
Protocol Machinery
 Peer-to-peer is direct only at hardware level
 Most peer-to-peer communication is indirect
 each protocol communicates with its peer by
passing messages to some lower-level protocol,
which in turn delivers the message to its peer
 Protocol graph
 there are potentially multiple protocols at any given
level, each providing a different communication
service
 protocol graph represents the suite of protocols that
make up a network system
62
nodes:protocols
 Example of a protocol graph
edges: “depends on” relations
Host 1
File
application
Digital
library
application
Video
application
Host 2
File
application
Digital
library
application
Video
application
Application programs
Process-to-process channels
Host-to-host connectivity
63
Hardware
 process-to-process channels
 RRP: Request Reply Protocol
 MSP: Message Stream Protocol
 host-to-host protocol (provides a host to host
connectivity service)
 HHP: Host-to-Host Protocol
Application programs
Process-to-process channels
Host-to-host connectivity
Hardware
64
 hardware level
 peers directly communicate with each other over
a link
 the applications are said to employ the services of
the protocol stack RRP/HHP or MSP/HHP
Application programs
Process-to-process channels
Host-to-host connectivity
Hardware
65
Encapsulation (header/body)
Host
Host
Application
Application
program
program
Application
Application
program
program
Data
Data
RRP
RRP
RRP
Data
RRP
HHP
Data
HHP
HHP
RRP
Data
High-level messages are encapsulated inside of low-level messages
66
 Operation flow
 host1
 application sends a message to its peer by passing
the message to protocol RRP (uninterpreted)
 RRP
 communicates control info to its peer, instructing it
how to handle the message when it is received
 attaches a “header” to the message
67
 header
 a small data structure - from a few bytes to a few
dozen bytes
 usually attached to the front of a message
 body (or payload)
 the rest of the message
 data
 application data is “encapsulated” in the new
message created by protocol RRP
68
 encapsulation
 high-level messages are encapsulated inside of lowlevel messages
 the process of encapsulation is repeated at each level
of the protocol graph
 inspection & process
 nodes in the network (e.g., switches and routers) may
inspect the HHP header at the front of the message
69
 It is sometimes the case that the low-level
protocol applies some simple transformation to
the data it is given, such as to compress or
encrypt it
70
Multiplexing and Demultiplexing
 A fundamental idea of packet switching is to multiplex
multiple flows of data over a single physical link
 The same idea applies up and down the protocol graph
 The header that RRP attaches to its messages contains
an identifier that records the application to which the
message belongs
 We call this identifier RRP’s demultiplexing key, or
demux key
L1
R1
R2
L2
Sw itch 1
Sw itch 2
71
L3
R3
 Source host
 at the source host, RRP includes the appropriate demux key
in its header
 Destination host
 when the message is delivered to RRP on the destination
host, it
 strips its header
 examines the demux key
 demultiplexes the message to the correct application
72