KR20200048911A - 불안정 전송 환경에서의 데이터 전송 서버 및 방법 - Google Patents

불안정 전송 환경에서의 데이터 전송 서버 및 방법 Download PDF

Info

Publication number
KR20200048911A
KR20200048911A KR1020180131550A KR20180131550A KR20200048911A KR 20200048911 A KR20200048911 A KR 20200048911A KR 1020180131550 A KR1020180131550 A KR 1020180131550A KR 20180131550 A KR20180131550 A KR 20180131550A KR 20200048911 A KR20200048911 A KR 20200048911A
Authority
KR
South Korea
Prior art keywords
data
data transmission
transmission method
transmitted
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
KR1020180131550A
Other languages
English (en)
Inventor
김도현
신상대
봉경근
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020180131550A priority Critical patent/KR20200048911A/ko
Publication of KR20200048911A publication Critical patent/KR20200048911A/ko
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

불안정 전송 환경에서의 데이터 전송 서버 및 방법이 제공 된다. 본 발명의 일 실시예에 따른 데이터 전송 방법은, 컴퓨팅 장치에 의하여 수행되는 방법에 있어서, 제1 데이터 전송 방식을 이용하여 데이터 전송을 개시하는 단계, 상기 데이터 전송이 중간에 중단된 경우, 상기 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값 및 손해 값을 비교하는 단계 및 상기 손해 값이 상기 이익 값을 초과하는 경우, 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계를 포함하되, 상기 이익 값은 상기 제1 데이터 전송 방식을 이용한 최근의 데이터 전송이 끊김 없이 유지된 시간에서 상기 제2 데이터 전송 방식을 이용한 데이터 전송이 끊김 없이 유지될 것을 예측된 시간을 뺀 값에 기반하여 결정된 값이고, 상기 손해 값은 상기 제1 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간에서 상기 제2 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간을 뺀 값에 기반하여 결정된 값인 것을 특징으로 한다.

Description

불안정 전송 환경에서의 데이터 전송 서버 및 방법{SERVER AND METHOD FOR TRANSMITTING DATA IN UNSTABLE TRANSMISSION ENVIRONMENT}
본 발명은 불안정 전송 환경에서의 데이터 전송 서버 및 방법에 관한 것이다. 보다 자세하게는, 네트워크 연결이 지속적으로 끊어지는 불안정한 전송 환경에서 데이터를 전송함에 있어서, 네트워크 전송 환경에 따라 서로 다른 데이터 전송 방식을 변경함으로써, 불안정한 네트워크 환경에서 효과적으로 데이터를 전송할 수 있는 불안정 전송 환경에서의 데이터 전송 서버 및 방법에 관한 것이다.
일반적으로 전송하고자 하는 데이터의 크기는 작게는 메가 바이트(Mega-byte)에서 크게는 기가 바이트(Giga-byte)까지 매우 큰 크기를 가지며, 데이터의 크기가 큰 만큼 많은 시간이 소요되고, 많은 데이터 전송을 위한 네트워크 망을 사용해야 한다.
이때, 데이터를 전송함에 있어서, 전송의 효율성은 중요한 문제이다. 만약, 데이터를 전송하는 도중 네트워크의 문제, 사용자의 임의 중단, 기기의 오작동 등의 문제로 인해 데이터 전송이 중단되는 경우, 중단된 데이터를 재전송을 해야 하는데, 기존에 전송한 일부의 데이터를 무시하고 처음부터 데이터를 다시 전송하게 될 경우, 기존에 데이터를 보내는데 소요된 시간만큼 지연되기 때문에 비효율적이며, 성능에 있어서 치명적인 영향을 받을 수 있다.
이러한 문제를 해결하기 위하여, 종래의 데이터 전송 방식은 데이터를 분할하고, 분할된 데이터를 전송함으로써, 상기와 같은 문제로 인해 데이터 전송이 중단되는 경우에 분할된 데이터 중 전송이 중단된 데이터부터 재전송하는 방식을 사용하였다. 그러나, 이러한 방식의 경우, 각각의 분할 데이터에 대하여 전송 완료에 대한 서버 응답을 기다려야 하기 때문에, 전송 대기 시간이 증가한다는 문제가 있다. 또한, 분할 데이터의 크기를 너무 작게 설정할 수 없으며, 데이터의 크기를 크게 설정하게 되면, 데이터 중단된 지점의 범위가 커지게 되어 데이터를 이어서 전송하는 효율성이 낮아지게 된다는 문제가 있다.
또 다른 종래의 데이터 전송 방식의 경우, 클라이언트에서 서버로 데이터 전송하기 전에 전송하고자 하는 데이터가 서버에 존재하는지 유무 및 기존에 전송된 내역이 있는지 유무를 물어보는 요청(Request)을 서버에 보내고, 서버로부터 이에 대한 응답(Respond)를 받아 전송이 완료된 이후의 데이터부터 전송하는 방식을 사용하였다. 그러나, 이와 같은 종래의 데이터 전송 방식의 경우, 클라이언트와 서버간 요청 및 응답 신호를 송수신하는 과정이 1초 이상 소요되며, 이 과정이 반복적으로 발생하는 경우, 전체 데이터 전송 시간이 증가하여 데이터 전송의 효율성이 매우 낮아질 수 있다는 문제가 있다.
한국등록특허 제10-1605907호
본 발명이 해결하고자 하는 기술적 과제는, 제1 데이터 전송 방식을 이용하여 데이터를 전송하되, 네트워크 문제로 인해 데이터 전송이 중간에 중단되는 경우, 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값 및 손해 값을 비교 하고, 이를 이용하여 기존 데이터 전송 방식인 제1 데이터 전송 방식과 새로운 데이터 전송 방식인 제2 데이터 전송 방식 중 어느 하나의 방식을 선택함으로써, 네트워크 상황에 가장 적합한 데이터 전송 방식을 이용하여 데이터 전송을 재개할 수 있는, 불안정 전송 환경에서의 데이터 전송 서버 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 제1 데이터 전송 방식의 이익 값이 손해 값 이하인 경우, 분할 데이터(partial data)를 이용한 데이터 전송 방식인 제2 데이터 전송 방식을 이용하되, 전송되는 분할 데이터의 크기를 점차 커지도록 설정함으로써, 전송된 분할 데이터에 대하여 서버로부터 응답을 수신하는 횟수를 감소시켜 데이터 전송 시간을 단축시킬 수 있는 불안정 전송 환경에서의 데이터 전송 서버 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 네트워크 연결이 안정화되는 경우, 데이터를 전송하기 위한 버퍼의 크기를 점차 증가시켜 데이터 전송 속도를 증가시키고, 네트워크 연결이 불안정하여 데이터 전송이 빈번하게 실패하는 경우, 버퍼의 크기를 감소시켜 작은 크기의 데이터가 전송되도록 함으로써, 네트워크 상황에 최적화된 크기의 데이터를 전송할 수 있는 불안정 전송 환경에서의 데이터 전송 서버 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시에에 따른 데이터 전송 방법은, 데이터 전송을 개시하는 단계, 상기 데이터 전송이 중간에 중단된 경우, 상기 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값 및 손해 값을 비교하는 단계 및 상기 손해 값이 상기 이익 값을 초과하는 경우, 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계를 포함하되, 상기 이익 값은 상기 제1 데이터 전송 방식을 이용한 최근의 데이터 전송이 끊김 없이 유지된 시간에서 상기 제2 데이터 전송 방식을 이용한 데이터 전송이 끊김 없이 유지될 것을 예측된 시간을 뺀 값에 기반하여 결정된 값이고, 상기 손해 값은 상기 제1 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간에서 상기 제2 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간을 뺀 값에 기반하여 결정된 값일 수 있다.
일 실시예에서, 상기 제1 데이터 전송 방식은 서버와 클라이언트 간 대화식(Server-Client Interactive) 데이터 전송 방식이고, 상기 제2 데이터 전송 방식은 분할 데이터(partial data)를 이용한 데이터 전송 방식일 수 있다.
일 실시예에서, 상기 이익 값 및 손해 값을 비교하는 단계는, 하기의 수학식 1을 만족하는지 여부를 이용하여 상기 제1 데이터 전송 방식에 대한 비정상 동작을 판단하는 단계 및
<수학식 1>
Figure pat00001
(단, E2EF는 상기 제1 데이터 전송 방식을 이용하여 상기 데이터 전송이 중단되기 이전까지 상기 데이터의 전송을 유지한 시간, 및 E2ER은 상기 제1 데이터 방식을 이용하여, 상기 클라이언트가 상기 서버에 요청(request)을 송신하고 그에 대한 응답(response)을 수신하는데 소요된 시간)
상기 수학식 1을 만족하는 경우에 한하여, 상기 이익 값과 상기 손해 값을 비교하는 단계를 포함할 수 있다.
일 실시예에서, 상기 이익 값 및 손해 값을 비교하는 단계는, 하기의 수학식 2을 이용하여 상기 이익 값을 산출하는 단계를 포함할 수 있다.
<수학식 2>
Figure pat00002
(단, E2EF는 상기 제1 데이터 전송 방식을 이용하여 상기 데이터 전송이 중단되기 이전까지 상기 데이터의 전송을 유지한 시간, SI은 상기 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 전송된 데이터 전송량, 상기 SP는 상기 제2 데이터 전송 방식을 이용한 현재 설정에 따른 분할 데이터의 크기)
일 실시예에서, 상기 이익 값 및 손해 값을 비교하는 단계는, 하기의 수학식 3을 이용하여 상기 손해 값을 산출하는 단계를 포함할 수 있다.
<수학식 3>
Figure pat00003
(단, E2ER은 상기 제1 데이터 방식을 이용하여, 상기 클라이언트가 상기 서버에 요청(request)을 송신하고 그에 대한 응답(response)을 수신하는데 소요된 시간, E2EA는 상기 제2 데이터 전송 방식에 있어서 상기 서버로부터 분할 데이터 전송 성공 Ack가 수신되는데 소요된 시간)
일 실시예에서, 상기 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계는, 상기 전송되지 못한 나머지 데이터를 n(n은 2이상의 자연수)개의 데이터로 분할하되, 첫번째 데이터부터 n번째 데이터까지 순차적으로 데이터의 크기가 커지도록 분할하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계는, 상기 첫번째 데이터부터 상기 n번째 데이터까지 순차적으로 데이터를 전송하되, M번째 데이터의 전송이 중단되고, 상기 제2 데이터 전송 방식을 이용하여 상기 M번째 데이터의 전송을 재개하는 경우, 상기 M번째 데이터의 크기를 M-1번째 데이터 크기와 동일하게 설정하여 전송하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계는, 하기의 수학식 4를 이용하여 상기 데이터의 전송을 위한 버퍼(Buffer) 크기를 결정하는 단계를 포함할 수 있다.
<수학식 4>
Figure pat00004
(단, 상기 S-n은 n번째 데이터 전송에 대한 버퍼의 크기, 상기 Sn-1은 n-1번째 데이터 전송에 대한 버퍼의 크기 및 상기 Tn-1은 n-1번째 데이터 전송의 성공 및 실패 여부를 나타내는 지수)
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 데이터 송수신 장치는, 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 제1 데이터 전송 방식을 이용하여 데이터 전송을 개시하는 인스트럭션(instruction), 상기 데이터 전송이 중단되는 경우, 상기 데이터 전송이 중단된 시점에서의 상기 데이터 전송의 완료 여부를 확인하는 인스트럭션, 상기 데이터 전송이 완료되지 못한 경우, 상기 제1 데이터 전송 방식을 이용하여 전송되지 못한 일부의 데이터의 전송 재개할 경우의 이익 값 및 손해 값을 비교하는 인스트럭션 및 상기 손해 값이 상기 이익 값을 초과하는 경우, 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송 재개하는 인스트럭션을 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 전송 시스템을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터 전송 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 종래의 데이터 전송 방식과 제1 데이터 전송 방식의 데이터 전송 방식을 설명하기 위한 도면이다.
도 4 및 5는 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 종래의 데이터 전송 방식 및 제1 데이터 전송 방식으로 데이터를 전송하되, 네트워크 연결 끊어짐이 발생한 경우를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 종래의 데이터 전송 방식과 제2 데이터 전송 방식의 데이터 전송 방식을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 종래의 데이터 전송 방식 및 제2 데이터 전송 방식으로 데이터를 전송하되, 네트워크 연결 끊어짐이 발생한 경우를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 데이터 전송 방식을 제2 데이터 전송 방식으로 변경하여 데이터 전송을 개시하는 과정을 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 분할 데이터의 크기를 설정하는 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 버퍼 크기를 결정하는 과정을 설명하기 위한 순서도이다.
도 11은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 데이터 전송의 성공 및 실패에 따라 결정되는 버퍼의 크기를 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 네트워크 연결 끊어짐 발생확률과 데이터 전송 방식에 따라 전송되는 데이터 크기를 설명하기 위한 표이다.
도 13은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 도 13의 네트워크 연결 끊어짐 발생확률과 데이터 전송 방식에 따라 전송되는 데이터 크기를 도시한 그래프이다.
도 14는 일 실시예에 따른 데이터 전송 방법에 있어서, 네트워크 연결 끊어짐 발생확률과 따라 제1 데이터 전송 방식 및 제2 데이터 전송 방식 중 하나의 데이터 방식만을 사용하는 경우와, 두개의 데이터 방식을 복합적으로 사용하는 경우의 성능 차이를 설명하기 위한 표이다.
도 15는 본 발명의 다른 일 실시예에 따른 데이터 전송 서버의 하드웨어 구성을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터 전송 시스템을 개략적으로 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 전송 시스템은, 데이터 전송 서버(100), 외부 서버(200), 네트워크(300) 및 클라이언트(400)를 포함하여 구성될 수 있다. 여기서, 도 1에 도시된 데이터 전송 시스템은 일 실시예에 따른 것이고, 그 구성요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있음을 유의한다.
먼저, 데이터 전송 서버(100)는 클라이언트(400)로부터 데이터 전송에 대한 요청을 수신하여 클라이언트(400)로부터 송신되는 데이터를 외부 서버(200)에 제공할 수 있다.
데이터 전송 서버(100)는 클라이언트(400)로부터 송신되는 데이터를 외부 서버(200)로 전달하되, 서버와 클라이언트 간 대화식(Server-Client Interactive) 데이터 전송 방식인 제1 데이터 전송 방식 및 분할 데이터(partial data)를 이용한 데이터 전송 방식인 제2 데이터 전송 방식 중 어느 하나의 전송 방식을 이용하여 데이터를 전송할 수 있다.
이때, 데이터 전송 서버(100)는 데이터가 전송되고 있는 네트워크의 환경에 따라 데이터 전송 방식을 선택할 수 있다. 그러나, 이에 한정하지 않고, 네트워크 상황에 따라 데이터를 전송할 수 있는 어떠한 방법이든 적용 가능하다.
외부 서버(200)는 클라이언트(400)로부터 전송된 데이터를 수신할 수 있다.
외부 서버(200)는 데이터 전송 서버(100)에서 결정한 데이터 전송 방식에 따라, 데이터 전송 방식에 적합한 응답 신호를 송신할 수 있다. 예를 들어, 데이터 전송 서버(100)에서 결정한 데이터 전송 방식이 서버와 클라이언트 간 대화식 데이터 전송 방식인 경우, 데이터 전송을 개시하기 위하 클라이언트(400)로부터 데이터 전송 요청(Request) 신호를 수신할 수 있고, 이에 대한 응답으로서, 데이터 전송을 개시하는 것을 허가 하는 전송 요청 응답(Respond) 신호를 클라이언트(400)에 송신할 수 있다. 또한, 데이터 전송 서버(100)에서 결정한 데이터 전송 방식이 분할 데이터를 이용한 데이터 전송 방식인 경우, 외부 서버(200)는 분할된 데이터의 전송이 완료될 때마다 분할 데이터의 전송이 완료됨을 알리기 위한 응답 신호(Ack)를 클라이언트(400)에 송신할 수 있다.
클라이언트(400)는 네트워크(300)를 통해 데이터 전송 요청 신호를 데이터 터 전송 서버(100)로 송신할 수 있고, 데이터 전송을 허가하는 응답 신호를 수신하는 경우, 데이터를 전송할 수 있다. 이하 도 2 내지 도 16을 참조함으로써, 본 발명의 몇몇 실시예에 따른 데이터 전송 방법을 설명하도록 한다. 본 실시예에 따른 방법에 포함된 각각의 동작은 컴퓨팅 장치에 의하여 실시될 수 있다. 이 때, 본 실시예의 방법에 속한 모든 동작이 한대의 컴퓨팅 장치에 의하여 실시될 수도 있으나, 본 실시예의 방법에 속한 일부의 동작은 제1 컴퓨팅 장치에 의하여 실시되고, 나머지 동작 중 적어도 다른 일부의 동작은 제2 컴퓨팅 장치에 의하여 실시될 수도 있는 점을 유의하여야 한다.
도 2는 본 발명의 일 실시예에 따른 데이터 전송 방법을 설명하기 위한 순서도이다.
도 2를 참조하면, 먼저, 데이터 전송 서버(100)는 클라이언트(400)로부터 데이터 전송 요청을 수신하고, 수신한 데이터 요청을 외부 서버(200)로 제공할 수 있다(S110). 또한, 데이터 전송 서버(100)는 S110단계에서 제공한 데이터 요청에 대한 응답으로, 외부 서버(200)로부터 데이터 전송 요청에 대한 응답 신호를 수신하여 클라이언트(400)에 제공할 수 있다. 그러나, 본 발명은 이에 한정되는 것은 아니며, 외부 서버(200)로부터 클라이언트(400)로 데이터가 전송되는 역방향의 경우에도 동일하게 적용 가능하다.
이후, 데이터 전송 서버(100)는 제1 데이터 전송 방식으로 데이터를 전송하기 위하여 최적의 버퍼 크기를 결정할 수 있다(S115). S115단계에서 최적의 버퍼 크기를 결정하는 구성에 대해서는, 후에 보다 자세하게 설명하도록 한다.
다음으로, 데이터 전송 서버(100)는 S110단계에서 데이터 전송에 대한 준비가 완료되는 경우, 제1 데이터 전송 방식을 이용하여 데이터 전송을 개시할 수 있다(S120). 여기서, 본 발명의 일 실시예에 따른 데이터 전송 방법에서는 제1 데이터 전송 방식을 서버와 클라이언트 간 대화식 데이터 전송 방식으로 설명하고 있으나, 이에 한정되지 않고, 분할 데이터를 이용한 데이터 전송 방식을 제1 데이터 방식으로 사용할 수도 있으며, 또 다른 새로운 데이터 전송 방식을 사용할 수 도 있다. 이하 도 3 내지 7를 참조하여, 종래의 데이터 전송 방식과 제1 데이터 전송 방식 및 제2 데이터 전송 방식을 비교하여 설명하도록 한다. 먼저 도 3 내지 5를 참조하여, 제1 데이터 전송 방식에 대하여 설명한다.
도 3을 참조하면, 종래의 데이터 전송 방식의 경우, 클라이언트(400)에서 외부 서버(200)로 데이터를 전송하고자 할 때, 클라이언트(400)에서 외부 서버(200)로 데이터만을 전송한다. 그에 반해, 서버와 클라이언트 간 대화식 데이터 전송 방식인 제1 데이터 전송 방식의 경우, 클라이언트(400)에서 외부 서버(200)로 데이터를 전송하고자 할 때, 클라이언트(400)는 데이터를 전송하기 위한 요청 신호를 송신하고, 외부 서버(200)는 이에 대한 응답 신호를 송신하되, 클라이언트(400)는 외부 서버(200)로부터 수신한 응답 신호에 포함된 기존 데이터 전송 내역을 참조하여 데이터를 송부하게 된다.
보다 구체적으로, 제1 데이터 전송 방식의 경우, 아래의 표에 기재된 바와 같이 "요청하는 ID", "계정 ID", "장치 ID", "데이터 이름", "전체 데이터 크기", "데이터가 사용자로부터 추가된 시간", "데이터가 수정된 시간"에 대한 정보를 외부 서버(200)로 넘겨주게 되면, 외부 서버(200)는 해당 정보를 바탕으로 해당 데이터의 존재 여부와 기존에 수신한 데이터 사이즈를 확인하게 된다.
<표 1>
Figure pat00005
이후, 외부 서버(200)는 확인한 내용을 바탕으로 데이터 정보(현재까지 저장된 데이터의 크기)를 판정하고, 아래의 표 2에 기재된 바와 같이 판정 정보를 클라이언트(400)로 전달해 주게 된다.
<표 2>
Figure pat00006
즉, 제1 데이터 전송 방식의 경우, 도 3에 도시된 바와 같이 데이터 전송 요청 및 전송 요청에 대한 응답의 과정이 추가되기 때문에 해당 과정에 따른 시간 손실이 발생하게 되며, 이에 따라 네트워크가 안정적인 상황에서 데이터를 전송하는 시간이 길어진다는 문제가 있다.
그러나, 도 4에 도시된 바와 같이 네트워크 연결 끊어짐(Network Disconnect)이 발생할 때, 제1 데이터 전송 방식의 경우, 외부 서버(200)가 네트워크 연결이 끊어진 시점까지 수신한 데이터를 임시로 저장하고, 데이터 전송 요청 및 전송 요청에 대한 응답의 과정을 다시 수행하게 되면 기존에 수신하여 저장해 놓았던 기존 데이터 전송 내역(파일 크기, 파일 포인터의 위치 등)이 포함된 응답 신호를 클라이언트(400)로 송신한다. 이를 통해 클라이언트(400)는 중단된 시점부터 데이터를 이어서 전송할 수 있게 된다. 그에 반해, 종래의 방식의 경우, 네트워크 연결 끊어짐이 발생하는 경우, 전송되고 있던 데이터를 처음부터 다시 전송해야 하기 때문에, 이에 따른 시간 손실이 발생하게 된다는 문제가 있다.
또한, 도 5에 도시된 바와 같이 네트워크 상태가 상당히 불안정하여 반복적으로 네트워크 연결 끊어짐이 발생하는 경우, 제1 데이터 전송 방식은 네트워크 연결이 끊어진 시점마다 데이터 전송 요청 및 전송 요청에 대한 응답의 과정을 수행하여 데이터를 전송할 수 있으나, 종래의 방식의 경우, 반복되는 네트워크 연결 끊어짐으로 인해 데이터 전송 자체가 불가능해지게 되며, 데이터 전송을 위해 사용된 모든 시간이 시간 손실이 될 수 있다는 문제가 있다.
따라서, 본 발명의 일 실시예에 따른 데이터 전송 서버(100)는 서버와 클라이언트 간 대화식 데이터 전송 방식을 이용하여 데이터를 전송함으로써, 네트워크가 불안정한 상황에서도 데이터 전송 작업을 완료할 수 있다는 이점이 있다. 다음으로, 도 6 및 7을 참조하여 제2 데이터 전송 방식에 대하여 설명한다.
도 6을 참조하면, 종래의 데이터 방식의 경우, 클라이언트(400)에서 외부 서버(200)로 데이터만을 전송한다. 그에 반해, 분할 데이터를 이용한 데이터 전송 방식인 제2 데이터 전송 방식의 경우, 전송하고자 하는 하나의 데이터(F1)를 복수개의 데이터(P1 내지 P4)로 분할하고, 분할된 데이터(P1 내지 P4)를 각각 전송하되, 각각의 데이터의 전송이 완료될 때마다, 각각의 데이터가 완료 됐다는 응답 신호(Ack)를 수신하고, 완료에 대한 응답 신호가 수신되는 경우 다음 분할 데이터를 전송하는 방식으로 데이터를 전송하게 된다.
보다 구체적으로, 제2 데이터 전송 방식의 경우, 데이터를 분할 할 때 단순히 데이터만 나누어 일부의 데이터만이 들어가는 것이 아니라, 아래의 표 3과 같이 "데이터 ID", "분할 데이터의 순서", "데이터의 크기", "분할 데이터의 순서에 따른 데이터의 포인터", "분할 데이터의 실제 크기" 및 "실제 분할 데이터"로 구성된다.
<표 3>
Figure pat00007
이후, 외부 서버(200)는 각각 분할 데이터의 전송이 완료될 때마다 응답 신호를 제공할 수 있으며, 응답 신호는 하기의 표 4와 같이 "데이터 ID", "분할 데이터 순서" 및 "전송 결과"로 구성된다.
<표 4>
Figure pat00008
즉, 제2 데이터 전송 방식의 경우, 도 6에 도시된 바와 같이 분할된 데이터의 전송이 완료될 때마다 전송 완료를 알리는 응답 신호를 수신하는 과정이 추가되기 때문에, 해당 과정에 따른 손실이 발생하게 되며, 이에 따라 데이터를 전송하는 시간이 길어진다는 문제가 있다.
그러나, 도 7을 참조하면, 데이터를 전송하는 중간에 네트워크 연결 끊어짐이 발생할 때 제2 데이터 전송 방식의 경우, 이미 전송된 분할된 데이터에 대해서는 재 송부할 필요가 없다는 점에서 네트워크 사용량을 감소시킬 수 있고, 데이터 전송하는데 소요되는 시간을 단축시킬 수 있다는 이점이 있다. 이에 반해, 종래의 데이터 전송 방식의 경우, 네트워크 연결 끊어짐이 발생할 때마다 전체의 데이터를 다시 전송해야 한다는 문제가 있으며, 이에 따라 많은 시간 손실이 발생된다는 문제가 있다.
따라서, 본 발명의 일 실시예에 따른 데이터 전송 서버(100)는 분할 데이터를 이용한 데이터 전송 방식을 이용하여 데이터를 전송함으로써, 네트워크가 불안정한 상황에서도 데이터 전송 작업을 완료할 수 있다는 이점이 있다.
즉, 본 발명의 일 실시예에 따른 데이터 전송 서버(100)는 제1 데이터 전송 방식과 제2 데이터 방식을 사용함으로써, 네트워크가 불안정한 상황에서도 데이터 전송 작업을 완료할 수 있고, 시간 손실을 줄일 수 있으며, 네트워크 사용량을 감소시킬 수 있다는 이점이 있다. 또한, 단순히 제1 데이터 전송 방식 및 제2 데이터 전송 방식만을 사용하는 것이 아니라, 네트워크의 상황에 따라 제1 데이터 전송 방식 및 제2 데이터 전송 방식을 복합적으로 사용함으로써, 보다 효율이 높게 데이터를 전송할 수 있다. 이하에서 제1 데이터 전송 방식 및 제2 데이터 전송 방식을 복합적으로 사용하는 구성에 대해 보다 구체적으로 설명하도록 한다.
다시 도 2를 참조하여, S120단계에서 선택한 데이터 전송 방식을 이용하여 데이터를 전송하되, 네트워크 연결이 끊어짐이 발생하여 데이터 전송이 중단되는 경우, 데이터 전송 중단 여부를 감지할 수 있고(S130), 데이터 전송이 중단된 경우, 데이터 전송이 완료 됐는지 여부를 판단할 수 있다(S140). 예를 들어, 상기에 설명된 바와 같이 서버와 클라이언트 간 대화식 데이터 전송 방식을 사용하여 데이터를 전송하는 과정에서 네트워크 연결 끊어짐이 발생하여 데이터 전송이 중단되는 경우, 데이터 전송 요청 및 전송 요청에 대한 응답의 과정을 다시 수행하여, 외부 서버(200)로부터 기존 데이터 전송 내역을 수신할 수 있다. 이때, 데이터 전송 서버(100)는 기존 데이터 전송 내역을 이용하여 데이터 전송이 완료 됐는지 여부를 판단할 수 있다.
만약, S140단계에서, 데이터 전송이 모두 완료된 것으로 판잔되는 경우, 데이터 전송 서버(100)는 데이터 전송 동작을 종료할 수 있다(S150).
그러나, S140단계에서 데이터 전송이 완료되지 못한 것으로 판단되는 경우, 데이터 전송 서버(100)는 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값 및 손해 값을 비교하고, 이에 따라 데이터 전송 방식을 결정할 수 있다(S160).
일 실시예에서, 데이터 전송 서버(100)는 제1 데이터 전송 방식의 비정상 동작을 판단하고, 비정상적 동작이 판단된 경우, 제1 데이터 전송 방식의 이익 값 및 손해 값을 비교하여 데이터 전송 방식을 변경할 수 있다.
일 실시예에서, 데이터 전송 서버(100)는 하기의 수학식 1을 만족하는지 여부를 이용하여 제1 데이터 전송 방식에 대한 비정상 동작을 판단할 수 있다.
<수학식 1>
Figure pat00009
(단, E2EF는 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 데이터의 전송을 유지한 시간, 및 E2ER은 상기 제1 데이터 방식을 이용하여, 클라이언트가 서버에 요청(request)을 송신하고 그에 대한 응답(response)을 수신하는데 소요된 시간)
보다 구체적으로, 데이터 전송 서버(100)는 데이터 전송이 중단되기 이전까지 제1 데이터 전송 방식을 이용하여 데이터를 전송 했을 때, 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지의 데이터를 전송하는 시간 값(E2EF)이 데이터 전송을 위해 준비하는 단계인 외부 서버(200)와 클라이언트(400)간 요청 및 응답 시간 값(E2ER)보다 작은 경우, 제1 데이터 전송 방식이 비정상 동작인 것으로 판단할 수 있다. 즉, 데이터 전송 서버(100)는 제1 데이터 전송 방식을 이용하여 실제 데이터를 전송한 시간보다 데이터를 전송하기 위해 준비하는 시간이 더 긴 경우, 제1 데이터 전송 방식이 비정상 동작을 하고 있다고 판단할 수 있다.
이때, 데이터 전송 서버(100)는 데이터 전송이 중단되기 이전까지 제2 데이터 전송 방식을 이용하여 데이터를 전송한 경우에도, 제1 데이터 전송 방식을 이용한 것으로 가정할 수 있다. 이는, 데이터 전송 방식의 문제가 아닌 네트워크 환경의 문제이며, 네트워크 환경 문제와 데이터 전송 방식은 독립사건이 때문에, 제2 데이터 전송 방식이 아닌 제1 데이터 전송 방식을 사용하더라도 동일한 시간에 종료가 되기 때문이다. 따라서, 데이터 전송 서버(100)는 네트워크 연결 끊어짐이 발생하기 이전에 사용된 데이터 전송 방식이 어떠한 방식이든 제1 데이터 전송 방식으로 가정하여 비정상 동작을 감지할 수 있다.
만약, 상기의 수학식 1을 만족하지 않는 경우, 데이터 전송 서버(100)는 제1 데이터 전송 방식이 정상 동작을 하고 있다고 판단할 수 있으며, 이에 따라 전송 방식을 변경하지 않고, 제1 데이터 전송 방식으로 전송되지 못한 데이터의 전송을 재개할 수 있다.
다음으로, 데이터 전송 서버(100)는 상기의 수학식 1을 만족하는 경우에 한하여 하기의 수학식 2 및 3을 이용하여, 전송되지 못한 일부의 데이터의 전송을 제1 데이터 전송 방식을 이용하여 재개할 경우의 이익 값 및 손해값을 산출할 수 있다.
<수학식 2>
Figure pat00010
(단, E2EF는 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 데이터의 전송을 유지한 시간, SI은 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 전송된 데이터 전송량, SP는 제2 데이터 전송 방식을 이용한 현재 설정에 따른 분할 데이터의 크기)
<수학식 3>
Figure pat00011
(단, E2ER은 제1 데이터 방식을 이용하여, 클라이언트가 상기 서버에 요청(request)을 송신하고 그에 대한 응답(response)을 수신하는데 소요된 시간, E2EA는 제2 데이터 전송 방식에 있어서 서버로부터 분할 데이터 전송 성공 Ack가 수신되는데 소요된 시간).
여기서, 이익 값은 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 상기 데이터 전송을 유지된 시간에서 제2 데이터 전송 방식을 이용하여 기 설정된 크기의 데이터(분할된 데이터의 크기)가 전송되는데 소요될 것으로 예측되는 시간을 뺀 값에 기반하여 결정된 값이고, 손해 값은 제1 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간에서 제2 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간을 뺀 값에 기반하여 결정된 값일 수 있다.
데이터 전송 서버(100)는 수학식 2를 고려하여, 네트워크 전송 속도가 같은 동일한 네트워크 환경일 때, 제2 데이터 전송 방식을 이용하여, 현재 설정에 따른 분할 데이터의 크기의 분할 데이터를 전송하는데 소요되는 시간을 비레적으로 산출할 수 있다. 이는 상기의 수학식1과 같이 현재 설정에 따른 분할 데이터의 크기를 제1 데이터 전송 방식으로 네트워크 연결이 끊어지는 시점까지 전송된 데이터로 나눈 값에 제1 데이터 전송 방식으로 네트워크 연결이 끊어지는 시점까지 데이터를 전송하는데 유지된 시간을 곱함으로써 산출할 수 있다. 이와 같이 산출된 제2 데이터 전송 방식을 이용하여, 현재 설정에 따른 분할 데이터의 크기의 분할 데이터를 전송하는데 소요되는 시간과 제1 데이터 전송 방식으로 네트워크 연결이 끊어지는 시점까지 데이터를 전송하는데 유지된 시간과의 차이를 계산하여, 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값을 산출할 수 있다.
또한, 데이터 전송 서버(100)는 수학식 3을 고려하여 제1 데이터 전송 방식에서 클라이언트(400)의 요청 및 외부 서버(200)의 응답하는 과정에 따른 시간과 제2 데이터 전송 방식에서 분할된 데이터의 전송될 때마다 외부 서버(200)에서 송신하는 응답 신호의 시간 값의 차이를 계산하여 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 손해 값을 산출할 수 있다.
이후, 데이터 전송 서버(100)는, 이익 값과 손해 값을 비교할 수 있다. 이때, 하기의 수학식 5가 만족되는 경우 즉, 손해 값이 이익 값을 초과하는 경우, 데이터 전송 방식을 제1 데이터 전송 방식에서 제2 데이터 전송 방식으로 변경할 수 있다.
이후, 데이터 전송 서버(100)는 제2 데이터 전송 방식으로 데이터를 전송하기 위한 최적의 버퍼 크기를 결정하고(S165), 네트워크 연결 끊어짐으로 인해 전송되지 못한 데이터를 제2 데이터 전송 방식을 이용하여 전송할 수 있다(S170).
<수학식 5>
Figure pat00012
만약, S160단계에서, 손해 값이 이익 값을 초과하지 않는 경우, 데이터 전송 서버(100)는 데이터 전송 방식을 기존에 이용한 제1 데이터 전송 방식으로 결정하고, 다시 S115단계로 돌아가, 제1 데이터 전송 방식을 이용하여 데이터를 전송하기 위한 최적의 버퍼 크기를 결정할 수 있다.
일 실시예에서, S115단계 및 S165단계에서 최적의 버퍼 크기를 결정하는 과정은 경우에 따라 진행하지 않을 수 있다. 예를 들어, 현재 결정된 버퍼의 크기가 최적의 버퍼 크기인 경우, 버퍼의 크기를 결정하는 과정을 불필요하게 반복하지 않고, 기 결정된 버퍼의 크기를 사용할 수 있다.
S170단계 이후, 제2 데이터 전송 방식을 이용하여 데이터를 전송하고 있는 상태에서 네트워크 연결 끊어짐 발생으로 인해 데이터 전송이 중간에 중단 된 경우, 데이터 전송 서버(100)는 다시한번 데이터의 전송이 완료되었는지를 판단할 수 있고(S190), 여기서 데이터 전송이 완료된 경우, 데이터 전송 작업을 종료할 수 있다(S2000).
만약, 데이터 전송이 완료되지 못한 경우, 데이터 전송 서버(100)는 다시 S160단계로 돌아가 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값 및 손해 값을 비교함으로써, 데이터 전송 방식을 재결정할 수 있다. 이하 도 8을 참조하여, 제2 데이터 전송 방식으로 변경하여 데이터 전송을 개시하는 과정에 대하여 보다 구체적으로 설명하도록 한다.
도 8은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 데이터 전송 방식을 제2 데이터 전송 방식으로 변경하여 데이터 전송을 개시하는 과정을 설명하기 위한 순서도이다.
도 8을 참조하면, 먼저, 도 2의 S160단계에서 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하는 경우 대비 손해 값이 이익 값을 초과하는 것으로 판정된 경우, 데이터 전송 서버(100)는 제2 데이터 전송 방식을 이용하여 데이터 전송을 개시할 수 있다(S1701).
이후, 데이터 전송 서버(100)는 전송되지 못한 일부의 데이터에 대해 제2 데이터 전송 방식을 적용하기 위하여 전송되지 못한 일부의 데이터를 n개(n은 2이상의 자연수)의 데이터로 분할 및 각 데이터의 크기 설정할 수 있다(S1702). 이하 도 9를 참조하여, 분할된 데이터의 크기를 설정하는 구성을 설명한다.
도 9를 참조하면, 데이터 전송 서버(100)는 전송되지 못한 일부의 데이터를 n개의 데이터로 분할하되, 첫번째 데이터부터 n번째 데이터까지 순차적으로 데이터의 크기가 커지도록 분할할 수 있다. 예를 들어, 데이터 전송 서버(100)는 전송되지 못한 일부의 데이터를 5개의 데이터로 분할한 경우, 첫번째 데이터(P1)의 크기는 최소 분할 데이터의 크기로 설정될 수 있고, 이후 두번째 데이터(P3)의 크기, 세번째 데이터 크기(P3) 내지 다섯번째 데이터(P5)의 크기까지 순차적으로 분할 데이터 조정 함수를 적용하여 크기가 커지도록 설정하여 분할할 수 있다.
데이터를 잘게 분할하여 분할된 데이터를 전송하는 경우, 네트워크 상황이 불안정하여 네트워크 연결 끊어짐이 자주 발생하는 환경에서 데이터를 원활하게 송부할 수 있다는 이점이 있으나, 네트워크가 안정화되는 경우, 분할된 데이터로 인해 많은 시간 손실이 발생될 우려가 있다.
따라서, 데이터 전송 서버(100)는 전송하고자 하는 데이터를 분할하여 분할된 데이터를 전송하되, 분할된 첫번째 데이터가 전송 완료되는 경우, 첫번째 데이터(P1)보다 큰 두번째 데이터(P2)를 전송하고, 두번째 데이터(P2) 전송이 완료되는 경우, 두번째 데이터보다 큰 세번째 데이터(P3)를 전송함으로써, 네트워크의 연결이 안정화되는 상황에서 시간 손실을 감소시킬 수 있다.
다음으로, 데이터 전송 서버(100)는 n개의 데이터를 순차적으로 전송할 수 있다(S1703). 이때, 네트워크 연결 끊어짐 발생 및 데이터 전송 중단 발생 여부를 판단하고(S180), 데이터 전송 중단된 시점에서 데이터 전송이 완료되지 못한 경우(S190), 전송되지 못한 일부의 데이터의 크기 재설정 할 수 있다.
제2 데이터 전송 방식을 이용하여 분할된 데이터를 전송하는 과정에서, 네트워크의 상황이 불안정하여 다시 네트워크 연결 끊어짐 현상이 반복적으로 일어나게 되면, 네트워크 상황이 안정적임으로 인해 데이터의 크기가 커진 분할 데이터가 반복적으로 전송되지 못하게 되며, 이에 따른 추가적인 시간 손실이 발생되게 된다.
따라서, 데이터 전송 서버(100)는 첫번째 데이터부터 n번째 데이터까지 순차적으로 데이터를 전송하되, M번째 데이터의 전송이 중단되고, 제2 데이터 전송 방식을 이용하여 M번째 데이터의 전송을 재개하는 경우, M번째 데이터의 크기를 M-1번째 데이터 크기와 동일하게 설정할 수 있다. 예를 들어, 도 9에 도시된 바와 같이 첫번째 데이터(P1)부터 다섯번째 데이터(P5)까지 점차 데이터의 크기가 커지도록 설정하며 데이터를 송부할 때, 세번째 데이터(P3)를 송부하는 과정에서 네트워크 연결 끊어짐이 발생한 경우, 세번째 데이터(P3)의 크기를 두번째 데이터(P2) 크기와 동일하게 설정하여 재송부할 수 있다. 이때, 네번째 데이터(P4)의 크기는 세번째 데이터(P3)의 크기가 변동됨에 따라 세번째 데이터(P3) 크기로 함께 변동될 수 있다.
이때, 두번째 데이터(P2) 크기와 동일하게 설정된 세번째 데이터(P3)가 전송되는 과정에서 다시 한번 네트워크 연결 끊어짐이 발생하는 경우, 세번째 데이터(P3)의 크기는 두번째 데이터(P2) 크기보다 작은 첫번째 데이터(P1) 크기와 동일하게 재설정될 수 있다.
즉, 데이터 전송 서버(100)는 네트워크가 안정적인 경우에는 분할된 데이터의 크기를 점차 증가시켜 시간 손실을 최소화 시키고, 네트워크가 불안정 상태가 되는 경우, 다시 분할된 데이터의 크기를 감소시켜 데이터를 전송함으로써, 네트워크 상황에 따라 최적화된 방법으로 데이터를 전송할 수 있다는 이점이 있다.
만약, S190단계에서, 분할된 데이터에 대한 전송이 모두 완료된 경우, 데이터 전송 서버(100)는 데이터 전송이 완료되는 것으로 판단하고, 데이터 전송을 종료할 수 있다(S150). 이하, 도 10 및 11을 참조하여, 버퍼 크기를 결정하는 구성(도 2에 도시된 S115단계 및 S165단계)에 대하여 설명하도록 한다.
도 10은 본 발명의 일 실시예에 따른 데이터 전송 방법에 있어서, 버퍼 크기를 결정하는 과정을 설명하기 위한 순서도이다.
도 10을 참조하면, 먼저, 데이터 전송 서버(100)는 클라이언트(400)로부터 데이터 전송 요청(Request) 수신하고(S210), 외부 서버(200)로부터 S210단계의 데이터 전송 요청에 대한 응답(Response)을 수신함으로써(S220), 데이터 전송 요청에 대한 준비 작업을 시작하고, 기존에 전송된 데이터의 존재 여부 밑 데이터 전송 개시 여부를 결정할 수 있다. 이때, 데이터 전송 서버(100)는 S110단계 및 S120단에서 송신된 데이터 전송 요청 및 데이터 전송 개시 응답을 기초로, 데이터를 전송하기 위하여 기존 데이터 전송 이후로 파일 포인터 이동하고(S230), 이를 통해 데이터 전송을 준비할 수 있다.
이후, 데이터 전송 서버(100)는 데이터 전송을 위한 버퍼 크기 결정할 수 있다(S240). 예를 들어, 데이터 전송 서버(100)는 하기의 수학식 4를 이용하여 데이터 전송을 위한 버퍼크기를 결정할 수 있다.
<수학식 4>
Figure pat00013
(단, 상기 S-n은 n번째 데이터 전송에 대한 버퍼의 크기, 상기 Sn-1은 n-1번째 데이터 전송에 대한 버퍼의 크기 및 상기 Tn-1은 n-1번째 데이터 전송의 성공 및 실패 여부를 나타내는 지수).
보다 구체적으로, 데이터 전송 서버는 이진 탐색(Binary Search) 알고리즘을 이용하여 이전 전송의 실패 여부에 따라 버퍼 크기를 결정할 수 있다. 여기서, Tn-1은 -1번째 데이터 전송의 성공 및 실패 여부를 나타내는 지수이며, 전송이 실패하였을 경우 0으로 설정되고, 전송이 성공하였을 경우 1로 설정될 수 있다. 즉, n-1번째 데이터의 전송이 실패하였을 경우에 Sn은 Tn-1가 0이되어 Sn-1의 절반 크기로 줄어들게 된다. 반면에 성공한 경우, n-1번째 데이터의 전송이 실패하였을 경우 Sn은 Sn-1의 크기의 절반의 크기가 추가되어 크기가 늘어나게 된다. 예를 들어, 도 11을 참조하면, 최초의 S1은 최대 크기로 설정될 수 있다. 이후, S1의 전송이 실패한 경우, T1은 0이되기 때문에 S2는 S1의 절반 크기가 된다. 다음으로, S2의 전송이 실패한 경우, T2은 0이되기 때문에 S3는 다시 S2의 절반 크기가 된다. 다음으로, S3의 전송이 실패한 경우, T3은 0이되기 때문에 S4는 다시 S3의 절반 크기가 된다. 다음으로, S4의 전송이 성공한 경우, T4은 1이되기 때문에 S5는 S4의 크기와 S4의 절반 크기를 더한 값 즉, S4의 1.5배만큼 증가할 수 있다.
즉, 데이터 전송 서버(100)는 데이터 전송 방식이 제1 데이터 전송 방식에서 제2 데이터 전송 방식으로 바뀌는 경우, 또는 제2 데이터 전송 방식에서 제1 데이터 전송 방식으로 바뀌는 경우 등 데이터 전송 방식의 변경이 발생될 때마다 상기와 같은 버퍼의 크기를 조정하는 과정을 반복적으로 수행함으로써, 바뀐 데이터 전송 방식을 이용하여 네트워크의 환경에 최적화된 버퍼 크기를 산출할 수 있다는 이점이 있다.
다음으로, 데이터 전송 서버(100)는 S240단계에서 결정된 버퍼 크기만큼 데이터를 전송할 수 있다(S250). 예를 들어, 데이터 전송 서버는 S140단계에서 결정된 버퍼 크기만큼 파일을 읽는 동작(read)을 수행할 수 있다.
다음으로, 데이터 전송 서버(100)는 네트워크 연결(Network disconnect) 끊김 발생되고 이에 따라 데이터 전송 중단됨을 감지할 수 있다(S260). 이때, 마지막 데이터에 대한 전송이 완료되는 경우, 데이터 전송 완료 처리와 함께 작업을 종료하게 된다(S280). 만약, 완료되지 못한 경우, 시간 지연 동작을 통해 외부 서버(200)에서 송신한 응답에 포함된 QoS(Quality of Service) 정보에 맞춰 시간을 조정하고, 조정된 시간 에 맞춰 S240단계를 재수행한다.
일 실시예에서, 데이터 전송 서버(100)는 하나의 데이터 전송 요청에 대하여 최대 작업 횟수를 설정할 수 있으며, 데이터 전송이 실패하여 재전송을 하는 횟수가 최대 작업 횟수를 초과하는 경우, 데이터 전송을 재개하지 않고 종료 처리할 수 있다. 이하, 도 12 내지 도 14를 참조하여, 본 발명의 일 실시예에 따른 데이터 전송 서버(100)가 제1 데이터 전송 방식 및 제2 데이터 전송 방식만을 사용하지 않고, 두개의 데이터 전송 방식을 복합적으로 사용함으로써 발생되는 효과를 설명하도록 한다.
먼저 도 12는 실험환경 1,000,000개 크기의 데이터를 전송하는 환경에서, 네트워크 연결 끊어짐의 발생 확률에 따라 제1 데이터 전송 방식만을 사용하는 경우(a), 제2 데이터 전송 방식만을 사용하는 경우(b) 및 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 방식(c)에서의 데이터 전송 시간을 나타낸 표이다. 이때, 도 12는 1개의 데이터를 보내는 시간은 1, 제1 데이터 전송 방식의 요청 및 응답 시간은 5, 제2 데이터 전송 방식에서의 응답 시간은 2, 제2 데이터 전송 방식에서 분할된 데이터의 크기는 3으로 가정하여 실험한 결과이다.
실험 결과를 보면 네트워크 연결 끊어짐이 발생할 확률이 낮은 0%, 5%, 10% 및 15%에서는 제1 데이터 전송 방식만을 이용하는 경우(a)가 전체 데이터 전송 시간이 가장 짧은 것을 확인할 수 있다. 하지만 네트워크 연결 끊어짐이 발생할 확률이 20%, 25%, 30%, 35%, 40% 및 45%에서는 제2 데이터 전송 방식만을 사용하는 경우(b)가 전체 데이터 전송 시간이 가장 짧은 것을 확인 할 수 있다. 즉, 네트워크 연결 끊어짐이 발생할 확률이 낮은 경우 제1 데이터 전송 방식을 이용하는 것이 유리하며, 네트워크 연결 끊어짐이 발생할 확률이 높은 경우 제2 데이터 전송 방식을 이용하는 것이 유리하다는 것을 알 수 있다.
다음으로 도 13은 제1 데이터 전송 방식만을 이용하는 경우(a)와 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 방식(c)간의 성능비 및 제2 데이터 전송 방식만을 사용하는 경우(b)와 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 방식(c)간의 성능비를 나타내는 표이다.
도 13을 참조하면, 제1 데이터 전송 방식만 사용하는 경우(a)와 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 경우(c)를 비교하면, 네트워크 연결 끊어짐이 발생할 확률이 0%인 경우에서는 동일한 결과가 나오지만, 5% 및 10%인 경우에는 제1 데이터 전송 방식만을 사용하는 경우(a)가 조금 더 유리한 결과가 나왔음을 확인할 수 있다. 그러나, 네트워크 연결 끊어짐이 발생할 확률이 15% 이상인 경우에는 제1 데이터 전송 방식만을 사용하는 경우(a)보다 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 경우(c)가 더 유리하며 네트워크 연결 끊어짐이 발생할 확률이 45%인 경우에는 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 경우(c)가 제1 데이터 전송 방식만을 사용하는 경우(a)보다 약 5.37배의 성능을 보인다는 것을 확인할 수 있다.
또한, 제2 데이터 전송 방식만 사용하는 경우(b)와 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 경우(c)를 비교하면, 네트워크 연결 끊어짐이 발생할 확률의 모든 구간에서 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 경우(c)가 유리한 것을 확인할 수 있고, 특히 네트워크 연결 끊어짐이 발생할 확률이 45%인 경우에는 제1 데이터 전송 방식과 제2 데이터 전송 방식을 복합적으로 사용하는 경우(c)가 제2 데이터 전송 방식만 사용하는 경우(b)보다 약 4.56배의 성능을 보인다는 것을 확인할 수 있다. 즉, 도 14에 도시된 그래프와 같이 네트워크 연결 끊어짐이 발생할 확률 낮은 구간에서는 제1 데이터 전송 방식만 사용하는 경우(a) 및 제2 데이터 전송 방식만 사용하는 경우(b)와 유사한 성능을 보일 수 있으나, 네트워크 연결 끊어짐이 발생할 확률이 높아질수록 제1 데이터 전송 방식만 사용하는 경우(a) 및 제2 데이터 전송 방식만 사용하는 경우(b)보다 월등한 효율을 보인다는 것을 알 수 있다.
즉, 본 발명의 일 실시예에 따른 데이터 전송 서버(100)는 제1 데이터 전송 방식이나 제2 데이터 전송 방식과 같이 하나의 데이터 전송 방식만을 이용하지 않고, 네트워크 연결 끊어짐이 발생할 확률에 따라 가장 적합한 데이터 전송 방식을 선택하여 제1 데이터 전송 방식 및 제2 데이터 전송 방식을 복합적으로 사용함으로써, 데이터 전송 효율을 최대치로 올릴 수 있다는 이점이 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다. 이하 도 15를 참조하여, 본 발명의 다른 일 실시예에 따른 데이터 전송 서버의 하드웨어 구성에 대하여 설명하도록 한다.
도 15를 참조하면, 본 발명의 다른 일 실시예에 따른 데이터 전송 서버(100)는 하나 이상의 프로세서(110), 네트워크 인터페이스(120), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(130)와 하나 이상의 소프트웨어(141 및 142)를 저장하는 스토리지(140)를 포함할 수 있다.
프로세서(110)는 데이터 전송 서버(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(210)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 데이터 전송 서버(100)는 하나 이상의 프로세서(110)를 구비할 수 있다.
네트워크 인터페이스(120)는 데이터 전송 서버(100)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(120)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(120)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
네트워크 인터페이스(120)는 도 1에 도시된 네트워크(300)를 통해 클라이언트(400)로부터 데이터 전송 요청을 수신할 수 있다.
메모리(130)는 각종 데이터, 명령 및/또는 정보를 저장한다.
메모리(130)는 본 발명의 실시예들에 따른 데이터 전송 방법을 실행하기 위하여 스토리지(140)로부터 하나 이상의 프로그램(141 및 142)을 로드할 수 있다. 도 13에서 메모리(130)의 예시로 RAM이 도시되어 있으나, 이에 한정되지 않고, 하나 이상의 프로그램(141)을 로드할 수 있는 어떠한 구성 요소든지 적용 가능하다.
스토리지(140)는 외부 서버(200)로부터 제공받은 복수의 패턴 정보(142)를 비임시적으로 저장할 수 있다. 도 16에서 하나 이상의 프로그램(141)의 예시로 전송 방식 결정 소프트웨어(141) 및 버퍼 크기 결정 소프트웨어(142)가 도시되었다.
스토리지(140)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
전송 방식 결정 소프트웨어(141)는 제1 데이터 전송 방식을 이용하여 데이터 전송을 개시하는 동작, 데이터 전송이 중단되는 경우, 데이터 전송이 중단된 시점에서의 데이터 전송의 완료 여부를 확인하는 동작, 데이터 전송이 완료되지 못한 경우, 제1 데이터 전송 방식을 이용하여 전송되지 못한 일부의 데이터의 전송 재개할 경우의 이익 값 및 손해 값을 비교하는 동작 및 손해 값이 이익 값을 초과하는 경우, 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송 재개하는 동작을 수행할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (9)

  1. 컴퓨팅 장치에 의하여 수행되는 방법에 있어서,
    데이터 전송을 개시하는 단계;
    상기 데이터 전송이 중간에 중단된 경우, 상기 제1 데이터 전송 방식을 이용하여 전송되지 못한 나머지 데이터의 전송을 재개할 경우의 제2 데이터 전송 방식을 이용하여 재개하는 경우 대비 이익 값 및 손해 값을 비교하는 단계; 및
    상기 손해 값이 상기 이익 값을 초과하는 경우, 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계를 포함하되,
    상기 이익 값은 상기 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 상기 데이터 전송을 유지된 시간에서 상기 제2 데이터 전송 방식을 이용하여 기 설정된 크기의 데이터가 전송되는데 소요될 것으로 예측되는 시간을 뺀 값에 기반하여 결정된 값이고, 상기 손해 값은 상기 제1 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간에서 상기 제2 데이터 전송 방식에 따른 오버헤드(overhead) 데이터를 송신하는데 소요된 시간을 뺀 값에 기반하여 결정된 값인,
    데이터 전송 방법.
  2. 제1 항에 있어서,
    상기 제1 데이터 전송 방식은 서버와 클라이언트 간 대화식(Server-Client Interactive) 데이터 전송 방식이고, 상기 제2 데이터 전송 방식은 분할 데이터(partial data)를 이용한 데이터 전송 방식인,
    데이터 전송 방법.
  3. 제2 항에 있어서,
    상기 이익 값 및 손해 값을 비교하는 단계는,
    하기의 수학식 1을 만족하는지 여부를 이용하여 상기 제1 데이터 전송 방식에 대한 비정상 동작을 판단하는 단계; 및
    <수학식 1>
    Figure pat00014
    (단, E2EF는 상기 제1 데이터 전송 방식을 이용하여 상기 데이터 전송이 중단되기 이전까지 상기 데이터의 전송을 유지한 시간, 및 E2ER은 상기 제1 데이터 방식을 이용하여, 상기 클라이언트가 상기 서버에 요청(request)을 송신하고 그에 대한 응답(response)을 수신하는데 소요된 시간)
    상기 수학식 1을 만족하는 경우에 한하여, 상기 이익 값과 상기 손해 값을 비교하는 단계를 포함하는,
    데이터 전송 방법.
  4. 제2 항에 있어서,
    상기 이익 값 및 손해 값을 비교하는 단계는,
    하기의 수학식 2을 이용하여 상기 이익 값을 산출하는 단계를 포함하는,
    <수학식 2>
    Figure pat00015

    (단, E2EF는 상기 제1 데이터 전송 방식을 이용하여 상기 데이터 전송이 중단되기 이전까지 상기 데이터의 전송을 유지한 시간, SI은 상기 제1 데이터 전송 방식을 이용하여 데이터 전송이 중단되기 이전까지 전송된 데이터 전송량, 상기 SP는 상기 제2 데이터 전송 방식을 이용한 현재 설정에 따른 분할 데이터의 크기)
    데이터 전송 방법.
  5. 제2항에 있어서,
    상기 이익 값 및 손해 값을 비교하는 단계는,
    하기의 수학식 3을 이용하여 상기 손해 값을 산출하는 단계를 포함하는,
    <수학식 3>

    Figure pat00016

    (단, E2ER은 상기 제1 데이터 방식을 이용하여, 상기 클라이언트가 상기 서버에 요청(request)을 송신하고 그에 대한 응답(response)을 수신하는데 소요된 시간, E2EA는 상기 제2 데이터 전송 방식에 있어서 상기 서버로부터 분할 데이터 전송 성공 Ack가 수신되는데 소요된 시간)
    데이터 전송 방법.
  6. 제2 항에 있어서,
    상기 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계는,
    상기 전송되지 못한 나머지 데이터를 n(n은 2이상의 자연수)개의 데이터로 분할하되, 첫번째 데이터부터 n번째 데이터까지 순차적으로 데이터의 크기가 커지도록 분할하는 단계를 포함하는,
    데이터 전송 방법.
  7. 제6항에 있어서,
    상기 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계는,
    상기 첫번째 데이터부터 상기 n번째 데이터까지 순차적으로 데이터를 전송하되, M번째 데이터의 전송이 중단되고, 상기 제2 데이터 전송 방식을 이용하여 상기 M번째 데이터의 전송을 재개하는 경우, 상기 M번째 데이터의 크기를 M-1번째 데이터 크기와 동일하게 설정하여 전송하는 단계를 포함하는,
    데이터 전송 방법.
  8. 제1 항에 있어서,
    상기 제2 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 단계는,
    하기의 수학식 4를 이용하여 상기 데이터의 전송을 위한 버퍼(Buffer) 크기를 결정하는 단계를 포함하는,
    <수학식 4>
    Figure pat00017

    (단, 상기 S-n은 n번째 데이터 전송에 대한 버퍼의 크기, 상기 Sn-1은 n-1번째 데이터 전송에 대한 버퍼의 크기 및 상기 Tn-1은 n-1번째 데이터 전송의 성공 및 실패 여부를 나타내는 지수)
    데이터 전송 방법.
  9. 프로세서;
    네트워크 인터페이스;
    메모리; 및
    상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨터 프로그램은,
    데이터 전송을 개시하는 인스트럭션(instruction);
    상기 데이터 전송이 중단되는 경우, 상기 데이터 전송이 중단된 시점에서의 상기 데이터 전송의 완료 여부를 확인하는 인스트럭션;
    상기 데이터 전송이 완료되지 못한 경우, 서버와 클라이언트 간 대화식(Server-Client Interactive) 데이터 전송 방식을 이용하여 전송되지 못한 일부의 데이터의 전송 재개할 경우의 이익 값 및 손해 값을 비교하는 인스트럭션; 및
    상기 손해 값이 상기 이익 값을 초과하는 경우, 분할 데이터(partial data)를 이용한 데이터 전송 방식을 이용하여 상기 전송되지 못한 일부의 데이터의 전송을 재개하는 인스트럭션을 포함하는,
    데이터 송수신 장치.
KR1020180131550A 2018-10-31 2018-10-31 불안정 전송 환경에서의 데이터 전송 서버 및 방법 Withdrawn KR20200048911A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180131550A KR20200048911A (ko) 2018-10-31 2018-10-31 불안정 전송 환경에서의 데이터 전송 서버 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180131550A KR20200048911A (ko) 2018-10-31 2018-10-31 불안정 전송 환경에서의 데이터 전송 서버 및 방법

Publications (1)

Publication Number Publication Date
KR20200048911A true KR20200048911A (ko) 2020-05-08

Family

ID=70677731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180131550A Withdrawn KR20200048911A (ko) 2018-10-31 2018-10-31 불안정 전송 환경에서의 데이터 전송 서버 및 방법

Country Status (1)

Country Link
KR (1) KR20200048911A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117133401A (zh) * 2023-10-26 2023-11-28 北京中薪科技有限公司 基于ai的中医处方数据管理系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605907B1 (ko) 2007-01-04 2016-03-23 샌디스크 아이엘 엘티디 호스트와 데이터 저장 디바이스 사이의 파일 전송 실패의 복구

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605907B1 (ko) 2007-01-04 2016-03-23 샌디스크 아이엘 엘티디 호스트와 데이터 저장 디바이스 사이의 파일 전송 실패의 복구

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117133401A (zh) * 2023-10-26 2023-11-28 北京中薪科技有限公司 基于ai的中医处方数据管理系统
CN117133401B (zh) * 2023-10-26 2024-02-13 北京中薪科技有限公司 一种中医处方数据管理系统

Similar Documents

Publication Publication Date Title
EP3179701B1 (en) File upload and download methods and associated server
CA3158476C (en) Method for processing response timeout, and systems for server and client to process response timeout
US10645152B2 (en) Information processing apparatus and memory control method for managing connections with other information processing apparatuses
CN111897550B (zh) 镜像预加载方法、设备及存储介质
US10142425B2 (en) Session reliability for a redirected USB device
CN113377277B (zh) 管理存储器的方法、设备和计算机程序产品
US10180853B2 (en) Session reliability for a redirected mass storage device
KR20200048911A (ko) 불안정 전송 환경에서의 데이터 전송 서버 및 방법
US10693995B2 (en) Message execution server and control method
CN116028245B (zh) 一种基于消息中间件的业务消息处理方法和装置
US11736567B2 (en) Data transmission and network interface controller
CN112003947A (zh) 一种防止客户端向服务器重复请求的系统和验证方法
US7720967B2 (en) Method, system, and storage medium for resolving contention issues during channel program execution
US9239692B2 (en) Communication apparatus performing communication speed changing process, communication control method and storage medium
CN114564289B (zh) 任务切换方法、装置及电子设备
CN116996450B (zh) 一种管理数据处理方法、装置及系统
CN110109760B (zh) 一种内存资源控制方法及装置
JP5937539B2 (ja) 流量制御装置、通信制御システム、流量制御方法及びプログラム
JPH11327793A (ja) 記憶制御装置
EP2372526A2 (en) Data dividing method and data dividing device
CN117312440B (zh) 一种业务数据处理方法和装置
US20160248694A1 (en) Communication apparatus, communication system, and communication method
CN115981891A (zh) 计算任务的处理方法及装置
JP2006091969A (ja) 情報処理装置およびスケジューリング方法
JP2001344191A (ja) 二重化入出力制御方式および二重化入出力制御方法

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

PC1203 Withdrawal of no request for examination

St.27 status event code: N-1-6-B10-B12-nap-PC1203

WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid
P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

R11 Change to the name of applicant or owner or transfer of ownership requested

Free format text: ST27 STATUS EVENT CODE: A-3-3-R10-R11-ASN-PN2301 (AS PROVIDED BY THE NATIONAL OFFICE)

R13 Change to the name of applicant or owner recorded

Free format text: ST27 STATUS EVENT CODE: A-3-3-R10-R13-ASN-PN2301 (AS PROVIDED BY THE NATIONAL OFFICE)