KR102046792B1 - 송신 노드로부터 목적지 노드로의 데이터 전송 방법 - Google Patents

송신 노드로부터 목적지 노드로의 데이터 전송 방법 Download PDF

Info

Publication number
KR102046792B1
KR102046792B1 KR1020120142091A KR20120142091A KR102046792B1 KR 102046792 B1 KR102046792 B1 KR 102046792B1 KR 1020120142091 A KR1020120142091 A KR 1020120142091A KR 20120142091 A KR20120142091 A KR 20120142091A KR 102046792 B1 KR102046792 B1 KR 102046792B1
Authority
KR
South Korea
Prior art keywords
data
segment
group
data packet
destination node
Prior art date
Application number
KR1020120142091A
Other languages
English (en)
Other versions
KR20130065619A (ko
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 제너럴 일렉트릭 캄파니
Publication of KR20130065619A publication Critical patent/KR20130065619A/ko
Application granted granted Critical
Publication of KR102046792B1 publication Critical patent/KR102046792B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Landscapes

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

Abstract

송신 노드로부터 목적지 노드에 데이터를 전송하는 방법은 목적지 노드(812)에 전송을 위해 송신 노드(800)에서 데이터 패킷(904)의 스트림을 형성하기 위해 선택 데이터(902)를 프로세싱하는 단계를 포함한다. 스트림은 데이터 패킷(918)의 그룹(908)을 포함한다. 그룹은 선택 데이터의 세그먼트(910)를 전달한다. 세그먼트는 선택 데이터의 단편(912)을 포함한다. 세그먼트는 세그먼트 식별자와 연관된다. 각각의 단편은 단편 식별자와 연관된다. 각각의 그룹 데이터 패킷은 대응 단편, 단편 식별값(916), 세그먼트 식별값(914) 및 검증 체크값(920)을 전달한다. 최종 그룹 데이터 패킷(922)은 세그먼트 종단값(924)을 전달한다. 방법은 목적지 노드에 데이터 패킷의 그룹을 전송하는 단계를 포함하고, 최종 데이터 패킷은 마지막에 전송되어 데이터 패킷의 그룹의 전송들 사이의 목적지 노드로부터 세그먼트 응답 메시지를 대기하지 않고 전송이 계속되게 된다.

Description

송신 노드로부터 목적지 노드로의 데이터 전송 방법{METHOD OF TRANSPORTING DATA FROM SENDING NODE TO DESTINATION NODE}
본 명세서에 개시된 요지는 송신 노드로부터 데이터를 전송하기 위한 그리고 목적지 노드에서 데이터를 수신하기 위한 기술을 포함하는 통신 노드들 사이에 데이터를 전송하는 것에 관한 것이다.
통신 프로토콜은 컴퓨팅 시스템 내에서 또는 사이에서 이들 메시지를 교환하기 위한 디지털 메시지 포맷 및 규칙의 형식적 서술이다. 예를 들어, 개방형 시스템 상호 접속(OSI) 모델은 다양한 추상화 계층 내의 통신 시스템을 위한 표준 기능을 이용한다. OSI 계층은 그 아래의 계층으로부터 데이터를 수집하면서 그 위의 계층에 서비스를 제공한다. OSI 모델은 물리적 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 프레젠테이션 계층 및 애플리케이션 계층을 포함한다.
통신 디바이스들 사이의 통신을 위한 전송 계층은 구성 요소 및 프로토콜의 계층화된 아키텍처 내의 애플리케이션을 위한 종단간 통신 서비스를 제공한다. 이들 서비스는 접속 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 및 멀티플렉싱을 포함한다. 컴퓨터 네트워킹에 사용된 전송 계층 통신 프로토콜의 몇몇 예는 사용자 데이터그램 프로토콜(UDP) 및 전송 제어 프로토콜(TCP)이다.
임의의 소정의 데이터 전송에 있어서, 데이터의 송신자 및 데이터의 수신자가 존재한다. 통상적으로, 전송 계층 통신 프로토콜은 전송될 대량의 데이터를 전송을 위해 사용된 통신 구성 요소에 의해 용이하게 관리될 수 있는 소형 데이터 패킷으로 분해한다. 각각의 데이터 패킷은 통상적으로 수신자가 데이터 패킷의 신뢰성을 검증할 수 있게 하는 정보를 포함한다. 예를 들어, 데이터 패킷은 수신된 데이터가 전송시에 변경되지 않는 것을 보장하기 위해 수신자가 체크할 수 있는 체크섬 파라미터(checksum parameter)를 포함할 수 있다.
각각의 수신된 데이터 패킷에 대해서, 수신자는 통상적으로 데이터 패킷이 전달되었고 다음의 데이터 패킷이 송신될 수 있음을 송신자에게 통지하기 위해 대응 패킷의 수신자에게 확인 응답하는 패킷으로 송신자에게 응답한다(도 1 및 도 2 참조). 이 기술은 단지 하나의 아이템만이 한번에 송신될 수 있기 때문에, 즉 데이터가 전송되거나 확인 응답되기 때문에 시간 지연을 도입한다. 더 큰 데이터 패킷 크기는 이 경우에 효율을 증가할 수 있지만, 데이터 손실의 경우에 대량의 데이터가 재송신되어야 하는 것을 요구한다.
TCP와 같은 몇몇 전송 프로토콜은 조기의 데이터 패킷의 확인 응답을 대기하면서 송신기가 부가의 데이터 패킷을 계속 송신하는 슬라이딩 윈도우 프로토콜을 이용할 수 있다. 라운드-트립 시간(RTT) 및 대역폭 용량은 슬라이딩 윈도우 기술을 위한 확인 응답을 대기하기 위해 정지하기 전에 송신될 수 있는 데이터의 양에 대한 제한을 결정하기 위해 고려될 수도 있다. 재차, 이 기술의 효율은 데이터가 성공적으로 전송되지 않고 재전송을 요구하면 상당히 문제를 겪게 된다. UDP와 같은 다른 프로토콜은 패킷 데이터를 스트리밍하고 데이터 손실을 고려하지 않고 또는 재전송을 제공하지 않는다. 따라서, UDP는 데이터 패킷이 비순차적으로 도달하고, 복제되어 나타나고, 또는 통지 없이 누락될 수 있는 비신뢰적인 서비스를 제공한다.
상기 내용에 기초하여, 특히 대량의 데이터(예를 들어, 1000 바이트 초과)를 전송하기 위해, 더 적은 시간에 통신 노드들 사이에 신뢰적인 데이터 통신을 제공하는 기술이 전송 속도를 증가시키기 위해 바람직하다. 부가적으로, 이러한 기술은 효율적인 재전송 알고리즘을 포함하는 것이 바람직하다.
일 양태에서, 데이터 전송 방법이 제공된다. 일 실시예에서, 방법은 데이터 패킷의 스트림을 형성하기 위해 선택 데이터를 프로세싱 하는 단계를 포함한다. 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관되고, 제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자, 제 1 세그먼트와 연관된 세그먼트 식별자 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 전달한다. 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다. 방법은 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 제 1 그룹을 전송하는 단계를 추가로 포함하고, 제 1 그룹의 최종 데이터 패킷은 마지막에 전송되어 제 1 그룹의 데이터 패킷의 전송들 사이의 목적지 노드로부터 제 1 세그먼트 응답 메시지를 대기하지 않고 전송이 계속되게 된다.
다른 양태에서, 데이터 전송 방법이 제공된다. 일 실시예에서, 방법은 목적지 노드에서 송신 노드로부터의 제 1 데이터 패킷을 수신하는 단계를 포함한다. 제 1 데이터 패킷은 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 선택 데이터를 전송하는 데이터 패킷의 스트림과 연관된다. 데이터 패킷의 스트림은 제 1 데이터 패킷이 연관되는 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관된다. 제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자, 제 1 세그먼트와 연관된 세그먼트 식별자 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 전달한다. 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다. 방법은 제 1 데이터 패킷에 의해 전달된 검증 체크값을 사용하여 제 1 데이터 패킷 상에 검증 체크를 수행하는 단계를 추가로 포함한다. 방법은 세그먼트 응답 메시지 버퍼 내에 제 1 데이터 패킷 상의 검증 체크의 포지티브 또는 네거티브 결과 및 대응 세그먼트 및 단편 식별자를 저장하는 단계를 추가로 포함한다. 제 1 그룹의 최종 데이터 패킷이 수신될 때까지 제 1 그룹의 다음의 데이터 패킷에 대해 수신, 수행 및 저장 단계를 반복한다. 방법은 제 1 그룹의 최종 데이터 패킷 내의 세그먼트 종단값을 검출하는 단계를 추가로 포함한다. 방법은 제 1 그룹과 연관된 제 1 세그먼트 응답 메시지를 형성하기 위해 세그먼트 응답 메시지 버퍼 내에 저장된 정보를 프로세싱하는 단계를 추가로 포함한다. 방법은 목적지 노드로부터 하나 이상의 통신 경로를 경유하여 송신 노드에 제 1 세그먼트 응답 메시지를 전송하는 단계를 추가로 포함한다.
또 다른 양태에서, 프로그램 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체가 제공된다. 컴퓨터에 의해 실행될 때, 프로그램 명령은 대응 컴퓨터 제어형 통신 노드가 데이터 전송 방법을 수행할 수 있게 한다. 일 실시예에서, 방법은 데이터 패킷의 제 1 스트림을 형성하기 위해 제 1 선택 데이터를 프로세싱하는 단계를 포함한다. 데이터 패킷의 제 1 스트림은 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 제 1 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 제 1 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 제 1 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 제 1 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관된다. 제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자, 제 1 세그먼트와 연관된 세그먼트 식별자 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 전달한다. 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다. 방법은 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 제 1 그룹을 전송하는 단계를 추가로 포함하고, 제 1 그룹의 최종 데이터 패킷은 마지막에 전송되어 제 1 그룹의 데이터 패킷의 전송들 사이의 목적지 노드로부터 제 1 세그먼트 응답 메시지를 대기하지 않고 전송이 계속되게 된다.
또 다른 실시예에서, 방법이 제공된다. 일 실시예에서, 방법은 데이터를 복수의 데이터 세그먼트로 프로세싱하는 단계를 포함한다. 각각은 복수의 데이터 단편을 포함한다. 데이터 단편은 이들이 부분인 세그먼트의 각각의 단편 식별자 및 세그먼트 식별자를 포함한다. 방법은 송신 노드로부터 목적지 노드로 데이터 단편을 전송하는 단계를 추가로 포함한다. 방법은 세그먼트들 중 하나의 하나 이상의 단편이 목적지 노드에 의해 수신되지 않은 것을 나타내는 제 1 메시지를 목적지 노드로부터 수신하는 것에 응답하여, 재전송을 나타내기 위해 상기 세그먼트들 중 하나의 최종 단편과 함께 목적지 노드에 상기 하나 이상의 단편을 통신하는 단계를 추가로 포함한다. 방법은 각각의 세그먼트를 통신한 후에, 송신 노드가 세그먼트의 성공적인 수신을 나타내는 제 1 메시지 또는 제 2 메시지를 수신하지 않으면, 목적지 노드에 세그먼트의 최종 단편을 재통신하는 단계를 추가로 포함한다.
도 1은 종래의 통신 프로토콜을 사용하여 디바이스들 사이에 패킷 데이터를 교환하기 위한 현존하는 프로세스의 기능 다이어그램.
도 2는 종래의 통신 프로토콜을 사용하여 디바이스들 사이의 패킷 데이터의 교환을 위한 데이터/메시지 흐름 다이어그램.
도 3은 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 예시적인 실시예의 흐름도.
도 4는 도 3과 조합하여, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 다른 예시적인 실시예의 흐름도.
도 5는 도 3과 조합하여, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 또 다른 예시적인 실시예의 흐름도.
도 6은 도 3과 조합하여, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 또 다른 예시적인 실시예의 흐름도.
도 7은 도 3과 조합하여, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 또 다른 예시적인 실시예의 흐름도.
도 8은 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 통신 노드의 예시적인 실시예의 블록 다이어그램.
도 9는 데이터 패킷의 스트림을 형성하기 위해 선택 데이터를 프로세싱하기 위한 프로세스의 예시적인 실시예를 위한 데이터 흐름 다이어그램.
도 10은 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 예시적인 실시예를 위한 데이터/메시지 흐름 다이어그램.
도 11은 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스의 다른 예시적인 실시예의 흐름도.
도 12는 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 통신 노드의 다른 예시적인 실시예의 블록 다이어그램.
본 발명의 이들 및 다른 특징 및 양태는 유사한 도면 부호가 유사한 부분을 나타내고 있는 첨부 도면을 참조하여 더 양호하게 이해될 수 있을 것이다.
본 명세서는 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 방법의 다양한 실시예를 설명한다. 전송된 데이터를 송신하거나 수신하는데 사용될 수 있는 통신 노드의 다양한 실시예가 또한 설명된다. 설명된 다양한 기술은 예를 들어 데이터의 송신자로서 동작하는 호스트/마스터 디바이스로부터 데이터의 수신자로서 동작하는 하나 이상의 클라이언트/슬레이브 디바이스로의 데이터 전송을 용이하게 하기 위해 전송 계층 통신 프로토콜에서 구현될 수 있다.
송신자로부터 수신자로 데이터를 전송하기 위한 프로세스의 일 예시적인 실시예에서, 송신자는 대량의 데이터를 단편으로 분해한다. 송신자 및 수신자의 모두는 단편 크기에 미리 동의할 수 있다. 송신자는 다수의 단편을 세그먼트로 그룹화한다. 송신자 및 수신자는 얼마나 많은 단편이 임의의 소정의 세그먼트 내에 존재할 것인지를 미리 동의할 수 있다. 각각의 단편은 단편 수(예를 들어, 16 bit) 및 세그먼트 수(예를 들어, 16 bit)를 포함할 수 있다. 세그먼트를 위한 단편이 송신자에 의해 전송된 후에, 송신자는 수신자로부터 확인 응답 패킷을 수신한다.
세그먼트 내의 최종 패킷이 수신자에 의해 수신되고 세그먼트 내의 모든 단편이 수신되지는 않았으면, 수신자는 송신자에게 '미확인 응답(not acknowledge)' 패킷을 송신할 수 있다. '미확인 응답' 패킷은 수신자에 의해 수신되지 않은 세그먼트 내의 단편의 단편 수 및 세그먼트 수의 인덱스를 포함할 수 있다. 송신자는 세그먼트 내의 최종 단편 및 수신되지 않은 것으로서 지정된 각각의 단편을 재송신함으로써 '미확인 응답' 패킷에 응답할 수 있다. 세그먼트의 최종 단편의 재송신은 수신되지 않았던 단편이 재송신되고 세그먼트를 위한 모든 단편이 이 시점에 수신되어야 하는 것을 수신자에게 고지한다.
송신자가 세그먼트에 대한 모든 단편을 송신하는 것을 완료하고 타임아웃 기간 내에 수신자로부터 확인 응답 패킷 또는 '미확인 응답' 패킷을 수신하지 않으면, 송신자는 세그먼트 내의 최종 단편을 재송신한다. 세그먼트의 최종 패킷의 재송신은 세그먼트에 대한 모든 단편이 이 시점에 수신되어야 하는 것을 수신자에게 재차 고지한다.
이 기술은 단편의 그룹을 송신하고 확인 응답을 대기함으로써 지연 시간 및 대역폭 요구를 감소시킨다. 재전송 알고리즘은 성공적으로 수신되었던 단편이 재전송되지 않는 점에서 효율적이다. 단지 예외는 최종 세그먼트가 성공적으로 수신되어 있지만 동일한 세그먼트 내의 조기의 단편이 성공적으로 수신되어 있지 않은 경우에, 조기의 단편 및 최종 단편의 모두가 재전송되는 것이다. 기술적 효과는 송신자 및 수신자 노드 또는 디바이스 사이의 감소된 메시징에 기인하여 데이터를 전송하기 위한 현재 방법과 적어도 동일한 신뢰성을 갖는 더 고속의 데이터 전송 또는 다운로드이다.
데이터 전송을 위한 증가된 속도로부터 발생하는 기술적 및 상업적 장점은 더 긍정적인 사용자 경험이다. 일 용례에서, 전술된 기술은 하나 이상을 통신 경로를 경유하여 나트륨 배터리 관리 시스템에 펌웨어를 전송함으로써 통신 단말로부터 펌웨어를 로딩하도록 구현될 수 있다. 이 예시적인 용례에서, 전송 시간은 모든 패킷을 확인 응답하는 전송 프로토콜을 사용하여 소요할 수 있는 시간의 대략 1/3인 것으로 측정되었다.
본 명세서에 개시된 바와 같이, 통신 노드 또는 디바이스는 이들에 한정되는 것은 아니지만, 퍼스널 컴퓨터, 서버, 휴대형 또는 랩탑 디바이스, 모바일 디바이스[휴대폰, 개인 휴대 정보 단말(PDA), 미디어 플레이어 등], 멀티프로세서 시스템, 통신을 위해 적용된 소비자 전자 디바이스, 미니 컴퓨터, 메인프레임 컴퓨터, 분산형 컴퓨팅 환경 또는 임의의 적합한 컴퓨터 플랫폼, 컴퓨터 제어형 디바이스 또는 통신 노드를 포함할 수 있다.
본 명세서에 개시된 통신 노드는 데이터의 중간 형태, 확인 응답을 대기하는 동안 전송된 데이터의 일시적 카피 및 대응 세그먼트를 위한 최종 단편의 수신을 대기하는 동안 세그먼트 응답 메시지에 관한 정보를 포함하는, 전송되거나 수신될 데이터의 저장을 위한 외부 저장 디바이스로의 액세스 또는 로컬 저장 디바이스를 포함할 수 있다. 본 명세서에 개시된 바와 같이, 저장 디바이스는 이들에 한정되는 것은 아니지만, 휘발성 메모리 디바이스[랜덤 액세스 메모리(RAM)와 같은], 자기 저장 디바이스, 광학 저장 디바이스 또는 임의의 조합의 임의의 적합한 저장 디바이스를 포함할 수 있다.
본 명세서에 개시된 통신 노드는 통신 인터페이스를 포함한다. 본 명세서에 개시된 바와 같이, 통신 인터페이스는 이들에 한정되는 것은 아니지만, 모뎀, 네트워크 인터페이스, 무선 주파수(RF) 송수신기, 적외선(IR) 포트, 범용 시스템 버스(USB) 포트 또는 임의의 조합의 임의의 적합한 통신 인터페이스를 포함할 수 있다. 통신 인터페이스는 유선 접속, 무선 접속 또는 이들의 임의의 적합한 조합을 포함할 수 있다.
본 명세서에 개시된 통신 노드는 키보드, 키패드, 마이크로폰, 포인팅 디바이스, 마우스, 트랙볼, 조이스틱, 터치 스크린, 터치 패드, 카메라 또는 임의의 조합의 임의의 적합한 입력 디바이스와 같은 입력 디바이스(들)를 포함할 수 있다. 본 명세서에 개시된 통신 노드는 디스플레이, 스피커, 프린터, 모니터 또는 임의의 조합의 임의의 적합한 출력 디바이스와 같은 출력 디바이스(들)를 포함할 수 있다.
도 3을 참조하면, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(300)의 예시적인 실시예가 302에서 시작되고, 여기서 선택 데이터는 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 선택 데이터를 전송하기 위해 송신 노드에 데이터 패킷의 스트림을 형성하도록 프로세싱된다. 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관된다.
제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자를 표현하는 단편 식별값, 제 1 세그먼트와 연관된 세그먼트 식별자를 표현하는 세그먼트 식별값 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 전달한다. 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다.
304에서, 제 1 그룹은 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 전송되고, 제 1 그룹의 최종 데이터 패킷은 마지막에 전송되어 제 1 그룹의 데이터 패킷의 전송 사이에 목적지 노드로부터 제 1 세그먼트 응답 메시지를 대기하지 않고 전송이 계속되게 된다.
프로세스(300)의 다른 실시예에서, 선택 데이터의 단편은 송신 노드와 목적지 노드의 모두에 알려진 크기이다. 프로세스(300)의 또 다른 실시예에서, 제 1 세그먼트를 형성하는 제 1 복수의 단편을 위한 단편의 양은 송신 노드와 목적지 노드의 모두에 알려진다. 프로세스(300)의 또 다른 실시예에서, 각각의 데이터 패킷과 연관된 검증 체크값은 대응 데이터 패킷을 위한 체크섬값이다.
도 3 및 도 4를 참조하면, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(400)의 다른 예시적인 실시예는 도 3의 프로세스(300)를 포함하고 304로부터 402로 계속되고, 여기서 데이터 패킷의 제 1 그룹은 적어도 제 1 그룹의 모든 데이터 패킷이 목적지 노드에 의해 성공적으로 수신되어 검증된 것을 나타내는 제 1 세그먼트 응답 메시지가 목적지 노드로부터 수신될 때까지 송신 노드에서 세그먼트 전송 버퍼에 저장된다.
도 3 및 도 5를 참조하면, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(500)의 또 다른 예시적인 실시예는 도 3의 프로세스(300)를 포함하고 304로부터 502로 계속되고, 여기서 제 1 그룹의 모든 데이터 패킷이 목적지 노드에 의해 성공적으로 수신되어 검증된 것을 나타내는 제 1 세그먼트 응답 메시지가 수신된다. 504에서, 프로세스(500)는 데이터 패킷의 제 2 그룹, 선택 데이터의 제 2 세그먼트 및 선택 데이터의 제 2 복수의 단편에 대해 302 및 304를 반복함으로써 계속된다. 이 실시예에서, 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 2 그룹을 포함하고, 데이터 패킷의 제 2 그룹은 제 2 세그먼트를 전달하고, 제 2 세그먼트는 제 2 복수의 단편을 포함한다.
도 3 및 도 6을 참조하면, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(600)의 또 다른 예시적인 실시예는 도 3의 프로세스(300)를 포함하고 304로부터 602로 계속되고, 여기서 제 1 그룹의 적어도 하나의 데이터 패킷이 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 것을 나타내는 제 1 세그먼트 응답 메시지가 목적지 노드로부터 송신 노드에서 수신된다. 604에서, 프로세스(600)는 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 각각의 데이터 패킷을 재전송하고 송신 노드로부터 목적지 노드로 제 1 그룹의 최종 데이터 패킷을 재전송하여 재전송이 재전송들 사이에 목적지 노드로부터 다른 세그먼트 응답 메시지를 대기하지 않고 계속되게 함으로써 계속된다. 프로세스(600)의 또 다른 실시예에서, 목적지 노드로부터의 제 1 세그먼트 응답 메시지는 성공적으로 수신되어 검증되지 않은 제 1 그룹의 각각의 데이터 패킷과 연관된 세그먼트 및 단편 식별자를 지시한다.
도 3 및 도 7을 참조하면, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(700)의 또 다른 예시적인 실시예는 도 3의 프로세스(300)를 포함하고 304로부터 702로 계속되고, 여기서 제 1 그룹의 최종 데이터 패킷이 목적지 노드로 전송된 후에 사전 결정된 시간 내에 어떠한 세그먼트 응답 메시지도 목적지 노드로부터 수신되지 않았으면 제 1 그룹의 최종 데이터 패킷이 송신 노드로부터 목적지 노드로 재전송된다.
도 8을 참조하면, 통신 노드(800)의 예시적인 실시예는 통신 제어기(802), 데이터 단편화(fragmentation) 모듈(804), 데이터 분할(segmentation) 모듈(806), 데이터 패킷 구성(construction) 모듈(808) 및 통신 인터페이스(810)를 포함한다. 통신 모듈(800)(즉, 송신 노드)은 다른 통신 노드(812)(즉, 목적지 노드)에 데이터를 전송하기 위한 것이다. 통신 제어기(802)는 데이터 패킷의 스트림을 형성하기 위해 데이터 단편화 모듈(804), 데이터 분할 모듈(806) 및 데이터 패킷 구성 모듈(808)에 의해 데이터 소스(814)로부터 선택 데이터의 프로세싱을 제어하기 위한 것이다. 데이터 소스(814)는 통신 노드(800)의 내부 또는 외부에 있을 수 있다. 데이터 소스(814)는 저장 디바이스에 저장된 파일, 디바이스 또는 애플리케이션 프로그램으로부터 출력된 데이터의 스트림 또는 임의의 적합한 데이터의 소스일 수 있다. 통신 제어기(802)는 또한 목적지 노드(812)에 데이터 패킷의 스트림을 송신하기 위해 통신 인터페이스 모듈(810)을 제어하기 위한 것이다. 데이터 패킷의 스트림은 송신 노드(800) 및 목적지 노드(812)의 모두에 액세스 가능한 통신 네트워크(816)를 경유하여 목적지 노드(812)에 전송될 수 있다.
통신 네트워크(816)는 임의의 적합한 유형의 통신 네트워크를 포함할 수 있다. 다양한 실시예에서, 통신 네트워크(816)는 임의의 적합한 조합의 다수의 통신 네트워크 및 다수의 유형의 통신 네트워크를 포함할 수 있다. 예를 들어, 통신 네트워크(816)는 근거리 통신망(LAN), 원거리 통신망(WAN), 유선 네트워크, 무선 네트워크, 셀룰러 네트워크, 위성 통신 네트워크, 전화 네트워크, 공중 전화 교환망(PSTN), 무선 통신 네트워크, 위성 텔레비전 네트워크, 케이블 텔레비전 네트워크, 인트라넷, 인터넷(Internet을 포함함) 및 임의의 적합한 통신 네트워크의 임의의 조합을 포함할 수 있다. 데이터 패킷의 스트림은 통신 네트워크(816)를 통한 하나 이상의 통신 경로를 경유하여 목적지 노드(812)로 전송될 수 있다. 다른 실시예에서, 데이터 패킷의 스트림은 송신 노드(800)와 목적지 노드(812) 사이의 직접 통신 경로(818)를 경유하여 목적지 노드(812)에 전송될 수 있다.
데이터 단편화 모듈(804)은 선택 데이터를 단편으로 분할하기 위한 것이다. 데이터 분할 모듈(806)은 선택 데이터의 단편을 세그먼트로 그룹화하기 위한 것이다. 데이터 패킷 구성 모듈(808)은 선택 데이터의 단편 및 세그먼트로부터 데이터 패킷의 스트림을 형성하기 위한 것이다. 데이터 패킷 구성 모듈(808)은 데이터 패킷의 그룹 내의 데이터 패킷의 스트림을 형성하여 각각의 데이터 패킷이 선택 데이터의 단편에 대응하고 데이터 패킷의 각각의 그룹이 선택 데이터의 세그먼트에 대응하게 된다.
데이터 패킷 구성 모듈(808)에 의해 형성된 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관된다. 이 실시예에서, 제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자를 표현하는 단편 식별값, 제 1 세그먼트와 연관된 세그먼트 식별자를 표현하는 세그먼트 식별값 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 전달한다. 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다.
통신 인터페이스 모듈(810)은 데이터 패킷 구성 모듈(808)로부터 데이터 패킷의 제 1 그룹을 수신하기 위한 것이고 통신 제어기(802)의 제어하에서 송신 노드(800)로부터 하나 이상의 통신 경로를 경유하여 목적지 노드(812)로 제 1 그룹을 전송하기 위한 것이고, 제 1 그룹의 최종 데이터 패킷은 마지막에 전송되어 전송이 제 1 그룹의 데이터 패킷의 전송들 사이의 목적지 노드(812)로부터 제 1 세그먼트 응답 메시지를 대기하지 않고 계속되게 된다.
통신 노드(800)의 다른 실시예에서, 선택 데이터의 단편은 통신 제어기(802) 및 목적지 노드(812)의 모두에 알려진 크기이다. 통신 노드(800)의 또 다른 실시예에서, 제 1 세그먼트를 형성하는 제 1 복수의 단편에 대한 단편의 양은 통신 제어기(802)와 목적지 노드(812)의 모두에 알려져 있다. 통신 노드(800)의 또 다른 실시예에서, 데이터 패킷 구성 모듈(808)에 의해 각각의 데이터 패킷과 연관된 검증 체크값은 대응 데이터 패킷을 위한 체크섬값이다.
또 다른 실시예에서, 통신 노드(800)는 적어도 제 1 그룹의 모든 데이터 패킷이 목적지 노드(812)에 의해 성공적으로 수신되어 검증되었다는 것을 나타내는 제 1 세그먼트 응답 메시지가 목적지 노드(812)로부터 수신될 때까지 데이터 패킷의 제 1 그룹을 저장하기 위한 세그먼트 전송 버퍼(820)를 또한 포함한다.
통신 노드(800)의 다른 실시예에서, 제 1 그룹의 모든 데이터 패킷이 목적지 노드(812)에 의해 성공적으로 수신되어 검증되었다는 것을 나타내는 제 1 세그먼트 응답 메시지를 목적지 노드(812)로부터 통신 인터페이스 모듈(810)을 경유하여 통신 제어기(802)에서 수신한 후에, 통신 제어기(802)는 데이터 패킷의 제 2 그룹, 선택 데이터의 제 2 세그먼트 및 선택 데이터의 제 2 복수의 단편을 위한 데이터 단편 모듈(804), 데이터 세그먼트 모듈(806), 데이터 패킷 구성 모듈(808) 및 통신 인터페이스 모듈(810)을 제어한다. 이 실시예에서, 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 2 그룹을 또한 포함하고, 데이터 패킷의 제 2 그룹은 제 2 세그먼트를 전달하고, 제 2 세그먼트는 제 2 복수의 단편을 포함한다.
통신 노드(800)의 또 다른 실시예에서, 제 1 그룹의 적어도 하나의 데이터 패킷이 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 것을 나타내는 제 1 세그먼트 응답 메시지를 목적지 노드(812)로부터 통신 인터페이스 모듈(810)을 경유하여 통신 제어기(802)에서 수신한 후에, 통신 제어기(802)는 목적지 노드(812)에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 각각의 데이터 패킷을 재전송하기 위해 그리고 목적지 노드(812)에 제 1 그룹의 최종 데이터 패킷을 재전송하기 위해 통신 인터페이스 모듈(810)을 제어하여 재전송이 재전송들 사이의 목적지 노드(810)로부터 다른 세그먼트 응답 메시지를 대기하지 않고 계속되게 된다. 통신 노드(800)의 다른 실시예에서, 목적지 노드(812)로부터의 제 1 세그먼트 응답 메시지는 성공적으로 수신되어 검증되지 않은 제 1 그룹의 각각의 데이터 패킷과 연관된 세그먼트 및 단편 식별자를 지시한다.
통신 노드(800)의 또 다른 실시예에서, 통신 제어기(802)는 제 1 그룹의 최종 데이터 패킷이 목적지 노드(812)에 전송된 후에 사전 결정된 시간 내에 어떠한 세그먼트 응답 메시지도 목적지 노드(812)로부터 수신되지 않으면 목적지 노드(812)에 제 1 그룹의 최종 데이터 패킷을 재전송하기 위해 통신 인터페이스 모듈(810)을 제어한다.
도 9를 참조하면, 데이터 흐름 다이어그램은 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 선택 데이터(902)를 전송하기 위해 송신 노드에서 중간 프로세스(906)를 사용하여 데이터 패킷(904)의 스트림을 형성하기 위해 선택 데이터(902)를 프로세싱하기 위한 프로세스(900)의 예시적인 실시예를 도시한다. 데이터 패킷(904)의 스트림은 데이터 패킷의 2개 이상의 그룹(908)을 포함한다. 데이터 패킷의 각각의 그룹(908)은 선택 데이터(902)의 세그먼트(910)를 전달한다. 각각의 세그먼트(910)는 선택 데이터(902)의 복수의 단편(912)을 포함한다. 각각의 세그먼트(910)는 선택 데이터(902)와 관련하여 고유 세그먼트 식별자(914)와 연관된다. 각각의 단편(912)은 대응 세그먼트(910)와 선택 데이터(902) 중 적어도 하나와 관련하여 고유 단편 식별자(916)와 연관된다. 각각의 그룹의 각각의 데이터 패킷(918)은 대응 복수의 단편의 대응 단편(912), 대응 단편(912)과 연관된 단편 식별자를 표현하는 단편 식별값(916), 대응 세그먼트(910)와 연관된 세그먼트 식별자를 표현하는 세그먼트 식별값(914) 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값(920)을 전달한다. 각각의 그룹(908)의 최종 데이터 패킷(922)은 대응 그룹(908)의 최종 데이터 패킷(922)으로서 대응 데이터 패킷(918)을 식별하는 세그먼트 종단값(924)을 전달한다.
도 10을 참조하면, 데이터 흐름 다이어그램은 어떻게 데이터 패킷 및 응답 메시지가 송신 노드(노드 A)로부터 목적지 노드(노드 B)로 데이터를 전송하기 위한 프로세스의 예시적인 시나리오에 대해 교환되는지를 도시한다. 노드 A는 선택 데이터를 프로세싱하고 목적지 종단점(노드 B)에 데이터 패킷을 전송하는 종단점이다.
노드 A 및 노드 B는 개시 이벤트에 기초하여 초기 메시지를 교환한다. 노드 A로부터의 초기 메시지는 멀티-패킷 전송에서 25개의 패킷이 예측된다는 통지를 노드 B에 제공한다. 노드 B는 초기 메시지가 수신되었다는 확인 응답[고(go)]을 갖는 응답 메시지를 송신한다. 초기 메시지는 각각의 데이터 패킷에 의해 전달된 데이터 단편을 위한 동의된 크기 및 데이터 패킷의 그룹에 의해 전달된 데이터 세그먼트 내의 단편의 동의된 양을 설정할 수 있다. 노드 A는 연속적인 스트림 내의 데이터 패킷의 제 1 그룹의 전송으로 진행한다. 제 1 그룹은 10개의 데이터 패킷을 포함하고 10개의 대응 데이터 단편을 포함하는 제 1 데이터 세그먼트를 전달한다. 이 시나리오에서, 노드 B는 제 1 그룹의 모든 10개의 데이터 패킷을 수신한다. 제 1 그룹의 최종 데이터 패킷을 성공적으로 수신한 후에, 노드 B는 제 1 그룹 내의 모든 데이터 패킷의 수신인 응답 메시지를 노드 A에 송신한다.
노드 A는 연속적인 스트림 내의 데이터 패킷의 제 2 그룹의 전송으로 진행한다. 제 2 그룹은 10개의 데이터 패킷을 포함하고 10개의 대응 데이터 단편을 포함하는 제 2 데이터 세그먼트를 전달한다. 이 시나리오에서, 노드 B는 제 2 그룹의 제 2 및 제 3 데이터 패킷을 수신하지 않거나 제 2 및 제 3 데이터 패킷 상의 검증 체크가 실패한다. 제 2 그룹의 최종 데이터 패킷을 성공적으로 수신한 후에, 노드 B는 제 2 및 제 3 데이터 패킷이 성공적으로 수신되지 않은 것을 나타내는 응답 메시지를 노드 A에 송신한다.
노드 A는 연속적인 스트림 내의 데이터 패킷의 제 2 그룹의 제 2, 제 3 및 최종 데이터 패킷의 재전송으로 진행한다. 이 시나리오에서, 노드 B는 제 2 그룹의 제 2, 제 3 및 최종 데이터 패킷을 성공적으로 수신한다. 재전송을 경유하여 최종 데이터 패킷을 성공적으로 수신한 후에, 노드 B는 제 2 그룹 내의 모든 데이터 패킷의 확인 응답 수신인 응답 메시지를 노드 A에 송신한다.
노드 A는 연속적인 스트림 내의 데이터 패킷의 제 3 그룹의 전송으로 진행한다. 제 3 그룹은 4개의 데이터 패킷을 포함하고 5개의 대응 데이터 단편을 포함하는 제 3 데이터 세그먼트를 전달한다. 이 시나리오에서, 노드 B는 제 3 그룹의 모든 5개의 데이터 패킷을 성공적으로 수신한다. 제 3 그룹의 최종 데이터 패킷을 성공적으로 수신한 후에, 노드 B는 제 3 그룹 내의 모든 데이터 패킷의 확인 응답 수신인 응답 메시지를 노드 A에 송신한다.
도 11을 참조하면, 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(1100)의 다른 예시적인 실시예가 1102에서 시작되고, 여기서 제 1 데이터 패킷이 목적지 노드에서 송신 노드로부터 수신된다. 제 1 데이터 패킷은 송신 노드로부터 하나 이상의 통신 경로를 경유하여 목적지 노드로 선택 데이터를 전송하는 데이터 패킷의 스트림과 연관된다. 데이터 패킷의 스트림은 제 1 데이터 패킷이 연관되는 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관된다.
제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자를 표현하는 단편 식별값, 제 1 세그먼트와 연관된 세그먼트 식별자를 표현하는 세그먼트 식별값 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 포함한다. 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다.
1104에서, 검증 체크는 제 1 데이터 패킷에 의해 전달된 검증 체크값을 사용하여 제 1 데이터 패킷 상에서 수행된다. 다음에, 제 1 데이터 패킷 상의 검증 체크의 포지티브 또는 네거티브 결과 및 대응 세그먼트 및 단편 식별값이 세그먼트 응답 메시지 버퍼 내에 저장된다(1106). 1108에서, 프로세스(1100)는 제 1 그룹의 최종 데이터 패킷이 1102에서 수신될 때까지 제 1 그룹의 다음의 데이터 패킷에 대해 1102 내지 1106을 반복함으로써 계속된다.
1110에서, 1102 내지 1106이 제 1 그룹의 최종 데이터 패킷에 대해 수행된 후에, 프로세스(1100)는 제 1 그룹의 최종 데이터 패킷 내의 세그먼트 종단값을 검출함으로써 계속된다. 다음에, 세그먼트 응답 메시지 버퍼 내에 저장된 정보는 제 1 그룹과 연관된 제 1 세그먼트 응답 메시지를 형성하기 위해 프로세싱된다(1112). 1114에서, 제 1 세그먼트 응답 메시지는 목적지 노드로부터 하나 이상의 통신 경로를 경유하여 송신 노드로 전송된다.
프로세스(1100)의 다른 실시예에서, 송신 노드에 대한 제 1 세그먼트 응답 메시지는 목적지 노드에 의해 성공적으로 수신되어 검증된 제 1 그룹의 모든 데이터 패킷을 지시한다. 이 실시예에서, 프로세스(1100)는 데이터 패킷의 제 2 그룹, 선택 데이터의 제 2 세그먼트, 선택 데이터의 제 2 복수의 단편 및 제 2 세그먼트 응답 메시지에 대해 1102 내지 1114를 반복하는 단계를 또한 포함한다. 설명되고 있는 실시예에서, 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 2 그룹을 또한 포함하고, 데이터 패킷의 제 2 그룹은 제 2 세그먼트를 전달하고, 제 2 세그먼트는 제 2 복수의 단편을 포함한다.
프로세스(1100)의 또 다른 실시예에서, 송신 노드에 대한 제 1 세그먼트 응답 메시지는 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 적어도 하나의 패킷을 지시한다. 프로세스(1100)의 또 다른 실시예에서, 송신 노드에 대한 제 1 세그먼트 응답 메시지는 성공적으로 수신되어 검증되지 않은 제 1 그룹의 각각의 데이터 패킷과 연관된 세그먼트 및 단편 식별자를 지시한다.
또 다른 실시예에서, 프로세스(1100)는 데이터 패킷의 제 1 그룹을 위한 세그먼트 응답 메시지 버퍼 내에 저장된 단편 식별자의 시퀀싱의 붕괴를 나타내는 1112에서의 프로세싱에 적어도 부분적으로 기초하여 목적지 노드에 의해 수신되지 않은 제 1 그룹과 연관된 적어도 하나의 데이터 패킷을 결정하는 단계를 또한 포함한다. 또 다른 실시예에서, 프로세스(1100)는 대응 데이터 패킷을 위한 세그먼트 응답 메시지 내에 저장된 네거티브 결과를 나타내는 1112에서의 프로세싱에 적어도 부분적으로 기초하여 1104에서 검증 체크에 실패한 제 1 그룹과 연관된 적어도 하나의 데이터 패킷을 결정하는 단계를 또한 포함한다.
또 다른 실시예에서, 프로세스(1100)는 목적지 노드에서 송신 노드로부터의 제 1 재전송된 데이터 패킷을 수신하는 단계를 또한 포함한다. 제 1 재전송된 데이터 패킷은 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 적어도 하나의 패킷으로부터이다. 이 실시예에서, 프로세스(1100)는 제 1 재전송된 데이터 패킷에 의해 전달된 검증 체크값을 사용하여 제 1 재전송된 데이터 패킷 상에 검증 체크를 수행하는 단계 및 세그먼트 응답 메시지 버퍼 내에 제 1 재전송된 데이터 패킷 상의 검증 체크의 포지티브 또는 네거티브 결과를 저장하는 단계에 의해 계속된다. 이 실시예에서, 이들 단계는 제 1 그룹의 최종 데이터 패킷이 재전송되어 수신될 때까지 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 적어도 하나의 데이터 패킷으로부터 다음의 재전송된 데이터 패킷에 대해 반복된다. 재전송된 최종 데이터 패킷이 수신된 후에, 제 1 그룹의 재전송된 최종 데이터 패킷 내의 세그먼트 종단값이 검출된다. 다음에, 세그먼트 응답 메시지 버퍼 내에 저장된 정보는 제 1 그룹과 연관된 제 1 세그먼트 재전송 메시지를 형성하도록 프로세싱된다. 다음에, 제 1 세그먼트 재전송 메시지는 목적지 노드로부터 하나 이상의 통신 경로를 경유하여 송신 노드로 전송된다.
도 12를 참조하면, 통신 노드(1200)의 예시적인 실시예는 통신 인터페이스 모듈(1204), 데이터 패킷 해체(deconstruction) 모듈(1206), 데이터 집합화(desegmentation) 모듈(1208), 데이터 조각모음(defragmentation) 모듈(1210) 및 세그먼트 응답 메시지 버퍼(1212)를 포함한다. 통신 노드(1200)(즉, 목적지 노드)는 다른 통신 노드(1214)(즉, 송신 노드)에 의해 전송된 데이터를 수신하기 위한 것이다. 통신 제어기(1202)는 송신 노드(1214)로부터 통신 인터페이스 모듈(1204)에 의해 데이터 패킷의 스트림의 수신을 제어하기 위한 것이다. 데이터 패킷의 스트림은 송신 노드(1214)로부터 목적지 노드(1200)와 송신 노드(1214)의 모두에 액세스 가능한 통신 네트워크(1218)를 경유하여 전송될 수 있다.
통신 네트워크(1218)는 임의의 적합한 유형의 통신 네트워크를 포함할 수 있다. 다양한 실시예에서, 통신 네트워크(1218)는 임의의 적합한 조합으로 다수의 통신 네트워크 및 다수의 유형의 통신 네트워크를 포함할 수 있다. 예를 들어, 통신 네트워크(1218)는 LAN, WAN, 유선 네트워크, 무선 네트워크, 셀룰러 네트워크, 위성 통신 네트워크, 전화 네트워크, PSTN, 무선 통신 네트워크, 위성 텔레비전 네트워크, 케이블 텔레비전 네트워크, 인트라넷, 인터넷(Internet을 포함함) 및 임의의 적합한 통신 네트워크의 임의의 조합을 포함할 수 있다. 데이터 패킷의 스트림은 통신 네트워크(1218)를 통한 하나 이상의 통신 경로를 경유하여 송신 노드(1214)로부터 전송될 수 있다. 다른 실시예에서, 데이터 패킷의 스트림은 송신 노드(1200)와 목적지 노드(1214) 사이의 직접 통신 경로(1220)를 경유하여 송신 노드(1214)로부터 전송될 수 있다.
통신 제어기(1202)는 또한 데이터 목적지(1216)를 위한 선택 데이터를 언랩(unwrap)하기 위해 데이터 패킷 해체 모듈(1206), 데이터 집합화 모듈(1208) 및 데이터 조각모음 모듈(1210)에 의해 데이터 패킷의 역 프로세싱을 제어하기 위한 것이다. 데이터 목적지(1216)는 저장 디바이스, 프로세싱 디바이스, 애플리케이션 프로그램 또는 데이터의 임의의 적합한 목적지일 수 있다.
데이터 패킷 해체 모듈(1206)은 스트림으로부터 데이터 패킷의 그룹을 캡처하고, 그룹을 개별 데이터 패킷으로 해체하고, 대응 데이터 패킷에 의해 전달된 데이터 단편 및 데이터 세그먼트 및 정보를 회수하기 위해 개별 데이터 패킷을 해체기 위한 것이다. 데이터 해체 모듈은 데이터 패킷으로부터의 데이터 단편을 캡처하여 데이터 세그먼트 내로 배열하기 위한 것이다. 데이터 조각모음 모듈은 데이터 패킷의 스트림을 경유하여 목적지 노드(1200)에 전송된 선택 데이터의 대응 부분을 형성하기 위해 데이터 세그먼트의 데이터 단편을 캡처하여 배열하기 위한 것이다.
통신 인터페이스 모듈(1204)은 목적지 노드(1200)에서 송신 노드(1214)로부터의 제 1 데이터 패킷을 수신하기 위한 것이다. 제 1 데이터 패킷은 송신 노드(1214)로부터 하나 이상의 통신 경로를 경유하여 선택 데이터를 전송하는 데이터 패킷의 스트림과 연관된다. 데이터 패킷의 스트림은 제 1 데이터 패킷이 연관되는 적어도 데이터 패킷의 제 1 그룹을 포함한다. 데이터 패킷의 제 1 그룹은 선택 데이터의 제 1 세그먼트를 전달한다. 제 1 세그먼트는 선택 데이터의 제 1 복수의 단편을 포함한다. 제 1 세그먼트는 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관된다. 제 1 복수의 단편 내의 각각의 단편은 제 1 세그먼트와 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관된다. 이 실시예에서, 제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편의 대응 단편, 대응 단편과 연관된 단편 식별자를 표현하는 단편 식별값, 제 1 세그먼트와 연관된 세그먼트 식별자를 표현하는 세그먼트 식별값 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값을 전달한다. 적어도 제 1 그룹의 최종 데이터 패킷은 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값을 전달한다.
통신 제어기(1202)는 제 1 데이터 패킷에 의해 전달된 검증 체크값을 사용하여 제 1 데이터 패킷 상에 검증 체크를 수행하기 위한 것이고, 세그먼트 응답 메시지 버퍼(1212) 내에 제 1 데이터 패킷에 대한 검증 체크의 포지티브 또는 네거티브 결과 및 대응 세그먼트 및 단편 식별값을 저장하기 위한 것이고, 제 1 그룹의 최종 데이터 패킷이 수신될 때까지 제 1 그룹의 다음의 데이터 패킷에 대해 수신, 검증 체크의 수행 및 결과의 저장을 반복하기 위한 것이다. 최종 데이터 패킷이 수신된 후에, 통신 제어기(1202)는 제 1 그룹의 최종 데이터 패킷 내의 세그먼트 종단값을 검출하기 위한 것이고, 제 1 그룹과 연관된 제 1 세그먼트 응답 메시지를 형성하기 위해 세그먼트 응답 메시지 버퍼(1212) 내에 저장된 정보를 프로세싱하기 위한 것이고, 목적지 노드(1200)로부터 하나 이상의 통신 경로를 경유하여 송신 노드(1214)로 제 1 세그먼트 응답 메시지를 전송하기 위해 통신 인터페이스 모듈(1204)을 제어하기 위한 것이다.
통신 노드(1200)의 다른 실시예에서, 목적지 노드(1200)에 의해 성공적으로 수신되어 검증된 제 1 그룹의 모든 데이터 패킷을 나타내는 제 1 세그먼트 응답 메시지를 통신 제어기(1202)로부터 통신 인터페이스 모듈(1204)을 경유하여 송신 노드(1214)에 송신한 후에, 통신 제어기(1202)는 데이터 패킷의 제 2 그룹, 선택 데이터의 제 2 세그먼트, 선택 데이터의 제 2 복수의 단편 및 제 2 세그먼트 응답 메시지에 대해 통신 인터페이스 모듈(1204), 데이터 패킷 해체 모듈(1206), 데이터 집합화 모듈(1208) 및 데이터 조각모음 모듈(1210)을 제어한다. 이 실시예에서, 데이터 패킷의 스트림은 적어도 데이터 패킷의 제 2 그룹을 포함하고, 데이터 패킷의 제 2 그룹은 제 2 세그먼트를 전달하고, 제 2 세그먼트는 제 2 복수의 단편을 포함한다.
통신 노드(1200)의 또 다른 실시예에서, 목적지 노드(1200)에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 적어도 하나의 데이터 패킷을 나타내는 제 1 세그먼트 응답 메시지를 통신 제어기(1202)로부터 통신 인터페이스 모듈(1204)을 경유하여 송신 노드(1214)에 송신한 후이다. 통신 노드(1200)의 다른 실시예에서, 송신 노드(1214)로의 제 1 세그먼트 응답 메시지는 성공적으로 수신되어 검증되지 않은 제 1 그룹의 각각의 데이터 패킷과 연관된 세그먼트 단편 식별자를 지시한다.
통신 노드(1200)의 또 다른 실시예에서, 통신 제어기(1202)는 데이터 집합화 모듈(1208) 및 데이터 조각모음 모듈(1210)과 함께, 데이터 패킷의 제 1 그룹을 위한 단편 식별자의 시퀀싱의 붕괴를 나타내는 세그먼트 응답 메시지 버퍼(1212)에 적어도 부분적으로 기초하여 목적지 노드(1200)에 의해 수신되지 않은 제 1 그룹과 연관된 적어도 하나의 데이터 패킷을 결정한다. 통신 노드(1200)의 또 다른 실시예에서, 통신 제어기(1202)는 데이터 패킷 해체 모듈(1206)의 적어도 하나와 함께, 대응 데이터 패킷에 대한 네거티브 결과를 나타내는 세그먼트 응답 메시지 버퍼(1212)에 적어도 부분적으로 기초하여 검증 체크에 실패한 제 1 그룹과 연관된 적어도 하나의 데이터 패킷을 결정한다.
통신 노드(1200)의 또 다른 실시예에서, 통신 인터페이스 모듈(1204)은 목적지 노드(1200)에서 송신 노드(1214)로부터의 제 1 재전송된 데이터 패킷을 수신하기 위한 것이다. 제 1 재전송된 데이터 패킷은 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 적어도 하나의 데이터 패킷으로부터이다. 이 실시예에서, 통신 제어기(1202)는 제 1 재전송된 데이터 패킷에 의해 전달된 검증 체크값을 사용하여 제 1 재전송된 데이터 패킷 상에 검증 체크를 수행하고, 세그먼트 응답 메시지 버퍼 내의 제 1 재전송된 데이터 패킷 상에 검증 체크의 포지티브 또는 네거티브 결과를 저장하고, 제 1 그룹의 최종 데이터 패킷이 재전송되어 수신될 때까지 목적지 노드에 의해 성공적으로 수신되어 검증되지 않은 제 1 그룹의 적어도 하나의 데이터 패킷으로부터 다음 재전송된 데이터 패킷에 대해 검증 체크의 수신, 수행 및 결과의 저장을 반복한다. 최종 재전송된 데이터 패킷이 수신된 후에, 통신 제어기(1202)는 제 1 그룹의 재전송된 최종 데이터 패킷 내의 세그먼트 종단값을 검출하고, 제 1 그룹과 연관된 제 1 세그먼트 재전송 메시지를 형성하기 위해 세그먼트 응답 메시지 버퍼(1212) 내에 저장된 정보를 프로세싱하고, 목적지 노드(1200)로부터 하나 이상의 통신 경로를 경유하여 송신 노드(1214)에 제 1 세그먼트 재전송 메시지를 전송하기 위해 통신 인터페이스 모듈(1204)을 제어한다.
도 3을 재차 참조하면, 프로그램 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체의 예시적인 실시예는, 컴퓨터에 의해 실행될 때, 대응 컴퓨터 제어형 통신 노드가 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(300)를 수행하게 할 수 있다. 다양한 부가의 실시예에서, 비일시적 컴퓨터 판독 가능 메모리 내에 저장된 프로그램 명령은, 컴퓨터에 의해 실행될 때, 컴퓨터 제어형 라우터가 도 4 내지 도 7 및 도 11을 참조하여 송신 노드로부터 목적지 노드로 데이터를 전송하기 위한 프로세스(400, 500, 600, 700, 1100)와 연관된 기능의 다양한 조합을 수행할 수 있게 할 수 있다. 달리 말하면, 전술된 프로세스의 다양한 실시예는 비일시적 컴퓨터 판독 가능 매체 내에 저장된 프로그램 명령에 의해 구현될 수 있다.
마찬가지로, 다양한 실시예에서, 비일시적 컴퓨터 판독 가능 매체 내에 저장된 프로그램 명령은, 컴퓨터에 의해 실행될 때, 컴퓨터 제어형 통신 노드가 도 8 및 도 12를 참조하여 전술된 통신 노드(800, 1200)의 다양한 실시예와 연관된 기능의 다양한 조합을 수행할 수 있게 한다. 예를 들어, 컴퓨터 제어형 디바이스는 통신 노드(800, 1200)를 포함할 수 있다. 도 8 및 도 12를 참조하여 전술된 임의의 적합한 모듈은 프로그램 명령과 연관된 컴퓨터 및 비일시적 컴퓨터 판독 가능 매체를 포함할 수 있다. 대안적으로, 프로그램 명령과 연관된 컴퓨터 및 비일시적 컴퓨터 판독 가능 매체는 도 8 및 도 12를 참조하여 전술된 모듈의 임의의 적합한 조합과 작동적으로 통신하고 있는 개별 또는 조합 구성 요소일 수 있다.
이 기록된 설명은 최선의 모드를 포함하는 본 발명을 개시하기 위해, 또한 당 기술 분야의 숙련자들이 임의의 디바이스 또는 시스템을 구성하고 사용하는 것과 임의의 채택된 방법을 수행하는 것을 포함하여 본 발명을 실시하는 것을 가능하게 하기 위해 예를 사용한다. 본 발명의 특허 가능한 범주는 청구범위에 의해 규정되고, 당 기술 분야의 숙련자들에게 발생하는 다른 예를 포함할 수 있다. 이러한 다른 예는 이들이 청구범위의 문자 언어와 상이한 구조적 요소를 가지면 또는 이들이 청구범위의 문자 언어와 비실질적인 차이를 갖는 등가의 구조적 요소를 포함하면 청구범위의 범주 내에 있는 것으로 의도된다.
800: 통신 노드(송신 노드) 802: 통신 제어기
804: 데이터 단편화 모듈 806: 데이터 분할 모듈
808: 데이터 패킷 구성 모듈 810: 통신 인터페이스 모듈
812: 통신 노드(목적지 노드) 814: 데이터 소스
816: 통신 네트워크 818: 직접 통신 경로
820: 세그먼트 전송 버퍼 900: 프로세스
902: 선택 데이터 904: 데이터 패킷 스트림
906: 중간 프로세싱 908: 그룹
910: 세그먼트 912: 단편
914: 세그먼트 ID 값 916: 단편 ID 값
918: 데이터 패킷 920: 검증 체크값
922: 최종 데이터 패킷(그룹의) 924: 세그먼트 종단값
1200: 통신 노드(목적지 노드) 1202: 통신 제어기
1204: 통신 인터페이스 모듈 1206: 데이터 패킷 해체 모듈
1208: 데이터 집합화 모듈 1210: 데이터 조각모음 모듈
1212: 세그먼트 응답 메시지 버퍼 1214: 통신 노드(송신 노드)
1216: 데이터 목적지 1218: 통신 네트워크
1220: 직접 통신 경로

Claims (15)

  1. 데이터 전송 방법에 있어서,
    a) 데이터 패킷(904)의 스트림을 형성하기 위해 선택 데이터(902)를 프로세싱하는 단계 - 상기 데이터 패킷의 스트림은 적어도 데이터 패킷(918)의 제 1 그룹(908)을 포함하고, 상기 데이터 패킷의 제 1 그룹은 상기 선택 데이터의 제 1 세그먼트(910)를 전달하고, 상기 제 1 세그먼트는 상기 선택 데이터의 제 1 복수의 단편(912)을 포함하고, 상기 제 1 세그먼트는 상기 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관되고, 상기 제 1 복수의 단편 내의 각각의 단편은 상기 제 1 세그먼트와 상기 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관되고, 상기 고유 단편 식별자는 상기 고유 세그먼트 식별자와 상이하며, 상기 제 1 그룹의 각각의 데이터 패킷은 상기 제 1 복수의 단편 중의 대응 단편, 상기 대응 단편과 연관된 단편 식별자, 상기 제 1 세그먼트와 연관된 세그먼트 식별자 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값(920)을 전달하고, 상기 제 1 그룹의 최종 데이터 패킷(922)은 상기 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값(924)을 전달함 - 와,
    b) 송신 노드(800)로부터 하나 이상의 통신 경로를 경유하여 목적지 노드(812)로 상기 제 1 그룹을 전송하는 단계 - 상기 제 1 그룹의 상기 최종 데이터 패킷은 마지막에 전송되어, 상기 제 1 그룹의 데이터 패킷의 전송들 사이에서 상기 목적지 노드로부터 제 1 세그먼트 응답 메시지를 대기하지 않고 전송이 계속되도록 함 - 를 포함하는
    데이터 전송 방법.
  2. 제 1 항에 있어서,
    상기 선택 데이터의 단편들은 상기 송신 노드 및 상기 목적지 노드의 모두에 알려진 크기인
    데이터 전송 방법.
  3. 제 1 항에 있어서,
    상기 제 1 세그먼트를 형성하는 상기 제 1 복수의 단편에 대한 단편의 양은 상기 송신 노드 및 상기 목적지 노드의 모두에 알려져 있는
    데이터 전송 방법.
  4. 제 1 항에 있어서,
    c) 상기 제 1 그룹의 모든 데이터 패킷이 상기 목적지 노드에 의해 성공적으로 수신되어 검증된 것을 나타내는 적어도 제 1 세그먼트 응답 메시지가 상기 목적지 노드로부터 수신될 때까지 상기 송신 노드에서 세그먼트 전송 버퍼(820) 내에 데이터 패킷의 상기 제 1 그룹을 저장하는 단계를 더 포함하는
    데이터 전송 방법.
  5. 제 1 항에 있어서,
    c) 상기 제 1 그룹의 모든 데이터 패킷이 상기 목적지 노드에 의해 성공적으로 수신되어 검증된 것을 나타내는 제 1 세그먼트 응답 메시지를 상기 목적지 노드로부터 상기 송신 노드에서 수신하는 단계와,
    d) 데이터 패킷의 제 2 그룹, 상기 선택 데이터의 제 2 세그먼트 및 상기 선택 데이터의 제 2 복수의 단편에 대해 단계 a) 및 b)를 반복하는 단계 - 상기 데이터 패킷의 스트림은 적어도 데이터 패킷의 상기 제 2 그룹을 또한 포함하고, 상기 데이터 패킷의 제 2 그룹은 상기 제 2 세그먼트를 전달하고, 상기 제 2 세그먼트는 상기 제 2 복수의 단편을 포함함 - 를 더 포함하는
    데이터 전송 방법.
  6. 제 1 항에 있어서,
    c) 상기 제 1 그룹의 적어도 하나의 데이터 패킷이 상기 목적지 노드에 의해 성공적으로 수신 및 검증되지 않은 것을 나타내는 제 1 세그먼트 응답 메시지를 상기 목적지 노드로부터 상기 송신 노드에서 수신하는 단계와,
    d) 상기 목적지 노드에 의해 성공적으로 수신 및 검증되지 않은 제 1 그룹의 각각의 데이터 패킷을 재전송하고 상기 송신 노드로부터 상기 목적지 노드로 상기 제 1 그룹의 상기 최종 데이터 패킷을 재전송하여 재전송들 사이에 상기 목적지 노드로부터 다른 세그먼트 응답 메시지를 대기하지 않고 재전송이 계속되도록 하는 단계를 더 포함하는
    데이터 전송 방법.
  7. 제 6 항에 있어서,
    상기 목적지 노드로부터의 상기 제 1 세그먼트 응답 메시지는, 성공적으로 수신 및 검증되지 않은 상기 제 1 그룹의 각각의 데이터 패킷과 연관된 세그먼트 및 단편 식별자를 나타내는
    데이터 전송 방법.
  8. 제 1 항에 있어서,
    c) 상기 제 1 그룹의 상기 최종 데이터 패킷이 상기 목적지 노드에 전송된 후에 사전 결정된 시간 내에 어떠한 세그먼트 응답 메시지도 상기 목적지 노드로부터 수신되지 않으면 상기 송신 노드로부터 상기 목적지 노드로 상기 제 1 그룹의 상기 최종 데이터 패킷을 재전송하는 단계를 더 포함하는
    데이터 전송 방법.
  9. 데이터 전송 방법에 있어서,
    a) 목적지 노드(1200)에서 송신 노드(1214)로부터의 제 1 데이터 패킷(918)을 수신하는 단계 - 상기 제 1 데이터 패킷은 상기 송신 노드로부터 하나 이상의 통신 경로를 경유하여 상기 목적지 노드로 선택 데이터를 전송하는 데이터 패킷(904)의 스트림과 연관되고, 상기 데이터 패킷의 스트림은 제 1 데이터 패킷이 연관되는 적어도 데이터 패킷의 제 1 그룹(908)을 포함하고, 상기 데이터 패킷의 상기 제 1 그룹은 상기 선택 데이터의 제 1 세그먼트(910)를 전달하고, 상기 제 1 세그먼트는 상기 선택 데이터의 제 1 복수의 단편(912)을 포함하고, 상기 제 1 세그먼트는 상기 선택 데이터와 관련하여 고유 세그먼트 식별자와 연관되고, 상기 제 1 복수의 단편 내의 각각의 단편은 상기 제 1 세그먼트와 상기 선택 데이터 중 적어도 하나와 관련하여 고유 단편 식별자와 연관되고, 상기 고유 단편 식별자는 상기 고유 세그먼트 식별자와 상이하며, 상기 제 1 그룹의 각각의 데이터 패킷은 제 1 복수의 단편 중의 대응 단편, 상기 대응 단편과 연관된 단편 식별자, 상기 제 1 세그먼트와 연관된 세그먼트 식별자 및 대응 데이터 패킷을 검증하는데 사용하기 위한 검증 체크값(920)을 전달하고, 상기 제 1 그룹의 최종 데이터 패킷(922)은 상기 제 1 그룹의 최종 데이터 패킷으로서 대응 데이터 패킷을 식별하는 세그먼트 종단값(924)을 전달함 - 와,
    b) 상기 제 1 데이터 패킷에 의해 전달된 상기 검증 체크값을 사용하여 상기 제 1 데이터 패킷 상에 검증 체크를 수행하는 단계와,
    c) 세그먼트 응답 메시지 버퍼(1212) 내에 상기 제 1 데이터 패킷 상의 검증 체크의 포지티브 또는 네거티브 결과 및 대응 세그먼트 및 단편 식별자를 저장하는 단계와,
    d) 상기 제 1 그룹의 상기 최종 데이터 패킷이 단계 a)에서 수신될 때까지 상기 제 1 그룹의 다음의 데이터 패킷에 대해 단계 a) 내지 c)를 반복하는 단계와,
    e) 상기 제 1 그룹의 상기 최종 데이터 패킷 내의 상기 세그먼트 종단값을 검출하는 단계와,
    f) 상기 제 1 그룹과 연관된 제 1 세그먼트 응답 메시지를 형성하기 위해 상기 세그먼트 응답 메시지 버퍼 내에 저장된 정보를 프로세싱하는 단계와,
    g) 상기 목적지 노드로부터 하나 이상의 통신 경로를 경유하여 상기 송신 노드에 상기 제 1 세그먼트 응답 메시지를 전송하는 단계를 포함하는
    데이터 전송 방법.
  10. 제 9 항에 있어서,
    상기 송신 노드로의 상기 제 1 세그먼트 응답 메시지는 상기 제 1 그룹의 모든 데이터 패킷이 상기 목적지 노드에 의해 성공적으로 수신되어 검증된 것을 나타내고, 상기 방법은
    h) 데이터 패킷의 제 2 그룹, 상기 선택 데이터의 제 2 세그먼트, 상기 선택 데이터의 제 2 복수의 단편 및 제 2 세그먼트 응답 메시지에 대해 단계 a) 및 g)를 반복하는 단계 - 상기 데이터 패킷의 스트림은 적어도 데이터 패킷의 상기 제 2 그룹을 또한 포함하고, 상기 데이터 패킷의 상기 제 2 그룹은 상기 제 2 세그먼트를 전달하고, 상기 제 2 세그먼트는 상기 제 2 복수의 단편을 포함함 - 를 더 포함하는
    데이터 전송 방법.
  11. 제 9 항에 있어서,
    상기 송신 노드로의 상기 제 1 세그먼트 응답 메시지는, 상기 목적지 노드에 의해 성공적으로 수신 및 검증되지 않은 상기 제 1 그룹의 적어도 하나의 데이터 패킷을 나타내는
    데이터 전송 방법.
  12. 제 11 항에 있어서,
    상기 송신 노드로의 상기 제 1 세그먼트 응답 메시지는, 성공적으로 수신 및 검증되지 않은 상기 제 1 그룹의 각각의 데이터 패킷과 연관된 세그먼트 및 단편 식별자를 나타내는
    데이터 전송 방법.
  13. 제 11 항에 있어서,
    h) 상기 데이터 패킷의 상기 제 1 그룹에 대한 상기 세그먼트 응답 메시지 버퍼 내에 저장된 단편 식별자의 시퀀싱의 붕괴를 나타내는 상기 단계 f)에서의 프로세싱에 적어도 부분적으로 기초하여 상기 제 1 그룹과 연관된 적어도 하나의 데이터 패킷이 상기 목적지 노드에 의해 수신되지 않았음을 결정하는 단계를 더 포함하는
    데이터 전송 방법.
  14. 제 11 항에 있어서,
    h) 대응 데이터 패킷에 대한 상기 세그먼트 응답 메시지 버퍼 내에 저장된 네거티브 결과를 나타내는 상기 단계 f)에서의 프로세싱에 적어도 부분적으로 기초하여 상기 제 1 그룹과 연관된 적어도 하나의 데이터 패킷이 단계 b)에서의 검증 체크에 실패했음을 결정하는 단계를 더 포함하는
    데이터 전송 방법.
  15. 제 11 항에 있어서,
    h) 상기 목적지 노드에서 상기 송신 노드로부터의 제 1 재전송 데이터 패킷을 수신하는 단계 - 상기 제 1 재전송된 데이터 패킷은 상기 목적지 노드에 의해 성공적으로 수신 및 검증되지 않은 상기 제 1 그룹의 적어도 하나의 데이터 패킷으로부터임 - 와,
    i) 상기 재전송된 데이터 패킷에 의해 전달된 검증 체크값을 사용하여 상기 제 1 재전송된 데이터 패킷 상에 검증 체크를 수행하는 단계와,
    j) 상기 세그먼트 응답 메시지 버퍼 내의 상기 제 1 재전송된 데이터 패킷 상의 검증 체크의 포지티브 또는 네거티브 결과를 저장하는 단계와,
    k) 상기 제 1 그룹의 상기 최종 데이터 패킷이 상기 단계 h)에서 재전송되어 수신될 때까지 상기 목적지 노드에 의해 성공적으로 수신 및 검증되지 않은 제 1 그룹의 적어도 하나의 데이터 패킷으로부터 다음의 재전송된 데이터 패킷에 대해 상기 단계 h) 내지 j)를 반복하는 단계와,
    l) 상기 제 1 그룹의 재전송된 최종 데이터 패킷 내의 세그먼트 종단값을 검출하는 단계와,
    m) 상기 제 1 그룹과 연관된 제 1 세그먼트 재전송 메시지를 형성하기 위해 상기 세그먼트 응답 메시지 내에 저장된 정보를 프로세싱하는 단계, 및
    n) 상기 목적지 노드로부터 하나 이상의 통신 경로를 경유하여 상기 송신 노드에 상기 제 1 세그먼트 재전송 메시지를 전송하는 단계를 더 포함하는
    데이터 전송 방법.
KR1020120142091A 2011-12-09 2012-12-07 송신 노드로부터 목적지 노드로의 데이터 전송 방법 KR102046792B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/315,955 US8976814B2 (en) 2011-12-09 2011-12-09 Method of transporting data from sending node to destination node
US13/315,955 2011-12-09

Publications (2)

Publication Number Publication Date
KR20130065619A KR20130065619A (ko) 2013-06-19
KR102046792B1 true KR102046792B1 (ko) 2019-11-20

Family

ID=47602862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120142091A KR102046792B1 (ko) 2011-12-09 2012-12-07 송신 노드로부터 목적지 노드로의 데이터 전송 방법

Country Status (4)

Country Link
US (1) US8976814B2 (ko)
EP (1) EP2613497B1 (ko)
JP (1) JP6148459B2 (ko)
KR (1) KR102046792B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425371B2 (en) * 2013-03-15 2019-09-24 Trane International Inc. Method for fragmented messaging between network devices
US10193771B2 (en) * 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US20150381381A1 (en) * 2014-06-30 2015-12-31 Motorola Solutions, Inc Methods and systems for transmitting group data using a downlink group data channel
TWI599218B (zh) * 2016-07-29 2017-09-11 元智大學 即時影音傳輸系統
CN107302525A (zh) * 2017-06-02 2017-10-27 上海帝联信息科技股份有限公司 拉流控制方法及装置、可读存储介质、流媒体服务器
CN111756681A (zh) * 2019-03-29 2020-10-09 北京金山云网络技术有限公司 一种流媒体级联调度方法、装置、电子设备以及存储介质
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
WO2024035845A1 (en) * 2022-08-11 2024-02-15 Cisco Technology, Inc. Options template transport for software defined wide area network
US11996981B2 (en) 2022-08-11 2024-05-28 Cisco Technology, Inc. Options template transport for software defined wide area networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007060145A (ja) * 2005-08-23 2007-03-08 Nippon Telegr & Teleph Corp <Ntt> 無線通信システムおよび無線通信方法
KR100944921B1 (ko) * 2001-08-16 2010-03-03 퀄컴 인코포레이티드 무선통신 시스템에서의 재전송 방법 및 장치

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4970714A (en) 1989-01-05 1990-11-13 International Business Machines Corp. Adaptive data link protocol
US7594250B2 (en) * 1992-04-02 2009-09-22 Debey Henry C Method and system of program transmission optimization using a redundant transmission sequence
JP3151103B2 (ja) * 1994-03-30 2001-04-03 株式会社日立製作所 通信システムおよび通信方法
US6289012B1 (en) 1998-08-03 2001-09-11 Instanton Corporation High concurrency data download apparatus and method
JP3148733B2 (ja) * 1999-02-26 2001-03-26 株式会社神戸製鋼所 信号処理装置及び信号処理システム
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
WO2002063901A1 (en) * 2001-02-06 2002-08-15 Nokia Corporation Access system for a cellular network
US7027443B2 (en) * 2001-08-23 2006-04-11 Pmc-Sierra Ltd. Reassembly engines for multilink applications
US7716312B2 (en) 2002-11-13 2010-05-11 Avid Technology, Inc. Method and system for transferring large data files over parallel connections
US7461319B2 (en) 2003-04-04 2008-12-02 Sun Microsystems, Inc. System and method for downloading files over a network with real time verification
EP1494237A1 (en) * 2003-07-01 2005-01-05 Deutsche Thomson-Brandt Gmbh Method and apparatus for editing a data stream
US7519274B2 (en) * 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
JP4128961B2 (ja) * 2004-01-26 2008-07-30 株式会社東芝 無線通信装置、無線通信方法及び無線通信プログラム
JP4537083B2 (ja) * 2004-01-28 2010-09-01 キヤノン株式会社 データ処理装置及びその制御方法
US20060004904A1 (en) * 2004-06-30 2006-01-05 Intel Corporation Method, system, and program for managing transmit throughput for a network controller
WO2006038193A2 (en) * 2004-10-05 2006-04-13 Csi Technology, Inc. Transferring arbitrary binary data over a fieldbus network
US7835361B1 (en) * 2004-10-13 2010-11-16 Sonicwall, Inc. Method and apparatus for identifying data patterns in a file
KR20060112287A (ko) * 2005-04-25 2006-10-31 삼성전자주식회사 유무선 통신시스템에서 비트화 데이터 청크 수신응답 방법및 장치
US7773569B2 (en) * 2005-05-19 2010-08-10 Meshnetworks, Inc. System and method for efficiently routing data packets and managing channel access and bandwidth in wireless multi-hopping networks
DE602005010252D1 (de) * 2005-09-20 2008-11-20 Matsushita Electric Ind Co Ltd Vefahren und Vorrichtung zur Packetsegmentierung und Verknüpfungssignalisierung in einem Kommunikationssystem
JP2007180687A (ja) * 2005-12-27 2007-07-12 Matsushita Electric Ind Co Ltd 無線通信装置及び無線通信方法
EP2052544B1 (en) * 2006-08-14 2014-07-02 NDS Limited Controlled metadata revelation
FR2906425B1 (fr) 2006-09-21 2009-10-23 Ipanema Technologies Sa Procede d'optimisation du controle du trafic dans un reseau de telecommunication par paquets
FI20060936A0 (fi) * 2006-10-24 2006-10-24 Nokia Corp Menetelmä kanavanvaihtojen suorittamiseksi viestintäjärjestelmässä
US7865610B2 (en) * 2007-03-12 2011-01-04 Nautel Limited Point to multipoint reliable protocol for synchronous streaming data in a lossy IP network
JP2009015392A (ja) 2007-06-29 2009-01-22 Mitsubishi Electric Corp 通信装置および通信方法
WO2009050761A1 (ja) * 2007-10-15 2009-04-23 Fujitsu Limited ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法及びそのプログラム
AT506274B1 (de) 2007-12-19 2016-10-15 Center Communication Systems Gmbh Verfahren zum erstellen und versenden wenigstens eines datenpakets sowie verwendung hiefür
US8392942B2 (en) 2008-10-02 2013-03-05 Sony Corporation Multi-coded content substitution
EP2207354B1 (en) * 2009-01-13 2012-03-14 Alcatel-Lucent España, S.A. Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
US8228800B2 (en) 2009-02-03 2012-07-24 Microsoft Corporation Optimized transport protocol for delay-sensitive data
US20120047119A1 (en) * 2009-07-21 2012-02-23 Porto Technology, Llc System and method for creating and navigating annotated hyperlinks between video segments
US8301982B2 (en) * 2009-11-18 2012-10-30 Cisco Technology, Inc. RTP-based loss recovery and quality monitoring for non-IP and raw-IP MPEG transport flows
US20110225482A1 (en) * 2010-03-15 2011-09-15 Wizpatent Pte Ltd Managing and generating citations in scholarly work
KR101702562B1 (ko) * 2010-06-18 2017-02-03 삼성전자 주식회사 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치
JP5518262B2 (ja) * 2010-08-06 2014-06-11 エンパイア テクノロジー ディベロップメント エルエルシー 通信ネットワークの監視
US9456015B2 (en) * 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US8868492B2 (en) * 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US20130042013A1 (en) * 2011-08-10 2013-02-14 Nokia Corporation Methods, apparatuses and computer program products for enabling live sharing of data
US9843844B2 (en) * 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9042368B2 (en) * 2012-12-07 2015-05-26 Broadcom Corporation Gateway based and centric network management and coordination

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100944921B1 (ko) * 2001-08-16 2010-03-03 퀄컴 인코포레이티드 무선통신 시스템에서의 재전송 방법 및 장치
JP2007060145A (ja) * 2005-08-23 2007-03-08 Nippon Telegr & Teleph Corp <Ntt> 無線通信システムおよび無線通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DIAMANTIS, IOANNIS; NTALAKAS, ANDREAS; STRINTZIS, M. Real time video distribution using publication through a database. In: sibgraphi. IEEE, 1998. p. 208.(1998.10.20.)*

Also Published As

Publication number Publication date
US20130148671A1 (en) 2013-06-13
KR20130065619A (ko) 2013-06-19
JP2013123219A (ja) 2013-06-20
US8976814B2 (en) 2015-03-10
EP2613497A3 (en) 2013-11-13
EP2613497A2 (en) 2013-07-10
EP2613497B1 (en) 2019-03-06
JP6148459B2 (ja) 2017-06-14

Similar Documents

Publication Publication Date Title
KR102046792B1 (ko) 송신 노드로부터 목적지 노드로의 데이터 전송 방법
CN104025525B (zh) 用于发送分组的方法和设备以及交换机装置
JP5523350B2 (ja) Tcpフロー制御のための方法及び装置
WO2018205688A1 (zh) 一种数据传输的方法、装置和系统
CN102217258B (zh) 探测处理方法、数据发送端、数据接收端以及通信系统
WO2008029793A1 (fr) Procédé de récupération de paquets, système de communication, dispositif de traitement d&#39;informations et programme
CN107104902B (zh) 一种rdma数据传输的方法、相关装置与系统
TW200935812A (en) Status reporting for retransmission protocol
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
KR20090125170A (ko) 재송요구 송신방법 및 수신측장치
CN108886713B (zh) 一种数据传输方法、数据接收设备及数据发送设备
CN114268991A (zh) 数据传输方法、装置、电子设备、存储介质
CN102769520A (zh) 基于sctp协议的无线网络拥塞控制方法
WO2014194493A1 (zh) 一种减少传输控制层确认报文的方法、装置和系统
WO2011116577A1 (zh) 数据重传方法及装置
JP2023062123A (ja) 無線通信装置、無線通信方法、及び無線通信システム
Maisuria et al. Overview of techniques for improving QoS of TCP over wireless links
US9294409B2 (en) Reducing round-trip times for TCP communications
CN107959554B (zh) 一种数据的重传方法及装置
CN108667563A (zh) 一种前向纠错包个数获取方法及装置
EP1505759A2 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
JP4447028B2 (ja) 通信制御方法、送信装置、およびコンピュータプログラム
CN104243107A (zh) 数据传输方法、装置、终端、服务器及系统
JP2004187099A (ja) 通信制御方法、通信システム及び通信装置
CN106100797B (zh) 一种基于ltp异步加速重传策略的深空文件传输方法

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant