code: func (p *FakePeer) RequestHeadersByNumber(number uint64, amount int, skip int, reverse bool) error {
  	var (
  		headers []*types.Header
  		unknown bool
  	)
  	for !unknown && len(headers) < amount {
  		origin := p.hc.GetHeaderByNumber(number)
  		if origin == nil {
  			break
  		}
  		if reverse {
  			if number >= uint64(skip+1) {
  				number -= uint64(skip + 1)
  			} else {
  				unknown = true
  			}
  		} else {
  			number += uint64(skip + 1)
  		}
  		headers = append(headers, origin)
  	}
  	p.dl.DeliverHeaders(p.id, headers)
  	return nil
  }
docs: // RequestHeadersByNumber implements downloader.Peer, returning a batch of headers
  // defined by the origin number and the associated query parameters.