Kermit Xmodem Xmodem-1K Ymodem Ymodem-G Ymodem-1K Zmodem
来源:互联网 发布:mac最好的音乐播放器 编辑:程序博客网 时间:2024/06/06 19:40
http://www.crifan.com/order_kermit_xmodem_xmodem-1k_ymodem_ymodem-g_ymodem-1k_zmodem/
在串口中传输文件,所用到的协议,常常有Kermit,Xmodem,Ymodem,Zmodem等,对这些协议,单独看名字,就很容易混淆,搞不懂都是啥意思。所以,写此文,总结各自的特点,解释他们之间的区别和联系。
【常见的RS232串口中所用到的传输协议之间的区别和联系】
此处主要讨论RS232即串口应用中,用来传输数据或文件的协议,主要有这些:
Kermit,Xmodem,Xmodem-1K,Ymodem,Ymodem-G,Ymodem-1K,Zmodem
协议名称
相同点
各自特性
说明
对应软件或命令
Kermit
都是常见的文件传输协议,主要应用于RS232串口应用中
计算机系统中的文件传输和管理协议。
特点:
(1)文本文件和二进制文件传输
(2)全双工,半双工(8 -bit),7-bit的串行连接;
(3)协议对底层介质不做限制,跨平台性很好。
(4)已在N多平台中实现了此协议,即用途相当地广泛。
Kermit名字的来源是来自Kermit the Frog from The Muppets。
(1)Uboot中的loadb;
XYZModem
Xmodem
Xmodem
一个简单的文件传输协议。将文件拆分成很多个固定大小的数据包,数据包大小是128字节,然后以一个数据包,一个数据包的形式发送数据。中间会带有一些额外信息,用于握手协议等方面,以保证得知接收方正确接收了数据包。
要点:
(1)将文件拆分,以固定大小的数据包发送。
(2)数据包大小Packet size=128Byte
(1)Xmodem最开始是在早期的BBS系统中很流行,因为其协议足够简单,很容易实现。
(2)由于效率太低,导致其他很多人在此基础上去对其扩展,以提高性能。
(3)Chuck Forsberg收集了众多的扩展功能,以此形成Ymodem,但是由于没有很成功的实现,导致实际应用产生各种变体。
但是其后来设计了Zmodem,由于效果太好,导致完全取代了之前的各种Xmodem的变体,包括Ymodem。
(1)PC Linux中的rx/sx;
(2)嵌入式Linux中lrzsz;
Xmodem-1K
即Ymodem-1K,详情参见Ymode-1K
Ymodem
Ymodem
在Xmodem(和Modem7)的基础上开发出来的,本身协议和Xmodem是一样的,只是在文件传输开始之前,多加了个Block0,用于传输文件名,文件大小,时间戳等信息。
本来协议设计者 Chuck Forsberg都设计了好多可选的特性,以便于此协议可以用到多种环境和平台中,然后再换个协议名称的。但是实际上实现了Ymodem的应用中,都只是支持了1KB的包大小和CRC模式,除此之外的其他一些特性,都没实现,所以后来就还是沿用了旧的Ymodem这一叫法。同时,也导致了现存的很多Ymodem互相不是很兼容。
(1)uboot中的loady命令;
(2)PC Linux中的rb/sb;
(3)嵌入式Linux中lrzsz;
Ymodem-1K
此协议是在,原先Ymodem的数据包大小是(同Xmodem协议相同的)128byte的基础上,改成了 Packet size=1024byte=1KB。
原先Ymodem协议中,数据包大小为1KB,是个可选的设置项。此Ymodem-1K,作为Ymodem的变体,却没有实现Ymodem其他的一些特性,所以,最好是叫做XModem-1K
Ymodem-G
Ymodem的变体,流数据传输,用于信号很好(error-free)的传输环境中。
其(1)取消了CR(2)取消了,在发送下一个数据包之前,必须等待接受者的ACK
由于取消CRC和ACK等待,此协议理论上,速度会比Zmodem快,但是实际上用此此协议的很少。因为,在16550 UAT出现之前,很明显,此协议有个严重的问题,那就是缓存溢出(buffer overrun),即接受者来不及处理数据,你就接着发下一个数据包了。
Zmodem
从Xmodem发展而来,取代了Ymodem,算是Ymodem的终结者。
核心改进在于,引入了滑动窗口(sliding window)以提高性能。
其支持很多特性:
(1)可重传机制;
(2)发送者可自动开始传输;
(3)扩展的32位的CRC校验;
(4)可传输控制字符;
(1)PC Linux中的rz/sz;
(2)嵌入式Linux中lrzsz;
注释:
1.常见的Ymodem的实际是Ymodem-1K
虽然严格意义上说,Ymodem,数据表示128字节,但是很多具体Ymodem的实现,实际上是把Ymodem认为是1KB的数据包,即这类Ymodem的实现,虽然也叫Ymodem,但是实际上是Ymodem-1K,即:
常见的Ymodem == Ymodem-1K
例子:
(1)Windows XP自带的超级终端(Hyper Terminal)中的Ymodem,就是默认1KB的数据包大小。
(2)而SecureCRT中的Ymodem默认是数据包是128字节,可以设置为128B或1KB。
2. lrzsz是嵌入式中常用的通过串口传输文件的工具,是PC版Linux中的rz/sz的精简版。
【引用】
1. XMODEM
http://en.wikipedia.org/wiki/XMODEM
2. Ymodem
http://en.wikipedia.org/wiki/YMODEM
3. Zmodem
http://en.wikipedia.org/wiki/ZMODEM
4. Kermit
http://en.wikipedia.org/wiki/Kermit_(protocol)
5. rz(1) – Linux man page
http://linux.die.net/man/1/rz
6. lrzsz: free x/y/zmodem implementation
http://ohse.de/uwe/software/lrzsz.html
- 【整理】Kermit Xmodem Xmodem-1K Ymodem Ymodem-G Ymodem-1K Zmodem
- Kermit Xmodem Xmodem-1K Ymodem Ymodem-G Ymodem-1K Zmodem
- Kermit Xmodem Xmodem-1K Ymodem Ymodem-G Ymodem-1K Zmodem
- xmodem,ymodem,zmodem,kermit的主要区别
- xmodem,ymodem,zmodem,kermit的主要区别
- xmodem,ymodem,zmodem,kermit的主要区别
- Xmodem Ymodem Zmodem
- xmodem ymodem zmodem协议
- Xmodem、Ymodem、Zmodem
- kermit xmodem ymodem
- KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结【转】
- [嵌入式系统]xmodem,ymodem,zmodem的主要区别
- SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
- SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
- SecureCRT 工具 上传下载数据 与 ASCII、Xmodem、Ymodem 、Zmodem 说明
- windows MAC linux XMODEM YMODEM使用方法
- 1K Xmodem协议介绍
- 1K Xmodem协议介绍
- 详解 QT 布局管理界面 图文并茂
- 《Erlang程序设计(第2版)》
- java中get提交的中文乱码
- 第7条:避免使用终结方法
- mxGraph自定义线条箭头样式
- Kermit Xmodem Xmodem-1K Ymodem Ymodem-G Ymodem-1K Zmodem
- Android boot 流程
- JsSocket,Js+Flex+Java模拟的JsSocket组件使用说明
- C#面向对象设计模式纵横谈 学习笔记4 Builder 生成器(创建型模式)
- json
- 对于刚入门ACM的一些感想。
- 分享才能体现价值
- quick-x笔记(一)配置环境
- Mysql使用大全-从基础到存储过程