Upstream:
Checking out a local branch from a remote-tracking branch automatically creates a branch which is known as a “tracking branch” (and the branch it tracks is called an “upstream branch”).
Downstream:
In terms of source control, when you copy (clone, checkout, etc) from a repository. Information flowed is "downstream" to you.
Sometimes you'll read about package or release managers talking about submitting changes to "upstream". That usually means they had to adjust the sources so they could create a package for their system. They don't want to keep making those changes, so if they send them "upstream" to the source, they shouldn't have to deal with the same issue in the next release.