code: func (s *Sniffer) Go() {
  	defer s.dbConn.Close()
  	defer s.conn.Close()
  
  	req := newInitRequest()
  	if err := s.streamFragment(dir(true), s.clRd, s.dbWr, req); err != nil {
  		return
  	}
  
  	rep := newInitReply()
  	if err := s.streamFragment(dir(false), s.dbRd, s.clWr, rep); err != nil {
  		return
  	}
  
  	for {
  		//up stream
  		if err := s.stream(dir(true), s.clRd, s.dbWr); err != nil {
  			return
  		}
  		//down stream
  		if err := s.stream(dir(false), s.dbRd, s.clWr); err != nil {
  			return
  		}
  	}
  }
docs: // Go starts the protocol request and response logging.