Re: [OSPF] Database Exchange Summary List Optimization

Richard Ogier <ogier@earthlink.net> Fri, 08 September 2006 14:53 UTC

Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1GLhjH-00056Y-CB; Fri, 08 Sep 2006 10:53:15 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1GLhjG-00056N-59 for ospf@ietf.org; Fri, 08 Sep 2006 10:53:14 -0400
Received: from pop-knobcone.atl.sa.earthlink.net ([207.69.195.64]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1GLhjE-0001gx-Pk for ospf@ietf.org; Fri, 08 Sep 2006 10:53:14 -0400
Received: from dialup-4.243.134.207.dial1.sanfrancisco1.level3.net ([4.243.134.207] helo=earthlink.net) by pop-knobcone.atl.sa.earthlink.net with esmtp (Exim 3.36 #1) id 1GLhj7-0004dE-00; Fri, 08 Sep 2006 10:53:05 -0400
Message-ID: <450183CE.4010805@earthlink.net>
Date: Fri, 08 Sep 2006 07:53:02 -0700
From: Richard Ogier <ogier@earthlink.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1 (emach0202)
X-Accept-Language: en-us
MIME-Version: 1.0
To: Erblichs <erblichs@earthlink.net>
Subject: Re: [OSPF] Database Exchange Summary List Optimization
References: <44B7E563.3000706@cisco.com> <44B7E6D0.6030304@cisco.com> <44BD1FE6.2030202@earthlink.net> <44CAAB32.4B2A546D@earthlink.net> <44DB9074.8000700@earthlink.net> <44EE1D00.50502@cisco.com> <44F724CB.50100@earthlink.net> <Pine.LNX.4.64.0609041353380.1936@sheen.jakma.org> <44FDE7DD.6E016C98@earthlink.net> <44FDF3E9.50003@cisco.com> <44FE4E2F.BEAE45EA@earthlink.net> <44FF3450.2010708@cisco.com> <44FF5762.1A02E52@earthlink.net>
Content-Type: text/plain; charset="ISO-8859-2"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.1 (/)
X-Scan-Signature: 3d7f2f6612d734db849efa86ea692407
Cc: OSPF List <ospf@ietf.org>
X-BeenThere: ospf@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: The Official IETF OSPG WG Mailing List <ospf.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/ospf>
List-Post: <mailto:ospf@ietf.org>
List-Help: <mailto:ospf-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/ospf>, <mailto:ospf-request@ietf.org?subject=subscribe>
Errors-To: ospf-bounces@ietf.org

Erblichs wrote:

>
>	Here is a simple example:
>	Master Router sends a LSA hdr with a value of 22 at the
>	end of the DD pkt. Its next value on its next DD pkt
>	will be 55.
>
>	Slave sends the headers between 22 and 55 in its DD pkt
>	because it is also moving forwards.
>
>	The Master says I don't have those LSA hdrs from the slave
>	thus, I need to request them. The slave then processes
>	the req and sends the update. 
>
>	On the other hand if option 3, C was used.
>
>	The next set of LSA hdrs from the Master would starts its
>	next LSAs hdrs for the DD pkt with 55. The slave is listing
>	the LSAs from the reverse direction. Since the slave
>	was looking for holes, it says I have LSAs that fit between
>	22 and 55, and sends them as LSAs within Updates.
>	-- Thus the listing of the LSAs that fit into any hole
>	is never listed as a DD hdr. It is never requested, and
>	that non-request is never processed. Thus, you eliminate
>	alot of overhead. 
>
>	This also works between suceessive LSA hdrs within each DD
>	pkt. Because of the greater time overhead in doing this additional
>	lookup, a prototype implementation does in between the
>	DD pkt.
>
>	Bottom line, if the combined LSDB is equally split, maybe
>	75% of all LSAs could be removed from the DD pkts. This
>	is MAJOR. A major performance improvement.
>
>	How else do I explain this???? And it only works FULLY
>	when the two routers are approaching the LSDB space in 
>	different directions.
>
>	Mitchell Erblich
>	-----------------
>

Mitchell,

The particular example you gave is biased in that it gives an
advantage to using reverse lex order.
In the first part of your example (using the forward direction),
the slave happened to send several LSA headers that the master
did not have.  The example could easily be changed so that
the slave would send a DD packet that either indicated
several missing LSAs (holes) or LSAs that are older than
what the master has (in both cases the master would send
these LSAs to the slave).

I studied this and have come to the conclusion that
your scheme works just as well if both master and slave
list LSAs in the same forward order.
By your scheme, I mean the idea of detecting holes and
sending the LSA instead of the LSA header when the router
has a newer instance than the neighbor (or the neighbor
has no instance).
(Note, however, that I am not saying I like the scheme,
only that using reverse lex order does not help.)

Let's consider a more symmetric, unbiased example.
Assume that for a given LSA:
The master has a newer instance than the slave
(or the slave has no instance) with probability 1/3,
the master has the same instance as the slave with probability 1/3,
and the slave has a newer instance than the master
(or the master has no instance) with probability 1/3.

Now suppose the master starts by listing LSAs 1 to 30
in a DD packet.  Both routers list LSAs in forward order.
The slave then lists LSAs 31 to 60 in its next DD packet.
The slave processes the received LSA headers 1 to 30
as follows, either before or after sending its next DD packet.
(In either case, it will not include any of these LSA
headers in the DD packet with the scheme we are considering.)
If the neighbor's LSA is older than the database copy,
or the neighbor's LSA does not exist (a hole is detected),
the slave sends the LSA to the neighbor.
If the neighbor LSA is the same as the database copy,
the slave does nothing (e.g., does not list the LSA).
If the neighbor LSA is newer than the database copy,
or the database copy does not exist,
the slave requests the LSA.

When the master receives the DD packet that lists
LSAs 31 to 60, it replies by sending a DD packet
starting with LSA header 61, and processes the received
DD packet as described above for the slave.

The main thing to notice is that the master and slave
send disjoint lists of LSA headers, even if they
both list LSAs in forward order, so it makes no difference
whether the master and slave list LSAs in the same order
or in reverse order.  This is because in the scheme we
are discussing, a router never lists an LSA if the neighbor
already listed it (or should have listed it but didn't have it).

On average, each router will be in charge of listing each
LSA with probability 1/2 (but will leave a "hole" if it
doesn't have the LSA).  Each LSA will be listed (in a DD packet)
by at most one router (master or slave).
So, for a given LSA, let's compute the probability that
a router (master or slave) will list the LSA header,
the probability that it will request the LSA,
and the probability that it will send the LSA itself
(and not the LSA header) without receiving a request.
These probabilities are the *same* whether the two routers
list LSAs in the same direction or in opposite directions.

The probability that a router lists a given LSA header
is 1/2 if the router has the LSA in its database.
(The probability that the router does not have the LSA
is not considered here.)
A router will request an LSA only if the neighbor lists
the LSA header and has a newer instance, which
has probability 1/2 * 1/3 = 1/6.
A router will send the LSA without receiving a request
only if the neighbor lists the LSA header and has an
older instance (or the neighbor should list the LSA but
doesn't have it), which has probability 1/2 * 1/3 = 1/6.

We could compare these probabilities to plain Option A (without
the scheme that sends LSAs without receiving a request).
However, the main point is that these probabilities are
the same whether or not the master and slave list LSAs
in the same direction or in opposite directions.

Sure, using Mitchell's scheme (with either Option A or
Option C) can reduce the number of LSA headers listed
in DD packets and in LS request packets.
But as I mentioned in a previous message, bypassing
the LS request mechanism of OSPF can cause other
problems.  Otherwise, OSPF could have been designed to
avoid requesting an LSA by having the router with the newer
instance send the LSA to the router with the older instance.
If one router does not have any instance of the LSA,
then an ordering is needed to detect holes, and this
is similar to IS-IS, which seems to be a major change
to OSPF.

Richard



>
>	
>
>	
>



_______________________________________________
OSPF mailing list
OSPF@ietf.org
https://www1.ietf.org/mailman/listinfo/ospf