KR100630231B1 - 다중 고속 데이터 전송장치 - Google Patents
다중 고속 데이터 전송장치 Download PDFInfo
- Publication number
- KR100630231B1 KR100630231B1 KR1020030058121A KR20030058121A KR100630231B1 KR 100630231 B1 KR100630231 B1 KR 100630231B1 KR 1020030058121 A KR1020030058121 A KR 1020030058121A KR 20030058121 A KR20030058121 A KR 20030058121A KR 100630231 B1 KR100630231 B1 KR 100630231B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- data
- error
- file
- code
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
본 발명은 전력선통신(유선통신 포함) 및 무선통신(전파,음파,적외선등 무선으로 하는 통신)에 있어 전력선 선로 상태 또는 무선통신 상태가 좋지 못한 경우 불량 패킷 데이터를 효율적으로 복구하는 방법과 데이터 전송을 빠르게 전송하기 위한 방법 및 장치로 송신국에서 다수의 수신국으로 동시 전송하는 프로토콜 기술 및 방법에 관한 발명이다.
다중전송 및 에러복구, 데이터 전송 알고리즘, 패킷 전송 기술, 패킷 프로토콜
Description
도 1 기본동작 구성도
도 2 패킷 및 프레임 구조
도 3 제어코드 및 데이터 구분을 위한 데이터 변환 과정
도 4 송신 동작 순서도
도 5 수신 동작 순서도
도 6 본 발명에서 완성한 데이터 송수신 장치(참고 사진)
도 7 윈도우 프로그램을 제작하여 데이터를 주고받는 내용(참고 사진)
본 발명은 다중 고속 데이터 전송을 위한 방법으로 1개국이 송신하여 여러 국이 동시에 수신하도록 하는 방법으로 일부 수신국의 에러 복구를 완벽하게 처리하는 프로토콜 기술에 대한 방법이다. 기존의 데이터 전송방법중 대부분이 X.25와 같은 패킷전송 방법이나 파일전송시 대표적인 예로서 ZMODEM을 많이 사용하고 있으나 이러한 방식들은 고속 데이터 전송에 적합하지 못한 점이다. 그 일 예로 송신부에서 송신 프레임을 완성하여 송신하게 되면 수신부에서는 그 수신 데이터를 조합 하여 CRC 에러 체크하여 정상유무에 대한 확인 메시지를 송신부로 전송하도록 되어 있다. 이 과정에서 통상적으로 적게는 16바이트에서 많게는 1024바이트마다 확인 메시지를 주고받게 됨으로 데이터 전송에 효율이 떨어진다. 또한 무선 데이터 전송의 경우 무선상에서 필요한 무전기의 스켈치가 열리는 시간과 PLL의 주파수 안정을 찾기 위한 대기 시간이 필요함에 따라서 데이터 전송효율이 더 악화되어 있다. 따라서, 기본적인 과정은 유선과 동일하나 무선상에서는 송신대기 시간과 수신시 스켈치 신호를 받을 수 있도록 하기 위해 데이터 초기에 비트 데이터를 0.1초 - 0.5초 가량 포함하여 송신해야 한다. 이러한 과정 때문에 송신과 수신의 응답신호 과정이 매번 발생하여 데이터 전송에 효율이 많이 떨어지게 된다.
본 발명에서는 송신국이 데이터를 보낼 때 수신국은 1국 이상으로 필요에 따라 다수의 수신국에게 동시에 데이터 전송하는 방법이다. 전송 방법에서 데이터 전송시 데이터를 각 패킷으로 조각 내어 이 모든 패킷 데이터를 하나의 프레임으로 처리하여 한번에 송신하게 한다. 또한 에러 발생한 데이터를 확인하는 과정도 데이터 전체를 전송 후 이루어지며, 각 수신국에 에러 확인을 개별적으로 처리하는 과정에서 개별 에러 복구뿐만 아니라 다른 수신국에서도 해당 에러 패킷에 대해서는 동시에 에러 복구하여 데이터를 완성한다. 따라서, 데이터 전송시 다수의 수신국에 동시 전송이 가능하며, 패킷 전송시 각 패킷마다 전송 후 패킷 에러를 확인하지 않고 전체 데이터 패킷을 하나의 프레임으로 처리하여 한꺼번에 전송함으로 패킷 프로토콜에서 확인 메시지를 매번 주고받는 일이 없으므로 전송 효율을 높일 수 있다.
본 발명에서는 도 1 처럼 송신장치의 전송 데이터를 수많은 수신장치에 동시에 전송을 설명하기 위한 기본 도면이다. 도 1은 동작 설명을 돕기 위한 도면이며, 실제로는 수신장치도 송신국과 동일한 조건으로 데이터를 송수신 할 수 있다. 전력선통신의 선로 상태나 무선통신의 공중선 상태에 따라서, 수많은 수신장치들이 모두 수신을 정확히 할 수 없는 경우가 발생한다. 이때 에러보정을 효율적으로 관리하여, 좀더 빠르게 전송하게 하기 위한 방법이다. 본 발명에서 데이터 전송을 위한 패킷 프레임을 여러국에게 동시 전송하고 또한 신속한 에러 복구를 위해 프레임 내에 각각의 패킷 프로토콜을 만들 필요가 있다. 프로토콜의 구성에서 데이터 내용에 따라 여러 가지 방식의 구성이 필요하다. 먼저 패킷 프레임에 대한 용어 해설로 도 2의 (1)해더파일 패킷구조를 예로 든다면 구분코드란 파일정보, 파일데이터, 에러체크, 에러응답, 에러복구, 채팅, 호출등 다양한 코드가 주어 질 수 있으며, 송신자 ID는 송신자의 ID 코드이고, 수신자 ID는 수신자 ID 코드로서 여기서 수신자 ID는 1개국 이상 다수(수신자ID(N))의 ID가 들어갈 수 있다. 파일명은 송신자의 전송하고자 하는 파일 이름이다.(예를 들어 TEST.TXT) 파일 패킷 수는 전송하고자 하는 파일을 일정 양으로 조각 내어 패킷화 했을 때 그 패킷 수를 의미한다. CRC 코드는 CRC에러를 확인하기 위한 코드이고, 패킷의 끝임을 알리는 종료코드가 포함된다.
본 발명에 적용한 패킷 구조에 대한 내용을 먼저 기술한다. 파일전송에 관한 프로토콜 구조중 해더 패킷 프레임은 도 2의 (1)해더파일 패킷구조와 같이 구성을 한다. 해더파일 패킷 경우 통신 상태가 좋지 못할 경우를 대비하여 같은 내용의 패킷을 하나 이상(예를 들어 3-4개) 연속적으로 보낸다. 이때 수신국에서는 같은 패킷의 여러개 해더파일 패킷 중 어느 것이든 하나만 정상적으로 수신하게 되면 해더파일을 접수한다. 이와 같이 해더파일 패킷을 같은 내용으로 한개 이상 보내는 이유는 파일 명칭과 총 패킷수, 자신에게 보내온 정보인지를 확실하게 접수되어야만 수신자가 받을 준비를 하게 된다. 이 패킷을 접수하지 못하면 도 2의 (2)파일데이터 패킷을 자신에게 오는 데이터를 받지 못하기 때문에 해더파일 패킷은 1개 이상 보내도록 하며, 선로상태 또는 공중선 상태에 따라서, 2-5개를 연속해서 보내도록 한다. 상기처럼 해더파일 정보가 담긴 패킷을 먼저 보낸 후 (2)파일데이터를 보내도록 한다. 이 파일은 파일의 용량에 따라 일정 크기로 조각 내어 도 2의 (2)파일데이터 패킷을 만든다. 도 2의 (2)파일데이터 패킷 구조에서 송신자 ID만 있고 수신자 ID가 필요 없게 된다. 도 2의 (1)해더파일 패킷에서 송신자가 수신자에게 해더파일 정보를 먼저 보내었고, 수신자는 이 해더파일을 수신 분석 후 자신에게 보내온 파일인지 확인한다. 그리고, (2)파일데이터 패킷에서 송신자 ID를 수신자가 수신하게 되면 자신에게 오는 데이터임을 인식하기 때문이다. 따라서, 수신자 ID는 패킷에 포함시키지 않아도 데이터 전송에 아무런 문제가 없다. 불필요한 데이터를 줄임으로서 좀더 효율적인 데이터 전송이 된다. 송신자가 보내는 모든 파일데이터 패킷이 모두 전송되고 있을 경우 수신자는 파일데이터 패킷을 받을 때마다 프레임 내에 패킷인덱스와 데이터를 데이터베이스에 저장하고, 수신자는 이 패킷인덱스에 의해 수신 실패한 패킷인덱스가 어떤 것이 있는지 여부를 알 수 있다. 송신자가 도 2의 (3)에러체크 패킷을 송신하게 되면 수신자는 도 2의 (4)에러응답 패킷 구조로 응답을 한다. 여기서 송신자가 수신자의 전송 에러 확인을 위해 수신자의 ID는 도 2의 (1)해더파일 패킷에서 이미 송신자의 데이터베이스에 전송하고자 하는 수신자의 ID가 저장되어 있다. 따라서, 송신자는 수신자 ID명단에 있는 ID를 하나씩 순서적으로 개별 에러 확인하는 구조이다. 개별 에러 확인에 대한 응답은 도 2의 (4)처럼 응답을 하며, 여기서 (4)의 에러응답 코드는 에러 없음 코드, 전체에러 코드, 각각 수신 실패한 패킷인텍스 번호를 나열하여 응답을 할 수 있다. 송신자는 수신자의 에러응답을 받고, 만약 에러 없음을 응답 받았다면 송신자는 다음 수신자 ID 에게 역시 같은 방법으로 에러체크를 요청하게 된다. 그러나 에러체크 응답에 패킷인덱스 번호나 전체 에러코드가 포함되어 있다면 송신자는 해당 패킷인텍스 번호가 있는 패킷들을 재전송 하도록 한다. 이중에서 전체 에러코드가 수신되었다면 다른 수신자를 위하여 전체에러 코드에 대한 재전송은 다른 수신자의 에러복구를 먼저 한 후 가장 나중에 전송하도록 구성한다. 왜냐하면 다른 수신자들은 1-2개의 패킷을 못 받아 파일 완성을 못했을 경우 전체 프레임을 재전송 한다면 다른 수신자에 많은 시간 낭비가 될 것이다. 에러복구에서 전송 효율을 높이기 위해 중요한 사항은 수신자에서 같은 패킷인덱스를 여러 사람이 같은 패킷을 동시에 수신 실패를 했을 경우가 있을 수 있다. 이런 경우 송신자가 수신자 ID에게 에러체크를 요청했을 때 그 응답으로 수신 실패한 패킷인덱스 번호가 다른 수신자 ID에게도 포함이 되어 있다면 송신자가 해당 패킷인덱스 번호가 있는 패킷을 재전송시 도 2의 (2)파일데이터 패킷 구조로 송신하게 됨으로 다른 수신자 ID 자신도 해당 패킷이 완성되어 있지 않다면 해당 패킷을 같이 복구하도록 프레임 구조가 된다. 데이터 전송과정 및 복구과정인 도 4의 순서도와 같은 과정으로 패킷이 완성됨에 따라 데이터통신의 효율을 높일 수 있다. 도 2의 (5)채팅에 대한 패킷 구조이다. 일반 채팅용 패킷은 여러 명과 동시에 채팅이 가능하도록 하기 위해 수신자 ID를 지정하지 않도록 한다. 채팅 데이터를 송신자가 전송하고 수신자가 수신한 후 에러 확인 패킷을 보내지 않는다. 송신자가 송신 할 때 같은 패킷을 선로상태나 전파상태가 좋지 못 할 경우 해당 패킷의 CRC에러 체크에 의해 비정상적인 데이터가 접수되면 해당 패킷을 버리게 됨으로 수신을 할 수 없게 된다. 이를 보완하기 위해 선로상태나 전파상태에 따라 1개 이상 2-5개의 패킷을 동시에 전송하여, 수신자는 같은 내용으로 여러개의 패킷이 수신되어도 패킷인덱스 번호가 같다면 한개의 패킷만 접수하도록 한다. 이 프로토콜 구조에 의해 송신자가 다수의 수신국에게 동시에 채팅 데이터 전송이 가능하다. 귀엣말 채팅모드의 경우 도 2의 (6)귀엣말 채팅 패킷구조 처럼 송신자 ID와 수신자 ID가 추가되며, 이로 인해 특정 수신자에게만 메시지를 전달하도록 한다. 도 2의 (5)일반 채팅모드와 같이 송신자는 선로상태나 전파상태에 따라 여러개의 같은 패킷을 보내도록 하여 수신 에러를 줄이고 확인 및 대기 시간이 필요 없게 된다. 도 2의 (7)호출 패킷은 송신자가 특정 수신자에게 호출을 하는 패킷구조로 수신자에게 호출이 되면 시각 또는 청각적으로 알릴 수 있도록 하기 위한 것이다. 패킷의 송수신 사항은 도 2의 (5)와 (6)처럼 동일한 방법으로 여러개의 같은 패킷을 보내도록 하고, 수신도 같은 방법으로 수신한다.
도 2의 (8)은 무선장치 또는 유선장치에서 수신장치가 수신 준비하기 위해서 스타트 비트 코드를 보내어 데이터 전송함을 알리는 신호를 보내게 된다. 특히 무선 통신기에서는 각종 노이즈 등을 구분하기 위해 수바이트 또는 수십 바이트의 비트 코드를 송신하고 도 2의 (1)∼(7) 과 (9)의 패킷구조들을 패킷데이터라 할 때 이 패킷데이터를 이어서 보내준다. 그리고, 마지막으로 종료 비트 코드를 수바이트 또는 수십 바이트를 포함하여 전송을 한다. 본 발명 장치에서 파일전송시 전송할 패킷수가 많아도 시작과 끝부분에만 스타트 비트 코드와 종료 비트 코드를 보내는 프레임 방식이다.
도 2의 (9)는 에러체크 송신 대기 시간 지정 패킷 구조이며, 필요에 따라 에러복구를 좀더 효율적으로 하기 위한 패킷 구조이다. 예를 들어 첫번째 수신국에게는 이 패킷을 받은 후 5초뒤에 응답하게 하고, 두번째 수신국에게는 10초 뒤에 응답하게 하고 또 다음 수신국에게도 역시 송신 대기 시간을 지정하여 두면 각 수신국에서는 지정된 송신 대기 시간에 에러 응답하여 에러 복구 과정에 있어서 개별적 에러 체크보다 일괄적 에러 체크를 함에 따라 시간을 많이 줄일수 있다.
도 2의 패킷 구조들을 보면 구분코드와 종료코드가 있다. 또한 시리얼 통신에 있어서 제어코드중 XON/XOFF와 같은 코드들이 있다. 이와 같이 제어코드와 데이터가 구분되어야 수신장치에서 데이터의 엉킴 없이 정확한 데이터를 추출 할 수 있다. 본 발명에서는 이 문제를 해결하기 위한 방법으로 제어코드는 핵사(HEX)로 0x00-0x7F (0-127)까지는 제어코드로 구분하고 0x80-0xFF(128-255)까지를 데이터로 구분하였다. 1바이트의 데이터를 보면 0x00-0xFF까지 다양한 데이터가 있다. 제어코드와 구분하기 위해서 도 3의 예를 보면 데이터 변환 전에 문자 ABC를 데이터 변환하는 과정을 설명하기 위한 내용으로 도 3의 (1)처럼 8비트를 1비트씩 쉬프트하고 상위비트(MSB) 비트에 1을 만들고 쉬프트후 남은 비트는 다음 데이터에 옮겨 둔다. 이와 같은 방법으로 전체의 데이터를 변환시키고 도 3의 (2)는 마지막 데이터 비트가 남는 것은 0으로 채워주도록 한다. 이렇게 되면 모든 데이터가 0x80-0xFF(128-255)로 데이터 변환이 된다. 따라서, 제어코드와 데이터를 구분하여 전송할 수 있게 된다. 반대로 데이터를 수신하여 복원 할 때는 변환 방법의 원리에 따라서 역으로 바꾸어 주면 된다.
본 발명에 적용한 패킷 구조에 대한 내용을 먼저 기술한다. 파일전송에 관한 프로토콜 구조중 해더 패킷 프레임은 도 2의 (1)해더파일 패킷구조와 같이 구성을 한다. 해더파일 패킷 경우 통신 상태가 좋지 못할 경우를 대비하여 같은 내용의 패킷을 하나 이상(예를 들어 3-4개) 연속적으로 보낸다. 이때 수신국에서는 같은 패킷의 여러개 해더파일 패킷 중 어느 것이든 하나만 정상적으로 수신하게 되면 해더파일을 접수한다. 이와 같이 해더파일 패킷을 같은 내용으로 한개 이상 보내는 이유는 파일 명칭과 총 패킷수, 자신에게 보내온 정보인지를 확실하게 접수되어야만 수신자가 받을 준비를 하게 된다. 이 패킷을 접수하지 못하면 도 2의 (2)파일데이터 패킷을 자신에게 오는 데이터를 받지 못하기 때문에 해더파일 패킷은 1개 이상 보내도록 하며, 선로상태 또는 공중선 상태에 따라서, 2-5개를 연속해서 보내도록 한다. 상기처럼 해더파일 정보가 담긴 패킷을 먼저 보낸 후 (2)파일데이터를 보내도록 한다. 이 파일은 파일의 용량에 따라 일정 크기로 조각 내어 도 2의 (2)파일데이터 패킷을 만든다. 도 2의 (2)파일데이터 패킷 구조에서 송신자 ID만 있고 수신자 ID가 필요 없게 된다. 도 2의 (1)해더파일 패킷에서 송신자가 수신자에게 해더파일 정보를 먼저 보내었고, 수신자는 이 해더파일을 수신 분석 후 자신에게 보내온 파일인지 확인한다. 그리고, (2)파일데이터 패킷에서 송신자 ID를 수신자가 수신하게 되면 자신에게 오는 데이터임을 인식하기 때문이다. 따라서, 수신자 ID는 패킷에 포함시키지 않아도 데이터 전송에 아무런 문제가 없다. 불필요한 데이터를 줄임으로서 좀더 효율적인 데이터 전송이 된다. 송신자가 보내는 모든 파일데이터 패킷이 모두 전송되고 있을 경우 수신자는 파일데이터 패킷을 받을 때마다 프레임 내에 패킷인덱스와 데이터를 데이터베이스에 저장하고, 수신자는 이 패킷인덱스에 의해 수신 실패한 패킷인덱스가 어떤 것이 있는지 여부를 알 수 있다. 송신자가 도 2의 (3)에러체크 패킷을 송신하게 되면 수신자는 도 2의 (4)에러응답 패킷 구조로 응답을 한다. 여기서 송신자가 수신자의 전송 에러 확인을 위해 수신자의 ID는 도 2의 (1)해더파일 패킷에서 이미 송신자의 데이터베이스에 전송하고자 하는 수신자의 ID가 저장되어 있다. 따라서, 송신자는 수신자 ID명단에 있는 ID를 하나씩 순서적으로 개별 에러 확인하는 구조이다. 개별 에러 확인에 대한 응답은 도 2의 (4)처럼 응답을 하며, 여기서 (4)의 에러응답 코드는 에러 없음 코드, 전체에러 코드, 각각 수신 실패한 패킷인텍스 번호를 나열하여 응답을 할 수 있다. 송신자는 수신자의 에러응답을 받고, 만약 에러 없음을 응답 받았다면 송신자는 다음 수신자 ID 에게 역시 같은 방법으로 에러체크를 요청하게 된다. 그러나 에러체크 응답에 패킷인덱스 번호나 전체 에러코드가 포함되어 있다면 송신자는 해당 패킷인텍스 번호가 있는 패킷들을 재전송 하도록 한다. 이중에서 전체 에러코드가 수신되었다면 다른 수신자를 위하여 전체에러 코드에 대한 재전송은 다른 수신자의 에러복구를 먼저 한 후 가장 나중에 전송하도록 구성한다. 왜냐하면 다른 수신자들은 1-2개의 패킷을 못 받아 파일 완성을 못했을 경우 전체 프레임을 재전송 한다면 다른 수신자에 많은 시간 낭비가 될 것이다. 에러복구에서 전송 효율을 높이기 위해 중요한 사항은 수신자에서 같은 패킷인덱스를 여러 사람이 같은 패킷을 동시에 수신 실패를 했을 경우가 있을 수 있다. 이런 경우 송신자가 수신자 ID에게 에러체크를 요청했을 때 그 응답으로 수신 실패한 패킷인덱스 번호가 다른 수신자 ID에게도 포함이 되어 있다면 송신자가 해당 패킷인덱스 번호가 있는 패킷을 재전송시 도 2의 (2)파일데이터 패킷 구조로 송신하게 됨으로 다른 수신자 ID 자신도 해당 패킷이 완성되어 있지 않다면 해당 패킷을 같이 복구하도록 프레임 구조가 된다. 데이터 전송과정 및 복구과정인 도 4의 순서도와 같은 과정으로 패킷이 완성됨에 따라 데이터통신의 효율을 높일 수 있다. 도 2의 (5)채팅에 대한 패킷 구조이다. 일반 채팅용 패킷은 여러 명과 동시에 채팅이 가능하도록 하기 위해 수신자 ID를 지정하지 않도록 한다. 채팅 데이터를 송신자가 전송하고 수신자가 수신한 후 에러 확인 패킷을 보내지 않는다. 송신자가 송신 할 때 같은 패킷을 선로상태나 전파상태가 좋지 못 할 경우 해당 패킷의 CRC에러 체크에 의해 비정상적인 데이터가 접수되면 해당 패킷을 버리게 됨으로 수신을 할 수 없게 된다. 이를 보완하기 위해 선로상태나 전파상태에 따라 1개 이상 2-5개의 패킷을 동시에 전송하여, 수신자는 같은 내용으로 여러개의 패킷이 수신되어도 패킷인덱스 번호가 같다면 한개의 패킷만 접수하도록 한다. 이 프로토콜 구조에 의해 송신자가 다수의 수신국에게 동시에 채팅 데이터 전송이 가능하다. 귀엣말 채팅모드의 경우 도 2의 (6)귀엣말 채팅 패킷구조 처럼 송신자 ID와 수신자 ID가 추가되며, 이로 인해 특정 수신자에게만 메시지를 전달하도록 한다. 도 2의 (5)일반 채팅모드와 같이 송신자는 선로상태나 전파상태에 따라 여러개의 같은 패킷을 보내도록 하여 수신 에러를 줄이고 확인 및 대기 시간이 필요 없게 된다. 도 2의 (7)호출 패킷은 송신자가 특정 수신자에게 호출을 하는 패킷구조로 수신자에게 호출이 되면 시각 또는 청각적으로 알릴 수 있도록 하기 위한 것이다. 패킷의 송수신 사항은 도 2의 (5)와 (6)처럼 동일한 방법으로 여러개의 같은 패킷을 보내도록 하고, 수신도 같은 방법으로 수신한다.
도 2의 (8)은 무선장치 또는 유선장치에서 수신장치가 수신 준비하기 위해서 스타트 비트 코드를 보내어 데이터 전송함을 알리는 신호를 보내게 된다. 특히 무선 통신기에서는 각종 노이즈 등을 구분하기 위해 수바이트 또는 수십 바이트의 비트 코드를 송신하고 도 2의 (1)∼(7) 과 (9)의 패킷구조들을 패킷데이터라 할 때 이 패킷데이터를 이어서 보내준다. 그리고, 마지막으로 종료 비트 코드를 수바이트 또는 수십 바이트를 포함하여 전송을 한다. 본 발명 장치에서 파일전송시 전송할 패킷수가 많아도 시작과 끝부분에만 스타트 비트 코드와 종료 비트 코드를 보내는 프레임 방식이다.
도 2의 (9)는 에러체크 송신 대기 시간 지정 패킷 구조이며, 필요에 따라 에러복구를 좀더 효율적으로 하기 위한 패킷 구조이다. 예를 들어 첫번째 수신국에게는 이 패킷을 받은 후 5초뒤에 응답하게 하고, 두번째 수신국에게는 10초 뒤에 응답하게 하고 또 다음 수신국에게도 역시 송신 대기 시간을 지정하여 두면 각 수신국에서는 지정된 송신 대기 시간에 에러 응답하여 에러 복구 과정에 있어서 개별적 에러 체크보다 일괄적 에러 체크를 함에 따라 시간을 많이 줄일수 있다.
도 2의 패킷 구조들을 보면 구분코드와 종료코드가 있다. 또한 시리얼 통신에 있어서 제어코드중 XON/XOFF와 같은 코드들이 있다. 이와 같이 제어코드와 데이터가 구분되어야 수신장치에서 데이터의 엉킴 없이 정확한 데이터를 추출 할 수 있다. 본 발명에서는 이 문제를 해결하기 위한 방법으로 제어코드는 핵사(HEX)로 0x00-0x7F (0-127)까지는 제어코드로 구분하고 0x80-0xFF(128-255)까지를 데이터로 구분하였다. 1바이트의 데이터를 보면 0x00-0xFF까지 다양한 데이터가 있다. 제어코드와 구분하기 위해서 도 3의 예를 보면 데이터 변환 전에 문자 ABC를 데이터 변환하는 과정을 설명하기 위한 내용으로 도 3의 (1)처럼 8비트를 1비트씩 쉬프트하고 상위비트(MSB) 비트에 1을 만들고 쉬프트후 남은 비트는 다음 데이터에 옮겨 둔다. 이와 같은 방법으로 전체의 데이터를 변환시키고 도 3의 (2)는 마지막 데이터 비트가 남는 것은 0으로 채워주도록 한다. 이렇게 되면 모든 데이터가 0x80-0xFF(128-255)로 데이터 변환이 된다. 따라서, 제어코드와 데이터를 구분하여 전송할 수 있게 된다. 반대로 데이터를 수신하여 복원 할 때는 변환 방법의 원리에 따라서 역으로 바꾸어 주면 된다.
파일 또는 데이터 전송에 있어서 파일이나 데이터를 일정 양으로 조각 내어 데이타베이스에 저장하는 과정에서는 선로통신 상태 또는 무선통신 상태에 따라 파일의 조각 내는 용량을 달리 할 필요가 있다. 예를 들어 파일을 1024바이트로 조각 내는 것과 64바이트로 조각 내는 경우가 있다고 가정한다면, 만약 전송 상태가 좋지 못할 경우 1024바이트 패킷 단위라면 에러 발생시 1개의 패킷 단위로 복구해야 한다. 또한 1개의 패킷 데이터 크기가 크기 때문에 데이터 송수신 과정에서 1개 바이트만 불량 나도 그 패킷은 폐기해야 한다. 따라서, 이럴 경우 패킷 데이터 크기를 작게 해줄 필요가 있다. 이와 같은 이유로 전송 상태에 따라 파일을 조각 낼 때 패킷 데이터 크기를 조절하여, 데이터베이스에 저장하고 이때 패킷의 구분을 위해 패킷인텍스와 함께 저장한다. 모든 패킷은 파일 및 데이터 등을 전송하기전 도 2의 패킷구조에서 구분코드 및 종료코드와 같은 제어코드를 제외하고 나머지 모든 데이터에 대해서는 제어코드와 데이터를 구별할 수 있도록 하기 위해 도 3처럼 특별한 방법으로 데이터 변환한 후 패킷 전송을 한다. 반대로 수신할 경우 제어코드를 제외하고 나머지 모든 데이터에 대해서는 데이터 복원 과정이 필요하다. 파일 또는 데이터 전송하기전 송신자는 수신자 ID의 데이터 베이스에서 전송하고자 하는 ID를 선택하여 해더파일에 삽입한다. 파일 또는 데이터를 송신 할 경우 전송할 프레임은 프레임 시작을 알리는 스타트 비트 코드를 일정 크기로 연속 송신하고, 해더파일 패킷을 필요에 따라 하나 이상의 해더파일을 연속적으로 송신한다. 이어서 파일 또는 데이터를 조각 내어 데이터 베이스에 저장된 패킷을 모두 전송할 때까지 연속적으로 송신하고, 에러체크 패킷을 송신 후 프레임의 끝임을 알리는 종료 비트 코드를 일정 크기로 연속해서 보내도록 한다. 수신기의 경우 스타트 비트 코드가 일정 크기 이상 접수가 되면 프레임의 시작임을 인식하고 구분코드가 파일 전송이라면 해더파일 패킷을 접수하고 자신의 수신자 ID가 포함되어 있는지 확인한다. 자신의 ID가 포함되어 있을 경우 송신자 ID, 파일명, 파일 패킷수를 데이터베이스 메모리에 저장한 후 다음 패킷 데이터를 접수하기 위한 루틴으로 가도록 한다. 새로운 패킷을 수신했을 경우 패킷을 분석하여 구분코드가 파일데이터 패킷이고 송신자 ID가 해더파일 패킷의 ID와 동일한가 확인 후 파일저장 데이터 베이스에 패킷인덱스와 함께 저장한다. 파일 수신의 경우 구분코드가 에러체크 패킷이 올 때 까지 이와 같은 과정을 반복하여 파일저장 데이터 베이스에 패킷인텍스와 함께 저장된다. 만약 일정 시간이 경과해도 특정한 구분코드가 수신되지 않고 있다면 송신자가 송신을 포기했거나 통신 상태가 단절된 것으로 간주하고 데이터베이스에 저장한 데이터를 폐기 처리하고 초기 상태로 돌아간다. 송신장치에서 에러체크 코드를 보낸 후 프레임의 끝임을 알리는 종료 비트 코드를 보냄으로서 하나의 프레임 전송을 마무리하게 된다. 이 하나의 프레임은 쉬지 않고 연속적으로 보냄으로서 전송 효율을 높이는 것이 특징이다. 에러보정을 위해서 송신장치는 마지막 패킷에서 에러체크를 위한 패킷을 보내는데 이때 송신자가 파일 또는 데이터 전송시 선택한 수신자 ID들을 순서적으로 에러체크 확인 요청을 하게 된다. 이때 해당 수신자 ID는 에러확인 요청에 응답하기 위해 자신의 데이터 베이스에 저장된 패킷인덱스를 확인하여 수신하지 못한 패킷인텍스 번호를 도 2의 (4)에러 응답 코드 내에 모두 기입하여 응답 메시지를 보낸다. 이때 송신자는 에러 응답 코드의 패킷인텍스 번호들을 데이터베이스에서 꺼내어 상기의 파일 및 데이터 전송방법 처럼 하나의 프레임을 완성하여 송신한다. 또 다시 수신자가 수신 실패한 패킷이 있을 경우 반복하여 화일 및 데이터를 완성할 때까지 진행한다. 단, 다른 수신자를 위해 에러복구 재전송 횟수는 제한하도록 하고, 그 제한 횟수를 넘기게 되면 그 수신자에게는 전송을 포기하고 다음 수신자 ID에게 에러체크 확인 요청하고 같은 방법으로 에러복구를 실시하게 된다. 여기서, 에러복구 과정에서 에러복구 요청한 수신자 ID가 아니더라도 타 수신자의 경우도 함께 수신되고 있기 때문에 만약 타 수신자도 동일한 패킷인텍스를 수신 실패했을 경우 송신자가 지정한 수신자 ID에게 프레임을 전송하는 과정이라도 타 수신자에게 필요한 패킷 데이터이라면 해당 데이터의 에러복구를 하고, 패킷인텍스와 데이터를 데이터베이스에 저장한다. 이러한 방법으로 에러 복구함에 따라서, 자신의 수신자 ID가 에러 복구할 때 타인의 수신자도 함께 복구함으로서 전체적으로 불필요한 패킷 데이터를 줄임으로서 전송 효율을 높일 수 있다. 여기서 해더파일 패킷의 파일정보에서 전체 패킷수와 수신한 패킷인텍스가 저장된 데이터베이스의 패킷인덱스 수가 동일하다면 모든 데이터를 정상적으로 받은 것으로 된다. 이와 같이 데이터를 모두 수신했을 때 수신자의 데이터베이스에 저장된 데이터를 해더파일 정보에 있는 파일명으로 수신자의 저장 장치에 저장하도록 한다.
에러 보정에 있어서 사용자 환경에 따라 도 2의 (9)와 같은 패킷 구조로 에러체크를 할 필요가 있다. 도 2의 (9)는 에러체크 송신 대기 시간 지정 패킷 구조이며, 예를 들어 첫번째 수신국에게는 이 패킷을 받은 후 5초뒤에 응답하게 하고, 두번째 수신국에게는 10초 뒤에 응답하게 하고 또 다음 수신국들에게도 역시 송신 대기 시간을 지정하여 두면 각 수신국에서는 지정된 송신 대기 시간이 되면 순서적으로 에러 응답하게 된다. 에러체크 요청한 송신자는 마지막 수신자의 데이터를 받거나 지정한 시간이 경과하면 송신자는 각 수신자로 부터 에러 패킷 인덱스를 접수하여, 수신국 전체의 에러 패킷 인덱스에 해당하는 데이터를 송신국에서 송신을 한다. 이때 각 수신국에서는 자기 자신의 에러 패킷 인덱스에 대해서 수신하고 수신한 인덱스는 자신의 데이터 베이스에 등록하게 된다. 또 다시 송신국에서의 에러 응답 신호에 대해서 같은 방법으로 응답 및 수신함에 따라 에러복구를 완료하여 데이터가 완성되게 된다. 이때 송신자는 지정한 반복 횟수 만큼 에러 복구를 위해 상기의 내용을 반복하게 한다. 에러 복구 과정에 있어서 개별적 에러 체크보다 일괄적 에러 체크를 함에 따라 시간을 많이 줄일수 있다.
대화방 운영을 위하여 채팅을 여러 사용자와 함께 사용함에 있어 데이터 전송에 있어서 송신자가 각각의 수신자 ID에게 데이터를 전송하고 에러 확인 메시지를 받고 에러보정을 한다면 데이터 전송 효율이 매우 떨어지게 된다. 이러한 문제점을 해결하기 위해 도 2의 (5) 또는 (6) 그리고, (7)호출 패킷의 경우 같은 패킷을 하나 이상 반복 송신이 가능하도록 하나의 프레임 속에 같은 패킷을 여러개 삽입하여 송신하게 되면, 수신자는 하나의 프레임 속에 반복되어 있는 패킷 데이터중 하나의 패킷 데이터만 정상 수신되면 나머지의 데이터는 무시하면 된다. 귀엣말 채팅의 경우 수신자 ID만 추가 되었을 뿐 동일한 방법으로 프레임을 만들어 송신하고 같은 방법으로 수신하도록 한다. 이때 귀엣말 수신자 ID에게만 데이터가 수신되도록 동작하게 한다. 호출의 경우 호출하고자 하는 수신자 ID를 지정하여 송신을 하고, 지명된 수신자에게 음향 또는 램프 등을 이용 수신자가 확인이 용이하도록 구성한다. 데이터의 전송 방법이나 수신 방법은 채팅과 동일하다.
본 발명에서 표현하는 용어중 프레임은 스타트 비트 코드와 하나 또는 여러개의 데이터 패킷과 종료 비트 코드가 조합되어 하나의 완성된 프레임을 의미한다. 패킷이란 구분코드와 종료코드가 포함된 하나의 완성된 패킷을 의미한다.
에러 보정에 있어서 사용자 환경에 따라 도 2의 (9)와 같은 패킷 구조로 에러체크를 할 필요가 있다. 도 2의 (9)는 에러체크 송신 대기 시간 지정 패킷 구조이며, 예를 들어 첫번째 수신국에게는 이 패킷을 받은 후 5초뒤에 응답하게 하고, 두번째 수신국에게는 10초 뒤에 응답하게 하고 또 다음 수신국들에게도 역시 송신 대기 시간을 지정하여 두면 각 수신국에서는 지정된 송신 대기 시간이 되면 순서적으로 에러 응답하게 된다. 에러체크 요청한 송신자는 마지막 수신자의 데이터를 받거나 지정한 시간이 경과하면 송신자는 각 수신자로 부터 에러 패킷 인덱스를 접수하여, 수신국 전체의 에러 패킷 인덱스에 해당하는 데이터를 송신국에서 송신을 한다. 이때 각 수신국에서는 자기 자신의 에러 패킷 인덱스에 대해서 수신하고 수신한 인덱스는 자신의 데이터 베이스에 등록하게 된다. 또 다시 송신국에서의 에러 응답 신호에 대해서 같은 방법으로 응답 및 수신함에 따라 에러복구를 완료하여 데이터가 완성되게 된다. 이때 송신자는 지정한 반복 횟수 만큼 에러 복구를 위해 상기의 내용을 반복하게 한다. 에러 복구 과정에 있어서 개별적 에러 체크보다 일괄적 에러 체크를 함에 따라 시간을 많이 줄일수 있다.
대화방 운영을 위하여 채팅을 여러 사용자와 함께 사용함에 있어 데이터 전송에 있어서 송신자가 각각의 수신자 ID에게 데이터를 전송하고 에러 확인 메시지를 받고 에러보정을 한다면 데이터 전송 효율이 매우 떨어지게 된다. 이러한 문제점을 해결하기 위해 도 2의 (5) 또는 (6) 그리고, (7)호출 패킷의 경우 같은 패킷을 하나 이상 반복 송신이 가능하도록 하나의 프레임 속에 같은 패킷을 여러개 삽입하여 송신하게 되면, 수신자는 하나의 프레임 속에 반복되어 있는 패킷 데이터중 하나의 패킷 데이터만 정상 수신되면 나머지의 데이터는 무시하면 된다. 귀엣말 채팅의 경우 수신자 ID만 추가 되었을 뿐 동일한 방법으로 프레임을 만들어 송신하고 같은 방법으로 수신하도록 한다. 이때 귀엣말 수신자 ID에게만 데이터가 수신되도록 동작하게 한다. 호출의 경우 호출하고자 하는 수신자 ID를 지정하여 송신을 하고, 지명된 수신자에게 음향 또는 램프 등을 이용 수신자가 확인이 용이하도록 구성한다. 데이터의 전송 방법이나 수신 방법은 채팅과 동일하다.
본 발명에서 표현하는 용어중 프레임은 스타트 비트 코드와 하나 또는 여러개의 데이터 패킷과 종료 비트 코드가 조합되어 하나의 완성된 프레임을 의미한다. 패킷이란 구분코드와 종료코드가 포함된 하나의 완성된 패킷을 의미한다.
본 발명에 적용한 패킷 구조에 대한 내용을 먼저 기술한다. 파일전송에 관한 프로토콜 구조중 해더 패킷 프레임은 도 2의 (1)해더파일 패킷구조와 같이 구성을 한다. 해더파일 패킷 경우 통신 상태가 좋지 못할 경우를 대비하여 같은 내용의 패킷을 하나 이상(예를 들어 3-4개) 연속적으로 보낸다. 이때 수신국에서는 같은 패킷의 여러개 해더파일 패킷 중 어느 것이든 하나만 정상적으로 수신하게 되면 해더파일을 접수한다. 이와 같이 해더파일 패킷을 같은 내용으로 한개 이상 보내는 이유는 파일 명칭과 총 패킷수, 자신에게 보내온 정보인지를 확실하게 접수되어야만 수신자가 받을 준비를 하게 된다. 이 패킷을 접수하지 못하면 도 2의 (2)파일데이터 패킷을 자신에게 오는 데이터를 받지 못하기 때문에 해더파일 패킷은 1개 이상 보내도록 하며, 선로상태 또는 공중선 상태에 따라서, 2-5개를 연속해서 보내도록 한다. 상기처럼 해더파일 정보가 담긴 패킷을 먼저 보낸 후 (2)파일데이터를 보내도록 한다. 이 파일은 파일의 용량에 따라 일정 크기로 조각 내어 도 2의 (2)파일데이터 패킷을 만든다. 도 2의 (2)파일데이터 패킷 구조에서 송신자 ID만 있고 수신자 ID가 필요 없게 된다. 도 2의 (1)해더파일 패킷에서 송신자가 수신자에게 해더파일 정보를 먼저 보내었고, 수신자는 이 해더파일을 수신 분석 후 자신에게 보내온 파일인지 확인한다. 그리고, (2)파일데이터 패킷에서 송신자 ID를 수신자가 수신하게 되면 자신에게 오는 데이터임을 인식하기 때문이다. 따라서, 수신자 ID는 패킷에 포함시키지 않아도 데이터 전송에 아무런 문제가 없다. 불필요한 데이터를 줄임으로서 좀더 효율적인 데이터 전송이 된다. 송신자가 보내는 모든 파일데이터 패킷이 모두 전송되고 있을 경우 수신자는 파일데이터 패킷을 받을 때마다 프레임 내에 패킷 인덱스와 데이터를 데이터베이스에 저장하고, 수신자는 이 패킷 인덱스에 의해 수신 실패한 패킷 인덱스가 어떤 것이 있는지 여부를 알 수 있다. 송신자가 도 2의 (3)에러체크 패킷을 송신하게 되면 수신자는 도 2의 (4)에러응답 패킷 구조로 응답을 한다. 여기서 송신자가 수신자의 전송 에러 확인을 위해 수신자의 ID는 도 2의 (1)해더파일 패킷에서 이미 송신자의 데이터베이스에 전송하고자 하는 수신자의 ID가 저장되어 있다. 따라서, 송신자는 수신자 ID명단에 있는 ID를 하나씩 순서적으로 개별 에러 확인하는 구조이다. 개별 에러 확인에 대한 응답은 도 2의 (4)처럼 응답을 하며, 여기서 (4)의 에러응답 코드는 에러 없음 코드, 전체에러 코드, 각각 수신 실패한 패킷 인덱스 번호를 나열하여 응답을 할 수 있다. 송신자는 수신자의 에러응답을 받고, 만약 에러 없음을 응답 받았다면 송신자는 다음 수신자 ID 에게 역시 같은 방법으로 에러체크를 요청하게 된다. 그러나 에러체크 응답에 패킷 인덱스 번호나 전체 에러코드가 포함되어 있다면 송신자는 해당 패킷 인덱스 번호가 있는 패킷들을 재전송 하도록 한다. 이중에서 전체 에러코드가 수신되었다면 다른 수신자를 위하여 전체에러 코드에 대한 재전송은 다른 수신자의 에러복구를 먼저 한 후 가장 나중에 전송하도록 구성한다. 왜냐하면 다른 수신자들은 1-2개의 패킷을 못 받아 파일 완성을 못했을 경우 전체 프레임을 재전송 한다면 다른 수신자에 많은 시간 낭비가 될 것이다. 에러복구에서 전송 효율을 높이기 위해 중요한 사항은 수신자에서 같은 패킷 인덱스를 여러 사람이 같은 패킷을 동시에 수신 실패를 했을 경우가 있을 수 있다. 이런 경우 송신자가 수신자 ID에게 에러체크를 요청했을 때 그 응답으로 수신 실패한 패킷 인덱스 번호가 다른 수신자 ID에게도 포함이 되어 있다면 송신자가 해당 패킷 인덱스 번호가 있는 패킷을 재전송시 도 2의 (2)파일데이터 패킷 구조로 송신하게 됨으로 다른 수신자 ID 자신도 해당 패킷이 완성되어 있지 않다면 해당 패킷을 같이 복구하도록 프레임 구조가 된다. 데이터 전송과정 및 복구과정인 도 4의 순서도와 같은 과정으로 패킷이 완성됨에 따라 데이터통신의 효율을 높일 수 있다. 도 2의 (5)채팅에 대한 패킷 구조이다. 일반 채팅용 패킷은 여러 명과 동시에 채팅이 가능하도록 하기 위해 수신자 ID를 지정하지 않도록 한다. 채팅 데이터를 송신자가 전송하고 수신자가 수신한 후 에러 확인 패킷을 보내지 않는다. 송신자가 송신 할 때 같은 패킷을 선로상태나 전파상태가 좋지 못 할 경우 해당 패킷의 CRC에러 체크에 의해 비정상적인 데이터가 접수되면 해당 패킷을 버리게 됨으로 수신을 할 수 없게 된다. 이를 보완하기 위해 선로상태나 전파상태에 따라 1개 이상 2-5개의 패킷을 동시에 전송하여, 수신자는 같은 내용으로 여러개의 패킷이 수신되어도 패킷 인덱스 번호가 같다면 한개의 패킷만 접수하도록 한다. 이 프로토콜 구조에 의해 송신자가 다수의 수신국에게 동시에 채팅 데이터 전송이 가능하다. 귀엣말 채팅모드의 경우 도 2의 (6)귀엣말 채팅 패킷구조 처럼 송신자 ID와 수신자 ID가 추가되며, 이로 인해 특정 수신자에게만 메시지를 전달하도록 한다. 도 2의 (5)일반 채팅모드와 같이 송신자는 선로상태나 전파상태에 따라 여러개의 같은 패킷을 보내도록 하여 수신 에러를 줄이고 확인 및 대기 시간이 필요 없게 된다. 도 2의 (7)호출 패킷은 송신자가 특정 수신자에게 호출을 하는 패킷구조로 수신자에게 호출이 되면 시각 또는 청각적으로 알릴 수 있도록 하기 위한 것이다. 패킷의 송수신 사항은 도 2의 (5)와 (6)처럼 동일한 방법으로 여러개의 같은 패킷을 보내도록 하고, 수신도 같은 방법으로 수신한다.
파일 또는 데이터 전송에 있어서 파일이나 데이터를 일정 양으로 조각 내어 데이타베이스에 저장하는 과정에서는 선로통신 상태 또는 무선통신 상태에 따라 파일의 조각 내는 용량을 달리 할 필요가 있다. 예를 들어 파일을 1024바이트로 조각 내는 것과 64바이트로 조각 내는 경우가 있다고 가정한다면, 만약 전송 상태가 좋지 못할 경우 1024바이트 패킷 단위라면 에러 발생시 1개의 패킷 단위로 복구해야 한다. 또한 1개의 패킷 데이터 크기가 크기 때문에 데이터 송수신 과정에서 1개 바이트만 불량 나도 그 패킷은 폐기해야 한다. 따라서, 이럴 경우 패킷 데이터 크기를 작게 해줄 필요가 있다. 이와 같은 이유로 전송 상태에 따라 파일을 조각 낼 때 패킷 데이터 크기를 조절하여, 데이터베이스에 저장하고 이때 패킷의 구분을 위해 패킷 인덱스와 함께 저장한다. 모든 패킷은 파일 및 데이터 등을 전송하기전 도 2의 패킷구조에서 구분코드 및 종료코드와 같은 제어코드를 제외하고 나머지 모든 데이터에 대해서는 제어코드와 데이터를 구별할 수 있도록 하기 위해 도 3처럼 특별한 방법으로 데이터 변환한 후 패킷 전송을 한다. 반대로 수신할 경우 제어코드를 제외하고 나머지 모든 데이터에 대해서는 데이터 복원 과정이 필요하다. 파일 또는 데이터 전송하기전 송신자는 수신자 ID의 데이터 베이스에서 전송하고자 하는 ID를 선택하여 해더파일에 삽입한다. 파일 또는 데이터를 송신 할 경우 전송할 프레임은 프레임 시작을 알리는 스타트 비트 코드를 일정 크기로 연속 송신하고, 해더파일 패킷을 필요에 따라 하나 이상의 해더파일을 연속적으로 송신한다. 이어서 파일 또는 데이터를 조각 내어 데이터 베이스에 저장된 패킷을 모두 전송할 때까지 연속적으로 송신하고, 에러체크 패킷을 송신 후 프레임의 끝임을 알리는 종료 비트 코드를 일정 크기로 연속해서 보내도록 한다. 수신기의 경우 스타트 비트 코드가 일정 크기 이상 접수가 되면 프레임의 시작임을 인식하고 구분코드가 파일 전송이라면 해더파일 패킷을 접수하고 자신의 수신자 ID가 포함되어 있는지 확인한다. 자신의 ID가 포함되어 있을 경우 송신자 ID, 파일명, 파일 패킷수를 데이터베이스 메모리에 저장한 후 다음 패킷 데이터를 접수하기 위한 루틴으로 가도록 한다. 새로운 패킷을 수신했을 경우 패킷을 분석하여 구분코드가 파일데이터 패킷이고 송신자 ID가 해더파일 패킷의 ID와 동일한가 확인 후 파일저장 데이터 베이스에 패킷 인덱스와 함께 저장한다. 파일 수신의 경우 구분코드가 에러체크 패킷이 올 때 까지 이와 같은 과정을 반복하여 파일저장 데이터 베이스에 패킷 인덱스와 함께 저장된다. 만약 일정 시간이 경과해도 특정한 구분코드가 수신되지 않고 있다면 송신자가 송신을 포기했거나 통신 상태가 단절된 것으로 간주하고 데이터베이스에 저장한 데이터를 폐기 처리하고 초기 상태로 돌아간다. 송신장치에서 에러체크 코드를 보낸 후 프레임의 끝임을 알리는 종료 비트 코드를 보냄으로서 하나의 프레임 전송을 마무리하게 된다. 이 하나의 프레임은 쉬지 않고 연속적으로 보냄으로서 전송 효율을 높이는 것이 특징이다. 에러보정을 위해서 송신장치는 마지막 패킷에서 에러체크를 위한 패킷을 보내는데 이때 송신자가 파일 또는 데이터 전송시 선택한 수신자 ID들을 순서적으로 에러체크 확인 요청을 하게 된다. 이때 해당 수신자 ID는 에러확인 요청에 응답하기 위해 자신의 데이터 베이스에 저장된 패킷 인덱스를 확인하여 수신하지 못한 패킷 인덱스 번호를 도 2의 (4)에러 응답 코드 내에 모두 기입하여 응답 메시지를 보낸다. 이때 송신자는 에러 응답 코드의 패킷 인덱스 번호들을 데이터베이스에서 꺼내어 상기의 파일 및 데이터 전송방법 처럼 하나의 프레임을 완성하여 송신한다. 또 다시 수신자가 수신 실패한 패킷이 있을 경우 반복하여 화일 및 데이터를 완성할 때까지 진행한다. 단, 다른 수신자를 위해 에러복구 재전송 횟수는 제한하도록 하고, 그 제한 횟수를 넘기게 되면 그 수신자에게는 전송을 포기하고 다음 수신자 ID에게 에러체크 확인 요청하고 같은 방법으로 에러복구를 실시하게 된다. 여기서, 에러복구 과정에서 에러복구 요청한 수신자 ID가 아니더라도 타 수신자의 경우도 함께 수신되고 있기 때문에 만약 타 수신자도 동일한 패킷 인덱스를 수신 실패했을 경우 송신자가 지정한 수신자 ID에게 프레임을 전송하는 과정이라도 타 수신자에게 필요한 패킷 데이터이라면 해당 데이터의 에러복구를 하고, 패킷 인덱스와 데이터를 데이터베이스에 저장한다. 이러한 방법으로 에러 복구함에 따라서, 자신의 수신자 ID가 에러 복구할 때 타인의 수신자도 함께 복구함으로서 전체적으로 불필요한 패킷 데이터를 줄임으로서 전송 효율을 높일 수 있다. 여기서 해더파일 패킷의 파일정보에서 전체 패킷수와 수신한 패킷 인덱스가 저장된 데이터베이스의 패킷 인덱스 수가 동일하다면 모든 데이터를 정상적으로 받은 것으로 된다. 이와 같이 데이터를 모두 수신했을 때 수신자의 데이터베이스에 저장된 데이터를 해더파일 정보에 있는 파일명으로 수신자의 저장 장치에 저장하도록 한다.
본 발명장치 및 전송방법은 도 6의 사진과 도 7의 프로그램처럼 제작 완료하여 실무에 적용 중에 있다. 실제 무선장치에서 시험한 내용으로 기존의 무선데이터 전송 프로토콜은 X.25 프로토콜을 무선으로 전송 가능하도록 변형한 AX.25프로토콜과 본 발명의 프로토콜 방식을 비교 적용해 본 결과 1:1통신에서는 약60배 이상 전송 속도가 빠르며, 전송 받을 수신국이 100곳이 있다고 가정한다면 6000배 가량 빠르게 데이터를 전송할 수 있게 된다. 따라서 전파자원이 부족한 현실에서 동일한 데이터를 한곳 한곳 일일이 전송하는 것보다는 매우 효율적이다.
특히 무선데이터 전송의 경우 공중선 전파 환경이 좋지 못한 경우가 많은 곳에서 송수신이 효과적으로 성능을 발휘함에 따라 간단한 시설로 큰 효과를 얻을 수 있다.
또한 현재 전력선통신의 경우 전력선 전송 라인은 하나이고 전송하고자 하는 파일용량이 대용량이라면 전력선 통신에 있어서 정체현상이 매우 심각할 것으로 판단된다. 같은 파일을 동시에 여러 수신자에게 전송한다면 매우 효율적인 운용이 되리라 생각한다.
특히 무선데이터 전송의 경우 공중선 전파 환경이 좋지 못한 경우가 많은 곳에서 송수신이 효과적으로 성능을 발휘함에 따라 간단한 시설로 큰 효과를 얻을 수 있다.
또한 현재 전력선통신의 경우 전력선 전송 라인은 하나이고 전송하고자 하는 파일용량이 대용량이라면 전력선 통신에 있어서 정체현상이 매우 심각할 것으로 판단된다. 같은 파일을 동시에 여러 수신자에게 전송한다면 매우 효율적인 운용이 되리라 생각한다.
Claims (8)
- 데이터 또는 파일 전송을 위해 송신 1개국이 수신 1개국 이상 다수의 수신국으로 동시에 데이터 또는 파일전송을 하는 단계에서 전송효율을 극대화하기 위한 전송방법에 있어서 패킷 단위로 송신 후 반복적인 에러확인을 위한 대기시간 없이 전체 패킷 데이터를 모두 전송 후 에러 복구를 하기 위한 송신국의 데이터 전송 방법에 있어서,송신국에서,데이터 또는 파일을 일정 크기로 조각내어 데이터베이스에 조각낸 데이터와 패킷 인덱스를 함께 저장하고, 조각낸 데이터를 각각의 패킷으로 가공하기 위해 구분코드, 패킷인덱스, 송신자 ID, 조각낸 데이터, CRC 코드, 종료코드를 조합하여 각각의 패킷을 완성하는 단계를 포함하고,전체 패킷을 하나의 프레임으로 가공하기 위해 스타트 비트 코드와 완성된 패킷을 모두 삽입하고 마지막에 종료코드를 조합하여 하나의 프레임으로 완성하는 단계를 포함하고,헤더 파일 패킷인 구분코드, 송신국 ID, 수신국 ID 리스트, 파일명, 파일 패킷 수, CRC 코드, 종료코드를 조합하여 하나의 헤더 파일 패킷을 만드는 단계를 포함하고,송신국에서 다수의 수신국에게 패킷 단위의 에러체크를 하지않고 헤더 파일 패킷과 프레임을 모두 전송 후 수신국 ID 리스트에 있는 모든 수신국에게 순차적으로 에러확인 패킷을 전송하여 각 수신국이 에러응답을 할 수 있도록 하는 방법을 특징으로 하는 데이터 통신 방법.
- 송신국에서,(a) 수신국의 에러응답 패킷을 수신 후 에러 복구를 요청한 패킷 인덱스를 모두 추출하고, 에러 패킷 인덱스 번호에 해당하는 패킷 데이터를 데이터베이스에서 모두 꺼내어 오는 단계를 포함하고,(a) 단계에서 꺼내온 패킷들을 하나의 프레임으로 가공하기 위해 스타트 비트 코드와 패킷을 모두 삽입하고 마지막에 종료코드를 조합하여 하나의 프레임으로 완성하여 송신국에서 수신국으로 전송하는 단계에 있어서 패킷 단위의 에러체크를 하지않고 프레임을 모두 전송하는 것을 특징으로 하는 에러복구를 위한 데이터 전송 방법.
- 데이터 또는 파일 전송을 위해 송신 1개국이 수신 1개국 이상 다수의 수신국으로 동시에 데이터 또는 파일수신 하는 단계에서 송신국이 전송 효율을 극대화하기 위해 패킷 단위의 송신으로 인하여 수신국에게 매번 에러확인 요청에 따른 대기시간을 없애기 위해 송신국에서 헤더 패킷과 전체 패킷이 포함된 프레임 데이터를 에러체크를 위한 대기시간 없이 모두 전송한 후 에러체크 패킷을 송신하고 수신국이 수신하는 단계에서 수신한 데이터를 완성하는 단계를 포함하는 에러복구를 위한 방법에 있어서,수신국에서는,송신국에서 전송한 헤더 파일 패킷에 수신국 자신의 ID가 포함되어 있는지 확인하는 단계에서 자신의 ID가 포함되어 있다면 헤더 파일 패킷의 송신자 ID, 파일명, 파일 패킷 수를 추출하여 데이터 베이스에 저장하는 단계를 포함하고,수신되는 프레임 내의 연속된 패킷을 1개 단위의 패킷으로 추출하여 구분코드와 패킷 인덱스 및 데이터를 추출한 후 CRC 에러검사 시에 에러가 없는 데이터이면 패킷 인덱스와 데이터를 데이터 베이스에 각각 저장하는 단계를 포함하고,송신국으로부터 수신국 자신의 ID로 에러체크 요청이 있을 때 수신 실패한 패킷을 패킷 인덱스 데이터 베이스에서 파일 패킷 수 범위까지 수신 실패한 패킷 인덱스를 모두 추출하고 추출된 패킷 인덱스는 에러응답 패킷 내에 모두 나열하여 송신하고 수신을 모두 성공하였으면 에러 없음 코드를 에러응답 패킷 내에 삽입하여 송신하는 것을 특징으로 하는 방법.
- 제 1항 또는 3항에 있어서,수신성공 확률을 높이기 위해 헤더 패킷, 에러체크 패킷, 에러응답 패킷과 같은 패킷 데이터는 동일한 패킷 데이터를 하나의 프레임 내에 여러 개의 패킷 데이터를 삽입하여 하나의 프레임으로 구성하는 방법.
- 제 3항에 있어서,수신국이 수신한 하나의 프레임 내에 동일한 여러 개의 패킷 데이터를 수신한 경우 하나의 정상적인 패킷 데이터만 접수하고 나머지 패킷은 모두 폐기하는 방법.
- 제 3항의 에러복구 방법에 있어서,에러 복구를 위해 재전송 요청한 수신국이 아니더라도 다른 수신국에서도 같은 패킷 인덱스가 수신 실패되었다면 그 패킷 인덱스를 다른 수신국에서도 접수하여 파일 또는 데이터를 완성하는 방법.
- 제 3항에 있어서,정상적인 데이터를 모두 수신했거나 수신 실패한 데이터를 모두 에러복구를 하였을 때 데이터베이스에 저장된 데이터를 추출하여 데이터 또는 파일로 완성하는 방법.
- 제 3항에 있어서,수신국 자신에게 온 패킷 데이터를 수신도중에 일정 시간이 경과해도 특정한 구분코드가 수신되지 않고 있다면 송신국이 송신을 포기했거나 통신상태가 단절된 것으로 간주하고 데이터베이스에 저장된 데이터를 폐기하고 초기상태로 돌아가게 하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030058121A KR100630231B1 (ko) | 2003-08-22 | 2003-08-22 | 다중 고속 데이터 전송장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030058121A KR100630231B1 (ko) | 2003-08-22 | 2003-08-22 | 다중 고속 데이터 전송장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050020305A KR20050020305A (ko) | 2005-03-04 |
KR100630231B1 true KR100630231B1 (ko) | 2006-09-28 |
Family
ID=37229245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030058121A KR100630231B1 (ko) | 2003-08-22 | 2003-08-22 | 다중 고속 데이터 전송장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100630231B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100885189B1 (ko) * | 2007-04-25 | 2009-02-24 | 프롬투정보통신(주) | 핸드쉐이킹을 이용한 무전기의 고신뢰 데이터 통신 방법 |
-
2003
- 2003-08-22 KR KR1020030058121A patent/KR100630231B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100885189B1 (ko) * | 2007-04-25 | 2009-02-24 | 프롬투정보통신(주) | 핸드쉐이킹을 이용한 무전기의 고신뢰 데이터 통신 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20050020305A (ko) | 2005-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW453066B (en) | Method and apparatus for reliable and efficient data communications | |
CN1236579C (zh) | 在自动重复请求系统中恢复数据的方法和设备 | |
CN2686252Y (zh) | 接收无线电资源控制服务数据单位的用户设备 | |
US7206280B1 (en) | Method and apparatus for asynchronous incremental redundancy reception in a communication system | |
JP3349926B2 (ja) | 受信制御装置、通信制御システム及び通信制御方法 | |
EP1411688A2 (en) | Method and apparatus for multicast data retransmission | |
US20030023915A1 (en) | Forward error correction system and method for packet based communication systems | |
AU9344601A (en) | Hybrid arq with parallel packet transmission | |
JP2595965B2 (ja) | 同報通信システム | |
CN101652948A (zh) | 重发请求发送方法、发送端装置及接收端装置 | |
US8467302B2 (en) | Wireless data transmission method, transmitting system, and receiving system | |
JP4731155B2 (ja) | デジタルネットワークにおけるセグメントを基にするリンク層のための誤り制御機構 | |
CN102104463A (zh) | 数据报文请求重传方法及装置 | |
CN104144044B (zh) | 一种多设备透明harq的处理方法 | |
CN102948244A (zh) | 无线发送器中的分组重发 | |
KR100630231B1 (ko) | 다중 고속 데이터 전송장치 | |
KR101755224B1 (ko) | 인덱스 코딩과 통계적 특성을 이용한 데이터 재전송 시스템 및 방법 | |
JPH1070523A (ja) | パケット伝送方法及び装置 | |
CN102255714B (zh) | 重传的方法和系统 | |
CN101183916B (zh) | 一种无线链路控制实体中的状态信息处理方法 | |
KR20090026441A (ko) | 이동통신 시스템에서 패킷 데이터 수신 응답 신호 구성방법 및 장치 | |
SUB-PACKET | SUB-PACKET |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110922 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |