Lektion 1-Introduktion

Download Report

Transcript Lektion 1-Introduktion

Datornätverk A – lektion 13
Kapitel 19: Routing.
Kapitel 21: Routing Protocols
Forts. kapitel 22: UDP och TCP.
(Kapitel 23: Congestion control and QoS översiktligt.)
Hosts and Routers
• The computers in Internet terminology are called hosts. They usually have one
NIC (network interface card = network adapter = nätverkskort)
• Routers are special purpose computers and they have more than one NIC
○
○
○
○
An old name for routers is gateways
Forward packets between networks (route and switch)
Transform packets as necessary to meet standards for each network
A Windows PC can act as a router if it has more than one NIC, and IP forwarding is
enabled in the networking settings.
What Does a Router Do?
•
•
•
•
•
Accepts incoming packets
Checks the destination address in the IP header
Look up for destination in the forwarding table
Sends packet to the appropriate next hop
The packet may be dropped if
○ There is no space in the router’s buffers
○ The TTL=0
○ There is no matching row in the routing table
Forwarding (Routing) Table
• The forwarding table consists of two columns: “Destination
network” and “Next hop”.
• Destination network is some network address and the next
hop is the address of the next router.
• When the router is connected directly to a network, the
“Next hop” is labeled as “Direct” meaning “Directly
connected”
Figure 19.29
Network-specific routing
Figure 19.31
Default routing
Default Route
• In order to make the forwarding table shorter (smaller
number of rows) the default route is introduced
• “Default” or “Else” is a row that points to some “Next hop”
and is used whenever a destination is not found in the
forwarding table.
• Hosts send all packets out of their network to the default
router (or gateway)
Figure 19.32
Example: Subnet mask based routing table
Example 10
Using the table in Figure 19.32, the router receives a packet for
destination 192.16.7.1. For each row, the mask is applied to the
destination address until a match with the destination address is
found. In this example, the router sends the packet through
interface m0 (host specific).
Example 11
Using the table in Figure 19.32, the router receives a packet for
destination 193.14.5.22. For each row, the mask is applied to the
destination address until a match with the next-hop address is
found. In this example, the router sends the packet through
interface m2 (network specific).
Example 12
Using the table in Figure 19.32, the router receives a packet for
destination 200.34.12.34. For each row, the mask is applied to the
destination address, but no match is found. In this example, the
router sends the packet through the default interface m0.
Example: Unicast Routing
128.47.23.10
netid
128.47.92 /24
128.47.23 /24
128.47.36 /24
port
2
1
2
1
128.47.92.67
netid
128.47.92 /24
128.47.23 /24
128.47.36 /24
port
1
2
3
R1
3
Router R1 checks
its table and
sends it to R2
through its
interface 2.
R2
2
R3
2
1
128.47.23.00 /24
Host with IP
address
128.47.92.67
sends a packet to
host
128.47.23.10
128.47.36.00 /24
128.47.36.97
Router R2 checks
its table and
sends it to its
interface 1
The Forwarding Table
• Necessary in every host and the router
○ On Windows OS it can be seen using the command netstat –rn at
the command prompt
○ Entries in the destination column are networks, not hosts
○ Once the interface on the router through which the packet is to be
delivered is known, the physical address is used for delivery
• Contains the columns: Destination (Network destination),
Mask (Netmask), Next hop (Gateway), Interface and
Metric
Example
How Routers Build the Routing
Tables
• Preprogrammed or Static Routes
○ The table is manually configured by a human
○ The routes cannot be dynamically changed if something fails
• Dynamically calculated routes
○ Calculated by the software built in the routers that provide
communication among routers
○ Algorithms that calculate shortest path are used
○ Complexity is increased, but the routes change automatically if some
part of the network fails
Metric
• A metric is a cost assigned for passing through a network
• The total cost of the path is the sum of the metrics for the
networks that are on the path
• Metrics are assigned in such a way that the “best pat” is the
path with the minimum total cost
The “Best Path”
• Factors determining the best path
○
○
○
○
○
○
Bandwidth
Delay
Hop-count
Load
Money
Reliability
S
• The cost or the metric can involve a
single or several of these factors
The “best path”
from S to D is
A C  B
B
A
4
2
C
1
D
Interior vs. Exterior Protocols
• The worldwide Internet is a very large network
○ It needs to be segmented in areas based upon the entity that administrates
the networks and routers in the area
○ Autonomous System (AS) is a collection of networks and routers under
single administration authority
• Interior protocols or IGP (Interior Gateway Protocols)
○ Used for routing inside AS
• Exterior protocols or EGP (Exterior Gateway Protocols)
○ Used for routing between ASs
Figure 21.3
Autonomous systems
Figure 21.5 Initial routing tables in a small autonomous system
Figure 21.6
Final routing tables for Figure 21.5
Interior Routing Protocols
• The goal: To choose the best path, among a set of
alternatives based on some or a combination of criteria (e.
g. minimum delay, maximum throughput etc.)
• The objectives are to use the network resources (bandwidth
and the router’s buffers and processing power) in the best
way
• Two groups of interior protocols
○ Distance Vector protocols
○ Link State protocols
Figure 21.2
Popular routing protocols
RIP = Routing Information Protocol
OSPF = Open Shortest Path First
BGP = Boarder Gateway Protocol
Unicast vs. Multicast
• Unicast:
○ One source to one destination
• Multicast:
○ One source to many destinations
○ Many sources to many destinations
○ Many sources to one destination
• Motivation for multicast routing
○ Growing demand (vide/audio conferences, vide streaming etc)
○ Bandwidth need to be saved
Example
Router 3
Receiver 1
Router 1
Receiver 2
Sender
Router 2
Receiver 3
• If unicast routing is used, the links between the sender and the
Router 1 will be overloaded (bandwidth required will depend
on the number of receivers)
Figure 21.23
Multicasting
Group Membership vs. Multicast
Routing
• IGMP (Internet Group Management Protocol)
○ Keeps router up-to-date with group membership of entire LAN
○ A device can join or leave a group at any moment
• Multicast Routing Protocols
○ MBone – A set of routers on the Internet that are running multicast
routing protocols
○ Tunneling (encapsulation of multicast packets into unicast packets)
is used in the rest of the network
Note:
In multicast routing, the router may
forward the received packet through
several of its ports.
Note:
IGMP is a group management
protocol. It helps a multicast router
create and update a list of loyal
members related to each router
interface.
Figure 21.32
MBONE
PART V
Transport Layer
Position of transport layer
Transport layer duties
Chapters
Chapter 22 Process-to-Process Delivery
Chapter 23 Congestion Control and QoS
Chapter 22
Process-to-Process
Delivery:
UDP and TCP
Note:
The transport layer is responsible for
process-to-process delivery.
Figure 22.1 Types of data deliveries
Virtual Connection at the Transport
Layer
Host
Router
Router
Application
Application
TCP, UDP
IP
Physical
Protocol stack
in the host
Host
TCP, UDP
IP
IP
Physical
Physical
Protocol stack in
the router
IP
Physical
Protocol stack
in the host
Figure 22.5
Socket address
A socket is a data flow between two processes
that is identified by its socket address pair, i.e.
a unique combination of:
- Transport protocol (UDP or TCP).
- Source IP address and port number.
- Destination IP address and port number.
Figure 22.7
Connection establishment
Figure 22.8
Connection termination
Client-Server Paradigm
• Used most often in Internet process-to-process communication, for
example, email, web, file transfer, etc.
• The client process initiates the communication.
• The server process waits for the client to initiate communication, and
responds by sending the information required. Example: Web server,
email server, ftp server, etc.
• A firewall often stops external clients from accessing internal servers,
except certain web
• Opposite: Peer-to-peer communication, where a program can act both
as client (taking initiative) and server (responding to other).
Multiplexing and Demultiplexing
Sender processes
Web
Email
TCP
MP3
UDP
IP
IP datagrams
Receiver processes
Web
Email
TCP
UDP
IP
IP datagrams
MP3
Connection-oriented vs.
Conectionless
• A connection-oriented service requires both sender and
receiver to create a connection before any data is
transferred
○ TCP provides connection oriented service to the applications
• A connectionless service does not create a connection first
but simply sends the data
○ UDP provides connectionless service to the applications
Example: Connection-oriented
Service
• An analogy to the connection-oriented service is
telephone conversation
Example: Connectionless Service
• An analogy to connectionless service is the delivery of the mail
Data-link vs. Transport Layer
• Data link layer
○ Responsibile for reliability between two directly connected points
• Transport layer
○ Resposibe for reliability over the internetwork
Duties of the data-link layer
Network 1
Network 3
Network 2
Internetwork
Duties of the data-link layer
Duties of the data-link layer
Duties of the transport layer
Reliable vs. Unreliable
• Transport layer can offer
○ Unreliable service (UDP)
• No guarantee that the packet will be delivered to the
destination
• Useful especially for transmitting audio and video
files where waiting for acknowledgement can be
annoying for the user
○ Reliable service (TCP)
• Connection establishment
• Connection maintenance
• Connection termination
User Datagram Protocol (UDP)
• No reliability or connection management!
• Serves solely as a labeling mechanism for demultiplexing
at the receiver end
• Use predominantly by protocols that do no require the
strict service guarantees offered by TCP (e.g. real-time
multimedia protocols)
• Additional intelligence built at the application layer if
needed
Transmission Control protocol
(TCP)
• Provides a connection-oriented end-to-end (user-to-user) reliable
byte stream service in both directions (full duplex)
• Divides a byte stream into a sequence of segments and sends
them to the destination via IP
• Uses the destination port, source port to identify the application
to which the segment is sent (multiplexing the sessions)
• Uses sliding window like scheme for flow control and congestion
control
Connection Management
•
Two way handshake protocol is not enough because of potential delays in either A’s
request or B’s responce, as shown below. Possibility of confusion exists.
A
B
A sends a
t1
connection request
A sends connection
t2
request again
A receives the
acknowledgement
and establishes a t4
connection
t3
A and B exchange
data and eventually
disconnect
time
B receives connection
request
B establishes a
connection and sends
an acknowledgement
B receives connection
t5 request
B establishes a
connection and sends
an acknowledgement
time
Three-way Handshake Protocol for
Connection Establishment
A
A sends a connection
request with seq. no. x
B
t1
A sends connection request t2
again with seq. no. y
A receives the
acknowledgement y+1 and t4
sends acknowledgement z+1
A does not send an
acknowledgement and no
connection is established
t3 B sends acknowledgement
y+1 and seq. no. z
The connection is
established
t5 B sends acknowledgement
x+1 and seq. no. w
t6
time
time
Connection Establishment and
Termination
Active open
SYN
Send connection
request
SYN+ACK
Server does passive open
Accept connection request
Send acceptance
ACK
DATA
Start connection
The three-way handshake TCP
segments are labeled with SYN.
The length of data in the first two
is 0
• 3-way handshake used for
connection establishment
• Randomly chosen sequence
number is conveyed to the
other end
• Similar FIN, FIN+ACK
exchange used for
connection termination
TCP’s Segments
• TCP treats data as a sequence of bytes to be divided and sent in
segments.
• The size of the segment depends on the underlying physical network
and on the number of bytes the sender is allowed to send (window
size)
• Rather than numbering each segment, TCP stores the sequence number
of the data byte in the segment
• The source and the destination each have separate sequence numbers
• The acknowledgement numbers are equal to the next expected
sequence number
Window Management in TCP
• Sliding window scheme is used with variable window
○ The window can change depending on the traffic in the network
(TCP provides congestion control)
• The size of the window is expressed in bytes instead of
packets
• The window size depends on the receiver’s capabilites and
the congestion in the network
TCP Sliding Window
segment 1
100 bytes of data numbered from
1 to 100
acknowledge 801
segment 2
100 bytes of data numbered from
701 to 800, ack 101
acknowledge 101
segment 1
100 bytes of data numbered from
101 to 200, ack 801
acknowledge 901
segment 3
100 bytes of data numbered from
801 to 900, ack 201
acknowledge 201
segment 2
TCP/IP Client-Server Model
• The clent request an unassigned port number from TCP for
its own connection.
• It incorrporates randomly chosen port number in the TCP
header and the well known port for the particular
application. Then it passes the packet to IP
• IP handels the routing of the datagram using
source/destination address and delivers the datagram to the
destination network and then to the destination host
TCP/IP Client-Server Model (cont.)
• The datagram is processed and delivered to the TCP layer.
TCP processes the segment and delivers the data to the
server through its port number
• The server now knows the port number of the client (as it
was contained in the TCP header) enabling bidirectional
communication
22.2 UDP
Port Numbers
User Datagram
Applications
Note:
UDP is a connectionless, unreliable
protocol that has no flow and error
control. It uses port numbers to
multiplex data from the application
layer.
Table 22.1 Well-known ports used by UDP
Port
Protocol
Description
7
Echo
Echoes a received datagram back to the sender
9
Discard
11
Users
13
Daytime
17
Quote
19
Chargen
53
Nameserver
67
Bootps
Server port to download bootstrap information
68
Bootpc
Client port to download bootstrap information
69
TFTP
Trivial File Transfer Protocol
111
RPC
Remote Procedure Call
123
NTP
Network Time Protocol
161
SNMP
Simple Network Management Protocol
162
SNMP
Simple Network Management Protocol (trap)
Discards any datagram that is received
Active users
Returns the date and the time
Returns a quote of the day
Returns a string of characters
Domain Name Service
Figure 22.10
User datagram format
Note:
The calculation of checksum and its
inclusion in the user datagram are
optional.
Note:
UDP is a convenient transport-layer
protocol for applications that provide
flow and error control. It is also used
by multimedia applications.
22.3 TCP
Port Numbers
Services
Sequence Numbers
Segments
Connection
Transition Diagram
Flow and Error Control
Silly Window Syndrome
Table 22.2 Well-known ports used by TCP
Port
Protocol
Description
7
Echo
Echoes a received datagram back to the sender
9
Discard
11
Users
13
Daytime
17
Quote
19
Chargen
20
FTP, Data
21
FTP, Control
23
TELNET
25
SMTP
53
DNS
67
BOOTP
79
Finger
Finger
80
HTTP
Hypertext Transfer Protocol
111
RPC
Discards any datagram that is received
Active users
Returns the date and the time
Returns a quote of the day
Returns a string of characters
File Transfer Protocol (data connection)
File Transfer Protocol (control connection)
Terminal Network
Simple Mail Transfer Protocol
Domain Name Server
Bootstrap Protocol
Remote Procedure Call
Figure 22.11 Stream delivery
Figure 22.12
Sending and receiving buffers
Figure 22.13 TCP segments
Example 1
Imagine a TCP connection is transferring a file of 6000 bytes. The
first byte is numbered 10010. What are the sequence numbers for
each segment if data are sent in five segments with the first four
segments carrying 1000 bytes and the last segment carrying 2000
bytes?
Solution
The following shows
Segment 1 ==>
Segment 2 ==>
Segment 3 ==>
Segment 4 ==>
Segment 5 ==>
the sequence number for each segment:
sequence number: 10,010 (range: 10,010
sequence number: 11,010 (range: 11,010
sequence number: 12,010 (range: 12,010
sequence number: 13,010 (range: 13,010
sequence number: 14,010 (range: 14,010
to 11,009)
to 12,009)
to 13,009)
to 14,009)
to 16,009)
Note:
The bytes of data being transferred in
each connection are numbered by
TCP. The numbering starts with a
randomly generated number.
Note:
The value of the sequence number
field in a segment defines the number
of the first data byte contained in that
segment.
Note:
The value of the acknowledgment field
in a segment defines the number of the
next byte a party expects to receive.
The acknowledgment number is
cumulative.
Figure 22.14 TCP segment format
Figure 22.15
Control field
Table 22.3 Description of flags in the control field
Flag
Description
URG
The value of the urgent pointer field is valid.
ACK
The value of the acknowledgment field is valid.
PSH
Push the data.
RST
The connection must be reset.
SYN
Synchronize sequence numbers during connection.
FIN
Terminate the connection.
Figure 22.16 Three-step connection establishment
Figure 22.17
Four-step connection termination
Table 22.4 States for TCP
State
Description
CLOSED
There is no connection.
LISTEN
The server is waiting for calls from the client.
SYN-SENT
A connection request is sent; waiting for acknowledgment.
SYN-RCVD
A connection request is received.
ESTABLISHED
Connection is established.
FIN-WAIT-1
The application has requested the closing of the connection.
FIN-WAIT-2
The other side has accepted the closing of the connection.
TIME-WAIT
Waiting for retransmitted segments to die.
CLOSE-WAIT
The server is waiting for the application to close.
LAST-ACK
The server is waiting for the last acknowledgment.
Figure 22.18
State transition diagram
Note:
A sliding window is used to make
transmission more efficient as well as
to control the flow of data so that the
destination does not become
overwhelmed with data. TCP’s sliding
windows are byte-oriented.
Figure 22.19
Sender buffer
Figure 22.20
Receiver window
Figure 22.21
Sender buffer and sender window
Figure 22.22
Sliding the sender window
Figure 22.23
Expanding the sender window
Figure 22.24
Shrinking the sender window
Note:
In TCP, the sender window size is
totally controlled by the receiver
window value (the number of empty
locations in the receiver buffer).
However, the actual window size can
be smaller if there is congestion in the
network.
Note:
Some points about TCP’s sliding windows:
The source does not have to send a full
window’s worth of data.
The size of the window can be increased or
decreased by the destination.
The destination can send an acknowledgment
at any time.
Figure 22.25
Lost segment
Figure 22.26
Lost acknowledgment
Figure 22.27 TCP timers
Chapter 23
Congestion Control
and
Quality of Service
23.1 Data Traffic
Traffic Descriptor
Traffic Profiles
Figure 23.1 Traffic descriptors
Figure 23.2
Constant-bit-rate traffic
Figure 23.3 Variable-bit-rate traffic
Figure 23.4
Bursty traffic
23.2 Congestion
Network Performance
Figure 23.5
Incoming packet
Figure 23.6
Packet delay and network load
Figure 23.7 Throughput versus network load
23.3 Congestion Control
Open Loop
Closed Loop
23.4 Two Examples
Congestion Control in TCP
Congestion Control in Frame Relay
Note:
TCP assumes that the cause of a lost
segment is due to congestion
in the network.
Note:
If the cause of the lost segment is
congestion, retransmission of the
segment does not remove
the cause—it aggravates it.
Figure 23.8
Multiplicative decrease
Figure 23.9
BECN
Figure 23.10
FECN
Figure 23.11 Four cases of congestion
23.5 Quality of Service
Flow Characteristics
Flow Classes
23.6 Techniques to Improve QoS
Scheduling
Traffic Shaping
Resource Reservation
Admission Control
Figure 23.12
Flow characteristics
Figure 23.13
FIFO queue
Figure 23.14
Priority queuing
Figure 23.15 Weighted fair queuing
Figure 23.16
Leaky bucket
Figure 23.17
Leaky bucket implementation
Note:
A leaky bucket algorithm shapes
bursty traffic into fixed-rate traffic by
averaging the data rate. It may drop
the packets if the bucket is full.
Figure 23.18 Token bucket
Note:
The token bucket allows bursty traffic
at a regulated maximum rate.
23.7 Integrated Services
Signaling
Flow Specification
Admission
Service Classes
RSVP
Note:
Integrated Services is a flow-based
QoS model designed for IP.
Figure 23.19
Path messages
Figure 23.20
Resv messages
Figure 23.21
Reservation merging
Figure 23.22
Reservation styles
23.8 Differentiated Services
An Alternative to
Integrated Services
Note:
Differentiated Services is a class-based
QoS model designed for IP.
Figure 23.23
DS field
Figure 23.24 Traffic conditioner
23.9 QoS in Switched Networks
QoS in Frame Relay
QoS in ATM
Figure 23.25
Relationship between traffic control attributes
Figure 23.26
User rate in relation to Bc and Bc + Be
Figure 23.27
Service classes
Figure 23.28
Relationship of service classes to the total capacity