Re: [Idr] why has 4096 bytes limit on BGP messages size?

Erblichs <erblichs@earthlink.net> Thu, 14 June 2007 23:00 UTC

Return-path: <idr-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1HyyIY-0006hJ-L3; Thu, 14 Jun 2007 19:00:14 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1HyyIX-0006h6-ED for idr@ietf.org; Thu, 14 Jun 2007 19:00:13 -0400
Received: from elasmtp-masked.atl.sa.earthlink.net ([209.86.89.68]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1HyyIU-00015N-FV for idr@ietf.org; Thu, 14 Jun 2007 19:00:13 -0400
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=earthlink.net; b=dj4jndvhe2iiBsnFeYqwTPtkGAk/rOet0L2O0fuOxkYtxVTyIXS+FdY6Kgzkmb9E; h=Received:Message-ID:Date:From:X-Sender:X-Mailer:X-Accept-Language:MIME-Version:To:CC:Subject:References:Content-Type:Content-Transfer-Encoding:X-ELNK-Trace:X-Originating-IP;
Received: from [68.164.92.78] (helo=earthlink.net) by elasmtp-masked.atl.sa.earthlink.net with asmtp (Exim 4.34) id 1HyyIT-0008Ep-KT; Thu, 14 Jun 2007 19:00:09 -0400
Message-ID: <4671C82D.2DEE5F08@earthlink.net>
Date: Thu, 14 Jun 2007 15:58:53 -0700
From: Erblichs <erblichs@earthlink.net>
X-Sender: "Erblichs" <erblichs@earthlink.net@smtpauth.earthlink.net> (Unverified)
X-Mailer: Mozilla 4.72 [en]C-gatewaynet (Win98; I)
X-Accept-Language: en
MIME-Version: 1.0
To: Danny McPherson <danny@tcb.net>
Subject: Re: [Idr] why has 4096 bytes limit on BGP messages size?
References: <20070614105451.9C6C11140496@mail.zjgsu.edu.cn> <20070614135339.GA10519@scc.mi.org> <77ead0ec0706141127i61017d2av74151c7dd4004044@mail.gmail.com> <0D5A1AAC-03A5-468B-8D56-9FE5818BF5A0@tcb.net>
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 7bit
X-ELNK-Trace: 074f60c55517ea841aa676d7e74259b7b3291a7d08dfec79575ba6a1e7d36a8b69bf89a22e0b43d6350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 68.164.92.78
X-Spam-Score: 0.1 (/)
X-Scan-Signature: d185fa790257f526fedfd5d01ed9c976
Cc: idr <idr@ietf.org>
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/idr>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
Errors-To: idr-bounces@ietf.org

Danny McPherson, eta al,

	Let me take a stab at this, but do your own investigation..

	IMO, one item is due to the use of TCP by BGP. After one
	RTO timeout, most implimentations use a slow-start after
	idle. To preserve TCP's fast transmit and power of two
	mem allocation the stardard link's MTU is 1.5K, times four
	with a reduction to the closest power of two, thus 4K.

	Oh, and the recieve window size is normally 4 x MTU which
	is then capped at 6K for slow-start.

	Mitchell Erblich
	----------------

	

	

Danny McPherson wrote:
> 
> In RFC 1105 the maximum message size was 1024 octets.  I suspect
> because RFC 1163 added the capability to support multiple prefixes
> (i.e., compression/update packing) they bumped the size to 4096. Note
> that RFC 1163's Appendix 2 states the UPDATE format was changed
> to support multiple "path attributes", when I think they actually meant
> multiple "prefixes".
> 
> As for why it was constrained in the first place, RFC 1164 talks to this
> a bit in section 6.3.  In particular, I suspect the size was constrained
> initially because of this:
> 
>     Due to the stream nature of TCP, all the data for received messages
>     does not necessarily arrive at the same time
>     [...]
>     This can make it difficult to process the data as messages,
>     especially on systems such as BSD Unix where it is not possible to
>     determine how much data has been received but not yet processed.
> 
> One might hypothesize that the selection of the original value of 1024
> had something to the 4.2 BSD-derived systems TCP segment size
> common settings of 1024.
> 
> RFC 1267 incorporated some of the RFC 1164 text directly, in section
> 5.2.
> 
> Of course, I'm just a youngster compared to some of the old folk here,
> especially Yakov, so I'll happily defer  ;-)
> 
> -danny
> 
> ---
> RFC 1267
> 
> 5.2  Processing Messages on a Stream Protocol
> 
>     BGP uses TCP as a transport mechanism.  Due to the stream nature of
>     TCP, all the data for received messages does not necessarily arrive
>     at the same time. This can make it difficult to process the data as
>     messages, especially on systems such as BSD Unix where it is not
>     possible to determine how much data has been received but not yet
>     processed.
> 
>     One method that can be used in this situation is to first try to
> read
>     just the message header. For the KEEPALIVE message type, this is a
>     complete message; for other message types, the header should
> first be
>     verified, in particular the total length. If all checks are
>     successful, the specified length, minus the size of the message
>     header is the amount of data left to read. An implementation that
>     would "hang" the routing information process while trying to read
>     from a peer could set up a message buffer (4096 bytes) per peer and
>     fill it with data as available until a complete message has been
>     received.
> 
> _______________________________________________
> Idr mailing list
> Idr@ietf.org
> https://www1.ietf.org/mailman/listinfo/idr

_______________________________________________
Idr mailing list
Idr@ietf.org
https://www1.ietf.org/mailman/listinfo/idr