파일 전송하는 방법으로
이더넷 기반 : FTP(File Transfer Protocol), TFTP
시리얼 기반 : XModem, YModem, ZModem, Kermit
Ward Christensen이 개인적으로 사용하고자 1977년에 간단한 프로토콜로 XModem을 만들었다.
1. XModem
XModem은 packet기반으로 각 packet의 data block은 128bytes로 구성되었다.
각 packet마다 다음 번을 보내기 전에 confirmation(ACK/NAK)을 요구한다.
* 1번째 바이트
* 2번째 바이트
PacketNo의 경우는 1부터 각 packet마다 1씩 증가
* 3번째 바이트
255 - PacketNo
* Checksum
data block에서 각 128 byes의 ASCII 값을 더한 것을 256 계수를 취하여 계산된다.
* Communication Rule
- 예상치 못한 PacketNo, checksum의 오류가 감지되면 <ACK>대신 <NAK>를 Receiver가 보냄
- 마지막 packet에 128 characters보다 작게 남았으면 남은 공간에 <SUB>를 채움
- communication 중지는 양쪽 모두 <CAN>
2. XModem-CRC
CRC를 지원하는 오늘날의 XModem
* XModem과의 차이
- packet의 총 길이가 133 byes
- Receiver가 <NAK> 대신에 "C"를 보냄으로 communication을 시작한다.
XModem-CRC의 어려운 부분은 CRC부분으로 모든 CRC 계산은 다항식 계산을 사용한다.
3. XModem-1K
속도 증가에 따라, 1K protocol data block size를 128byes에서부터 1024 byes까지 증가시킴
* XModem-CRC와의 큰 차이점
- 총 packet 길이는 1029 btes.
- 첫 번째 byes는 <ETX>
4. XModem-1KG
CTS/RTS처럼 사용자 환경에서 H/W handshaking이 있다면 이 프로토콜을 사용 가능하다.
packet을 보낸 후에 <ACK>를 기다릴 필요 없어, 현저한 data 전송률을 증가시킨다.
"G"가 전송시작을 의미하며, Hyper TerminalTM프로토콜은 지원하지 않음
* http://www.lima.com.tr/Documents/ENG/XModemEng.PDF
# XModem이란 # XModem-CRC란 # XModem-1K란 #XModem-1KG란
'IT > SW' 카테고리의 다른 글
[strtol, wcstol, _strtol_l, _wcstol_l] strtol 예제 (0) | 2018.07.19 |
---|---|
ntsysv 에서 서비스 시작 (0) | 2018.07.11 |
X-window (x11) 란? (0) | 2018.07.11 |
Frame buffer 란 (0) | 2018.07.11 |
DirectFB + GTK+ (cross compile) (0) | 2018.07.11 |
댓글