The early 300 bps modems used frequency shift keying (FSK), whereby
sound is generated at one frequency to represent a '0' and a different
frequency to represent a '1'. Standards prescribed what frequencies
to use, with one pair being used in one direction and another pair in
the other. The relevant standards for 300bps are Bell 103 (America)
and V.21 (elsewhere). Despite their common use at 300bps, these modems
could be operated at any speed up to the maximum (and, in fact, usually
a fair bit above that - I think some worked up to 450 bps). When you
changed the input, the frequency being generated changed immediately,
so the modem itself has no fixed baud rate. The signal processing for
these was quite simple and could be implemented in analogue circuitry,
but they were made cheap by having the circuitry made into integrated
circuits (ICs) such as the AM7910 from AMD in the '80s. That chip
implemented a good range of FSK standards up to V.23, which was 1200
bps in one direction and 75 bps in the other.
The next advance was by changing the encoding. Instead of using
different frequencies for 0 and 1, a single frequency was used with
the data encoded as a phase change. The first of these was V.22 which
was a 600 baud (i.e. it sent 600 symbols per second) modem and could
encode either one or two bits per symbol giving 600 bps or 1200 bps. This
was better than V.23 because it gave the same speed in both directions
(still by using a different frequency for each direction). It was possible
to obtain specialist chips that implemented this. Because this type of
modem (as with all faster ones) used a fixed baud rate, it did not allow
encoding of data at any speed up to the top speed - you had to use the
configured speed exactly.
At about this point, digital signal processing became cheap and simple
enough to implement the processing required, so further standards
generally were implemented that way, which also allowed more
complicated encodings. The next advance was using both a phase and
amplitude change to encode data. V.22bis used this to provide 2400 bps
data over 600 baud (i.e. 4 bits at a time were encoded giving 4 * 600
bps).
All modems up to this point used a separate carrier frequency for each
direction. This split the carrying capability of a phone line in half.
The next advance was to use the same frequency in both directions,
with suitable signal processing to subtract out the echo of the
transmitted signal in order to get an accurate received signal.
The V.32 standard used the same carrier in both directions, and
increased the signalling to 2400 baud, giving up to 9600 bps. It also
added an alternative way to encode the 9600 bps. Like earlier
standards, it allowed four bits of data to determine one of 16
phase/amplitude combinations for the carrier, but it also allowed it
to determine one of 32 combinations (only 16 of which were possible
for any given symbol) which traded more processing for greater
resistance to errors.
Development proceeded to produce V.34, which was a fairly obvious
continuation of the same techniques, using a slightly higher baud rate
(3200) and more phase/amplitude possibilities to give up to 33600 bps.
However at this point development hit a limit. The phone network had
once been analogue - basically just a pair or wires, which might have
allowed ever faster data transfer using higher carrier frequencies or
more finely divided symbol encodings, but analogue is expensive.
Things change their characteristics through temperature, age, and other
factors, so the network had been made digital. This meant that the
signal was sampled 8000 times per second into one of 256 possible
values, and this data was sent across the network to be reconstituted
at the other side. This is a data rate of 64000 bps (56000 bps in
America because one bit per symbol was stolen for signalling). However,
it didn't allow a modem to use the full speed because even if you can
generate exactly the 256 different levels, you cannot guarantee to
synchronise the generation to the sampling, and the equipment (which
was, of course, already installed in vast numbers of telephone
exchanges) might not even be accurate enough to reliably sample all of
the possible values. Consequently, V.34 is as fast as you can go.
However, there is a further trick that can be used. If we replace the
modem at one end with something which handles the data directly in
digital form, then the signal from the phone is still limited to about
32Kbps, but the data in the opposite direction can generate all 256
symbols reliably (128 in America). The modem can have a more sensitive
detector and signal processing to analyse the incoming signal,
allowing it to decode a signal which encoded up to 56000 bps.
The 56K modem was a strange anomaly - it only worked because one end
of the call was purely digital. An obvious improvement would be to
make both end digital - then they could use the underlying 64000 bps
connection. Indeed, this was possible with ISDN - where Basic Rate
gave you two such channels. However, phone companies made this
excessively expensive, which meant that it was still considerably
cheaper having an analogue phone line and a modem.
At that point modem development had hit a hard limit - further
advances would require changes to the equipment at the telephone
exchanges, which is where ADSL started - by making the last hop from
exchange to customer encode data completely differently than data
moving inside the phone network, it was possible to increase the speed
much more.