sequence numbers in routing information messages
Martha Steenstrup <msteenst@bbn.com> Tue, 19 May 1992 22:02 UTC
Received: from nri.nri.reston.va.us by ietf.NRI.Reston.VA.US id aa02364;
19 May 92 18:02 EDT
Received: from nri.reston.va.us by NRI.Reston.VA.US id aa08975;
19 May 92 18:08 EDT
Received: from PIZZA.BBN.COM by NRI.Reston.VA.US id aa08971;
19 May 92 18:08 EDT
Received: from pizza by PIZZA.BBN.COM id aa02204; 19 May 92 16:54 EDT
To: woody@sparta.com
cc: idpr-wg@bbn.com
Subject: sequence numbers in routing information messages
Date: Tue, 19 May 92 17:52:55 -0400
From: Martha Steenstrup <msteenst@bbn.com>
Message-ID: <9205191808.aa08971@NRI.Reston.VA.US>
Hi Woody, A bit of history: To be useful, routing information message identifiers must always distinguish new routing information messages from old. If these identifiers can wrap around, then recency is harder to determine. Options for handling identifier wrapping include: - annihilator messages used to wipe out all traces of a particular message in the routing information database in each route server and policy gateway (as in OSPF); - new public/private keys used to sign messages at the node whose identifier has wrapped (as suggested by Radia Perlman in her thesis). For IDPR routing information we decided to use identifiers that we expected would always increase during the life of the protocol. Hence, we decided on 32-bit timestamps (in fact UNIX-like timestamps) with the granularity of seconds as the identifiers for routing information messages. We also added a 16-bit sequence number field to enable a policy gateway to generate more than one routing information message at a given time (for example, to handle a situation in which its clock is frozen during clock resynchronization). All of this was designed before CMTP. While I believe that in practice, the CMTP transaction identifier would adequately serve as the routing information message identifier, I have some reservations about them being non-increasing as follows. If the CMTP transaction identifier were non-volatile, that is, if a policy gateway could remember its current transaction identifier even when the policy gateway was removed from service, then we wouldn't have to worry about non-increasing identifiers. Moreover, I doubt that a CMTP transaction identifier would wrap during the lifetime of IDPR, even at very busy policy gateways. However, I don't think that we can be sure that each policy gateway will be able to remember its current CMTP transaction identifier during a power failure, for example. Hence, I expect a reset to 0 after each failure and hence non-increasing identifiers for routing information messages. Assuming that the transaction identifier is volatile, we would then need a negotiation procedure to execute with neighbor policy gateways for incrementing the policy gateway transaction identifier to the value it had before the failure. Actually, an analogous procedure is already part of the IDPR routing information distribution protocol, not for the transaction identifier, but for updating the routing information database of a policy gateway. This does complicate the notion of the CMTP transaction identifier as a simple counter, as negotiation would happen whenever a policy gateway generated a routing information message after that policy gateway had returned to service following a failure. None of this is to say that we couldn't use the CMTP transaction identifiers as routing information message identifiers. However, I am saying that it does complicate the implementation a little bit. The advantages of using transaction identifiers are: - The removal of the 16-bit sequence number field from the routing information message. This will save link bandwidth and memory space in the routing information database. The amount saved depends on the boundaries to which you pad. - Generation of unique routing information message identifiers during a clock freeze without any special fields. The disadvantages are: - Renegotiation of the transaction identifier following a policy gateway failure. - Tying the identifier to the IDPR control message transport mechanism. If CMTP were to change or be replaced, we would end up having to generate an identifier in the routing information message protocol itself (as we now do currently). At this point, I would be hesitant to change your gated software. As far as changing the protocols themselves, that is a toss up. I am leaning toward leaving the protocol as is, because of my concern about tying the routing information message identifier to a value computed by another protocol. Any comments? m
- sequence numbers in routing information messages Martha Steenstrup