打印机连接技术概述(LPR&RAW&AppleTalk)
本文地址:http://tongxinmao.com/Article/Detail/id/445
简介
网络打印连接在两个方面对Microsoft Windows打印服务器的性能和可扩展性产生重大影响。首先,了解可用于将客户工作站连接到打印服务器的选择很重要。此外,用于将服务器上的作业发送到实际打印设备的打印机端口类型非常关键。
客户端-服务器连接
Windows 客户端通常通过远程过程调用(RPC)或SMB服务来连接到打印服务器。RPC连接是首选连接类型,因为其支持增强的即点即打(Point-and- Print)特性。SMB连接主要和Windows 98和更早的系统相关。通过创建本地打印机端口,再将其重定向到Windows打印服务器上的打印机共享,从而在基于Microsoft Windows的客户端上建立打印机连接,这也可以实现。HTTP提供了另一种从客户端连接到服务器的可用连接类型。Windows 2000和Windows Server 2003实施了Internet打印协议(Internet Printing Protocol,IPP)标准第1版。这个协议允许客户端查看打印机及其状态,并连接到共享的打印机,同时使用HTTP打印提供者来提交作业。
打印机端口选择
Microsoft Windows Server 2003提供了对以下网络端口类型的内置支持:
• | 标准 TCP/IP 端口监视器 |
• | LPR 打印监视器 |
• | AppleTalk 打印监视器 |
• | HTTP 打印 监视器 |
注意:Hewlett-Packard 打印机端口在 Windows 2003 中不可用
Windows Server 2003 还支持以下本地打印机端口:
• | USB 1.0 和 2.0 |
• | 并行端口(IEEE 1284) |
• | IrDA(红外端口) |
• | IEEE 1394 |
• | 串行端口 |
• | SCSI 打印端口 |
Windows 2000 也添加了 Internet 打印支持。虽然打印端口涉及到客户端和服务器端部分,但是我们将基于综合情况来讨论这个主题,而不是在本地打印端口和网络打印端口之间作对比。
此外,有些打印机制造商选择提供他们自己的本地或网络打印机端口类型。
网络打印端口
标准 TCP/IP 端口监视器
对 于连接到网络的打印设备,标准的 TCP/IP 端口监视器就是最佳选择。标准端口监视器增强了LPR(line printer remote,远程行式打印机),LPR 在过去几年已作为网络打印的真正标准而被广泛采用。标准端口监视器更加快速,更具可扩展性,并且是双向的1。与此相反,LPR 在所有这些方面都受到限制。虽然Windows NT 4和后续版本提供了注册表修改来帮助扩展LPR打印2功能,但是这些更改无法和使用标准端口监视器的优点相比拟。
标准端口监视器使用 TCP/IP 作为传输协议,这使得其成为Windows Server 2003的首选端口监视器。标准端口监视器还使用简单网络管理协议(SNMP)来配置和监视打印机状态。
标准端口监视器使用RAW或LPR打印协议来向打印机发送文档。总而言之,这些协议支持当前大多数TCP/IP打印机。请不要将这些打印协议与诸如TCP/IP或数据链路协议(DLC)之类的传输协议混为一谈。
RAW 协议是大多数打印设备的默认协议。为了发送 RAW 格式的作业,打印服务器将打开一个针对打印机网络接口的 TCP 流。对于许多设备来说,这个接口将是端口 9100。在创建 TCP/IP端口之后,Windows将按照RFC 1759(Printer MIB),使用SNMP来查询设备的对象标识符(Object Identifier,OID)。如果设备返回了一个值,则解析系统文件tcpmon.ini来寻找匹配项。如果打印机制造商提供了特定设备的特殊配置信 息,则这些配置信息已经连同配置设置一起创建就绪。例如,有些外部打印服务器接口支持多台打印机(例如,具有3个并行端口连接的Hewlett Packard JetDirect EX)。制造商可以使用不同的端口来指明应该将某项作业提交给哪台打印机(例如,将作业9102提交给端口1,将作业9103提交给端口2等等)。这一功 能对于需要使用特殊端口名称的打印服务器接口有所裨益,比如:某些IBM网络打印机上的PASS端口。
您可以配置标准端口监视器来使其更紧密地符合LPR标准(RFC 1179)。尤其,您可以使用服务器属性的端口选项卡中的配置端口按钮来启用字节计数。如果行式打印机监控程序(LPD)要求发送精确的字节计数(这符合 RFC),这个设置可能有所帮助。
默认情况下,标准端口监视器在两个方面和 LPR 标准不一致:
• | 首先,标准端口监视器不符合 RFC 1179 对源 TCP 端口应该位于端口 721 和端口 731 之间的要求。标准端口监视器使用未保留的通用端口池中的端口(端口1024及以上)。 |
• | 其 次,LPR 标准规定打印作业必须包括关于端口监视器所发送的作业大小的信息。发送带有作业大小信息的打印作业需要端口监视器对该作业执行假脱机操作两次,一次确定作 业大小,另一次将作业发送给打印守护进程。仅假脱机一次作业可以改进打印性能,因此标准端口监视器直接将作业发送给假脱机程序,而不确定实际的作业大小, 并声称该作业具有默认的大小,而不管该作业的实际大小如何。 |
下表对标准 TCP/IP 端口监视器和 LPR 端口监视器作了比较。
LPR(符合RFC 1179) | 标准 TCP/IP 端口监视器 |
仅限于 721731 源端口 | 从临时端口(默认为9100)开始的源端口 |
每个端口的超时时间为 4 分钟3 | 没有源端口超时 |
单向的单个错误状态报告 | 使用SNMP来提供丰富的状态和错误报告 |
控制文件要求两次假脱机以进行精确的字节计数 | 默认启用单次文件假脱机4。(通过“端口属性”来配置) |
针对目标端口515的打印 | 在LPR模式下针对目标端口515的打印 |
LPR
虽然 Windows Server 2003 默认对网络打印机使用标准TCP/IP端口监视器,但是为了实现与早期系统和符合RFC的LPR/LPD客户端和设备的互操作性,其仍然支持 LPR/LPD 打印。
LPR实用程序允许一台计算机上的应用程序对远程计算机上的后台打印程序进行打印。接收组件称为行式打印机监控程序(LPD)。LPR/LPD组合针对UNIX计算机而开发,但是被广泛用于其他众多操作系统。两个实用程序都包括在UNIX的“打印服务”中。
默认数据类型
UNIX 打印服务在将文档发送到后台打印程序时设置打印数据类型。这个数据类型由包括在LPR客户端的打印作业中的控制命令得出。可能有必要在客户端改变默认数据类型来避免将实际上属于RAW格式的PCL或PostScript打印作业当作TEXT(文本)格式来处理。
如果控制命令是f或p,则数据类型是 TEXT,并且后台打印程序将编辑文档文件以便正确地进行打印。如果命令是l,则数据类型是RAW,后台打印程序不会对文档进行编辑。如果命令是o,则文档已经格式化为PostScript代码,并且已指定为RAW数据类型。
有些UNIX系统一般默认发送f命令,从而出现以下症状:
• | 输出数据包括PCL或PostScript代码。 |
• | 打印出错误的扩展字符。 |
• | 使用打印机的默认字体。 |
• | 在结尾打印出多余页面。 |
您可以使用一个注册表项来迫使 Windows 2000 将数据当作 RAW 格式来处理。有关更多信息,请参见以下知识库文章:
• | “150930:LPD 服务器插件和打印控制代码” |
• | “168457:配置独立打印机,使其能够正确处理LPR作业” |
• | “243729:防止后台打印程序执行从CR或LF到CR/LF的字符转换” |
LPR 必须在控制文件中包括精确的字节计数,但是又不能从本地打印提供程序中获得这个计数。在LPRMON从本地打印提供程序接收到一个文档之后,将再次把该文 档假脱机为System32子文件夹中的一个临时文件,弄清文件的大小,然后把文件大小信息发送给LPD打印服务器。标准的TCP/IP 端口监视器不遵守这个RFC要求,而是向LPD发送一个非常大的字节计数来开始打印。在作业完成之后,其将直接关闭连接。这个步骤通过消除临时假脱机文件 的创建来减少时间和I/O。
LPR协议不返回详细的错误状态报告。如果遇到问题,返回的消息将总显示为ERROR(错误),而 Windows将报告“打印机错误(Printer Error)”。正如上面所讨论的,通过使用SNMP和标准打印机MIB(RFC 1759),标准TCP/IP端口提供了更加详细的错误报告。
目前,几乎所有打印机型号都兼容标准TCP/IP端口监视器。在大多数情况 下,只有在为了实现与要求严格遵守LPR/LPD RFC(1179)的其他计算机系统的互操作性时,才需要UNIX打印服务(LPR/LPD)。有些LPD服务器仅要求RFC中规定的精确字节计数。对于 这些系统,只需使用启用LPR字节计数选项来配置标准TCP/IP端口,即可消除任何错误。为了提高性能和提供状态监视,Microsoft建议尽可能使用标准TCP/IP端口。
AppleTalk
AppleTalk协议可通过选择可选的Windows组件Macintosh打印服务器加以安装。“Macintosh打印服务器”则通过在控制面板中选择添加/删除程序、添加/删除Windows组件、其它的网络文件和打印服务,然后单击详细信息,进行安装。这个选项允许服务器接收来自Macintosh客户端的作业,并针对使用AppleTalk协议的设备进行打印。
在创建AppleTalk打印机端口时,系统会提示您捕捉端 口。如果您捕获了AppleTalk打印设备,后者将仅接收来自这台打印服务器的打印作业。这个选项对于提供更紧密的设备管理和控制可能有所帮助。为了实 现更高级别的互操作性,或者在针对该设备进行打印的多台服务器或客户端混合环境中,您不应该捕捉该端口,以便支持基于作业的连接。
此外,在安装“Macintosh打印服务时”,Macintosh客户端可以连接到Windows打印服务器上的打印机共享。这些打印机可以从本地连接到服务器,或者通过任何支持网络端口来连接,比如:标准端口监视器、LPR等等。
本地打印机端口
USB打印
Windows Server 2003支持对通用串行总线(USB)打印机进行打印。USB由一个外部总线体系结构和一个通信协议组成,前者用于将支持USB的外围设备连接到主计算机,后者用于支持在主机系统和支持USB的外设之间进行串行数据传输。
并行端口
并 行端口打印支持在Windows XP和Windows Server 2003版本中得到了增强。传统上,并行端口设备没有因为几年前“即插即用”特性的引入而得到好处。Windows XP和Windows Server 2003对并行端口执行定期轮询,从而提供和“即插即用”类似但并不完全相同的体验。USB和IEEE1394完全支持“即插即用”功能,应该在任何打印 性能和系统性能处于重要地位的场合加以运用。并行打印比较慢,并且比其它这些打印选择更消耗CPU开销。
IrDA(红外端口)
红外数据传输标准(IrDA)是一种在计算机之间使用红外传输而无需电缆连接来进行信息交换的机制。IrDA可以在支持IrDA的任何两个设备(比如计算机和打印机)之间进行。Windows 2003支持使用IrDA的打印。
IrDA是一种基于TCP/IP和WinSock API(应用程序编程接口)的点对点协议。通常,IrDA打印机支持即插即用,并且如果相应的驱动程序在工作站上可用,则会自动安装该驱动程序。此外,您还可以选择可用端口下面的IrDA端口来使用“添加打印机向导”。
连接速度:
技术 | 变化形式 | 速度 |
并行(1284) | (Centronics) | 250 Kbps |
ECP/EPP | 35 Mbps | |
IrDA | 4 Mbps | |
火线(FireWire)(1394) | (最多63个设备) | 400 Mbps |
USB | 1.0 | 12 Mbps |
2.0 | 480 Mbps | |
蓝牙(Bluetooth) | 23 Mbps |
IEEE 1394
Windows Server 2003支持IEEE 1394总线,IEEE 1394总线设计用于高带宽设备,比如数码摄像机、数码相机、数字VCR和存储设备。IEEE 1394是一种串行协议,支持从100到400 Mbps的速度(取决于具体实施)。其提供了支持即插即用的高速总线,消除了让外设提供自己的电源的需要,并且提供了同步数据传输支持。
您最多可以将63个设备连接到一条IEEE 1394总线,并且可以互连多达1,023条总线来形成一个具有64,000多个设备的超大网络。每个设备最多能够拥有可通过总线寻址的256 TB的内存。内部机制确保了所有设备对总线拥有同等的访问权限。
由于IEEE 1394能够处理非常高的数据传输速率,对于扫描或打印大规模的高分辨率数据很理想。
Internet打印协议(IPP)
Windows 2000引入了对Internet打印协议(IPP)1.0规范的支持。Windows Server 2003延续了对1.0标准的支持。IPP包含两个主要组件:
• | 基于Web的打印机管理 |
• | Internet打印 |
基于Web的打印机管理
基 于Web的打印机管理使用起来非常简单。唯一的前提是要在打印服务器上安装和运行Internet Information Server(IIS)。IIS默认包含在Windows 2000 Server版本中,并且可以在Windows 2000 Professional上作为一个可选组件进行安装。在Windows Server 2003上,基于Web的打印机管理可以使用“IIS锁定”向导并选择启用Active Server Pages和启用Internet打印复选框来配置。在一台打印机被创建和共享时,其可以通过Internet浏览器进行管理。要访问基于Web的特性,可以使用以下URL:
http://printserver/printers
您要用自己的打印服务器计算机的名称来替换其中的printserver。用户必须拥有足够的权限才能暂停打印机,清除作业等等。如今所用的大多数Windows客户端都具有对IPP的内部支持,或者能够从Microsoft Web站点下载IPP支持(http://www.microsoft.com)。当客户端安装了IPP支持时,就能够在Web浏览器中查看并连接到打印机。Microsoft强烈推荐使用这项技术,尤其对于那些希望部署用于查找和连接打印机的基于Web的解决方案的公司。
注意:Windows XP默认提供了对本地托管的打印机的基于Web的管理支持。今后,这个选项可能会被默认禁用(在Windows Server 2003中就是如此),并且可通过类似于Windows Server 2003系列版本上使用的“IIS锁定向导”的过程来启用。
Internet打印
当用户通过基于Web的打印机管理来连接到一台打印机时,将会发生以下两件事情之一:Windows将创建一个使用HTTP端口的IPP打印机连接,或者创建一个RPC真连接(true-connect)打印机连接。
通过Web浏览器建立HTTP打印机连接
如 果打印服务器的客户端Internet Explorer安全设置被设置为“中”或“高”,Windows将创建一个使用HTTP端口的IPP打印机连接。由于这项技术要求安装一个本地打印机队 列(而不像使用RPC的真正的“即点即打”连接),因此客户端必须在本地计算机上拥有增添加载和卸载驱动程序特权的管理员或高级用户权限。(在Windows 2000上,如果客户端仅拥有“高级用户权限”,该连接也有效。)
这 个解决方案仅推荐用于不受信任的特定Internet站点,查看这些站点的浏览器的安全设置必须设置为“中”或更高级别。此类打印非常适合于将页面上某个 位置的数据打印到不共享相同安全和网络基础结构的另一个位置。然而在Windows打印环境中,HTTP打印机连接要比RPC真连接(下面将会描述)受到 更大限制,因为其不支持增强的元文件(EMF)特性。
通过Web浏览器建立RPC打印机连接的首选方法
如果客户端Internet Explorer设置被设置为“中低”或更低,当该客户端在Web浏览器中选择连接时,Windows 将自动创建一个RPC真连接打印机连接。真连接(True-connect)或UNC连接相对于IPP打印机连接具有许多优点,并且应该用于 intranet打印(本地到公司的打印),在这样的环境下,Internet Explorer中的安全设置完全可设置为“中低”或者更低。真连接连接(True-connect connection)通过Windows远程后台打印程序得到支持,Microsofts未来的绝大多数创新都将针对RPC打印机连接,而不是针对 IPP打印机连接。
有关RPC连接的更多信息,请参见位于以下Web地址的“即点即打技术概述”:http://www.microsoft.com/windowsserver2003/technologies/fileandprint/print/default.mspx。
结束语
请使用标准TCP/IP打印机端口,并使用Windows 2000或后续版本的客户端通过TCP/IP上的RPC来连接到打印机。(命名的管道实现)
使用portconv.vbs脚本或Print Migrator 3.0(或后续版本),您可以轻松地将现有的LPR端口转换为标准的TCP/IP端口。
Microsoft 正在通过标准打印机MIB(management information base,管理信息库)来评估用于SNMP的标准TCP/IP端口支持。在未来的版本中,可能会扩展该实施以使其包括更多的状态和错误报告。诸如通用即插 即用(UPnP)之类的新技术和打印机驱动程序增强相结合,将把未来的企业打印环境的设备安装和管理引入一个新时代。
转自:http://hi.baidu.com/tonywhj/blog/item/00b324fa657cf81f6c22eb15.html
上一篇:WIFI绵羊墙
下一篇:PYTHON 控制HID-USB蜂鸣器