FTP transfers to the RD&T are slow do to dropped packets by TCPIP on
the RD&T system because of a TCP checksum error.
This is on z/OS 1.13.
I have traces from both sides. Inbound discards on the RD&T and full
trace of the same period on the source side. I match up packet by
packet. The packet size changes (it gets bigger) (no-fragmentation bit
is on).The problem only occurs on inbound to RDT thru the emulated OSA
from the NIC-card. Outbound is fine and inbound thru the tunnel OSA
from Linux is fine.
I believe I understand what is happening. It looks like the emulated
OSA has an optimization feature which kicks in when consecutive packets
are for the same TCP connection and the packets are in the correct
sequence number order with no holes. The reason is that TCPIP will
support a packet size up to 8992 for the OSA interface even though we
use a smaller size of 1492. The OSA emulator will merge those packets
into a larger packet before gives it to TCPIP. This would reduce
emulated z/OS TCPIP processing.
Here is what I see in the Trace:
Sent packet 2581:
Source : 10.225.253.7
Destination : 10.233.119.235
Source Port : 36534
Destination Port : 20
ID Number : 3F09
Sequence Number : 1515325806
IP Header Length : 20
TCP Header Length: 32
Data Length : 1440
Flags : Ack
Sent packet 2582:
Source : 10.225.253.7
Destination : 10.233.119.235
Source Port : 36534
Destination Port : 20
ID Number : 3F0A
Sequence Number : 1515327246
IP Header Length : 20
TCP Header Length: 32
Data Length : 1440
Flags : Ack Psh
Received packet 1676:
Source : 10.225.253.7
Destination : 10.233.119.235
Source Port : 36534
Destination Port : 20
ID Number : 3F09
Sequence Number : 1515325806
IP Header Length : 20
TCP Header Length: 32
Data Length : 2880
Flags : Ack Psh
Looks like packets 2581 & 2582 where merged together into packet 1676
with the TCP header being built from a combination of the two source
TCP headers. Both the IP and TCP checksums have been recalculated since
they are different from the source. Since the IP checksum did not have
a problem, it must have been recalculated at the right time. Since
TCPIP is complaining about the TCP checksum, either it was recalculated
incorrectly or some TCP header settings where changed after the
recalculation.
SystemAdmin