다른기기 간 udp 통신 방법

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.

도 1은, 본 발명의 일 실시 형태에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기의 구성을 개략적으로 나타낸다. 본 발명에 따른 전자기기는, 데이터를 송신하는 송신장치 및 데이터를 요청 및 수신하는 수신장치에 각각 구비될 수 있으며, 데이터를 송신하는 동작 및 데이터를 수신하는 동작에 따라 그 기능을 구분하여 실행될 수 있다.

도 1을 참조하면, 본 발명에 따른 전자기기(10)는, 데이터 송신 모듈(100) 및 데이터 수신 모듈(200)을 적어도 포함하여 구성될 수 있다.

데이터 송신 모듈(100)은, 수신장치의 데이터 전송 요청에 따라 TCP 연결 방식을 기반으로 데이터를 패킷 단위로 수신장치로 송신할 수 있다. 이때, 데이터 송신 모듈(100)은 수신장치로부터 UDP 전환 요청이 수신될 경우, TCP 연결 방식을 R-UDP 연결 방식으로 전환하여 수신장치에 데이터를 패킷 단위로 일괄 송신할 수 있다.

그리고, 데이터 수신 모듈(200)은, 송신장치로 데이터 전송 요청을 송신하고, TCP 연결 방식을 이용해 송신되는 패킷의 전송상태를 분석하고 그 분석결과에 따라 UDP 전환 요청 또는 수신성공 응답메시지를 포함하는 피드백정보를 송신장치로 송신할 수 있다. 여기서, 패킷의 전송상태는 데이터 전송속도일 수 있다.

본 발명에서는, 송신장치 및 수신장치 간 R-UDP 연결 방식의 전환으로 데이터를 송수신이 이루어지더라도, 명령(요청) 및 피드백정보(응답메시지(ACK)) 및 중요 데이터 정보가 포함된 제1 패킷은 신뢰성을 보장하는 TCP 연결 방식을 이용하여 송수신된다.

이와 같이 본 발명에 따른 전자기기는, TCP 연결 방식을 이용해 데이터 전송 시 전송상태를 분석하고, 전송속도 저하 발생시 R-UDP 연결 방식의 자동 전환을 수행하여 데이터를 전송함으로써 속도 느림 현상을 최소화할 수 있다. 즉, 본 발명에 따른 전자기기는, 데이터 전송상태에 따라 TCP 연결 방식과 R-UDP 연결 방식의 자동 전환을 통해 데이터를 전송함으로써 신뢰성 보장뿐만 전송속도도 개선할 수 있다.

구체적으로, 본 발명에 따른 전자기기의 데이터 송신 모듈(100)은, 제1 패킷처리부(110) 및 제1 제어부(120)를 적어도 포함하여 구성될 수 있다.

먼저, 제1 패킷처리부(110)는, 수신장치로부터 데이터 전송 요청이 TCP 연결 방식을 이용하여 수신되면, 데이터를 TCP 연결 방식에 대응하는 패킷 단위로 분할한 후 분할된 TCP 패킷마다 순차적으로 넘버링을 수행하고, TCP 연결 방식을 이용해 넘버링된 TCP 패킷의 송신을 처리할 수 있다.

또한, 제1 패킷처리부(110)는, 제어부(120)의 제어에 따라 넘버링된 패킷 중 중요한 데이터 정보를 포함하는 제1 패킷을 TCP 연결 방식을 이용해 수신장치로 송신할 수 있다. 이때, 수신장치의 피드백 정보가 수신되면 잔여 패킷들을 수신장치로 송신할 수 있다. 피드백 정보는 수신성공 ACK 또는 UDP 전환 요청 정보를 포함할 수 있으며, 피드백 정보가 수신성공 ACK일 경우 제1 패킷처리부(110)는, 잔여 패킷들을 TCP 연결 방식을 통해 수신장치로 송신할 수 있다.

또한, 제1 패킷처리부(110)는, 수신장치로부터 송신된 패킷의 소실에 따른 데이터 재전송 요청 시마다 데이터 전송속도를 다운시킨 후 패킷 재전송을 수행할 수 있다.

또한, 제1 패킷처리부(110)는, 수신장치로부터 UDP 전환 요청이 수신되면, 제어부(120)의 제어에 따라 TCP 패킷을 UDP 패킷으로의 변환을 수행 변환한 후 R-UDP 연결 방식을 이용해 수신장치로 UDP 패킷들을 일괄적으로 송신할 수 있다. 즉, 제1 패킷처리부(110)는, TCP 패킷의 크기를 변경하여 데이터를 분할한 후 분할된 패킷에 순차적으로 증가하는 시퀀스 번호를 추가하여 UDP 패킷을 재구성할 수 있다. 예를 들어, 제1 패킷처리부(110)는, TCP 패킷의 경우 하나의 패킷을 4096byet 크기로 구성하고, UDP 패킷의 경우 하나의 패킷을 1024byte 크기로 구성할 수 있다.

또한, 제1 패킷처리부(110)는, R-UDP 연결 방식을 이용해 재구성된 UDP 패킷들을 수신장치로 송신을 처리할 수 있다. 예를 들어, 제1 패킷처리부(110)는, 제1 패킷 송신 후, 수신성공 ACK를 포함하는 피드백 정보가 수신되면 32개의 UDP 패킷 단위로 일괄 송신을 수행할 수 있다.

이러한 제1 패킷처리부(110)는, TCP 연결 방식을 이용해 기본적인 데이터 전송을 처리하되, 수신장치로부터 UDP 전환 요청이 수신되는 경우, R-UDP 연결 방식으로 자동 전환하여 데이터 전송을 처리할 수 있다.

그리고, 제1 제어부(120)는, TCP 연결 및 해제를 관리하고, TCP 연결 방식을 기반으로 접속제어, 응답제어 및 데이터 전송을 수행하도록 제어하는데, 이를 통해 접속제어, 응답제어 및 데이터 전송 동작과 같은 중요한 데이터는 신뢰성을 보장할 수 있다.

이러한 제1 제어부(120)는, 제1 패킷처리부(110)의 데이터 전송 제어와 R-UDP 연결 방식의 자동 전환을 제어할 수 있다.

먼저, 제1 제어부(120)는, 수신장치로부터 데이터 전송 요청이 수신되면, TCP 연결 방식을 이용해 데이터 전송을 수행하도록 제1 패킷처리부(110)를 제어할 수 있다. 이때, 제1 패킷처리부(110)는, 전송할 데이터를 패킷 단위로 분할한 후 패킷 넘버링을 수행하고 TCP 연결 방식을 이용해 수신장치로 TCP 패킷의 송신을 처리할 수 있다.

또한, 제1 제어부(120)는, 수신장치로부터 소실된 패킷에 대한 데이터 재전송 요청이 수신되면, 소실된 패킷을 TCP 연결 방식을 이용해 데이터 전송속도를 다운시켜 재전송하도록 제1 패킷처리부(110)를 제어할 수 있다.

또한, 제1 제어부(120)는, 수신장치로부터 TCP 연결 방식을 이용해 UDP 전환 요청이 수신되면, R-UDP 연결 방식을 이용해 UDP 패킷들을 수신장치에 일괄 송신하도록 제1 패킷제어부(110)를 제어할 수 있다. 이때, 제1 패킷처리부(110)는, TCP 패킷을 UDP 패킷으로의 변환을 수행한 후 R-UDP 연결 방식을 이용해 수신장치로 변환된 UDP 패킷의 송신을 처리할 수 있다.

여기서, R-UDP 연결 방식은, R-UDP(Reliable UDP) 연결 방식으로, 송신장치에서 UDP 패킷에 순차적으로 증가하는 시퀀스 번호를 추가한 후 UDP 패킷의 시퀀스 번호를 순차적으로 증가시키면서 패킷 단위로 일괄 전송하고, 수신장치에서 수신된 UDP 패킷의 시퀀스 번호에 따라 순서대로 배열함으로써 UDP 패킷의 소실 확인 및 재전송 요청을 수행할 수 있는 데이터 무결성을 보장할 수 있는 방식이다.

다시 말해, 제1 제어부(120)는, TCP 연결 방식을 기반으로 기본적인 제어 및 데이터 전송 프로세스를 수행하도록 제어하지만, 데이터 오류 등에 의한 데이터 재전송이 반복되므로 인해 데이터 전송속도가 미리 설정된 임계값보다 느려질 경우 수신장치로부터 R-UDP 연결 방식의 전환 요청이 수신되고, 이 경우, R-UDP 연결 방식을 이용해 데이터 전송을 수행하도록 제어할 수 있다.

또한, 제1 제어부(120)는, 수신장치로부터 R-UDP 연결 방식을 통해 송신된 패킷 중 소실된 UDP 패킷의 재전송 요청이 수신되면, 소실된 패킷을 R-UDP 연결 방식을 이용해 재전송하도록 제1 패킷처리부(110)를 제어할 수 있다. 여기서, 소실된 패킷의 재전송 요청은 TCP 연결 방식을 이용해 수신된다.

다음으로, 데이터 수신 모듈(200)은, 제2 패킷처리부(210) 및 제2 제어부(220)를 적어도 포함하여 구성될 수 있다.

먼저, 제2 패킷처리부(210)는, 송신장치로부터 TCP 연결 방식을 이용해 송신되는 제1 패킷이 수신되면, 수신된 제1 패킷을 분석하여 데이터 정보를 판별한다. 제1 패킷은 이후 전송할 데이터 크기, 데이터 전송속도 등의 데이터 정보를 포함하는 패킷으로 반드시 전송되어야 하므로 TCP 연결 방식으로 전송된다.

그리고 제2 패킷처리부(210)는 제1 패킷이 수신된 이후, 기설정된 기준시간(예를 들면 1초)동안 수신되는 TCP 패킷의 데이터의 전송속도가 미리 설정된 임계값 이상인지 여부를 분석할 수 있다. 예를 들어, 제2 패킷처리부(210)는, 제1 패킷 이후 1초간 수신 데이터가 500KB 이상 수신되었는지를 분석하여 데이터 전송속도의 저하 정도를 분석할 수 있다. 상기한 바와 같이, TCP 전송 방식은 패킷 전송에 실패하여 재전송 요청하게 되면, 송신된 패킷의 소실에 따른 데이터 재전송 요청 시마다 이전보다 데이터 전송속도를 다운시킨 후 패킷 재전송을 수행한다. 따라서 TCP 전송 중 패킷 소실이 계속하여 발생하면, 데이터 전송속도가 크게 낮아진다.

이에 제2 패킷처리부(210)는, 수신된 제1 패킷 이후 기준시간 동안 수신된 데이터의 데이터 전송속도가 미리 설정된 임계값 이상이면 잔여 데이터를 계속해서 수신하도록 처리하고, 수신된 제1 패킷 이후, 기설정된 기준시간 동안 전송되는 TCP 패킷의 데이터의 데이터 전송속도가 미리 설정된 임계값보다 느리면 UDP 전환을 송신장치에 요청하도록 처리할 수 있다. 즉, 제2 패킷처리부(210)는, 데이터 전송속도의 분석 결과에 따라 수신성공 ACK 또는 UDP 전환 요청을 포함하는 피드백 정보를 송신장치로 TCP 연결 방식을 이용해 송신할 수 있다.

여기서 제2 패킷처리부(210)가 제1 패킷을 제외한 기설정된 기준시간 동안 수신되는 TCP 패킷의 데이터의 전송속도를 분석하는 것은, 데이터 정보를 포함하는 제1 패킷은 반드시 전송되어야 하는 정보로서 TCP 연결 방식으로 전송되어야 할뿐만 아니라, 패킷의 크기가 크지 않기 때문에 전송속도를 측정하기에 적합하지 않기 때문이다. 즉 데이터 정보를 포함하는 제1 패킷의 패킷 길이와 이후 전송되는 실제 데이터의 TCP 패킷 길이가 서로 상이하여, 제1 패킷으로 실제 데이터에 대한 데이터 전송속도를 정확하게 측정하기 어렵다. 따라서 본 발명에서는 제2 패킷처리부(210)가 제1 패킷이 수신된 이후, 실제 데이터가 전송되는 구간에서, 기준시간 동안 수신되는 데이터의 전송 속도를 측정하여 UDP 전환 요청 여부를 결정한다.

또한, 제2 패킷처리부(210)는, UDP 전환 요청 후, 송신장치로부터 R-UDP 연결 방식을 이용해 수신되는 UDP 패킷을 일괄 수신하고, 수신된 UDP 패킷들 중 소실된 UDP 패킷의 존재 여부를 분석할 수 있다. 예를 들어, 제2 패킷처리부(210)는, 수신된 UDP 패킷들에 추가된 시퀀스 번호를 이용해 UDP 패킷들을 순차 정렬하고 소실된 UDP 패킷의 시퀀스 번호를 식별할 수 있다.

또한, 제2 패킷처리부(210)는, 소실된 패킷의 시퀀스 번호를 제2 제어부(220)로 전달하여 소실된 패킷의 재전송을 송신장치로 요청할 수 있도록 처리할 수 있다.

그리고, 제2 제어부(220)는, 송신장치(20)로 데이터 전송 요청을 TCP 연결 방식을 이용해 송신하고, 이에 대한 제1 패킷(중요 데이터 정보 포함)이 수신되면, 수신된 제1 패킷의 분석을 수행하도록 제2 패킷처리부(210)를 제어할 수 있다. 그러면, 제2 패킷처리부(210)는, 수신된 제1 패킷을 분석하여 데이터 정보를 확인하여 TCP 연결 방식으로 데이터를 수신할 수 있으며, 제1 패킷이 수신된 이후 기준시간 동안 수신되는 TCP 패킷의 데이터 전송속도가 미리 설정된 임계값 이상인지 여부를 분석할 수 있다.

또한, 제2 제어부(220)는, 기준시간 동안 수신된 TCP 패킷 분석 결과, 데이터 전송속도가 임계값 이상이면 잔여 데이터에 대한 송신을 송신장치로 요청하는 수신성공 응답메시지(ACK)를 포함하는 피드백 정보를 송신할 수 있다.

또한, 제2 제어부(220)는, 기준시간 동안 수신된 데이터 분석 결과, 데이터 전송속도가 임계값보다 느리면 UDP 전환 요청을 포함하는 피드백 정보를 송신장치로 송신할 수 있다.

또한, 제2 제어부(220)는, UDP 전환 요청에 따라 송신장치로부터 R-UDP 연결 방식을 이용해 UDP 패킷들이 일괄 수신되면, 소실된 UDP 패킷이 있는지 패킷 분석을 수행하도록 제2 패킷처리부(210)를 제어할 수 있다. 이때, 제2 패킷처리부(210)는, R-UDP 연결 방식을 이용해 수신된 UDP 패킷의 시퀀스 번호를 순차 정렬하여 소실된 UDP 패킷의 시퀀스 번호를 식별할 수 있다. 여기서 UDP는 상기한 바와 같이 시퀀스 번호가 포함되어 패킷 소실 여부를 확인할 수 있는 R-UDP를 의미한다.

또한, 제2 제어부(220)는, 제2 패킷처리부(210)에 의해 식별된 소실 UDP 패킷의 시퀀스 번호를 포함하는 피드백 정보를 TCP 연결 방식을 이용해 송신장치(20)로 송신하여 소실 UDP 패킷의 재전송을 요청할 수 있다.

또한, 제2 제어부(220)는, R-UDP 연결 방식을 이용해 송신되는 소실 UDP 패킷을 수신하고, 이에 대한 수신완료 응답메시지를 포함하는 피드백 정보를 TCP 연결 방식을 이용해 송신장치(20)로 송신할 수 있다.

상술한 바와 같이, 본 발명에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기는, TCP 연결 방식을 기반으로 데이터 전송을 수행하되, 데이터 전송속도가 설정된 임계값 이하로 다운되어 전송 지연을 발생시킬 경우, R-UDP 연결 방식으로 자동 전환하여 데이터 전송을 수행하도록 제어함으로써 신뢰성을 보장하는 동시에 데이터 전송속도를 개선할 수 있다.

도 2는, 본 발명의 일 실시 형태에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기를 이용한 패킷 송수신 과정을 개략적으로 나타낸다. 여기서, 송신장치(20) 및 수신장치(30)는, 도 1에 도시된 전자기기(10)를 각각 구비할 수 있으며, 송신장치(20)의 전자기기(10)는 데이터 송신 모듈을 통해 패킷 송신을 수행하고, 수신장치(30)의 전자기기(10)는 데이터 수신 모듈을 통해 패킷 수신을 수행할 수 있다.

도 2를 참조하면, 먼저, 수신장치(30)가 송신장치(20)로 TCP 연결 방식을 이용해 데이터 전송 요청 메시지를 송신하고, 데이터 수신을 대기할 수 있다(①).

그러면, 송신장치(20)는, 전송할 데이터를 TCP 연결 방식에 대응하는 패킷 단위로 분할한 후 패킷 넘버링을 수행하고, 넘버링된 패킷 중 제1 패킷과 함께 제2 내지 제m(여기서 m은 자연수) TCP 패킷을 수신장치(30)로 TCP 연결 방식을 이용해 송신할 수 있다(②). 여기서, 제1 패킷은 전송할 데이터 정보를 포함할 수 있다.

수신장치(30)는, 제1 패킷 이후 제2 내지 제m TCP 패킷 중 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도가 미리 설정된 임계값 이상인지 여부를 분석하고(③), 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도가 임계값 이상이면 TCP 연결 방식을 이용해 잔여 데이터의 송신을 요청하고, 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도가 임계값보다 느리면 UDP 전환을 요청하는 응답메시지를 포함하는 피드백 정보를 TCP 연결 방식을 이용해 송신장치(20)로 송신할 수 있다(④).

설명의 편의를 위해 도시하지 않았으나, TCP 연결 방식으로 TCP 패킷을 수신하는 수신장치(30)는 상기한 TCP 전송 방식에 따라, 제2 내지 제m TCP 패킷이 수신될 때마다, 수신완료 응답메시지 또는 재전송 요청 응답 메시지를 송신장치(20)로 전송할 수 있다.

그러면, 송신장치(20)는, TCP 연결 방식을 R-UDP 연결 방식으로 전환하고, 전환된 R-UDP 연결 방식을 이용해 제2 내지 제n(여기서 n은 자연수) UDP 패킷들을 수신장치(30)로 일괄 송신할 수 있다(⑤). 여기서 R-UDP 연결 방식의 UDP 패킷과 TCP 연결 방식의 TCP 패킷의 개수가 다르게 설정되는 것은 상기한 바와 같이, UCP와 TCP 각각의 연결 방식에서 패킷에 포함된 데이터 크기가 서로 상이하기 때문이다.

수신장치(30)는, 송신된 TCP 또는 UDP 패킷들에 대한 수신완료 응답메시지를 포함하는 피드백 정보를 TCP 연결 방식을 이용해 송신장치(20)로 송신할 수 있다(⑥).

상술한 바와 같이, 본 발명에서는, UDP 전환 이후에도 명령 및 응답메시지, 전송할 데이터 정보를 포함하는 제1 패킷 등은 TCP 연결 방식을 통해 장치간 통신이 이루어질 수 있으며, 이를 통해 패킷 송수신에 있어서 필요한 정보들을 소실 없이 송수신할 수 있다. 예를 들어, 데이터 전송 요청 명령(수신장치 -> 송신장치), 제1 패킷(송신장치 -> 수신장치), 수신장치의 모든 응답메시지를 포함하는 피드백 정보 등은 TCP 연결 방식을 이용해 반드시 송신되어야 한다.

이처럼 본 발명은, TCP 연결 방식을 기반으로 데이터 전송을 수행하되, 데이터의 전송상태가 나쁠 경우 R-UDP 연결 방식으로 자동 전환을 수행하여 데이터 전송을 수행함으로써 신뢰성과 전송속도를 동시에 보장할 수 있게 된다.

상기에서는 제1 패킷 후 기준시간 동안 수신되는 데이터의 데이터 전송 속도만을 고려하여 TCP 또는 UDP 를 결정하는 것으로 설명하였으나, 수신장치(30)는 기설정된 시간 간격(예를 들면 1분)으로 주기적으로 데이터 전송 속도를 체크할 수 있다. 또는 기설정된 개수의 패킷이 전송된 이후 또는 기설정된 데이터량이 전송된 이후에 데이터 전송 속도를 체크하도록 설정될 수도 있다.

도 3은, 도 2에 도시된 송신장치와 수신장치 간 데이터 흐름을 개략적으로 나타낸다. 본 발명에 있어서, 송신장치(20)와 수신장치(30) 간 통신을 위해 송신장치의 TCP와 수신장치의 TCP가 연결 설정된 것을 전제로 한다. 그리고, 송신장치(20)는 데이터 송신 모듈(100)을 통해 패킷 송신을 수행하고, 수신장치(30)는 데이터 수신 모듈(200)을 통해 패킷 수신을 수행할 수 있다.

도 3을 참조하면, 수신장치(30)의 데이터 수신 모듈(200)은 연결된 TCP 연결 방식(31)을 이용해 송신장치(20)로 데이터 전송 요청을 전송할 수 있다(S301).

그러면, 수신장치(30)로부터 데이터 전송 요청을 수신한 송신장치(20)의 데이터 송신 모듈(100)은, 전송할 데이터를 TCP 연결 방식에 따라 소정 크기의 패킷 단위로 분할하고 분할된 TCP 패킷에 순차적으로 넘버링을 수행한 후 제1 패킷을 연결된 TCP 연결 방식(21)을 이용해 수신장치(30)로 송신할 수 있다(S302). 여기서, 제1 패킷은 데이터 크기, 전송속도 등의 전송할 데이터 정보를 포함할 수 있다.

제1 패킷을 수신한 수신장치(30)의 데이터 수신 모듈(200)은, 제1 패킷을 분석하여, 데이터 전송 정보를 확인하고, 수신 성공 응답메시지를 포함하는 피드백 정보를 연결된 TCP 연결 방식(31)을 이용해 송신장치(20)로 송신한다(S303).

이에 송신장치(20)의 데이터 송신 모듈(100)은, 제2 TCP 패킷을 TCP 연결 방식(21)을 이용해 수신장치(30)로 송신할 수 있다(S304).

수신장치(30)의 데이터 수신 모듈(200)은, 제2 TCP 패킷이 정상적으로 수신되지 않으면, 재전송 요청 메시지를 포함하는 피드백 정보를 TCP 연결 방식(31)을 이용해 송신장치(20)로 송신한다(S305).

송신장치(20)의 데이터 송신 모듈(100)은, 제2 TCP 패킷이 정상적으로 전송되지 않음에 따라 데이터 전송 속도를 다운시킨 후, 제2 TCP 패킷을 TCP 연결 방식(21)을 이용해 수신장치(30)로 재송신할 수 있다(S306).

반면 수신장치(30)의 데이터 수신 모듈(200)은, 제2 TCP 패킷이 정상적으로 수신되면, 수신 성공 응답메시지를 포함하는 피드백 정보를 연결된 TCP 연결 방식(31)을 이용해 송신장치(20)로 송신하고, 송신장치(20)의 데이터 송신 모듈(100)은, 제3 TCP 패킷을 TCP 연결 방식(21)을 이용해 수신장치(30)로 송신할 수 있다.

즉 TCP 연결 방식에서는 수신장치(30)이 각 TCP 패킷을 전송할 때마다 TCP 패킷이 정상적으로 전송되는지 실패하는지 판별하여 피드백 정보를 송신장치(20)로 전송하여, 전송 실패시마다 반복적으로 전송 속도를 다운 시킨다.

본 발명에서는 일예로 제2 TCP 패킷이 기준시간 동안 정상적으로 인가되지 않는 것으로 가정하여 설명한다.

이에 수신장치(30)는 제1 패킷 이후 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도가 미리 설정된 임계값 이상인지 여부를 분석하고(S307), 분석 결과, 제1 패킷 이후 기준시간 동안 수신한 TCP 패킷 데이터 전송속도가 임계값 이상이면, 수신 성공 응답메시지를 포함하는 피드백 정보를 연결된 TCP 연결 방식(31)을 이용해 송신장치(20)로 송신할 수 있다(S313).

그러나 수신장치(30)의 데이터 수신 모듈(200)은, 제1 패킷 이후 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도가 임계값보다 느리면 UDP 전환 요청을 연결된 TCP 연결 방식(31)으로 송신장치(20)로 송신할 수 있다(S308).

UDP 전환 요청을 수신한 송신장치(20)의 데이터 송신 모듈(100)은, 잔여 TCP 패킷들(예를 들면 제2 ~ 제m(예를 들면 8) 패킷)을 연결된 R-UDP 연결 방식(23)를 이용해 수신장치(30)로 일괄 송신할 수 있다(S309). 이때, 송신장치(20)의 데이터 송신 모듈(100)은, 패킷의 크기를 변경하는 패킷 재구성을 수행할 수 있다. 예를 들어, 송신장치(20)의 데이터 송신 모듈(100)은, 기존 TCP 패킷의 크기(4096byte)를 1024byte 크기의 UDP 패킷으로 변경하여 데이터를 분할하고, 분할된 패킷마다 시퀀스 번호를 순차적으로 증가시켜 추가함으로써 패킷 재구성을 수행하며, 기설전된 개수(예를 들면 32개)의 패킷 단위로 일괄 송신할 수 있다.

UDP 패킷들을 일괄 수신한 수신장치(30)의 데이터 수신 모듈(200)은, 일괄 수신된 UDP 패킷들에 추가된 시퀀스 번호를 이용해 UDP 패킷들을 정렬하고, 이를 통해 소실 UDP 패킷을 식별할 수 있으며, 식별된 소실 UDP 패킷의 시퀀스 번호를 이용해 소실 UDP 패킷의 재전송을 요청하는 응답 메시지를 포함하는 피드백 정보를 연결된 TCP 연결 방식(31)를 이용해 송신장치(20)로 송신할 수 있다(S310). 예를 들어, 수신장치(30)의 데이터 수신 모듈(200)은 수신된 제2 ~ 제32 UDP 패킷을 시퀀스 번호대로 정렬하여 UDP 패킷 5, 17이 소실된 것을 식별할 수 있고, 식별된 UDP 패킷 5, 17의 재전송을 송신장치(20)로 요청할 수 있다.

소실 UDP 패킷의 재전송 요청을 수신한 송신장치(20)의 데이터 송신 모듈(100)은, 소실 UDP 패킷을 연결된 R-UDP 연결 방식(23)을 이용해 수신장치(30)로 재전송하고(S311), 수신장치(30)는 수신된 소실 UDP 패킷에 대한 수신성공 응답메시지를 포함하는 피드백 정보를 연결된 TCP 연결 방식(31)를 이용해 송신장치(20)로 송신할 수 있다(S312).

이하, 본 발명에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기를 포함하는 송신장치 및 수신장치 간 패킷 송수신 동작에 대해 도 4 내지 도 6을 참조하여 상세하게 설명하도록 한다.

도 4는, 본 발명의 일 실시 형태에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기의 패킷 송수신 방법을 설명하기 위한 흐름도를 나타낸다.

도 4를 참조하면, 수신장치(30)가 송신장치(20)로 데이터 전송 요청을 송신할 수 있다(S401). 이때, 수신장치(30)와 송신장치(20)는 TCP 연결 방식을 이용한 통신을 수행한다.

그러면, 송신장치가 전송할 데이터의 제1 내지 제m 패킷을 수신장치(30)로 송신할 수 있다(S402). 이때, 송신장치(20)와 수신장치(30)는 TCP 연결 방식을 이용한 통신을 수행한다. 그리고, 송신장치(20)는, 전송할 데이터를 소정 크기의 패킷 단위로 분할한 후 순차적으로 넘버링을 수행하고, 제2 내지 제m 패킷을 수신장치(20)로 송신할 수 있다. 예를 들어, 송신장치(20)는, TCP 연결 방식을 이용해 송신할 하나의 패킷을 4096byte의 크기로 데이터를 분할할 수 있다. 다만 제1 패킷은 데이터 정보가 포함되는 패킷이므로, 일반적으로 제2 내지 제m 패킷보다 적은 크기의 데이터를 갖도록 구성된다.

이어서, 수신장치(30)가 송신장치(20)로부터 제1 패킷 후 수신한 TCP 패킷의 데이터 전송속도가 미리 설정한 임계값 이상인지 여부를 분석할 수 있다(S403). 예를 들어, 수신장치(30)는 제1 패킷 이후 수신되는 데이터 대한 전송상태를 1초 동안 TCP 연결 방식을 통해 수신되는 데이터가 500KB 이상인지 여부를 분석하는 것에 의해 수행할 수 있다. 여기서 수신장치(30)는 TCP 연결 방식으로 제2 내지 제m 패킷이 수신될 때마다, 수신완료 응답메시지 또는 재전송 요청 응답 메시지를 송신장치(20)로 전송할 수 있다.

S403 단계에서 데이터 전송 속도가 미리 설정한 임계값보다 느리면(S403, NO), 수신장치(30)가 UDP 전환 요청을 송신장치(20)로 송신할 수 있다(S404). 여기서, 수신장치(30)와 송신장치(20)는 TCP 연결 방식을 이용한 통신을 수행한다.

그러면, 송신장치(20)가 R-UDP 연결 방식을 이용해 수신장치(30)로 잔여 패킷을 송신하는 패킷 송신 처리를 수행할 수 있다(S405). 이때, 송신장치와 수신장치 간 데이터 전송은 R-UDP 연결 방식을 통해 이루어지나, 수신장치의 피드백 정보(수신성공응답메시지) 전송은 TCP 연결 방식을 통해 송신장치로 전송되도록 구현된다.

한편, S403 단계에서 데이터 전송 속도가 미리 설정한 임계값 이상이면(S403, YES), 수신장치가 TCP 연결 방식을 이용해 송신장치로 잔여 데이터의 전송을 요청하고, 송신장치가 수신장치로 잔여 패킷들을 송신하는 패킷 송신 처리를 수행할 수 있다(S406).

상술한 바와 같이, 본 발명에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기의 패킷 송수신 방법은, TCP 연결 방식을 기반으로 기본적인 데이터 전송을 수행하되, 송신된 패킷의 데이터 전송속도가 미리 설정된 임계값 이하로 느려지면 R-UDP 연결 방식으로 자동 전환하여 데이터 전송을 수행하도록 제어할 수 있다. 이로써 데이터 전송속도의 느림 현상을 최소화하여 데이터 전송속도를 개선할 수 있다.

또한, 본 발명에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기의 패킷 송수신 방법은, 제어(명령, 요청) 및 피드백 정보(응답메시지(ACK)), 전송할 데이터정보 등의 송수신은 R-UDP 연결 방식으로 전환되더라도 TCP 연결 방식을 이용해 이루어지므로 신뢰성을 보장할 수 있다.

따라서, 본 발명에 따르면 신뢰성과 데이터 전송속도를 동시에 보장할 수 있다.

도 5는, 본 발명의 일 실시 형태에 따른 TCP/ UDP를 적응적으로 선택하는 전자기기의 패킷 송신 방법을 설명하기 위한 흐름도를 나타낸다.

도 5를 참조하면, 송신장치의 전자기기가 수신장치의 전자기기로부터 데이터 전송 요청을 수신하면(S501), TCP 연결 방식을 이용해 제1 내지 제m TCP 패킷을 수신장치의 전자기기로 송신할 수 있다(S502).

그런 다음, 송신장치의 전자기기는, 수신장치의 전자기기로부터 제1 내지 제m 패킷 송신에 대한 피드백 정보의 수신을 대기할 수 있다(S503). 여기서, 피드백 정보는 제1 내지 제m 패킷 각각의 수신성공 ACK, 재전송 요청이 포함될 수 있으며, 기준시간에 도달한 경우 UDP 전환 요청이 포함할 수 있다.

이어서, 수신장치의 전자기기로부터 피드백 정보가 수신되면(S503, YES), 송신장치의 전자기기는, 수신된 피드백 정보가 제1 내지 제m TCP 패킷에 대한 수신 성공 응답메시지(ACK)인지 확인하고(S504), 확인결과, 수신된 피드백 정보가 수신성공 응답메시지이면(S504, YES), 잔여 TCP 패킷들을 수신장치의 전자기기로 송신할 수 있다(S505).

그런 다음, 송신장치의 전자기기는, 수신장치의 전자기기로부터 수신완료 응답메시지(ACK)의 수신을 대기하고(S506), 수신완료 응답메시지의 수신이 확인되면(S507, YES), 데이터 송신을 완료 처리하여 종료할 수 있다(S508).

한편, S504 단계에서 수신된 피드백 정보가 수신성공 응답메시지가 아니면(S504, NO), 송신장치의 전자기기는 수신된 피드백 정보가 패킷 재전송 요청인지 확인하고(S509), 확인 결과, 수신된 피드백 정보가 패킷 재전송 요청이면(S509, YES) 데이터 전송속도를 다운시킨 후 대응하는 TCP 패킷 재송신을 수행할 수 있다(S510).

이어서, 송신장치의 전자기기는 S506 내지 S508 단계를 진행할 수 있다.

한편, S509 단계에서 수신된 피드백 정보가 패킷 재전송 요청이 아니며(S509, NO), 수신된 피드백 정보가 UDP 전환 요청인 경우(S511), 송신장치의 전자기기는, 패킷을 재구성하여 TCP 패킷을 UDP 패킷으로 변환을 수행할 수 있다(S512). 예를 들어, 송신장치의 전자기기는, 4096byte 크기의 TCP 패킷을 1024byte 크기로 변경하여 데이터를 분할하고, 분할된 UDP 패킷에 시퀀스 번호를 순차적으로 증가하도록 추가할 수 있다.

그런 다음, 송신장치의 전자기기는, R-UDP 연결 방식을 이용해 패킷 단위로 수신장치의 전자기기로 일괄 송신할 수 있다(S513). 예를 들어, 송신장치의 전자기기는, 32개 단위로 패킷들을 일괄적으로 수신장치의 전자기기로 전송할 수 있다.

이어서, 송신장치의 전자기기는, 수신장치의 전자기기로부터 수신완료 응답메시지의 수신을 대기하고(S506), 수신장치의 전자기기로부터 수신완료 응답메시지가 수신되면(S507, YES) 패킷 송신을 종료하고(S508), 수신장치의 전자기기로부터 소실 패킷의 재전송 요청이 수신되면(S514), 소실 패킷을 R-UDP 연결 방식을 이용해 수신장치의 전자기기로 재송신을 처리할 수 있다(S515).

그런 다음, 송신장치의 측 전자기기는 S507 내지 S508 단계를 처리할 수 있다.

도 6은, 본 발명의 일 실시 형태에 따른 TCP/R-UDP를 적응적으로 선택하는 전자기기의 패킷 수신 방법을 설명하기 위한 흐름도를 나타낸다.

도 6을 참조하면, 본 발명의 수신장치의 전자기기는, 송신장치의 전자기기로 데이터 전송 요청을 송신할 수 있다(S601). 이때, 수신장치의 전자기기는 TCP 연결 방식을 이용해 송신장치의 전자기기로 데이터 전송 요청 명령을 송신한다.

그런 다음, 수신장치의 전자기기는, 송신장치의 전자기기로부터 제1 내지패킷제m TCP 패킷을 수신할 수 있다(S602). 이때, 수신장치의 전자기기는 TCP 연결 방식을 통해 제1 ~ 제m TCP 패킷을 수신한다.

이어서, 수신장치의 전자기기는, 제1 패킷 이후 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도를 분석하고(S603), 분석된 데이터 전송속도가 미리 설정된 임계값 이상인지 여부를 확인하며(S604), 분석된 데이터 전송속도가 미리 설정된 임계값 이상이면(S604, YES) 제1 패킷의 수신성공 응답메시지를 TCP 연결 방식을 이용해 송신장치의 전자기기로 송신하고 잔여 데이터를 수신할 수 있다(S605). 여기서, 데이터 전송속도의 임계값은 데이터 전송 지연이 발생하지 않는 값으로 설정될 수 있으며, 예를 들어, 1초 동안 수신되는 데이터가 500KB 이상으로 설정될 수 있다.

그런 다음, 수신장치의 전자기기는, 데이터의 수신완료 응답메시지를 TCP 연결 방식을 이용해 송신장치의 전자기기로 송신할 수 있다(S606).

한편, S604 단계에서 기준시간 동안 수신된 TCP 패킷의 데이터 전송속도가 임계값보다 느리면, 수신장치의 전자기기는 TCP 연결 방식을 이용해 UDP 전환 요청을 송신장치의 전자기기로 송신할 수 있다(S607).

이어서, 수신장치의 전자기기는, 전송되지 않은 잔여 TCP 패킷을 송신장치의 전자기기로부터 일괄 수신할 수 있다(S608). 여기서, 송신장치의 전자기기는 잔여 TCP 패킷을 UDP 패킷으로 변환하고, R-UDP 연결 방식을 이용해 수신장치의 전자기기로 일괄 송신할 수 있다.

그런 다음, 수신장치의 전자기기는, 수신된 UDP 패킷들의 시퀀스 번호를 이용해 소실 UDP 패킷이 있는지 확인할 수 있다(S609).

확인 결과, 소실 UDP 패킷이 존재하면(S610, YES), 수신장치의 전자기기는 TCP 연결 방식을 이용해 소실 UDP 패킷의 재전송을 송신장치의 전자기기로 요청할 수 있다(S611). 여기서, 수신장치의 전자기기는 수신된 UDP 패킷들의 시퀀스 번호에 따라 패킷을 순차적으로 정렬함으로써 소실된 UDP 패킷의 시퀀스 번호를 식별할 수 있으며, 소실된 UDP 패킷의 시퀀스 번호를 포함하는 피드백 정보를 송신장치의 전자기기로 송신함으로써 소실 UDP 패킷의 재송신을 요청할 수 있다.

이어서, 수신장치의 전자기기는 R-UDP 연결 방식을 통해 송신장치의 전자기기로부터 송신된 소실 UDP 패킷을 수신할 수 있다(S612).

그럼 다음, 수신장치의 전자기기는, 수신완료 응답메시지를 TCP 연결 방식을 이용해 송신장치의 전자기기로 송신할 수 있다(S606).

한편, S610 단계의 확인 결과, 소실 UDP 패킷이 존재하지 않으면(S610, NO), 수신완료 응답메시지를 TCP 연결 방식을 이용해 송신장치의 전자기기로 송신할 수 있다(S606).

본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.

따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.