code: func (f *lightFetcher) nextRequest() (*distReq, uint64, bool) {
  	var (
  		bestHash    common.Hash
  		bestAmount  uint64
  		bestTd      *big.Int
  		bestSyncing bool
  	)
  	bestHash, bestAmount, bestTd, bestSyncing = f.findBestRequest()
  
  	if bestTd == f.maxConfirmedTd {
  		return nil, 0, false
  	}
  
  	var rq *distReq
  	reqID := genReqID()
  	if bestSyncing {
  		rq = f.newFetcherDistReqForSync(bestHash)
  	} else {
  		rq = f.newFetcherDistReq(bestHash, reqID, bestAmount)
  	}
  	return rq, reqID, bestSyncing
  }
docs: // nextRequest selects the peer and announced head to be requested next, amount
  // to be downloaded starting from the head backwards is also returned