rfc3219.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,493 行 · 第 1/5 页
TXT
1,493 行
If a particular ITAD has multiple LSs and is providing transit
service for other ITADs, then care must be taken to ensure a
consistent view of routing within the ITAD. When synchronized the
TRIP routing tables, i.e., the Loc-TRIBs, of all internal peers are
identical.
3.3. Internal Versus External Synchronization
As with BGP, TRIP distinguishes between internal and external peers.
Within an ITAD, internal TRIP uses link-state mechanisms to flood
database updates over an arbitrary topology. Externally, TRIP uses
point-to-point peering relationships to exchange database
information.
To achieve internal synchronization, internal peer connections are
configured between LSs of the same ITAD such that the resulting
intra-domain LS topology is connected and sufficiently redundant.
This is different from BGP's approach that requires all internal
peers to be connected in a full mesh topology, which may result in
scaling problems. When an update is received from an internal peer,
the routes in the update are checked to determine if they are newer
than the version already in the database. Newer routes are then
flooded to all other peers in the same domain.
3.4. Advertising TRIP Routes
In TRIP, a route is defined as the combination of (a) a set of
destination addresses (given by an address family indicator and an
address prefix), and (b) an application protocol (e.g. SIP, H323,
etc.). Generally, there are additional attributes associated with
each route (for example, the next-hop server).
Rosenberg, et. al. Standards Track [Page 6]
RFC 3219 Telephony Routing over IP (TRIP) January 2002
TRIP routes are advertised between a pair of LSs in UPDATE messages.
The destination addresses are included in the ReachableRoutes
attribute of the UPDATE, while other attributes describe things like
the path or egress gateway.
If an LS chooses to advertise a TRIP route, it may add to or modify
the attributes of the route before advertising it to a peer. TRIP
provides mechanisms by which an LS can inform its peer that a
previously advertised route is no longer available for use. There
are three methods by which a given LS can indicate that a route has
been withdrawn from service:
- Include the route in the WithdrawnRoutes Attribute in an UPDATE
message, thus marking the associated destinations as being no
longer available for use.
- Advertise a replacement route with the same set of destinations
in the ReachableRoutes Attribute.
- For external peers where flooding is not in use, the LS-to-LS
peer connection can be closed, which implicitly removes from
service all routes which the pair of LSs had advertised to each
other over that peer session. Note that terminating an
internal peering session does not necessarily remove the routes
advertised by the peer LS as the same routes may have been
received from multiple internal peers because of flooding. If
an LS determines that another internal LS is no longer active
(from the ITAD Topology attributes of the UPDATE messages from
other internal peers), then it MUST remove all routes
originated into the LS by that LS and rerun its decision
process.
3.5. Telephony Routing Information Bases
A TRIP LS processes three types of routes:
- External routes: An external route is a route received from an
external peer LS
- Internal routes: An internal route is a route received from an
internal LS in the same ITAD.
- Local routes: A local route is a route locally injected into
TRIP, e.g. by configuration or by route redistribution from
another routing protocol.
The Telephony Routing Information Base (TRIB) within an LS consists
of four distinct parts:
Rosenberg, et. al. Standards Track [Page 7]
RFC 3219 Telephony Routing over IP (TRIP) January 2002
- Adj-TRIBs-In: The Adj-TRIBs-In store routing information that
has been learned from inbound UPDATE messages. Their contents
represent TRIP routes that are available as an input to the
Decision Process. These are the "unprocessed" routes received.
The routes from each external peer LS and each internal LS are
maintained in this database independently, so that updates from
one peer do not affect the routes received from another LS.
Note that there is an Adj-TRIB-In for every LS within the
domain, even those with which the LS is not directly peered.
- Ext-TRIB: There is only one Ext-TRIB database per LS. The LS
runs the route selection algorithm on all external routes
(stored in the Adj-TRIBs-In of the external peers) and local
routes (may be stored in an Adj-TRIB-In representing the local
LS) and selects the best route for a given destination and
stores it in the Ext-TRIB. The use of Ext-TRIB will be
explained further in Section 10.3.1
- Loc-TRIB: The Loc-TRIB contains the local TRIP routing
information that the LS has selected by applying its local
policies to the routing information contained in its Adj-
TRIBs-In of internal LSs and the Ext-TRIB.
- Adj-TRIBs-Out: The Adj-TRIBs-Out store the information that
the local LS has selected for advertisement to its external
peers. The routing information stored in the Adj-TRIBs-Out
will be carried in the local LS's UPDATE messages and
advertised to its peers.
Figure 1 illustrates the relationship between the four parts of the
routing information base.
Loc-TRIB
^
|
Decision Process
^ ^ |
| | |
Adj-TRIBs-In | V
(Internal LSs) | Adj-TRIBs-Out
|
|
|
Ext-TRIB
^ ^
| |
Adj-TRIB-In Local Routes
(External Peers)
Figure 1: TRIB Relationships
Rosenberg, et. al. Standards Track [Page 8]
RFC 3219 Telephony Routing over IP (TRIP) January 2002
Although the conceptual model distinguishes between Adj-TRIBs-In,
Ext-TRIB, Loc-TRIB, and Adj-TRIBs-Out, this neither implies nor
requires that an implementation must maintain four separate copies of
the routing information. The choice of implementation (for example,
4 copies of the information vs. 1 copy with pointers) is not
constrained by the protocol.
3.6. Routes in TRIP
A route in TRIP specifies a range of numbers by being a prefix of
those numbers (the exact definition & syntax of route are in 5.1.1).
Arbitrary ranges of numbers are not atomically representable by a
route in TRIP. A prefix range is the only type of range supported
atomically. An arbitrary range can be accomplished by using multiple
prefixes in a ReachableRoutes attribute (see Section 5.1 & 5.2). For
example, 222-xxxx thru 999-xxxx could be represented by including the
prefixes 222, 223, 224,...,23,24,...,3,4,...,9 in a ReachableRoutes
attribute.
3.7. Aggregation
Aggregation is a scaling enhancement used by an LS to reduce the
number of routing entries that it has to synchronize with its peers.
Aggregation may be performed by an LS when there is a set of routes
{R1, R2, ...} in its TRIB such that there exists a less specific
route R where every valid destination in R is also a valid
destination in {R1, R2, ...} and vice-versa. Section 5 includes a
description of how to combine each attribute (by type) on the {R1,
R2, ...} routes into an attribute for R.
Note that there is no mechanism within TRIP to communicate that a
particular address prefix is not used or valid within a particular
address family, and thus that these addresses could be skipped during
aggregation. LSs may use methods outside of TRIP to learn of invalid
prefixes that may be ignored during aggregation.
An LS is not required to perform aggregation, however it is
recommended whenever maintaining a smaller TRIB is important. An LS
decides based on its local policy whether or not to aggregate a set
of routes into a single aggregate route.
Whenever an LS aggregates multiple routes where the NextHopServer is
not identical in all aggregated routes, the NextHopServer attribute
of the aggregate route must be set to a signalling server in the
aggregating LS's domain.
Rosenberg, et. al. Standards Track [Page 9]
RFC 3219 Telephony Routing over IP (TRIP) January 2002
When an LS resets the NextHopServer of any route, and this may be
performed because of aggregation or other reasons, it has the effect
of adding another signalling server along the signalling path to
these destinations. The end result is that the signalling path
between two destinations may consist of multiple signalling servers
across multiple domains.
4. Message Formats
This section describes message formats used by TRIP. Messages are
sent over a reliable transport protocol connection. A message MUST
be processed only after it is entirely received. The maximum message
size is 4096 octets. All implementations MUST support this maximum
message size. The smallest message that MAY be sent consists of a
TRIP header without a data portion, or 3 octets.
4.1. Message Header Format
Each message has a fixed-size header. There may or may not be a data
portion following the header, depending on the message type. The
layout of the header fields is shown in Figure 2.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+--------------+----------------+---------------+
| Length | Type |
+--------------+----------------+---------------+
Figure 2: TRIP Header
Length: This 2-octet unsigned integer indicates the total length of
the message, including the header, in octets. Thus, it allows one to
locate, in the transport-level stream, the beginning of the next
message. The value of the Length field must always be at least 3 and
no greater than 4096, and may be further constrained depending on the
message type. No padding of extra data after the message is allowed,
so the Length field must have the smallest value possible given the
rest of the message.
Type: This 1-octet unsigned integer indicates the type code of the
message. The following type codes are defined:
1 - OPEN
2 - UPDATE
3 - NOTIFICATION
4 - KEEPALIVE
Rosenberg, et. al. Standards Track [Page 10]
RFC 3219 Telephony Routing over IP (TRIP) January 2002
4.2. OPEN Message Format
After a transport protocol connection is established, the first
message sent by each side is an OPEN message. If the OPEN message is
acceptable, a KEEPALIVE message confirming the OPEN is sent back.
Once the OPEN is confirmed, UPDATE, KEEPALIVE, and NOTIFICATION
messages may be exchanged.
The minimum length of the OPEN message is 17 octets (including
message header). OPEN messages not meeting this minimum requirement
are handled as defined in Section 6.2.
In addition to the fixed-size TRIP header, the OPEN message contains
the following fields:
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
+---------------+---------------+--------------+----------------+
| Version | Reserved | Hold Time |
+---------------+---------------+--------------+----------------+
| My ITAD |
+---------------+---------------+--------------+----------------+
| TRIP Identifier |
+---------------+---------------+--------------+----------------+
| Optional Parameters Len |Optional Parameters (variable)...
+---------------+---------------+--------------+----------------+
Figure 3: TRIP OPEN Header
Version:
This 1-octet unsigned integer indicates the protocol version of the
message. The current TRIP version number is 1.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?