파일 전송시 .SFV 이용하기
게시일: 2006/01/08 | 글쓴이: doa | 12275 번 | 프린트 | 메일


Title: Creating .SFV File for Transering file

넷트웍을 통해 파일을 분할해서 전송하다보면 넷트웍의 전송 상태에따라 파일 데이타의 손실이 발생할 수 있다. 사실 이러한 문제점때문에 RAR과 같은 압축 프로그램은 손상된 파일을 복구할 수 있는 기능이 포함되어 있다.

그러나 이러한 복구 기능으로도 복구할 수 없는 경우도 있다. 이 경우 여러개의 파일 중 손상된 파일만 다시 받으면 된다. RAR의 경우 비교적 CRC 검사 기능이 강력하기때문에 비교적 손상된 파일을 정확히 찾아 낸다. 그러나 일부 프로그램은 CRC 검사 기능이 너무 미약하기때문에 엉뚱한 파일에 오류가 있는 것으로 출력하는 경우도 종종있으며 RAR의 CRC 검사 기능으로도 손상된 파일을 정확히 찾을 수 없는 경우도 있다.

이런 일이 발생하면 상당히 난감진다. 모든 파일을 다시 받는 것외에 다른 방법이 없기때문이다. 이러한 일을 미연에 방지하기위해 도입된 기법이 SFV(Simple File Verification)이다.

원리는 아주 간단하다. 먼저 파일을 전송하기전에 전송할 모든 파일의 CRC를 검사하고 그 결과를 .SFV 파일에 저장한다. 다음 예에서 알 수 있듯이 .SFV 파일에는 파일의 유일성을 검증하는 32 비트의 순회 부호 코드(CRC32)주1가 추가되어 있다.

ERD Commander 2005 v5.0 BOOT CD.iso F951A865
SRCD_Source.iso 63A022B2
SuperRCD20a.iso ABD497FF
SuperRCD20a.sfv AE7FA5BE
Techie'zToolkit-v2.iso 911E2796


이렇게 생성한 파일(.SFV)을 넷트웍을 통해 전송할 파일과 함께 전송하면 파일을 다운받은 사람은 이 .SFV 파일을 이용해서 다운 받은 파일의 CRC를 검사하면된다. 만약 CRC 검사에 오류가 있는 경우에는 오류가 발생한 파일만 다시 받으면 되며, 만약 CRC 검사에 오류가 없는 경우라면 압축을 해제해서 사용하면된다.

서로 다른 파일이 동일한 CRC를 가질 가능은 아주 낮다. 그러나 확율적으로 동일한 CRC를 가질 가능성이 있으므로 유닉스 계열에서는 CRC 대신 MD5를 사용한다. .SFV를 검사하는 프로그램은 상당히 많이 있지만 필자가 현재 사용하고 있으며, 기능적인 면에서 가장 나은 프로그램은 FlashSVF이다주2, 주3. FlashSFVFlashFXP라는 아주 우수한 FTP 프로그램을 개발한 iniCom.networks 에서 개발, 공개한 프로그램이다.

이제 마지막으로 FlashSFV를 이용해서 파일의 CRC 정보를 보관하고 있는 .SFV를 생성하고, 이 파일을 이용해서 CRC를 검사하는 방법을 알아보도록 하겠다.

다운로드: FlashSFViniCom.networks의 홈페이지에서 다운 받을 수 있으며, 필요한 경우 다음 링크에서도 다운받을 수 있다.



  1. .SFV 파일의 생성
    1. 다운받은 FlashSVF를 실행한다.
    2. New 버튼을 클릭한다.
    3. CRC를 생성할 파일을 중복해서 선택한다.
    4. 하단의 Generate 버튼을 클릭하고 파일 이름(예: Test.sfv)을 적당히 지정한 후 확인 버튼을 클릭한다.


  2. CRC 검사
    1. FlashSVF를 실행한다.
    2. Open 버튼을 클릭한다.
    3. Select a SFV file 창에서 .SFV 파일을 선택하고 열기 버튼을 클릭한다.
    4. Check 버튼을 클릭한다.
      Unchecked 아직 검사되지 않은 파일
      Missing 누락된 파일
      Bad CRC가 잘못된 파일
      Good CRC가 정상적인 파일


여담: 요즘은 알집을 사용하지 않기때문에 요즘은 알집의 많은 버그들이 수정되었는지 모르겠다. 그러나 황당한 알집에서 언급한 것처럼 알집은 CRC 검사 기능이 너무 미약하기때문에 생 고생을 하는 경우가 종종있었다.

뉴스 그룹에서 필요한 프로그램을 다운 받았다. 그런데 알집으로 압축되어 있어 할 수 없이 수동으로 설치한 알집으로 압축을 해제하자 특정 파일에 CRC 오류가 있다는것이었다.

해당 파일을 다시 다운 받았지만 여전히 동일한 파일에 CRC 오류가 있다는 메시지가 출력되는 것이었다. 몇번을 다시 받아도 동일한 현상이었다. 할 수 없이 모든 파일을 다시 다운 받았지만 CRC 오류가 있는 파일의 번호만 바뀌었을 뿐 마찬가지로 CRC 오류가 발생했다.

결국 현재 받은 파일의 CRC를 검사하고 다시 모든 파일을 받은 후 새로 받은 파일의 CRC를 생성했다. 그리고 이전에 생성한 파일의 CRC와 새로 생성한 파일의 CRC를 비교해서 CRC의 변화가 있는 파일만 다시 받는 방법으로 이문제를 해결했다.

프로그램을 올린 사람 역시 남에게 조금이라도 도움을 주려고 올린 것이다. 그러나 이 사람이 알집이 아니라 다른 프로그램을 사용했다면 이러한 문제는 발생하지 않았을 것이다. 아울러 설사 알집으로 압축했다고 해도 CRC 검사 파일만 함께 올렸어도 모든 파일을 세번씩이나 다시 받는 수고는 하지 않았을 것이다.


주1: CRC32라는 이름에서 32는 CRC에 사용된 비트 수를 의미한다. .SFV 파일의 내용을 보면 파일 이름 끝에 63A022B2처럼 16진수의 8자리 숫자고 추가된 것을 알 수 있다. 16진수를 표시하기위해서는 4비트가 필요하며, 8자리이므로 총 32비트가 된다.
SRCD_Source.iso 63A022B2


주2: Total Commander에는 .SFV 파일을 생성하고 검사하는 기능이 내장되어 있다. 따라서 별도의 프로그램을 설치할 필요는 없다.

주3: FlashSFV에는 MD5를 검사하는 기능도 포함되어 있다.

주4: 필자가 사용하고 있는 버전은 2.2이다. 그런데 어떻게 된 일인지 iniCom.networks의 홈에는 2.0f만 공개되어 있다.

댓글: 이 팁은 apfmth05님의 질문, Win32:Trojan-gen. {VC} 란...?에 대한 답으로 작성되었습니다.


작고 깔끔한 BitTorrent 클라이언트, μTorrent Title: Efficient and Feature Rich Bi... (14173) 2006-01-08
즐겨 찾기 공유하기 Title: Sharing Favorite Folder 며칠전 윈도우즈 게시판에 폴... (5771)2006-01-08

QAOS.com에 게시된지 1년 이상된 자료와 관리자가 공개한 자료는 누구나 제한없이 읽을 수 있습니다.
그러나 QAOS.com의 자료를 퍼가는 것은 금지하고 있습니다.

이 정보가 유용하다고 생각되시면 QAOS.com과 많은 다른 사람들을 위해 퍼가기 보다는 링크로 알려주시기 바랍니다.

세상사는 이야기



RSS 구독 (익명 | 회원 | 강좌 | 포럼)
(C) 1996 ~ 2017 QAOS.com All rights reserved.