Hi Mark, I am not an expert but I have a networking interest.
Here is what I found at http://www.nat32.com/htm/mtu.htm The Maximum Transfer Unit (MTU) is the maximum size of a packet sent to a Network Adapter by the TCP/IP protocol stack. The MTU is normally determined automatically and need not be explicitly configured by the user. Below is a list of default MTU sizes for different media: 16 Mbit/Sec Token Ring 17914 bytes 4 Mbits/Sec Token Ring 4464 bytes FDDI 4352 bytes Ethernet 1500 bytes IEEE 802.3/802.2 1492 bytes X.25 576 bytes PPPoE Interfaces <= 1492 bytes A problem arises when the MTU of the private LAN is larger than the MTU of the Internet connection. This is often the case if the PPPoE protocol is used for communications with the Internet. The problem can be explained as follows: 1. TCP applications usually set the Minimum Segment Size (MSS) Option in TCP connection requests. If the application is running on a machine connected to an Ethernet, the MSS Option will be set to 1460 bytes. The remote end of the connection also suggests an MSS, usually also 1460 bytes. 2. Once the TCP connection is established, the lowest MSS is used for subsequent data transfer. That means that the remote machine on the Internet will send TCP segments of up to 1460 bytes in length. These packets will be fragmented on the PPPoE network because 1460 bytes of data plus 40 bytes of IP and TCP header exceeds the 1492 byte PPPoE MTU. 3. This fragmentation should normally not be a problem, even though it reduces transmission efficiency. However, all Builds of NAT32 and all Builds of NAT32+ prior to Build 2076 reject all but the first incoming IP fragment, because the subsequent fragments do not contain a TCP header and thus cannot be unmapped. The solution to this problem is to reduce the MTU of the machines on the private LAN so that no fragmentation occurs on the PPPoE network. >From my understanding of the OSI model, I don't think SOAP or Tomcat sets the MTU (that would be bad), I think this is set on the network interface. Get or set the MTU (Maximum Transfer Unit) of a device using ifr_mtu. Setting the MTU is a privileged operation. Or try this: ifconfig tap0 arp mtu 1484 192.168.0.251 up The command above sets the mtu to 1484. Your milage may vary. Hope This Helps, Abraham > -----Original Message----- > From: Mark Childerson [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, November 14, 2001 8:23 AM > To: [EMAIL PROTECTED] > Subject: MTU & Packets > > > I have been using Tomcat-3.2.2 standalone with SOAP 2.2 on Redhat Linux > 7.1 for some time, and all has worked fine. I just switched from using a > Linux comp as a router to using a Linksys router, to connect to my DSL > service, and since then I have been having trouble with access to SOAP. > First, nobody outside my ISP could see Tomcat at all, but I changed the > router's MTU (roughly maximum transmissible packet size) to 1300, and now > people can see Tomcat. However, they can still not make RPC calls over > SOAP. Since the calls involve more than 1300 bytes, I suspect > that there is > still some kind of MTU/packet size problem. I have tried to change the > network card's MTU on the Tomcat server comp, but I have been unable to. > > My questions are: > > 1. Does this make sense? > > 2. Does anybody know how to change the MTU on the Linux box? > > 3. Does SOAP control packet sizes at all? If so, how can they be set? > > 4. Does Tomcat control packet size at all? If so, how can they be set? > > Any help on this would be much appreciated. > > Thanks, > > Mark Childerson > > > >
