KR101442485B1 - System and method for transmitting data - Google Patents
System and method for transmitting data Download PDFInfo
- Publication number
- KR101442485B1 KR101442485B1 KR1020140071323A KR20140071323A KR101442485B1 KR 101442485 B1 KR101442485 B1 KR 101442485B1 KR 1020140071323 A KR1020140071323 A KR 1020140071323A KR 20140071323 A KR20140071323 A KR 20140071323A KR 101442485 B1 KR101442485 B1 KR 101442485B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- stored
- flags
- flag
- data packet
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
본 발명은 데이터 통신 시스템 및 그 방법에 관한 것으로서, 좀더 구체적으로 UDP(User Datagram Protocol)를 이용하는 데이터 통신 시스템 및 그 방법에 에 관한 것이다.BACKGROUND OF THE
최근, 인터넷으로 대표되는 공공성이 있는 광대역 네트워크(WAN, wide area network)나 일반 가정 등에 설치되는 근거리 네트워크(LAN, local area network)의 보급이 활발히 이루어지고 있어, 이들 네트워크를 통한 다양한 데이터의 통신 동작이 활발하게 행해지고 있다.2. Description of the Related Art Recently, a wide area network (WAN) and a local area network (LAN) installed in public homes such as the Internet have been actively popularized. Is actively being carried out.
이러한 통신을 실시하기 위한 프로토크(protocol) 중에서 일반적으로 사용되는 통신 프로토콜 중 하나는 TCP(transmission control protocol)이다.One of the commonly used communication protocols among the protocols for carrying out such communication is a transmission control protocol (TCP).
TCP 프로토콜을 이용한 통신에 따르면, 송신측에서 수신측으로 데이터를 전송하고자 할 때, 수신측은 먼저 전송 알림 상태를 송신측에 전송하고 송신측으로부터 확인 신호를 받을 때까지 데이터 전송을 보류한다.According to the communication using the TCP protocol, when data is to be transmitted from the transmitting side to the receiving side, the receiving side first transmits the transmission notification state to the transmitting side, and holds the data transmission until receiving a confirmation signal from the transmitting side.
따라서, 수신측으로부터 확인 신호가 송신측에 전달되면, 송신측은 비로소 수신측으로 데이터를 송신한다.Therefore, when an acknowledgment signal is transmitted from the receiving side to the transmitting side, the transmitting side only transmits the data to the receiving side.
수신측은 데이터의 수신이 정상적으로 이루어질 경우, 수신 확인 신호를 수신측에 전송하여, 통신이 정상적으로 행해졌음을 알려준다.When the reception of the data is normally performed, the reception side transmits an acknowledgment signal to the reception side to notify that the communication has been normally performed.
따라서, TCP 통신을 실시할 경우, 데이터 손실에 대한 염려가 크게 줄어든다.Therefore, when performing TCP communication, the concern about data loss is greatly reduced.
하지만, 매 데이터 패킷(data packet)이 전송될 때 송신측과 수신측 확인 동작에 의해, 전송 시간이 많이 소요되는 문제가 발생한다.However, when each data packet is transmitted, there arises a problem that it takes a long time to transmit by the transmitting side and the receiving side confirming operation.
이러한 문제는 동영상을 전송할 경우 특히 실시간으로 전송할 경우 더욱 심각하게 발생하여 송신측에서 출력되는 영상과 수신측에서 출력되는 영상의 시간차가 크게 발생하는 문제가 발생한다.This problem is more serious when the moving picture is transmitted, especially when it is transmitted in real time, and a problem arises in that a time difference between the image outputted from the transmitting side and the image outputted from the receiving side is largely generated.
본 발명이 해결하고자 하는 기술적 과제는 데이터의 전송 시간을 단축하기 위한 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to shorten data transmission time.
본 발명의 한 특징에 따른 데이터 통신 시스템은 복수의 버퍼를 저장하고 있고 있는 버퍼부, 복수의 플래그를 저장하고 있는 플래그 저장부, 그리고 헤더부와 데이터부를 구비하고 있고 데이터에 대한 데이터 패킷을 수신하여, 상기 데이터 패킷의 헤더부에 저장된 데이터의 총 길이와 데이터부의 길이를 이용하여, 상기 데이터에 해당하는 데이터 패킷이 복수 개일 경우, 버퍼와 플래그의 개수를 산출하여 산출된 개수만큼 상기 버퍼부와 상기 플래그 저장부에 각각 버퍼와 플래그를 생성하고, 전송된 상기 데이터 패킷에 저장된 유효 데이터를 추출하여 버퍼에 저장하고 상기 버퍼에 대응하는 플래그의 값을 초기값에서 설정값으로 변환하고, 데이터 전송 완료 신호가 수신될 경우, 상기 플래그 저장부에 저장되어 있는 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하면 상기 버퍼부에 저장되어 있는 데이터를 삭제하고, 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하지 않으면 상기 버퍼부에 저장되어 있는 외부 단말로 데이터를 출력하는 데이터 수신부를 포함한다.According to an aspect of the present invention, there is provided a data communication system including a buffer unit storing a plurality of buffers, a flag storage unit storing a plurality of flags, a header unit and a data unit, The number of buffers and the number of flags when a plurality of data packets corresponding to the data are used by using the total length of the data stored in the header part of the data packet and the length of the data part, A buffer and a flag are generated in the flag storage unit, the valid data stored in the transmitted data packet is extracted and stored in the buffer, the value of the flag corresponding to the buffer is converted from the initial value to the set value, An initial value among a plurality of flags stored in the flag storage unit is set to And a data receiving unit for deleting data stored in the buffer unit when a flag is present and outputting data to an external terminal stored in the buffer unit if a flag for holding an initial value among the plurality of flags does not exist do.
상기 데이터 패킷은 UDP(user datagram protocol)를 이용하여 전송되는 것이좋다.The data packet may be transmitted using UDP (user datagram protocol).
상기 데이터 수신부는 상기 데이터의 총 길이를 상기 데이터부의 길이로 나눠, 나머지가 '0'일 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 몫의 값과 동일하게 산출하고, 나머지가 '0'이 아닐 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 상기 몫에 '1'을 더한 값과 동일하게 산출할 수 있다.The data receiver divides the total length of the data by the length of the data portion and calculates the number of buffers and the number of flags equal to a quotient if the remainder is' Otherwise, the number of buffers and the number of flags can be calculated to be equal to a value obtained by adding '1' to the quotient.
상기 데이터 수신부는 상기 데이터에 해당하는 데이터 패킷이 한 개일 경우, 전송된 상기 데이터 패킷의 상기 데이터부에 저장된 유효 데이터를 추출하여 외부 단말로 출력하는 것이 바람직하다.And the data receiving unit extracts valid data stored in the data unit of the transmitted data packet and outputs the valid data to an external terminal when the data packet corresponding to the data is one.
상기 데이터 수신부는 전송된 데이터 패킷의 헤더부에 저장된 현재 데이터 식별 번호가 이전에 전송된 데이터 패킷의 헤더부에 저장된 이전 데이터 식별 번호와 상이할 경우, 상기 플래그 저장부에 저장되어 있는 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하면 상기 버퍼부에 저장되어 있는 데이터를 삭제하고, 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하지 않으면 상기 버퍼부에 저장되어 있는 외부 단말로 데이터를 출력하는 것이 좋다.When the current data identification number stored in the header portion of the transmitted data packet differs from the previous data identification number stored in the header portion of the previously transmitted data packet, the data receiving portion stores, among the plurality of flags stored in the flag storage portion, If there is a flag for retaining the initial value, the data stored in the buffer unit is deleted, and if there is no flag for holding the initial value among the plurality of flags, data is output to the external terminal stored in the buffer unit good.
상기 특징에 따른 데이터 통신 시스템은 상기 데이터를 적어도 하나의 데이터 블록으로 분할하고, 분할된 각 데이터 블록에 대한 데이터 패킷을 생성하여 상기 데이터 수신부로 생성된 상기 데이터 패킷을 송신하는 데이터 송신 모듈을 더 포함할 수 있다.The data communication system further includes a data transmission module for dividing the data into at least one data block, generating a data packet for each divided data block, and transmitting the data packet generated by the data receiving unit can do.
상기 데이터 송신 모듈은 상기 헤더부에 저장된 데이터의 총 길이를 판정하여, 데이터의 총 길이를 데이터부의 길이로 나누어 상기 데이터를 상기 적어도 하나의 데이터 블록으로 분할하는 것이 좋다.The data transmission module may divide the data into at least one data block by determining the total length of the data stored in the header portion, dividing the total length of the data by the length of the data portion.
본 발명의 다른 특징에 따른 데이터 통신 방법은 데이터 수신부는 데이터 패킷이 수신되는지를 판단하는 단계, 상기 데이터 패킷이 수신되면 상기 데이터 수신부는 상기 데이터 패킷의 헤더부에 저장된 데이터의 총 길이와 데이터부의 길이를 이용하여, 상기 데이터에 해당하는 데이터 패킷이 복수 개인지를 판단하는 단계, 상기 데이터에 해당하는 데이터 패킷이 복수 개일 경우, 상기 데이터 수신부는 버퍼와 플래그의 개수를 산출하여 산출된 개수만큼 버퍼부와 플래그 저장부에 각각 버퍼와 플래그를 생성하는 단계, 상기 데이터 수신부는 전송된 상기 데이터 패킷에 저장된 유효 데이터를 추출하여 상기 버퍼에 저장하고 상기 버퍼에 대응하는 플래그의 값을 초기값에서 설정값으로 변환하는 단계, 상기 데이터 수신부는 데이터 전송 완료 신호가 수신되는 지를 판단하는 단계, 상기 데이터 전송 완료 신호가 수신되면, 상기 데이터 수신부는 플래그 저장부에 저장되어 있는 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하는지를 판단하는 단계, 그리고 상기 초기값을 유지하는 플래그가 존재할 경우, 상기 데이터 수신부는 상기 버퍼부에 저장되어 있는 데이터를 삭제하고, 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하지 않으면 상기 버퍼부에 저장되어 있는 외부 단말로 데이터를 출력하는 단계를 포함한다.According to another aspect of the present invention, there is provided a data communication method comprising the steps of: determining whether a data packet is received; when receiving the data packet, the data receiver stores the total length of the data stored in the header of the data packet, Determining whether there are a plurality of data packets corresponding to the data; if the number of data packets corresponding to the data is plural, the data receiving unit calculates the number of buffers and flags, Generating a buffer and a flag in a flag storage unit, the data receiving unit extracts valid data stored in the transmitted data packet, stores the valid data in the buffer, and converts a value of a flag corresponding to the buffer from an initial value to a set value Wherein the data receiving unit receives a data transmission completion signal Determining whether a flag for retaining an initial value among a plurality of flags stored in a flag storage unit is present when the data transmission completion signal is received, The data receiving unit deletes the data stored in the buffer unit and outputs the data to the external terminal stored in the buffer unit if there is no flag to hold the initial value among the plurality of flags .
상기 데이터 패킷은 UDP(user datagram protocol)를 이용하여 전송되는 것이 바람직하다. The data packet is preferably transmitted using UDP (user datagram protocol).
상기 버퍼와 플래그 생성 단계는 상기 데이터의 총 길이를 상기 데이터부의 길이로 나눠, 나머지가 '0'인지를 판단하는 단계, 상기 나머지가 '0'일 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 몫의 값과 동일하게 산출하는 단계, 그리고 상기 나머지가 '0'이 아닐 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 상기 몫에 '1'을 더한 값과 동일하게 산출하는 단계를 포함할 수 있다.Wherein the step of generating the buffer and the flag comprises: dividing the total length of the data by the length of the data part and determining whether the remainder is '0'; if the remainder is '0' And calculating the number of buffers and the number of the flags equal to a value obtained by adding '1' to the quotient if the remainder is not '0' have.
상기 특징에 따른 데이터 통신 방법은 상기 데이터에 해당하는 데이터 패킷이 한 개일 경우, 상기 데이터 수신부가 전송된 상기 데이터 패킷의 상기 데이터부에 저장된 유효 데이터를 추출하는 단계와 추출된 상기 유효 데이터를 외부 단말로 출력하는 단계를 더 포함할 수 있다.The data communication method according to the present invention includes the steps of extracting valid data stored in the data portion of the data packet transmitted by the data receiver when the data packet corresponding to the data is one, And outputting the output signal to the output terminal.
판독된 데이터의 총 길이가 데이터부의 길이보다 작거나 같으면, 상기 데이터 수신부는 해당 데이터에 대한 데이터 블록의 총 개수가 한 개로 판정하는 단계를 포함할 수 있다.If the total length of the read data is less than or equal to the length of the data portion, the data receiver may determine that the total number of data blocks for the data is one.
이러한 본 발명의 특징에 따르면, 데이터에 대한 데이터 패킷을 송신하는 데이터 송신 모듈은 UDP를 이용하여 데이터 패킷이 생성될 때마다 데이터 수신 모듈의 동작 상태에 무관하게 생성된 데이터 패킷을 전송한다. According to an aspect of the present invention, a data transmission module for transmitting a data packet for data transmits a generated data packet regardless of the operation state of the data reception module whenever a data packet is generated using UDP.
이로 인해, 데이터 송신 모듈에서 데이터 수신 모듈로의 데이터 패킷 전송 속도를 크게 향상된다.This greatly improves the data packet transmission speed from the data transmission module to the data reception module.
또한, 데이터 수신 모듈의 경우, 데이터 패킷의 수신 여부에 따라 플래그 값을 변경하여, 해당 데이터가 정상적으로 모두 수신되었는지를 판정한다.Further, in the case of the data receiving module, the flag value is changed according to whether or not the data packet is received, and it is judged whether or not the corresponding data is normally received.
이로 인해, 데이터 수신 모듈의 경우, 데이터 손실없이 정상적으로 수신된 데이터만을 원하는 곳으로 출력하므로, 데이터의 정확도는 증가한다.As a result, in the case of the data receiving module, only the normally received data is outputted to the desired place without data loss, so that the accuracy of the data increases.
도 1은 본 발명의 한 실시예에 따른 데이터 통신 시스템의 블럭도이다.
도 2은 본 발명의 한 실시예에 따른 데이터 통신 시스템의 전송 데이터와 각 데이터 블록을 이용하여 생성된 데이터 패킷 구조를 도시한 도면이다.
도 3은 도 1에 도시한 데이터 통신 시스템에서 데이터 송신 모듈의 데이터 패킷 생성부에 대한 동작 순서도이다.
도 4a 및 도 4b는 도 1에 도시한 데이터 통신 시스템에서 데이터 수신 모듈의 데이터 수신부에 대한 동작 순서도이다.
도 5은 도 1에 도시한 데이터 통신 시스템에서 데이터 송신 모듈과 데이터 수신 모듈 간의 데이터 패킷 흐름도이다.1 is a block diagram of a data communication system according to an embodiment of the present invention.
2 is a diagram illustrating transmission data in a data communication system and a data packet structure generated using each data block according to an embodiment of the present invention.
3 is a flowchart illustrating an operation of the data packet generation unit of the data transmission module in the data communication system shown in FIG.
4A and 4B are operational flowcharts of a data receiving unit of a data receiving module in the data communication system shown in FIG.
5 is a data packet flow diagram between a data transmission module and a data reception module in the data communication system shown in FIG.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.
어떤 구성요소가 다른 구성요소에 "접속되어" 있다거나 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 접속되어 있거나 연결되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 접속되어" 있다거나 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but it should be understood that there may be other elements in between do. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
그러면 첨부한 도면을 참고로 하여 본 발명의 한 실시예에 따른 데이터 통신시스템 및 그 방법에 대하여 설명한다.A data communication system and method according to an embodiment of the present invention will now be described with reference to the accompanying drawings.
먼저, 도 1 및 도 2를 참고로 하여 본 발명의 한 실시예에 따른 영상 데이터 통신 시스템에 대하여 상세하게 설명한다.First, a video data communication system according to an embodiment of the present invention will be described in detail with reference to FIG. 1 and FIG.
본 발명에 따른 데이터 통신 시스템은 컴퓨터나 스마트폰(smart phone) 등의 단말로부터 생성된 데이터(DAT)를 유선 또는 무선을 통해 원격지에 위치한 다른 단말로 전송하기 위한 시스템이다.The data communication system according to the present invention is a system for transmitting data (DAT) generated from a terminal such as a computer or a smart phone to another terminal located at a remote location via wired or wireless communication.
이러한 본 예의 통신 시스템은, 도 1에 도시한 것처럼, 데이터(DAT)가 수신하여 원격지로 전송하는 데이터 송신 모듈(10), 데이터 송신 모듈(10)로부터 전송된 데이터는 수신하는 데이터 수신 모듈(20), 그리고 데이터 송신 모듈(10)과 데이터 수신 모듈(20) 간의 통신을 실행시키는 통신망(30)을 구비한다.1, the
데이터 송신 모듈(10)은 데이터(DAT)를 수신하여 수신된 데이터(DAT)를 이용해 데이터 패킷을 생성하는 데이터 패킷 생성부(11), 데이터 패킷 생성부(11)와 연결되어 있고 생성된 데이터 패킷을 패킷 단위로 전송하는 패킷 전송부(12) 및 저장부(13)를 구비한다.The
데이터 패킷 생성부(11)는 입력 받은 데이터(DAT)를 적어도 하나의 데이터 블록(DB1-DBn)으로 분할하고, 식별 정보와 데이터 블록 정보를 구비한 헤더부 정보 및 분할된 각 데이터 블록(DB1-DBn)을 이용하여 정해진 포맷(format)으로 각 데이터 블록(DB1-DBn)에 대한 데이터 패킷(DP)으로 생성한다.The
본 예의 경우, 도 2에 도시한 것처럼, 데이터 패킷(DP)은 복수의 식별 번호(ID)와 데이터 블록 정보가 저장되는 헤더부(header)(101)와 분할된 각 데이터 블록(DB1-DBn) 즉, 해당 데이터 블록(DB1-DBn)에 속한 데이터(이하, '분할 데이터'라 함)가 저장되는 데이터부(102)를 구비한다.2, the data packet DP includes a header 101 in which a plurality of identification numbers (IDs) and data block information are stored, and each of the divided data blocks DB1 to DBn, That is, the data unit 102 stores data (hereinafter, referred to as 'divided data') belonging to the data blocks DB1 to DBn.
이때, 분할되는 데이터 블록(DB1-DBn)의 개수는 데이터부(102)의 저장 능력, 즉 데이터부(102)의 크기(byte)에 따라 정해진다. 즉, 데이터(DAT)의 총 크기(즉, 총 길이)를 데이터부(102)의 크기(길이)로 나누어 데이터 블록(DB1-DBn)의 개수를 정하고, 데이터 패킷(DP)의 개수는 정해진 데이터 블록(DB1-DBn)의 개수와 동일하다.At this time, the number of data blocks DB1-DBn to be divided is determined according to the storage capacity of the data portion 102, that is, the size (byte) of the data portion 102. [ Namely, the number of data blocks DB1-DBn is determined by dividing the total size (i.e., total length) of the data DAT by the size (length) of the data portion 102, Is equal to the number of blocks DB1-DBn.
헤더부(101)에 저장되는 헤더부 정보는 쓰레드(thread) 식별 번호(쓰레드 ID), 적어도 하나의 데이터 블록(DB1-DBn)으로 분할된 데이터(DAT)의 식별 번호(즉, 데이터 ID) 및 각 데이터 블록(DB1-DBn)의 식별 번호(즉, 데이터 블록 ID)와 같은 식별 번호, 그리고 각 데이터 블록(DB1-DBn)의 정보(즉, 데이터 블록 정보)이다.The header part information stored in the header part 101 includes a thread identification number (thread ID), an identification number (i.e., data ID) of data (DAT) divided into at least one data block (DB1-DBn) An identification number such as an identification number (i.e., data block ID) of each data block DB1-DBn, and information (i.e., data block information) of each data block DB1-DBn.
이때, 데이터 블록 정보는 데이터(DAT)의 총 길이(즉, 용량)와 각 데이터 블록(DB1-DBn)에 속해 있는 데이터의 위치 정보(예, X좌표와 Y좌표)일 수 있다.At this time, the data block information may be the total length (i.e., capacity) of the data DAT and the positional information (e.g., X coordinate and Y coordinate) of data belonging to each data block DB1-DBn.
본 예에서, 헤더부(101)의 길이는 21 바이트(byte)이고 데이터부(102)의 길이는 1451 바이트이지만, 마지막 블록(DBn)에 해당하는 데이터 패킷(DP)의 경우 데이터부(102)의 길이는 1451 바이트보다 작을 수 있다. In this example, the length of the header part 101 is 21 bytes and the length of the data part 102 is 1451 bytes. However, in case of the data packet DP corresponding to the last block DBn, May be less than 1451 bytes in length.
이처럼, 데이터 패킷 생성부(10)에 의해 데이터(DAT)가 적어도 하나의 데이터 패킷으로 재생성될 때마다 데이터 패킷 전송부(12)는 각 데이터 패킷(DP1-DPn)을 UDP(User Datagram Protocol)를 이용하여 브로드캐스팅(broadcasting)하여 하나씩 분할 전송한다.Each time the data DAT is regenerated as at least one data packet by the data
저장부(13)는 각 데이터 블록(DB1-DBn)의 분할 데이터와 데이터 블록 식별 번호, 현재 생성된 데이터 패킷 개수 등과 같이 생성된 데이터 패킷(DP)의 송신 동작에 필요한 데이터나 정보를 저장한다. The storage unit 13 stores data and information necessary for the transmission operation of the generated data packet DP, such as the division data of each data block DB1-DBn, the data block identification number, the number of currently generated data packets, and the like.
통신망(30)은 인터넷망과 LAN 등과 같은 유선 통신망 또는 무선 통신망일 수 있다.The
데이터 수신 모듈(20)은 통신망(30)을 통해 송신되는 데이터 패킷(DP)을 수신하는 데이터 수신부(21), 데이터 수신부(21)에 연결되어 있고 복수의 버퍼(buffer)를 구비한 버퍼부(22), 데이터 수신부(21)에 연결되어 있고 복수의 플래그(flag)를 구비하고 있는 플래그 저장부(23), 그리고 데이터 수신부(21)에 연결되어 있는 저장부(24)를 구비한다.The
데이터 수신 모듈(20)의 데이터 수신부(21)는 통신망(30)을 통해 각 데이터 블록(DB1-DBn)에 대응하는 데이터 패킷(DP)이 분할 전송되면, 전송된 데이터 패킷(DP)의 헤더부(101)에 저장되어 있는 정보를 이용하여 전송되는 데이터(DAT)를 저장하기 위한 버퍼(buffer)의 개수와 플래그(flag)의 개수를 산출하여 적어도 하나의 버퍼(buffer)와 플래그를 버퍼부(22)와 플래그 저장부(23)에 각각 형성한다.The
또한, 데이터 수신부(21)는 각 데이터 패킷(DP)의 전송 여부에 따라 플래그 저장부(23)의 플래그(flag)의 값을 결정한다.The
따라서, 데이터 송신 모듈(10)로부터 해당 데이터(DAT)의 전송이 완료되면, 데이터 수신부(21)는 플래그 저장부(23)의 플래그 값을 이용하여 해당 데이터(DAT)가 정상적으로 전송 완료되었는지의 여부를 판정하여, 정상적으로 전송 완료가 행해진 데이터(DAT)를 외부 단말로 출력한다.Therefore, when the transmission of the corresponding data (DAT) from the
버퍼부(22)는 이미 설명한 것처럼 데이터 수신(21)에 의해 생성된 적어도 하나의 버퍼를 구비하고 있고, 플래그 저장부(23)는 각 데이터 패킷(DP)의 전송 여부에 따라 값이 달라지는 적어도 하나의 플래그를 구비하고 있다.The
이때, 버퍼의 개수는 데이터 블록(DB1-DBn)의 개수의 동일할 수 있고, 플래그의 개수는 버퍼의 개수와 동일할 수 있다.At this time, the number of buffers may be the same as the number of data blocks DB1-DBn, and the number of flags may be the same as the number of buffers.
저장부(24)는 각 데이터 패킷(DP)의 헤더부(101)에 저장된 헤더부 정보와 같이, 데이터 수신 모듈(20)의 동작에 필요한 데이터와 정보를 저장하고 있다.The
다음, 도 3 내지 도 5를 참고로 하여, 본 예에 따른 데이터 통신 시스템의 동작을 설명한다.Next, the operation of the data communication system according to this example will be described with reference to Figs. 3 to 5. Fig.
먼저, 도 3을 참고로 하여, 데이터 송신 모듈(10)의 동작을 좀더 자세히 설명한다.First, the operation of the
먼저, 동작이 시작되면(S10), 데이터 패킷 생성부(11)는 입력된 데이터(DAT)를 적어도 하나의 데이터 블록(DB1-DBn)으로 분할하여 적어도 하나의 데이터 블록(DB1-DBn)을 생성한다.First, when the operation starts (S10), the data
이를 위해, 데이터 패킷 생성부(11)는 해당 데이터(DAT)의 총 길이를 판정하여, 데이터의 총 길이를 데이터부(예, 1451 바이트)의 길이로 나누어 적어도 데이터 블록(DB1-DBn)을 생성하고 각 생성된 데이터 블록(DB1-DBn)에 식별 번호(ID)를 부여하여 데이터 블록 식별 번호를 생성하여, 데이터 블록(DB1-DBn)별로 해당 분할 데이터와 데이터 블록 식별 번호를 저장부(13)에 저장한다(S11).To this end, the
다음, 데이터 패킷 생성부(11)는 또한 데이터(DAT)를 위해 생성될 데이터 패킷(DP)의 총 개수를 산출하는 동작을 실시한다.Next, the data
따라서, 데이터 패킷 생성부(11)는 데이터(DAT)의 총 길이를 판정한 후(S12), 데이터(DAT)의 총 길이를 데이터부(예, 1451 바이트)의 길이로 나눈다(S13).Therefore, after determining the total length of the data DAT (S12), the data
다음, 산출 동작에 위해 나머지의 값이 '0'일 경우(S14), 데이터 패킷 생성부(11)는 데이터 패킷의 개수를 몫의 값으로 결정하고(S15), 나머지의 값이 '0'이 아닐 경우(S14), 데이터 패킷 생성부(11)는 데이터 패킷의 총 개수를 몫에 '1'을 더한 값으로 결정한다(S16).Next, when the remaining value for the calculation operation is '0' (S14), the data
그런 다음, 데이터 패킷 생성부(11)는 저장부(13)에 저장되어 있는 각 데이터 블록(DB1-DBn)에 대한 분할 데이터를 전송하기 위한 데이터 패킷(DP)의 생성 동작을 실시한다.The data
이를 위해, 데이터 패킷 생성부(11)는 먼저 저장부(13)에 저장된 생성된 데이터 패킷 개수를 읽어와 현재 생성될 데이터 패킷이 해당 데이터(DAT)에 대응하는 마지막 데이터 패킷인지를 판정한다(S17).To this end, the data
따라서, 현재 생성된 데이터 패킷 개수와 데이터 패킷 총 개수를 이용하여 현재 생성된 데이터 패킷이 마지막 데이터 패킷이 아닐 경우, 데이터 패킷 생성부(11)는 데이터 패킷의 헤더부(101)에 저장되는 헤더부 정보를 생성한다(S18).Therefore, if the currently generated data packet is not the last data packet using the number of currently generated data packets and the total number of data packets, the data
따라서, 데이터 패킷 생성부(11)는 입력된 데이터(DAT)에 부여된 식별 번호를 이용하여 데이터 식별 번호를 정하고, 분할된 데이터 블록(DB1-DBn)마다 부여된 고유의 데이터 블록 식별 번호를 이용하여 데이터 블록 식별 번호로 정한다.Therefore, the data
따라서, 데이터 식별 번호를 현재 데이터 패킷이 어떤 데이터(예, DAT)에 해당하는 것인지를 알려주고, 데이터 블록 식별 번호는 분할된 데이터 블록(DB1-DBn) 중 어느 데이터 블록에 해당하는 것인지 알려준다.Therefore, the data identification number indicates which data (e.g., DAT) the current data packet corresponds to, and the data block identification number indicates which data block among the divided data blocks DB1-DBn.
또한, 데이터 패킷 생성부(11)는 데이터(DAT)의 총 길이와 각 데이터 블록(DB1-DBn)에 저장된 분할 데이터의 X좌표와 Y좌표와 같은 분할 데이터 정보를 이용하여 데이터 블록 정보를 생성한다.The data
이처럼, 데이터 패킷의 헤더부(101)에 저장될 헤더부 정보가 생성되면, 데이터 패킷 생성부(11)는 헤더부 정보와 해당 데이터 블록(예, DB1)에 대응하는 블록 데이터를 데이터 패킷의 해당 번지에 저장하여 해당 데이터 블록(예, DB1)에 대한 데이터 패킷(예, 제1 데이터 패킷)(DP)을 생성한 후(S19), 생성된 데이터 패킷(DP)을 데이터 패킷 전송부(12)로 전송된다(S110).When the header part information to be stored in the header part 101 of the data packet is generated, the data
따라서 데이터 패킷 전송부(12)는 통신망(30)에 접속해 데이터 패킷 생성부(11)로부터 전송된 데이터 패킷(DP)을 데이터 수신 모듈(20)로 전송한다. 이 경우, 데이터 패킷 전송부(12)는 해당 데이터 패킷에 대한 총 길이에 대한 정보도 함께 전송한다.The data
이때, 데이터 패킷 전송부(12)는 UDP(예, UDP/IP)를 이용하여 데이터 패킷(DP)을 전송한다.At this time, the data
이처럼, 생성된 데이터 패킷(DP)의 전송을 위한 동작 완료되면, 데이터 패킷 생성부(11)는 현재 생성된 데이터 패킷 개수를 '1' 증가시켜 현재 생성된 데이터 패킷 개수를 갱신하여 저장부(13)에 저장한다(S111). When the operation for transmitting the generated data packet DP is completed, the
그런 다음, 데이터 패킷 생성부(11)는 다시 단계(S17)로 넘어가 다음 데이터 블록(예, DB2)에 대한 데이터 패킷(예, 제2 데이터 패킷)의 생성 동작을 실시한다.The data
하지만, 단계(S17)에서 현재 생성될 데이터 패킷이 해당 데이터(DAT)의 마지막 데이터 블록(DBn)에 데이터 패킷으로서 해당 데이터(DAT)에 대한 마지막 데이터 패킷일 경우, 데이터 패킷 생성부(11)는 마지막 데이터 패킷(DP)의 데이터부(102)의 길이를 산출한다(S112).However, if the data packet to be currently generated in step S17 is the last data packet for the corresponding data (DAT) as the data packet in the last data block DBn of the data DAT, the data
즉, 데이터 패킷 생성부(11)는 데이터(DAT)의 적어도 하나의 데이터 블록(DB1-DBn)으로 분할할 때의 나머지 값을 마지막 데이터 패킷(DP)에 대한 데이터부(102)의 길이로 산출한다.That is, the data
그런 다음, 이미 설명한 단계(S18-S110)의 동작과 동일하게 해당 데이터(DAT)에 대한 마지막 데이터 패킷(DP)을 생성하여 데이터 패킷 전송부(12)로 전달한다(S113-S115).Then, in the same manner as the operation of steps S18-S110, the last data packet DP for the data DAT is generated and transmitted to the data packet transfer unit 12 (S113-S115).
따라서, 데이터 패킷 전송부(12)는 마지막 데이터 블록(DBn)에 대한 데이터 패킷을 통신망(30)을 통해 데이터 수신 모듈(20)로 전송한다.Accordingly, the data
그런 다음, 데이터 패킷 생성부(11)는 해당 데이터(DAT)에 대한 데이터 패킷생성 동작을 완료하였으므로, 현재 생성된 데이터 패킷 개수를 '0'으로 초기화한다(S116).Then, since the data
이처럼, 해당 데이터(DAT)의 마지막 데이터 블록(DBn)에 대한 데이터 패킷(즉, 제n 데이터 패킷)(DP)의 생성 동작을 완료한 후, 데이터 패킷 생성부(11)는 데이터 전송 완료 신호를 생성해 데이터 패킷 전송부(12)로 전송하여 데이터 수신 모듈(20)로 전송하도록 한다(S117, S118).After completing the generation of the data packet (i.e., the nth data packet DP) for the last data block DBn of the data DAT, the data
이로 인해, 데이터 패킷 생성부(11)는 해당 데이터(DAT)의 모든 데이터 블록(DB1-DBn)에 대한 데이터 패킷을 생성하여 생성될 때마다 데이터 수신 모듈(20)로의 전송을 모두 완료하면, 데이터 전송 완료 신호를 생성해 해당 데이터(DAT)에 대한 데이터 전송 완료를 데이터 수신 모듈(20)이 알 수 있도록 한다.The
이러한 데이터 송신 모듈(10)의 동작에 의해, 도 5에 도시한 것처럼, 해당 데이터(DAT)의 각 데이터 블록(DB1-DBn)에 대한 해당 데이터 패킷(예, 제1 내지 제n 데이터 패킷)이 생성될 때마다 데이터 송신 모듈(10)로부터 데이터 수신 모듈(20)로 데이터 패킷이 전송된다.5, the corresponding data packets (e.g., first to n-th data packets) for each data block DB1 to DBn of the corresponding data DAT A data packet is transmitted from the
도 5에서 이해를 돕기 위해 기재된 (1/n, 2/n, 3/n, n/n, 1/m)(n= 1, 2, 3,…, n 이고, m= 1, 2, 3,…, m)에서, 분자에 기재된 숫자(예, 1, 2, 3, 4)는 전송되는 데이터 패킷(DP)의 번호를 의미하고 분모에 기재된 숫자(n, m)는 해당 데이터(DAT, DAT1)에 대한 데이터 패킷의 총 개수로서 이 숫자는 데이터 블록의 총 수를 의미한다. (1 / n, 2 / n, 3 / n, n / n, 1 / m) (n = 1, 2, 3, ..., n, m = 1, 2, 3 (N, m) denoted in the denominator correspond to the data (DAT, n, m) denoted in the denominator, DAT1), which is the total number of data blocks.
다음, 도 4a 및 도 4b를 참고로 하여, 데이터 수신 모듈(20)의 동작이 시작되면(S20), 데이터 수신부(21)는 데이터 패킷이 전송되었는지 판단한다(S22).Referring to FIGS. 4A and 4B, when the operation of the
데이터 패킷이 전송되면(S22), 데이터 수신부(21)는 헤더부(101)에 저장되어 있는 헤더부 정보의 판독하여 판독된 헤더부 정보를 저장부(23)에 저장한다(S23).When the data packet is transmitted (S22), the
다음, 데이터 수신부(21)는 판독된 헤더부 정보에 속해있는 데이터(DAT)의 총 길이가 데이터부의 길이보다 작거나 같은지 판단하여, 해당 데이터(DAT)에 대한 데이터 블록의 총 개수가 한 개인지를 판단한다(S24).Next, the
판독된 데이터(DAT)의 총 길이가 데이터부의 길이보다 작거나 같아 해당 데이터(DAT)에 대한 데이터 블록의 총 개수가 한 개로서, 현재 단계(S22)에서 전송된 데이터 패킷이 해당 데이터(DAT)에 대한 데이터 패킷(DP) 전부인 경우, 데이터 수신부(21)는 전송된 데이터 패킷의 데이터부(102)에 저장되어 있는 분할 데이터를 추출한 후(S25), 해당 단말에 적합한 상태로 데이터의 변환 동작을 실시한 다음 해당 단말로 출력한다(S26, S27).If the total length of the read data DAT is less than or equal to the length of the data portion and the total number of data blocks for the data DAT is one and the data packet transmitted in the current step S22 is the data DAT, The
이때, 데이터 수신부(21)는 이미 기재한 것처럼, 데이터 송신 모듈(10)로부터 전송되는 데이터 패킷의 총 길이에 대한 정보를 수신하고, 이미 저장부(24)에 헤더부(101)의 총 길이에 대한 정보를 저장하고 있으므로, 데이터 수신부(21)는 전송된 데이터 패킷(DP)에서 유효 데이터, 즉 해당 데이터 블록에 대한 분할 데이터의 저장 위치를 알 수 있다. At this time, as described above, the
데이터 변환 동작을 위한 데이터 수신부(21)의 동작의 한 예는 다음과 같다. An example of the operation of the
데이터 수신부(21)는 바이트코드(bytecode) 형태의 전송된 데이터를 이미지(image) 형태의 이미지 파일로 변환하고, 판독된 헤더부 정보에 저장된 X 좌표와 Y 좌표를 이용하여 변환된 이미지 파일을 저장부(24)에 저장되어 있는 기준 이미지와 결합시킨다. 그런 다음, 데이터 수신(21)는 데이터 수신된 결합된 이미지 파일을 해당 단말로 출력하여 해당 단말의 표시부(도시하지 않음)로 이미지 파일에 대한 영상이 출력될 수 있도록 한다. The
이러한 데이터 변환 동작은 필요에 따라 생략될 수 있다.This data conversion operation may be omitted as needed.
다시 단계(S24)로 넘어가, 판독된 데이터(DAT)의 총 길이가 데이터부(102)의 길이보다 커 전송될 데이터 패킷(DP)이 더 존재하는 상태로 판단되면(S24), 판독된 데이터 총 길이의 값을 데이터부의 길이로 나눠서 생성될 버퍼와 플래그의 개수를 산출하여(S28), 산출된 개수만큼 버퍼부(22)에 버퍼(BP)를 생성하고 플래그 저장부(23)에 플래그(FP)를 생성한다(S29).If it is determined in step S24 that the total length of the read data DAT is greater than the length of the data part 102 and that there is more data packet DP to be transmitted (S24) (Step S28), the buffer BP is generated in the
이때, 데이터 패킷의 개수 생성 방식과 동일하고 나머지가 '0'일 경우, 생성될 버퍼 및 플래그의 개수는 몫의 값과 동일하고 나머지가 '0'이 아닐 경우 생성될 버퍼 및 플래그의 개수는 몫에 '1'을 더한 값과 동일하다. If the number of buffers and flags to be generated is the same as the value of the quotient and the rest is not '0', the number of buffers and flags to be generated is a quotient Quot; 1 "
데이터 수신부(21)는 단계(S25)와 동일한 방식으로 전송된 데이터 패킷(DP)의 데이터부(102)에 저장된 해당 데이터 블록(DB1-DBn)에 대한 분할 데이터를 추출하여(S210), 해당 버퍼에 저장한다(S211). 이때, 데이터 수신부(21)는 헤더부 정보의 데이터 블록 식별 번호와 동일한 식별 번호(ID)를 갖는 버퍼에 저장된다.The
그런 다음, 데이터 수신부(21)는 분할 데이터가 저장된 버퍼에 대응하는 버퍼의 식별 번호와 동일한 식별 번호를 갖는 해당 플래그의 값을 초기값(예, 0)에서 설정 값(예, 1)으로 변경하여 저장하여(S212), 해당 데이터 블록에 대한 데이터 패킷(DP)의 전송 완료가 안정적으로 행해졌음을 해당 플래그에 표시한다.Then, the
이처럼, 데이터 송신 모듈(10)로부터 해당 데이터(DAT)에 해당하는 데이터 패킷(DP)이 처음으로 전송될 경우, 데이터 수신부(21)는 데이터 총 길이를 이용하여 해당 개수만큼의 버퍼와 플래그를 생성한 후 해당 버퍼에 해당하는 분할 데이터를 저장하고 해당 플래그에 해당 분할 데이터의 전송 완료 상태를 표시한다.When the data packet DP corresponding to the data DAT is first transmitted from the
다음, 데이터 수신부(21)는 데이터 송신 모듈(10)로부터 데이터 전송 완료 신호가 수신되는지의 여부를 판정한다(S2121).Next, the
전송 완료 신호가 데이터 송신 모듈(10)로부터 전송되면, 데이터 수신부(21)는 적어도 하나의 데이터 블록(DB1-DBn)을 구비하고 있는 해당 데이터(DAT)에 대한 데이터 전송이 완료된 상태로 판정하고, 그렇지 않을 경우, 해당 데이터(DAT)에 대한 전송할 데이터(즉, 분할 데이터)가 남아 있는 상태로 판정한다.When the transmission completion signal is transmitted from the
따라서, 전송 완료 신호가 수신되지 않을 경우, 데이터 수신부(21)는 해당 데이터(DAT)에 대한 다음 데이터 패킷이 전송되는지를 판단한다(S213).Therefore, if the transmission completion signal is not received, the
따라서, 다시 데이터 패킷이 전송되면(S213), 데이터 수신부(21)는 헤더부(101)에 저장된 헤더부 정보를 판독하여 저장부(24)에 저장한다(S214)).Therefore, if the data packet is transmitted again (S213), the
판독된 헤더부 정보에 의해 판정된 현재 데이터 식별 번호가 이전 데이터 식별 번호, 즉 바로 이전에 전송된 데이터 패킷의 헤더부(101)에 저장된 데이터 식별 번호와 동일한지를 판단한다(S215).(S215) whether the current data identification number determined by the read header information is the same as the previous data identification number, i.e., the data identification number stored in the header 101 of the immediately preceding data packet.
현재 데이터 식별 번호가 이전 데이터 식별 번호와 동일할 경우(S215), 즉 전송된 데이터 패킷이 동일한 데이터(DAT)에 속하는 데이터 패킷일 경우, 데이터 수신부(21)는 이미 단계(S210-S212)에서 설명한 것처럼 데이터부(102)에 저장된 분할 데이터를 추출하여(S216) 해당하는 버퍼에 저장하고, 해당 버퍼에 대응하는 플래그 값을 '1'로 변한다(S217, S218).If the current data identification number is the same as the previous data identification number (S215), that is, if the transmitted data packet is a data packet belonging to the same data (DAT) (S216), stores the divided data in the corresponding buffer, and changes the flag value corresponding to the buffer to "1" (S217, S218).
따라서, 이러한 동작을 통해 해당 데이터(DAT)의 각 데이터 블록(DB1-DBn)에 해당하는 데이터 패킷(DP)이 전송될 때마다 버퍼부(22)로의 저장 동작이 행해지고, 또한 해당 플래그의 값이 초기값에서 설정 값으로 변환되어 데이터 블록(DB1-DBn)에 대한 데이터 패킷(DP)의 수신 완료 상태를 나타낸다.Accordingly, the storing operation is performed in the
하지만, 단계(S215)에서 판단된 현재 데이터 식별 번호가 이전 데이터 식별 번호와 상이할 경우, 데이터 수신부(21)는 이전 데이터(DAT)와 다른 데이터(예, DAT1)의 전송이 시작된 상태로 판단한다. However, if the current data identification number determined in step S215 differs from the previous data identification number, the
따라서, 단계(S28-S212)를 참고로 하여 설명한 것처럼, 새로운 데이터(DAT1)을 위한 버퍼를 생성한 후, 해당 버퍼에 전송된 분할 데이터의 저장 동작을 실시하고 해당 플러그의 값을 '1'로 변경한다(S219-S223).Therefore, as described with reference to steps S28-S212, after generating a buffer for the new data DAT1, the storage operation of the divided data transmitted to the buffer is performed and the value of the corresponding plug is set to '1' (S219-S223).
그런 다음, 데이터 수신부(21)는 플래그 저장부(23)에 저장되어 있는 이전 데이터(DAT)에 해당하는 플래그들의 값을 판독하여(S224), 초기값(예, 0)을 갖는 플래그가 존재하는지 판정한다(S225).Then, the
복수의 플래그 중에서 '0'의 값을 갖는 플래그가 존재할 경우, 데이터 수신부(21)는 해당 데이터(DAT)의 전송 동작이 비정상적으로 행해진 상태, 즉 해당 데이터(DAT)의 일부가 전송 도중 손실된 상태로 판정한다.If there is a flag having a value of '0' among the plurality of flags, the
따라서, 데이터 수신부(21)는 버퍼부(22)의 해당 버퍼에 저장되어 있는 데이터(DAT)에 대응하는 분할 데이터를 모두 삭제하여(S226), 다른 단말로의 출력을 실시하지 않는다.Therefore, the
하지만, 해당 데이터(DAT)에 대응하는 복수의 플래그 중에서 초기값인'0'의 값을 갖는 플래그가 존재하지 않고 모든 플래그가 '1'의 값을 가질 경우, 데이터 수신부(21)는 해당 데이터(DAT)의 전송 동작이 정상적으로 행해져 해당 데이터(DAT)의 모든 분할 데이터가 정상적으로 전송된 상태로 판정한다.However, if there is no flag having a value of '0' as an initial value among a plurality of flags corresponding to the data DAT and all the flags have a value of '1', the
이로 인해, 데이터 수신부(21)는 전송이 완료되어 버퍼부(22)에 저장되어 있는 해당 데이터(DAT)에 해당하는 데이터를 읽어와(S227), 필요할 경우 이미 단계(S26-S27)에서 설명한 것처럼 변환한 후 해당 단말로의 출력 동작을 실시한다(S228, S229).Accordingly, the
그런 다음, 다시 다음 데이터(DAT1)에 대한 데이터 패킷(DP)의 수신 동작을 위해 단게(S2121)로 넘어간다.Then, the process goes to step S2121 for receiving the data packet DP for the next data DAT1 again.
또한, 단계(S2121)에서 데이터 전송 완료 신호가 수신되면, 데이터 수신 모듈(20)는 데이터 송신 모듈(10)에 의한 해당 데이터(예, DAT)의 전송 동작이 완료된 상태로 판정한다.When the data transmission completion signal is received in step S2121, the
따라서, 데이터 수신 모듈(20)는 이미 설명한 단계(S224-S225)의 동작과 동일하게 해당 데이터(DAT)에 대한 플래그의 값을 이용하여 해당 데이터(DAT)의 전송 동작이 정상적으로 행했는지를 판정한 후(S2210, S2211), 해당 데이터(DAT)의 전송 동작이 정상적으로 행해질 경우 해당 단말로의 출력 동작을 실시하고(S2213-S2215), 그렇지 않을 경우, 버퍼부(22)의 해당 부분에 저장되어 있는 데이터(DAT)를 삭제한다(S2212).Accordingly, the
이와 같이, 본 예에 따른 데이터 통신 시스템의 경우, UDP를 기반으로 하고 있으므로, 데이터 송신 모듈(10)은 데이터 수신 모듈(20)의 수신 확인 여부에 관계없이 생성된 데이터 패킷(DP)의 전송 동작을 실시하므로, 데이터 송신 모듈(10)에서 해당 데이터를 전송하는 전송 속도는 TCP를 기반으로 하는 통신 방식보다 훨씬 신속하게 행해진다.Thus, in the case of the data communication system according to the present embodiment, the
또한, 데이터 수신 모듈(20)의 경우, 각 데이터 패킷이 수신될 때마다 플래그를 이용하여 해당 데이터 패킷의 정상 수신 상태를 판정하므로, 데이터 수신 모듈(20)의 플래그의 상태를 이용하여 전송된 데이터의 향후 처리 상태를 결정한다.Further, in the case of the
따라서, 비정상 상태로 데이터가 전송된 상태로 판정되면, 전송된 데이터를 해당 단말로 출력하지 않으므로, 해당 단말의 표시부로 비정상적인 데이터의 출력이 행해지는 것을 방지한다.Accordingly, if it is determined that the data is transmitted in the abnormal state, the transmitted data is not output to the terminal, thereby preventing abnormal data from being output to the display unit of the terminal.
이상에서 본 발명의 바람직한 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, Of the right.
10: 데이터 송신 모듈 20: 데이터 수신 모듈
30: 통신부 11: 데이터 패킷 생성부
12: 데이터 패킷 전송부 21: 데이터 수신부
22: 버퍼부 23: 플래그부
12, 24: 저장부 DB1-DBn: 데이터 블록
DP: 데이터 패킷 101: 헤더부
102: 데이터부10: Data transmission module 20: Data reception module
30: communication unit 11: data packet generation unit
12: data packet transmission unit 21: data reception unit
22: buffer unit 23: flag unit
12, 24: storage unit DB1-DBn: data block
DP: Data packet 101: Header part
102: Data section
Claims (12)
복수의 플래그를 저장하고 있는 플래그 저장부, 그리고
헤더부와 데이터부를 구비하고 있고 데이터에 대한 데이터 패킷을 수신하여, 상기 데이터 패킷의 헤더부에 저장된 데이터의 총 길이와 데이터부의 길이를 이용하여, 상기 데이터에 해당하는 데이터 패킷이 복수 개일 경우, 버퍼와 플래그의 개수를 산출하여 산출된 개수만큼 상기 버퍼부와 상기 플래그 저장부에 각각 버퍼와 플래그를 생성하고, 전송된 상기 데이터 패킷에 저장된 유효 데이터를 추출하여 버퍼에 저장하고 상기 버퍼에 대응하는 플래그의 값을 초기값에서 설정값으로 변환하고, 데이터 전송 완료 신호가 수신될 경우, 상기 플래그 저장부에 저장되어 있는 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하면 상기 버퍼부에 저장되어 있는 데이터를 삭제하고, 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하지 않으면 상기 버퍼부에 저장되어 있는 외부 단말로 데이터를 출력하는 데이터 수신부
를 포함하는 데이터 통신 시스템.A buffer unit storing a plurality of buffers,
A flag storage unit storing a plurality of flags, and
When a plurality of data packets corresponding to the data are received by using a total length of data stored in a header portion of the data packet and a length of the data portion, the data packet including a header portion and a data portion, And a control unit for generating a buffer and a flag in the buffer unit and the flag storage unit by the number calculated by calculating the number of flags, extracting valid data stored in the transmitted data packet, storing the extracted valid data in a buffer, When a data transfer completion signal is received and a flag for holding an initial value among a plurality of flags stored in the flag storage unit is present, the data stored in the buffer unit If there is no flag for retaining the initial value among the plurality of flags A data receiving unit for outputting data to an external terminal stored in the buffer unit,
≪ / RTI >
상기 데이터 패킷은 UDP(user datagram protocol)를 이용하여 전송되는 데이터 통신 시스템.The method of claim 1,
Wherein the data packet is transmitted using UDP (user datagram protocol).
상기 데이터 수신부는 상기 데이터의 총 길이를 상기 데이터부의 길이로 나눠, 나머지가 '0'일 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 몫의 값과 동일하게 산출하고, 나머지가 '0'이 아닐 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 상기 몫에 '1'을 더한 값과 동일하게 산출하는 데이터 통신 시스템.The method of claim 1,
The data receiver divides the total length of the data by the length of the data portion and calculates the number of buffers and the number of flags equal to a quotient if the remainder is' Otherwise, the number of buffers and the number of flags are calculated to be equal to a value obtained by adding '1' to the quotient.
상기 데이터 수신부는 상기 데이터에 해당하는 데이터 패킷이 한 개일 경우, 전송된 상기 데이터 패킷의 상기 데이터부에 저장된 유효 데이터를 추출하여 외부 단말로 출력하는 데이터 통신 시스템.The method of claim 1,
Wherein the data receiving unit extracts valid data stored in the data unit of the transmitted data packet and outputs the valid data to an external terminal when the data packet corresponding to the data is one.
상기 데이터 수신부는 전송된 데이터 패킷의 헤더부에 저장된 현재 데이터 식별 번호가 이전에 전송된 데이터 패킷의 헤더부에 저장된 이전 데이터 식별 번호와 상이할 경우, 상기 플래그 저장부에 저장되어 있는 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하면 상기 버퍼부에 저장되어 있는 데이터를 삭제하고, 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하지 않으면 상기 버퍼부에 저장되어 있는 외부 단말로 데이터를 출력하는 데이터 통신 시스템.The method of claim 1,
When the current data identification number stored in the header portion of the transmitted data packet differs from the previous data identification number stored in the header portion of the previously transmitted data packet, the data receiving portion stores, among the plurality of flags stored in the flag storage portion, If there is a flag for retaining the initial value, deletes the data stored in the buffer unit, and if there is no flag for holding the initial value among the plurality of flags, data for outputting data to the external terminal stored in the buffer unit Communication system.
상기 데이터를 적어도 하나의 데이터 블록으로 분할하고, 분할된 각 데이터 블록에 대한 데이터 패킷을 생성하여 상기 데이터 수신부로 생성된 상기 데이터 패킷을 송신하는 데이터 송신 모듈을 더 포함하는 데이터 통신 시스템.The method of claim 1,
Further comprising a data transmission module for dividing the data into at least one data block, generating a data packet for each divided data block, and transmitting the data packet generated by the data receiver.
상기 데이터 송신 모듈은 상기 헤더부에 저장된 데이터의 총 길이를 판정하여, 데이터의 총 길이를 데이터부의 길이로 나누어 상기 데이터를 상기 적어도 하나의 데이터 블록으로 분할하는 데이터 통신 시스템.The method of claim 6,
Wherein the data transmission module determines the total length of data stored in the header portion and divides the total length of the data by the length of the data portion and divides the data into the at least one data block.
상기 데이터 패킷이 수신되면 상기 데이터 수신부는 상기 데이터 패킷의 헤더부에 저장된 데이터의 총 길이와 데이터부의 길이를 이용하여, 상기 데이터에 해당하는 데이터 패킷이 복수 개인지를 판단하는 단계,
상기 데이터에 해당하는 데이터 패킷이 복수 개일 경우, 상기 데이터 수신부는 버퍼와 플래그의 개수를 산출하여 산출된 개수만큼 버퍼부와 플래그 저장부에 각각 버퍼와 플래그를 생성하는 단계,
상기 데이터 수신부는 전송된 상기 데이터 패킷에 저장된 유효 데이터를 추출하여 상기 버퍼에 저장하고 상기 버퍼에 대응하는 플래그의 값을 초기값에서 설정값으로 변환하는 단계,
상기 데이터 수신부는 데이터 전송 완료 신호가 수신되는 지를 판단하는 단계,
상기 데이터 전송 완료 신호가 수신되면, 상기 데이터 수신부는 플래그 저장부에 저장되어 있는 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하는지를 판단하는 단계, 그리고
상기 초기값을 유지하는 플래그가 존재할 경우, 상기 데이터 수신부는 상기 버퍼부에 저장되어 있는 데이터를 삭제하고, 복수의 플래그 중에서 초기값을 유지하는 플래그가 존재하지 않으면 상기 버퍼부에 저장되어 있는 외부 단말로 데이터를 출력하는 단계
를 포함하는 데이터 통신 방법.The data receiving unit may include a step of determining whether a data packet is received,
When the data packet is received, the data receiver determines whether there are a plurality of data packets corresponding to the data using the total length of the data stored in the header portion of the data packet and the length of the data portion,
If the number of data packets corresponding to the data is plural, the data receiving unit calculates the number of buffers and flags and generates buffers and flags in the buffer units and the flag storage units by the calculated number,
The data receiving unit extracts valid data stored in the transmitted data packet, stores the valid data in the buffer, and converts a value of a flag corresponding to the buffer from an initial value to a set value,
The data receiving unit may determine whether a data transmission completion signal is received,
When the data transmission completion signal is received, the data receiver determines whether a flag for holding an initial value among a plurality of flags stored in the flag storage unit is present, and
If there is a flag for holding the initial value, the data receiver deletes the data stored in the buffer unit, and if there is no flag for holding the initial value among the plurality of flags, The step of outputting the data
Lt; / RTI >
상기 데이터 패킷은 UDP(user datagram protocol)를 이용하여 전송되는 데이터 통신 방법.9. The method of claim 8,
Wherein the data packet is transmitted using UDP (user datagram protocol).
상기 버퍼와 플래그 생성 단계는,
상기 데이터의 총 길이를 상기 데이터부의 길이로 나눠, 나머지가 '0'인지를 판단하는 단계,
상기 나머지가 '0'일 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 몫의 값과 동일하게 산출하는 단계, 그리고
상기 나머지가 '0'이 아닐 경우, 상기 버퍼의 개수와 상기 플래그의 개수를 상기 몫에 '1'을 더한 값과 동일하게 산출하는 단계
를 포함하는 데이터 통신 방법.9. The method of claim 8,
The buffer and flag generation step may include:
Dividing the total length of the data by the length of the data portion and determining whether the remainder is '0'
Calculating the number of buffers and the number of flags equal to a quotient if the remainder is '0'; and
If the remainder is not '0', calculating the number of buffers and the number of flags equal to a value obtained by adding '1' to the quotient
Lt; / RTI >
상기 데이터에 해당하는 데이터 패킷이 한 개일 경우, 상기 데이터 수신부가 전송된 상기 데이터 패킷의 상기 데이터부에 저장된 유효 데이터를 추출하는 단계와 추출된 상기 유효 데이터를 외부 단말로 출력하는 단계를 더 포함하는 데이터 통신 방법.9. The method of claim 8,
Extracting valid data stored in the data portion of the data packet transmitted by the data receiver and outputting the extracted valid data to an external terminal when the data packet corresponding to the data is one Data communication method.
판독된 데이터의 총 길이가 데이터부의 길이보다 작거나 같으면, 상기 데이터 수신부는 해당 데이터에 대한 데이터 블록의 총 개수가 한 개로 판정하는 단계를 포함하는 데이터 통신 방법.12. The method of claim 11,
If the total length of the read data is less than or equal to the length of the data portion, the data receiver determines that the total number of data blocks for the data is one.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140071323A KR101442485B1 (en) | 2014-06-12 | 2014-06-12 | System and method for transmitting data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140071323A KR101442485B1 (en) | 2014-06-12 | 2014-06-12 | System and method for transmitting data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101442485B1 true KR101442485B1 (en) | 2014-09-25 |
Family
ID=51760637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140071323A KR101442485B1 (en) | 2014-06-12 | 2014-06-12 | System and method for transmitting data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101442485B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180131095A (en) * | 2017-05-31 | 2018-12-10 | 현대자동차주식회사 | I2c speed-up communication system and controlling method for transmitting data using heterogeneous protocols |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100025066A (en) * | 2008-08-27 | 2010-03-09 | (주) 엘지텔레콤 | System and method for transmitting data using udp in mobile network |
-
2014
- 2014-06-12 KR KR1020140071323A patent/KR101442485B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100025066A (en) * | 2008-08-27 | 2010-03-09 | (주) 엘지텔레콤 | System and method for transmitting data using udp in mobile network |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180131095A (en) * | 2017-05-31 | 2018-12-10 | 현대자동차주식회사 | I2c speed-up communication system and controlling method for transmitting data using heterogeneous protocols |
KR102368600B1 (en) * | 2017-05-31 | 2022-03-02 | 현대자동차주식회사 | I2c speed-up communication system and controlling method for transmitting data using heterogeneous protocols |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100071008A1 (en) | System and method for transmitting an animated figure | |
CN108737006A (en) | A kind of method for synchronizing time, client and computer readable storage medium | |
CN111917661B (en) | Data transmission method, device, electronic equipment and computer readable storage medium | |
KR20150083311A (en) | Apparatus and method for processing mmt signaling message | |
KR20160122601A (en) | Method for synchronizing time and time synchronizer | |
CN110545444A (en) | tamper-proof monitoring method and system for IP video | |
CN115208836A (en) | Data packet processing method, device, equipment and computer readable storage medium | |
KR101442485B1 (en) | System and method for transmitting data | |
CN104917731A (en) | Method and system for improving data display speed, server and browser | |
US9882680B2 (en) | Surveillance system including network camera and gateway and method of driving the same | |
CN108460044B (en) | Data processing method and device | |
EP2672386A2 (en) | Apparatus and method for processing asynchronous event information | |
JP6925889B2 (en) | Relay device, transmission processing program | |
CN115348333A (en) | Data transmission method, system and equipment based on UDP (user Datagram protocol) double-end communication interaction | |
CN115459873A (en) | Data transmission method, storage medium and equipment applied to network equipment | |
US9743037B2 (en) | Method for transmitting device indicator data in network-based AV system | |
CN111222882A (en) | Block chain-based data transmission method, device, equipment and readable storage medium | |
JP2007129683A (en) | Compressed data transmission method | |
CN104394013A (en) | Method and system as well as short message treatment system for transmitting operation and maintenance information by utilizing short messages | |
JP2001352363A (en) | Protocol analyzer, its protocol translation method and storage medium | |
CN112764947B (en) | Message data pulling method, device, equipment and storage medium | |
US9998405B2 (en) | Packet reception apparatus | |
KR102101648B1 (en) | IoT COMMUNICATION SYSTEM AND CONTROL METHOD THEREOF | |
EP4160426A1 (en) | Coalescing interrupts based on fragment information in packets and a network controller for coalescing | |
CN108574656A (en) | Data processing method and equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant | ||
G170 | Publication of correction | ||
FPAY | Annual fee payment |
Payment date: 20170911 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20181010 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190821 Year of fee payment: 6 |