Why are streams opened 3 times and close 2 times with 1 connection?

Hi libp2p team,
When I used “Notify” to check connection and stream event, the stream was opened 3 times and then was closed 2 times. why ?
Another question is that I use n.Host.Network().Notify(&p2pnet.NotifyBundle … to recieve notification. Should I use connManger instead ? In Basic_host, network.Notify is et to connManger Notify… This is really confusing …

---- below is log —
@@Stream : /ip4/127.0.0.1/tcp/12137- is Opened at 2019-09-23 17:58:42.844892048 +0800 CST m=+3.452052790 streamCount:1
@@Stream : /ip4/127.0.0.1/tcp/12137- is Opened at 2019-09-23 17:58:42.845038599 +0800 CST m=+3.452199316 streamCount:3
@@Stream : /ip4/127.0.0.1/tcp/12137- is Opened at 2019-09-23 17:58:42.845042866 +0800 CST m=+3.452203610 streamCount:3
@@Stream :/ip4/127.0.0.1/tcp/12137-/ipfs/id/1.0.0 is Closed at 2019-09-23 17:58:42.845939624 +0800 CST m=+3.453100339 streamCount:2
/ip4/127.0.0.1/tcp/12137-/ipfs/id/1.0.0 is Closed at 2019-09-23 17:58:42.84615351 +0800 CST m=+3.453314242 streamCount:1