Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

query Windows MTU how?

22 views
Skip to first unread message

Pat LaVarre

unread,
Dec 10, 2001, 4:43:10 PM12/10/01
to
How should I go about discovering - not necessarily overriding - the
MTU's of our Windows PC's?

Here mostly we have Win95B, Win98, Win98SE, WinME, Win2K, WinXP, Mac
OS 9, Mac OS X, Linux 2.4.x, and some free BSD.

It seems `ifconfig -a` doesn't work on Windows?

> > comp.os.ms-windows.networking.tcp-ip
> > The PMTU between two systems ...
> > ping with the -f (don’t fragment) ...

> news://comp.protocols.tcp-ip
> [here `ping -f -l 1472 -n 1 ftp.microsoft.com` works, but
> `ping -f -l 1473 -n 1 ftp.microsoft.com` chokes via
> "Packet needs to be fragmented but DF set".]

I see I can manually discover the PMTU of ping -f -l ...

... but I hear I should be slow to believe I can always add 8 bytes of
ICMP header and 20 bytes of IP header to conclude that my PMTU is 1472
+ 8 + 20 = 1500. In particular, this calculation doesn't explain why
I see java.net.Socket data moving in bursts of N * 1432 (x598)?

Can anyone here suggest me how I might most easily try to discover
each of our local MTU's?

Thanks in advance. Pat LaVarre

William Stacey

unread,
Dec 10, 2001, 6:32:27 PM12/10/01
to
Find the following articles (i.e. Q123456 ) on
http://search.support.microsoft.com/kb/c.asp

1) General Info: Default MTU Size for Different Network Topology - Q140375

2) For:
- Microsoft Windows 95
- Microsoft Windows 98
- Microsoft Windows 98 Second Edition
- Microsoft Windows Millennium Edition
See - Windows TCP/IP Registry Entries [Q158474]

3) For:
- Microsoft Windows XP Home Edition
- Microsoft Windows XP Professional
- Microsoft Windows 2000 Professional
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Datacenter Server
- Microsoft Windows NT Workstation versions 3.5, 3.51, 4.0
- Microsoft Windows NT Server versions 3.5, 3.51, 4.0
See - TCP/IP & NBT Configuration Parameters for Windows [Q120642]

--
William Stacey, MCSE


"Pat LaVarre" <ppa...@aol.com> wrote in message
news:2695edf1.0112...@posting.google.com...

Pat LaVarre

unread,
Dec 11, 2001, 6:37:01 AM12/11/01
to
Those are excellent cross-references, thank you ... am I incorrect to
read them to say that I have lots of ways to try and override the
choice of MTU ...

... but no way to discover what MTU is now in effect?

I get this idea from statements like "Values larger than the default
for the underlying network will result in the transport using the
network default MTU".

Thanks in advance. Pat LaVarre

P.S. Specifically what I understand is relevant, quoting only without
annotation is:


> http://support.microsoft.com/default.aspx?scid=kb;en-us;Q140375
> Default MTU Size for Different Network Topology (Q140375)

MTU (Maximum Transfer Unit) specifies the maximum transmission unit
size of an interface. Each interface used by TCP/IP may have a
different MTU value specified. The MTU is usually determined through
negotiation with the lower driver, using that lower driver value.
However, that value may be overridden.

Each media type has a maximum frame size that cannot be exceeded. The
link layer is responsible for discovering this MTU and reporting it to
the protocols above. NDIS drivers may be queried for the local MTU by
the protocol stack. Knowledge of the MTU for an interface is used by
upper layer protocols such as TCP, which optimizes packet sizes for
each medium automatically.

If a network interface card (NIC) driver such as an ATM driver uses
LAN emulation mode, it may report that it has an MTU higher than what
is expected for that media type. For instance, it may emulate Ethernet
but report an MTU of 9180 bytes. Windows NT accepts and uses the MTU
size reported by the adapter even when it exceeds the normal MTU for a
given media type.

Below is a list of Default MTU size for different media.


Network MTU(Bytes)
-----------------------------------
16 Mbit/Sec Token Ring 17914
4 Mbits/Sec Token Ring 4464
FDDI 4352
Ethernet 1500
IEEE 802.3/802.2 1492
X.25 576


> http://support.microsoft.com/default.aspx?scid=kb;en-us;Q158474
> Windows TCP/IP Registry Entries (Q158474)

The entries in this section must be added to the following registry
key, where n represents the particular TCP/IP-to-network adapter
binding.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\netTrans\000
n
MaxMTU = 16-bit integer
Data Type: String

This specifies the maximum size datagram IP that can pass to a media
driver. SNAP and source routing headers (if used on the media) are not
included in this value. For example, on an Ethernet network, MaxMTU
will default to 1500. The actual value used will be the minimum of the
value specified with this parameter and the size reported by the media
driver. The default is the size reported by the media driver.


> http://support.microsoft.com/default.aspx?scid=kb;en-us;Q120642
> TCP/IP and NBT Configuration Parameters for Windows (Q120642)

MTU
Key: Adapter Name \Parameters\Tcpip

NOTE : In Windows 2000 and later this value is under the following
key:
Key: Tcpip\Parameters\Interfaces\ ID for Adapter
Value Type: REG_DWORD Number
Valid Range: 68 - the MTU of the underlying network
Default: 0xFFFFFFFF
Description: This parameter overrides the default Maximum Transmission
Unit (MTU) for a network interface. The MTU is the maximum packet size
in bytes that the transport will transmit over the underlying network.
The size includes the transport header. Note that an IP datagram may
span multiple packets. Values larger than the default for the
underlying network will result in the transport using the network
default MTU. Values smaller than 68 will result in the tranport using
an MTU of 68.

William Stacey

unread,
Dec 11, 2001, 8:24:14 AM12/11/01
to
Directly you can look at the respective MTU registry key (i.e. maxmtu for 98
and mtu for 2000, etc.)
Indirectly you can use the ping method as described in: Diagnoses and
Treatment of Black Hole Routers [Q159211]

For example, if your network Ethernet has an MTU of 1500 bytes, the
following should work:
ping <computer name or IP address> -f -l 1472

However the following should fail with a "Packet needs to be fragmented but
DF set":
ping <computer name or IP address> -f -l 1473 (note the "3" instead of the
"2".)

You can adjust this downward to find the MTU between segments or on your
local segment - normally that should be 1500 for Ethernet.
Happy hunting:-)
--
William Stacey, MCSE


"Pat LaVarre" <ppa...@aol.com> wrote in message

news:2695edf1.01121...@posting.google.com...

Pat LaVarre

unread,
Dec 12, 2001, 4:41:59 PM12/12/01
to
> > "Pat LaVarre" <ppa...@aol.com>
> > ...

> > It seems `ifconfig -a` doesn't work on Windows?
> > ...

> > no way to discover what MTU is now in effect?
> > ...

> > statements like "Values larger than the default
> > for the underlying network will result
> > in the transport using the network default MTU".
> > ...

> "William Stacey" <sta...@ameritech.net>
> ...


> Directly you can look at the respective MTU registry key
> (i.e. maxmtu for 98 and mtu for 2000, etc.)

"Directly"????

The Windows registry tells me only if I have used the Windows register
to limit my MTU ... not what my MTU actually is? Or have I
misunderstood?

For example, just now via a `regedit` searches I think I confirmed one
of our Win98 machines here lacks "maxmtu" in its registry, and one of
our Win2K machines here lacks "mtu"?

> > [here `ping -f -l 1472 -n 1 ftp.microsoft.com` works, but
> > `ping -f -l 1473 -n 1 ftp.microsoft.com` chokes via

> > "Packet needs to be fragmented but DF set".]

> the ping method ... described in:


> Diagnoses and Treatment of Black Hole Routers [Q159211]

Another excellent cross-reference, thank you again.

> http://support.microsoft.com/default.aspx?scid=kb;EN-US;q159211
> ...
> -l ... largest buffer that can be sent unfragmented
> equals the MTU minus the IP and ICMP headers (MTU-28)
> of the smallest MTU along a route.

How universally true is this Microsoft claim?

I came here to <news://comp.os.ms-windows.networking.tcp-ip> just
after folk at <news://comp.protocols.tcp-ip> made fun of this
conjecture when I made it myself, without having read q159211.

Having seen that http://... bytes arrive here in bursts of N * 1432
(not N * 1472), those folk were relunctant to swallow the idea that my
`ping -f -l` PMTU of 1472 implied an MTU of 1500. (The physical
connections here include 33K modems, wired Ethernet 10/100, and
wireless 802.11.)

How confused are they?

Pat LaVarre

William Stacey

unread,
Dec 19, 2001, 9:21:13 PM12/19/01
to
I'm sure the folks at news://comp.protocols.tcp-ip gave you good advise.
However, from your post, I can't tell what that is.
Moreover, what exactly are you asking for? Remember MTU along a path can be
different then MTU on your LAN.

--
William Stacey, MCSE


"Pat LaVarre" <ppa...@aol.com> wrote in message
news:2695edf1.01121...@posting.google.com...

Pat LaVarre

unread,
Dec 20, 2001, 6:46:11 PM12/20/01
to
> "William Stacey" <sta...@nospam.ameritech.net>
> Date: 2001-12-19 18:21:15 PST

> Moreover, what exactly are you asking for?

I thought <news://comp.protocols.tcp-ip> told me I'm asking ...


How can I persuade Windows to disclose to me my first-hop MTU?


We haven't yet answered that question here (have we?).

I'm asking to meet the Windows analogue to the `ifconfig -a` of many
Unix'es ... we haven't yet found that analogue (have we?).


> Subject: available bytes == N * x598 == N * 1432 why?
> http://groups.google.com/groups?as_usubject=available%201432&hl=en

Should I be asking some other question? I launched the 17+ articles
of the Cpti thread that Google link should show you when ...

There I explained that my http client API gives me both more control
than I want and less education than I need. Specifically, I have to
choose the size of buffer into which I receive data from an http://...
Uri.

Like I know enough to care. Not.


> Like I know enough ... Not.

To begin to get an idea of what a reasonably good choice might be, I
tried allocating an unreasonably huge buffer, like larger than a
specific example stream of known size, and then I traced the count of
how many bytes arrived how quickly.

I saw that I received http:// data in bursts of x598 (1432) bytes.
Always I saw N * 1432 bytes become available all together at once.

Now I want to know Why, so I can begin to understand what the smallest
reasonable buffer size is and how much I have to grow my buffer to
make a perceptible difference in how smoothly I move bytes.


> I'm sure the folks at news://comp.protocols.tcp-ip

> gave you good advice.
> However, from your post[s], I can't tell what that is.

Ouch, sorry, I thought I said. Let me try again ...


> > http://support.microsoft.com/default.aspx?scid=kb;EN-US;q159211
> > ...
> > -l ... largest buffer that can be sent unfragmented
> > equals the MTU minus the IP and ICMP headers (MTU-28)
> > of the smallest MTU along a route.

Over in Cpti I guessed what here now I see Microsoft claims.

I guessed specifically that a Windows ping -f -l PMTU of 1472 implied
an actual PMTU of 1500, because 1472 + 8 + 20 = 1500.

But the answer I got from Cpti was:

[Wrong,] You need to find your [first hop] MTU


> Remember MTU along a path can be different then MTU on your LAN.

I think you here are saying any observed PMTU is only a lower limit on
the first-hop MTU. At any point in time, the actual first-hop MTU may
be larger than the max to date of the observed PMTU's.

If you're saying something else, I missed it, sorry.

At <http://www.rfc-editor.org/rfcsearch.html> I get relevant hits if I
ask for "Path MTU Discovery", and more relevant hits if I ask merely
for "MTU".


> How can I persuade Windows to disclose to me my first-hop MTU?

Anybody know?

Thanks again in advance. Pat LaVarre

William Stacey

unread,
Dec 20, 2001, 8:42:56 PM12/20/01
to
> > How can I persuade Windows to disclose to me my first-hop MTU?
That ping (in prev post) method is the only one I know of.

--
William Stacey, MCSE


0 new messages