[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20140073561A - 다중 전달 라우트 패킷 정렬 - Google Patents

다중 전달 라우트 패킷 정렬 Download PDF

Info

Publication number
KR20140073561A
KR20140073561A KR1020147012078A KR20147012078A KR20140073561A KR 20140073561 A KR20140073561 A KR 20140073561A KR 1020147012078 A KR1020147012078 A KR 1020147012078A KR 20147012078 A KR20147012078 A KR 20147012078A KR 20140073561 A KR20140073561 A KR 20140073561A
Authority
KR
South Korea
Prior art keywords
packet
packets
sequence
network device
determining
Prior art date
Application number
KR1020147012078A
Other languages
English (en)
Other versions
KR101492510B1 (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 KR20140073561A publication Critical patent/KR20140073561A/ko
Application granted granted Critical
Publication of KR101492510B1 publication Critical patent/KR101492510B1/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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • H04L12/465Details on frame tagging wherein a single frame includes a plurality of VLAN tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/023Delayed use of routing table updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • 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/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

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

Abstract

하이브리드 네트워크 디바이스는 복수의 패킷 라우트들을 통해 전송되는 공통 패킷 스트림과 관련되는 패킷들의 시퀀스를 표시하기 위한 그리고 순서를 벗어난 패킷 도달을 관리하기 위한 기능을 구현할 수 있다. 하이브리드 통신 네트워크에서, 제 1 네트워크 디바이스는 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스로부터 수신되는 패킷 스트림의 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정할 수 있다. 제 1 네트워크 디바이스는 복수의 패킷들과 관련되는 시퀀스 식별자들에 적어도 부분적으로 기초하여 복수의 수신된 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출할 수 있다. 결과적으로, 제 1 네트워크 디바이스는 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬할 수 있다.

Description

다중 전달 라우트 패킷 정렬{MULTIPLE DELIVERY ROUTE PACKET ORDERING}
[0001] 본 출원은 2011년 11월 3일에 출원된 미국 출원 일련번호 제 13/288,319 호의 우선권 이익을 주장한다.
[0002] 본 발명 대상의 실시예들은 일반적으로 통신 시스템들의 분야에 관한 것으로서, 더 구체적으로, 다중 전달 라우트 패킷 정렬에 관한 것이다.
[0003] 하이브리드 통신 네트워크들은 전형적으로 단일 확장된 통신 네트워크를 형성하기 위해 서로 다른 네트워크 기술들과 매체 사이에 패킷들을 포워딩하는 브리징-가능 디바이스들을 이용하여 상호접속되는 다수의 네트워킹 기술들(예를 들어, 무선 로컬 영역 네트워크(WLAN) 기술들, 파워라인 통신 기술들, 이더넷 등)을 포함한다. 전형적으로, 통신 메커니즘들 및 프로토콜 특정들(예를 들어, 디바이스 및 토폴로지 발견, 다른 네트워크들에 대한 브리징 등)은 각 네트워킹 기술에 고유하다. 하이브리드 통신 네트워크는 소스 네트워크 디바이스로부터 목적지 네트워크 디바이스에 패킷들을 전달하기 위해 하나 또는 그 초과의 서로 다른 네트워크 기술들과 관련되는 서로 다른 라우트들을 제공할 수 있다.
[0004] 일부 실시예들에서, 방법은: 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이에 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스로부터 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을, 통신 네트워크의 제 1 네트워크 디바이스에서 결정하는 단계를 포함하며, 복수의 패킷들의 서브세트는 복수의 패킷 라우트들의 각각을 통해 수신되며; 복수의 패킷들과 관련되는 시퀀스 식별자들에 적어도 부분적으로 기초하여, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난(out-of-order) 전달을 검출하는 단계; 및 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 것에 응답하여, 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하는 단계를 포함한다.
[0005] 일부 실시예들에서, 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스로부터 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하는 단계는 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함하는지 여부를 결정하는 단계를 더 포함하며; 복수의 패킷들 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 것에 결정하는데 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를, 제 1 네트워크 디바이스에서 결정하는 단계; 및 복수의 패킷들 각각이 2차 시퀀스 식별자를 포함하지 않는다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자를, 제 1 네트워크 디바이스에서 결정하는 단계를 더 포함하며, 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자는 제 2 네트워크 디바이스의 상부 프로토콜 층들에 의해 삽입된다.
[0006] 일부 실시예들에서, 복수의 패킷들 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하는 단계는 복수의 패킷들 각각에 대해, 패킷의 하나 또는 그 초과의 헤더 필드들로부터 2차 시퀀스 식별자를 판독하는 단계를 더 포함한다.
[0007] 일부 실시예들에서, 복수의 패킷들의 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하는 단계는 복수의 패킷들의 각각에 대해, 패킷의 헤더 필드 및 패킷의 페이로드 중 적어도 하나에 기초하여 패킷의 패킷 서명을 결정하는 단계; 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 단계를 더 포함하며, 시퀀스 목록 패킷은 패킷 스트림의 복수의 패킷들의 대응하는 각각과 관련되는 대응하는 복수의 시퀀스 식별자들 및 복수의 패킷 서명들을 포함하며, 시퀀스 목록 패킷은 제 2 네트워크 디바이스로부터 제 1 네트워크 디바이스에 제공되며; 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 단계에 기초하여 패킷의 패킷 서명이 시퀀스 목록 패킷에서의 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것으로 결정하는 단계; 및 패킷의 패킷 서명은 시퀀스 목록 패킷에서의 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것으로 결정하는데 응답하여, 패킷과 관련되는 시퀀스 식별자로서 복수의 패킷 서명들 중 제 1 패킷 서명에 대응하는 복수의 시퀀스 식별자들 중 제 1 시퀀스 식별자를 식별하는 단계를 더 포함한다.
[0008] 일부 실시예들에서, 2차 시퀀스 식별자는 패킷과 관련되는 가상 로컬 영역 네트워크(VLAN) 태그의 하나 또는 그 초과의 비트들 중 적어도 하나에서 표시되며, 제 2 시퀀스 식별자를 표시하는 VLAN 태그의 하나 또는 그 초과의 비트들은 미리 결정된 인코딩과 관련된다.
[0009] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는, 복수의 패킷들의 각각에 대해, 패킷과 관련되는 시퀀스 식별자가 제 1 네트워크 디바이스에서 이전에 수신되는 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자와 시퀀스로 있는지 여부를 결정하는 단계; 패킷과 관련되는 시퀀스 식별자가 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있는 것으로 결정하는데 응답하여, 패킷이 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들과 순서대로 있는 것으로 결정하는 단계; 및 패킷과 관련되는 시퀀스 식별자는 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있지 않은 것으로 결정하는데 응답하여, 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들에 관하여 패킷이 순서를 벗어난 것으로 결정하는 단계를 더 포함한다.
[0010] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는 재-정렬 버퍼에서의 복수의 패킷들 중 하나 또는 그 초과를 저장하는 단계를 더 포함하며; 및 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하는 단계는 복수의 패킷들의 서브세트의 각각에 대해, 그 패킷을 재-정렬 버퍼에 이전에 저장되는 하나 또는 그 초과의 패킷들로 재정렬하는 단계를 더 포함한다.
[0011] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는 복수의 패킷들의 각각에 대해, 패킷과 관련되는 시퀀스 식별자에 기초하여, 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 복수의 패킷들의 최종 패킷에 대해 패킷이 더 이른 시퀀스에 있는지 여부를 결정하는 단계; 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 복수의 패킷들의 최종 패킷에 대해 패킷이 더 이른 시퀀스에 있는 것으로 결정하는데 응답하여, 제 1 네트워크 디바이스에서 패킷을 폐기하는 단계; 및 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 복수의 패킷들의 최종 패킷에 대해 패킷이 이후의 시퀀스에 있는 것으로 결정하는데 응답하여, 패킷과 관련되는 시퀀스 식별자에 기초하여 패킷을 재정렬하는 단계를 더 포함한다.
[0012] 일부 실시예들에서, 시퀀스 식별자들은 시퀀스 번호 및 타임스탬프 중 적어도 하나를 포함한다.
[0013] 일부 실시예들에서, 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하는데 응답하여, 방법은 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 적어도 복수의 패킷들의 서브세트를 제공하는 단계를 더 포함한다.
[0014] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림들과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는 복수의 패킷들과 관련되는 시퀀스 식별자들에 적어도 부분적으로 기초하여, 동일한 시퀀스 식별자와 관련되는 2개 또는 그 초과의 패킷들이 제 1 네트워크 디바이스에서 검출되는지 여부를 결정하는 단계; 및 동일한 시퀀스 식별자와 관련되는 2개 또는 그 초과의 패킷들이 제 1 네트워크 디바이스에서 검출되는 것으로 결정하는데 응답하여, 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하기 위해 동일한 시퀀스 식별자와 관련되는 2개 또는 그 초과의 패킷들 중 제 1 패킷을 제공하는 단계, 및 동일한 시퀀스 번호와 관련되는 2개 또는 그 초과의 패킷들의 나머지를 폐기하는 단계를 포함한다.
[0015] 일부 실시예들에서, 방법은: 통신 네트워크의 제 1 네트워크 디바이스에서, 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 통신 네트워크의 제 2 네트워크 디바이스에 패킷 스트림과 관련되는 복수의 패킷들을 전송하도록 결정하는 단계; 패킷 스트림과 관련되는 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계를 포함하며, 2차 시퀀스 식별자는 제 1 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되며; 및 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스에 복수의 패킷들을 전송하는 단계를 포함하며, 복수의 패킷들의 서브세트는 복수의 패킷 라우트들의 각각을 통해 전송되도록 스케줄링된다.
[0016] 일부 실시예들에서, 패킷 스트림과 관련되는 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계는 복수의 패킷들의 각각에 제 1 네트워크 디바이스의 상부 프로토콜 계층에 의해 삽입되는 1차 시퀀스 식별자에 더하여 2차 시퀀스 식별자를 삽입하는 단계; 또는 패킷 스트림과 관련되는 복수의 패킷들이 1차 시퀀스 식별자들을 포함하지 않는다는 것에 응답하여 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계를 포함한다.
[0017] 일부 실시예들에서, 제 2 패킷 스트림과 관련되는 하나 또는 그 초과의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계는 하나 또는 그 초과의 패킷들의 각각에 대해, 2차 시퀀스 식별자를 패킷의 헤더 필드에 삽입하는 단계; 및 제 2 네트워크 디바이스에 2차 시퀀스 식별자를 포함하는 패킷을 전송하는 단계를 더 포함한다.
[0018] 일부 실시예들에서, 패킷 스트림과 관련되는 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계는 복수의 패킷들의 각각에 대해, 패킷의 헤더 필드 및 패킷의 페이로드 중 적어도 하나에 기초하여 패킷을 고유하게 식별하는 패킷 서명을 결정하는 단계; 복수의 패킷들의 각각과 관련되는 대응하는 2차 시퀀스 식별자 및 복수의 패킷들의 각각과 관련되는 패킷 서명을 포함하는 시퀀스 목록 패킷을 발생시키는 단계; 하나 또는 그 초과의 패킷들이 제 1 네트워크 디바이스로부터 제 2 네트워크 디바이스로 전송될 순서를 표시하기 위해 시퀀스 목록 패킷을 제 2 네트워크 디바이스에 전송하는 단계; 및 시퀀스 목록 패킷에 표시되는 패킷 순서에 따라 제 2 네트워크 디바이스에 복수의 패킷들을 전송하는 단계를 더 포함한다.
[0019] 일부 실시예들에서, 방법은 제 1 네트워크 디바이스에서, 복수의 패킷 라우트들 중 두 번째 대신에 복수의 패킷 라우트들 중 제 1 패킷 라우트를 통해 복수의 패킷들 중 하나 또는 그 초과를 전송하도록 결정하는 단계; 제 2 패킷 라우트를 통해 복수의 패킷들 중 제 1 패킷을 전송하는 단계를 더 포함하며, 복수의 패킷들 중 제 1 패킷은 제 2 패킷 라우트를 통해 전송될 최종 패킷이며; 제 2 패킷 라우트를 통해 복수의 패킷들 중 제 1 패킷을 전송하는데 응답하여 미리 결정된 시간 간격 동안 제 1 패킷 라우트 및 제 2 패킷 라우트를 통해 복수의 패킷들 중 후속하는 패킷들의 전송을 방지하는 단계를 더 포함하며, 복수의 패킷들 중 제 1 패킷은 제 2 패킷 라우트를 통해 전송될 최종 패킷이며; 미리 결정된 시간 간격이 경과한 후에 제 1 패킷 라우트를 통해 복수의 패킷들 중 후속하는 패킷들을 전송하는 단계를 더 포함한다.
[0020] 일부 실시예들에서, 통신 네트워크 디바이스는 하나 또는 그 초과의 네트워크 인터페이스들; 및 하나 또는 그 초과의 네트워크 인터페이스들과 커플링되는 재정렬 유닛을 포함하며, 재정렬 유닛은: 통신 네트워크 디바이스와 제 2 통신 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 제 2 통신 네트워크 디바이스로부터 통신 네트워크 디바이스에서 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하도록 동작가능하며, 복수의 패킷들의 서브세트는 복수의 패킷 라우트들의 각각을 통해 수신되며; 복수의 패킷들과 관련되는 시퀀스 식별자들에, 적어도 부분적으로 기초하여 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록; 및 재정렬 유닛이 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는데 응답하여 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하도록 동작가능하다.
[0021] 일부 실시예들에서, 통신 네트워크 디바이스와 제 2 통신 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 제 2 통신 네트워크 디바이스로부터 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하도록 동작가능한 재정렬 유닛은 복수의 패킷들의 각각이 제 2 통신 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함하는지 여부를 결정하도록; 재정렬 유닛은 복수의 패킷들의 각각이 제 2 통신 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하도록; 재정렬 유닛은 복수의 패킷들의 각각이 2차 시퀀스 식별자를 포함하지 않는 것으로 결정하는데 응답하여, 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자를 결정하도록 동작가능한 재정렬 유닛을 더 포함하며, 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자는 제 2 통신 네트워크 디바이스의 상부 프로토콜 계층들에 의해 삽입된다.
[0022] 일부 실시예들에서, 재정렬 유닛은 복수의 패킷들의 각각이 제 2 통신 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하도록 동작가능한 재정렬 유닛은 복수의 패킷들의 각각에 대해, 패킷의 하나 또는 그 초과의 헤더 필드들로부터 2차 시퀀스 식별자를 판독하도록 동작가능한 재정렬 유닛을 더 포함한다.
[0023] 일부 실시예들에서, 재정렬 유닛은 복수의 패킷들의 각각이 제 2 통신 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하도록 동작가능한 재-정렬 유닛은 복수의 패킷들의 각각에 대해, 패킷의 헤더 필드 및 패킷의 페이로드 중 적어도 하나에 기초하여 패킷의 패킷 서명을 결정하도록; 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하도록, 시퀀스 목록 패킷은 패킷 스트림의 복수의 패킷들의 대응하는 각각과 관련되는 대응하는 복수의 시퀀스 식별자들 및 복수의 패킷 서명들을 포함하며, 시퀀스 목록 패킷은 제 2 통신 네트워크 디바이스로부터 통신 네트워크 디바이스에 제공되며; 재정렬 유닛이 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 것에 기초하여 패킷의 패킷 서명이 시퀀스 목록 패킷에서의 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것으로 결정하도록; 및 재정렬 유닛은 패킷의 패킷 서명이 시퀀스 목록 패킷에서의 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것으로 결정하는데 응답하여, 패킷과 관련되는 시퀀스 식별자로서 복수의 패킷 서명들 중 제 1 패킷 서명에 대응하는 복수의 시퀀스 식별자들 중 제 1 시퀀스 식별자를 식별하도록 동작가능한 재정렬 유닛을 더 포함한다.
[0024] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록 동작가능한 재정렬 유닛은 복수의 패킷들의 각각에 대해, 패킷과 관련되는 시퀀스 식별자가 통신 네트워크 디바이스에서 이전에 수신되는 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자와 시퀀스로 있는지 여부를 결정하도록; 재정렬 유닛은 패킷과 관련되는 시퀀스 식별자가 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자와 시퀀스로 있는 것으로 결정하는데 응답하여, 패킷은 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들과 순서대로 있는 것으로 결정하도록; 및 재정렬 유닛은 패킷과 관련되는 시퀀스 식별자가 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있지 않은 것으로 결정하는데 응답하여, 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들에 관하여 패킷이 순서를 벗어난 것으로 결정하도록 동작가능한 재정렬 유닛을 더 포함한다.
[0025] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록 동작가능한 재정렬 유닛은 재정렬 버퍼에 복수의 패킷들 중 하나 또는 그 초과를 저장하도록 동작가능한 재정렬 유닛을 더 포함하며; 및 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하도록 동작가능한 재정렬 유닛은 복수의 패킷들의 서브세트의 각각에 대해, 그 패킷을 재정렬 버퍼에 이전에 저장되는 하나 또는 그 초과의 패킷들로 재정렬하도록 동작가능한 재정렬 유닛을 더 포함한다.
[0026] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록 동작가능한 재-정렬 유닛은 복수의 패킷들의 각각에 대해, 패킷과 관련되는 시퀀스 식별자에 기초하여, 통신 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 복수의 패킷들의 최종 패킷에 대해 패킷이 더 이른 시퀀스에 있는지 여부를 결정하도록; 재정렬 유닛이 통신 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 복수의 패킷들의 최종 패킷에 대해 패킷이 더 이른 시퀀스에 있는 것으로 결정하는데 응답하여, 통신 네트워크 디바이스에서 패킷을 폐기하도록; 및 제 1 통신 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 복수의 패킷들의 최종 패킷에 대해 패킷이 이후의 시퀀스에 있는 것으로 결정하도록 동작가능한 재정렬 유닛에 응답하여, 패킷과 관련되는 시퀀스 식별자에 기초하여 패킷을 재정렬하도록 동작가능한 재정렬 유닛을 더 포함한다.
[0027] 일부 실시예들에서, 그 내부에 저장되는 명령들을 갖는 하나 또는 그 초과의 기계-판독가능한 저장 매체는 하나 또는 그 초과의 프로세서들에 의해 실행될 때 하나 또는 그 초과의 프로세서들로 하여금: 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스로부터 제 1 네트워크 디바이스에서 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하는 단계를 포함하며, 복수의 패킷들의 서브세트는 복수의 패킷 라우트들의 각각을 통해 수신되며; 복수의 패킷들과 관련되는 시퀀스 식별자들에 적어도 부분적으로 기초하여, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계; 및 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는데 동작에 응답하여 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬하는 단계를 포함하는 동작들을 수행하게 한다.
[0028] 일부 실시예들에서, 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스로부터 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하는 동작은 복수의 패킷들의 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함하는지 여부를 결정하는 단계를 더 포함하며; 복수의 패킷들 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하는 단계; 및 복수의 패킷들 각각이 2차 시퀀스 식별자를 포함하지 않는 것으로 결정하는데 응답하여, 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자를 결정하는 단계를 더 포함하며, 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자는 제 2 네트워크 디바이스의 상부 프로토콜 계층들에 의해 삽입된다.
[0029] 일부 실시예들에서, 복수의 패킷들 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하는 동작은 복수의 패킷들 각각에 대해, 패킷의 하나 또는 그 초과의 헤더 필드들로부터 2차 시퀀스 식별자를 판독하는 단계를 더 포함한다.
[0030] 일부 실시예들에서, 복수의 패킷들의 각각이 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 복수의 패킷들의 각각과 관련되는 2차 시퀀스 식별자를 결정하는 동작은 복수의 패킷들의 각각에 대해, 패킷의 헤더 필드 및 패킷의 페이로드 중 적어도 하나에 기초하여 패킷의 패킷 서명을 결정하는 단계; 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 단계를 더 포함하며, 시퀀스 목록 패킷은 패킷 스트림의 복수의 패킷들의 대응하는 각각과 관련되는 대응하는 복수의 시퀀스 식별자들 및 복수의 패킷 서명들을 포함하며, 시퀀스 목록 패킷은 제 2 네트워크 디바이스로부터 제 1 네트워크 디바이스에 제공되며; 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 동작에 기초하여 패킷의 패킷 서명이 시퀀스 목록 패킷에서의 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것으로 결정하는 단계; 및 패킷의 패킷 서명은 시퀀스 목록 패킷에서의 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것으로 결정하는 동작에 응답하여, 패킷과 관련되는 시퀀스 식별자로서 복수의 패킷 서명들 중 제 1 패킷 서명에 대응하는 복수의 시퀀스 식별자들 중 제 1 시퀀스 식별자를 식별하는 단계를 더 포함한다.
[0031] 일부 실시예들에서, 복수의 패킷 라우트들을 통해 수신되는 패킷들 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 동작은 복수의 패킷들의 각각에 대해, 패킷과 관련되는 시퀀스 식별자가 제 1 네트워크 디바이스에서 이전에 수신되는 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있는지 여부를 결정하는 단계; 패킷과 관련되는 시퀀스 식별자가 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있는 것으로 결정하는데 응답하여, 패킷은 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들과 순서대로 있는 것으로 결정하는 단계; 및 패킷과 관련되는 시퀀스 식별자가 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있지 않은 것으로 결정하는데 응답하여, 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들에 관하여 패킷이 순서를 벗어난 것으로 결정하는 단계를 더 포함한다
[0032] 본 실시예들은 첨부하는 도면들을 참조함으로써 더 잘 이해될 수 있으며, 수많은 목적들, 특징들 및 장점들이 당업자에게 명백하게 이루어진다.
[0033] 도 1은 하이브리드 통신 네트워크에서 예시적인 패킷 재정렬 메커니즘을 예시하는 블록도이다;
[0034] 도 2는 다수의 네트워킹 인터페이스들을 구현하는 하이브리드 디바이스에 대한 예시적인 프로토콜 스택을 예시하는 개념도이다.
[0035] 도 3은 소스 하이브리드 디바이스로부터 목적지 하이브리드 디바이스에 전송되는 패킷들과 관련되는 전송 순서를 표시하기 위한 예시적인 동작들을 예시하는 흐름도이다.
[0036] 도 4는 목적지 하이브리드 디바이스에서 순서를 벗어난 패킷들을 검출하고 재정렬하기 위한 예시적인 동작들을 예시하는 흐름도이다.
[0037] 도 5는 도 4의 계속이며 또한 목적지 하이브리드 디바이스에서 순서를 벗어난 패킷들을 검출하고 재정렬하기 위한 예시적인 동작들을 도시한다.
[0038] 도 6은 하이브리드 통신 네트워크에서 패킷 재정렬을 위한 메커니즘을 포함하는 전자 디바이스의 일 실시예의 블록도이다.
[0039] 다음의 설명은 본 발명 대상의 기술들을 구체화하는 예시적인 시스템들, 방법들, 기술들, 명령 시퀀스들 및 컴퓨터 프로그램 물건들을 포함한다. 그러나, 설명되는 실시예들이 이들 특정 상세들 없이 실시될 수 있음이 이해된다. 예를 들어, 일부 실시예들에서 패킷 정렬 메커니즘은 무선 로컬 영역 네트워크(WLAN) 디바이스들(예를 들어, IEEE 802.11 디바이스들), 파워라인 네트워크 디바이스들(예를 들어, 홈플러그 AV) 및 이더넷 디바이스들을 포함하는 하이브리드 통신 네트워크들을 위해 구현될 수 있더라도, 다른 실시예들에서 패킷 정렬 메커니즘은 다른 표준들/프로토콜들(예를 들어, WiMAX 등)을 구현하는 다른 적합한 타입들의 네트워크 디바이스들을 포함할 수 있는 하이브리드 통신 네트워크들에서 구현될 수 있다. 다른 사례들에서, 잘-알려진 명령 인스턴스들, 프로토콜들, 구조들 및 기술들은 설명을 모호하지 않게 하기 위해 상세하게 도시되지 않는다.
[0040] 소스 통신 디바이스는 전형적으로 패킷들의 정렬된 시퀀스로 목적지 통신 디바이스에 데이터를 전송한다. 수신된 데이터를 분석하는 일부로서, 목적지 통신 디바이스는 전형적으로 패킷들이 소스 통신 디바이스에 의해 전송되는 동일한 순서로 프로세싱됨을 보장한다. 소스 및 목적지 통신 디바이스들은 서로 통신하기 위한 단일 인터페이스만을 활용하기 때문에 전형적인 통신 네트워크들은 전형적으로 2개의 통신 디바이스들 사이의 네트워크를 통해 단일 라우트를 제공한다. 그러나, 하이브리드 통신 네트워크들은 서로 다른 네트워크 기술들 및 통신 매체에 걸쳐 통신 네트워크 세그먼트들(또는 서브-네트워크들)의 상호접속으로서 형성된다. 하이브리드 통신 네트워크들은 다수의 네트워크 인터페이스들을 가지며 서로 다른 네트워크 기술들에 걸쳐 동작하도록 구성되는 하이브리드 디바이스들을 포함할 수 있다. 하이브리드 디바이스들은 하이브리드 통신 네트워크를 통해 패킷들을 전송/수신하기 위해 다수의 네트워크 인터페이스들 중 임의의 하나를 이용할 수 있다. 결과적으로, 다수의 라우트들이 소스 하이브리드 디바이스와 목적지 하이브리드 디바이스 사이에 존재할 수 있다. 예를 들어, 소스 및 목적지 하이브리드 디바이스들 각각이 3개의 네트워크 인터페이스들을 포함하는 경우에, 적어도 9개의 라우트들이 소스와 목적지 하이브리드 디바이스들 사이에 존재할 수 있다. 하이브리드 통신 네트워크는 소스와 목적지 하이브리드 디바이스들 사이에 다수의 라우트들을 제공할 수 있기 때문에, 그리고 소스 하이브리드 디바이스는 동일한 패킷 스트림과 관련되는 패킷들을 전송하기 위해 동시적으로 다수의 네트워크 인터페이스들(및 다수의 패킷 라우트들)을 이용할 수 있기 때문에, 하나 또는 그 초과의 패킷들은 목적지 하이브리드 디바이스에서 순서를 벗어나 도달할 수 있다. 순서를 벗어난 패킷 도달은 상부 프로토콜 계층들의 동작들 또는 목적지 하이브리드 디바이스의 애플리케이션들을 손상시킬 수 있다. 순서를 벗어난 패킷들을 관리하기 위한 기존의 기술들은 전형적으로 통신 디바이스들 사이의 단일 라우트만을 제공하는 종래의 통신 네트워크들에 대해, 또는 다수의 라우트들이 이용가능하더라도 단일 라우트만을 이용하는 통신 디바이스들에 대한 단일 네트워크 인터페이스를 포함하는 종래의 통신 디바이스들을 위해 최적화된다. 순서를 벗어난 패킷들을 관리하기 위한 일부 프로토콜들에서, 순서를 벗어난 패킷 도달은 소스 디바이스에서의 혼잡 제어를 트리거할 수 있으며, 이는 차례로, 혼잡 제어 스로틀링(throtlling) 메커니즘들로 인한 낮은 스루풋을 발생시킬 수 있다. 더욱이, 목적지 하이브리드 디바이스에 의해 사용되는 일부 통신 프로토콜들(예를 들어, 사용자 데이터그램 프로토콜(UDP))은 인빌트(inbuilt) 패킷 재정렬 메커니즘들을 포함하지 않을 수 있다. 목적지 하이브리드 디바이스에서 순서를 벗어난 패킷들을 관리하기 위한 신뢰성 있는 메커니즘들의 부재는 하이브리드 디바이스들의 성능 및 스루풋을 감소시킬 수 있다.
[0041] 일부 실시예들에서, 하이브리드 디바이스들은 패킷들의 스트림을 전달하기 위해 다수의 라우트들을 이용하는 것으로부터 발생하는 순서를 벗어난 패킷 도달을 관리하기 위한 메커니즘을 구현할 수 있다. 일 실시예에서, 소스 하이브리드 디바이스는 목적지 하이브리드 디바이스에 전송되도록 스케줄링되는 각 패킷과 관련되는 시퀀스 식별자를 표시할 수 있다. 소스 하이브리드 디바이스는 또한 전송되도록 스케줄링되는 패킷들의 각각과 관련되는 패킷 스트림을 결정할 수 있다. 패킷 스트림에 기초하여, 소스 하이브리드 디바이스는 패킷들을 전송하기 위해 복수의 패킷 라우트들로부터의 2개 또는 그 초과의 패킷 라우트들을 결정할 수 있다. 소스 하이브리드 디바이스는 동일한 패킷 스트림과 관련되는 패킷들을 전송하기 위해 다수의 패킷 라우트들 사이를 능동적으로 스위칭할 수 있다. 패킷을 수신하는데 응답하여, 목적지 하이브리드 디바이스는 동일한 패킷 스트림과 관련되며 다수의 패킷 라우트들을 통해 수신되는 패킷들을 식별할 수 있다. 목적지 하이브리드 디바이스는 수신된 패킷이 순서를 벗어나는지 여부를 결정하기 위해 수신되는 패킷과 관련되는 시퀀스 식별자 및 (동일한 패킷 스트림에 속하는) 이전에 수신되는 패킷들과 관련되는 시퀀스 식별자들을 이용할 수 있다. 시퀀스 식별자들에 기초하여, 목적지 하이브리드 디바이스는 패킷 스트림과 관련되는 패킷들을 재정렬할 수 있으며 후속하는 프로세싱을 위한 적절한 순서로 패킷들을 릴리즈(release)할 수 있다. 본원에 설명된 바와 같이, 시퀀스 식별자들에 기초하여 순서를 벗어난 패킷들을 재정렬하기 위한 그리고 패킷 순서를 표시하기 위한 이들 및 다른 메커니즘들은 목적지 하이브리드 디바이스가 동일한 패킷 스트림과 관련되는 패킷들을 전송하기 위해 다수의 패킷 라우트들을 이용하는 것으로 발생할 수 있는 순서를 벗어난 패킷 도달을 관리하게 할 수 있다.
[0042] 도 1은 하이브리드 통신 네트워크(100)에서의 예시적인 패킷 재정렬 메커니즘을 예시하는 블록도이다. 하이브리드 통신 네트워크(100)는 하이브리드 디바이스들(102 및 112) 및 포워딩 디바이스들(120 및 122)을 포함한다. 하이브리드 디바이스(102)는 전송기 유닛(104) 및 수신기 유닛(106)을 포함한다. 전송기 유닛(104)은 시퀀스 표시 유닛(108) 및 라우팅 유닛(110)을 포함한다. 하이브리드 디바이스(112)는 또한 전송기 유닛(114) 및 수신기 유닛(115)을 포함한다. 수신기 유닛(115)은 재정렬 유닛(116) 및 재정렬 버퍼(118)를 포함한다. 도 1에 도시되지 않더라도, 하이브리드 디바이스(102)의 수신기 유닛(106)은 재정렬 유닛 및 재정렬 버퍼를 포함할 수 있다. 유사하게, 도 1에 도시되지 않더라도, 하이브리드 디바이스(112)의 전송기 유닛(114)은 또한 시퀀스 표시 유닛 및 라우팅 유닛을 포함할 수 있다. 포워딩 디바이스들(120 및 122)은 종래의(또한 레거시라 알려지는) 통신 디바이스들 또는 하이브리드 통신 디바이스들일 수 있다. 일부 구현들에서, 하이브리드 디바이스들(102 및 110)은 그 각각이 하이브리드 디바이스를 통신 네트워크의 서로 다른 세그먼트들(본원에서 통신 네트워크 세그먼트들 또는 네트워크 세그먼트들로 지칭됨)에 접속하는 다수의 네트워크 인터페이스들을 포함할 수 있다. 예를 들어, 하이브리드 디바이스들(102 및 110)은 각각 하이브리드 디바이스들이 파워라인 통신 네트워크 세그먼트, 이더넷 및 WLAN 각각에 접속하게 할 수 있는 3개의 네트워크 인터페이스들(예를 들어, 파워라인 인터페이스, 이더넷 인터페이스 및 WLAN 인터페이스)을 포함할 수 있다.
[0043] 일 구현에서, 도 2에 도시된 바와 같이, 하이브리드 디바이스들(102 및 110)의 네트워킹 기능은 국제 표준들 기구(International Standards Organization: ISO) 개방 시스템들 상호접속(Open Systems Interconnection: OSI) 기준 모델에 일치하는, "계층된" 방식을 이용하여 서브-기능들로 분할될 수 있다. 네트워킹 프로토콜 계층들의 세트는 "프로토콜 스택"으로 지칭될 수 있다. 도 2는 다수의 네트워킹 인터페이스들을 구현하는 하이브리드 디바이스들에 대한 예시적인 프로토콜 스택(200)을 도시한다. 도 2의 프로토콜 스택이 소스 하이브리드 디바이스(102)의 관점에서 설명되더라도, 목적지 하이브리드 디바이스(112)는 또한 도 2에 도시된 바와 같은 동일한(또는 유사한) 프로토콜 스택을 구현할 수 있음이 주목된다. 도 2의 예시적인 프로토콜 스택(200)에서, 하이브리드 디바이스는 2개의 통신 인터페이스들과 관련된다. 따라서, 프로토콜 스택(200)은 2개의 물리적(PHY) 계층들(202 및 204) 및 대응하는 2개의 매체 액세스 제어(MAC) 계층들(206 및 208)을 포함한다. MAC 계층(206) 및 PHY(202) 계층은 하이브리드 디바이스를 하나의 통신 네트워크 세그먼트(222)(예를 들어, 이더넷)에 커플링한다. 유사하게, MAC 계층(208) 및 PHY 계층(204)은 하이브리드 디바이스를 다른 통신 네트워크 세그먼트(224)(예를 들어, 파워라인 통신 네트워크)에 커플링한다. 통신 네트워크 세그먼트들(222 및 204)은 각각 하이브리드 통신 네트워크와 같은 확장되는 브리징된 네트워크의 일부분일 수 있다. 프로토콜 스택(200)은 네트워크 계층(212)을 포함한다. 네트워크 계층(212)은 인터넷 프로토콜 버전 4(IPv4) 통신 프로토콜, 인터넷 프로토콜 버전 6(IPv6) 통신 프로토콜, AppleTalk® 통신 프로토콜, 또는 다른 적합한 네트워크 계층 프로토콜을 구현할 수 있다. 프로토콜 스택(200)은 또한 네트워크 계층(212)과 MAC 계층들(206 및 208) 사이의 "하이브리드 적응 계층"(210)을 포함한다. 일 예에서, 도 2에 도시된 바와 같이, 하이브리드 적응 계층(210)은 시퀀스 표시 유닛(108), 라우팅 유닛(110), 재정렬 유닛(116) 및 패킷들의 전송 순서를 표시하기 위한 그리고 순서를 벗어난 패킷들을 재정렬하기 위한 다른 기능을 포함할 수 있다. 도 1 및 3-5에 이하에 더 설명되는 바와 같이, 시퀀스 표시 유닛(108)은 패킷들이 하이브리드 디바이스로부터 전송되는(또는 전송될) 시퀀스를 결정하고 표시할 수 있다. 라우팅 유닛(110)은 목적지 디바이스에 패킷 스트림과 관련되는 패킷들을 전송하기 위해 2개 또는 그 초과의 패킷 라우트들을 결정할 수 있다. 패킷 스트림은 동일한 애플리케이션과 관련되며 동일한 통신 접속 또는 세션의 일부인 데이터를 전달하는 패킷들의 시퀀스를 포함할 수 있다. 하이브리드 통신 네트워크(100)를 통해 (패킷 스트림과 관련되는) 패킷들을 수신하는데 응답하여, 재정렬 유닛(116)은 수신된 패킷들과 관련되는 시퀀스 번호를 결정하기 위한, 하이브리드 디바이스에서의 순서를 벗어난 패킷 도달을 검출하기 위한, 그리고 순서를 벗어난 패킷들을 재정렬하기 위한(필요한 경우) 동작들을 실행할 수 있다. 프로토콜 스택(200)은 또한 네트워크 계층(212)에 걸쳐 동작하는 전송 계층(214)을 포함한다. 전송 계층(214)은 하이브리드 디바이스에 의해 구현되는 네트워크 계층 프로토콜에 따라 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP) 또는 다른 적합한 전송 계층 프로토콜들을 포함할 수 있다. 프로토콜 스택(200)은 또한 다른 디바이스들과의 통신을 위해 다른 프로토콜 계층들(202-214)을 활용하는 3개의 애플리케이션들(216, 218 및 220)을 도시한다.
[0044] 일부 구현들에서, 애플리케이션 계층(애플리케이션들(216, 218 및 220)을 포함함), 전송 계층(214) 및 네트워크 계층(212)은 집합적으로 "상부 프로토콜 계층들"로 지칭될 수 있다. MAC 계층들(206 및 208) 및 PHY 계층들(202 및 204)은 집합적으로 "하부 프로토콜 계층들"로 지칭될 수 있다. 하이브리드 적응 계층(210)은 단일 세트의 상부 프로토콜 계층들(예를 들어, 구현되는 각 네트워크 프로토콜 타입에 대한 단일 네트워크 계층(212) 및 구현되는 각 전송 프로토콜 타입을 위한 단일 전송 계층(214))을 갖지만 다수의 네트워킹 인터페이스들(예를 들어, 다수의 PHY 계층들 및 MAC 계층들)을 갖는 하이브리드 디바이스에서의 통신들을 관리하기 위한 기능을 구현할 수 있다. 일 구현에서, 하이브리드 적응 계층(210)은 네트워킹 자원들을 관리하기 위해 그리고 프로토콜 스택의 상부 계층들에 투명한 급속 패킷 라우트 변경들을 행하기 위해 하부 MAC 계층들(206 및 208)과 인터페이스할 수 있다. 하이브리드 적응 계층(210)은 또한 상부 프로토콜 계층들로 하여금 소스 하이브리드 디바이스(102)가 단지 단일 MAC 계층 및 대응하는 단일 PHY 계층을 포함하는 것처럼 동작하게 할 수 있다. 도 2에 도시되는 프로토콜 스택(200)은 하이브리드 디바이스들(102 및 110)의 아키텍처의 일 실시예를 예시하는 것이 주목된다. 다른 구현들에서, 하이브리드 디바이스들(102 및 110)은 구현될 수 있는 네트워킹 기술 및 임의선택적 프로토콜들에 따라, 다른 적합한 계층들 또는 서브-계층들을 포함할 수 있다. 예를 들어, 일부 네트워킹 기술들은 MAC 계층 위의 이더넷 수렴 계층을 구현할 수 있다. 다른 예로서, 일부 네트워킹 기술들은 논리적 링크 제어(LLC) 프로토콜 계층을 포함할 수 있다. 더욱이, 하나 또는 그 초과의 다른 서브-계층들은 도 1, 3-6에서 본원에 설명되는 기능을 실행할 수 있다. 도 1을 다시 참조하면, 하이브리드 디바이스(102)("소스 하이브리드 디바이스")는 하이브리드 디바이스(112)("목적지 하이브리드 디바이스")에서 (스테이지들 B-D에 설명되는) 패킷 재정렬을 가능하게 하기 위해, 스테이지 A에서 설명되는 바와 같이, 패킷들의 시퀀스의 표시를 제공할 수 있다.
[0045] 스테이지 A에서, 소스 하이브리드 디바이스(102)의 시퀀스 표시 유닛(108)은 2개 또는 그 초과의 패킷 라우트들을 통해 목적지 하이브리드 디바이스(112)에 전송되는 패킷 스트림과 관련되는 복수의 패킷들의 각각에 시퀀스 식별자를 삽입하도록 결정한다. 시퀀스 식별자는 타임 스탬프, 시퀀스 번호, 또는 다른 타입의 시퀀스 식별자일 수 있다. 일부 구현들에서, 소스 하이브리드 디바이스(102)의 상부 프로토콜 계층들(예를 들어, 전송 프로토콜 계층(214))은 패킷들을 하이브리드 적응 계층(210)에 제공하기 전에, 목적지 하이브리드 디바이스(1120)에 전송되도록 스케줄링되는 패킷들에 시퀀스 식별자들을 삽입할 수 있다. 상부 프로토콜 계층들에 의해 삽입되는 시퀀스 식별자들은 본원에서 "1차 시퀀스 식별자들"로 지칭된다. 스테이지 A에서, 하이브리드 적응 계층(210)의 시퀀스 표시 유닛(108)은 1차 시퀀스 식별자와 구별되는 패킷들의 각각에 (예를 들어, 하이브리드 적응 계층(210)에 의해 발생되는) 시퀀스 식별자를 추가할지 여부를 결정할 수 있다. 하이브리드 적응 계층(210)(즉, 시퀀스 표시 유닛(108))에 의해 발생되고 삽입되는 시퀀스 식별자들은 본원에서 "2차 시퀀스 식별자들"로 지칭된다. 도 3을 참조하여 이하에 더 설명되는 바와 같이, 시퀀스 표시 유닛(108)은 패킷들이 1차 시퀀스 식별자들을 포함하는지 여부 및 패킷들과 관련되는 2차 시퀀스 식별자들을 추가할지 여부를 결정할 수 있다.
[0046] 일부 구현들에서, 하이브리드 통신 네트워크(100)는 소스 하이브리드 디바이스(102)와 목적지 하이브리드 디바이스(112) 사이의 다수의 패킷 라우트들을 제공할 수 있다. 도 1의 예에 도시된 바와 같이, 하이브리드 통신 네트워크(100)는 포워딩 디바이스들(120 및 122)을 통해 소스 하이브리드 디바이스(102)와 목적지 하이브리드 디바이스(112) 사이의 3개의 패킷 라우트들을 제공할 수 있다. 패킷 라우트(124)를 따라 패킷들을 전송하기 위해, 소스 하이브리드 디바이스(102)는 패킷들을 포워딩 디바이스(120)에 전송하며, 차례로 패킷들을 목적지 하이브리드 디바이스(112)에 전송한다. 패킷 라우트(126)를 따라 패킷들을 전송하기 위해, 소스 하이브리드 디바이스(102)는 패킷들을 포워딩 디바이스(122)에 전송하며, 차례로, 패킷들을 목적지 하이브리드 디바이스(112)에 전송한다. 패킷 라우트(128)를 따라 패킷들을 전송하기 위해, 소스 하이브리드 디바이스(102)는 패킷들을 포워딩 디바이스(120)에 전송한다. 포워딩 디바이스(120)는 패킷들을 포워딩 디바이스(122)에 전송하며, 차례로 패킷들을 목적지 하이브리드 디바이스(112)에 전송한다. 일부 구현들에서, 도 1에 도시된 바와 같이, 패킷 라우트들(124, 126 및 128)은 소스 하이브리드 디바이스(102)로부터 목적지 하이브리드 디바이스(122)에 패킷을 라우팅하는 포워딩 디바이스들(및 다른 중간 통신 디바이스들)에서 다를 수 있다. 다른 구현들에서, 패킷 라우트들(124, 126 및 128)은 또한 패킷들이 전송되는 네트워크 인터페이스("소스 통신 인터페이스"), 패킷들이 수신되는 네트워크 인터페이스("목적지 통신 인터페이스"), 및/또는 패킷들이 전송되는 통신 네트워크 세그먼트들에서 다를 수 있다. 도 3에 더 설명되는 바와 같이, 일부 구현들에서, 라우팅 유닛(110)은 패킷 라우트들의 각각과 관련되는 라우트 특성들(예를 들어, 트래픽, 혼잡, 성능 등)에 적어도 부분적으로 기초하여 특정 패킷 스트림과 관련되는 패킷들을 전송하기 위한 다수의 패킷 라우트들 사이를 스위칭할 수 있다. 다른 구현에서, 라우팅 유닛(110)은 전송되는 패킷들과 관련되는 패킷 스트림에 적어도 부분적으로 기초하여 패킷들을 목적지 하이브리드 디바이스(112)에 전송하기 위한 2개 또는 그 초과의 패킷 라우트들을 선택할 수 있다. 시퀀스 표시 유닛(108)이 전송되도록 스케줄링되는 패킷들에 2차 시퀀스 식별자들을 삽입한 후에, 라우팅 유닛(110)은 (예를 들어, 2개 또는 그 초과의 선택된 패킷 라우트들 사이의 패킷들의 전송을 교번함으로써) 선택된 패킷 라우트들을 통해 목적지 하이브리드 디바이스(112)에 패킷들을 전송할 수 있다. 목적지 하이브리드 디바이스(112)는 패킷들을 수신할 수 있으며 시퀀스 식별자들에 적어도 부분적으로 기초하여, (필요한 경우에) 수신된 패킷들을 재정렬하기 위해 스테이지들 B-D에서 이하에 설명되는 동작들을 실행할 수 있다.
[0047] 스테이지 B에서, 목적지 하이브리드 디바이스(112)의 재정렬 유닛(116)은 복수의 수신되는 패킷들과 관련되는 시퀀스 식별자들에 적어도 부분적으로 기초하여 2개 또는 그 초과의 패킷 라우트들을 통해 소스 하이브리드 디바이스로부터 수신되는 패킷 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출한다. 2개 또는 그 초과의 패킷 라우트들을 통해 소스 하이브리드 디바이스(102)로부터 복수의 패킷들을 수신하는데 응답하여, 재정렬 유닛(116)은 각 수신되는 패킷과 관련되는 시퀀스 식별자를 판독할 수 있다. 일부 구현들에서, 재정렬 유닛(116)은 수신되는 패킷과 관련되는 시퀀스 식별자를 동일한 패킷 스트림과 관련되는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 시퀀스 식별자들(예를 들어, 최종 수신된 패킷과 관련되는 시퀀스 식별자)과 비교할 수 있다. 따라서, 재정렬 유닛(116)은 수신되는 패킷이 이전에 수신되는 패킷들에 관하여 순서를 벗어나는지 여부 및 재정렬 동작들이 실행되어야 하는지 여부를 결정할 수 있다. 예를 들어, 특정 패킷 스트림에 대해, 재정렬 유닛(116)은 시퀀스 번호 "7"을 갖는 패킷을 수신한 후에 시퀀스 번호 "5"를 갖는 패킷을 수신할 수 있다. 결과적으로, 재정렬 유닛(116)은 (시퀀스 번호 5를 갖는) 수신되는 패킷이 이전에 수신되는 패킷들과 시퀀스로 있지 않은 것으로 결정할 수 있다.
[0048] 스테이지 C에서, 재정렬 유닛(116)은 2개 또는 그 초과의 패킷 라우트들을 통해 수신되는 패킷 스트림과 관련되는 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는데 응답하여 복수의 패킷들과 관련되는 시퀀스 식별자들에 기초하여 적어도 복수의 패킷들의 서브세트를 재정렬한다. 일부 구현들에서, 동일한 패킷 스트림의 이전에 수신되는 패킷들과 시퀀스로 있지 않는 각 수신되는 패킷에 대해, 재정렬 유닛(116)은 시퀀스 번호들에 기초하여 올바른 순서를 재설정할 수 있을 때까지 재정렬 버퍼(118)에 수신되는 패킷을 저장한다. 재정렬 유닛(116)은 재정렬 버퍼(118)에 하나 또는 그 초과의 이전에 수신되는 패킷들 및 수신되는 패킷을 재정렬하기 위해 임의의 적합한 재정렬 기술들을 실행할 수 있다. 일부 구현들에서, 도 4-5에 더 설명되는 바와 같이, 수신되는 패킷이 이전에 수신되는 패킷들과 시퀀스로 있지 않는 것으로 결정하는데 응답하여, 재정렬 유닛(116)은 시퀀스에서의 후속적인 패킷들이 상부 프로토콜 계층들에 의한 프로세싱을 위해 제공된 후에 패킷이 수신되는지 여부를 결정할 수 있다. 그렇다면, 재정렬 유닛(116)은 수신되는 패킷을 폐기할 수 있다. 그렇지 않으면, 재정렬 유닛(116)은 재정렬 버퍼(118)에 패킷을 저장할 수 있으며 재정렬 버퍼(118)에 패킷들을 재정렬할 수 있다.
[0049] 스테이지 D에서, 재정렬 유닛(116)은 후속적인 프로세싱을 위해 수신되는 패킷(들)을 제공하도록 결정하는데 응답하여 재정렬 버퍼(118)에 저장되는 수신되는 패킷들의 각각을 릴리즈한다. 도 5에 더 설명되는 바와 같이, 재정렬 유닛(116)은 미리 결정된 시간 간격 후에, 또는 재정렬 버퍼(118)가 임계값 용량에 도달할 때 하나 또는 그 초과의 패킷들이 재정렬 버퍼(118)에서 시퀀스로 있는 것으로 결정하는데 응답하여 상부 프로토콜 계층들에 의한 후속적인 프로세싱을 위해 하나 또는 그 초과의 패킷들을 제공할 수 있다.
[0050] 도 3은 소스 하이브리드 디바이스로부터 목적지 하이브리드 디바이스에 전송되는 패킷들과 관련되는 전송 순서를 표시하기 위한 예시적인 동작들을 예시하는 흐름도("흐름")(300)이다. 흐름(300)은 도 3에서의 블록(302)에서 시작한다.
[0051] 블록(302)에서, 소스 하이브리드 디바이스는 목적지 하이브리드 디바이스에 복수의 패킷들을 전송하도록 결정한다. 도 1의 예를 참조하면, 소스 하이브리드 디바이스(102)는 목적지 하이브리드 디바이스(112)에 복수의 패킷들을 전송하도록 결정할 수 있다. 흐름은 블록(304)에서 계속한다.
[0052] 블록(304)에서, 목적지 하이브리드 디바이스에 전송되도록 스케줄링되는 복수의 패킷들에 2차 시퀀스 식별자들을 추가할지 여부가 결정된다. 상술한 바와 같이, 일부 구현들에서, 하이브리드 적응 계층(210)에 패킷들을 제공하기 전에, 소스 하이브리드 디바이스(102)의 상부 프로토콜 계층들(예를 들어, 전송 프로토콜 계층(214))은 목적지 하이브리드 디바이스(112)에 전송되도록 스케줄링되는 복수의 패킷들의 각각에 1차 시퀀스 식별자들을 삽입할 수 있다. 블록(304)에서, 하이브리드 적응 계층(210)의 시퀀스 표시 유닛(108)은 복수의 패킷들의 각각에 관련되는 2차 시퀀스 식별자들을 삽입할지 여부를 결정할 수 있다. 일부 구현들에서, 시퀀스 표시 유닛(108)은 패킷들이 (상부 프로토콜 계층들에 의해 이전에 삽입되는) 1차 시퀀스 식별자들을 이미 포함하는지 여부를 결정할 수 있다. 예를 들어, 소스 하이브리드 디바이스(102)가 TCP를 구현하는 경우에, TCP 전송 계층(214)은 패킷들에서의 32-바이트 1차 시퀀스 번호를 삽입할 수 있다. 시퀀스 표시 유닛(108)은 패킷들이 1차 시퀀스 식별자들을 포함하는 것으로 결정하는 경우에, 시퀀스 표시 유닛(108)은 패킷들에 2차 시퀀스 식별자들을 삽입하지 않도록 결정할 수 있다. 다른 예로서, 소스 하이브리드 디바이스(102)가 UDP를 구현하는 경우에, UDP 전송 계층(214)은 패킷들에 1차 시퀀스 식별자들을 삽입하지 않을 수 있다. 시퀀스 표시 유닛(108)은 복수의 패킷들이 1차 시퀀스 식별자들을 포함하지 않는 것으로 결정하는 경우에, 시퀀스 표시 유닛(108)은 패킷들에 2차 시퀀스 식별자들을 삽입하도록 결정할 수 있다.
[0053] 일부 실시예들에서, 시퀀스 표시 유닛(108)은 전송되도록 스케줄링되는 복수의 패킷들과 관련되는 패킷 스트림(들)을 결정하기 위해, 그리고 따라서 패킷들에 시퀀스 식별자들을 삽입할지 여부, 패킷들에 무슨 타입의 시퀀스 식별자를 삽입할지, 및 패킷들에 삽입되어야 하는 시퀀스 식별자의 값을 결정하기 위해 임의의 적합한 분류 기술들을 이용할 수 있다. 예를 들어, 전송을 위해 스케줄링되는 복수의 패킷들을 분석하는데 기초하여, 시퀀스 표시 유닛(108)은 전송되도록 스케줄링되는 패킷들의 서브세트가 (예를 들어, 제 1 애플리케이션에 의해 발생되는) 제 1 패킷 스트림의 일부인 것으로 그리고 나머지 패킷들이 (예를 들어, 제 2 애플리케이션에 의해 발생되는) 제 2 패킷 스트림의 일부인 것으로 결정할 수 있다. 시퀀스 표시 유닛(108)은 또한 제 1 애플리케이션이 (1차 시퀀스 식별자들을 삽입하는) TCP를 이용하는 것으로 그리고 제 2 애플리케이션이 (1차 시퀀스 식별자들을 삽입하지 않는) UDP를 이용하는 것으로 결정할 수 있다. 따라서, 시퀀스 표시 유닛(108)은 제 1 패킷 스트림의 일부인 패킷들에 2차 시퀀스 식별자들을 추가하지 않도록 결정할 수 있으며 제 2 패킷 스트림의 일부인 패킷들에 2차 시퀀스 식별자들을 추가하도록 결정할 수 있다. 2차 시퀀스 식별자를 패킷들에 추가하도록 결정되는 경우에, 흐름은 블록(306)에서 계속한다. 그렇지 않으면, 2차 시퀀스 식별자를 패킷들에 추가하지 않도록 결정되는 경우에, 소스 하이브리드 디바이스(102)는 순서를 벗어난 패킷 전달을 검출하기 위해 그리고 순서를 벗어난 패킷들을 재정렬하기 위해 1차 시퀀스 식별자들을 이용하도록 목적지 하이브리드 디바이스(112)에 의존할 수 있으며 흐름은 블록(308)으로 계속한다.
[0054] 블록(306)에서, 소스 하이브리드 디바이스는 목적지 하이브리드 디바이스에 전송되도록 스케줄링되는 패킷 스트림의 복수의 패킷들에 2차 시퀀스 식별자를 삽입한다. 일부 구현들에서, 시퀀스 표시 유닛(108)은 패킷 스트림과 관련되는 패킷들의 각각에 적절한 2차 시퀀스 번호를 삽입할 수 있다. 시퀀스 표시 유닛(108)은 패킷에 포함되는 바이트들의 수에 의해, 또는 다른 적합한 증가 값에 의해 "1"만큼 패킷의 시퀀스 번호 필드를 (전송되는 각 패킷에 대해) 증가시킬 수 있다. 다른 구현에서, 시퀀스 표시 유닛(108)은 패킷 스트림과 관련되는 패킷들의 각각에 적절한 2차 타임스탬프(또는 타임스탬프 및 시퀀스 번호 둘 다)를 삽입할 수 있다. 시퀀스 표시 유닛(108)은 전송되도록 스케줄링되는 패킷들에 2차 시퀀스 식별자를 삽입하기 위한 다양한 기술들을 사용할 수 있다. 예를 들어, 시퀀스 표시 유닛(108)은 패킷 순서, 미리 결정된 이더타입(EtherType) 값에 기초한 새로운 태그, 패킷 헤더에서의 스페어/비사용되는 패킷 필드들, 패킷 헤더에서의 새로운 패킷 필드들 또는 다른 적합한 기술들을 표시하기 위해 예약되는 특별한 가상 로컬 영역 네트워크(VLAN) 태그 인코딩들을 이용하여 패킷들에 2차 시퀀스 식별자들을 삽입할 수 있다. 구체적으로, VLAN 태그들은 2차 시퀀스 식별자들을 삽입하기 위해 이용될 수 있고, VLAN 태그들은 2차 시퀀스 식별자들을 인코딩하기 위해 이용될 수 있으며, 특정 예약된 인코딩들은 다른 정보와 함께 2차 시퀀스 식별자들(예를 들어, VLAN 식별자들 또는 스트림 식별 정보)을 인코딩하기 위해 이용될 수 있다.
[0055] 일부 구현들에서, 시퀀스 표시 유닛(108)은 패킷들이 소스 하이브리드 디바이스(102)에 의해 전송될 순서 및 다른 패킷 분류 정보 또는 패킷 서명들의 표시를 (예를 들어, 별개의 시퀀스 목록 패킷에) 주기적으로 전송할 수 있다. 일 예에서, 시퀀스 목록 패킷은 전송되도록 스케줄링되는 복수의 패킷들(예를 들어, 패킷 스트림의 미리 결정된 수의 패킷들)과 관련되는 대응하는 2차 시퀀스 식별자 및 패킷 서명을 포함할 수 있다. 다른 예에서, 시퀀스 목록 패킷은 이미 전송된 (패킷 스트림의) 복수의 패킷들과 관련되는 대응하는 1차 시퀀스 식별자 및 패킷 서명을 포함할 수 있다. 시퀀스 표시 유닛(108)은 패킷 서명을 결정하기 위해 임의의 적합한 기술들을 사용할 수 있다. 예를 들어, 주기적 리던던시 검사(CRC) 계산 방법(또는 패킷 라우트에 독립적인 다른 적합한 계산 방법)은 패킷 서명(예를 들어, CRC 값)을 발생시키기 위해 이용될 수 있다. 도 4-5에서 이하에 더 설명되는 바와 같이, 목적지 하이브리드 디바이스(112)는 패킷들이 구조화되고 프로세싱되어야 하는 올바른 순서를 결정하기 위해 이러한 시퀀스 목록 패킷을 이용할 수 있다.
[0056] 일부 구현들에서, 패킷들이 전송될(또는 전송된) 시퀀스를 표시하는데 더하여, 시퀀스 표시 유닛(108)은 또한 (예를 들어, 시퀀스 목록 패킷에서, 또는 다른 구별된 패킷에서, 패킷의 일부로서) 패킷과 관련되는 패킷 스트림의 표시를 전송할 수 있다. 패킷과 관련되는 스트림 식별 정보는 특별 예약된 VLAN 태그 인코딩들, 미리 결정된 이더타입 값에 기초한 새로운 태그, 스페어/예약된 패킷 헤더 필드들, 및/또는 패킷에서의 새로운 패킷 헤더 필드들을 이용하여 추가될 수 있다. 일부 구현들에서, 패킷의 제 1 전송 및 패킷의 후속하는 전송과 관련되는 시퀀스 식별자는 동일할 수 있으며 시퀀스 식별자는 상대적인 전송 시퀀스를 표시할 수 있다. 흐름은 블록(308)에서 계속한다.
[0057] 블록(308)에서, 동일한 패킷 스트림과 관련되는 복수의 패킷들을 전송하기 위한 2개 또는 그 초과의 패킷 라우트들이 결정된다. 흐름(300)은 패킷들에 2차 시퀀스 식별자를 삽입하는 시퀀스 표시 유닛(108)에 응답하여 블록(306)으로부터 블록(308)으로 이동한다. 흐름(300)은 (예를 들어, 1차 시퀀스 식별자들이 이용가능하기 때문에) 또한 2차 시퀀스 식별자가 패킷들에 삽입되어야 하지 않는 것으로 결정하는데 응답하여 블록(304)으로부터 블록(308)으로 이동한다. 일부 구현들에서, 라우팅 유닛(110)은 패킷 라우트들의 각각과 관련되는 라우트 특성들(예를 들어, 트래픽, 혼잡, 성능 등)에 적어도 부분적으로 기초하여 특정 패킷 스트림과 관련되는 패킷들을 전송하기 위한 다수의 패킷 라우트들 사이를 스위칭할 수 있다. 다수의 패킷 라우트들을 통해 단일 패킷 스트림과 관련되는 패킷들을 전송하는 것은 어그리게이트 스루풋을 증가시킬 수 있고, 전달 지연시간을 낮출 수 있으며, 이용가능한 네트워크 자원들의 효율적인 이용을 위한 정적 또는 동적 네트워크 링크 로드 밸런싱을 가능하게 할 수 있다. 예를 들어, 라우팅 유닛(110)은 패킷 라우트들(124, 126 및 128)이 제 1 패킷 스트림과 관련되는 패킷들을 전송하기 위해 이용될 수 있는 것으로 결정할 수 있다. 라우팅 유닛(110)은 패킷 라우트(124)를 통해 패킷 스트림과 관련되는 패킷들의 1/5번째, 패킷 라우트(128)를 통해 패킷 스트림과 관련되는 패킷들의 다른 1/5번째, 및 패킷 라우트(126)를 통해 패킷 스트림과 관련되는 패킷들의 나머지 3/5번째를 전송하도록 (예를 들어, 라우트 특성들을 분석하는데 기초하여) 결정할 수 있다. 다시 말해, 목적지 하이브리드 디바이스(112)에 패킷 스트림의 5개의 패킷들을 전송하도록 결정할 때, 라우팅 유닛(110)은 패킷 라우트(124)를 통해 제 1 패킷을, 패킷 라우트(128)를 통해 제 2 패킷을, 그리고 패킷 라우트(126)를 통해 나머지 3개의 패킷들을 전송할 수 있다. 다른 예로서, 라우팅 유닛(110)은 패킷 라우트(126) 및 패킷 라우트(128)를 이용하는 사이의 패킷 단위 기반으로 교번할 수 있다. 다시 말해, 라우팅 유닛(110)은 패킷 라우트(126)를 따라 시퀀스로 패킷들 "n", "n+2" 등을 전송할 수 있으며 패킷 스트림에 대한 최고의 스루풋을 획득하기 위해 패킷 라우트(128)를 따라 패킷들 "n+1", "n+3" 등을 전송할 수 있다. 상술한 바와 같이, 패킷 라우트(128)와 관련되는 전달 지연시간은 패킷 라우트(126)과 관련되는 전달 지연시간보다 큰 경우에, 패킷 라우트(128)를 따라 시간적으로 더 이르게 전송되는 패킷들은 패킷 라우트(126)를 따라 전송되는 패킷들보다 이후에 도달할 수 있으며, 이는 목적지 하이브리드 디바이스(112)에서의 순서를 벗어난 패킷 도달을 발생시킨다. 흐름은 블록(310)에서 계속한다.
[0058] 블록(310)에서, 복수의 패킷들은 2개 또는 그 초과의 패킷 라우트들을 통해 목적지 하이브리드 디바이스에 전송된다. 예를 들어, 라우팅 유닛(110)은 블록(308)에서 선택되는 적절한 패킷 라우트 상의 목적지 하이브리드 디바이스(112)에 복수의 패킷들을 전송(또는 전송 유닛으로 하여금 전송하게)할 수 있다. 블록(310)으로부터, 흐름은 종료한다. 동일한 패킷 스트림과 관련되는 복수의 패킷들을 수신하는데 응답하여, 목적지 하이브리드 디바이스는 도 4-5에서 이하에 설명되는 바와 같이, 시퀀스 식별자들에 기초하여 (필요한 경우에) 패킷들을 재정렬할 수 있다.
[0059] 도 3은 패킷들이 1차 시퀀스 식별자들을 포함하는지 여부에 기초하여 2차 시퀀스 식별자들을 패킷들로 삽입할지 여부를 결정하는 시퀀스 표시 유닛(108)을 설명하더라도, 실시예들은 그와 같이 제한되지 않는다. 다른 실시예들에서, 시퀀스 표시 유닛(108)은 패킷들이 1차 시퀀스 식별자들을 포함하는지 여부에 관계없이 패킷들에 2차 시퀀스 식별자들을 삽입할 수 있다. 이것은 소스 하이브리드 디바이스(102)에서 패킷 순서를 표시하기 위한 그리고 목적지 하이브리드 디바이스(112)에서 패킷들을 재정렬하기 위한 동작들을 간략화할 수 있다.
[0060] 도 4 및 도 5는 목적지 하이브리드 디바이스에서 순서를 벗어난 패킷들을 검출하고 재정렬하기 위한 예시적인 동작들을 예시하는 흐름도(400)를 도시한다. 흐름도(400)는 도 4의 블록(402)에서 시작한다.
[0061] 블록(402)에서, 목적지 하이브리드 디바이스는 소스 하이브리드 디바이스에 의해 전송되는 패킷을 수신한다. 도 1의 예를 참조하면, 목적지 하이브리드 디바이스(112)의 재정렬 유닛(116)은 패킷 라우트를 따라 패킷 스트림과 관련되는 패킷을 (소스 하이브리드 디바이스(102)로부터) 수신할 수 있다. 일부 구현들에서, 패킷은 소스 하이브리드 디바이스(102)로부터 목적지 하이브리드 디바이스(112)로의 2개 또는 그 초과의 패킷 라우트들을 통해 전송되는 패킷 스트림과 관련되는 복수의 패킷들 중 하나일 수 있다. 예를 들어, 패킷 스트림과 관련되는 복수의 패킷들의 서브세트는 제 1 패킷 라우트를 통해 수신될 수 있으며 복수의 패킷들의 나머지 서브세트는 제 2 패킷 라우트를 통해 수신될 수 있다. 다른 예로서, 소스 하이브리드 디바이스(102)는 패킷 단위 기반 상으로 패킷 전송을 교번할 수 있다. 소스 하이브리드 디바이스(102)는 제 1 패킷 라우트를 통해 패킷 스트림과 관련되는 복수의 패킷들 중 제 1 패킷, 제 2 패킷 라우트 상의 패킷 스트림과 관련되는 복수의 패킷들 중 두 번째, 제 1 패킷 라우트를 통해 패킷 스트림과 관련되는 복수의 패킷들 중 세 번째 등을 전송할 수 있다. 흐름은 블록(404)에서 계속한다.
[0062] 블록(404)에서, 수신되는 패킷과 관련되는 2차 시퀀스 식별자가 검출되는지 여부가 결정된다. 예를 들어, 재정렬 유닛(116)은 수신되는 패킷이 2차 시퀀스 식별자를 포함하는지 여부를 결정할 수 있다. 상술한 바와 같이, 일부 구현들에서, 2차 시퀀스 식별자는 소스 하이브리드 디바이스(102)의 하이브리드 적응 계층(210)에 의해 패킷에 추가되며 시퀀스 번호, 타임스탬프, 및/또는 패킷과 관련되는 다른 적합한 시퀀스 식별자를 포함할 수 있다. 일부 구현들에서, 재정렬 유닛(116)은 수신되는 패킷이 2차 시퀀스 식별자를 포함하는지 여부를 결정하기 위해 수신되는 패킷과 관련되는 하나 또는 그 초과의 헤더 필드들을 판독할 수 있다. 재정렬 유닛(116)은 또한 대응하는 하나 또는 그 초과의 패킷들과 관련되는 하나 또는 그 초과의 2차 시퀀스 식별자들의 목록을 포함하는 (도 3에 상술되는) 시퀀스 목록 패킷이 소스 하이브리드 디바이스(102)로부터 수신되는지 여부를 결정할 수 있다. 시퀀스 목록 패킷이 수신되는 경우에, 블록(404)에서, 재정렬 유닛(116)은 수신되는 패킷과 관련되는 2차 시퀀스 식별자가 시퀀스 목록 패킷으로부터 식별될 수 있는지 여부를 결정할 수 있다. 수신되는 패킷과 관련되는 2차 라우팅 시퀀스 식별자가 검출되는 경우에, 흐름은 블록(408)으로 계속한다. 그렇지 않으면, 흐름은 블록(406)으로 계속한다.
[0063] 블록(406)에서, 2차 시퀀스 식별자가 검출되지 않는 경우에, 소스 하이브리드 디바이스의 상부 프로토콜 계층들에 의해 삽입되는 패킷과 관련되는 1차 시퀀스 식별자가 검출된다. 재정렬 유닛(116)은 수신되는 패킷이 2차 시퀀스 식별자를 포함하지 않는 것으로 결정하는 경우에 흐름(400)은 블록(404)으로부터 블록(406)으로 이동한다. 일부 구현들에서, 소스 하이브리드 디바이스(102)의 (종래의 프로토콜 스택의) 상부 프로토콜 계층들 중 하나 또는 그 초과는―네트워크 계층(212), 전송 계층(214), 애플리케이션들(216, 218, 220)은 전송되도록 스케줄링되는 패킷에 1차 시퀀스 식별자를 삽입할 수 있다. 예를 들어, 소스 하이브리드 디바이스(102)가 TCP를 구현하는 경우에, TCP 전송 계층(212)은 전송되도록 스케줄링되는 패킷에 1차 시퀀스 번호를 삽입할 수 있다. 재정렬 유닛(116)은 수신되는 패킷의 헤더 필드들을 "스누핑(snoop)"할 수 있고 및/또는 수신되는 패킷과 관련되는 1차 시퀀스 식별자를 결정하기 위해 다른 패킷 조사 메커니즘들을 사용할 수 있다. 재정렬 유닛(116)은 수신되는 패킷과 관련되는 1차 시퀀스 식별자를 결정한 후에, 흐름은 블록(410)에서 계속한다.
[0064] 블록(408)에서, 소스 하이브리드 디바이스의 하이브리드 적응 계층에 의해 삽입되는 패킷과 관련되는 2차 시퀀스 식별자가 결정된다. 재정렬 유닛(116)은 수신되는 패킷이 2차 시퀀스 식별자를 포함하는 것으로 결정하는 경우에 흐름(400)은 블록(404)으로부터 블록(408)으로 이동한다. 도 3에 상술한 바와 같이, 소스 하이브리드 디바이스(102)의 하이브리드 적응 계층(210)은 패킷과 관련되는 패킷 스트림에 따라 전송되도록 스케줄링되는 패킷에 2차 시퀀스 식별자를 삽입할 수 있다. 일 구현에서, 재정렬 유닛(116)은 수신되는 패킷과 관련되는 2차 시퀀스 식별자를 결정하기 위해 수신되는 패킷의 적절한 헤더 필드를 판독할 수 있다. 다른 구현에서, 재정렬 유닛(116)은 수신되는 패킷과 관련되는 2차 시퀀스 식별자를 결정하기 위해 이전에 수신되는 시퀀스 목록 패킷을 이용할 수 있다. 본 구현에서, 재정렬 유닛(116)은 패킷 서명(예를 들어, CRC 값)을 계산할 수 있고, 시퀀스 목록 패킷으로부터 패킷 서명을 식별할 수 있으며, 시퀀스 목록 패킷에서의 식별되는 패킷 서명에 대응하는 2차 시퀀스 식별자를 판독할 수 있다. 다른 구현에서, 재정렬 유닛(116)은 재정렬 버퍼(118)에 수신되는 패킷을 일시적으로 저장할 수 있으며, 소스 하이브리드 디바이스(102)로부터 시퀀스 목록 패킷을 수신하도록 대기할 수 있으며, 시퀀스 목록 패킷을 수신하는데 응답하여 수신되는 패킷과 관련되는 2차 시퀀스 식별자를 결정할 수 있다. 재정렬 유닛(116)은 수신되는 패킷과 관련되는 2차 시퀀스 식별자를 결정한 후에, 흐름은 블록(410)으로 계속한다.
[0065] 블록(410)에서, 패킷과 관련되는 시퀀스 식별자에 기초하여, 순서를 벗어난 패킷 전달이 목적지 하이브리드 디바이스에서 검출되는지 여부가 결정된다. 일부 구현들에서, 수신기 재정렬 유닛(116)은 (예를 들어, 수신된 패킷들과 관련하여 헤더들에서의 하나 또는 그 초과의 필드들에 기초하여, 시퀀스 목록 패킷에서의 정보에 기초하여, 등) 패킷 스트림들로 수신되는 패킷들을 소팅할 수 있다. 재정렬 유닛(116)은 특정 패킷 스트림에 속하는 패킷들을 식별하기 위해 패킷 헤더들에서 (예를 들어, 소스 하이브리드 디바이스(102)에 의해 삽입되는) 패킷 분류 기술들 및/또는 정보를 이용할 수 있다. 재정렬 유닛(116)은 블록(402)에서 수신되는 패킷과 동일한 패킷 스트림에 속하는 하나 또는 그 초과의 이전에 수신되는 패킷들의 시퀀스 식별자(예를 들어, 1차 시퀀스 식별자 또는 2차 시퀀스 식별자)를 결정할 수 있다. 일부 구현들에서, 재정렬 유닛(116)은 패킷 스트림과 관련되는 최종 수신되는 패킷과 관련되는 시퀀스 식별자를 (예를 들어, 미리 결정된 메모리 위치에서) 계속해서 트래킹할 수 있다. 다른 구현에서, 수신되는 패킷과 관련되는 시퀀스 식별자를 결정하는데 응답하여, 재정렬 유닛(116)은 재정렬 버퍼(118)를 검사할 수 있으며 재정렬 버퍼(118)에 저장되는 패킷들과 관련되는 시퀀스 식별자들을 결정할 수 있다. 예를 들어, 재정렬 유닛(116)은 수신되는 패킷의 시퀀스 번호가 50인 것으로 결정할 수 있다. 재정렬 유닛(116)은 최종 수신되는 패킷의 시퀀스 번호가 45인 것으로 결정할 수 있다. 따라서, 재정렬 유닛(116)은 수신되는 패킷이 순서를 벗어나 또는 미리 결정된 순서에 따르지 않고("순서를 벗어난 패킷 전달") 목적지 히아브리드 디바이스(112)에 전달된 것으로 결정할 수 있다. 대안적으로, 재정렬 유닛(116)은 최종 수신된 패킷의 시퀀스 번호가 49인 것으로 결정하는 경우에, 재정렬 유닛(116)은 순서를 벗어난 패킷 전달이 검출되지 않은 것으로 결정할 수 있다. 수신된 패킷과 관련되는 시퀀스 식별자는 (수신된 시퀀스에서의 최종 패킷에 기초하여) 예상되는 시퀀스 번호보다 큰 경우에, 순서를 벗어난 패킷 전달이 검출되며 흐름은 도 5에서의 블록(412)에서 계속한다. 그렇지 않으면, 흐름은 도 5의 블록(422)에서 계속한다.
[0066] 도 5에서의 블록(412)에서, 수신되는 패킷은 목적지 하이브리드 디바이스(112)에서의 프로세싱을 위해 제공되는 최종 패킷에 대해 더 이른 시퀀스인지 여부가 결정된다. 재정렬 유닛(116)은 순서를 벗어난 패킷 전달이 검출된 것으로 결정하는 경우에 흐름(400)은 도 4에서의 블록(410)으로부터 도 5에서의 블록(412)으로 이동한다. 블록(412)에서, 재정렬 유닛(116)은 상부 프로토콜 계층들에 의한 프로세싱을 위해 제공되는 (블록(402)에서 수신되는 패킷에서와 동일한 패킷 스트림에 속하는) 최종 패킷과 관련되는 시퀀스 식별자를 결정할 수 있다. 재정렬 유닛(116)은 그 후에 수신되는 패킷의 시퀀스 식별자가 프로세싱을 위해 제공되는 최종 패킷의 시퀀스 식별자보다 작은지 여부를 결정할 수 있다. 예를 들어, 재정렬 유닛(116)은 수신되는 패킷의 타임스탬프가 16:20:00인 것으로 결정할 수 있다. 재정렬 유닛(116)은 또한 프로세싱을 위해 제공되는 최종 패킷의 타임스탬프 및/또는 재정렬 버퍼(118)에 저장되는 패킷들과 관련되는 타임스탬프들의 범위를 결정할 수 있다. 프로세싱을 위해 제공되는 최종 패킷의 타임스탬프는 16:25:00(즉, 현재 수신되는 패킷의 타임스탬프보다 큰)인 경우에, 재정렬 유닛(116)은 수신된 패킷이 목적지 하이브리드 디바이스(112)에서의 프로세싱을 위해 제공되는 최종 패킷에 대해 더 이른 시퀀스인 것으로 결정할 수 있다. 결과적으로, 흐름은 블록(414)에서 계속한다. 그러나, 프로세싱을 위해 제공되는 최종 패킷의 타임스탬프는 16:19:00(즉, 현재 수신된 패킷의 타임스탬프보다 작은)인 경우에, 재정렬 유닛(116)은 그 후에 수신된 패킷이 프로세싱을 위해 제공되는 최종 패킷에 대해 더 나중의 시퀀스인 것으로 결정할 수 있다. 결과적으로, 흐름은 블록(416)으로 계속한다.
[0067] 블록(414)에서, 수신되는 패킷이 폐기된다. 재정렬 유닛(116)은 시퀀스 식별자들에 기초하여, 수신되는 패킷이 목적지 하이브리드 디바이스(112)에서의 프로세싱을 위해 제공되는 최종 패킷에 대해 더 이른 시퀀스인 것으로 결정하는 경우에 흐름(400)은 블록(412)으로부터 블록(414)으로 이동한다. 예를 들어, 재정렬 유닛(116)은 수신되는 패킷을 상부 프로토콜 계층들에 제공하지 않도록 결정할 수 있으며 수신되는 패킷에 대해 더 나중의 시퀀스에 있는 패킷들이 목적지 하이브리드 디바이스(112)에 대한 프로세싱을 위해 제공된 경우에 패킷을 폐기할 수 있다. 다른 예로서, 재정렬 유닛(116)은 패킷을 수신하기 위한 미리 결정된 시간 간격이 경과한 후에 패킷이 수신되는 경우에 패킷을 폐기할 수 있다. 흐름은 블록(418)에서 계속한다.
[0068] 블록(416)에서, 수신되는 패킷이 재정렬 버퍼에 저장되며 수신되는 패킷은 시퀀스 식별자에 따라 재정렬된다. 재정렬 유닛(116)은 수신된 패킷이 프로세싱을 위해 제공되는 최종 패킷에 대해 더 나중의 시퀀스인 것으로 결정하는 경우에 흐름(400)은 블록(412)으로부터 블록(416)으로 이동한다. 재정렬 유닛(116)은 재정렬 버퍼(118)에 수신되는 패킷을 저장할 수 있다. 일부 구현들에서, 재정렬 버퍼(118)의 크기는 라운드-트립 지연, 소스 하이브리드 디바이스(102) 및 목적지 하이브리드 디바이스(112)에 의해 사용되는 통신 프로토콜이 다수의 재전송 시도들을 지원하는 경우의 다수의 라운드-트립 지연들, 시퀀스에서의 최종 패킷을 수신하는 것과 순서를 벗어난 패킷을 수신하는 것 사이의 최대 수용가능한 지연, 재전송 지연, 하이브리드 통신 네트워크(100)에서의 예상된 지연들 및 다른 그와 같은 팩터들에 적어도 부분적으로 기초하여 동적으로(또는 정적으로) 구성될 수 있다. 예를 들어, 최대 수용가능한 라운드-트립 지연은 100ms이며 각 패킷의 최대 길이는 20ms인 경우에, 재정렬 버퍼(118)의 크기(예를 들어, 재정렬 버퍼(118)에 저장될 수 있는 패킷들의 수)는 최소한 4개의 순서를 벗어난 패킷들이 목적지 하이브리드 디바이스(112)에 도달하기 위해 시퀀스에서의 다음 패킷을 대기하는 동안 재정렬 버퍼에 저장될 수 있도록 선택될 수 있다.
[0069] 일 구현에서, 재정렬 유닛(116)은 동일한 패킷 스트림과 관련되는 패킷들이 상부 프로토콜 계층들 및 애플리케이션들에 대해 시퀀스로(또는 거의 시퀀스로) 전달되도록 시퀀스 식별자들에 기초하여 재정렬 버퍼(118)에서 패킷들을 재정렬할 수 있다. 예를 들어, 재정렬 유닛(116)은 수신되는 패킷의 시퀀스 번호가 50이며 재정렬 버퍼(118)는 시퀀스 번호들(47, 48, 52 및 54)을 갖는 패킷들을 포함하는 것으로 결정할 수 있다. 따라서, 재정렬 유닛(116)은 시퀀스 식별자들(48 및 52)을 갖는 패킷들 사이에 시퀀스 번호 50을 갖는 수신되는 패킷을 삽입함으로써 패킷들을 재정렬할 수 있다. 다른 구현에서, 재정렬 유닛(116)은 수신되는 순서로 재정렬 버퍼(118)에 패킷들을 저장할 수 있으며 저장된 패킷들이 프로세싱을 위해 릴리즈되어야 하는 순서를 표시하기 위해 재정렬 버퍼(118)의 각 입력과 관련되는 목록 또는 플래그를 업데이트할 수 있다. 상기 예를 참조하면, 재정렬 버퍼(118)가 시퀀스 번호들(47, 48, 52 및 54)을 갖는 패킷들을 포함하는 경우에, 재정렬 유닛(116)은 패킷들이 프로세싱을 위해 릴리즈되어야 하는 순서를 표시하기 위해 각각 "P1", "P2", "P3" 및 "P4"의 태그들을 할당할 수 있다. 시퀀스 번호 50을 갖는 패킷을 수신하는데 응답하여, 재정렬 유닛(116)은 시퀀스 번호 54를 갖는 패킷 후에 시퀀스 번호 50을 갖는 패킷을 저장할 수 있다. 재정렬 유닛(116)은 재정렬 버퍼(118)에 저장되는 패킷들과 관련되는 태그들을 업데이팅함으로써 새로운 패킷 순서를 표시할 수 있다. 다시 말해, 재정렬 유닛(116)은 태그들 "P1", "P2", "P3", "P4" 및 새로운 태그 "P5"를 시퀀스 번호들 47, 48, 50, 52 및 54 각각을 갖는 패킷들에 할당할 수 있다. 블록들(420-422)에서 이하에 설명되는 바와 같이, 재정렬 유닛(116)은 (소스 하이브리드 디바이스(102)에서 설정되는) 원래의 패킷 순서가 유지되도록 목적지 하이브리드 디바이스(112)에서의 상부 프로토콜 계층들 및 애플리케이션들에 재정렬 버퍼(118)로부터의 패킷들을 릴리즈할 수 있다. 흐름은 블록(418)에서 계속한다.
[0070] 블록(418)에서, 하나 또는 그 초과의 패킷들이 후속적인 프로세싱을 위해 제공되어야 하는지 여부가 결정된다. 예를 들어, 재정렬 유닛(116)은 재정렬 버퍼(118)로부터의 패킷들이 목적지 하이브리드 디바이스(112)의 상부 프로토콜 계층들에 대한 후속적인 프로세싱을 위해 제공되어야 하는지 여부를 결정할 수 있다. 상술한 바와 같이, 재정렬 버퍼(118)를 유지하는데 있어서, 재정렬 유닛(116)은 소스 하이브리드 디바이스(102)에 의해 전송되는 동일한 순서로 패킷 스트림과 관련되는 패킷들을 (후속적인 프로세싱을 위해) 릴리즈하려 시도할 수 있다. 일부 구현들에서, 재정렬 유닛(116)은 올바른 순서로 2개 또는 그 초과의 패킷들을 검출하는데 응답하여 상부 프로토콜 계층들에 재정렬 버퍼(118)에서의 패킷들을 제공하도록 결정할 수 있다. 다른 구현에서, 재정렬 유닛(116)은 수신되는 패킷이 상부 프로토콜 계층들에 제공되는 최종 패킷과 시퀀스로 있는 것을 검출하는데 응답하여 (재정렬 버퍼(118)에 저장하지 않고서) 상부 프로토콜 계층들에 수신되는 패킷을 직접 제공할 수 있다.
[0071] 일부 구현들에서, 목적지 하이브리드 디바이스(112)가 드롭되는/폐기되는 패킷을 수신하기 위해 무한으로 대기하는데 대해(또는 과도한 패킷 전달 지연에 대해) 보호하기 위해, 재정렬 유닛(116)은 타임-아웃(time-out) 메커니즘을 사용할 수 있으며 미리 결정된 버퍼 시간 간격이 경과한 후에 재정렬 버퍼(118)로부터 패킷들을 릴리즈할 수 있다. 미리 결정된 버퍼 시간 간격은 패킷 스트림과 관련되는 패킷들을 전달하기 위해 이용되는 패킷 라우트들 사이의 전달 지연시간에서의 최대 차이, 재전송 지연, 및/또는 예상된 라운드-트립 확인응답 시간에 적어도 부분적으로 기초하여 결정될 수 있다. 예를 들어, 목적지 하이브리드 디바이스(112)는 미리 결정된 버퍼 시간 간격 내의 시퀀스에서 패킷을 수신하는 것을 실패한 경우에, 재정렬 유닛(116)은 패킷 전송(또는 재전송)이 실패한 것으로, 패킷이 전달되지 않을 것으로 결정할 수 있으며, 실패된 패킷보다 더 큰 시퀀스 번호들을 갖는 재정렬 버퍼(118)로부터 패킷들을 릴리즈할 수 있다. 다른 구현에서, 재정렬 유닛(116)은 재정렬 버퍼(118)가 꽉 채워지거나 버퍼 임계값 레벨을 초과할 때 후속하는 프로세싱을 위해 패킷들을 릴리즈할 수 있다. 버퍼 임계값 레벨은 목적지 하이브리드 디바이스(112)에서 누적할 수 있는 데이터의 최대 량, 패킷 스트림과 관련되는 패킷들을 전달하기 위해 이용되는 패킷 라우트들의 전달 지연시간들 및 다른 그와 같은 팩터들에 기초하여 선택될 수 있다. 하나 또는 그 초과의 패킷들이 상부 프로토콜 계층들에 의한 후속적인 프로세싱을 위해 제공되어야 하는 것으로 결정되는 경우에, 흐름은 블록(420)으로 계속한다. 그렇지 않으면, 흐름은 종료한다.
[0072] 블록(420)에서, 목적지 하이브리드 디바이스의 상부 프로토콜 계층들에 의한 후속적인 프로세싱을 위해 릴리즈되는 하나 또는 그 초과의 패킷들이 식별된다. 흐름은 블록(422)에서 계속한다.
[0073] 블록(422)에서, 적절한 시퀀스에서 목적지 하이브리드 디바이스의 상부 프로토콜 계층들에 의한 프로세싱을 위해 하나 또는 그 초과의 패킷들이 제공된다. 예를 들어, 재정렬 유닛(116)은 적절한 시퀀스에서 목적지 하이브리드 디바이스(112)의 상부 프로토콜 층들에 의한 프로세싱을 위해 재정렬 버퍼(118)로부터 수신된 패킷 및/또는 하나 또는 그 초과의 패킷들을 제공할 수 있다. 일부 구현들에서, 상부 프로토콜 계층들에 릴리즈되는 패킷들의 시퀀스는 순서대로 있을 수 있지만, 미싱(missing) 패킷들이 수신되지 않거나(예를 들어, 미리 결정된 버퍼 시간 간격 동안) 폐기되는 경우에 시퀀스는 하나 또는 그 초과의 패킷들을 포함하지 않을 수 있다. 예를 들어, 시퀀스 번호 5를 갖는 패킷은 미리 결정된 버퍼 시간 간격 동안 또는 버퍼가 그 임계값 용량에 도달하기 전에 수신되지 않는 경우에, 재정렬 버퍼(118)로부터의 패킷들은 순서 1, 2, 3, 4, 6, 7 등으로 상부 프로토콜 계층들에 제공될 수 있다. 블록(422)으로부터, 흐름은 종료한다.
[0074] 도 4는 수신되는 패킷이 2차 시퀀스 식별자를 포함하는지 여부를 결정하는 재정렬 유닛(블록(404)에서)을 설명하더라도, 실시예들은 그와 같이 제한되지 않음이 주목된다. 일부 실시예들에서, 상술한 바와 같이, 소스 하이브리드 디바이스(102)는 패킷이 1차 시퀀스 식별자를 포함하는지 여부에 관계없이 패킷에 2차 시퀀스 식별자를 삽입하도록 구성될 수 있다. 본 실시예에서, 목적지 하이브리드 디바이스(112)는 패킷이 1차 시퀀스 식별자를 포함하는지 여부에 관계없이 순서를 벗어난 패킷들을 검출하고 재정렬하기 위해 2차 시퀀스 식별자를 이용하도록 구성될 수 있다. 다른 실시예에서, 목적지 하이브리드 디바이스(112)는 순서를 벗어난 패킷들을 검출하고 재정렬하기 위해 1차 시퀀스 식별자 또는 2차 시퀀스 식별자를 이용할지 여부를 결정할 수 있다.
[0075] 도 1-5는 실시예들을 이해하는데 조력하기 위한 것인 예들이며 실시예들을 제한하거나 청구범위의 범위를 제한하도록 이용되지 않아야 함이 이해되어야 한다. 실시예들은 추가적인 동작들, 더 적은 동작들, 다른 순서로의 동작들, 병렬의 동작들 및 달리 일부 동작들을 수행할 수 있다. 도 5는 순서를 벗어난 패킷 전달을 검출하는데 응답하여 패킷들을 재정렬하는 목적지 하이브리드 디바이스(112)를 설명하더라도, 실시예들은 그와 같이 제한되지 않는다. 일부 실시예들에서, 소스 및 목적지 하이브리드 디바이스들, 패킷들을 수신하는 애플리케이션 등에 의해 구현되는 통신 프로토콜에 따라, 상부 프로토콜 계층들에 대한 순서대로의 패킷 전달은 목적지 하이브리드 디바이스(112)에서 요구되지 않을 수 있다. 일부 구현들에서, 순서를 벗어난 패킷 전달이 목적지 하이브리드 디바이스(112)에서 검출되는지 여부를 결정하기 전에(도 4의 블록(410)에서), 목적지 하이브리드 디바이스(112)의 상부 프로토콜 계층들에 대해 순서대로 패킷들을 전달하는 것이 필요하거나 유용한지 여부가 결정될 수 있다. 예를 들어, 상부 프로토콜 계층들(예를 들어, IPv4 프로토콜 슈트(suite))에 구축되는 재정렬 메커니즘들이 순서를 벗어난 패킷 전달을 취급하는데 충분한 것으로 결정되면 하이브리드 적응 계층(210)의 재정렬 유닛(116)은 도 4-5에서 상술한 동작들을 실행하지 않을 수 있다. 다른 예로서, 도 4-5에 설명된 바와 같은 패킷 재정렬 메커니즘들은 상부 프로토콜 계층들이 순서를 벗어난 패킷들을 재정렬하기 위한 기능을 포함하지 않는 것으로(또는 매우 제한된 기능을 포함함) 결정되는 경우에 실행될 수 있다.
[0076] 일부 구현들에서, 소스 하이브리드 디바이스(102)는 제 2 패킷 라우트(예를 들어, 패킷 라우트(126))에 스위칭하기 전에 제 1 패킷 라우트(예를 들어, 패킷 라우트(124)) 상에 전송되는 패킷들에 (예를 들어, 목적지 하이브리드 디바이스(112)로부터) 확인응답을 대기하도록 구성될 수 있다. 소스 하이브리드 디바이스(102)는 확인응답이 수신될 때까지 또는 미리 결정된 시간 간격이 경과할 때까지 제 1 패킷 라우트(124) 상에 패킷들을 재전송할 수 있다. 소스 하이브리드 디바이스(102)는 제 1 패킷 라우트(124) 상에 전송되는 패킷들이 확인응답될 때까지 제 2 패킷 라우트(126)를 통해 패킷을 전송하지 못할 수 있다. 다른 구현들에서, 그러나, 소스 하이브리드 디바이스(102)는 목적지 하이브리드 디바이스(112)로부터의 확인응답을 대기하지 않을 수 있다. 대신에, 소스 하이브리드 디바이스(102)는 확인응답을 대기하지 않고서 제 1 패킷 라우트(124)를 통해 최종 패킷을 전송한 후에 제 2 패킷 라우트(126)를 통해 패킷을 전송할 수 있다. 예를 들어, 소스 하이브리드 디바이스(102)는 매 패킷(또는 매 다른 패킷)에 대한 패킷 라우트 사이를 스위칭할 때, 소스 하이브리드 디바이스(102)는 목적지 하이브리드 디바이스(112)로부터의 확인응답을 대기하지 않을 수 있다. 대안적으로, 일부 구현들에서, 소스 하이브리드 디바이스(102)는 제 2 패킷 라우트(126)를 통해 제 1 패킷 라우트(124)의 확인응답되지 않은 패킷들을 전송할 수 있다.
[0077] 일부 구현들에서, 소스 하이브리드 디바이스(102)는 하나 또는 그 초과의 대안적인 패킷 라우트들 라우트(예를 들어, 패킷 라우트(126)) 상에 지정된 패킷 라우트(예를 들어, 패킷 라우트(124))를 통해 전송되는 패킷들을 복제할 수 있다. 패킷 라우트와 관련되는 전달 특성들(예를 들어, 스루풋, 지연시간, 에러 레이트, 신뢰성 등)에서의 저하의 영향은 하나 또는 그 초과의 복제 패킷들을 전송하기 위해 소스 하이브리드 디바이스(102)를 구성함으로써 감소될 수 있다. 일 예에서, 라우팅 유닛(110)은 패킷이 목적지 하이브리드 디바이스(112)에 성공적으로 전달되는 확률을 개선하기 위해 및/또는 패킷 전달 지연시간을 감소시키기 위해 (예를 들어, 패킷 라우트(124) 및 패킷 라우트(126) 둘 다를 통해) 패킷 스트림과 관련되는 패킷들을 전송하기 위해 이용되는 2개 또는 그 초과의 패킷 라우트들을 따라 동일한 패킷의 카피를 전송함으로써 패킷을 복제할 수 있다. 일부 구현들에서, 라우팅 유닛(110)은 패킷 라우트들(124) 중 하나를 통해 이전에 전송되는 미리 결정된 수의 패킷들을 (다른 패킷 라우트(126) 상에) 재전송하도록 결정할 수 있다. 다른 구현에서, 라우팅 유닛(110)은 소스 하이브리드 디바이스(102)와 목적지 하이브리드 디바이스(112) 사이의 특정 패킷 라우트들을 따라 전송되는 패킷들을 복제하도록 결정할 수 있다. 예를 들어, 라우팅 유닛(110)은 패킷 라우트(124)를 통해 전송되는 패킷들을 단지 복제할 수 있다. 라우팅 유닛(110)은 패킷 라우트들(126 및 128)을 통해 전송되는 패킷들을 복제하지 않도록 결정할 수 있다. 다른 구현에서, 라우팅 유닛(110)은 패킷 라우트(124)를 통해 전송되는 패킷들이 목적지 하이브리드 디바이스(112)에 의해 확인응답되지 않은 경우에 다른 패킷 라우트(126) 상에 패킷들을 재전송하도록 결저할 수 있다. 예를 들어, 라우팅 유닛(110)은 패킷 라우트(124)를 통해 전송되는 패킷들이 목적지 하이브리드 디바이스(112)에 의해 확인응답되지 않는 경우에 다른 패킷 라우트(126) 상에 패킷들을 재전송하도록 결정할 수 있다. 따라서, 라우팅 유닛(110)은 다른 패킷 라우트(126)를 통해 목적지 하이브리드 디바이스(112)에 패킷을 재전송할 수 있다.
[0078] 목적지 하이브리드 디바이스(112)에서, 재정렬 유닛(116)은 소스 하이브리드 디바이스(102)의 시퀀스 표시 유닛(108)(또는 상부 프로토콜 계층들)에 의해 패킷들에 삽입되는 시퀀스 식별자들을 이용하여 복제 패킷들을 검출할 수 있다. 예를 들어, 복제 패킷들은 원래의 패킷에서와 동일한 시퀀스 식별자를 할당받는 경우에, 동일한 시퀀스 식별자를 갖는 다수의 패킷들을 수신하는 것은 복제 패킷들의 존재를 표시할 수 있다. 다른 구현에서, 재정렬 유닛(116)은 패킷 서명들에 기초하여 복제 패킷들을 검출할 수 있다. 예를 들어, 재정렬 유닛(116)은 동일한 패킷 서명을 갖는 2개의 패킷들을 검출하는 경우에, 이는 2개의 검출된 패킷들이 서로의 복제들인 것을 표시할 수 있다. 재정렬 유닛(116)은 최근에 수신된 패킷들과 관련되는 패킷 서명의 레코드를 유지할 수 있으며 복제 패킷들을 검출하기 위해 수신된 패킷 서명들의 이러한 레코드를 이용할 수 있다. 재정렬 유닛(116)은 그 후에 복제 패킷들을 폐기할 수 있다.
[0079] 도 1-5에 도시되지 않더라도, 일부 구현들에서 소스 하이브리드 디바이스(102)가 목적지 하이브리드 디바이스(112)에서의 적절한 패킷 순서를 유지하기 위해 시간 지연 기술들을 사용할 수 있음이 주목된다. 도 1의 예를 참조하면, 라우팅 유닛(110)은 전송되도록 스케줄링되는 패킷들과 관련되는 패킷 스트림, 라우트 특성들 등에 적어도 부분적으로 기초하여 패킷들을 전송하기 위해 다수의 패킷 라우트들을 사용할 수 있다. 일부 구현들에서, 제 1 패킷 라우트(124)를 따라 최종 패킷을 전송한 후에, 전송기 프로세싱 유닛(106)은 패킷들이 패킷 라우트에서의 변경하기 전에 제 1 패킷 라우트(124)를 통해 전송되는 모든 패킷들이 목적지 하이브리드 디바이스(112)에 도달하는 것을 보장하기 위해 미리 결정된 대기 시간 간격동안 대기(및 패킷 전송을 방지)할 수 있다. 미리 결정된 대기 시간 간격은 소스 하이브리드 디바이스(102)가 임의의 패킷들을 목적지 하이브리드 디바이스(112)에 전송하지 않을 수 있는 동안 다음의 패킷 라우트(126)를 통해 제 1 패킷의 전송과 제 1 패킷 라우트(124)를 통한 최종 패킷의 전송 사이의 시간 지속기간일 수 있다. 예를 들어, 패킷 라우트들(124 및 126) 상의 패킷 스트림과 관련되는 패킷들의 전송을 교번하도록 결정하는데 응답하여, 라우팅 유닛(110)은 패킷 라우트(124) 상에 제 1 패킷을 전송할 수 있고, 미리 결정된 시간 간격 동안 대기할 수 있으며, 패킷 라우트(126) 상의 제 2 패킷을 전송할 수 있으며, 미리 결정된 시간 간격 동안 대기할 수 있으며, 패킷 라우트(124) 상의 제 3 패킷을 전송할 수 있는 등이다. 미리 결정된 대기 시간 간격은 현재 패킷 라우트(124)를 통해 하이브리드 통신 네트워크(100)를 통해 전달되도록 특정 스트림과 관련되는 패킷을 위해 요구될 수 있는 추정된 시간, 상부 프로토콜 계층 확인응답 패킷이 목적지 하이브리드 디바이스(112)로부터 수신될 수 있는 최대 시간 간격, 현재 패킷 라우트 지연들, 하이브리드 통신 네트워크(100)와 관련되는 지연시간, 패킷 스트림과 관련되는 패킷들을 전송하기 위해 할당되는 패킷 라우트들과 관련되는 지연시간, 시퀀스에서의 최종 패킷을 수신하는 것과 순서를 벗어난 패킷을 수신하는 것 사이의 최대 지연, 재전송 지연, 재정렬 버퍼(118)의 크기 및/또는 다른 그와 같은 팩터들에 기초하여 동적으로(또는 정적으로) 구성될 수 있다. 일부 구현들에서, 미리 결정된 대기 시간 간격은 소스 하이브리드 디바이스(102) 및 목적지 하이브리드 디바이스(112)에 의해 사용되는 통신 프로토콜이 다수의 재전송 시도들을 지원하는 경우에 다수의 라운드-트립 지연들에 적어도 부분적으로 기초하여 결정될 수 있다. 일부 구현들에서, 목적지 하이브리드 디바이스(112)는 미리 결정된 대기 시간 지연을 검출할 수 있으며 패킷 스트림과 관련되는 패킷 라우트에서의 변경을 결정할 수 있다. 다른 구현들에서, 목적지 하이브리드 디바이스(112)는 패킷 라우트에서의 변경 또는 미리 결정된 대기 시간 지연을 명시적으로 검출하지 못할 수 있다. 패킷 스트림과 관련되는 패킷들을 전송하기 위해 이용되는 패킷 라우트에서의 변경들 사이의 미리 결정된 대기 시간 지연을 보강함으로써, 소스 하이브리드 디바이스(102)는 소스 하이브리드 디바이스(102)로부터 전송되는 패킷들이 목적지 하이브리드 디바이스(112)에서의 올바른 순서로 수신되는 것을 보장하려 시도할 수 있다. 더욱이, 일부 구현들에서, 소스 하이브리드 디바이스(102)는 목적지 하이브리드 디바이스(112)의 프로세싱 능력들에 기초하여 상술한 시간 지연 메커니즘을 이용할지 여부를 결정할 수 있다. 예를 들어, 소스 하이브리드 디바이스(102)는 목적지 하이브리드 디바이스(112)가 시퀀스 식별자들을 검출하도록 구성되지 않는 경우에 및/또는 목적지 디바이스(110)가 순서를 벗어난 패킷들을 재정렬하도록 구성되지 않는 경우에 목적지 하이브리드 디바이스(112)에서의 정렬된 패킷 수신을 가능하게 하기 위해 시간 지연 메커니즘을 이용하도록 결정할 수 있다.
[0080] 일부 실시예들에서, 시간 지연 메커니즘 및 2차 시퀀스 식별자들의 전송은 상호 배타적인 동작들일 수 있다. 그러나, 다른 실시예들에서, 소스 하이브리드 디바이스(102)는 패킷들과 관련되는 2차 시퀀스 식별자들을 전송하는데 더하여 (상술한 바와 같은) 미리 결정된 대기 시간 지연을 보강할 수 있다. 다른 실시예들에서, 소스 하이브리드 디바이스(102)는 미리 결정된 대기 시간 지연을 보강할 수 있지만 패킷들이 1차 시퀀스 식별자들을 포함하는 경우에 2차 시퀀스 식별자들을 구현하지 않을 수 있다. 일부 구현들에서, 소스 하이브리드 디바이스(102)는 미리 결정된 대기 시간 지연을 보강할 수 있으며 패킷들이 1차 시퀀스 식별자들을 포함하더라도 2차 시퀀스 식별자들을 구현할 수 있다.
[0081] 도 5는 미리 결정된 버퍼 시간 간격이 경과한 후에 미싱 패킷들이 수신되는 경우에 및/또는 수신된 미싱 패킷들에 대해 시퀀스에서 나중에 있는 패킷들이 상부 프로토콜 계층들에 이미 릴리즈된 경우에 미싱 패킷들을 폐기하기 위한 동작들을 설명한다. 일부 구현들에서, 재정렬 유닛(116)은 수신된 패킷들이 상부 프로토콜 계층들에 이미 제공되는 패킷들에 대해 시퀀스에서 더 이른/더 나중에 있는지 여부에 관계없이 상부 프로토콜 계층들에 모든 수신된 패킷들을 제공할 수 있다. 본 구현에서, 재정렬 유닛(116)은 상부 프로토콜 계층들에 이미 제공되는 복제 패킷들을 단지 복제할 수 있다. 다른 구현들에서, 그러나, 재정렬 유닛(116)은 확인응답 패킷들을 관찰함으로써, 및/또는 도달 타이밍(예를 들어, 과도하게 지연된 프레임들이 재전송들인 것으로 가정될 수 있음), 도달 인터페이스, 패킷 재전송을 표시하는 헤더들 또는 다른 패킷 헤더 필드들에 의해 재전송을 추론함으로써 재전송된 패킷들을 명시적으로 검출할 수 있다. 재정렬 유닛(116)은 시퀀스에서 나중에 있는 패킷들이 상부 프로토콜 계층들에 제공되는지 여부에 관계없이 후속적인 프로세싱을 위해 재전송된 패킷들을 단지 제공할 수 있다. 최종적으로, 시퀀스 표시 유닛(108), 라우팅 유닛(110), 재정렬 유닛(116) 및 재정렬 버퍼(118)는 종래의 프로토콜 스택(예를 들어, 전송 계층(214) 등)에서 구현되는 임의의 종래의, 상부 계층 재정렬 메커니즘으로부터 별개일 수 있고 그에 추가될 수 있다.
[0082] 실시예들은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함) 또는 모두 일반적으로 본원에서 "회로", "모듈" 또는 "시스템"으로 지칭될 수 있는 소프트웨어 및 하드웨어 양상들을 조합하는 실시예의 형태를 취할 수 있다. 더욱이, 본 발명 대상의 실시예들은 매체에 구체화되는 컴퓨터 이용가능한 프로그램 코드를 갖는 표현의 임의의 탠저블 매체에서 구체화되는 컴퓨터 프로그램 물건의 형태를 취할 수 있다. 설명된 실시예들은 모든 착상가능한 변화가 본원에 열거되지 않기 때문에, 현재 설명되든 아니든간에, 실시예들에 따라 프로세스를 수행하기 위해 컴퓨터 시스템(또는 다른 전자 디바이스(들))을 프로그램하도록 이용될 수 있는 명령들을 그 위에 저장하는 기계-판독가능한 매체를 포함할 수 있는, 컴퓨터 프로그램 물건 또는 소프트웨어로서 제공될 수 있다. 기계-판독가능한 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태(예를 들어, 소프트웨어, 프로세싱 애플리케이션)로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함한다. 기계-판독가능한 매체는 기계-판독가능한 저장 매체, 또는 기계-판독가능한 신호 매체일 수 있다. 기계-판독가능한 저장 매체는 예를 들어, 자기 저장 매체(예를 들어, 플로피 디스켓); 광학 저장 매체(예를 들어, CD-ROM); 자기-광학 저장 매체; 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 소거가능한 프로그램가능한 메모리(예를 들어, EPROM 및 EEPROM); 플래시 메모리; 또는 전자 명령들을 저장하기 위해 적합한 다른 타입들의 탠저블 매체를 포함할 수 있지만, 이들로 제한되지 않는다. 기계-판독가능한 신호 매체는 예를 들어, 전기, 광학, 음향 또는 다른 형태의 전파된 신호(예를 들어, 캐리어 파들, 적외선 신호들, 디지털 신호들 등)를 그 내부에 구체화되는 컴퓨터 판독가능한 프로그램 코드를 갖는 전파된 데이터 신호를 포함할 수 있다. 기계-판독가능한 신호 매체 상에 구체화되는 프로그램 코드는 와이어라인, 무선, 광섬유 케이블, RF 또는 다른 통신들 매체를 포함하는 임의의 적합한 매체를 이용하여 전송될 수 있지만, 이들로 제한되지 않는다.
[0083] 실시예들의 동작들을 실행하기 위한 컴퓨터 프로그램 코드는 Java, Smalltalk, C++ 등과 같은 객체 지향된 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차적 프로그래밍 언어들을 포함하는 하나 또는 그 초과의 프로그래밍 언어들의 임의의 조합으로 기록될 수 있다. 프로그램 코드는 전체적으로 사용자의 컴퓨터 상에, 자립형 소프트웨어 패키지로서 사용자의 컴퓨터 상에 부분적으로, 사용자의 컴퓨터 상에 부분적으로 및 월격 컴퓨터 상에 부분적으로 또는 전체적으로 원격 컴퓨터 또는 서버 상에 실행할 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 로컬 영역 네트워크(LAN), 개인 영역 네트워크(PAN), 또는 광역 네트워크(WAN)를 포함하는, 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 접속될 수 있거나, 접속은 (예를 들어, 인터넷 서비스 제공자를 이용하는 인터넷을 통해) 외부 컴퓨터로 이루어질 수 있다.
[0084] 도 6은 하이브리드 통신 네트워크에서의 시퀀스 식별자들 관련된 패킷들에 기초한 패킷 재정렬을 위한 메커니즘을 포함하는 전자 디바이스(600)의 일 실시예의 블록도이다. 일부 구현들에서, 전자 디바이스(600)는 랩톱 컴퓨터, 태블릿 컴퓨터, 넷북, 이동 전화, 스마트 전자기기, 파워라인 통신 디바이스, 게이밍 콘솔(console), 네트워크 브리징 디바이스들 또는 다수의 통신 네트워크 세그먼트들에 걸쳐 통신하도록 구성되는 하이브리드 통신 유닛을 포함하는 다른 전자 시스템들 중 하나일 수 있다. 전자 디바이스(600)는 (가능하게는 다수의 프로세서들, 다수의 코어들, 다수의 노드들을 포함하며, 및/또는 멀티-스레딩을 구현하는 등) 프로세서 유닛(602)을 포함한다. 전자 디바이스(600)는 메모리 유닛(606)을 포함한다. 메모리 유닛(606)은 시스템 메모리(예를 들어, 캐시, SRAM, DRAM, 제로 커패시터 RAM, 트윈 트랜지스터 RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM 등 중 하나 또는 그 초과) 또는 기계-판독가능한 매체의 상기 이미 설명된 가능한 실현들 중 임의의 하나 또는 그 초과일 수 있다. 전자 디바이스(600)는 또한 버스(610)(예를 들어, PCI, ISA, PCI-익스프레스, HyperTransport®, InfiniBand®, NuBus, AHB, AXI 등), 및 무선 네트워크 인터페이스(예를 들어, WLAN 인터페이스, 블루투스® 인터페이스, WiMAX 인터페이스, ZigBee®인터페이스, 무선 USB 인터페이스 등) 및 유선 네트워크 인터페이스(예를 들어, 파워라인 통신 인터페이스, 이더넷 인터페이스 등)를 포함한다. 일부 구현들에서, 전자 디바이스(600)는 복수의 네트워크 인터페이스들을 포함할 수 있다―그 각각은 전자 디바이스(600)를 다른 통신 네트워크 세그먼트에 커플링한다. 예를 들어, 전자 디바이스(600)는 파워라인 통신 인터페이스, 이더넷 인터페이스, 및 전자 디바이스(600)를 파워라인 통신 네트워크 세그먼트, 이더넷 및 무선 로컬 영역 네트워크와 각각 커플링하는 WLAN 인터페이스를 포함할 수 있다.
[0085] 전자 디바이스(600)는 또한 통신 유닛(608)을 포함한다. 통신 유닛(608)은 전송기 유닛(612) 및 수신기 유닛(618)을 포함한다. 전송기 유닛(612)은 시퀀스 표시 유닛(614) 및 라우팅 유닛(616)을 포함한다. 수신기 유닛(618)은 재정렬 유닛(620) 및 재정렬 버퍼(622)를 포함한다. 일부 사례들에서, 전자 디바이스(600)는 하나 또는 그 초과의 패킷들을 목적지 디바이스에 전송하는 소스 디바이스로서 동작할 수 있다. 이들 사례들에서, 시퀀스 표시 유닛(614)은 2개 또는 그 초과의 패킷 라우트들을 따라 전송되도록 스케줄링되는 패킷 스트림과 관련되는 복수의 패킷들을 위해 2차 시퀀스 식별자들을 (필요한 경우에) 결정하고 삽입할 수 있다. 라우팅 유닛(616)은 패킷들이 전송되어야 하는 2개 또는 그 초과의 패킷 라우트들을 식별할 수 있으며 그에 따라 도 1-3에 상술한 바와 같은 패킷들을 전송할 수 있다. 다른 사례들에서, 전자 디바이스(600)는 2개 또는 그 초과의 패킷 라우트들을 통해 소스 디바이스로부터 패킷 스트림과 관련되는 복수의 패킷들을 수신하는 목적지 디바이스로서 동작할 수 있다. 이들 사례들에서, 도 1, 4 및 5에 상술한 바와 같이, 재정렬 유닛(620)은 시퀀스 식별자들에 기초하여 순서를 벗어난 패킷 전달을 검출하기 위해, (예를 들어, 재정렬 버퍼(622)를 이용하여) 수신된 패킷들을 재정렬하기 위해, 그리고 후속적인 프로세싱을 위해 패킷들을 제공하기 위한 기능을 구현할 수 있다. 이들 기능들 중 임의의 하나는 하드웨어 및/또는 프로세서 유닛(602) 상에 부분적으로(또는 전체적으로) 구현될 수 있다. 예를 들어, 기능은 프로세서 유닛(602)에서 구현되는 로직에서, 주변 디바이스 또는 카드 상의 코-프로세서(co-processor) 등에서 응용 주문형 집적 회로로 구현될 수 있다. 또한, 실현들은 도 6에 도시되지 않는 더 적거나 추가적인 컴포넌트들(예를 들어, 비디오 카드들, 오디오 카드들, 추가적인 네트워크 인터페이스들, 주변 디바이스들 등)을 포함할 수 있다. 프로세서 유닛(602), 메모리 유닛(606) 및 네트워크 인터페이스들(604)은 버스(610)에 커플링된다. 버스(610)에 커플링되는 것으로 예시되더라도, 메모리 유닛(606)은 프로세서 유닛(602)에 커플링될 수 있다.
[0086] 실시예들은 다양한 구현들 및 개발들을 참조하여 설명되는 한편, 이들 실시예들은 예시적이며 본 발명 대상의 범위가 그들로 제한되지 않음이 이해될 것이다. 일반적으로, 본원에 설명된 바와 같은 다수의 전달 라우트 패킷 정렬을 위한 기술들은 임의의 하드웨어 시스템 또는 하드웨어 시스템들과 일치하는 설비들로 구현될 수 있다. 많은 변형들, 수정들, 추가들 및 개선들이 가능하다.
[0087] 단일 사례로서 본원에 설명되는 컴포넌트들, 동작들 또는 구조들을 위해 복수의 사례들이 제공될 수 있다. 마지막으로, 다양한 컴포넌트들, 동작들 및 데이터 스토어들 사이의 경계들은 다소 임의적이며, 특정 동작들이 특정한 예시적인 구성들의 문맥으로 예시된다. 기능의 다른 할당들이 착상되며 본 발명 대상의 범위 내에 속할 수 있다. 일반적으로, 예시적인 구성들에서의 별개 컴포넌트들로서 제시되는 구조들 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일 컴포넌트로서 제시되는 구조들 및 기능은 별개의 컴포넌트들로서 구현될 수 있다. 이들 및 다른 변형들, 수정들, 추가들 및 개선들은 본 발명 대상의 범위 내에 속할 수 있다.

Claims (28)

  1. 방법으로서,
    제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 상기 제 2 네트워크 디바이스로부터 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련된 시퀀스 식별자들을 통신 네트워크의 제 1 네트워크 디바이스에서 결정하는 단계―상기 복수의 패킷들의 서브세트는 상기 복수의 패킷 라우트들의 각각을 통해 수신됨―;
    상기 복수의 패킷들과 관련된 시퀀스 식별자들에 적어도 부분적으로 기초하여, 상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난(out-of-order) 전달을 검출하는 단계; 및
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 것에 응답하여, 상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초로 적어도 상기 복수의 패킷들의 서브세트를 재정렬하는 단계
    를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 1 네트워크 디바이스와 상기 제 2 네트워크 디바이스 사이의 상기 복수의 패킷 라우트들을 통해 상기 제 2 네트워크 디바이스로부터 수신되는 상기 패킷 스트림과 관련되는 상기 복수의 패킷들과 관련된 상기 시퀀스 식별자들을 결정하는 단계는,
    상기 복수의 패킷들 각각이 상기 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함하는지 여부를 결정하는 단계;
    상기 복수의 패킷들 각각이 상기 제 2 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 결정하는데 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를, 상기 제 1 네트워크 디바이스에서 결정하는 단계; 및
    상기 복수의 패킷들의 각각이 상기 2차 시퀀스 식별자를 포함하지 않는다는 결정에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자를, 상기 제 1 네트워크 디바이스에서 결정하는 단계
    를 더 포함하며, 상기 복수의 패킷들의 각각과 관련되는 상기 1차 시퀀스 식별자는 상기 제 2 네트워크 디바이스의 상부 프로토콜 계층들에 의해 삽입되는, 방법.
  3. 제 2 항에 있어서,
    상기 복수의 패킷들 각각이 상기 제 2 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하는 단계는,
    상기 복수의 패킷들의 각각에 대해, 상기 패킷의 하나 또는 그 초과의 헤더 필드들로부터 상기 2차 시퀀스 식별자를 판독하는 단계를 더 포함하는, 방법.
  4. 제 2 항에 있어서,
    상기 복수의 패킷들 각각이 상기 제 2 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하는 단계는,
    상기 복수의 패킷들의 각각에 대해,
    패킷의 헤더 필드 및 상기 패킷의 페이로드 중 적어도 하나에 기초하여 상기 패킷의 패킷 서명을 결정하는 단계;
    상기 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 단계―상기 시퀀스 목록 패킷은 상기 패킷 스트림의 상기 복수의 패킷들의 대응하는 각각과 관련되는 대응하는 복수의 시퀀스 식별자들 및 상기 복수의 패킷 서명들을 포함하며, 상기 시퀀스 목록 패킷은 상기 제 2 네트워크 디바이스로부터 상기 제 1 네트워크 디바이스로 제공됨―;
    상기 패킷의 패킷 서명을 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들과 비교하는 단계에 기초하여, 상기 패킷의 상기 패킷 서명이 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것을 결정하는 단계; 및
    상기 패킷의 패킷 서명이 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭한다는 결정에 응답하여, 상기 패킷과 관련되는 상기 시퀀스 식별자로서, 상기 복수의 패킷 서명들 중 상기 제 1 패킷 서명에 대응하는, 상기 복수의 시퀀스 식별자들 중 제 1 시퀀스 식별자를 식별하는 단계
    를 더 포함하는, 방법.
  5. 제 2 항에 있어서,
    상기 2차 시퀀스 식별자는 상기 패킷과 관련되는 가상 로컬 영역 네트워크(VLAN) 태그의 하나 또는 그 초과의 비트들 중 적어도 하나에 표시되며, 상기 제 2 시퀀스 식별자를 표시하는 상기 VLAN 태그의 상기 하나 또는 그 초과의 비트들은 미리 결정되는 인코딩과 관련되는, 방법.
  6. 제 1 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는,
    상기 복수의 패킷들의 각각에 대해,
    상기 패킷과 관련되는 상기 시퀀스 식별자가 상기 제 1 네트워크 디바이스에서 이전에 수신된 상기 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자와 시퀀스로 있는지 여부를 결정하는 단계;
    상기 패킷과 관련되는 상기 시퀀스 식별자는 상기 패킷 스트림과 관련되는 상기 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 상기 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있다는 결정에 응답하여, 상기 패킷이 상기 패킷 스트림과 관련되는 상기 하나 또는 그 초과의 이전에 수신되는 패킷들과 순서대로 있는 것을 결정하는 단계; 및
    상기 패킷과 관련되는 상기 시퀀스 식별자가 상기 패킷 스트림과 관련되는 상기 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 상기 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있지 않다는 결정에 응답하여, 상기 패킷이 상기 패킷들 스트림과 관련되는 상기 하나 또는 그 초과의 이전에 수신되는 패킷들에 관하여 순서를 벗어나 있는 것을 결정하는 단계
    를 더 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는, 재정렬 버퍼에 상기 복수의 패킷들 중 하나 또는 그 초과의 것을 저장하는 단계를 더 포함하며; 그리고
    상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초하여 적어도 상기 복수의 패킷들의 서브세트를 재정렬하는 단계는, 상기 복수의 패킷들의 서브세트의 각각에 대해, 상기 재정렬 버퍼에 이전에 저장되는 하나 또는 그 초과의 패킷들로 상기 패킷을 재정렬하는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는,
    상기 복수의 패킷들의 각각에 대해,
    상기 패킷과 관련되는 상기 시퀀스 식별자에 기초하여, 상기 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 상기 복수의 패킷들의 최종 패킷에 대해 상기 패킷이 시퀀스에서 더 앞에 있는지 여부를 결정하는 단계;
    상기 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 상기 복수의 패킷들의 상기 최종 패킷에 대해 상기 패킷이 시퀀스에서 더 앞에 있다는 결정에 응답하여, 상기 제 1 네트워크 디바이스에서 상기 패킷을 폐기하는 단계; 및
    상기 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 상기 복수의 패킷들의 상기 최종 패킷에 대해 상기 패킷이 시퀀스에서 더 나중에 있다는 결정에 응답하여, 상기 패킷과 관련되는 상기 시퀀스 식별자에 기초하여 상기 패킷을 재정렬하는 단계
    를 더 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 시퀀스 식별자들은 시퀀스 번호 및 타임스탬프 중 적어도 하나를 포함하는, 방법.
  10. 제 1 항에 있어서,
    상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초하여 적어도 상기 복수의 패킷들의 서브세트를 재정렬하는 것에 응답하여, 방법은,
    상기 제 1 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 적어도 상기 복수의 패킷들의 서브세트를 제공하는 단계를 더 포함하는, 방법.
  11. 제 1 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 단계는,
    상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 적어도 부분적으로 기초하여, 동일한 시퀀스 식별자와 관련되는 2개 또는 그 초과의 패킷들이 상기 제 1 네트워크 디바이스에서 검출되는지 여부를 결정하는 단계;
    상기 동일한 시퀀스 식별자와 관련되는 2개 또는 그 초과의 패킷들이 상기 제 1 네트워크 디바이스에서 검출된다는 결정에 응답하여,
    복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초하여 적어도 상기 복수의 패킷들의 상기 서브세트를 재정렬하기 위해 상기 동일한 시퀀스 식별자와 관련되는 상기 2개 또는 그 초과의 패킷들 중 제 1 패킷을 제공하는 단계; 및
    상기 동일한 시퀀스 번호와 관련되는 상기 2개 또는 그 초과의 패킷들 중 나머지 것을 폐기하는 단계
    를 포함하는, 방법.
  12. 방법으로서,
    통신 네트워크의 제 1 네트워크 디바이스에서, 상기 제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이의 복수의 패킷 라우트들을 통해 상기 통신 네트워크의 상기 제 2 네트워크 디바이스에 패킷 스트림과 관련되는 복수의 패킷들을 전송하도록 결정하는 단계;
    상기 패킷 스트림과 관련되는 상기 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계―상기 2차 시퀀스 식별자는 상기 제 1 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입됨―; 및
    상기 복수의 패킷 라우트들을 통해 제 2 네트워크 디바이스에 상기 복수의 패킷들을 전송하는 단계
    를 포함하며, 상기 복수의 패킷들의 서브세트는 상기 복수의 패킷 라우트들의 각각을 통해 전송되도록 스케줄링되는, 방법.
  13. 제 12 항에 있어서,
    상기 패킷 스트림과 관련되는 상기 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계는,
    상기 복수의 패킷들의 각각에, 상기 제 1 네트워크 디바이스의 상부 프로토콜 계층에 의해 삽입되는 1차 시퀀스 식별자 이외에, 상기 2차 시퀀스 식별자를 삽입하는 단계; 또는
    상기 패킷 스트림과 관련되는 상기 복수의 패킷들이 상기 1차 시퀀스 식별자들을 포함하지 않는다는 결정에 응답하여 상기 복수의 패킷들의 각각에 상기 2차 시퀀스 식별자를 삽입하는 단계
    를 포함하는, 방법.
  14. 제 12 항에 있어서,
    상기 2차 패킷 스트림과 관련되는 상기 하나 또는 그 초과의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계는,
    상기 하나 또는 그 초과의 패킷들의 각각에 대해,
    상기 패킷의 헤더 필드에 상기 2차 시퀀스 식별자를 삽입하는 단계; 및
    상기 제 2 네트워크 디바이스에 상기 2차 시퀀스 식별자를 포함하는 상기 패킷을 전송하는 단계
    를 더 포함하는, 방법.
  15. 제 12 항에 있어서,
    상기 패킷 스트림과 관련되는 상기 복수의 패킷들의 각각에 2차 시퀀스 식별자를 삽입하는 단계는,
    상기 복수의 패킷들의 각각에 대해, 상기 패킷의 헤더 필드 및 상기 패킷의 페이로드 중 적어도 하나에 기초하여 상기 패킷을 고유하게 식별하는 패킷 서명을 결정하는 단계;
    상기 복수의 패킷들의 각각과 관련되는 상기 대응하는 2차 시퀀스 식별자 및 상기 복수의 패킷들의 각각과 관련되는 상기 패킷 서명을 포함하는 시퀀스 목록 패킷을 발생시키는 단계;
    상기 하나 또는 그 초과의 패킷들이 상기 제 1 네트워크 디바이스로부터 상기 제 2 네트워크 디바이스로 전송될 순서를 표시하기 위해 상기 제 2 네트워크 디바이스에 상기 시퀀스 목록 패킷을 전송하는 단계; 및
    상기 시퀀스 목록 패킷에 표시되는 상기 패킷 순서에 따라 상기 제 2 네트워크 디바이스에 상기 복수의 패킷들을 전송하는 단계
    를 더 포함하는, 방법.
  16. 제 12 항에 있어서,
    상기 제 1 네트워크 디바이스에서, 상기 복수의 패킷 라우트들 중 두 번째 것 대신에 상기 복수의 패킷 라우트들 중 제 1 패킷 라우트를 통해 상기 복수의 패킷들 중 하나 또는 그 초과의 것을 전송하도록 결정하는 단계;
    상기 제 2 패킷 라우트를 통해 상기 복수의 패킷들 중 제 1 패킷을 전송하는 단계―상기 복수의 패킷들 중 제 1 패킷은 상기 제 2 패킷 라우트를 통해 전송될 최종 패킷임―;
    상기 제 2 패킷 라우트를 통해 상기 복수의 패킷들 중 제 1 패킷을 전송하는 단계에 응답하여, 미리 결정된 시간 간격 동안 상기 제 1 패킷 라우트 및 상기 제 2 패킷 라우트를 통해 상기 복수의 패킷들 중 후속하는 패킷들의 전송을 방지하는 단계―상기 복수의 패킷들 중 제 1 패킷은 상기 제 2 패킷 라우트를 통해 전송될 최종 패킷임―; 및
    상기 미리 결정된 시간 간격이 경과한 후에 상기 제 1 패킷 라우트를 통해 상기 복수의 패킷들의 후속하는 패킷들을 전송하는 단계
    를 더 포함하는, 방법.
  17. 통신 네트워크 디바이스로서,
    하나 또는 그 초과의 네트워크 인터페이스들; 및
    상기 하나 또는 그 초과의 네트워크 인터페이스들에 커플링되는 재정렬 유닛
    을 포함하며, 상기 재정렬 유닛은,
    상기 통신 네트워크 디바이스와 제 2 통신 네트워크 디바이스 사이에 복수의 패킷 라우트들을 통해 상기 제 2 통신 네트워크 디바이스로부터 상기 통신 네트워크 디바이스에서 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하고―상기 복수의 패킷들의 서브세트는 상기 복수의 패킷 라우트들의 각각을 통해 수신됨―;
    상기 복수의 패킷들과 관련되는 시퀀스 식별자들에 적어도 부분적으로 기초하여, 상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하고; 그리고
    상기 재정렬 유닛이 상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 것에 응답하여, 상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초하여 적어도 상기 복수의 패킷들의 서브세트를 재정렬하도록
    동작가능한, 통신 네트워크 디바이스.
  18. 제 17 항에 있어서,
    상기 통신 네트워크 디바이스와 상기 제 2 통신 네트워크 디바이스 사이의 상기 복수의 패킷 라우트들을 통해 상기 제 2 통신 네트워크 디바이스로부터 수신되는 상기 패킷 스트림과 관련되는 상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들을 결정하도록 동작가능한 재정렬 유닛은,
    상기 복수의 패킷들의 각각이 상기 제 2 통신 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함하는지 여부를 결정하고;
    상기 복수의 패킷들의 각각이 상기 제 2 통신 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 것을 결정하는 상기 재정렬 유닛에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하고; 그리고
    상기 복수의 패킷들의 각각이 상기 2차 시퀀스 식별자를 포함하지 않는다고 결정하는 상기 재정렬 유닛에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자를 결정하도록
    동작가능한 재정렬 유닛을 더 포함하며, 상기 복수의 패킷들의 각각과 관련되는 상기 1차 시퀀스 식별자는 상기 제 2 통신 네트워크 디바이스의 상부 프로토콜 계층들에 의해 삽입되는, 통신 네트워크 디바이스.
  19. 제 18 항에 있어서,
    상기 복수의 패킷들의 각각이 상기 제 2 통신 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다고 결정하는 상기 재정렬 유닛에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하도록 동작가능한 재정렬 유닛은,
    상기 복수의 패킷들의 각각에 대해, 상기 패킷의 하나 또는 그 초과의 헤더 필드들로부터 상기 2차 시퀀스 식별자를 판독하도록 동작가능한 재정렬 유닛을 더 포함하는, 통신 네트워크 디바이스.
  20. 제 18 항에 있어서,
    상기 복수의 패킷들의 각각이 상기 제 2 통신 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다고 결정하는 상기 재정렬 유닛에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하도록 동작가능한 재정렬 유닛은,
    상기 복수의 패킷들의 각각에 대해,
    패킷의 헤더 필드 및 상기 패킷의 페이로드 중 적어도 하나에 기초하여 상기 패킷의 패킷 서명을 결정하고;
    상기 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하고 ―상기 시퀀스 목록 패킷은 상기 패킷 스트림의 상기 복수의 패킷들의 대응하는 각각과 관련되는 대응하는 복수의 시퀀스 식별자들 및 상기 복수의 패킷 서명들을 포함하며, 상기 시퀀스 목록 패킷은 상기 제 2 통신 네트워크 디바이스로부터 상기 통신 네트워크 디바이스로 제공됨―;
    상기 재정렬 유닛이 상기 패킷의 패킷 서명을 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들과의 비교한 것에 기초하여 상기 패킷의 패킷 서명이 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들 중 제 1 패킷 서명에 매칭하는 것을 결정하고; 그리고
    상기 패킷의 상기 패킷 서명이 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들 중 제 1 패킷 서명을 매칭하는 것으로 결정하는 상기 재정렬 유닛에 응답하여, 상기 패킷과 관련되는 상기 시퀀스 식별자로서 상기 복수의 패킷 서명들 중 상기 제 1 패킷 서명에 대응하는 상기 복수의 시퀀스 식별자들 중 제 1 시퀀스 식별자를 식별하도록
    동작가능한 재정렬 유닛을 더 포함하는, 통신 네트워크 디바이스.
  21. 제 17 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록 동작가능한 재정렬 유닛은,
    상기 복수의 패킷들의 각각에 대해,
    상기 패킷과 관련되는 상기 시퀀스 식별자가 상기 통신 네트워크 디바이스에서 이전에 수신된 상기 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신된 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자와 시퀀스로 있는지 여부를 결정하고;
    상기 패킷과 관련되는 상기 시퀀스 식별자가 상기 패킷 스트림과 관련되는 상기 대응하는 하나 또는 그 초과의 이전에 수신된 패킷들과 관련되는 상기 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있다고 결정하는 상기 재정렬 유닛에 응답하여, 상기 패킷이 상기 패킷 스트림과 관련되는 상기 하나 또는 그 초과의 이전에 수신된 패킷들과 순서대로 있는 것으로 결정하고; 그리고
    상기 패킷과 관련되는 상기 시퀀스 식별자가 상기 패킷 스트림과 관련되는 상기 대응하는 하나 또는 그 초과의 이전에 수신된 패킷들과 관련되는 상기 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있지 않다고 결정하는 상기 재정렬 유닛에 응답하여, 상기 패킷이 상기 패킷 스트림과 관련되는 상기 하나 또는 그 초과의 이전에 수신된 패킷들에 관하여 순서를 벗어나는 것으로 결정하도록 동작가능한
    재정렬 유닛을 더 포함하는, 통신 네트워크 디바이스.
  22. 제 17 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록 동작가능한 재정렬 유닛은, 재정렬 버퍼에서 상기 복수의 패킷들 중 하나 또는 그 초과의 것을 저장하도록 동작가능한 재정렬 유닛을 더 포함하며; 그리고
    상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초하여 적어도 상기 복수의 패킷들의 서브세트를 재정렬하도록 동작가능한 재정렬 유닛은, 상기 복수의 패킷들의 서브세트의 각각에 대해, 상기 재정렬 버퍼에 이전에 저장되는 하나 또는 그 초과의 패킷들로 상기 패킷을 재정렬하도록 동작가능한 재정렬 유닛을 더 포함하는, 통신 네트워크 디바이스.
  23. 제 17 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하도록 동작가능한 재정렬 유닛은,
    상기 복수의 패킷들의 각각에 대해,
    상기 패킷과 관련되는 상기 시퀀스 식별자에 기초하여, 상기 통신 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 상기 복수의 패킷들의 최종 패킷에 대해 상기 패킷이 시퀀스에서 더 앞에 있는지 여부를 결정하고;
    상기 통신 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 상기 복수의 패킷들의 상기 최종 패킷에 대해 상기 패킷이 시퀀스에서 더 나중에 있는 것을 결정하는 상기 재정렬 유닛에 응답하여, 상기 통신 네트워크 디바이스에서 상기 패킷을 폐기하고; 그리고
    상기 제 1 통신 네트워크 디바이스의 상부 프로토콜 계층들에 대한 프로세싱을 위해 제공되는 상기 복수의 패킷들의 상기 최종 패킷에 대해 상기 패킷이 이후의 시퀀스에 있다는 것을 결정하도록 동작가능한 상기 재정렬 유닛에 응답하여, 상기 패킷과 관련되는 상기 시퀀스 식별자에 기초하여 상기 패킷을 재정렬하도록 동작가능한 재정렬 유닛을 더 포함하는 통신 네트워크 디바이스.
  24. 명령들이 저장되어 있는 하나 또는 그 초과의 기계-판독가능한 저장 매체로서,
    상기 명령들은, 하나 또는 그 초과의 프로세서들에 의해 실행될 때, 상기 하나 또는 그 초과의 프로세서들로 하여금,
    제 1 네트워크 디바이스와 제 2 네트워크 디바이스 사이에 복수의 패킷 라우트들을 통해 상기 제 2 네트워크 디바이스로부터 상기 제 1 네트워크 디바이스에서 수신되는 패킷 스트림과 관련되는 복수의 패킷들과 관련되는 시퀀스 식별자들을 결정하는 동작 ―상기 복수의 패킷들의 서브세트는 상기 복수의 패킷 라우트들의 각각을 통해 수신됨―;
    상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 적어도 부분적으로 기초하여, 상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 동작; 및
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 동작에 응답하여, 상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들에 기초하여 적어도 상기 복수의 패킷들의 서브세트를 재정렬하는 동작
    을 포함하는 동작들을 수행하게 하는, 하나 또는 그 초과의 기계-판독가능한 저장 매체.
  25. 제 24 항에 있어서,
    상기 제 1 네트워크 디바이스와 상기 제 2 네트워크 디바이스 사이의 상기 복수의 패킷 라우트들을 통해 상기 제 2 네트워크 디바이스로부터 수신되는 상기 패킷 스트림과 관련되는 상기 복수의 패킷들과 관련되는 상기 시퀀스 식별자들을 결정하는 동작은,
    상기 복수의 패킷들의 각각이 상기 제 2 네트워크 디바이스의 하이브리드 적응 계층에 의해 삽입되는 2차 시퀀스 식별자를 포함하는지 여부를 결정하는 것;
    상기 복수의 패킷들 각각이 상기 제 2 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를, 상기 제 1 네트워크 디바이스에서 결정하는 것; 및
    상기 복수의 패킷들 각각이 상기 2차 시퀀스 식별자를 포함하지 않는 것으로 결정하는데 응답하여, 상기 복수의 패킷들의 각각과 관련되는 1차 시퀀스 식별자를, 상기 제 1 네트워크 디바이스에서 결정하는 것을 더 포함하며, 상기 복수의 패킷들의 각각과 관련되는 상기 1차 시퀀스 식별자는 제 2 네트워크 디바이스의 상부 프로토콜 층들에 의해 삽입되는, 하나 또는 그 초과의 기계-판독가능한 저장 매체.
  26. 제 25 항에 있어서,
    상기 복수의 패킷들 각각이 상기 제 2 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하는 상기 동작은:
    상기 복수의 패킷들의 각각에 대해, 상기 패킷의 하나 또는 그 초과의 헤더 필드들로부터 상기 2차 시퀀스 식별자를 판독하는 단계를 더 포함하는, 하나 또는 그 초과의 기계-판독가능한 저장 매체.
  27. 제 25 항에 있어서,
    상기 복수의 패킷들의 각각이 상기 제 2 네트워크 디바이스의 상기 하이브리드 적응 계층에 의해 삽입되는 상기 2차 시퀀스 식별자를 포함한다는 결정에 응답하여, 상기 복수의 패킷들의 각각과 관련되는 상기 2차 시퀀스 식별자를 결정하는 동작은,
    상기 복수의 패킷들의 각각에 대해,
    패킷의 헤더 필드 및 상기 패킷의 페이로드 중 적어도 하나에 기초하여 상기 패킷의 패킷 서명을 결정하는 것;
    상기 패킷의 패킷 서명을 시퀀스 목록 패킷에서의 복수의 패킷 서명들과 비교하는 것 ―상기 시퀀스 목록 패킷은 상기 패킷 스트림의 상기 복수의 패킷들의 대응하는 각각과 관련되는 대응하는 복수의 시퀀스 식별자들 및 상기 복수의 패킷 서명들을 포함하며, 상기 시퀀스 목록 패킷은 상기 제 2 네트워크 디바이스로부터 상기 제 1 네트워크 디바이스로 제공됨―;
    상기 패킷의 상기 패킷 서명은 상기 패킷의 패킷 서명을 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들과 비교하는 상기 동작에 기초하여 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들 중 제 1 패킷 서명을 매칭하는 것으로 결정하는 것; 및
    상기 패킷의 상기 패킷 서명은 상기 시퀀스 목록 패킷에서의 상기 복수의 패킷 서명들 중 제 1 패킷 서명을 매칭하는 것으로 결정하는 상기 동작에 응답하여, 상기 패킷과 관련되는 상기 시퀀스 식별자로서 상기 복수의 패킷 서명들 중 제1 패킷 서명에 대응하는 상기 복수의 시퀀스 식별자들 중 제 1 시퀀스 식별자를 식별하는 것을 더 포함하는, 하나 또는 그 초과의 기계-판독가능한 저장 매체.
  28. 제 24 항에 있어서,
    상기 복수의 패킷 라우트들을 통해 수신되는 상기 패킷들 스트림과 관련되는 상기 복수의 패킷들 중 하나 또는 그 초과의 것에 대한 순서를 벗어난 전달을 검출하는 동작은,
    상기 복수의 패킷들의 각각에 대해,
    상기 패킷과 관련되는 상기 시퀀스 식별자는 상기 제 1 네트워크 디바이스에서 이전에 수신되는 상기 패킷 스트림과 관련되는 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 하나 또는 그 초과의 시퀀스 식별자와 시퀀스로 있는지 여부를 결정하는 것;
    상기 패킷과 관련되는 상기 시퀀스 식별자는 상기 패킷 스트림과 관련되는 상기 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 상기 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있는 것으로 결정하는데 응답하여, 상기 패킷이 상기 패킷 스트림과 관련되는 상기 하나 또는 그 초과의 이전에 수신된 패킷들과 순서대로 있는 것으로 결정하는 것; 및
    상기 패킷과 관련되는 상기 시퀀스 식별자는 상기 패킷 스트림과 관련되는 상기 대응하는 하나 또는 그 초과의 이전에 수신되는 패킷들과 관련되는 상기 하나 또는 그 초과의 시퀀스 식별자들과 시퀀스로 있지 않은 것으로 결정하는데 응답하여, 상기 패킷은 상기 패킷 스트림과 관련되는 상기 하나 또는 그 초과의 이전에 수신된 패킷들을 참조하여 순서를 벗어나는 것으로 결정하는 것을 더 포함하는, 하나 또는 그 초과의 기계-판독가능한 저장 매체.
KR1020147012078A 2011-11-03 2012-11-02 다중 전달 라우트 패킷 정렬 KR101492510B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/288,319 US8824477B2 (en) 2011-11-03 2011-11-03 Multiple delivery route packet ordering
US13/288,319 2011-11-03
PCT/US2012/063359 WO2013067377A2 (en) 2011-11-03 2012-11-02 Multiple delivery route packet ordering

Publications (2)

Publication Number Publication Date
KR20140073561A true KR20140073561A (ko) 2014-06-16
KR101492510B1 KR101492510B1 (ko) 2015-02-11

Family

ID=47190184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147012078A KR101492510B1 (ko) 2011-11-03 2012-11-02 다중 전달 라우트 패킷 정렬

Country Status (6)

Country Link
US (1) US8824477B2 (ko)
EP (1) EP2774334B1 (ko)
JP (1) JP5827413B2 (ko)
KR (1) KR101492510B1 (ko)
CN (1) CN103918233B (ko)
WO (1) WO2013067377A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9059932B2 (en) 2011-11-03 2015-06-16 Qualcomm Incorporated Packet ordering based on delivery route changes in communication networks

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694618B2 (en) 2011-04-13 2014-04-08 Microsoft Corporation Maximizing data transfer through multiple network devices
US8627412B2 (en) 2011-04-14 2014-01-07 Microsoft Corporation Transparent database connection reconnect
US8824477B2 (en) 2011-11-03 2014-09-02 Qualcomm Incorporated Multiple delivery route packet ordering
US20130311668A1 (en) * 2012-05-15 2013-11-21 Shahid Akhtar Methods And Systems For Providing Fairness And Stability To Video Streams
US9083649B2 (en) * 2012-07-02 2015-07-14 Cox Communications, Inc. Systems and methods for managing network bandwidth via content buffering
US9160650B2 (en) * 2013-06-17 2015-10-13 Futurewei Technologies, Inc. Enhanced flow entry table cache replacement in a software-defined networking switch
US9860174B2 (en) 2013-08-28 2018-01-02 Qualcomm Incorporated Methods and apparatus for acknowledgment of multi-user uplink wireless transmissions
US20150063190A1 (en) * 2013-08-28 2015-03-05 Qualcomm Incorporated Methods and apparatus for multiple user uplink
US9363209B1 (en) * 2013-09-06 2016-06-07 Cisco Technology, Inc. Apparatus, system, and method for resequencing packets
JP2015207996A (ja) * 2014-04-07 2015-11-19 パナソニックIpマネジメント株式会社 通信制御方法および通信制御装置
US9674303B1 (en) * 2014-11-19 2017-06-06 Qlogic, Corporation Methods and systems for efficient data transmission in a data center by reducing transport layer processing
EP3224967A1 (en) * 2014-11-27 2017-10-04 Philips Lighting Holding B.V. Packet order identification with reduced overhead in packetized data transmission
US10630585B2 (en) * 2015-04-16 2020-04-21 Arista Networks, Inc. Method and system for withdrawing programmed routes in network devices
CN106533503B (zh) * 2015-09-10 2019-05-31 深圳市中兴微电子技术有限公司 一种电力线网络通信的方法及装置
US10003466B1 (en) * 2015-09-15 2018-06-19 Amazon Technologies, Inc. Network traffic with credential signatures
US9985904B2 (en) * 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US20170195218A1 (en) * 2015-12-30 2017-07-06 Qualcomm Incorporated Routing in a hybrid network
DE102016002944C5 (de) * 2016-03-11 2022-08-04 Audi Ag Steuervorrichtung und Verfahren zum Koppeln einer Antennenanordnung eines Kraftfahrzeugs mit zumindest einer Fahrzeugkomponente
US10462744B2 (en) * 2017-02-14 2019-10-29 Intel IP Corporation Methods and systems for reuse of a wireless medium during wake-up of a wireless device
US10992603B2 (en) * 2017-09-27 2021-04-27 Apple Inc. Block acknowledgement with out-of-order packets
EP3531637B1 (en) * 2018-02-21 2020-01-01 Deutsche Telekom AG Techniques for efficient reordering of data packets in multipath scenarios
CN110858930B (zh) * 2018-08-23 2022-03-18 慧与发展有限责任合伙企业 数据帧传输
US10531436B1 (en) * 2018-09-12 2020-01-07 Capital One Services, Llc Multiple network connections to increase data throughput of mobile device
EP3657758B1 (de) * 2018-11-20 2021-05-26 Siemens Aktiengesellschaft Verfahren zur funktional sicheren verbindungsidentifizierung
CN110099403B (zh) * 2019-05-17 2022-07-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备及存储介质
CN112448794A (zh) * 2019-08-29 2021-03-05 华为技术有限公司 一种帧处理方法和装置
CN112511449B (zh) * 2019-09-16 2022-12-30 华为技术有限公司 一种报文流乱序检测方法、报文处理方法及装置
US11777846B2 (en) * 2020-05-06 2023-10-03 Nokia Solutions And Networks Oy Ultra reliable segment routing
US11392527B2 (en) 2020-08-31 2022-07-19 Micron Technology, Inc. Ordered delivery of data packets based on type of path information in each packet
US11658922B2 (en) * 2020-08-31 2023-05-23 Micron Technology, Inc. Optional path ordering in packet-based network
US11477138B2 (en) * 2020-12-23 2022-10-18 Nokia Solutions And Networks Oy Packet reordering in packet switched networks
US11575612B2 (en) 2021-06-07 2023-02-07 Cisco Technology, Inc. Reducing packet misorderings in wireless networks
JP7523494B2 (ja) * 2021-08-23 2024-07-26 メラノックス テクノロジーズ、リミテッド 冗長データ・パケットを生成及び排除する通信装置
CN116074258A (zh) * 2021-11-04 2023-05-05 中兴通讯股份有限公司 用户报文的转发方法、装置、电子设备和存储介质
CN118381771B (zh) * 2024-06-21 2024-08-20 湘江实验室 一种基于交换机的rdma数据流在网重排序方法

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0462540B1 (en) 1990-06-18 2000-08-30 Fujitsu Limited Switch-back system for asynchronous transfer mode network
EP0562215A1 (en) 1992-03-27 1993-09-29 International Business Machines Corporation Order preserving transmission of data streams
US5946309A (en) * 1996-08-21 1999-08-31 Telefonaktiebolaget Lm Ericsson Hybrid ATM adaptation layer
US5864535A (en) 1996-09-18 1999-01-26 International Business Machines Corporation Network server having dynamic load balancing of messages in both inbound and outbound directions
JP3510634B2 (ja) * 1996-12-26 2004-03-29 株式会社エヌ・ティ・ティ・ドコモ データ伝送方法
US6130896A (en) 1997-10-20 2000-10-10 Intel Corporation Wireless LAN segments with point coordination
US6245684B1 (en) * 1998-03-13 2001-06-12 Applied Materials, Inc. Method of obtaining a rounded top trench corner for semiconductor trench etch applications
US6272551B1 (en) 1998-04-08 2001-08-07 Intel Corporation Network adapter for transmitting network packets between a host device and a power line network
US6970419B1 (en) 1998-08-07 2005-11-29 Nortel Networks Limited Method and apparatus for preserving frame ordering across aggregated links between source and destination nodes
JP4373012B2 (ja) 1998-10-30 2009-11-25 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー データ伝送
DE60005150T2 (de) 2000-05-17 2004-04-01 Matsushita Electric Industrial Co., Ltd., Kadoma Hybrides ARQ Verfahren zur Datenpaketübertragung
US7050392B2 (en) 2001-03-30 2006-05-23 Brocade Communications Systems, Inc. In-order delivery of frames during topology change
US6947379B1 (en) * 2001-04-03 2005-09-20 Cisco Technology, Inc. Packet routing to reduce susceptibility to disturbances
US6947736B2 (en) 2001-11-20 2005-09-20 Texas Instruments Incorporated Universal broadband home network for scalable IEEE 802.11 based wireless and wireline networking
US7113763B2 (en) 2002-06-03 2006-09-26 Nokia Corporation Bluetooth access point and remote bluetooth modules for powerline based networking
JP3807614B2 (ja) * 2002-08-12 2006-08-09 株式会社Kddi研究所 マルチリンク通信システムにおけるパケットの順序制御方法
US7415028B1 (en) 2003-02-11 2008-08-19 Network Equipment Technologies, Inc. Method and system for optimizing routing table changes due to ARP cache invalidation in routers with split plane architecture
US7159034B1 (en) 2003-03-03 2007-01-02 Novell, Inc. System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
KR100568229B1 (ko) 2003-07-10 2006-04-07 삼성전자주식회사 애드혹 네트워크상에서 동적으로 arp 캐시 테이블을갱신하는 방법 및 시스템
US7440443B2 (en) 2003-09-23 2008-10-21 Arkados, Inc Integrated universal network adapter
US7382733B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
JP3836110B2 (ja) 2004-02-19 2006-10-18 松下電器産業株式会社 無線通信システム及びパケットルーティング方法
US7269403B1 (en) 2004-06-03 2007-09-11 Miao George J Dual-mode wireless and wired power line communications
US7391317B2 (en) 2004-09-08 2008-06-24 Satius, Inc. Apparatus and method for transmitting digital data over various communication media
US7262695B2 (en) 2004-12-15 2007-08-28 At&T Intellectual Property, Inc. Network interface device
US8755407B2 (en) 2005-02-18 2014-06-17 Qualcomm Incorporated Radio link protocols for enhancing efficiency of multi-link communication systems
US7349325B2 (en) 2005-05-07 2008-03-25 Motorola, Inc. Broadband over low voltage power lines communications system and method
US7899057B2 (en) 2006-04-28 2011-03-01 Jds Uniphase Corporation Systems for ordering network packets
KR100651737B1 (ko) 2005-06-17 2006-12-01 한국전자통신연구원 Plc 망과 무선망을 연동하는 액세스 포인터 및 그 방법
US7835743B2 (en) 2005-08-03 2010-11-16 Toshiba America Research, Inc. Seamless network interface selection, handoff and management in multi-IP network interface mobile devices
US8213895B2 (en) 2005-10-03 2012-07-03 Broadcom Europe Limited Multi-wideband communications over multiple mediums within a network
US8406239B2 (en) 2005-10-03 2013-03-26 Broadcom Corporation Multi-wideband communications over multiple mediums
EP1770870B1 (en) 2005-10-03 2019-04-03 Avago Technologies International Sales Pte. Limited Powerline communication device and method
US20070076666A1 (en) 2005-10-03 2007-04-05 Riveiro Juan C Multi-Wideband Communications over Power Lines
US20070130598A1 (en) 2005-12-01 2007-06-07 Electronics And Telecommunications Research Institute Digital satellite broadcasting set-top box, and home network control system employing the same
KR100809261B1 (ko) 2006-09-29 2008-03-03 한국전자통신연구원 QoS를 지원하는 고속 전력선 네트워크와 이더넷 간의브리지 시스템
KR100823737B1 (ko) 2006-09-29 2008-04-21 한국전자통신연구원 서로 다른 QoS를 제공하는 네트워크들을 위한 브리지장치
CN101014001A (zh) * 2006-11-13 2007-08-08 陈哲 Rtp报文修补装置、rtp报文排序方法和填补方法
JP4963226B2 (ja) * 2006-12-15 2012-06-27 富士通株式会社 無線通信システムにおける復旧方法、および無線ネットワーク制御装置
US20080159288A1 (en) 2006-12-29 2008-07-03 Lucent Technologies Inc. TRAFFIC ENGINEERING AND FAST PROTECTION USING IPv6 CAPABILITIES
JP2008211682A (ja) 2007-02-27 2008-09-11 Fujitsu Ltd 受信プログラム、送信プログラム、送受信システム、および送受信方法
US8358669B2 (en) * 2007-05-01 2013-01-22 Qualcomm Incorporated Ciphering sequence number for an adjacent layer protocol in data packet communications
CN101068170A (zh) * 2007-06-05 2007-11-07 华为技术有限公司 一种报文接收异常的检测方法、系统及其装置
KR20090062664A (ko) 2007-12-13 2009-06-17 한국전자통신연구원 선박 내부 네트워크에서의 통신 시스템 및 방법
JP4591789B2 (ja) * 2007-12-13 2010-12-01 Necエンジニアリング株式会社 パケット転送方法およびパケット転送装置
US8483223B2 (en) * 2008-02-01 2013-07-09 Qualcomm Incorporated Packet transmission via multiple links in a wireless communication system
US7769002B2 (en) 2008-02-15 2010-08-03 Intel Corporation Constrained dynamic path selection among multiple communication interfaces
JP2009239444A (ja) * 2008-03-26 2009-10-15 Mitsubishi Electric Corp パケット順序制御方法、受信装置、送信装置および通信システム
WO2010075409A1 (en) * 2008-12-22 2010-07-01 LiveTimeNet, Inc. A system and method for recovery of packets in overlay networks
CN102652445B (zh) * 2009-12-09 2016-02-03 皇家飞利浦电子股份有限公司 基于代理冗余的无线通信方法
US9059932B2 (en) 2011-11-03 2015-06-16 Qualcomm Incorporated Packet ordering based on delivery route changes in communication networks
US8824477B2 (en) 2011-11-03 2014-09-02 Qualcomm Incorporated Multiple delivery route packet ordering
US9065749B2 (en) 2011-11-21 2015-06-23 Qualcomm Incorporated Hybrid networking path selection and load balancing
US9608899B2 (en) * 2011-11-21 2017-03-28 Qualcomm Incorporated Packet-based aggregation of data streams across disparate networking interfaces

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9059932B2 (en) 2011-11-03 2015-06-16 Qualcomm Incorporated Packet ordering based on delivery route changes in communication networks

Also Published As

Publication number Publication date
EP2774334B1 (en) 2020-01-01
KR101492510B1 (ko) 2015-02-11
CN103918233B (zh) 2016-08-24
WO2013067377A3 (en) 2013-07-11
JP5827413B2 (ja) 2015-12-02
EP2774334A2 (en) 2014-09-10
US8824477B2 (en) 2014-09-02
JP2014534779A (ja) 2014-12-18
CN103918233A (zh) 2014-07-09
US20130114606A1 (en) 2013-05-09
WO2013067377A2 (en) 2013-05-10

Similar Documents

Publication Publication Date Title
KR101492510B1 (ko) 다중 전달 라우트 패킷 정렬
US9059932B2 (en) Packet ordering based on delivery route changes in communication networks
US11063884B2 (en) Ethernet enhancements
KR101696776B1 (ko) 향상된 확인응답 및 재송신 메커니즘
KR101749261B1 (ko) 스트림들의 끊김없는 경로 스위칭을 갖는 하이브리드 네트워킹 시스템
US8717871B2 (en) Packet retransmission control system, method and program
EP4351208A1 (en) Method and system for improving wireless link efficiency
WO2013078229A1 (en) Aggregation of data streams across networking interfaces
JP2015502712A (ja) ハイブリッドネットワーキングパス選択および負荷バランシング
WO2011083670A1 (ja) パケット整列装置、受信装置、及びパケット整列方法
US9722943B2 (en) Seamless switching for multihop hybrid networks

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 5