KR101051712B1 - 데이터 전송 방법 - Google Patents

데이터 전송 방법 Download PDF

Info

Publication number
KR101051712B1
KR101051712B1 KR1020110012120A KR20110012120A KR101051712B1 KR 101051712 B1 KR101051712 B1 KR 101051712B1 KR 1020110012120 A KR1020110012120 A KR 1020110012120A KR 20110012120 A KR20110012120 A KR 20110012120A KR 101051712 B1 KR101051712 B1 KR 101051712B1
Authority
KR
South Korea
Prior art keywords
size
data
transmission window
transmission
window size
Prior art date
Application number
KR1020110012120A
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 KR1020110012120A priority Critical patent/KR101051712B1/ko
Application granted granted Critical
Publication of KR101051712B1 publication Critical patent/KR101051712B1/ko

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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 데이터 전송 방법에 관한 것으로서, 특히, 데이터 분산 서비스(DDS) 환경에서 발간 노드가 구독노드로 데이터를 전송할 때의 데이터 전송 성능을 향상시키는 방법에 관한 것이다. 본 발명의 실시 형태는 타임아웃 이전에 전송되는 데이터 용량인 전송창 크기를 결정하는 초기화 과정과, 상기 전송창을 통해 데이터를 전송하는 전송 과정과, 타임아웃 도래하기 전의 액크(ACK) 수신 여부에 따라서 상기 전송창 크기를 증대 또는 유지하며 데이터를 전송하는 전송창 증대/유지 과정을 포함한다.

Description

데이터 전송 방법{Method for data transmission}
본 발명은 데이터 전송 방법에 관한 것으로서, 특히, 데이터 분산 서비스(DDS) 환경에서 발간 노드가 구독노드로 데이터를 전송할 때의 데이터 전송 성능을 향상시키는 방법에 관한 것이다.
응용 프로그램간의 직접적인 데이터 교환을 구현하는데 따른 응용프로그램 개발자의 부담을 줄이기 위해서는 표준화된 통신 기법과 데이터 교환을 전담하여 대행하는 통신 미들웨어가 필요하며, 이를 위해 CORBA(Common Object Request Broker Architecture)나 JMS(Java Message System)과 같은 통신 미들웨어가 제공된다.
그러나, 통신 장비들이 동적으로 도메인을 형성하고 동일한 타입의 데이터를 빈번하게 주고받는 환경에서는 COBRA나 JMS보다는 데이터 중심의 발간-구독(Publisher-Subscriber) 방식이 적합하다. 이러한 발간-구독(Publisher-Subscriber) 방식에 적합한 통신 미들웨어의 표준 규격으로 OMG(Object Management Group)의 DDS(Data Distribution Service)가 제안되었는데, 이러한 DDS는 응용프로그램 및 하부 통신 네트워킹 기능과의 인터페이스를 정의한다.
항공 관제 시스템이나 함정 전투 체계(combat system)과 같이 다양한 장비로 구성되는 분산시스템에서는 여러 제작사에서 제공되는 각종 센서와 무장들을 다수의 다기능 콘솔들에 연동하여 운영해야 하며 통신 네트워크에 대한 의존도가 높기 때문에 통신 노드들의 환경 차이에 따른 상호 운용성 문제, 신뢰성 문제 등을 해결하기 위한 표준 통신 미들웨어로서 상기 DDS가 사용된다.
예를 들어, 함정 전투 체계에서의 정보처리는 센서로부터 수집한 데이터에 의하거나 또는 운용자의 명령에 의해 촉발되기 때문에 데이터 중심의 통신 특성이 강하고 여러 노드들에게 동시에 전파되는 경우가 많다. 이러한 함정 전투체계에 적합한 미들웨어 규격으로 OMG의 DDS가 사용되는데 응용프로그램/하부 통신 네트워킹 기능과의 인터페이스 및 미들웨어 기능 요구사항이 정의된다.
분산 환경에서 데이터를 발간(publish)-구독(subscribe)하는 통신 서비스를 제공하는 표준 미들웨어인 DDS에는 전송계층 통신 프로토콜로서, 신뢰성(reliable UDP(User Datagram Protocol)와 TCP(Transmission Control Protocol)를 사용한다.
신뢰성 UDP(Reliable UDP)는 표준화되지 않았으며, 구현하기가 용이하지 않다. 반면에, 신뢰성 TCP(Reliable TCP)는 오랜 기간 사용해서 신뢰성이 확보될 수 있으나 혼잡 회피 제어를 위한 슬로우 스타트 알고리즘(slow start algorithm)을 적용하고 있어, 신뢰성 UDP(Reliable UDP)에 비해 현저히 낮은 성능을 보인다.
DDS에서 사용하는 신뢰성 TCP(Reliable TCP)의 슬로우 스타트 알고리즘(slow start algorithm)은, 데이터 전송창을 '1' 크기에서 시작하여 상대방이 잘 받았다는 신호인 액크(ACK;ACKnowledge)를 수신한 후 전송창을 순차적으로 증대시켜 나간다. 그런데 이러한 슬로우 스타트(slow start) 동작 구조하에서는, 전송하고자 하는 데이터의 양이 많을 경우, 처음부터 많은 양을 전송할 수 없어 전송 효율이 떨어지는 문제가 있다. 또한, 주어진 시간 내에 데이터 송신에 대한 액크(ACK)가 도착하지 않으면, 슬로우 스타트 알고리즘(slow start algorithm)을 처음부터 다시 구동시켜서 데이터 전송창을 최초 단위인 '1' 크기로 변경하기 때문에, 전체적인 성능이 감소되는 문제가 있다. 또한, 종래의 슬로우 스타트 동작 구조하에서는 해당 네트워크 상태를 고려하지 않고 일방적으로 전송창을 증대시키기 때문에, 전송 능력이 떨어지는 문제가 있다.
본 발명의 기술적 과제는 TCP의 혼잡 회피 제어 알고리즘인 슬로우 스타트(slow start) 알고리즘을 변경하여 신뢰성과 성능을 보장하는 데이터 분산 서비스(DDS) 환경에서의 전송계층 프로토콜을 제안하는데 있다. 또한, 본 발명의 기술적 과제는 데이터 분산 서비스 환경에서 TCP 프로토콜에 따른 데이터 전송 시에 데이터 전송 성능을 향상시키는데 있다. 또한, 본 발명의 기술적 과제는 구독 노드(subscriber)의 수신버퍼 크기를 전송 제어의 인자(factor)로 사용함으로써, 다양한 망 상태 변화에 대응할 수 있도록 하는데 있다. 또한, 본 발명의 기술적 과제는, 구독 노드(subscriber)의 수신버퍼 크기와 현재의 전송창 크기를 비교하여 최종 전송할 크기를 결정함으로써 적절한 전송 제어를 수행하도록 하는데 있다.
본 발명의 실시 형태는 타임아웃 이전에 전송되는 데이터 용량인 전송창 크기를 결정하는 초기화 과정과, 상기 전송창을 통해 데이터를 전송하는 전송 과정과, 타임아웃 도래하기 전의 액크(ACK) 수신 여부에 따라서 상기 전송창 크기를 증대 또는 유지하며 데이터를 전송하는 전송창 증대/유지 과정을 포함한다. 상기 초기화 과정은, 네트워크 환경을 고려하여 초기 전송창 크기를 설정하는 과정과, 상기 수신버퍼 크기를 파악하는 과정과, 상기 초기 전송창 크기가 상기 수신버퍼의 크기보다 클 경우 전송창 크기를 상기 수신버퍼 크기와 같도록 결정하며, 그렇지 않을 경우 전송창 크기를 상기 초기 전송창 크기와 같도록 결정하는 과정을 포함한다. 상기 전송창 증대/유지 과정은, 데이터 전송 후 타임아웃 도래 전에 액크(ACK)가 수신되었는지를 판단하는 과정과, 상기 액크(ACK)가 수신될 때마다 전송창 크기를 증대시켜 가며 데이터를 전송하고, 상기 액크(ACK)가 수신되지 않은 경우 전송창 크기를 일정 크기로 고정 유지하며 데이터를 전송하는 과정을 포함한다.
본 발명의 실시 형태에 따르면 수신버퍼가 전송창보다 작을 경우 수신버퍼 크기로 전송을 함으로써, 불필요한 데이터 손실을 방지할 수 있다. 또한, 본 발명의 실시 형태에 따르면 전송창 크기가 수신버퍼 내에 존재할 경우에 한하여 지속적으로 데이터 전송량을 두 배로 증대시켜 전송 성능을 안정적으로 증대할 수 있다. 또한, 본 발명의 실시 형태에 따르면, 망 상황이 나빠질 경우, 전송창 크기를 고정적으로 가져가 불필요한 악화를 방지하면서도 지속적으로 같은 양의 데이터를 전송함으로써 성능 저하를 막을 수 있다.
도 1은 데이터 발간/구독을 통한 데이터 교환을 수행하는 데이터 분산 서비스(DDS)의 구성 모듈을 도시한 그림이다.
도 2는 본 발명의 실시 예에 따른 데이터 분산 서비스 환경에서의 데이터 교환을 위한 데이터 전송 흐름을 도시한 도면이다.
도 3은 본 발명의 실시예에 따른 데이터 분산 서비스 환경에서 발간 노드의 데이터 전송 과정을 도시한 플로차트이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 더욱 상세히 설명하기로 한다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 도면상에서 동일 부호는 동일한 요소를 지칭한다.
도 1은 데이터 발간/구독을 통한 데이터 교환을 수행하는 데이터 분산 서비스(DDS)의 구성 모듈을 도시한 그림이다.
일반적으로 네트워크와 서비스 환경에 적합한 통신 프로토콜에 응용 프로그램이 종속되게 된다. 응용프로그램이 통신 프로토콜에 종속되는 문제는 응용 계층과 운용체제 계층의 사이에서 통신 기능을 대행하는 미들웨어를 통해 해결할 수 있다.
DDS(Data Distribution Service)는 데이터 중심의 실시간 데이터 분배를 목적으로 OMG에서 정의되었다. 도메인에 속한 불특정 다수에게 데이터를 발간 및 구독이 가능하다.
도메인(domain) 내의 노드들이 동일한 타입의 데이터를 빈번하게 교환할 경우에는 데이터 중심 통신(data centric communication) 기법이 적합하다. 또한 도메인에 참여하는 노드들의 수가 많고, 동적으로 등록과 등록 해제가 이루어지는 경우에는 응용 프로그램에서 데이터를 교환할 상대를 찾고 연결을 맺는 서버/클라이언트 방식의 데이터 교환보다는 상대에 대한 인지없이 자신이 원하는 데이터를 발간(publish)/구독(subscribe)하는 방식의 데이터 교환이 더 효과적이다. 데이터를 발간하는 발간 노드(Publisher)들과 데이터를 구독하는 구독 노드(Subscriber)들이 모여서 하나의 도메인을 설정하고 서로 약속한 타입의 데이터 샘플을 멀티캐스트 방식으로 분배한다.
데이터 분산 서비스(DDS)에서의 데이터 발간/구독 세부 과정은 도 1과 같다. 하나의 도메인에는 다수의 발간 노드(Publisher)와 구독 노드(Subscriber)가 존재하며 미리 약속된 데이터 타입인 Topic의 샘플을 교환하게 된다.
데이터 분산 서비스(DDS)를 구성하는 주요 모듈은 다음과 같다.
-도메인(Domain): 발간 노드(publisher)와 구독 노드(subscriber)의 모임
-토픽(Topic): 도메인 내에서 교환하는 데이터 타입
-데이터 송신기(DataWriter): 응용으로부터 송신할 데이터를 받아서 토픽(Topic) 샘플을 생성하고 도메인으로 데이터를 전송하는 기능 수행
-데이터 수신기(DataReader):도메인으로부터 수신된 Topic 샘플을 응용 프로그램이 사용 가능한 메시지로 변환하여 응용에게 전달하는 기능 수행
도 2는 본 발명의 실시 예에 따른 데이터 분산 서비스 환경에서의 데이터 교환을 위한 데이터 전송 흐름을 도시한 도면이다.
발간 노드(Publisher)내의 데이터 송신기(DataWriter)는 구독 노드내(Subscriber)의 데이터 수신기(DataReader)로 데이터 전송 시에, 최초 전송 시점에는 미리 결정되는 초기 전송창 크기로 데이터를 전송한다.
상기 전송창(window)은 전송이 시작되고 타임아웃(timeout) 도래하기 전까지 전송할 수 있는 데이터 전송 용량을 말하는 것으로서, 노드간 전송 단위인 데이터 버스트(data burst)를 전부 합한 값이 전송창 크기가 된다. 예컨대, 한번에 전송할 수 있는 데이터 버스트가 1,024kb라고 가정할 경우, 만약, 5개의 데이터 버스트를 전송창을 통해 전송할 수 있다면, 1,024kb × 5 = 5,120kb의 데이터를 전송할 수 있으므로, 전송창 크기는 5,120kb가 된다.
또한, 전송 초기에 전송되는 전송창 크기는, 하나의 데이터 버스트(data burst)가 아닌 복수개의 데이터 버스트를 전송할 수 있는 크기로 설계된다. 종래의 TCP 슬로우 스타트(slow start) 알고리즘은, 초기 전송창 크기를 무조건 '1'의 데이터 버스트 크기로 고정하여 전송함으로써, 데이터 전송량에 제한이 있어 효과적이지 않았으나, 본 발명의 실시예는 전송 초기의 크기를 '1'보다 크게 한다. 이때, 본 발명의 실시예는 전송 초기의 크기를 수신버퍼 크기를 고려하여 설계함으로써, 전송 안정화를 꾀한다. 즉, 전송 초기에 전송되는 전송창 크기는 수신노드인 구독 노드의 수신버퍼 크기를 고려하여 설정된다. 예를 들어, 수신버퍼의 크기가 3,000,000kb인 경우, 초기에 전송되는 전송창 크기는 수신버퍼의 크기를 초과하지 않도록 설계한다.
한편, 상기 전송창 크기는 증대되는데, 타임아웃(timeout)이 도래하기 전에 액크(ACK)가 수신될 경우, 전송창 크기는 일정 배수로, 예컨대, 두 배로 증대된다.
예컨대, 초기 전송창 크기가 '5'(5개의 데이터 버스트)인 경우, 초기 전송 후 수신노드인 구독 노드로부터 타임아웃 전에 액크(ACK)를 수신하게 되면, 그 다음번째는 '10'(10개의 데이터 버스트) 전송창 크기로서 전송한다. '10' 크기의 전송창을 통해 전송한 후 정상적으로 액크(ACK)가 수신되면, 다시 그 두 배인 '20' 전송창 크기로서 전송한다. 따라서, '5'->'10'->'20'->'40'->'80'....으로서 전송창의 크기가 증대된다.
다만, 전송창 크기 증대는 계속 무제한 증대되는 것이 아니라, 종국에는 일정한 전송창 크기로 유지된다.
예를 들어, '5'->'10'->'20'->'40'->'80'->'160'->'320'으로 전송창 크기로 증대되고 있을 때, '320' 전송창 크기로 전송한 후 타임아웃이 도래하기 전까지 액크(ACK)신호를 수신하지 못한 경우, 더 이상 증대시키지 않고 그 이전 크기인 '160' 전송창 크기로 유지되어 전송이 이루어진다. 이하, 도 3과 함께 송신 노드(발간 노드)의 데이터 전송 과정을 좀 더 상세히 설명한다.
도 3은 본 발명의 실시예에 따른 데이터 분산 서비스 환경에서 발간 노드의 데이터 전송 과정을 도시한 플로차트이다.
이하 설명에서, 전송창(window)은 전송이 시작되고 타임아웃(timeout) 도래하기 전까지 전송할 수 있는 데이터 전송 용량을 말하는 것으로서, 노드간 전송 단위인 데이터 버스트(data burst)를 전부 합한 값이 전송창 크기가 된다. 상기에서 데이터 버스트는 송신노드와 수신노드간에 한번의 전송으로 이루어질 수 있는 데이터 용량을 말한다. 예컨대, 한번에 전송할 수 있는 데이터 버스트가 1,024kb라고 가정할 경우, 만약, 5개의 데이터 버스트를 전송창을 통해 전송할 수 있다면, 1,024kb × 5 = 5,120kb의 데이터를 전송할 수 있으므로, 그때의 전송창 크기는 5,120kb가 된다.
이하, 도 3의 플로차트와 함께 설명하면, 우선, 초기 전송창 크기를 설정한다. 네트워크 환경을 고려하여 초기 전송창 크기를 설정한다(S301). 예를 들어, 모뎀 네트워크와 같이 네트워크 환경이 열악할 경우에는 초기 전송창 크기를 최소로 하며, 광랜과 같이 네트워크 환경이 좋을 때는 최대로 설정한다.
또한, 증대 파라미터를 'T'로서 설정한다(S302). 상기 증대 파라미터는 전송창 크기 증대를 허용할지 허용하지 않을지 판단 기준이 되는 파라미터로서, 증대 파라미터가 'T'인 경우 전송창 크기 증대가 허용되며, 반면에 증대 파라미터가 'F'인 경우 전송창 크기 증대가 허용되지 않는다.
상기 초기화 과정이 이루어지고 난 후, 수신 노드의 수신버퍼 크기를 파악하는 과정을 가진다(S303). 수신버퍼 크기의 파악은 수신 노드(구독 노드)로부터 수신버퍼의 크기를 요청하여 전송받는다. 또는, 다른 실시예로서 발간 노드 자체내 또는 관리 서버 등에 저장되어 있는 이웃 노드 정보 테이블로부터 수신노드의 수신버퍼 크기를 파악한다. 상기 이웃 노드 정보 테이블은, 발간 노드(republisher)로부터 구독하는 수신 노드인 구독 노드(subscriber)의 어드레스 정보, 수신버퍼 크기 등의 구독 노드에 대한 노드 정보가 각 구독 노드별로 저장되어 있는 테이블이다.
초기 전송창 크기가 수신버퍼 크기보다 큰 지를 판단한다(S304).
상기 초기 전송창 크기가 상기 수신버퍼의 크기보다 클 경우, 전송창 크기를 상기 수신버퍼 크기로 설정한다(S305). 예를 들어, 수신버퍼 크기가 3,000,000kb일 때, 네트워크 환경이 우수하여 초기 전송창 크기를 10,000개의 데이터 버스트 크기인 10,240,000kb로 할 경우, 수신버퍼보다 초기 전송창 크기가 더 크기 때문에 전송창 크기를 수신버퍼 크기로 한정한다.
반면에, 상기 초기 전송창 크기가 상기 수신버퍼의 크기보다 같거나 작을 경우에는, 수신 버퍼의 크기를 초과하지 않기 때문에 전송창 크기를 초기 전송창 크기 그대로 설정한다(S306).
상기 전송창 크기가 결정되면, 결정된 전송창 크기만큼의 데이터를 전송한다(S307).
상기 데이터 전송이 이루어지고 난 후, 타임아웃(timeout) 도래하기 전에 액크(ACK)가 수신되었는지를 확인한다(S308). 액크(ACK) 수신 여부에 따라서 데이터 전송하는 전송창 크기를 증대 또는 유지하여 그 다음번째의 데이터를 전송한다. 즉, 1,024kb 단위의 데이터 버스트 2개로 된 2,048kb의 전송창을 통해 전송한 후 액크(ACK) 수신 여부에 따라서 그 다음의 전송창 크기를 그대로 할지, 또는 이전 단계의 전송창 크기로 유지할지를 결정하는 것이다.
상술하면, 타임아웃 도래 전에 액크(ACK)가 수신되었는지를 판단한 결과 액크(ACK)가 수신된 경우, 증대 파라미터가 'T'인지를 확인한다(S309). 증대 파라미터가 'T'인 경우 전송창 크기를 현재의 크기보다 두 배로 증대시킨다(S310). 예컨대, 현재 전송창 크기가 '20'(16개의 데이터 버스트)인 경우 그 두 배인 '40'으로 증대시킨다. 반면에, 증대 파라미터가 'F'인 경우 전송창 크기를 현재 전송창 크기 '20' 그대로 유지한다.
상기와 같이 타임아웃 도래전에 액크(ACK) 수신하여 전송창 크기를 증대한 경우, 증대된 전송창 크기를 가질때의 그 크기가 수신버퍼 크기보다 큰지를 판단(S311)하여, 클 경우에는 수신버퍼 크기를 갖도록 하는 전송창 크기로 줄인다(S312). 이는 전송창 크기 증대가 수신버퍼 크기보다 크지 않도록 하기 위함이다.
한편, 타임아웃 도래 전에 액크(ACK)가 수신되었는지를 판단(S308)한 결과 액크(ACK)가 수신되지 않은 경우, 액크(ACK)가 일정 횟수, 예컨대, 3회 연속적으로 수신되지 않았는지를 판단한다(S313). 판단결과, 연속적으로 수신되지 않은 경우 전송창 크기를 현재 전송창 크기보다 작은 크기로 줄인다(S314). 전송창 크기를 현재 전송창 크기보다 작은 크기로 줄이는 것은, 현재 전송창 크기로 증대되기 이전의 크기로 줄이는 것이다(S314).
예컨대, '20' 전송창 크기로서 현재 전송이 이루어진 단계를 n번째라 가정하면, n번째 전송 이전인 n-2번째, n-1번째 전송 때 모두 액크(ACK)가 수신되지 않았고 현재 n번째 전송때도 액크(ACK)가 수신되지 않은 경우, 전송창 크기를 현재 전송창 크기로 증대되기 이전 크기인 '10'으로 줄인다. 아울러, 증대 파라미터를 'F'로 설정한다. 'F'로 파라미터를 설정하는 것은, 향후 전송창 크기를 증대없이 '10'으로 고정 유지하며 전송함을 의미한다. 현재의 네트워크 상태가 '20' 전송창 크기 상태에서는 액크(ACK)를 수신하지 못하므로, 안정적으로 액크(ACK) 수신되는 최대 한도인 '10'으로 고정 유지하며 전송하기 위함이다.
상기 과정들(S307,S308,S309,S310,S311,S312,S313,S314,S315)은 모든 데이터 전송이 종료되어 데이터 전송 종료 인터럽트가 발생할 때(S316)까지 반복 수행되어, 전송창 크기 증대 또는 유지 상태로 데이터를 전송한다.
결국, 본 발명의 실시예는 구독 노드(subscriber)의 수신버퍼 크기를 이용하여 전송 제어의 인자(factor)로 사용함으로써, 다양한 망 상태 변화에 대응할 수 있다. 구독 노드(subscriber)로부터 받은 수신버퍼 크기와 현재의 전송창 크기를 비교하여 최종 전송할 크기를 결정함으로써 적절한 전송 제어를 수행한다. 이러한 전송 제어를 통하여 다음과 같은 결과를 얻을 수 있다.
첫째, 수신버퍼가 전송창보다 작을 경우에는 수신버퍼 크기로 전송을 하여 불필요한 데이터 손실을 방지한다. 둘째, 전송창 크기가 수신버퍼 내에 존재할 경우에 한하여 지속적으로 데이터 전송량을 두배로 증대시킨다. 셋째, 망 상황이 나빠질 경우(ACK가 수신되지 않고 타임아웃이 발생한 경우), 전송창 크기를 고정적으로 가져가 불필요한 악화를 방지하면서도 지속적으로 같은 양의 데이터를 전송함으로써 성능 저하를 막을 수 있다.
본 발명을 첨부 도면과 전술된 바람직한 실시예를 참조하여 설명하였으나, 본 발명은 그에 한정되지 않으며, 후술되는 특허청구범위에 의해 한정된다. 따라서, 본 기술분야의 통상의 지식을 가진 자라면 후술되는 특허청구범위의 기술적 사상에서 벗어나지 않는 범위 내에서 본 발명을 다양하게 변형 및 수정할 수 있다.
S301:초기 전송창 크기 설정 S303:수신노드의 수신버퍼 크기 파악
S307:데이터 전송 S310:데이터 크기를 두배 증대
S314:전송창 크기를 이전 크기로 설정

Claims (9)

  1. 타임아웃 이전에 전송되는 데이터 용량인 전송창 크기를 결정하는 초기화 과정;
    상기 전송창을 통해 데이터를 전송하는 전송 과정;
    데이터 전송 후 타임아웃 도래 전에 액크(ACK)가 수신되었는지를 판단하는 과정;
    상기 액크(ACK)가 수신될 때마다 전송창 크기를 증대시켜 가며 데이터를 전송하며, 증대되는 전송창 크기가 수신 버퍼의 크기보다 클 경우 전송창 크기를 수신버퍼 크기로 유지하여 데이터를 전송하는 과정;
    상기 액크(ACK)가 수신되지 않는 타임아웃이 일정횟수 이상 연속적으로 발생한 경우, 전송창 크기를 현재 단계 이전의 전송창 크기로 축소시킨 후, 축소된 전송창 크기로서 데이터 전송이 종료될 때까지 데이터를 전송하는 과정
    을 포함하는 데이터 전송 방법.
  2. 청구항 1에 있어서, 상기 데이터 전송 방법은, 발간 노드(publisher)가 구독 노드(subscriber)로 데이터를 전송하는 데이터 분산 서비스(DDS) 환경에서 이루어짐을 특징으로 하는 데이터 전송 방법.
  3. 청구항 1에 있어서, 상기 전송창 크기를 결정하는 것은, 네트워크 환경 및 수신 노드의 수신버퍼 크기를 고려하여 결정하는 데이터 전송 방법.
  4. 청구항 3에 있어서, 상기 초기화 과정은,
    네트워크 환경을 고려하여 초기 전송창 크기를 설정하는 과정;
    상기 수신버퍼 크기를 파악하는 과정;
    상기 초기 전송창 크기가 상기 수신버퍼의 크기보다 클 경우 전송창 크기를 상기 수신버퍼 크기와 같도록 결정하며, 그렇지 않을 경우 전송창 크기를 상기 초기 전송창 크기와 같도록 결정하는 과정;
    을 포함하는 데이터 전송 방법.
  5. 청구항 4에 있어서, 상기 초기 전송창 크기는 단일 데이터 버스트가 아닌 복수개의 데이터 버스트인 데이터 전송 방법.
  6. 청구항 4에 있어서, 상기 수신버퍼 크기를 수신 노드로부터 전송받거나, 이웃 노드 정보 테이블로부터 획득하는 데이터 전송 방법.
  7. 삭제
  8. 삭제
  9. 청구항 1에 있어서, 상기 전송창 크기를 증대시키는 것은, 현재의 전송창 크기보다 2배의 크기로 증대시키는 데이터 전송 방법.
KR1020110012120A 2011-02-11 2011-02-11 데이터 전송 방법 KR101051712B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110012120A KR101051712B1 (ko) 2011-02-11 2011-02-11 데이터 전송 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110012120A KR101051712B1 (ko) 2011-02-11 2011-02-11 데이터 전송 방법

Publications (1)

Publication Number Publication Date
KR101051712B1 true KR101051712B1 (ko) 2011-07-26

Family

ID=44924044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110012120A KR101051712B1 (ko) 2011-02-11 2011-02-11 데이터 전송 방법

Country Status (1)

Country Link
KR (1) KR101051712B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193577A (zh) * 2018-11-15 2020-05-22 迈络思科技有限公司 使用传输超时的网络系统通信方法及通信装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115241A (ja) * 1998-10-01 2000-04-21 Kdd Corp データ転送制御方法
US20060034286A1 (en) * 2004-07-29 2006-02-16 Koning G P High performance TCP for systems with infrequent ACK

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115241A (ja) * 1998-10-01 2000-04-21 Kdd Corp データ転送制御方法
US20060034286A1 (en) * 2004-07-29 2006-02-16 Koning G P High performance TCP for systems with infrequent ACK

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193577A (zh) * 2018-11-15 2020-05-22 迈络思科技有限公司 使用传输超时的网络系统通信方法及通信装置

Similar Documents

Publication Publication Date Title
US20220303367A1 (en) Concurrent process execution
JP2006074769A (ja) ネットワークのポートマッピング用システム
CN106953797B (zh) 一种基于动态连接的rdma数据传输的方法与装置
CN107786448B (zh) 建立业务流的转发路径的方法和装置
CN110661733B (zh) 网络接口卡、交换卡及线路卡
WO2022218516A1 (en) Devices and methods for collaborative learning of a transmission policy in wireless networks
US20240187482A1 (en) Device and method for remote direct memory access
WO2020214469A1 (en) Efficient message transmission and loop avoidance in an rpl network
JP2007081569A (ja) 無線ネットワーク情報配信方法
KR20220027715A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스를 제공하는 프로그램
KR101051712B1 (ko) 데이터 전송 방법
CN109586931B (zh) 组播方法及终端设备
US8150996B2 (en) Method and apparatus for handling flow control for a data transfer
CN111147386B (zh) 用于处理数据传输拥塞的方法、电子设备和计算机可读介质
CN112929448B (zh) 一种基于dds的多路传输场景下的动态调度方法
KR102279601B1 (ko) Dds를 위한 게이트웨이 구동 방법
CN115396383B (zh) 一种多台设备传输码流中反向控制码流的方法
US9172774B2 (en) Technique for managing communications at a router
JP7027697B2 (ja) データ受信装置、システム、方法およびプログラム
KR20220027707A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치
KR20220027708A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법
KR20220027711A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 시스템
KR20220027706A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법
CN114598657A (zh) 基于二层多路径流控的数据传输方法、系统及介质
KR20200036181A (ko) Dds를 위한 게이트웨이 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
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: 20140630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 9