Controlling DLSw Packet Fragmentation

Controlling DLSw Packet Fragmentation

Problem

You want to control packet fragmentation in DLSw to improve throughput.

Solution

There are two methods for controlling packet fragmentation when using DLSw. The first is to set an MTU for the bridge, as mentioned above in the section on bridging Token Ring to Ethernet:

Router-A(config)#dlsw remote-peer 0 tcp 10.1.1.5 lf 1470 lsap-output-list 200

This is used primarily when connecting media with different MTU values. However, it is also common to connect two high MTU media such as Token Rings via an intervening network that has low MTU links. In this situation, you should take advantage of DLSw's TCP transport and the following command:

Router-A(config)#ip tcp path-mtu-discovery

Discussion

These two different commands work at different levels and accomplish different goals. The first one sets the MTU of packets that pass through the bridge. However the DLSw packets themselves need not have the same MTU. In fact, DLSw+ is able to break up a large Token Ring packet, carry it in a series of several DLSw packets, and then reassemble the large packet at the other end. So the first command above instructs DLSw not to accept any packets for bridging if they are larger than the specified size.

The most serious performance problems happen when the DLSw packets themselves must be fragmented in the network. In general, the DLSw routers will use the largest MTU that they can. This will usually wind up being the MTU of the first link into the IP network heading toward the router at the other end of the bridge. There could be a link along the path that can't transmit a packet this large, so some router in the middle of the network will fragment the packet according to standard TCP packet fragmentation rules. The receiving DLSw router reassembles the packet before de-encapsulating the payload packet.

This tends to be relatively inefficient, and it can cause serious throughput issues in some networks. So to avoid the problem, you can configure both DLSw peer routers to use a clever feature of TCP called Path MTU Discovery, which is described in RFC 1191. When the TCP connection is first made, in this case by forming a DLSw peer relationship between two routers, the routers start by figuring out the largest MTU that they can pass between them without fragmentation.

They do this by setting the Don't Fragment (DF) bit in the IP header and sending the largest packet that the interface can support. If a router somewhere in the network finds that it must fragment the packet to forward it, it will drop it instead and send back an informational ICMP "Datagram Too Big" packet to report the problem. The ICMP message includes the maximum size that it could have passed along. This allows the two end points to quickly deduce the largest packet size they can use.

TCP Path MTU Discovery is not enabled by default on Cisco routers. This command will affect all TCP sessions with this router, not just DLSw. In general, it is most effective if all of the DLSw routers have this feature enabled.