The Real Way of Controlling a Stepper Motor

Working on stepper motors and linear actuators control using the stepper, accelstepper etc library, I came to the point where I was successfully controlling the motors but I did not know how.

How are stepper motors actually controlled?
Do we send a sine wave? if YES then..
How do we control speed?
Is frequency an adequate speed controller?
What about the millisecond duration? What does it do?

and some more

How do we change the direction? Do we send a single character to alter it?
And how does that work?
And if the stepper is running at a high speed? can this really work?

Thanks guys

These links may help
Stepper Motor Basics
Simple Stepper Code