Orthogonal time frequency space (OTFS) modulation is very effective in high Doppler channels by transmitting the information signals in the delay--Doppler domain rather than in the time--frequency domain. Moreover, OTFS provides uniform channel gains across all the transmitted signals thus ensuring the same SNR for all input signals. We present the explicit relation between OTFS transmit and receive signals for the delay--Doppler channel with a limited number of paths with delay and Doppler. In particular, we analyze the effect of fractional Doppler on the received signal and show how it causes inter Doppler interference (IDI). We then propose a low-complexity iterative algorithm based on message passing that effectively detects the information signals by canceling IDI. Furthermore, the message passing algorithm complexity scales linearly and can be applied to large-scale OTFS systems.