* high rate injection and fragmentation
@ 2009-02-09 15:20 Raúl Hernández
2009-02-09 16:09 ` Ilpo Järvinen
0 siblings, 1 reply; 4+ messages in thread
From: Raúl Hernández @ 2009-02-09 15:20 UTC (permalink / raw)
To: netdev
Hi there,
I am trying to understand the behavior of the IP stack regarding
fragmentation when injecting at high speed ratio : so far I am seeing
that TCP starts multiplexing the application level protocol (in my
case, diameter: previously 1 diameter message = 1 TCP message, when
the rate increases, multiple diameter messages are coalesced in one
TCP messages - similar to a Nagle control -).
At that very moment is when we start finding issues regarding packet
length checking with ethereal: frames start growing due the multiplex
above and ethereal shows captured packets >3000 bytes ! (IP total
lenght makes sense as well according to that figure). The thing is
that I am working under ethernet law (1500 bytes) and I have checked
through iproute this is the MTU set for the link (neither
DONT_FRAGMENT ip options for the socket regarding nor MTU
modifications have been introduced) so my understanding is that no
packet > 1500 bytes should be allowed with my configuration (would
need fragmentation).
Checking the IP header with ethereal, "dont fragment" is set and
"fragment offset"=0. IOW, It seems that IP is not fragmenting the
packet although > MTU which I am not able to understand.
Any idea why Linux tries to work with MTU > 1500 bytes when not
configured explicitly to do so (may I have missed more
options/checkings) ? Hope not to be cheated by Ethereal ...
Thx !
Best regards,
Raul
--
Los viajes son en la juventud una parte de educación y, en la vejez,
una parte de experiencia -- Francis Bacon
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: high rate injection and fragmentation
2009-02-09 15:20 high rate injection and fragmentation Raúl Hernández
@ 2009-02-09 16:09 ` Ilpo Järvinen
2009-02-09 17:18 ` Raúl Hernández
0 siblings, 1 reply; 4+ messages in thread
From: Ilpo Järvinen @ 2009-02-09 16:09 UTC (permalink / raw)
To: Raúl Hernández; +Cc: netdev
[-- Attachment #1: Type: TEXT/PLAIN, Size: 1626 bytes --]
On Mon, 9 Feb 2009, Raúl Hernández wrote:
> I am trying to understand the behavior of the IP stack regarding
> fragmentation when injecting at high speed ratio : so far I am seeing
> that TCP starts multiplexing the application level protocol (in my
> case, diameter: previously 1 diameter message = 1 TCP message, when
> the rate increases, multiple diameter messages are coalesced in one
> TCP messages - similar to a Nagle control -).
>
> At that very moment is when we start finding issues regarding packet
> length checking with ethereal: frames start growing due the multiplex
> above and ethereal shows captured packets >3000 bytes ! (IP total
> lenght makes sense as well according to that figure). The thing is
> that I am working under ethernet law (1500 bytes) and I have checked
> through iproute this is the MTU set for the link (neither
> DONT_FRAGMENT ip options for the socket regarding nor MTU
> modifications have been introduced) so my understanding is that no
> packet > 1500 bytes should be allowed with my configuration (would
> need fragmentation).
>
> Checking the IP header with ethereal, "dont fragment" is set and
> "fragment offset"=0. IOW, It seems that IP is not fragmenting the
> packet although > MTU which I am not able to understand.
>
> Any idea why Linux tries to work with MTU > 1500 bytes when not
> configured explicitly to do so (may I have missed more
> options/checkings) ? Hope not to be cheated by Ethereal ...
I suppose you refer here to what GSO is doing though the explanation
is so fuzzy that I lost track of it in the middle. ...You needs
ethtool to configure it.
--
i.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: high rate injection and fragmentation
2009-02-09 16:09 ` Ilpo Järvinen
@ 2009-02-09 17:18 ` Raúl Hernández
2009-02-09 23:10 ` David Miller
0 siblings, 1 reply; 4+ messages in thread
From: Raúl Hernández @ 2009-02-09 17:18 UTC (permalink / raw)
To: Ilpo Järvinen; +Cc: netdev
Hi Ilpo,
Thanks for your answer, I did not know about that feature. Looking at
my settings:
# ethtool -k eth2
...
tcp segmentation offload: on
I think ethereal hooks up before reaching the TCP offload which is
handled by the NIC.
Best regards,
Raul
On Mon, Feb 9, 2009 at 5:09 PM, Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> wrote:
> On Mon, 9 Feb 2009, Raúl Hernández wrote:
>
>> I am trying to understand the behavior of the IP stack regarding
>> fragmentation when injecting at high speed ratio : so far I am seeing
>> that TCP starts multiplexing the application level protocol (in my
>> case, diameter: previously 1 diameter message = 1 TCP message, when
>> the rate increases, multiple diameter messages are coalesced in one
>> TCP messages - similar to a Nagle control -).
>>
>> At that very moment is when we start finding issues regarding packet
>> length checking with ethereal: frames start growing due the multiplex
>> above and ethereal shows captured packets >3000 bytes ! (IP total
>> lenght makes sense as well according to that figure). The thing is
>> that I am working under ethernet law (1500 bytes) and I have checked
>> through iproute this is the MTU set for the link (neither
>> DONT_FRAGMENT ip options for the socket regarding nor MTU
>> modifications have been introduced) so my understanding is that no
>> packet > 1500 bytes should be allowed with my configuration (would
>> need fragmentation).
>>
>> Checking the IP header with ethereal, "dont fragment" is set and
>> "fragment offset"=0. IOW, It seems that IP is not fragmenting the
>> packet although > MTU which I am not able to understand.
>>
>> Any idea why Linux tries to work with MTU > 1500 bytes when not
>> configured explicitly to do so (may I have missed more
>> options/checkings) ? Hope not to be cheated by Ethereal ...
>
> I suppose you refer here to what GSO is doing though the explanation
> is so fuzzy that I lost track of it in the middle. ...You needs
> ethtool to configure it.
>
> --
> i.
--
Los viajes son en la juventud una parte de educación y, en la vejez,
una parte de experiencia -- Francis Bacon
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: high rate injection and fragmentation
2009-02-09 17:18 ` Raúl Hernández
@ 2009-02-09 23:10 ` David Miller
0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2009-02-09 23:10 UTC (permalink / raw)
To: rauhersu; +Cc: ilpo.jarvinen, netdev
From: Raúl Hernández <rauhersu@gmail.com>
Date: Mon, 9 Feb 2009 18:18:50 +0100
> Hi Ilpo,
>
> Thanks for your answer, I did not know about that feature. Looking at
> my settings:
>
> # ethtool -k eth2
> ...
> tcp segmentation offload: on
>
> I think ethereal hooks up before reaching the TCP offload which is
> handled by the NIC.
No, the packets will be large as created by the TCP stack,
and then the NIC hardware splits them up as it transmits
them onto the wire.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-02-09 23:11 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-09 15:20 high rate injection and fragmentation Raúl Hernández
2009-02-09 16:09 ` Ilpo Järvinen
2009-02-09 17:18 ` Raúl Hernández
2009-02-09 23:10 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).