Multiple printer configurations each with a different name can connect to the same physical printer. The two configurations might use different filter scripts or a different Ghostscript driver. Specifying, the printer name on the lpr command line is done with the -P option. Additional command line options for lpr are documented in lpr's man page. Lpr's task is to send the file to the print spooler.
Network printers have the file sent by lpr to the remote print server.
When printing to a printer connected to the local machine lpr will pass the file to the local print spooler. Lpd is the Linux print spooler daemon. Normally lpd starts when your machine boots and continues to run waiting to accept a printing request. Lpd can accepts jobs from either the local print client or other computers on the network. Lpd is responsible for holding print jobs until the printer is ready to accept them.