VC++とWinSock2.0で通信プログラムを作ったんだけど

PC_A --- モデム --- インターネッツ --- モデム --- PC_B
な構成だと普通にSENDで期待通りにデータが到達するのに

PC_A --- モデム --- インターネッツ --- モデム --- ブロードバンドルータ --- PC_B
という構成にすると
PC_Aがリスン状態でPC_BがPC_Aに接続することはできるのに
どちらからSENDしても相手にデータが到達しないっていう
ブロードバンドルータ的にはDMZに登録してない限り外部からのデータは受信しないと聞いているけど
それならせめて送信はできてもいいと思うんだけどNAT的にデータが到達しないのが正しい挙動なのでしょうか?