Can some one please explain in an easy to understand way the concept of controlling terminal in unix and unix like systems ? Is it related to a session ? If yes, then how ?
There is a process group leader - sort of like the head process - that owns the terminal, /dev/tty. A process group can be one or many processes.
The stty command changes and displays terminal settings. If you are actually going to use UNIX seriously consider finding a copy of Stevens 'Advanced Programming in the UNIX Environment'. Terminals have a lot of heavy baggage from the 1970's. You will spot that right away. Most of those odd settings can be ignored except for special things like UNIX system consoles.
A terminal is a file in the file-system through which (usually) a user interacts with a non-GUI program.
When you run a program from a remote or local shell, it is associated to your terminal, and unless you or it redirect it's input or output, it is read and written from/to that terminal.
When a terminal is closed, programs running in it are signaled so they can exit or detach themselves.
Regarding it's connection to "session": if you are referring to a GUI session, then it has no direct relation to it, apart from the fact that some UNIX and UNIX like systems run the GUI under it's own terminal.