Why does Peripheral show MTU of 498 while iOS Controller shows a MTU of 495?

I am sending data from iOS to a nRF5340DK. I have some code showing the TX/RX MTU Size:

void mtu_updated(struct bt_conn *conn, uint16_t tx, uint16_t rx)
{
    mtu_rx = rx;
    mtu_tx = tx;
    LOG_DGB("Updated MTU: TX: %d RX: %d bytes", mtu_tx, mtu_rx);
}
Which shows:
Updated MTU: TX: 527 RX: 498 bytes
But on the iOS/Controller side I have code:
        let mtu = maximumWriteValueLength(for: .withResponse)
        print("mtu: \(mtu)")
Which shows:  mtu: 495
I also wanted to confirm the write from the controller is the RX for the peripheral, right?
Related