XBee actual data rate lower than expected

Hi,

I am transmitting continuously at 9600 bps using the default configurations for both my XBees XB24-B.
The communication is one way only, the transmitter is connected to the ATMega328 UART and the receiver is connected to the PC via USB (FTDI).
Here is the actual data rate for a given program:

Wired connection (no XBee) : 7694 bps
from the ZNET 2.5 Router/End Device AT to ZNET 2.5 Coordinator AT: 6800 bps (some lost packets)
from the ZNET 2.5 Coordinator AT to ZNET 2.5 Router/End Device AT: 0356 bps (many lost packets)
from the Zigbee Router/End Device AT to Zigbee Coordinator AT : 0000 bps (doesn't work)
from the Zigbee Coordinator AT to Zigbee Router/End Device AT : 0328 bps (many lost packets)

Why is that? Is there anything I can do to improve these rates?

The communication is one way only, the transmitter is connected to the ATMega328 UART and the receiver is connected to the PC via USB (FTDI).

No, it isn't. The XBees re-send missed packets. The only way that that can happen is if the receiver acknowledges receipt of a packet, and that requires two way communication.

There are two baud rates involved. The baud rate that the Arduino or PC reads/writes serial data, and the baud rate that the XBees read/transmit/write serial data.

You've only told us one baud rate, and it isn't clear which one that is.

Are they series 1 XBees, or series 2.5?

The communication is one way only, the transmitter is connected to the ATMega328 UART and the receiver is connected to the PC via USB (FTDI).

No, it isn't. The XBees re-send missed packets. The only way that that can happen is if the receiver acknowledges receipt of a packet, and that requires two way communication.

What I meant is that I only use one way, I know that the system is full-duplex.

There are two baud rates involved. The baud rate that the Arduino or PC reads/writes serial data, and the baud rate that the XBees read/transmit/write serial data.

You've only told us one baud rate, and it isn't clear which one that is.

The 4 elements: PC, 2 XBee's and the Arduino are configured to the same baud rate.

Are they series 1 XBees, or series 2.5?

They are XB24-B Series 2

You'd get better throughput if you bumped the XBee baud rate to 57600.

You'd get better throughput if you bumped the XBee baud rate to 57600.

For higher baud rates (115200) I get even worse packet drop rates:

Wired connection (no XBee) : 94200 bps
using XBee XB24-B ZNet 2.5 : 27900 bps

There must be something in the area where your XBees are that is causing interference. I never see that high a dropped packet rate. What kind of antennas do your XBees have? What environment are they operating in? What distance?