Mark Hobley <(E-Mail Removed)> wrote:
> Yeah. There is no firewall between the two hosts and they can ping
> each other.
Is there actually a router between them or are they talking to one
another "directly?"
PathMTU discovery requires a router between two nodes. Perhaps two.
Node1 --BigMTUNet-- Router1-- SmallMTUNet -- Router2 --BigMTUNet Node2
At the risk of restating the known...
A large IP datagram sent by Node1 to Node2 hits the router. The when
the router goes to transmit it on SmallMTUNet, it sees the datagram is
larger than the MTU of SmallMTUNet. It also sees the DF bit is set.
It will then drop the datagram and send an ICMP message to Node1,
telling Node1 it dropped the datagram because it was too large to be
forwarded without further fragmentation and the DF bit was set. It
also includes what size could be sent without further fragmentation.
Why two routers? First a bit about MTUs in a local broadcast domain
(that part of a network all on the same side of a router). Broadly
speaking, all nodes in the same broadcast domain must have the same
MTU. Otherwise, a node with a large MTU might try to send a frame to
a node with a small MTU and the node with the small MTU will drop it
(if some switch along the way didn't drop it first) - it is not setup
to accept the larger frame size.
Now, if the communication is TCP, the exchange of MSS (Maximum Segment
Size) at the beginning of the communication will cover the backside of
whomever configured multiple MTUs in the broadcast domain. One side
will send an MSS based on the large MTU, the other will send an MSS
based on its smaller MTU. The smaller MSS is the one used. However,
UDP communication does not have that MSS exchange. The system with
the large MTU just sends to the system with the small and we are back
to packets dropped.
Now, if there is only one router between them, and the comms are TCP,
we still have the MSS exchange and there will be no need for
fragmentation by the router and no PathMTU discovery happens. If the
comms are UDP, then the router (which must have a large MTU configured
on the large MTU side (broadcast domain) will generate the ICMP's per
some of the initial text above.
Now, if there are two routers, and the broadcast domain joining the
routers is the one with the small MTU, and the ends have the big MTU
(aka a "dumbbell network") then UDP behaves as before. Now the TCP
MSS exchange as large MSSes in both directions, and so the TCP traffic
too will need framentation and will trigger PathMTU by the router (I'm
assuming DF is set in the IP header for all this)
rick jones
--
web2.0 n, the dot.com reunion tour...
these opinions are mine, all mine; HP might not want them anyway...

feel free to post, OR email to rick.jones2 in hp.com but NOT BOTH...