code: func (f *lightFetcher) findBestRequest() (bestHash common.Hash, bestAmount uint64, bestTd *big.Int, bestSyncing bool) {
  	bestTd = f.maxConfirmedTd
  	bestSyncing = false
  
  	for p, fp := range f.peers {
  		for hash, n := range fp.nodeByHash {
  			if f.checkKnownNode(p, n) || n.requested {
  				continue
  			}
  
  			//if ulc mode is disabled, isTrustedHash returns true
  			amount := f.requestAmount(p, n)
  			if (bestTd == nil || n.td.Cmp(bestTd) > 0 || amount < bestAmount) && (f.isTrustedHash(hash) || f.maxConfirmedTd.Int64() == 0) {
  				bestHash = hash
  				bestTd = n.td
  				bestAmount = amount
  				bestSyncing = fp.bestConfirmed == nil || fp.root == nil || !f.checkKnownNode(p, fp.root)
  			}
  		}
  	}
  	return
  }
docs: // findBestRequest finds the best head to request that has been announced by but not yet requested from a known peer.
  // It also returns the announced Td (which should be verified after fetching the head),
  // the necessary amount to request and whether a downloader sync is necessary instead of a normal header request.