1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Checking MSS on XP

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

Click here to banish ads and support Certforums by becoming a Premium Member
  1. Spice_Weasel

    Spice_Weasel Kilobyte Poster

    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,

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

    simongrahamuk Hmmmmmmm?

    Whats an MSS? :oops:
  3. AJ

    AJ 01000001 01100100 01101101 01101001 01101110 Administrator

    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

    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

    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 :(

    Certifications: CCNA, CCNP, CCIP, JNCIA-ER, JNCIS-ER,MCP

Share This Page