Communication-Based Semantics for Recursive Session-Typed Processes