I suggest you look into getting an IR receiver, such as the PNAA4614 or PNA4612 (there are plenty others such as the Vishay ones, all can be found on Digikey).
These have built-in circuitry to take an IR signal, amplify it and also get rid of some noise. It'll make your life a whole lot easier, and the range can be pretty good depending upon your emitter LEDs.
If you're going this route, when you buy your IR detector play close attention to the "carrier frequency". This will be some standard value like 38kHz or 56.9 kHz.
You will need another 555 timer, to output that certain carrier frequency into one of the inputs to a NAND gate. To do this, you can use the formula provided in the 555 timer datasheet and calculate the R1, R2 and C1 values you will need. Else you can use a microcontroller to continuously output the carrier frequency (less parts required).
The other input will be from your 555 timer generating your 2.5 and 4 kHz pulses.
Connect the output of the NAND gate to the IR LEDs, and now you'll have your LEDs flashing, through the carrier frequency, at 2.5 and 4kHz.
On the other end, you could simply hook the receiver module signal line to a microcontroller and perhaps using the CCP module; figure out the frequency.
With this, pretty much what ever you send on the emitter side, should be the same that is coming out on the detector side (not counting IR noise, etc.)
One thing to remember, the NAND gate will invert the output, so a high signal will result as a low signal to the microcontroller. Easily fixed in software.
This is a good website for infrared tinkering:
http://www.rentron.com/Infrared_Communication.htm
-Omar