Internet DRAFT - draft-kobayashi-sirens
draft-kobayashi-sirens
INTERNET-DRAFT Katsushi Kobayashi
draft-kobayashi-sirens-00.txt NICT
August 24, 2005
Expires February 2006
Simple Internet REsource Notification System (SIRENS) framework and protocol
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on February xx, 2006.
Copyright Notice Copyright (C) The Internet Society (2005).
Abstract
This document specifies a Simple Internet REsource Notification
System (SIRENS) framework and protocol. SIRENS framework intended to
improve end-to-end communication throughput with network information
provided by the routers in an explicit ways. In the seven layer
model, SIRENS protocol layer is located between network and transport
layer. This document also provides how to interact between SIRENS
and upper transport system as TCP.
1. Introduction
This document specifies a Simple Internet REsource Notification
System (SIRENS) framework and protocol. SIRENS is an in-band network
Kobayashi Expires February 2006 [Page 1]
Internet Draft SIRENS framework and protocol August 24, 2005
path surveying system with an explicit router response mechanism,
like the XCP and TCP quick starts already proposed. SIRENS provides
a function where an end host surveys along the communication path
through either end-to-end or hop-by-hop, and information about the
path is immediately updated. The end host can optimize its
communication behavior and be up-to-date. In TCP communication, the
maximum size of the congestion window in TCP should be set into the
product of the bottleneck bandwidth and the round trip time.
In the original TCP, the bottleneck bandwidth should be predicted
with implicit responses from the network, but the predicted bandwidth
is not sufficiently accurate. With SIRENS, the end host is able to
obtain the bottleneck bandwidth with an exact response. Also, the
router can inform the end host of the traffic behavior preferred by
the operator's policy or the network conditions.
2. Motivation and requirements for explicit network information feedback
system
There has been a many kind of requirements for an end-to-end
transport system to extend the network application area.
Sophisticated transport control following the end-to-end network
conditions is indispensable to ensure the requirements. Almost all
current Internet transport standards predict network conditions with
implicit responses, e.g., packet losses with uncontineous sequence
number, changing round trip time (RTT) and time to live (TTL), and
MTU discovery with ICMP packet too big message, etc. A limited
number of explicit responses has been standardized for the transport
system as ECN. The network conditions predicted with these methods
are insufficient to satisfy application requirements. A more
accurate system to survey network conditions with explicit ways has
been expected. A great success has been achieved with additive
increase and multiple decrease (AIMD) control of TCP. With TCP-
NewReno implementation, the congestion window size increases
gradually in the congestion avoidance phase, i.e., by only one packet
per RTT. More than 10 hours is required for the sending data rate to
increase up to half the bottleneck bandwidth, where the bottleneck
bandwidth is 10 Gbps, the RTT is 100 ms, and the segment size Is 1500
bytes. This longer time to reach a peak bandwidth obstructs TCP from
using up a higher bandwidth link.
Attempts are still being made to improve TCP performance by
increasing network bandwidth. More aggressive rate control and
bottleneck prediction approaches have been proposed for large
bandwidth delay product networks [HSTCP, SCTCP, and FAST]. However,
all the above approaches involve packet loss or RTT changing caused
by congestion due to the TCP sender attempting to predict bottleneck
bandwidth. If network path information could be collected with
explicit router response, these intended congestion conditions could
Kobayashi Expires February 2006 [Page 2]
Internet Draft SIRENS framework and protocol August 24, 2005
be avoided, and better TCP performance could be expected.
Moreover, In real-time A/V stream communication, it is difficult to
apply the AIMD control used in TCP. The data rate for stream
applications relies on the encoding method, and usually has CBR-like
traffic characteristics. It is easy to multiply or decrease the data
rate by switching poor encoding, when packet loss is detected.
However, as it is impossible to increase the data rate additively, it
should be changed stepwise. If there were a real-time system of
surveying bottleneck bandwidths from the end host, the sender could
know when to switch to a higher data rate, i.e. a higher media
quality encoding format.
An explicit system to feed back network information from the end host
to obtain end-to-end communication path information using a specific
probe message Is required. An end host sends a probe message to a
destination IP address. When a router receives the probe message, it
reacts to the message and changes its attributes. The router also
forwards the probe message to the destination. The probe messages
are finally received at the destination host, and the host obtains
the network information the probe message passed to it.
The section after this describes the requirements for an explicit
router feedback system on the Internet. Of course, Increased network
information could improve transport. However, the cost of surveying
network paths is larger. The explicit router feedback mechanism
should be carefully designed so that it can improve transport and the
reduce the cost of the system.
2.1 Gradual deployment possibility
An explicit router feedback system requires support from both the end
host and routers. It is difficult to replace all Internet hosts and
routers in the short term. The explicit router feedback system
should be designed to work well, even if the system has been
partially deployed. If a probe message is sent on a hop-by-hop basis
as an RSVP RESV message, the message cannot pass through legacy
clouds. Since the probe message should be directly forwarded like a
conventional IP packet on a legacy cloud, the destination address of
the probe message is the same as the data stream's.[RFC2205]
2.2 In-band or out-of-band
If the probe message can be conveyed with a data packet, the system
approach is in-band path surveying. If the prove message cannot be
encoded into data streams, the system is out-of-band. Explicit
congestion notification (ECN) is an in-band approach.[RFC3168] One-
pass with announcement (OPWA) with RSVP is an out-of-band
Kobayashi Expires February 2006 [Page 3]
Internet Draft SIRENS framework and protocol August 24, 2005
approach.[RFC2205] In the out-of band approach, two streams, i.e.,
the data stream and probe message stream, should be maintained. From
the point of view from firewall management, the out-of-band approach
makes a firewall policy more complicated compared with the in-band.
The greatest cost in the in-band approach is the additional packet
size due to the probe message field added onto the IP packet. If the
additional packet size overhead for the probe field is acceptable,
the in-band approach is better.
2.3 Maintenance flow state
An explicit network information feedback system should work not only
in an edge network but also the Internet backbone. There are a lot
of number streams across the backbone. If the system architecture
requires that routers maintain the per flow state, the number of
states on the router increases to the same order as streams. This
large number of states places bounds on system scalability.
Therefore, a router model in the system must be maintenance-free in
terms of per-flow state.
2.4 Resource allocation
In some similar efforts, temporary bandwidth allocation that does not
disrupt cross traffic is believed necessary to maximize end-to-end
throughput. [XCP, TCP-QS] This kind of resource allocation may be a
target for malicious attacks to exhaust resources. Therefore,
careful evaluation should be done to introduce accumulative resource
allocation, even if each allocation expires after a short time.
2.5 End-host decides what information to request and/or when
Although a bottleneck bandwidth has important information on
efficient communication in best-effort networks, the network
conditions cannot be specified only with a bandwidth parameter. In
the TCP slow-start phase, the queue size in the bottleneck router
interface is more important than the bandwidth. The congestion
window increases stepwise at every RTT, since acknowledge messages
return at the same time. Therefore, a chunk of packets is sent in
bursts. Serious packet losses can occur, when the burst packet chunk
is larger than the buffer. To avoid packet losses, the end host
obtains the size of the output queue in the bottleneck, and reduces
the size of the burst packet chunk so that it is less than the size
of queue. The surveying system should have the capability of
obtaining information on many kinds of network conditions. Also,
different transport protocols, different implementations, and
different states require different information about network
conditions. The surveying system should provide a function where the
end-host can decide when to handle requests itself, since the router
Kobayashi Expires February 2006 [Page 4]
Internet Draft SIRENS framework and protocol August 24, 2005
cannot take the end-host's situation into consideration.
2.6 Sufficient accuracy to minimize overhead
Although more accurate data on network conditions data may improve
transport, larger message data for better accuracy will lead to a
larger overhead. The data format for the surveying system should be
designed to take adequate accuracy and the overhead of the data into
consideration.
2.7 Avoiding malicious users.
If router forwarding decreases because of processing path surveying
system messages, malicious users may try to make denial of service
attacks(DoS).
The path surveying system should be designed that the router
processing cost for the message is light. Even if every packet
contains path surveying messages, the router must be able to handle
each one without reducing performance.
3. SIRENS protocol framework
In the OSI layer model, the SIRENS protocol is in the middle of the
network and transport layers, i.e. the SIRENS protocol data in a
packet is located just after the IP header, and before the transport
header e.g. TCP or UDP. The protocol number in the IP header is a
SIRENS protocol specific one that should be assigned by IANA. The
SIRENS protocol data has a protocol number field for the upper
transport layer, and the field specifies the protocol number for the
successive packet part.
The SIRENS protocol works together with SIRENS capable hosts and
routers. In typical unicast communication, the SIRENS host sends an
appropriate SIRENS probe request into a packet, e.g. bandwidth limit,
delay in link, and size of router queue. If the SIRENS capable
router found the SIRENS protocol number in the IP header, it must
refer to SIRENS data, and pass it to the SIRENS process block. After
the router processes SIRENS data, it forwards the packet to the next
hop as normal IP forwarding. The destination SIRENS host collects
the network condition data conveyed by the SIRENS header, and sends
back the collected information into the SIRENS response field. After
the SIRENS host receives the SIRENS response header, the host obtains
information about the network passed by the packet sent by itself.
The host can optimize its network behavior based on the obtained
information. By continually sending SIRENS probe packets for a short
period, the SIRENS host can keep the network conditions up to date.
Therefore, the SIRENS host can adjust to dynamically changing network
Kobayashi Expires February 2006 [Page 5]
Internet Draft SIRENS framework and protocol August 24, 2005
conditions immediately, i.e., changing communication paths, or
terminating competitive flows.
Two types of probe modes, watermark and profile modes, are specified
in the SIRENS protocol. The watermark mode is used to obtain an
upper or a lower limit for network resource information on the data
path. This mode can provide the same function on other explicit
network condition feedback frameworks while manipulating a special
header, e.g. XCP and TCP quick starts. The profile mode enables the
end host to illustrate the communication path conditions with per-hop
granularity.
+-------+ | +-------+
| |----------- V ----------| |
|SIRENS | \---------------------------/ |SIRENS |
|Host A | --------------------------- |Host B |
| |-----------/ ^ \----------| |
+-------+ | +-------+
(a) Water Mark mode: to determine bottleneck anywhere along the path.
|
V
+-------+ +------+ +------+ +------+ +-------+
| |-------| |------| | | |------| |
|SIRENS | |SIRENS| |SIRENS|______|SIRENS| |SIRENS |
|Host A | |Router| |Router|------|Router| |Host B |
| |-------| |------| | | |------| |
+-------+ +------+ +------+ +------+ +-------+
(b) Profile mode: to illustrate the path in per-hop granularity.
Bottleneck is output interface of the second hop router.
Fig. 1 SIRENS watermark and profile mode.
3.1 Watermark mode
The watermark mode can survey the entire end-to-end network path with
only one SIRENS request packet. This mode is typically used for
discovering bottleneck bandwidth or minimum MTU in network paths,and
can find both. The sender specifies the expected communication
parameter value for the SIRENS prove header. When the router
receives this, the router decides whether it can provide the service
quality specified by the parameter. If router cannot, it rewrites
the parameter field with the value it can. Otherwise, the router
does not touch the parameter field. After the packet is passed among
SIREN capable routers, the destination host knows the upper or
minimum service-quality capability for the communication path. The
Kobayashi Expires February 2006 [Page 6]
Internet Draft SIRENS framework and protocol August 24, 2005
watermark mode is based on the same idea as other explicit router
response mechanisms such as XCP and TCP quick start. Also, temporary
resource blocking on a router could be supported, if needed.
3.2 Profile mode
The profile mode is used for surveying the network path with hop-by-
hop granularity. The sender sequentially changes the TTL value in
the SIRENS header. When the router receives the profile mode packet,
it compares the TTL value both in the SIRENS header and the IP
header. If both TTL values are the same, the router rewrites the
parameter value that the router can utilize, and forwards the
rewritten packet. Otherwise, the router does not touch the SIRENS
header. After the destination host has collected all TTL SIRENS
headers, the destination knows what the network path conditions are.
Also, the condition information could be sent back to the sender host
conveyed within a reverse message. In the profile mode, the same
number of router hop packets is required for surveying the end-to-end
path. Therefore, the delay time to send multiple packets in the
profile mode is longer than the delay for a single packet in the
watermark mode. When a host surveys the end-to-end path with the
profile mode at a bandwidth of 100 Mbps, an RTT of 100 ms, and an MTU
of 1500 bytes, more than 800 packets (100 ms x 100 Mbps/(8 x 1500
Bytes)) are sent during each RTT. With the largest number of hops,
i.e., 256, the delay in surveying the path is 1.3 times the RTT. If
the host chooses the watermark mode, the delay is the same as the
RTT. Therefore, the difference between both modes is only 0.3 times
the RTT in terms of delay, and this may be acceptable compared with
information on hop-by-hop details. Also, the sender can survey three
times in each RTT in the above case.
4. SIRENS protocol
The SIRENS header is encapsulated just after the IP header, because
it must be located before other transport layer headers such as TCP
or UDP. The IP protocol number in SIRENS packet is a SIRENS specific
number that should be assigned by IANA. The SIRENS header consists
of three parts, SIRENS control, SIRENS request data, and SIRENS
response data blocks. We can see the packet structure in the SIRENS
protocol in Fig. 2.
+========================================================+
| IP header, Protocol = SIRENS (To be allocated by IANA) |
+========================================================+
^ | SIRENS control block including |
| | Protocol ID for successive payload e.g. TCP/UDP) |
SIRENS +--------------------------------------------------------+
Header | SIRENS request block, |
Kobayashi Expires February 2006 [Page 7]
Internet Draft SIRENS framework and protocol August 24, 2005
| +--------------------------------------------------------+
| | SIRENS response block |
| =........................................................=
V +========================================================+
| Header and Payload for the protocol |
| shown in SIRENS control block |
=........................................................=
=........................................................=
+========================================================+
Fig. 2 SIRENS header in IP packet
4.1 SIRENS header
The SIRENS header format can be seen in Fig. 3.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
|V=1| |req.mod|req. probe |req. TTL |Protocol |
+---------------------------------------------------------------+
|res.len|res.mod|res. probe |res. TTL |reserved |
+===============================================================+
| SIRENS request data |
+===============================================================+
| SIRENS response data [0] |
+---------------------------------------------------------------+
| SIRENS response data [1] |
+---------------------------------------------------------------+
.................................................................
+---------------------------------------------------------------+
| SIRENS response data [n: n<= 15] |
+---------------------------------------------------------------+
Fig. 3 SIRENS header structure
The first eight octets is the SIRENS control block, and the following
four octets is the SIRENS request data block. Every SIRENS packet
must have these two types of blocks, and therefore the minimum block
size for the SIRENS header is twelve octets. The SIRENS response
blocks optionally follow after the SIRENS request data.
Each field specified in the SIRENS header (Fig. 3) means:
version (V): 2 bits
This field represents the version of SIRENS. The version of SIRENS
specified in this document is one (1).
Kobayashi Expires February 2006 [Page 8]
Internet Draft SIRENS framework and protocol August 24, 2005
request mode (req.mode) : 4 bits
This field specifies the SIRENS request mode. The SIRENS router
refers to the request mode field, and determines how this packet is
to be treated. The meanings of the request mode values are as
follows:
req. mode| Name | Router action
---------+--------+--------------------------------------------------------
0,8 | NOP | No action
---------+--------+--------------------------------------------------------
1 | update | This mode is the sub- mode of the profile mode.
| | If the req. TTL value is equal to the IP TTL, the
| | router overwrites the req. data block as the
| | router internal value corresponding to req.
| | probe.
---------+--------+--------------------------------------------------------
2 | min. | This mode is the sub-mode of the watermark mode.
| | If the router internal value corresponding to
| | req. probe is less than the req. data block, the
| | router overwrites the router value.
---------+--------+--------------------------------------------------------
3 | max. | This mode is the sub-mode of the watermark mode.
| | If the router internal value corresponding to
| | req. probe is more than the req. data block,
| | the router overwrites the router value.
---------+--------+--------------------------------------------------------
4..15 |reserved|
---------+--------+--------------------------------------------------------
request probe ID (req. probe): 8 bits
This field specifies the identifier for the request data block
following the SIRENS control block. The meanings of the request
probe field values are explained in the following section.
request TTL (req. TTL): 8 bits
The use of this field relies on the value of the request mode. If
the request mode is the profile mode. i.e., the value is one "(1)
update", the intermediate SIRENS router compares this field with the
TTL value in the IP header. When both values are the same, the
router overwrites the SIRENS request data block using the router
internal data value corresponding to the request probe ID. If the
request mode is one of the watermark modes i.e., two "(2) min." or
three "(3) max.", the router decrements the request TTL value with
one. When the value before the decrement is zero (0), the SIRENS
router must wrap this value, i.e., 255 is the new value. When the
Kobayashi Expires February 2006 [Page 9]
Internet Draft SIRENS framework and protocol August 24, 2005
watermark mode, this field is used to estimate how many SIRENS
available routers are along the path.
Protocol: 8 bits
This field specifies the protocols of successive data in packets.
The meanings in this field are the same as the protocol number of
IP[RFC791].
response mode (req.mode) : 4 bits
This field specifies the mode for the SIRENS response. The meanings
of the request mode values are the same as the request mode values
described above.
response length (res. len.): 4 bits
This field specifies the number of response data blocks successive to
the request data block.
response probe ID (res. probe): 8 bits
This field specifies the identifier for the response data blocks.
The meanings of response probe field values are the same as request
probe values.
response TTL (res. TTL): 8 bits
The use of this field relies on the value of the response mode. If
the response mode is one "(1) update", this field identifies the TTL
of the first response block data. If the response mode is two "(2)
min." or three "(3) max.", the SIRENS sender specifies the difference
between the request TTL value from the TTL value in the IP header
that received the latest packet.
SIRENS request data: 32 bits
This field provides the network-condition information along the whole
path or at a specific hop, e.g. the limit in bandwidth, the packet
loss rate, and the queue length in the output interface. This field
is filled in by the SIRENS request sender, and could also be
overwritten by any router along the communication path. The meaning
of the SIRENS request data block depends on the SIRENS request probe
value. The meanings of SIRENS request data blocks are explained in
the following section.
SIRENS response data[n]: 32 bits, 0 < n <= 15
Kobayashi Expires February 2006 [Page 10]
Internet Draft SIRENS framework and protocol August 24, 2005
This field provides information feedback from the other end. Only
the SIRENS response sender can write this field with the collected
values or the preferred values. The router should not overwrite this
field. The meaning of the SIRENS response data block depends on the
SIRENS response probe value.
4.2 SIRENS probe field and data block.
The formats and meanings of probe and data fields are the same in
both SIRENS request and response blocks. The basic format for SIRENS
data fields consists of two 16-bit sub-fields. When the request is
in the max. or min. mode, the router must compare each sub-field
value with the router internal data. If only one sub-field should be
updated in the results for of comparison, the router updates
corresponding sub-fields, and keeps another one.
The format for the probe field is as follows:
0 1 2 3 4 5 6 7
+---------------+
| |d|
| probe ID |i|
| |r|
+---------------+
Dir. (direction): 1 bit
This bit specifies the parameters for the direction the router should
refer to. If the direction bit is zero (0), the router refers to the
interface parameters for packet outgoing. In case of multicast
packets and more than one outgoing interface, the router must refer
to outgoing interfaces for each multicast packet one by one. If the
direction bit is one (1), the router refers to the interface
parameters in the incoming packet.
Probe ID: 7 bits
This field specifies what kind of network information is expected by
the sender, or is encoded into the data blocks.
The meanings of probe ID fields and the formats of corresponding data
blocks currently defined are described in the following.
4.2.1 Null: Probe ID = 0
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
Kobayashi Expires February 2006 [Page 11]
Internet Draft SIRENS framework and protocol August 24, 2005
| all 0 |
+---------------------------------------------------------------+
This is null data, and no action is to be expected of the SIRENS
router.
4.2.2 Link capacity: Probe ID = 1
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| Link capacity (Bytes/sec.) |Available capacity (Bytes/sec.)|
+---------------------------------------------------------------+
This is used for link bandwidth information, and is used in both
watermark and profile modes. The link bandwidth information is the
physical bandwidth limit on the router. The available bandwidth
information is the gap in the physical bandwidth limit and the
current utilization. Both fields are in 16-bit float format, details
of which are given in Appendix A.
4.2.3 Queue in packet count: Probe ID = 2
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| Queue length (packets) |Available queue length(packets)|
+---------------------------------------------------------------+
This is used for the queue length for the interface in packet count,
and is used in both watermark and profile modes. The queue length
(packets) information is the maximum queue size until the router
discards a packet. The available queue length (packets) information
is that in which the router can accept newer traffic. The gap in the
queue length (packets) and the current queue utilization could
typically be used. Both fields are in 16-bit float format. When the
router adopts adaptive queue management instead of tail drop, the
value of available queue length (packets) might be negative.
4.2.3 Queue in Kbytes: Probe ID = 3
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| Queue length (Kbyte) | Available Queue length (Kbyte)|
+---------------------------------------------------------------+
This is used for the queue length for the interface as a bytes count,
Kobayashi Expires February 2006 [Page 12]
Internet Draft SIRENS framework and protocol August 24, 2005
and is used in both watermark and profile modes. The queue length
(byte) information is the maximum queue size until the router
discards a packet. The available queue length (byte) information is
that in which the router can accept newer traffic. The gap in the
queue length (packets) and the current queue utilization could
typically be used. Both fields are in 16-bit float format. When the
router adopts adaptive queue management instead of tail drop, the
value of available queue length (packets) might be negative.
4.2.4 Loss: Probe ID = 4
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| Loss on link | Loss on queue |
+---------------------------------------------------------------+
This is used for the packet loss probability on the link and in the
router queue, and is used in both watermark and profile modes. The
loss on link information is the packet loss probability mainly caused
by link error. The loss on queue information is the packet loss
probability caused by overflow in the router queue. Both fields are
in 16-bit float format.
4.2.5 MTU : Probe ID = 5
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| MTU | NULL |
+---------------------------------------------------------------+
This is used for MTU size in octets for the link, and is used in both
watermark and profile modes. The MTU information is in unsigned
16-bit integers. The zero value for MTU represents 65536 or more.
4.2.6 Delay: Probe ID = 6
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| Delay on link | Delay in maximum |
+---------------------------------------------------------------+
This is used for delay in the link, and is used in both watermark and
profile modes. The delay in link information is the delay in micro
seconds (1/1,000,000 second) under the best conditions, e.g. when
there are no collisions on the Ethernet. The delay in maximum
information is the delay in milliseconds under the worst conditions,
Kobayashi Expires February 2006 [Page 13]
Internet Draft SIRENS framework and protocol August 24, 2005
including not only the delay related to link conditions but also that
in the internal buffer or queue on the router. Both fields are in
16-bit float format.
4.2.7 Router ID: Probe ID = 7
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------------------------------------------------------+
| Router ID |
+---------------------------------------------------------------+
This is used to identify the router on the path, and is used in the
profile mode. The router ID information is the 32-bit identifier for
the router. This ID should not be changed for longer than a single
transport session. The router IDs for routing protocols could use
this ID. The end host can detect path changes with this information,
even if the hop for the path is the same.
5. Use scenario with SIRENS protocol
The goal of the SIRENS protocol is to improve the performance of end-
to-end communications. The previous sections described the SIRENS
protocol and frame work. However, the SIRENS protocol only provides
a mechanism where an end system can obtain network information as
explicit data, and it does not provide a way of improving
communications performance itself. To improve this, the transport
and application in the end system should take the network information
data obtained from the SIRENS protocol into account.
The following sections present examples of how end systems take this
information into account.
5.1 TCP performance on long fast pipe network.
It is a difficult for a transport system to obtain maximum data
transfer throughput in a long fast network. If bottleneck bandwidth
on the path is detected, the TCP(-NewReno) stack can determine an
optimal maximum congestion window with RTT after bandwidth delay
product calculation. If available headroom bandwidth is detected,
the TCP stack can change the window size incrementally by taking the
headroom into consideration. The SIRENS protocol can optimize TCP
behavior. When using the SIRENS protocol with TCP, the TCP client
sends a TCP SYN packet encapsulating the SIRENS header with a link
capacity request in the watermark mode. The SIRENS routers should
check and rewrite appropriate fields at every node along the path.
The TCP server receives the SYN packet with the minimum bandwidth
information rewritten by the routers. The TCP server replies with
Kobayashi Expires February 2006 [Page 14]
Internet Draft SIRENS framework and protocol August 24, 2005
minimum bandwidth information in the SIREN response block
encapsulating a TCP SYN ACK packet. The server also sends a link
capacity request to establish the backward path. After the TCP
client receives the SYN ACK packet, the TCP client chooses an optimal
parameter set as a slow start threshold, and congestion window
increment parameter in the congestion avoidance phase.
Even if the end host chooses an optimal slow start threshold value
using the bottleneck bandwidth on the path, the slow start may not
reach the slow start threshold limit without packet loss. This is
because a rapidly increasing congestion window in slow start causes
bursty packet traffic. This burstiness causes unexpected packet
losses in the bottleneck resulting in the queue being filled, even if
the link bandwidth is not filled up. The profile mode SIRENS
protocol can draw the network on a hop-by-hop basis. After obtaining
the queue and link capacity profile along the path, the TCP sender
can select the slow start threshold so as not to fill the queue.
Although this example is for TCP, the same kind of collaboration
could be done by other transport protocols such as DCCP, TFRC, and
SCTP.
5.2 TCP throughput with wireless network path.
When using wireless links such as 802.11, the network conditions are
usually changing. For example, the throughput of a base station
could change, when a wireless node switches base stations, i.e., in
hand-over. Even when no hand over occurs, bandwidth throughput could
change when the wireless node moves location. In cases of node
mobility, i.e., the end host has a wireless interface and chooses
base stations itself, the node can be aware of changing conditions.
The node could optimize its network behavior by updating. However,
with network mobility, there is generally no way of detecting
changing conditions along the communication path. If the network
conditions worsen, the host will soon be aware of this. This is
because some packet losses and increasing delays will occur.
However, there is no way a host can immediately detect improving
conditions e.g., better base station links or shortened distances
between the wireless path.
Also, the packet losses in data links in a wireless network are more
frequent than in wired links due to noise or path conditions. In the
current congestion control specifications, transport must have a
congestion avoidance mechanism [RFC2914]. Most transport regards
packet loss as congestion on the path and decreases the sending rate.
If transport could distinguish losses caused by congestion for other
reasons, the behavior in response to packet losses could be changed.
Kobayashi Expires February 2006 [Page 15]
Internet Draft SIRENS framework and protocol August 24, 2005
5.3 SIRENS with Multicast
IP multicast has long been expected as an infrastructure technology
to enable scalable data distribution without concentrating the
connections onto the data server. Receiver-driven Layered Multicast
(RLM) provides a scalable data distribution framework using multi-
rate distribution groups without feedback messages from the receiver
to the source. To find whether there is an upper rate group, the RLM
receiver tries to join a group with more bandwidth, the same as the
window size increment with TCP. However, when it is unable to
gradually switch to a higher bandwidth group since these are limited,
it may attempt a trial join, which will cause serious congestion not
only in the trial join receiver but also in receivers sharing the
distribution tree. SIRENS enables a host to estimate the available
headroom bandwidth in per hop granularity. The RLM receiver can
choose the optimal rate group using the network path information
without creating unnecessary congestion.
6. SIRENS Protocol Deployment
6.1 SIRENS deployment with legacy infrastructure.
Even if some routers are not SIRENS capable, a SIRENS packet is
forwarded to the destination. The SIRENS prove field has a direction
option for obtaining information for both input and output side
interfaces. When either side of a legacy router (L) is a SIRENS
router (A, B), and a packet is forwarded with A, L, and B,
information about L is missing. If SIRENS probe packets are sent to
designate the output interface of A, and the input of B, the least
information related to the link between A and L, B, and L can be
obtained. Even though this can only be used in limited situations,
it is helpful in deploying SIRENS.
6.2 SIRENS with layer two switch network
SIRENS assumes all intermediate devices on the communication path are
only IP routers. Numerous layer two switches, i.e. Ethernet
switches, have already been deployed. SIRENS should work on a layer
two cloud to maximize its benefits. This section describes how layer
two devices could support SIRENS.
One possible way is for layer two devices to snoop into the SIRENS
header and process this like IGMP snooping does.[RFC3448] A second
way would be for the SIRENS router to listen to the layer two routing
protocol on the attached cloud, and deduce network information. For
example, the spanning tree protocol (STP) may be working on the
Ethernet cloud. STP works with exchanging the bridge protocol data
unit (BPDU), and computes the root path costs from its own device to
Kobayashi Expires February 2006 [Page 16]
Internet Draft SIRENS framework and protocol August 24, 2005
the root bridge. Since the cost value of each hop is defined by the
bandwidth, and the root path cost is the multiplex of each hop, a
device is able to suggests the bottleneck bandwidth from itself to
the root bridge. The bottleneck bandwidth could be determined by
combining the bandwidth information to the root bridges from both
SIRENS routers on the layer two edges. Although the second way can
only support a limited portion of SIRENS, it could use a legacy layer
two infrastructures without any modifications.[802.1D]
+-------+ +--------+ ?????????? +--------+
|SIRENS | |Ethernet| ? ? | |
| Router+============+ Switch +===...===+ +===...===+ +
| A |<-- BPDU -->| 1 |<-BPDU ->? ?<-BPDU ->| |
+-------+SW 1 to Root+--------+ to Root? ? to Root| |
?Ethernet? |Ethernet|
? Switch ? | Switch |
? 3(?) ? |Root |
+-------+ +--------+ ? ? | Bridge)|
|SIRENS | |Ethernet| ? ? | |
| Router+============+ Switch +===...===+ +===...===+ |
| B |<-- BPDU -->| 2 |<-BPDU ->? ?<-BPDU ->| |
+-------+SW 2 to Root+--------+ to Root?????????? to Root+--------+
Fig. 4. SIRENS routers are connected with a ethernet switch
network.
The cost between router A and B is lower-than equal to the combined
cost values, SW 1 to Root, and SW 2 to root, even if SW 3 provides a
direct connectivity between SW 1 and 2.
7. Security considerations
As discussed in the requirement section, a SIRENS router must have
sufficient performance to process the SIRENS header. Although SIRENS
does not disallow the resource allocation function, the SIRENS
specifications in this document do not define it. Resource
allocation functions will also be victims of attacks involving over-
consumed resources, and most user requests will be blocked.
Therefore, the resource allocation function should be carefully
designed to be robust against attempted attacks. SIRENS provides a
function to survey network path information from every SIRENS capable
node. Using the information surveyed by SIRENS, smarter attacks will
be possible such as bandwidth consuming attacks just the same as with
link capacity. There are always more or less of these kinds of
threats in best-effort packet networks. This is because attacks on
over-consumed bandwidths are always possible with brute-force on the
Internet. The threat with SIRENS is not higher than with other
system protocols.
Kobayashi Expires February 2006 [Page 17]
Internet Draft SIRENS framework and protocol August 24, 2005
8. IANA considerations
The SIRENS protocol requires its own protocol numbers, which should
be assigned by IANA. The protocol includes a four-bit request and
response mode field, and a seven-bit probe ID field. Since these
values should be managed as globally unique, additional values should
be registered through IANA.
Appendix A. Format for 16-bit float used in these specifications
The format to represent network parameters in this standard should
support a wide range of values, e.g., network bandwidths from 9.6
Kbps to 40 Gbps or more, and loss probability from 10e-6 in bit error
rate in SONET to 100%. Although a 32-bit integer or 32-bit float
format is common, and is able to support the range of requirements,
it is too accurate for SIRENS to collect the network path
information. From the viewpoint of bandwidth utilization, a smaller
data overhead is better with appropriate accuracy.
The specifications define a 16-bit version floating format as the
following. The 16-bit floating format data could be derived with
simply cutting off the lower 16 bits of the corresponding value in
the IEEE754 single precision, 32-bit, floating format.
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-------------------------------+
|S| E | M |
+-------------------------------+
where S (1 bit), E (8 bits), and M (7 bits) represent sign, exponent,
and mantissa. The E value is biased with 127 plus the true exponent.
If all bits in E are one, the data represents an infinity value.
If E = 0 and M = 0: Val = (-1)^S x 0
If E = 0 and M != 0: Val = (-1)^S x M/2^6 x 2^(-127)
If 0 < E and E < 255: Val = (-1)^S x (1 + M/2^7 ) x 2^(E - 127)
References
[HSTCP] S. Floyd, "HighSpeed TCP for Large Congestion Windows", RFC
3649, December 2003
[SCTCP] T. Kelly, "Scalable TCP: Improving Performance in Highspeed
Wide Area Networks", ACM SIGCOMM Computer Communication Review, 33
(2) 83-91, April 2003
Kobayashi Expires February 2006 [Page 18]
Internet Draft SIRENS framework and protocol August 24, 2005
[FAST] C. Jin, et al. "FAST TCP: Motivation, architecture,
algolithms, performance", IEEE INFOCOMM 2004
[RFC2205] R. Braden, et al., "Resource ReSerVation Protocol(RSVP) --
Version 1 Functional Specification", RFC2205, September 1997
[RFC3168] K. Ramakrishnan, et al., "The Addition of Explicit
Congestion Notification (ECN) to IP", RFC3168 September 2001
[XCP] A. Falk and D. Katabi, "XCP Specification", draft-falk-xcp-
spec-00.txt (work in progress), October 2004
[TCP-QS] A. Jain, et al., "Quick-Start for TCP and IP", draft-ietf-
tsvwg-quickstart-00.txt (work in progress), May 2005
[RFC791] J. Postel, "INTERNET PROTOCOL", RFC791(STD5), September 1981
[RFC2914] S. Floyd, "Congestion Control Principles", RFC2914,
September 2000
[RFC3448] M. Handley, et al., "TCP Friendly Rate Control (TFRC):
Protocol Specification", RFC3448, January 2003
[802.1D] IEEE, IEEE Std 802.1D, 2004 Edition: "Media Access Control
Bridges", June 2004.
Author(s)' Address
Katsushi Kobayashi National Institute of Communications Technology
4-2-1 Nukii-kitamachi, Koganei Tokyo 184-8795 JAPAN
Email: ikob@koganei.wide.ad.jp
Full Copyright Statement
Copyright (C) The Internet Society (2005).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Kobayashi Expires February 2006 [Page 19]
Internet Draft SIRENS framework and protocol August 24, 2005
Kobayashi Expires February 2006 [Page 20]