Side_1_360

(Dana P.) #1

  • Sender adaptation; when an ACK message
    acknowledges a number of data segments, one
    could equate it to the same number of ACK
    messages. Thus, the congestion window at
    the sender side can grow correspondingly.
    Making sure that the number of segments
    acknowledged and not the number of ACK
    messages is used would also be in line with
    the situation on the forward direction.

  • Reconstructing ACK messages; in case sender
    adaptation is not used, the original sender side
    of the constrained link (forward direction) can
    examine the ACK messages and reconstruct
    any intermediate ACK messages not seen.
    This could be done by generating the ACK
    messages and putting them on the link evenly
    distributed in time.


A more generic technique of the latter is to intro-
duce an ACK compaction and an ACK expan-
sion in the network, see Figure 14. The com-
paction would remove any “unnecessary” ACKs
and the expansion would reconstruct the same
ACKs, making it transparent for the end-sys-
tems. However, additional protocol mechanisms
have to be introduced to enable this.

6 Addressing and Routing


6.1 Addressing and Identifiers

A nameidentifies whatan object is, an add-
ressidentifies whereit is, a routetells howto

get there, a pathsays which sequence of steps
to traverse, and a linkwould be a stepin the
path.

Referring to the configuration depicted in Figure
15 a major issue is how the different port num-
bers are allocated. In principle there are two
ways this can be done; i) universal assignment;
and ii) dynamic binding. In the former, a cen-
tralised authority is typically used to assign port
numbers and publish the results to the hosts
(could well be done hierarchically). In the latter,
port numbers are assigned when needed. This
implies that each program that needs a port num-
ber is assigned one on demand. In order to know
the port number on a remote host, an enquiry has
to be sent to that host, which replies with the
proper port number to use.

Typically a combination of the two ways of
assigning port numbers has been chosen; some
numbers are fixed while others are used dynami-
cally. The ports refer to identifiers used on the
transport layer (TCP/UDP). The port identifiers
are included in the UDP/TCP headers.

Referring to identifiers used on the IP layer, a
Domain Name System (DNS) is used to translate
between more high-level names and IP add-
resses. For instance, the name viking.telenor.com
could translate into a 32 bit IP version 4 address
(and the other way around). Such a naming
scheme would then be used to assign names
throughout the IP-based networks. It also pro-
vides a large-scale example of the client-server
concept as a DNS server would be enquired in
order to make a translation between the name
and the address, see examples in Figure 16.

In principle, the resolution algorithm used for
the translation proceeds from the top (top-level
domain) and continuing down. There are two
ways of using the domain name system: i) by
asking the name servers one by one until the
resolution is complete; or ii) by asking a name
server to do the complete resolution (lower

Figure 14 Introducing ACK
compaction and expansion
nodes (note these might be the
receiver and the sender nodes,
respectively)


ACK expansion node ACK compaction node

sender receiver

ACK

data

ACK

data

ACK

data

ACK

data

ACK

data

ACK

data

constrained reverse link

e.g. A socket
A port identity
A IP address

Application

Transport

IP

Network
Interface

IP
routing/forwarding

Network Interface

Application

Transport

IP

Network
Interface

e.g. B socket
B port identity
B IP address

Host A Host B

User data Transport layer header IP packet header Link level header

Figure 15 Hierarchy of
functionality/protocols

Free download pdf