Start here. This is the direct spoken answer to practice first.
Why this question matters
A timeout is a duration policy, while cancellation is the cooperative signal used to stop work that is no longer useful. Separating the reason for cancellation matters because a caller disconnect, dependency timeout, and host shutdown require different recovery and telemetry.
A timeout is a policy that says an operation should not run longer than a certain amount of time. Cancellation is a signal that asks work to stop. In .NET, I often implement timeouts by using a CancellationTokenSource with a timeout or by configuring the dependency client directly. A user disconnecting and a dependency timeout are different reasons for stopping work, even if both use cancellation tokens.