联机通讯中常用的错误检查协议

Author: 马昱 Date: 1997-01-01

#2  1.XMODEM文件传送协议
  Xmodem文件传送协议是最常用的错误检查协议之一,通讯时Xmodem一块一块的传送文件,每一块128字节,并为每一块添加一个额外位(检验和位),接收系统据此算出此块是否被正确传送,如果检验和不一致,则接收系统发出一个NAK字符,请求发送系统重新发送,否则接收系统发出一个ACK字符,请求发送系统发送下一块,直至文件发送完成或被终止,Xmodem只能以8位字符格式传送文件,若用Xmodem与7位系统进行通讯,在文件传送过程中就可能产生位丢失,甚至造成系统死锁,如果一个硬件错误、检查协议或者流控制仍在起作用,则某些Xmodem字符就可能被当作控制字符,产生意外的结果。
  Xmodem还有两种变形:Xmodem CRC和WXmodem
  Xmodem CRC修改了Xmodem检验错误方式,采和CRC(循环冗余校验)进行错误检查,给每一块添加了第二个检验和位,从而提高了数据传输的可靠性。
  WXmodem是窗口化的Xmodem,它的传送方式基本上与Xmodem相同,只是在传送两块之间不等待ACK或者NAK字符,在发送端收到ACK或NAK字符时,一般都已发送了1-4块,被发送的数据块和其后最先收到的ACK或NAK之间的差异称为窗口,据此,发送系统就会知道哪一块需要重新发送。
#2  2.YMODEM文件传送协议
  Ymodem工作方式与Xmodem工作方式十分类似,只是Ymodem发送的数据块是1024字符,并且在每一块末尾处增加了两个检验和位。该错误检查协议主要适用于大规模文件的传送。由于其传送的每个数据块比较大,所以采用Ymodem传输速度较快,但在电话线路噪声较多时,Ymodem传送出错的机率就会增加,相应数据块就需要多次传送。
#2  3.Zmodem文件传送协议
  Zmodem的工作方式类似于WXmodem,无需等待ACK或NAK字符就可发送数据,其传输的数据块大小为512字符,另外,由于Zmodem没有利用数据缓冲技术,所以,采用Zmodem协议时每发送或接收一次都要停下来存取磁盘。
#2  4.文件传送协议
  Kermit在检验和技术错误检查方面类似Xmodem,不同的是Kermit能够按照7位数据方式进行文件传送,在必要时Kermit会删去第8位并单独发送该位,从而达到将文件中8位字符转换成7位字符的目的。Kermit还可将控制字符转换成其它更易安全传送的字符。除此以外,Kermit还有以下特点:
  ①它可根据远程系统及传输条件的变化,改变每次传送数据包(对应其它协议中的块)的大小,并可以在电话线路噪声中断时重新同步传送;
  ②可以利用通配符传送。例如:要传送所有后缀为TXT的文件时,可以键入*.TXT;
  ③Kermit对于某些种类文件中的重复性字符只发送一次,从而节省了时间,这要求发送端和接收端都要采用Kermit协议,以便在接收端进行数据还原操作。
  除以上几种协议外, 还有其他的协议。如:私有协议、软件协议等。但在实际应用中采用最多的还是Xmodem和Kermit协议,用户在选择通讯软件时最好选择能同时运行多种协议的通讯软件包。