본문 바로가기
IT/SW

파일 전송 XMODEM 이란

by 낭만테라스 2018. 7. 24.

파일 전송하는 방법으로 

이더넷 기반 : 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

댓글