The configuration management community have no universally accepted definition of either Stream or Branch; here are my working definitions of these two terms.
A branch refers to how version histories appear when two versions share a common ancestor.
A stream is a management notion. Streams define work flow, usually within projects. A stream may be supported by zero or more branches. (Zero when no development work is involved in the stream.)
Think of the relationship between branches and streams like this: branches are like workbenches in a workshop, streams are like the schedule of work assigned to each bench.