Should I set up my CUPS Printing to use IPP, LPD or URL?

81,906

Solution 1

LPD is an old standard, IPP is newer.

Ubuntu uses the Common UNIX Printing System ("CUPS") to handle printing. CUPS uses the Internet Printing Protocol ("IPP") as the basis for managing print jobs and queues. Other protocols are also supported (LPD, SMB, AppSocket a.k.a. JetDirect), some with reduced functionality.

LPD/LPR is still commonly used and works quite well but it doesn't provide much control for users on the printer settings per print job.

Both the LPD and JetDirect/AppSocket protocols can be used over the Internet today, however neither of these protocols provides authentication services, access control, and all of the document management and formatting (including printer-specific commands) must be handled by the machine sending the document.

IPP is preferred as it uses bidirectional communication which gives you more feedback and control.

Some printers may not support IPP.

Solution 2

@KodduX answered the question already quite well (and I upvoted it). But here are some additional details...

The main advantage of IPP over JetDirect/AppSocket are these:

  • AppSocket is a "fire and forget" protocol. IPP(S) can give a very detailed backchannel info about the current state of job processing (which page is currently printed), and more (like query about past, completed or cancelled jobs).

  • AppSocket is a very simple protocol, so everybody could reverse engineer it after HP introduced it (quite long ago) and even though it never was an official standard; it's also quite reliable and robust (with all this empty set of 'features' it supports) -- which is why it was widely used and supported by virtually every network printer out there.

  • IPP is standardized by the ISTO Printer Working Group (PWG), which is a representation of practically every single printer manufacturer around the world. HP themselves even have embraced IPP quite closely, having more than 350 of their newest printer models self-certified to be consistent with the new 'IPP Everywhere' Standard.

  • With IPP(S) you have much better options related to security: authentication/authorization, encryption of transferred data, access control, etc.

  • With IPP you have a specified set of names and values for print job options. Duplex printing is either one of 'sides=two-sided-long-edge' or '...=two-sided-short-edge', whereas before, you could have up to ten or more ways to specify a duplex printout (because every vendor was free to use his own naming scheme). The same holds true for many other print parameters.

  • IPP(S) allow you query an IPP-enabled printer (and more than 90% of devices sold in the last 10 years can talk IPP -- because AirPrint can only work because of it; and more than half of these can directly consume PDF too) about its specific capabilities: Can it do color? Which paper sizes does it support? Does it do duplex prints? Can it staple, punch, fold? Which IPP versions does it support? Which Page Description Language (PDL -- PostScript, PDF, PCL, JPEG, etc) can I send to it? Etc.pp. ...

  • With the latest evolution of the IPP Standard, aptly called 'IPP Everywhere', finally driverless printing starts to work. CUPS can do it! Whenever it encounters an IPP Everywhere printer, it does not need any driver and/or device specific PPD prepared or pre-installed by the administrator any longer: it knows it can send one of the standard page description formats (either of JPEG, PWG-Raster, URF-Raster or PDF which don't require a proprietary driver to generate), it can query the device about its specific capabilities and it will auto-create a PPD reflecting these capabilities so even non-IPP-enabled applications can still print the traditional way (these 'legacy' apps don't talk IPP yet and are used to look for PPDs -- apps like LibreOffice or Firefox or what-not do).

IPP is the future, and the future is already here. (AppSocket is the past, but it is not yet completely gone. Most IPP printers still talk AppSocket too....)


In the specific case of your printer, though: some vendors/models have buggy IPP implementations, and they may not work well, while AppSocket printing to the same model may work flawlessly. Just test it with IPP, and keep using it if it works fine. If not, revert to AppSocket.

Share:
81,906

Related videos on Youtube

virtualxtc
Author by

virtualxtc

Biomolecular / Automation Engineer with a strong interest in home automation and DIY repair.

Updated on September 18, 2022

Comments

  • virtualxtc
    virtualxtc almost 2 years

    When I got to add a network printer, I'm always confronted with the same dilemma:

    Do I set up the printer via IPP, LPD, or using it's IP address (AppSocket/Jetdirect?) and why?

    What are the advantages and disadvantages of each?

    How is IPP different from the IP address option? If I chose IPP will that prevent me from the need to re-add the printer if the the IP address changes?


    There's a similar question here, but the answers refer to a specific model / situation: What's the difference between the various printer connections?


    Here's a screen shot of the IP style configuration from the Kubuntu set-up wizard: enter image description here

  • Aquarius Power
    Aquarius Power over 9 years
    ipp worked great for ml2165w! a huge list of options (what is good but..) without explanation, this solved it, thx!
  • Elijah Lynn
    Elijah Lynn about 6 years
    Could you update your answer with some information on ipps in addition to ipp? I see both options when setting up a printer. I am guessing it just means secure.
  • Elijah Lynn
    Elijah Lynn about 6 years
    FYI, I have an Epson ET-2550 (ecotank) and I found my IPP URL in my Epson printer settings by visiting the IP address in a browser, then clicking advanced settings from the drop down on the top right, then Service > Protocol, scrolled down and found 192.168.86.34:631/ipp/print.
  • jarno
    jarno almost 5 years
    Then how would you compare LPD and JetDirect/AppSocket?
  • Kurt Pfeifle
    Kurt Pfeifle almost 5 years
    @jarno: JetDirect is HP's marketing label for AppSocket. AppSocket is just a "stupid" data transfer protocol with no bi-di communication taking place. It does not support any authentication. It just needs an open port listening for connections at the receiver side (HP JetDirect typically uses port 9100 for this). You could emulate AppSocket by just running netcat to send the data to the target.
  • jarno
    jarno almost 5 years
    Ok, but what about LPD?
  • Kurt Pfeifle
    Kurt Pfeifle almost 5 years
    @jarno: Please don't abuse comments to ask additional questions. Ask your own. Before you do, make sure you read the LPR RFC from 30 years ago...
  • jarno
    jarno almost 5 years
    The original question is about all three services. IPP is not available for all printers, so I was wondering which of the other two to choose. Actually in my system I got the IPP option available after installing closed source driver, so I picked that.
  • Kurt Pfeifle
    Kurt Pfeifle almost 5 years
    @jarno: Look, LPR is loooong dead. For reasons! And Koddux named them: both LPR and AppSocket do "not provide authentication services, access control, and all of the document management" and "formatting (including printer-specific commands) must be handled by the machine sending the document." There's nothing more to say. Also, more than 99% of network connected printers which appeared on the market in the last ten years have IPP support.
  • Kurt Pfeifle
    Kurt Pfeifle almost 5 years
    Also, @jarno -- I'm wondering: the original question received a quite general, but also correct answer two hours after being asked and meanwhile received 45 upvotes. My own answer, added almost 5 years after the question was asked, concentrated on the functionality of IPP, explained them in quite some detail, received 5 upvotes -- but you did not deem it worth to upvote it yourself and you still think I owe you more details about the other aspects of the first answer?!? Strange reasoning from someone who is using this very website since more than 3 years and not being a noobie, I must say.
  • jarno
    jarno almost 5 years
    If IPP is not available for some printer, is there any difference whether you choose LPD or JetDirect/AppSocket?
  • jarno
    jarno almost 5 years
    So you think I owe you an upvote even if you did not answer my question? Your answer does not help people that have to choose between LPD and JetDirect/AppSocket. You might get more upvotes, if you include information about LPD in your answer.
  • Kurt Pfeifle
    Kurt Pfeifle almost 5 years
    @jarno: My answer here seems to have helped 5 people at least. It even made you decide for IPP, it seems. My other answers on this site helped a lot of people. I'm not interested to add any more details about LPD than are already here on this very URL. You don't owe me anything. Thanks.