To accelerate you need to use energy. At low speeds the amount of energy you have to use to go faster seems to follow a linear relationship - put in a bit more energy and you'll go proportionally faster - but once you start approaching the speed of light the relationship between how much energy you use and how much faster you go trails off and instead your mass increases, your rate of time decreases and your length, in the direction you're traveling in, also decreases.

Although this seems weird, it might help if you separate out the different factors of the situation. These are mass (from the matter comprising the object being accelerated) and distance and time (from velocity), and all of these are actually affected when you apply energy to something to make it move. As I said earlier, at low speeds, nearly all of the energy goes into moving the mass over the distance in the period of time, but as you get faster and faster the energy you put in begins to have more of an effect on the other factors instead i.e. mass, distance and time.

Now as to why there should be an upper speed limit is still one of the unsolved mysteries of the universe but it's been proved satisfactorily enough that as the velocity of something approaches the speed of light we do actually start to see the effects upon mass, distance and time. This has been demonstrated in lots of experiments, from comparing pairs of clocks at different altitudes, where the slight difference in gravitational strength simulates acceleration, to comparing clocks where one is moving and one is stationary. Perhaps the best demonstration though, is in particle accelerators such as the LHC (cough), where unstable particles start living much longer than they would normally do and where more energy is needed to keep them on course than would be the case if their mass didn't increase.

The relationship between an object's velocity and the relativistic effects such as time dilation, foreshortening and mass increase is actually quite simple and follows a circular sin law. It's perhaps easiest to show if we normalise the speed of light to '1' and use Pythagorus, where the hypotenuse represents the speed of light - 1, to get a factor we can multiply the normal rates of time and length by to get the relativistic values.

For example, if our velocity (v) is zero then the factor for our rate of time will be:

SQRT(c^2 - v^2)

= SQRT(1^2 - 0^2)

= SQRT(1)

= 1

So multiplying the normal rate of time by 1 gives us time passing at 100% of it's normal rate. However, if we've got up to half the speed of light, so v = 0.5, we get:

SQRT(1^2 - 0.5^2)

= SQRT(1 - 0.25)

= SQRT(0.75)

= 0.866025404

And now time will only be passing at 86.7025404% of it's normal rate i.e. slower. Relativistic length contraction follows the same rule but for mass increase you need to divide the normal mass by the factor instead of multiplying it, so the mass increase at 0.5 'c' would be 1.154700538 times it's normal mass.

Now if you try to get factors for speeds greater than the speed of light - say 1.5 times 'c' we'd get:

SQRT(1^2 - 1.5^2)

= SQRT(1 - 2.25)

= SQRT(-1.25)

= ERR [

]