조건 1 : 내가 상대방에게 마음이 있다 조건 2 : 상대방이 나에게 마음이 있음을 확신한다 두 조건이 모두 만족할때 썸. 단, 조건 2의 경우 매우 주관적이기 때문에 아래와 같은 지표들을 참고 바람. 1) 내가 만나자고 할 때에 주저없이 응한다(또는 먼저 만나자고 한다) 2) 서로 연락하며 대화가 즐겁고 자연스럽다 3) 스킨십에 대한 거부반응이 없다
체크섬(checksum)은 중복 검사의 한 형태로, 오류 정정을 통해, 공간(전자 통신)이나 시간(기억 장치) 속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.
통신에서 순환 중복 검사(CRC)을 체크섬이라고 말하기도 한다. 엄밀히 말하면 체크섬은 나열된 데이터를 더하여 체크섬 숫자를 얻고, 정해진 비트수의 모듈라로 정해진 비트수로 재구성 한다. 단순 덧셈 방식과 순환 중복 검사의 계산 방식과는 차이가 있으나, 많은 경우 순환 중복 검사의 결과를 체크섬이라고 말하므로 단순 덧셈만을 의미하지는 않는다.
기본적인 메시지 구성 요소(보통 비트)를 추가하여 결과값을 저장함으로써 동작한다. 나중에 누구나 데이터에 같은 작업을 수행할 수 있고, 무결성 검사에 대한 결과를 비교할 수 있으며, (체크섬이 맞아 떨어지는지 확인해 봄으로써) 메시지가 손상되지 않았다고 결론을 내릴 수도 있다.
마이크로프로세서을 활용한 시스템을 설계할 때, 프로그램은 주로 C언어로 작성한다. C 언어는 컴파일러와 링커에 의해 최종 결합하면 기계어 코드의 묶음이 나온다. 이것이 실행파일(헥사 파일, hexa)인데, 메모리에 써서 CPU가 동작할 수 있게 한다. 이 실행파일에 체크섬을 적용하여 줄 단위로 오류를 검증한다. 인텔과 과거 모토로라(현재 프리스케일, 반도체 칩 제조사)에서 사용 하였다. 여기서는 정해진 형식에 따라 바이트 단위로 단순 덧셈을 하여, 1바이트 모듈라를 취해 최종 값을 만든다. 이것을 해당라인의 끝에 오류 체크용으로 붙여 파일을 만든다.
목차 [숨기기] 1 체크섬의 예 2 순환 중복 검사 (CRC,cyclic redundancy check) 3 마이크로프로세서에서 실행파일 체크섬 3.1 인텔 방식의 마이크로프로세서 실행파일 체크섬의 예 3.2 모토로라 방식의 마이크로프로세서 실행파일 체크섬의 예 4 인터넷에서의 16비트 체크섬 방식 5 같이 보기 체크섬의 예[편집]
단순한 체크섬의 예는 다음과 같다:
다음과 같이 4 바이트의 데이터가 있다고 치자: 0x25, 0x62, 0x3F, 0x52 1 단계: 모든 바이트를 덧셈하면 0x118이 된다. 2 단계: 캐리 니블을 버림으로써 0x18을 만든다. 3 단계: 0x18의 2의 보수를 얻음으로써 0xE8을 얻는다. 이것이 체크섬 바이트이다. 체크섬 바이트를 테스트하려면 원래 그룹의 바이트에 체크섬 바이트까지 모두 더하면 0x200이 된다. 다시 캐리 니블을 버림으로써 0x00이 된다. 0x00이라는 뜻은 오류가 없다는 뜻이다. (하지만 오류가 있어도 우연히 0x00이 될 수도 있다.) 순환 중복 검사 (CRC,cyclic redundancy check)[편집]
이 부분의 본문은 순환 중복 검사입니다. 인터넷 등의 통신시스템에서 오류검증에 중요한 방법으로 사용한다. TCP/IP, MAC 등의 계층에서 오류검증으로 사용한다. 정해진 다항식이 결정되어 있고, 이것에 따라 송신 쪽에서 계산하여 헤더에 붙여 보내면 수신 쪽에서 다시 계산하고 보내진 체크섬과 비교한다.
경우에 따라 하드웨어 또는 소프트웨어 방법으로 계산한다. 상황에 따라 개발자가 설계 결정하고 구현한다. 보통 TCP/IP등은 소프트웨어적인 방법이 대부분이고, 밑의 계층으로 갈수록 하드웨어에 의존하는 경향이 있다.
마이크로프로세서에서 실행파일 체크섬[편집]
프로그램 후 생성후 실행파일은 여러가지 형태가 있으나 아스키 코드에 의한 텍스터 파일 형태를 많이 사용한다. 정해진 포맷에 따라 줄단위로 오류검증을 한다. 각줄의 마지막에 체크섬 숫자를 붙인다.
인텔 방식의 마이크로프로세서 실행파일 체크섬의 예[편집] :10010000214601360121470136007EFE09D2190140 :100110002146017EB7C20001FF5F16002148011988 :10012000194E79234623965778239EDA3F01B2CAA7 :100130003F0156702B5E712B722B732146013421C7 :00000001FF Start code Byte count Address Record type Data Checksum
송신측 메시지를 16비트 워드로 나눈다. 처음 검사 합 워드는 0(zero)이다. 체크섬을 포함한 모든 값을 더한다. 그 합의 2의 보수를 취해 최종 체크섬으로 한다. 데이터를 체크섬과 함께 보낸다. 수신측 체크섬을 포함하는 메시지를 16비트씩 나눈다. 나눈 모든 워드들을 더한다. 그 합의 2의 보수를 취해 새로운 검사합으로 만든다. 체크섬이 0이면(신드롬이 0이면) 메시지를 취한다.
댓글 달기