Let K and K' denote two inertial frames, with K' moving along the x-axis of K in the positive direction, at a constant speed v.
Note: vectors are written in boldface, e.g. velocity v, while scalars in plain text, e.g. speed v = |v|.
Let AB be a segment of non-zero length in K, parallel to the x-axis, with xA < xB. Let A' and B' denote the corresponding points in K', marked out at some given time t in K.
In K', let's send a light signal from A' toward B'. It will arrive at B' after some time Δt' > 0. For the corresponding duration in K, Δt > 0 must hold due to causality. (Relative to K', the light signal meets first A' and then B', so it happens in the same order relative to K too.)
Both A' and B' are moving at v relative to K, so when the light signal is emitted, B' is ahead of A' in K. Later the light signal meets B', which means it is traveling in K along a straight line parallel to the x-axis, in the positive direction. The fact that it does catch up with B' implies:
(Theorem) v < c.
As for the speed limit of signals (i.e. not inertial frames), it can be shown that due to causality no signal can travel faster than light.