After some more digs into the source of notebook's service/kernelmanager/handler/session, I find the relationship are as follows.
1: Session keeps the record and relationship of ipynb and kernel,it will do kernel startup and release and handling web session create.
2. Kernel part looks like only have interact with kernel's four port, that's hb/stdin/iopub ports.
And KernelManage is just a container(interface) which contains these four ports, and notebook do only expect to use these ports to run command(to be more specific shell port for sending cmd and iohub for stdin/stout/steer).