Mozilla

NAVIGATION
CATEGORIES
REFERRENCE
LINKS
  • Possible NAT oddity

    11 answers - 999 bytes - related search similar search Add To My Delicious Add To My Stumble Upon Add To My Google Mark Add To My Facebook Add To My Digg Add To My Reddit

    In <qnirqrrmrrbet.j1foyi0.pminews (AT) news (DOT) mozilla.com>, on 06/25/2006
    at 04:59 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:

    >>There could be any number of reasons for this. You need to use iptrace on
    >>the S/2 side and compare the ipformat results after normalizing the
    >>formatted output.


    >I am not an expert reading ip traces but it would appear that it sends
    >the GET request, Gets a response that sets some cookies, sends an Ack to
    >that and then nowt.

    Without seeing the actaul data, I can only speculate. If there are no
    other GETs waiting for responses, then the browser must think it has asked
    for everything. It is odd that the GET response contains no data to be
    rendered. This might indicate a problem on the Solaris side. What
    happened to the FIN packet? Did it get lost?
    Regards,
    Steven
  • No.1 | | 1184 bytes | |

    Wed, 28 Jun 2006 11:40:45 -0700, steve53 (AT) earthlink (DOT) net wrote:

    >In <qnirqrrmrrbet.j1foyi0.pminews (AT) news (DOT) mozilla.com>, on 06/25/2006

    at 04:59 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:

    There could be any number of reasons for this. You need to use iptrace on
    the S/2 side and compare the ipformat results after normalizing the
    formatted output.
    >
    >>I am not an expert reading ip traces but it would appear that it sends
    >>the GET request, Gets a response that sets some cookies, sends an Ack to
    >>that and then nowt.

    >
    >Without seeing the actaul data, I can only speculate. If there are no
    >other GETs waiting for responses, then the browser must think it has asked
    >for everything. It is odd that the GET response contains no data to be
    >rendered. This might indicate a problem on the Solaris side. What
    >happened to the FIN packet? Did it get lost?


    I would not know a FIN packet if I trod on one :-) If I run the trace again can
    I PM you to have a look?
  • No.2 | | 727 bytes | |

    In <qnirqrrmrrbet.j1lj6x0.pminews (AT) news (DOT) mozilla.com>, on 06/28/2006
    at 08:40 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:

    >I would not know a FIN packet if I trod on one :-) If I run the trace
    >again can I PM you to have a look?


    Sure. I'm a bit cursious at to what is failing.

    FWIW, you probably saw FIN packets in the TCP headers and ignored them.
    :-) The typical TCP transaction starts with a couple of SYN packets,
    continues with 0 or more ACK packets and finishes up with a couple FIN
    packets. The ACK and FIN can happen in the same packet, but logically
    they are separate functions.

    Regards,

    Steven
  • No.3 | | 1746 bytes | |

    hi Dave?
    Dave Saville wrote:

    Wed, 28 Jun 2006 11:40:45 -0700, steve53 (AT) earthlink (DOT) net wrote:

    >In <qnirqrrmrrbet.j1foyi0.pminews (AT) news (DOT) mozilla.com>, on 06/25/2006

    at 04:59 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:

    There could be any number of reasons for this. You need to use iptrace on
    the S/2 side and compare the ipformat results after normalizing the
    formatted output.
    >
    >>I am not an expert reading ip traces but it would appear that it sends
    >>the GET request, Gets a response that sets some cookies, sends an Ack to
    >>that and then nowt.

    >
    >Without seeing the actaul data, I can only speculate. If there are no
    >other GETs waiting for responses, then the browser must think it has asked
    >for everything. It is odd that the GET response contains no data to be
    >rendered. This might indicate a problem on the Solaris side. What
    >happened to the FIN packet? Did it get lost?


    I would not know a FIN packet if I trod on one :-) If I run the trace again can
    I PM you to have a look?

    try this:

    ping <your web page1500 4

    it sends 4 packets of 1500 bytes to "your web" target
    - if success your mtu seems correct
    - if all packets are lost then decrease 1500 until success
    then you can use this value (the one reported) as MTU in the
    "TCPIP configuration (LAN)" notebook, advanced option
    values around 1400 could be adequate (1472 is a magic number!)
    good luck (;-)

    dev-ports-os2 mailing list
    dev-ports-os2 (AT) lists (DOT) mozilla.org
  • No.4 | | 1304 bytes | |

    In <44a2fa5b$6$fgrir53$mr2ice (AT) news (DOT) mozilla.org>, on 06/28/2006
    at 02:42 PM, steve53 (AT) earthlink (DOT) net said:

    >In <qnirqrrmrrbet.j1lj6x0.pminews (AT) news (DOT) mozilla.com>, on 06/28/2006

    at 08:40 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:

    >>I would not know a FIN packet if I trod on one :-) If I run the trace
    >>again can I PM you to have a look?


    >Sure. I'm a bit cursious at to what is failing.


    After looking at the trace output, unless I am more blind than usual, I
    can only conclude that your tcp/ip stack is sick.

    Take a look at packet #22. The Ack# value is supposed to be the Sequence#
    value of the last packet received plus the number of data bytes in the
    received packet. The math from packet #21 is

    775502050 + 658 - 20 = 775502688

    The Ack# in packet 22 is 3795336088 which is not even close.

    Ipformat reports issues with the sizes of several other packets, but these
    seem to have been ignored by the stack.

    If you have SACK enabled, try turning it off. Use inetcfg to find out if
    this is the case.

    Regards,

    Steven
  • No.5 | | 1666 bytes | |

    Fri, 30 Jun 2006 14:23:12 -0700, steve53 (AT) earthlink (DOT) net wrote:

    >In <44a2fa5b$6$fgrir53$mr2ice (AT) news (DOT) mozilla.org>, on 06/28/2006

    at 02:42 PM, steve53 (AT) earthlink (DOT) net said:
    >
    >>In <qnirqrrmrrbet.j1lj6x0.pminews (AT) news (DOT) mozilla.com>, on 06/28/2006

    >at 08:40 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:
    >

    I would not know a FIN packet if I trod on one :-) If I run the trace
    again can I PM you to have a look?
    >
    >>Sure. I'm a bit cursious at to what is failing.

    >
    >After looking at the trace output, unless I am more blind than usual, I
    >can only conclude that your tcp/ip stack is sick.
    >
    >Take a look at packet #22. The Ack# value is supposed to be the Sequence#
    >value of the last packet received plus the number of data bytes in the
    >received packet. The math from packet #21 is
    >

    775502050 + 658 - 20 = 775502688
    >
    >The Ack# in packet 22 is 3795336088 which is not even close.
    >
    >Ipformat reports issues with the sizes of several other packets, but these
    >seem to have been ignored by the stack.
    >
    >If you have SACK enabled, try turning it off. Use inetcfg to find out if
    >this is the case.


    Thanks for looking, however it begs the question "why does it only fail going
    through NAT?" SACK, whatever the hell that is, is FF. System is ECS 1.15 with
    all TCP fixes.
  • No.6 | | 927 bytes | |

    Fri, 30 Jun 2006 14:23:12 -0700, steve53 (AT) earthlink (DOT) net wrote:


    >Take a look at packet #22. The Ack# value is supposed to be the Sequence#
    >value of the last packet received plus the number of data bytes in the
    >received packet. The math from packet #21 is
    >

    775502050 + 658 - 20 = 775502688
    >
    >The Ack# in packet 22 is 3795336088 which is not even close.


    I have been ploughing up and down several traces and I cannot find *any* seq #
    yack # that follows your rule. Most seem to be out by a constant 40.

    AIUI the sequence # is how far down the entire data stream the first data byte
    of that packet is and if received correctly the ack returned would be that
    number + the data length. I can see where you are coming from but if the stack
    were that buggered then nothing would ever work surely.
  • No.7 | | 703 bytes | |

    I now recall where the MTU of 1492 came from. I used to be on a cable modem
    using PPPoE and that used an MTU of 1492. When I switched to my current ADSL
    provider I never changed it. Now my ADSL uses PPPoA and nowhere in the
    modem/router setup does it mention MTU. I called their, excellent, helpdesk
    yesterday and they said it should be 1500.

    I just changed all NICs to 1500, including the MTU dished out by the Sparc.
    Switched the cables from the external net to the internal and rebooted the
    laptop. netstat -n shows MTUs of 1500.

    I reran the ping tests I had run previously and they failed exactly the same as
    before. BUT the browser now loads the page - Go figure.
  • No.8 | | 2436 bytes | |

    In <qnirqrrmrrbet.j1wcyc0.pminews (AT) news (DOT) mozilla.com>, on 07/04/2006
    at 04:59 PM, "Dave Saville" <dave (AT) deezee-nospam (DOT) orgsaid:

    Glad to see you tracked down the trigger to the problem.

    >>Take a look at packet #22. The Ack# value is supposed to be the Sequence#
    >>value of the last packet received plus the number of data bytes in the
    >>received packet. The math from packet #21 is
    >>

    >775502050 + 658 - 20 = 775502688
    >>
    >>The Ack# in packet 22 is 3795336088 which is not even close.


    >I have been ploughing up and down several traces and I cannot find *any*
    >seq # yack # that follows your rule. Most seem to be out by a constant
    >40.


    Looks like I dropped a 20.

    Ipformat reports several byte counts and you have to use the appropriate
    ones to get the numbers to work. When things work correctly, the Seq#s
    and the Ack#s increment by the data size. The basic formulas are

    DataBytes = IP packet total length - IP header size - TCP header size

    NextSeq = DataBytes + CurrentSeq

    In the packet in question both the IP header and TCP header are 20 bytes.

    >AIUI the sequence # is how far down the entire data stream the first data
    >byte of that packet is and if received correctly the ack returned would
    >be that number + the data length.


    You are close. From the RFC

    Sequence Number: 32 bits
    The sequence number of the first data octet in this segment (except
    when SYN is present). If SYN is present the sequence number is the
    initial sequence number (ISN) and the first data octet is ISN+1.
    Acknowledgment Number: 32 bits
    If the ACK control bit is set this field contains the value of the
    next sequence number the sender of the segment is expecting to
    receive. a connection is established this is always sent.

    >I can see where you are coming from but
    >if the stack were that buggered then nothing would ever work surely.


    In your case, the ACK was wrong only for the packet in in question and I
    did not put in a lot of time to figure out why the particular # showed up.
    I just knew it was wrong.

    Regards,

    Steven
  • No.9 | | 556 bytes | |

    Sir:

    steve53 (AT) earthlink (DOT) net wrote:
    <snip>

    I think he has found a work-around in that he increased his MTU to 1500
    bytes from 1496 or some such. The packets are now passing to the
    browser. There is two possibilities why this work-around does work.
    is the source has the Df flag set and is sending 1500 byte packets
    (too large for the old MTU). two, he has configured his firewall to
    drop fragments, thus the complete packet did not arrive. Either is a
    misconfiguration error, of which he can only fix one.
  • No.10 | | 1334 bytes | |

    In <c1.2b5.31djyv$2WQ@>, on 07/11/2006
    at 08:07 PM, "William L. Hartzell" <wlhartzell (AT) comcast (DOT) netsaid:

    >I think he has found a work-around in that he increased his MTU to 1500
    >bytes from 1496 or some such.


    This is a typical fix for fragmentation related problems.

    >The packets are now passing to the
    >browser.


    Agreed.

    >There is two possibilities why this work-around does work.


    It's not so much a workaround, as a requirement for certain transports.

    >
    >is the source has the Df flag set and is sending 1500 byte packets (too
    >large for the old MTU).


    Possible, but I doubt it because unless I missed it, the DF flag is not
    set in the smaller packets that were received.

    two, he has configured his firewall to drop
    >fragments, thus the complete packet did not arrive. Either is a
    >misconfiguration error, of which he can only fix one.


    I believe I mentioned this earlier. Some would argue that this is not a
    misconfigration, but necessary to fight DS attacks. I don't spend enough
    time on firewall configuration to have an opinion.

    Steven
  • No.11 | | 823 bytes | |

    Tue, 11 Jul 2006 20:07:52 -0500, William L. Hartzell wrote:

    >Sir:
    >
    >steve53 (AT) earthlink (DOT) net wrote:
    ><snip>
    >
    >I think he has found a work-around in that he increased his MTU to 1500
    >bytes from 1496 or some such. The packets are now passing to the
    >browser. There is two possibilities why this work-around does work.

    is the source has the Df flag set and is sending 1500 byte packets
    >(too large for the old MTU). two, he has configured his firewall to
    >drop fragments, thus the complete packet did not arrive. Either is a
    >misconfiguration error, of which he can only fix one.


    Correct, upping the MTU to 1500 fixed it. The firewall is not configured to
    drop fragments.

Re: Possible NAT oddity


max 4000 letters.
Your nickname that display:
In order to stop the spam: 1 + 0 =
QUESTION ON "Mozilla"

EMSDN.COM