QNX4 to QNX6 migration & Packet fragmentation

Hi

I just spent effort porting our app that uses TCP/IP messaging from
QNX4.24 to QNX6.1.0. I’m observing that the newer platform is
fragmenting the TCP/IP messages. This is causing problems on the
receiving end (due to poor implementation of the receiving algorithm).
Is there a socket option that I can set at the IP level such that it
leaves a message intact and sends it as a single packet? Using a sniffer
I noted that the “Do Not Fragment” flag is NOT being set on outgoing
packets.

Thanks,
Santosh

tcp is a stream protocol. It can be sent in any size chunks, there
is no option to disable this. The DF bit in the ip header is a hint
to intermediate routers to not perform ip fragmentation but send
back an icmp fragmentation required packet instead. This is different
than splitting up the actual tcp stream.

-seanb

Santosh Patil <sansjunk@hotmail.com> wrote:
: Hi

: I just spent effort porting our app that uses TCP/IP messaging from
: QNX4.24 to QNX6.1.0. I’m observing that the newer platform is
: fragmenting the TCP/IP messages. This is causing problems on the
: receiving end (due to poor implementation of the receiving algorithm).
: Is there a socket option that I can set at the IP level such that it
: leaves a message intact and sends it as a single packet? Using a sniffer
: I noted that the “Do Not Fragment” flag is NOT being set on outgoing
: packets.

: Thanks,
: Santosh

Why is it that the same code does not fragment messages in QNX4.24?
Does it have anything to do with the MTU?

-Santosh

Sean Boudreau wrote:

tcp is a stream protocol. It can be sent in any size chunks, there
is no option to disable this. The DF bit in the ip header is a hint
to intermediate routers to not perform ip fragmentation but send
back an icmp fragmentation required packet instead. This is different
than splitting up the actual tcp stream.

-seanb

Santosh Patil <> sansjunk@hotmail.com> > wrote:
: Hi

: I just spent effort porting our app that uses TCP/IP messaging from
: QNX4.24 to QNX6.1.0. I’m observing that the newer platform is
: fragmenting the TCP/IP messages. This is causing problems on the
: receiving end (due to poor implementation of the receiving algorithm).
: Is there a socket option that I can set at the IP level such that it
: leaves a message intact and sends it as a single packet? Using a sniffer
: I noted that the “Do Not Fragment” flag is NOT being set on outgoing
: packets.

: Thanks,
: Santosh

Santosh Patil <sansjunk@hotmail.com> wrote:

Why is it that the same code does not fragment messages in QNX4.24?
Does it have anything to do with the MTU?

The decision of when/how fragment a packet, is decided by stack
(different stack have different algorithm), memory use, timing …

You really should fix that receiving algorithm.

-xtang

-Santosh

Sean Boudreau wrote:

tcp is a stream protocol. It can be sent in any size chunks, there
is no option to disable this. The DF bit in the ip header is a hint
to intermediate routers to not perform ip fragmentation but send
back an icmp fragmentation required packet instead. This is different
than splitting up the actual tcp stream.

-seanb

Santosh Patil <> sansjunk@hotmail.com> > wrote:
: Hi

: I just spent effort porting our app that uses TCP/IP messaging from
: QNX4.24 to QNX6.1.0. I’m observing that the newer platform is
: fragmenting the TCP/IP messages. This is causing problems on the
: receiving end (due to poor implementation of the receiving algorithm).
: Is there a socket option that I can set at the IP level such that it
: leaves a message intact and sends it as a single packet? Using a sniffer
: I noted that the “Do Not Fragment” flag is NOT being set on outgoing
: packets.

: Thanks,
: Santosh