Checking MSS on XP

Discussion in 'Software' started by Spice_Weasel, Nov 6, 2006.

  1. Spice_Weasel

    Spice_Weasel Kilobyte Poster

    254
    45
    45
    Hello all,

    Does anyone know of a method to check what value for MSS was selected for a tcp connection to or from an XP computer, without bothering to capture the initial syn-syn-ack when the connection was established?

    For example, if a telnet session was started with a remote device, is there a simple command or utility that will display the mss that was selected for the connection? I would like to be able to quickly check the mss that is being used on a variety of connections without the bother of capturing the initial packets.

    Thanks all,

    Spice_Weasel
     
    Certifications: CCNA, CCNP, CCIP, JNCIA-ER, JNCIS-ER,MCP
    WIP: CCIE
  2. simongrahamuk
    Honorary Member

    simongrahamuk Hmmmmmmm?

    6,205
    136
    199
    Whats an MSS? :oops:
     
  3. AJ

    AJ 01000001 01100100 01101101 01101001 01101110 Administrator

    6,897
    182
    221
    I was gonna ask the same but didn't want to appear stupid :oops:
     
    Certifications: MCSE, MCSA (messaging), ITIL Foundation v3
    WIP: Breathing in and out, but not out and in, that's just wrong
  4. Gaz 45

    Gaz 45 Kilobyte Poster

    404
    4
    39
    A quick Google gives MSS as Maximum Segment Size - the maximum amount of data in bytes that can be transferred by TCP/IP in one piece.
    More here

    Unfortunately this doesn't help answer Spice's question!
     
    Certifications: MCP (70-229, 70-228), MBioch
    WIP: MCDBA (70-290)
  5. Spice_Weasel

    Spice_Weasel Kilobyte Poster

    254
    45
    45
    MSS is the largest ip datagram size - in effect, the largest packet payload, without headers. MSS used to be up to 64K in size, and since the MTU (largest ip packet size, including headers) of an interface is usually much smaller (typically 1500 bytes on ethernet), a large ip datagram would need to be sent using multiple packets. For example, NFS default read and write block size is 8192 bytes, so an NFS datagram will be around 8500 bytes with headers, requiring six ip packets if sent via ethernet.

    When two computers set up a tcp connection they insert an MSS value in the syn packets they send to the other host. Nowadays, hosts typically send a value equal to their interface MTU - header size (usually 40 bytes). for example, if an XP computer initiates a connection with a webserver, the initial syn packet will contain an MSS of 1460 bytes (1500 byte MTU - 40 bytes tcp/ip header). The webserver will respond with a syn-ack packet with its mss value (also usually 1460 bytes). Both machines should now send packets that are equal to or less than the other host's mss value in order to prevent packets from being fragmented.

    Many connections have extra overhead, for example PPPoE has an 8 byte overhead, so hosts should send an MSS of 1452 bytes. If packets are too big they will be fragmented, which can sometimes cause plenty of problems.

    I'd like some way to see what MSS an XP computer is using for a connection, as I need to examine some MTU issues. If I capture the initial syn syn-ack ack of the tcp handshake I can see the mss values on both sides, but that is not a practical solution in this case :(

    Spice_Weasel
     
    Certifications: CCNA, CCNP, CCIP, JNCIA-ER, JNCIS-ER,MCP
    WIP: CCIE

Share This Page

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.