KR20130135894A - 데이터를 수신 및 포워딩하기 위한 장치 및 방법 - Google Patents

데이터를 수신 및 포워딩하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20130135894A
KR20130135894A KR1020137020579A KR20137020579A KR20130135894A KR 20130135894 A KR20130135894 A KR 20130135894A KR 1020137020579 A KR1020137020579 A KR 1020137020579A KR 20137020579 A KR20137020579 A KR 20137020579A KR 20130135894 A KR20130135894 A KR 20130135894A
Authority
KR
South Korea
Prior art keywords
packets
output
dequeuing
packet
queue
Prior art date
Application number
KR1020137020579A
Other languages
English (en)
Inventor
쇠렌 크라그
Original Assignee
나파테크 에이/에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 나파테크 에이/에스 filed Critical 나파테크 에이/에스
Publication of KR20130135894A publication Critical patent/KR20130135894A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • 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
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5683Buffer or queue management for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6205Arrangements for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first

Landscapes

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

Abstract

방법 및 장치는 미리 결정된 시간의 주기 동안 데이터를 수신하지 않았던 큐들에 더미 패킷들을 포워딩함으로써 HOL(Head-Of-Lin) 블로킹을 방지하도록 되어 있다. HOL의 이러한 방지는, 데이터가 다수의 FIFO들 각각에 포워딩 되는 입력 또는 데이터가 FIFO들로부터 디큐잉되는 출력 상에서 이루어질 수 있다. 상기 더미 패킷들은 최근에 큐잉되거나 또는 디큐잉된 패킷들에 유도된 타임 스템프를 제공받을 수 있다.

Description

데이터를 수신 및 포워딩하기 위한 장치 및 방법{AN APPARATUS AND METHOD FOR RECEIVING AND FORWARDING DATA}
본 발명은 데이터를 수신 및 포워딩하기 위한 장치 및 방법에 관한 것이며, 특히 복수의 데이터 소스로부터 수신된 데이터 패킷을 시간 순서화하는 방식에 관한 것이다.
시간 순서화는 예컨대, US6647017 및 US5337308에서 보여진다.
본 발명의 제1 양상은 데이터를 포워딩하기 위한 시스템에 관한 것이며, 상기 시스템은:
- 복수의 데이터 패킷을 수신하고 각각의 수신된 데이터 패킷에 타임 스템프(time stamp)를 제공하기 위한 수신 수단과,
- 출력 엔드 또는 출력 저장 위치를 각각 가지는 복수의 FIFO 입력 큐(queue)들과,
- 입력 큐에 각 수신된 데이터 패킷을 표시하도록 된 포워딩 수단과,
- 입력 큐들로부터 데이터 패킷들을 디큐잉(de-queuing)하기 위한 수단을 포함하고, 상기 디큐잉 수단은 입력 큐의 출력 엔드/저장 위치에 표시되고 모든 입력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프(the lowest time stamp)를 가진 패킷을 디큐잉하도록 되어 있으며, 상기 디큐잉 수단은 오직, 각각의 입력 큐가 하나 이상의 패킷을 가질 때 패킷을 디큐잉하도록 되어 있고,
상기 시스템은, 미리 결정된 시간의 주기 동안 어떠한 데이터 패킷도 관련 입력 큐에 포워딩되지 않았을 때 입력 큐에 타임 스템프를 구비한 더미 패킷을 전송하기 위한 생성 수단을 더 포함한다.
현재의 맥락에서, 상기 시스템은 모놀리식(monolithic)이며 단일 하우징 내에 위치되는 바, 상기 하우징은 복수의 별개 회로/요소로 구성되거나, 또는 심지어 소정의 영역에 걸쳐 산재되고, 데이터를 교환할 수 있도록 WWW와 같거나 WWW를 포함하는 하나 이상의 네트워크를 통해 서로와 (유선을 통해 또는 무선으로) 연결된 개별 회로들 또는 네트워크 유닛들로 구성된다. 이러한 교환은 TCP, 이더넷, 블루투스 등과 같은 어떤 데이터 전달 프로토콜 하에서 그리고 무선 또는 유선의 어떤 타입의 데이터 전달을 이용하여 이루어질 수 있다. 자연적으로, 상기 시스템의 개별 수단 각각은 FPGA들, ASIC들 등과 같은 하나 이상의 프로세서에 의해 형성될 수 있거나 또는 단일의 이러한 프로세서는 복수의 수단을 형성하고 복수의 단계를 수행할 수 있다.
시스템의 기능은 단지, 데이터를 포워딩하는 것일 필요가 없다. 데이터 패킷들의 분석과 같은 추가적인 프로세싱이 하기에 더 기술된 바와 같이 수행될 수 있다.
현재의 맥락에서, 상기 데이터는 하나 이상의 데이터 패킷일 수 있다. 데이터 패킷들은 순서화되거나 또는 스트림들로 그룹화될 수 있고, 데이터는 하나 이상의 이러한 스트림을 포함할 수 있다.
데이터 패킷은 네트워크, 데이터 케이블, 데이터 버스, 트렁크 등 상에서 전송되거나 또는 이들에 의해 이동(transport)되는 어떤 타입의 데이터 유닛일 수 있다. 자연적으로, 데이터 유닛은 다수의 서로 다른 표준들 또는 UDP 및 TCP 데이터 패킷들과 같은 데이터 패킷 타입이 존재하는 우산(umbrella)인 이더넷 표준과 같은 하나 이상의 데이터 표준에 부합한다. 데이터 패킷은 일반적으로, 어드레스 데이터, 페이로드 등과 같은 다수의 서로 다른 정보 아이템 또는 타입들을 가지는 바, 이들은 데이터 패킷 내에 잘 정의되거나 알려진 위치들에 각각 위치된다. 이러한 위치들 및 타입들은 통상적으로, 데이터 패킷 타입마다 다르겠지만, 일반적으로, 상기 데이터 패킷 타입 및 이에 따른 상기 데이터 패킷의 개별 컨텐츠의 위치들은 실제 데이터 패킷으로부터 결정될 수 있고, 그 이후에, 어드레스 데이터 및/또는 페이로드와 같은 개별 데이터 아이템들이 유도(derive)되고, 변경되며 그리고/또는 분석에 사용된다. 이 타입 또는 표준은, 패킷의 특별한 데이터 아이템이 상기 타입/표준을 식별할 때와 같이, 데이터 패킷으로부터 직접적으로 유도될 수 있거나, 또는 상기 데이터 패킷으로부터 유도된 데이터로부터 유도될 수 있는 바, 이는 상기 데이터 패킷의 데이터 아이템의 타입들 및 위치들의 인식 및 후속적으로는, 상기 데이터 패킷 - 상기 데이터가 이 데이터 패킷 내의 상기 위치(들)에서 발견될 수 있다 - 의 타입(들) 또는 표준(들)의 결정에 기초하는 바와 같다.
수신되는 데이터 패킷들은 복수의 방식으로 다수의 사유들에 대해 사전-순서화될(pre-ordered) 수 있다. 일반적으로, 컴퓨터들 간의 데이터 교환은 파일 전달, TCP 전달, VoIP 등이고, 여기서 개별 패킷들의 순서는 중요하다. 일반적으로, 이러한 전달들은 스트림들이라 일컬어진다.
데이터 패킷들의 스트림은 일반적으로, 단일 전송기로부터 하나 이상의 수신기로 전송되는 데이터 패킷들의 시퀀스(sequence)이다. 이 데이터 패킷들은 예컨대, 상기 패킷들의 페이로드인 작은 부분들에 전송되는 단일 파일 등에 관련된다. 그 다음, 상기 전송기 및 수신기 또는 어떤 중재 네트워크 요소들은 일반적으로, 상기 패킷에 역시 표시된 어드레스들을 가질 것이다. 추가적으로, 정보를 식별하는 다른 스트림이 개별 데이터 패킷 표준에 따라 상기 데이터 패킷에 존재할 수 있다.
따라서, 스트림은 예컨대, 어드레스 및/또는 정보를 식별하는 스트림에 기초하여 식별될 수 있고, 이에 의하여, 일관되게 사용된 경우, 동일한 정보가 유도될 수 있으며, 어떤 후속적인 프로세스가 단지 상기 정보로부터 상기 스트림을 식별할 수 있다. 다른 상황에서, 데이터 패킷들은 상기 패킷 내에 순번(sequence number) 또는 타임 스템프와 같은 상기 패킷들의 순서를 결정하는 정보를 제공받을 수 있다. 따라서, 이 정보는 패킷들을 순서화하기 위해 사용될 수 있다.
수신 수단은 실제로, 데이터 또는 데이터 패킷을 수신 및/또는 저장할 수 있다. 대안적으로는, 상기 데이터 패킷은 다른 위치에서 또는 장치 - 수신/저장 장치가 이 장치와 통신한다 - 에서 수신 또는 저장될 수 있고, 이로 인해 상기 데이터 패킷의 데이터가 수신되며 그 다음, 상기 데이터가 다른 장치에 저장되어 있는 동안 상기 데이터를 판독함으로써 원격으로 액세스된다. 후자의 경우는 일반적으로, 데이터 패킷이 원격으로 액세스됨에 따라 느린 프로세싱을 제공할 것이다.
수신 수단은 일반적으로, 네트워크로부터 데이터 패킷들을 수신하도록 된 네트위킹 요소의 타입일 것이다. 따라서, 이 수단은 이더넷 데이터 패킷들이 수신되기 위한 것일 경우, PHY, MAC 등을 가질 수 있다. 다수의 데이터 프로토콜들이 알려져 있지만, 숙련자들은 어느 수신 수단들이 어떤 프로토콜들에 관련하여 유용할지 알 것이다. 상기 수신 수단은 데이터 패킷들을 저장하거나 추가의 프로세싱/저장/이동을 위하여 상기 수신 수단을 통해 직접적으로 상기 데이터 패킷들을 공급(feed)할 수 있다. 가장 자주로는, 버퍼가 지연들을 고려하도록 제공되지만, 이는 요구사항이 아니다.
또한, 수신 수단은 각 데이터 패킷에 타임 스템프를 제공한다. 그 다음, 상기 수신 수단은 시점 또는 각 데이터 패킷의 수신/액세스를 결정하고 대응하는 정보를 제공하도록 되어 있다. 일반적으로, 시간의 표준 표시, 즉 시/분/초와 같은 어떤 시간의 표시가 사용될 수 있다. 대안적으로는, 시간은 숫자에 의한 단순한 방식으로 표시될 수 있다. 자연적으로, 이 숫자는 요구되는 경우 랩 어라운드(wrap around)될 수 있다.
시간이 자연적으로 변함에 따라, 시간 또는 숫자는 증분/감분되는 바와 같이 바람직하게는 시간적으로 등거리 지점들(equidistant points in time)에서 변경된다. 개별 결정 수단의 로컬 클록에서 시간의 경과는 주기적인 신호에 의해 제어될 수 있는 바, 상기 신호는 시간/숫자를 증분/감분하기 위해 사용된다. 이 주기적인 신호는 수신 수단에 의해 유도된 것일 수 있거나 또는 외부 유닛으로부터 수신될 수 있다. 하나의 클록은 하나보다 많은 수신 수단이 사용되는 경우, 모든 수신 수단에 대해 사용될 수 있거나 또는 수신 수단 각각은 하나의 클록을 가지는 바, 여기서 클록들은 동기화된다.
타임 스템프는 데이터 패킷과 함께 제공될 수 있지만 바람직하게는, 상기 데이터 패킷에 타임 스템프 데이터를 추가함으로써 상기 데이터 패킷 내에 제공된다. 그 다음, 상기 데이터 패킷의 어떤 차후의 분석이 상기 데이터 패킷 자체에 기초하여 수행될 수 있다.
본 발명에 따르면, 복수의 FIFO 입력 큐들이 제공된다. 이 맥락에서, 선입선출 큐(First In First Out queue)는 예컨대, 순서를 가지는 다수의 데이터 아이템들/패킷들을 표시한다. 가장 오래된 아이템/패킷은 판독되도록 바로 다음에 있게 되고, 새로운 아이템들/패킷들은 가장 늦게 수신된 아이템/패킷/식별자 이후에 추가된다.
FIFO는 입력 엔드로부터 출력 엔드로의 선형적인 순서에 따른 다수의 저장 위치들을 가지는 저장소에서 구현될 수 있고, 여기서 패킷들은 상기 입력 엔드로부터 출력 엔드를 향해 이동하며 출력 엔드로부터 출력된다. 일반적으로, 저장소는 별도로 어드레싱가능한 요소들을 가지며, 다수의 이러한 요소들은 큐를 형성할 수 있다. 자연적으로, 저장 유닛은 모놀리식 저장 유닛 또는 공간에서 분리된 다수의 저장 요소들로 구성된 유닛일 수 있다. 보통의 저장 기술들은 하드 드라이브들, 플로피 디스크들, RAM, ROM, PROM, EPROM, EEPROM, 플래시, 메모리 카드들, CD-ROM, DVD, 메모리카드들 등에 근거할 수 있다. 자연적으로, FIFO는 예컨대, 순환 저장소에서 구현될 수 있고, 여기서 데이터/아이템들은 이동되지 않지만 포인터(pointer)들은 입력 엔드 및 출력 엔드를 가리키며 이동된다.
큐는 실제 데이터 패킷들 또는 상기 패킷들의 일부들을 보유(hold)할 수 있거나 또는 실제 데이터 패킷들이 다른 곳에 저장되는 경우, 데이터 패킷들의 식별자들만이 상기 큐에 보유된다는 점에서 가상적일 수 있다. 포워딩 수단이 데이터 패킷들을 포워딩하도록 되어 있는 경우, 상기 데이터 패킷의 일부만이 포워딩될 필요가 있는 바, 이는 데이터의 일부가 필요로되지 않고 폐기될 수 있는 경우, 공간을 절약할 수 있기 때문이다. 상기 데이터 패킷이 다시 요구되는 출력이 아니면, 예컨대 상기 데이터 패킷 내의 어드레싱 정보는 공간을 차지하지 하지 않도록 삭제될 수 있다.
이러한 저장/표시는 데이터가 저장된 저장소 또는 큐의 어드레스를 유도 또는 수신하는 포워딩 수단을 포함할 수 있다. 언급된 바와 같이, 상기 큐 또는 모든 큐들은 예컨대, 순환 버퍼들과 같은 저장소에 구현될 수 있고, 이로 인해 큐의 엔드에 데이터를 추가하는 것은 그 큐의 엔드 포인터에서의 어드레스에 데이터를 추가하는 것일 것이다. 이 어드레스는 포워딩 수단 자체에 의해서 유도될 수 있거나 또는 요청에 따라서와 같이 스케줄러, 중재기(arbiter) 또는 다른 어드레스 생성 요소로부터 수신될 수 있다.
바람직하게는, 데이터를 나타내기 위해 사용되는 어떤 포인터들과 같은 데이터의 위치들은, 상기 데이터를 디큐잉할 때에도 유지되어서, 갱신된 정보가 포워딩 수단 또는 그에 대한 어드레스를 생성하는 수단들에게도 이용가능하다.
구현과 관계없이, FIFO 동작은 바람직하다. 이 FIFO는, 시간 순서와 같은 바람직한 순서로 FIFO에 추가된 데이터 패킷들/아이템들이 그 순서를 유지하고 그에 따라 그 순서로 출력될 것이라는 장점을 가진다. 그러므로, 상기 데이터 패킷들은 저장의 순서로 판독되는 한은 어떤 타입의 저장소에도 추가될 수 있다.
별개의 저장 유닛들이 제공되는 경우, 상기 어드레스는 실제 저장 유닛의 신원 및 상기 별개의 저장 유닛 내의 "로컬 어드레스" 둘 모두를 기술할 것이다.
일 실시예에서, 각각의 수신 수단은, 하나보다 많은 수단이 사용되는 경우, 오직, 큐들의 서브-그룹에 식별자들/데이터 패킷들을 포워딩하도록 되어 있고, 여기서 서로 다른 수신 수단은 큐들의 서로 다른 서브-그룹들에 식별자들/데이터 패킷들을 포워딩한다. 하나보다 많은 수신 요소가 큐에 식별자들/데이터 패킷들을 포워딩하도록된 상황에서, 각 큐 내의 식별자들/데이터 패킷들이 자신의 타임 스템프들에 의해 지시된 순서로 포워딩됨을 보장하는 스케줄러가 제공됨이 바람직하다. 따라서, 일 실시예에서, 이 수신 수단들은 공유된 큐에 대한 패킷들/식별자들의 타임 스템프들에 관련하여 상기 스케줄러에 정보를 포워딩하고, 상기 스케줄러는, 상기 식별자/패킷이 그 큐에 표시될 수 있을 때 관련된 수신 수단들에게 지시할 것이다.
입력 큐들로부터 데이터 패킷들을 디큐잉하는 것은 상기 큐들로부터 데이터 패킷들 또는 상기 데이터 패킷들의 일부들을 실제로 제거하는 것일 수 있다. 대안적으로는, 상기 큐는, 데이터 패킷들이 특별한 저장 영역에 포워딩되고 상기 영역으로부터 제거될 필요가 없다는 점에서 가상적일 수 있지만, 큐는 상기 데이터 패킷들을 제거함 없이 식별된 데이터 패킷들의 순서에 의해 정의될 수 있다. 따라서, 상기 큐는 가상적이고, 데이터 패킷은 데이터 패킷들의 순서로부터 상기 데이터 패킷의 식별을 제거함으로써 삭제/제거/디큐잉될 수 있다.
다른 상황에서, 큐는 데이터 패킷들 또는 데이터 패킷들의 식별자들의 순환 리스트와 같은 리스트일 수 있고, 여기서 상기 큐의 엔드들은 예컨대, 포인터들에 의해 식별된다. 따라서, 디큐잉은 디큐잉된 패킷/식별자로부터 그 다음으로 엔드 포인터를 시프트하는 것일 수 있다.
따라서, 디큐잉 수단은 실제로 상기 큐로부터 데이터 패킷을 판독 또는 삭제하기 위한 수단일 수 있다. 대안적으로는, 디큐잉 수단은 큐의 표시 상에서 동작하고, 단지 상기 큐에 있는 상기 큐의 표식(indication)을 제거할 수 있다.
상기 큐들을 FIFO 큐들이고, 제거되는 데이터 패킷들은 항상 상기 큐에서 가장 먼저 수신된 데이터 패킷이다.
본 발명에 따르면, 디큐잉 수단은 한 번에 하나씩 데이터 패킷들을 디큐잉하도록 되어 있다. 상기 디큐잉 수단은 오직, 모든 큐들이 하나 이상의 데이터 패킷을 보유하고 있는 경우 데이터 패킷을 디큐잉한다.
또한, 디큐잉 수단은 최저 타임 스템프를 갖는 패킷을 디큐잉한다. 이와 관련하여, 제1의 또는 최고(top)의 데이터 패킷들만이 보여진다는 것이 상기된다. 또한, 타임 스템프는 정수들의 간격의 정수일 수 있고, 그럼으로써 타임 스템프가 "랩 어라운드(wrap around)"할 수 있으며, 따라서 가장 높은 정수가 사실상 가장 낮은 정수보다 낮은 것으로서 보여질 수 있다.
이러한 방식으로, 더 낮은 타임 스템프의 데이터 패킷이 다른 큐에 공급되지만 지연되어서, 추후의 패킷이 디큐잉을 위해 도착할 때 이 큐가 비게된다면, 더 높은 타임 스템프를 갖는 데이터 패킷이 더 낮은 타임 스템프를 갖는 데이터 패킷을 추월(overtake)할 수 없음이 보장된다.
데이터 패킷을 위한 큐를 선택하기 위하여, 데이터 패킷들의 우선 순위(priority)과 같은 서로 다른 기법들이 선택될 수 있음이 주목된다. 따라서, 큐가 어떤 시간의 주기 동안 "법적으로(legally)" 비어있을 수 있으며, 이것이 프로세스를 스톨(stall)시켜서는 안된다.
그러나, 이러한 타입의 시스템들은 비어있는 큐가 프로세스 스톨을 야기할 것이라는 점에서 HOL(Head-Of-Line) 블로킹으로서 알려져 있는 것을 경험할 수 있다.
이러한 타입의 블로킹을 막기 위하여, 미리 정의된 시간의 주기 동안 패킷이 전혀 전송되지 않았던 큐에 더미 패킷을 전송하는 생성 수단(generating mean)이 제공된다.
따라서, 큐가 비어있고 이에 따라 시스템을 스톨시킨다면, 이러한 상황은 생성 수단이 그 큐에 더미 패킷을 전송함으로써 종료되며, 여기서 이후에 디큐잉 수단이 이 패킷에 작용하여 디큐잉을 시작할 것이다.
이와 관련하여, 디큐잉 수단은 디큐잉 후에 더미 패킷들과 데이터 패킷들을 서로 다르게 처리할 수 있다 하더라도, 상기 두 가지 타입의 데이터 패킷들을 동등하게 다룬다.
이와 관련하여, 큐에 대한 더미 패킷의 추가 및 디큐잉이 큐들에 대한 데이터 패킷들의 추가 및 디큐잉처럼 수행될 수 있다. 그러나, 더미 패킷의 유일한 관련 부분이 타임 스템프일 수 있고, 그럼으로써 더미 패킷이 큐에서 매우 작은 공간을 차지할 수 있다는 것이 주목된다.
현재의 맥락에서, 더미 패킷은 타임 스템프 외의 다른 정보를 필요로하지 않는다. 당연히, 디-큐잉 수단이 예컨대, 디큐잉된 패킷들로부터 어드레스 데이터를 판독하고 이에 대해 작동하도록 되어 있다면, 더미 패킷에 또한 어드레스 데이터를 제공하는 것이 바람직할 수 있다. 또한, 디큐잉될 때 더미 패킷이 이 데이터로부터 이익을 얻을 수 있는 다른 회로들에 공급된다면, 더미 패킷이 링크 정보 또는 이와 유사한 것과 같은 다른 데이터에 추가될 수 있다. 보통, 더미 패킷에는 큐의 데이터 패킷들과 관련된 데이터가 제공되지 않고, 그것이 놓였던 큐와 관련된, 큐 길이와 같은 데이터가 제공될 수 있다.
바람직하게는, 더미 패킷의 타임 스템프는 더미 패킷의 실제 발생 시점이다. 대안적으로, 실제 시점에서 미리결정된 시간의 주기를 뺀 것과 같은 더 앞선 시점(earlier point in time)이 사용될 수 있다. 대안적으로, 나중의 시점이 사용될 수 있다. 그러나, 큐 내의 모든 패킷들이 그들의 타임 스템프들의 순서로 큐 내에 위치되는 것이 바람직하다는 것이 상기되어야 한다.
물론, 미리결정된 시간의 주기는 요구되는 대로 선택될 수 있다. 더 짧은 시간의 주기는 프로세스의 스톨을 더 작게 할 수 있으나, 더 많은 더미 패킷들이 포워딩되고 따라서 더 많은 대역폭이 소모된다. 더 긴 시간의 주기는 사용되는 대역폭을 감소시킬 것이나 스톨을 더 길어지게 할 수 있다. 시간의 주기가 수신 수단에 있어서 어떤 최대 프로세싱 지연에 관련되어 결정될 수 있으며, 따라서 이 시간이 경과된 때, 모든 앞선 패킷들이 큐들 내에 나타나는 것이 보장되고, 이후 더미 패킷이 발생될 수 있음이 보장된다.
따라서, 더미 패킷들을 포함하는 이 디큐잉 방법론은 수신 수단들과 큐들 사이의 지연에 있어서 어떤 차이들을 정정하기 위해 또는 심지어 데이터 패킷의 수신 전에 사용될 수 있다. 이는 더미 패킷이 발생되기 전에 경과될 수 있는 시간의 주기에 반영될 수 있다.
일 실시예에서, 단일 수신 수단이 사용된다. 이와 관련하여, 상기 수신 수단이 데이터 패킷을 모든 입력 큐들에 포워딩하는 것을 관리하고 있으므로, 더미 패킷들이 상기 수신 수단에 의해 발생될 수 있다.
바람직한 실시예에서, 그러나, 수신 수단은, 각각 복수의 데이터 패킷들을 수신하고 그리고 각각의 수신된 데이터 패킷에 타임 스템프를 제공하도록 되어 있는 복수의 물리적으로 별개인 수신 회로들을 포함하며, 각각의 수신 회로는 생성 수단을 포함한다.
복수의 수신 수단이 제공될 때, 더 많은 혹은 더 적은 그러한 수신 수단이 시스템의 성능을 조정하기 위하여 제공될 수 있다는 점에서 시스템이 보다 다목적(versatile)이 된다.
그러나, 이 상황에서, 더미 패킷들은 개별 수신 수단에 의해 발생될 수 있다. 따라서, 수신 수단이 미리 결정된 시간의 주기 동안 소정의 입력 큐에 패킷을 포워딩하지 않았음을 알게 된다면, 상기 수신 수단은 다른 수신 수단이 데이터 패킷들 또는 더미 패킷들을 포워딩했는지 여부에 관계없이 더미 패킷을 포워딩할 수 있다.
다른 실시예에서, 복수의 수신 수단으로부터 개별 입력 큐들로 포워딩되는 데이터 패킷들이 정확한 순서로 포워딩되는 것을 보장하기 위하여 스케줄러가 제공된다. 이 스케줄러는 또한 모든 입력 큐들로의 모든 데이터 패킷 전달을 모니터링하고 따라서 이 입력 큐가 미리 결정된 시간의 주기 동안 어떤 수신 수단으로부터도 데이터 패킷들을 수신하지 않았을 때에만 스타빙 큐(starving queue)에 단일 더미 패킷을 발생시킬 수 있다는 점에서 더미 패킷들을 발생시키기 위해 사용될 수 있다.
대안적으로, 스케줄러는 더미 패킷을 발생시키고 이를 스타빙 입력 큐에 포워딩할 것을 수신 수단에 지시할 수 있다. 이와 관련하여, 수신 수단 중 가장 덜 바쁜 수신 수단과 같은 어떤 수신 수단이 사용될 수 있다. 수신 수단의 "바쁨의 정도(degree of busyness)"는 개별 수신 수단으로부터 큐들로의, 수신 수단으로부터의 데이터 패킷들의 전송 요청의 수로부터 결정될 수 있다.
물론, 각각의 수신 수단이 다른 수신 수단으로부터 데이터 패킷들을 수신하지 않는 입력 큐들로 데이터 패킷들을 포워딩하면, 수신 수단 자체가 큐들 내의 패킷들의 정확한 순서 및 더미 패킷들의 생성을 보장할 수 있으므로, 단 하나의 수신 수단을 갖는 상황에서와 같이, 스케줄러가 요구되지 않는다.
그러나, 각각이 수신되는 데이터 패킷들을 타임 스탬핑하도록 된 복수의 수신 수단이 제공될 때, 타임 스템프가 조직화(coordinate)되는 것이 요구된다. 따라서, 수신 수단 모두가 공통의 클록 신호를 수신하여 타임 스탬핑이 조직화되는 것이 요구된다. 대안적으로 또는 추가적으로, 각각의 수신 수단은 모든 그러한 클록들이 동기화되는 로컬 클록을 포함할 수 있다.
일 실시예에서, 디큐잉 수단은 더미 패킷들을 폐기하도록 되어 있다. 따라서, 디큐잉 수단은 그러한 더미 패킷들을 출력하지 않을 것이다. 반면에, 디큐잉 수단은 디큐딩된 데이터 패킷들을 출력하도록 될 수 있으며, 상기 디큐딩된 데이터 패킷들은 이들이 어떤 입력 큐에 공급되는지에 관계없이 이제 이들의 타임 스템프들의 순서대로 출력될 것이다.
이 출력 데이터 패킷들은 상기 패킷들의 분석과 같은 어떤 타입의 사용을 위해 출력될 수 있다. 데이터 패킷들은 이제 그들의 도착 시간에 따라 순서화되고, 그럼으로써 예컨대 데이터 패킷들의 스트림들의 분석이 용이하게 된다.
이 분석 후에, 또는 단순히 디큐잉 후에, 데이터 패킷들은 어떤 바람직한 방식으로 시스템으로부터 출력될 수 있다. 이는 예를 들어, 패킷이 수신되어온 것과 동일한 데이터 전송 링크(들)/케이블(들) 또는 심지어 포트에 대한, 동일한 시간 순서로의 요구되는 출력일 수 있다. 이 상황에서, 본 시스템은 그 통신 링크 상에서 투명하거나 비가시적일 수 있다.
일 실시예에서, 시스템은 각각이 출력 엔드 또는 저장 위치를 갖는 복수의 FIFO 출력 큐들을 더 포함하고, 디큐잉 수단은 입력 큐들로부터 디큐잉된 데이터 패킷들을 입력 큐들로부터의 디큐잉의 순서로 출력 큐들 중 하나 이상의 큐에 포워딩하도록 되어 있다.
이 출력 큐들은 또한 입력 큐들을 구현하는 저장소와 같은 공통의 저장소에 위치될 수 있고, 그리고/또는 수신 수단 내에 구현될 수 있다. 데이터 패킷들이 디큐잉되는 수신 수단 내에 작은 큐들이 존재하고, 그리고 수신 수단 내의 큐들이 피딩되는 또 다른 저장소 내에 큰 큐들이 존재하는 시스템이 사용될 수 있다.
물론, 모든 수신된 또는 디큐잉된 데이터 패킷들이 출력 큐들로 포워딩될 필요는 없다. 일부 상황들에서, 정체(congestion)가 경험된다면 패킷 드롭핑(packet dropping)이 요구되고 허용가능할 수 있다. 패킷 드롭핑은 보통의 활동(usual activity)이고, 이는 본 시스템의 투명도/비가시성에 영향을 주지 않을 수도 있다.
출력 큐들로 포워딩되는 데이터 패킷들은 입력 큐들로부터의 디큐잉의 순서로 그리고 따라서 그들의 타임 스템프들의 순서로 출력 큐들로 포워딩된다. 따라서, 디큐잉 및 디큐잉된 데이터 패킷들에 대해 수행되는 어떤 분석 등이 데이터 패킷들을 재순서화(reorder)하지 않을 것이다. 따라서, 이러한 방식으로, 입력 큐들의 경우에서와 같이, 개별 출력 큐들 내의 데이터 패킷들이 그들의 타임 스템프 값들에 의해 순서화된다.
일 실시예에서, 디큐잉 수단은 입력 큐로부터, 다른 입력 큐들로부터의 패킷들을 수신하지 않는 출력 큐들로만 패킷들을 디큐잉한다. 이 상황에서, 그 입력 큐로부터의 더미 패킷들이 모든 그러한 출력 큐들로 복사될 수 있다.
다른 실시예에서, 디큐잉 수단은 디큐잉된 데이터 패킷으로부터 타임 스템프를 유도하고, 더미 패킷을 발생시키며, 상기 더미 패킷에 상기 유도된 타임 스템프를 제공하고 그리고 상기 더미 패킷을 출력 큐(적어도 미리결정된 시간 기간 동안 디큐잉된 데이터 패킷들이 포워딩되지 않은 출력 큐)로 포워딩하도록 되어 있다.
이는 디큐잉 수단 그 자체가 신뢰가능한 타임 스템프를 발생시킬 수 없고, 이에 의해, 바로 전에 출력 큐로 포워딩된 패키지 또는 새로 발생된 더미 패킷 직후에 포워딩될 패키지와 같은 최근에 디큐잉된 패키지(데이터 또는 더미)로부터 타임 스템프를 복사하는 것이 훨씬 쉬우므로 유익하다. 물론, 새로 발생된 더미 패킷의 타임 스템프는 어떤 2, 4, 6, 8, 10 또는 50 개의 새로 디큐잉된 패킷들의 타임 스템프일 수 있다.
특별한 상황에서, 하나의 입력 큐와 출력 큐를 포함하는 큐들의 쌍들이 존재하며, 상기 쌍들의 큐들은 중첩되지 않고, 디큐잉 수단은 하나의 쌍 중의 입력 큐로부터 디큐잉된 데이터 패킷들을 상기 쌍 중의 출력 큐에 공급하도록 되어 있으며, 디큐잉 수단은 추가적으로 어떤 더미 패킷들을 상기 쌍 중의 입력 큐로부터 상기 쌍 중의 출력 큐로 공급하도록 되어 있다.
이 쌍들이 중복되지 않는다는 것은 각각의 입력 큐와 각각의 출력 큐가 있는 경우, 이들이 단 하나의 쌍의 멤버임을 의미한다.
이후 하나의 쌍 중의 입력 큐로부터 디큐잉된 데이터 패킷들 및 더미 패킷들이 상기 쌍 중의 대응하는 출력 큐에 공급될 수 있다. 다시, 패킷 드롭핑이 허용될 수 있고, 따라서 입력 큐 내의 패킷들과 출력 큐 내의 패킷들 사이의 전체 대응(correspondence)이 있을 필요는 없으나, 상기 쌍 중의 출력 큐 내의 패킷들의 순서가 상기 쌍 중의 입력 큐 내의 순서와 동일할 것이다.
일반적으로, 출력 큐들에서의 더미 패킷들의 사용은, 시스템이 상기 출력 큐들로부터 데이터 패킷들 및 더미 패킷들을 디큐잉하기 위한 출력 디큐잉 수단을 더 포함할 때 흥미로운(interesting) 바, 상기 출력 디큐잉 수단은, 출력 큐의 출력 엔드/저장 위치에 있고 모든 출력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프를 가지는 패킷을 디큐잉하도록 되어 있으며, 상기 출력 디큐잉 수단은 오직, 각각의 출력 큐가 하나 이상의 패킷을 가질 때 패킷을 디큐잉하도록 되어 있다.
따라서, (어떤 드롭된 패킷들을 제외하고는) 출력 큐들의 컨텐츠는 입력 큐들의 컨텐츠와 동일할 수 있으며, 디큐잉이 동일한 방식으로 발생될 때, 동일한 HOL 블록킹이 나타날 수 있다. 그러나, 이는 상기 출력 큐들 및 실제로는, 그렇지 않을 경우 기근 상태(starving)일 수 있는 출력 큐들에 또한 공급되는 더미 패킷에 의해 자동적으로 방지된다.
이 상황에서, 상기 출력 큐들의 디큐잉은, 디큐잉이 상기 출력 큐들의 서브-그룹들 내에서 수행될 수 있다는 점에서 다를 수 있고, 여기서 하나의 서브-그룹의 디큐잉은 다른 서브-그룹의 디큐잉에 독립적일 수 있다. 이는 출력 큐들의 서로 다른 서브-그룹들이 서로 다른 수신 수단과 같은 서로 다른 출력들에 디큐잉될 때의 상황일 수 있다.
자연적으로, 더미 패킷들은, 입력 큐들에 관련된 바와 같이, 어떤 기법/계획이 디큐잉된 패킷들을 출력 큐들에 공급하기 위해 사용될지 그리고 이들이 실제로 시간 순서로 상기 출력 큐들에 공급되는지와 관계없이 어떤 출력 큐들을 위해 생성될 수 있다. 그 다음, 데이터 패킷들을 디큐잉하고 그리고/또는 상기 디큐잉된 데이터 패킷들을 분석하는 어떤 프로세서는 상술된 바와 같이 예컨대, 다른 패킷의 타임 스템프를 복사함으로써 더미 패킷들을 생성할 수 있다. 대안적으로는, 별개의 유닛 또는 요소가 출력 큐들을 모니터링하기 위해 사용되고 요구되는 경우 더미 패킷들을 생성할 수 있다.
본 발명의 제2 양상은 데이터를 수신 및 포워딩하는 방법에 관한 것이며, 상기 방법은:
- 복수의 데이터 패킷을 수신하고 각 개별의 수신된 데이터 패킷에 타임 스템프를 제공하는 단계와,
- 출력 엔드 또는 저장 위치를 각각 가진 복수의 FIFO 입력 큐들 중 하나 이상의 큐에 각각의 수신된 데이터 패킷을 표시하는 단계와,
- 상기 입력 큐들로부터 데이터 패킷을 디큐잉하는 단계를 포함하고, 상기 디큐잉하는 단계는 모든 입력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프를 가진 패킷을 디큐잉하는 것을 포함하고, 상기 디큐잉하는 단계는 오직, 각각의 입력 큐가 하나 이상의 패킷을 가질 때 수행되며,
상기 방법은, 미리 결정된 시간의 주기 동안 어떤 데이터 패킷도 관련 입력 큐에 포워딩되지 않았을 때 입력 큐에 타임 스템프를 포함하는 더미 패킷을 전송하는 단계를 더 포함한다.
일반적으로, 수신하는 단계는 데이터 케이블 또는 링크로부터 데이터 패킷들을 수신하는 것을 포함할 것이다. 이 데이터 이동은 무선(블루투스, WLAN, WAN, 적외선 통신 등) 또는 유선(예컨대, 이더넷) 등과 같은 어떤 바람직한 프로토콜 및 어떤 바람직한 기술을 이용하여 수행될 수 있다.
타임 스템핑은 로컬 클록 또는 수신된 클록킹 신호에 기초할 수 있다.
표시하는 단계는 큐에 데이터 패킷 또는 상기 데이터 패킷의 일부를 실제로 포워딩하는 것을 포함할 수 있다. 대안적으로는, 가상 큐가 단지 패킷의 식별자를 수신하도록 사용될 수 있는 바, 상기 패킷은 다른 곳에 저장되어 있을 수 있다.
유사하게, 디큐잉하는 단계는, 큐가 데이터 패킷을 실제로 보유하고, 상기 데이터 패킷이 디큐잉된 이후에 다른 곳에서 요구되는 상황에서 상기 큐로부터 상기 데이터 패킷을 실제로 판독/제거하는 것을 포함할 수 있다. 대안적으로는, 상기 패킷을 디큐잉하는 것은 상기 큐에서 상기 패킷의 식별자를 제거하여 가상적일 수 있다.
큐는 예컨대, 순환 리스트에서 구현될 수 있고, 여기서 데이터 패킷 또는 상기 데이터 패킷의 식별자를 디큐잉하는 것은 단순히, 상기 큐에 차지된 위치들과 비어 있는 위치들 사이의 경계(limit)를 나타내는 포인터와 같은 위치를 변경하는 것일 수 있어서, 이 데이터 패킷 또는 식별자는 후속적으로 다른 데이터가 중복기재(overwritten)될 수 있다.
상기 디큐잉하는 단계는 단지, 데이터 패킷을 판독하고 그 다음 폐기하는 것을 포함할 수 있다. 대안적으로는, 디큐잉된 데이터 패킷들은 어떤 타입의 프로세서, 서버, 프로세서들의 클러스터 등일 수 있는 디큐잉 수단에 의해 출력되거나 또는 더 분석될 수 있다. 그 다음, 상기 디큐잉 수단은 요구되는 태스크들을 수행할 수 있도록 자신만의 저장소 등을 구비할 수 있다.
전송하는 단계는 중앙 전송을 포함할 수 있고, 그로 인해 오직 단일의 생성 수단만이 요구될 수 있거나, 또는 복수의 생성 수단이 제공될 수 있다. 일 상황에서, 생성 수단은 각각의 수신 수단에 제공된다. 이러한 상황에서, 그리고 복수의 수신 수단이 수신된 데이터 패킷들을 동일한 큐들에 전송하도록 될 때, 큐가 미리 정의된 시간의 주기 동안 복수의 수신 수단으로부터 패킷들을 수신하지 않으면, 복수의 더미 패킷들이 상기 큐에 포워딩될 수 있다. 그러나, 이는 상기 디큐잉 수단이 상기 더미 패킷들을 폐기할 수 있고 큐에 대한 데이터 패킷들의 부재가 자동적으로 대역폭을 제공하게 되어서 상기 더미 패킷들의 전송은 제한 인자가 아니라는 점에서 문제가 되지 않는다.
일 실시예에서, 수신하는 단계는 복수의 물리적으로 별개인 수신 회로들을 포함하는 바, 상기 회로 각각은 복수의 데이터 패킷을 수신하고 각 개별의 수신된 데이터 패킷에 대한/상기 패킷에 타임 스템프를 제공한다. 그 다음, 각각의 수신 회로는, 입력 큐가 미리 결정된 시간의 주기 동안 데이터 패킷을 수신하지 않았다는 사실의 자신만의 결정에 기초하여 또는 예컨대, 이러한 결정을 수행하는 스케줄러에 의해 지시된 바와 같이 상기 더미 패킷을 전송하는 단계를 수행할 수 있다. 또한, 이 스케줄러는, 데이터 패킷들이 정확한 순서로 복수의 수신 수단으로부터 동일한 입력 큐로 포워딩됨을 보장하기 위해 사용될 수 있다. 또한, 별개의 수신 회로들은 각각 클록을 가질 수 있다. 이러한 상황에서, 상기 클록들은 동기화되는 것이 바람직하다. 이러한 클록들의 동기화는 숙련자에게 알려져 있다.
이러한 면에서, 각각의 수신 수단은 적어도 큐(들) - 상기 큐(들)에 수신 수단이 식별자들/데이터 패킷들을 공급하도록 되어 있다 - 에 더미 패킷들을 전송하도록 됨이 바람직할 수 있다.
일 실시예에서, 상기 디큐잉하는 단계는 더미 패킷들을 폐기하는 것을 포함한다. 이 방식에서, 대역폭은 이 더미 패킷들 또는 상기 더미 패킷들 내의 정보가 이후에 요구되지 않는 경우, 디큐잉하는 단계 또는 어떤 차후의 포워딩 또는 분석에서 절약된다.
일 실시예에서, 상기 디큐잉하는 단계는 입력 큐들로부터 디큐잉되는 순서로, 출력 엔드 또는 저장 위치를 각각 가지는 복수의 FIFO 출력 큐중 하나 이상의 큐에 상기 입력 큐들로부터 디큐잉된 데이터 패킷들을 포워딩하는 것을 포함한다.
이 상황에서, 상기 디큐잉 수단은 미리 결정된 시간의 주기 동안 패킷들을 수신하지 않은 출력 큐들에 포워딩 될 더미 패킷들을 생성할 수 있다. 이 상황에서, 상기 디큐잉하는 단계는 디큐잉된 데이터 패킷으로부터 타임 스템프를 유도하는 것과, 더미 패킷을 생성하는 것과, 유도된 타임 스템프를 상기 더미 패킷에 제공하는 것과, 그리고 적어도 미리 정해진 시간의 주기 동안 어떤 디큐잉된 데이터 패킷들도 포워딩되지 않았던 출력 큐에 상기 더미 패킷을 포워딩하는 것을 포함할 수 있다.
이 실시예에서, 또한, 하나의 입력 큐 및 출력 큐를 포함하는 큐들의 쌍들이 존재하는 것이 바람직할 수 있는 바, 상기 쌍들의 큐들은 중첩되지 않고, 여기서 디큐잉하는 단계는 하나의 쌍 중의 입력 큐로부터 디큐잉된 데이터 패킷들을 상기 쌍 중의 출력 큐에 공급하는 것을 포함하며, 상기 디큐잉하는 단계는 추가적으로, 어떤 더미 패킷들을 상기 쌍 중의 입력 큐로부터 상기 쌍 중의 출력 큐로 공급하는 것을 포함한다.
하나의 입력 큐로부터의 패킷들이 다른 입력 큐들로부터 패킷들을 수신하지 않은 출력 큐들에 디큐잉되는 상황에서, 상기 입력 큐로부터의 더미 패킷이 이러한 모든 출력 큐들에 복사될 수 있음이 주목된다.
그 다음, 방법은, 출력 큐의 출력 엔드/저장 위치에 있고 모든 출력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프를 가진 패킷을 디큐잉함으로써 출력 큐들로부터 데이터 패킷들 및 더미 패킷들을 디큐잉하는 단계를 더 포함하고, 상기 출력 큐들로부터 데이터 패킷들을 디큐잉하는 것은 오직, 각각의 출력 큐가 하나 이상의 패킷을 가질 때 수행된다.
다음으로, 본 발명의 바람직한 실시예들이 도면을 참조로 기술될 것이며, 여기서 도 1은 본 발명에 따른 바람직한 실시예를 예시한다.
도 1에서, 시스템(10)이 예시되는 바, 이 시스템에서 다수의 분석기들(12, 14 및 16)이 네트워크, WWW 등과 같은 어떤 소스 또는 소스들로부터 데이터 패킷들을 수신한다.
상기 분석기들(12/14/16)은 이 데이터 패킷들을 타임 스템핑하고 버스(18)를 통해 하나 이상의 큐(32/34/36)에 각 데이터 패킷 또는 상기 데이터 패킷의 적어도 일부를 포워딩한다. 상기 패킷(또는 상기 패킷의 일부)은 자신의 타임 스템프를 포함하여 큐에 저장된다.
상기 타임 스템프는 상기 데이터 패킷에게 제공되거나 또는 상기 데이터 패킷과 함께 - 그러나 상기 데이터 패킷 내에 있지 않고 - 전송될 수 있다.
동일한 기능이 큐에 타임 스템프와 함께 데이터 패킷의 식별자를 포워딩하고 따라서 실제로 데이터 패킷을 전달/복사하지 않을 때 획득될 수 있음이 주목된다.
큐들(32/34/36)로부터, 상기 데이터 패킷들(또는 상기 데이터 패킷들의 일부들)(38)은, 이 패킷들(또는 상기 패킷들의 일부들)의 어떤 바람직한 분석을 수행하고 요구되는 경우 이들을 출력할 수 있는 프로세서(40)에 의해 디큐잉된다.
분석기들(12/14/16)에서의 데이터 패킷들의 타임 스템핑이 상기 분석기들 내의 동기화된, 개별 클록들(미도시)을 이용하여 수행된다. 대안적으로, 글로벌 클로킹 신호가 분석기들(12/14/16)에 포워딩될 수도 있으며, 또는 이들의 조합(combination)이 바람직할 수 있다.
현재의 실시예에서, 상기 프로세서(40)는 데이터 패킷들이 수신되고 타임 스템핑된 바와 동일한 시간 순서로 상기 데이터 패킷들(38)을 수신/디큐잉함이 바람직하다.
이를 보장하기 위해서, 상기 프로세서(40)는 큐들(32/34/36)로부터 최저 타임 스템프를 가진 패킷들을 디큐잉할 것이지만 오직, 적어도 하나의 패킷이 각각의 큐(32/34/36)에 존재할 때 패킷을 디큐잉할 것이다.
그러므로, 각각의 분석기(12/14/16)는 각각의 큐(32/34/36)에 대해 언제 상기 분석기가 큐(32/34/36)에 데이터 패킷(또는 상기 데이터 패킷의 일부)을 포워딩했었는지를 기록할 것이고, 미리 결정된 시간의 주기가 초과되었으면, 더미 패킷 D가 상기 패킷 D의 전송 시점에 대응하는 타임 스템프와 함께 큐에 포워딩될 것이다.
분석기(12/14/16)가 어느 큐들(32/34/36)에 패킷들을 전송하기 원하는지와 상기 패킷들의 타임 스템프들을 스케줄러(20)에게 알려주면, 스케줄러(20)는 개별 큐들(32/34/36)에서의 패킷들(38/D)의 순서화를 보장하기 위해 사용될 수 있다. 이 이후에, 상기 스케줄러(20)는 정확한 순서로 상기 큐들(32/34/36)에 상기 패킷들(38/D)을 공급하도록 분석기들(12/14/16)에게 지시함으로써 상기 패킷들(38/D)을 중재(arbitrate)하고 순서화할 수 있다.
간단한 실시예에서, 각각의 분석기(12/14/16)는 큐들(32/34/36) 중 하나 또는 일부에만 데이터 패킷들을 전송하고, 서로 다른 분석기들(12/14/16)은 서로 다른 큐들에 데이터 패킷들을 전송한다. 그리하여, 상기 스케줄러(20)는 필요로되지 않을 수 있고, 버스(18)가 분석기들(12/14/16)로부터 관련 큐들(32/34/36)로의 개별 데이터 연결들에 의해 대체될 수 있다.
더미 패킷들을 이용함으로써, 시스템의 어떤 HOL(head-of-line) 블록킹만이 미리 결정된 시간의 주기 동안 계속된 이후에, 큐들 내의 (더 앞선 타임 스템프를 가질) 모든 패킷들이 디큐잉됨이 보장된다. 큐(32/34/36)가 복수의 분석기들(12/14/16)로부터와 같이 여러 더미 패킷들 D를 가진다 하더라도 이는 문제가 되지 않는 바, 그 이유는 이 패킷들 D가 정확한 순서로 디큐잉될 것이고, HOF 블록킹을 방지할 것이며, 상기 큐들(32/34/36)과 한 측으로는 상기 분석기들(12/14/16) 사이의 그리고 나머지 측으로는 상기 프로세서(40) 사이의 링크들 상에서 (상기 링크들이 바람직하게는 가능한 전체 대역폭을 수반(carry)할 수 있어야만 한다는 점에서 그리고 상기 더미 패킷들 D의 존재가 우선 순위가 낮은 이 큐들(32/34/36)에 포워딩된 패킷들의 수의 사인(sign)이라는 점에서) 과도한 대역폭을 차지하지 않을 것이기 때문이다.
따라서, 이러한 타입의 디큐잉에서 더미 패킷들의 사용은 버스(18)을 통해서와 같이 분석기들(12/14/16)로부터 큐들(32/34/36)로의 지연들의 어떤 차이들을 고려하는 것을 도울 수 있다. 또한, (타임 스템핑 이후에) 분석기들(12/14/16)에 있어서의 지연들이 고려된다.
대안적인 해법은 하나일 수 있는 바, 여기서 상기 스케줄러(20)는 스스로 더미 패킷들을 생성하고 스타빙 입력 큐들(32/34/36)에 포워딩하거나 또는 바쁘지 않은(non-busy) 분석기와 같은 분석기(12/14/16)에 그렇게 하기를 지시한다.
자연적으로, 프로세서(40)는 더미 패킷들 D의 프로세싱 상에 대역폭을 소비하지 않도록 상기 더미 패킷들 D를 폐기시킬 수 있지만, 또한 상기 프로세서(40)로부터 디큐잉된 데이터 패킷들(38)을 출력하는 것이 바람직할 때, 상기 프로세서(40)를 통하여 이 더미 패킷들 D를 실제로 공급하는 것이 바람직할 수 있다.
프로세서(40)가 도착의 순서(타임 스템프)로 데이터 패킷들(38)을 디큐잉할 때, 상기 프로세서는 하나 이상의 출력 큐(52/54/56)에 동일한 순서로 상기 데이터 패킷들을 출력할 수 있다.
이 출력 큐들(52/54/56)은 입력 큐들(32/34/36)과 동일한 저장소와 같은 공통 저장소에 위치될 수 있고 그리고/또는 상기 출력 큐들은 분석기들(12/14/16) 내에 제공될 수 있다. 일 실시예에서, 작은 큐들이 상기 분석기들 내에 제공되고 더 큰 큐들은 다른 저장소에 제공되는 바, 상기 다른 저장소로부터 데이터 패킷들이 분석기들 내의 상기 큐들로 공급되고, 상기 분석기들로부터 상기 데이터 패킷들을 출력하기 전에 상기 분석기들로부터 디큐잉이 발생된다. 그리하여, 하나의 분석기 내의 디큐잉은 다른 분석기의 디큐잉에 독립적이다.
입력 큐들(32/34/36)에서의 상황과 같이, 전용 링크들이 프로세서(40)와 큐들(52/54/56) 사이에서 사용될 수 있거나 또는 스케줄러(20)와 유사한 스케줄러를 사용하여 버스(18)에 대응하는 버스를 이용하거나 또는 상기 스케줄러(20)를 이용하여 버스(18)를 통하는 것이 가능하다.
이제, 데이터는 동일한 방식으로 출력 버퍼들로부터 디큐잉될 수 있는 바, 즉 패킷은 오직 어떤 큐들도 비어있지 않은 경우 디큐잉되고, 최저 타임 스템프를 가진 데이터 패킷이 디큐잉된다. 이 레벨에서, 더미 패킷들 D은 일반적으로 폐기된다.
일 상황에서, 입력 버스(32/34/36) 및 출력 버스(52/54/56)의 쌍들 사이에 대응(correspondence)이 존재하여서, 하나의 쌍 중의 입력 버스로부터 수신된 패킷들(38/D)이 상기 쌍 중의 출력 버스에 출력된다. 이 상황에서, 더미 패킷들 D이 재사용될 수 있는 바, 즉 입력 포트들에서의 큐 필링 패턴(queue filling pattern)이 출력 포트에 복제될 것이라는 점에 있어서 상기 프로세서를 통하여 출력포트에 공급된다.
특별한 실시예에서, 분석기(12/14/16)의 데이터 출력은 수신된 것과 동일한 바, 이는 데이터 패킷들의 출력의 순서가 데이터 패킷들의 상기 데이터 패킷들의 출력의 순서와 동일함을 의미한다. 자연적으로, 데이터 패킷들은 프로세서 등이 매우 바쁘게 동작하게 되는 경우 드롭핑 될 수 있지만, 패킷들의 출력은 수신의 순서로 순서화된다.
이 실시예는 시스템의 동작이 "투명(transparent)"해야 하는 경우 즉, 패킷들을 출력/수신하는 컴퓨터들이 상기 패킷들이 가로채여(intercept) 분석됨을 확인할 수 없는 경우의 사용들을 위한 것일 수 있다.
더욱 일반적인 실시예에서, 입력 큐와 출력 큐 사이의 어떠한 대응도 존재하지 않아서, 프로세서(40)가 어떤 출력 큐(52/54/56)에도 분석된 데이터 패킷(38)을 포워딩하도록 결정할 수 있다. 이 실시예에서, 상기 프로세서(40)는 바람직하게는, 입력 큐들(32/34/36)로부터 디큐잉된 더미 패킷들을 폐기하지만, 동일한 방식으로 출력 큐들(52/54/56)에서의 사용을 위한 새로운 더미 패킷들 D을 생성하는 바, 즉 상기 프로세서(40)가 미리 결정된 시간의 주기 동안 큐에 데이터 패킷들(38)을 포워딩하지 않았으면, 더미 패킷 D가 HOL 블록킹을 방지하기 위해서 그 큐에 공급된다. 이 새로운 더미 패킷은 다른 최근에 디큐잉된 또는 프로세스된 패킷으로부터 복사된 타임 스템프를 가질 수 있다.
그 다음, 출력 큐들(52/54/56)의 패킷들(38/D)은 시간 순서로 디큐잉될 수 있고, 더미 패킷들 D은 폐기될 수 있으며, 그리고 상기 데이터 패킷들(38)은 어떤 바람직한 방식으로 출력될 수 있다.
입력 큐로부터의 패킷들이 다른 입력 큐들로부터 패킷들을 수신하지 않는 출력 큐들에 포워딩되는 특별한 경우, 상기 입력 큐로부터의 더미 패킷은 이러한 모든 출력 큐들에 복사될 수 있다.
자연적으로, 개별 큐들은 어떤 적절한 방식으로 구현될 수 있고, 특히 입력 큐 및 출력 큐의 쌍들이 형성되는 실시예에서, 단일 메모리가 하나의 쌍 중의 두 큐들을 형성하는 데 사용될 수 있다. 이 메모리는 상기 큐들의 모든 데이터/더미 패킷들을 보유하는 순환 메모리일 수 있고, 여기서 포인터들은 어느 패킷들이 입력 큐에 있는지, 어느 패킷들이 출력 큐에 있는지 그리고 순환 메모리 내의 어느 저장 위치들이 비어 있는지를 기술하기 위해 사용된다. 따라서, 입력 큐로부터 프로세서(40)로의 데이터 패킷들의 디큐잉은 상기 프로세서(40)에로의 데이터 패킷의 전송이거나 또는, 상기 프로세서(40)가 단순히 메모리 내의 데이터 패킷을 판독하는 것일 수 있다. 또한, 그리하여 상기 프로세서(40)로부터 출력 큐들(52/54/56)로의 데이터 패킷들의 "공급(feeding)"은 단순히 상기 메모리 내의 데이터 패킷들을 이동시키거나 또는 더 단순하게는 상기 데이터 패킷이 이제 출력 큐의 일부임을 나타내도록 상기 메모리 내의 포인터에게 다시-명령(re-direct)하도록 하는 명령들을 상기 메모리 또는 상기 메모리의 제어기에 전송하는 것일 수 있다.
자연적으로, 어떤 개수의 큐들이 프로세서 - 또는 각 프로세서 - 를 위해 사용될 수 있다. 이러한 큐들은 또한, 우선 순위화될 수 있거나 또는 서로 다른 우선 순위를 가진 데이터 패킷들 또는 컨텐츠가 서로 다른 큐들에 공급될 수 있다. 따라서, 정체가 보여지는 경우, 단순히 더 낮은 우선 순위의 큐 내의 패킷들(38) 또는 특별한 큐에 전송된 일 타입의 데이터 패킷들을 드롭핑하는 것이 가능할 것이다. 이는 시간 순서를 파괴하지 않고 대역폭 요건들을 감소시켜서 정체를 해소할 것이다.
일 실시예에서, 복수의 프로세서가 사용되는 바, 상기 프로세서 각각은, 스케줄러(20)를 이용하여 버스(18)를 통해 공급될 수 있거나 또는 요구되는 경우 전용 링크들을 통해 분석기들(12/14/16) 또는 다른 분석기들(미도시)로부터 공급될 수 있는 자신만의 (큐들(32/34/36)에 대응하는) 입력 큐들을 가진다. 이 상황에서, 상기 복수의 프로세서는 분석된 패킷들을 폐기하거나, 또는 스케줄러(20)와 유사한 스케줄러를 이용하여 버스(18)에 대응하는 버스를 통해 또는 상기 스케줄러(20)를 이용하여 상기 버스(18)를 통해 (큐들(52/54/56)에 대응하는) 출력 큐들에 데이터 패킷들을 공급할 수 있다. 각각의 프로세서는 큐들 - 이 큐들에 다른 프로세서들은 패킷들을 출력하지 않는다 - 에 데이터 패킷들을 출력할 수 있거나, 또는 복수의 프로세서들은 동일한 큐(들)에 패킷들을 출력할 수 있다.
자연적으로, 분석기들(12/14/16)은 패킷들을 전혀 분석할 필요가 없다. 대안적으로는, 분석기들은 어떤 바람직한 분석을 수행할 수 있고, 추후의 사용을 위해 수행된 어떤 분석 또는 상기 분석의 결과와 관련된 정보를 상기 데이터 패킷들에 추가할 수 있다. 대안적으로는, 상기 정보/결과들은 데이터 패킷들과 함께 그리고 상기 데이터 패킷 내에 있지 않은 채로 포워딩될 수 있다.
일 상황에서, 상기 프로세서(40)는 데이터 패킷(들)의 분석을 수행할 수 있다. 이 분석은 예컨대, 데이터의 동일한 흐름과 관련된 데이터 패킷들의 그룹의 분석과 같은 어떤 바람직한 분석일 수 있다. 이 분석은, 분석기들(12/14/16)에서 수행되는 사전-프로세싱과 관련되고 데이터 패킷과 함께 제공되거나 또는 상기 데이터 패킷 내에 제공되는 어떤 정보에 근거할 수 있다.
다른 상황에서, 상기 프로세서는 단지 데이터 패킷들을 디큐잉하는 것 외에는 다른 어떤 기능도 없어서, 단지 상기 디큐잉의 방법에 의해 획득되는 시간 순서로 디큐잉된 패킷들(데이터 패킷(38) 및 폐기되지 않은 경우 더미 패킷들 D)을 출력하는 역할을 한다.
현재의 타임 스템핑 및 시간 정보가 어떤 바람직한 시간의 표시에 근거할 수 있음이 주목된다. 상기 시간은 외부 세계로부터 수신된 실제 시간일 수 있거나, 또는 시스템에 의해 사용되는 로컬 시간일 수 있다. 상기 시간은 절대적 또는 상대적일 수 있다.
바람직하게는, 상기 시간은 상대적이고 미리 결정된 정수의 범위 내의 정수에 의해 표시된다. 상기 정수는 최대 값에 도달될 때 랩 어라운드된다. 이 정수는 규칙적으로(regularly) 그리고 데이터 패킷들의 수신의 최대 주파수와 관련하여 적절하게 선택된 미리 결정된 주파수로 증분되는 바, 상기 주파수는 데이터율(data rate) 또는 데이터 패킷들의 수신의 대역폭 그리고 최소 데이터 패킷의 사이즈를 의미한다. 두 개의 패킷이 동일한 시간 슬롯 내에서 동일한 분석기(12/14/16)에 의해 수신될 수 없음이 바람직하다.

Claims (14)

  1. 데이터를 포워딩(forward)하기 위한 시스템으로서,
    - 복수의 데이터 패킷들을 수신하고 각각의 수신된 데이터 패킷에 타임 스템프(time stamp)를 제공하기 위한 수신 수단(receiving means)과,
    - 출력 엔드(output end) 또는 출력 저장 위치를 각각 가지는 복수의 FIFO 입력 큐들(FIFO input queue)과,
    - 입력 큐에 각각의 수신된 데이터 패킷을 표시하도록 된 포워딩 수단과,
    - 상기 입력 큐들로부터 데이터 패킷들을 디큐잉(de-queuing)하기 위한 수단을 포함하며, 상기 디큐잉 수단은, 상기 입력 큐의 출력 엔드/저장 위치에 표시되고 모든 입력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프(the lowest time stamp)를 가진 패킷을 디큐잉하도록 되어 있으며, 상기 디큐잉 수단은 오직, 각각의 입력 큐가 하나 이상의 패킷을 가질 때 패킷을 디큐잉하도록 되어 있고,
    상기 시스템은, 미리 결정된 시간의 주기 동안 어떤 데이터 패킷도 관련 입력 큐에 포워딩되지 않았을 때, 상기 입력 큐에 타임 스템프를 가진 더미 패킷(dummy packet)을 전송하기 위한 생성 수단(generating means)을 더 포함하는 것을 특징으로 하는 시스템.
  2. 제1항에 있어서,
    상기 수신 수단은 복수의 데이터 패킷들을 각각 수신하고 각각의 수신된 데이터 패킷에 대해 타임 스템프를 제공하도록 된 복수의 물리적으로 별개인 수신 회로를 포함하고, 각각의 수신 회로는 생성 수단을 포함하는 것을 특징으로 하는 데이터를 포워딩하기 위한 시스템.
  3. 선행하는 청구항들 중 어느 항에 있어서,
    상기 디큐잉 수단은 더미 패킷들을 폐기(discard)하도록 된 것을 특징으로 하는 데이터를 포워딩하기 위한 시스템.
  4. 선행하는 청구항들 중 어느 항에 있어서,
    출력 엔드 또는 저장 위치를 각각 가지는 복수의 FIFO 출력 큐를 더 포함하고, 상기 디큐잉 수단은 상기 입력 큐들로부터 디큐잉된 순서로 하나 이상의 출력 큐에 상기 입력 큐들로부터 디큐잉된 데이터 패킷들을 포워딩하도록 된 것을 특징으로 하는 데이터를 포워딩하기 위한 시스템.
  5. 제4항에 있어서,
    상기 디큐잉 수단은 디큐잉된 데이터 패킷으로부터 타임 스템프를 유도(derive)하고, 더미 패킷을 생성하며, 상기 더미 패킷에 상기 유도된 타임 스템프를 제공하고 그리고 적어도 미리 정해진 시간의 주기 동안 어떤 디큐잉된 데이터 패킷들도 포워딩 되지 않았던 출력 큐에 상기 더미 패킷을 포워딩하도록 된 것을 특징으로 하는 데이터를 포워딩하기 위한 시스템.
  6. 제4항에 있어서,
    하나의 입력 큐 및 출력 큐를 포함하는 큐들의 쌍들이 존재하고, 상기 쌍들의 큐들은 중첩되지 않으며, 여기서 상기 디큐잉 수단은 하나의 쌍 중의 입력 큐로부터 디큐잉된 데이터 패킷들을 상기 쌍 중의 출력 큐에 공급(feed)하도록 되어 있고, 상기 디큐잉 수단은 추가적으로, 어떤 더미 패킷들을 상기 쌍 중의 입력 큐로부터 상기 쌍 중의 출력 큐로 공급하도록 된 것을 특징으로 하는 데이터를 포워딩하기 위한 시스템.
  7. 제6항에 있어서,
    상기 출력 큐들로부터 데이터 패킷들 및 더미 패킷들을 디큐잉하기 위한 출력 디큐잉 수단을 더 포함하고, 상기 출력 디큐잉 수단은, 출력 큐의 출력 엔드/저장 위치에 있고 모든 출력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프를 가진 패킷을 디큐잉하도록 되어 있으며, 상기 출력 디큐잉 수단은 오직, 각각의 출력 큐가 하나 이상의 패킷을 가질 때 패킷을 디큐잉하도록 된 것을 특징으로 하는 데이터를 포워딩하기 위한 시스템.
  8. 데이터를 수신 및 포워딩하기 위한 방법으로서,
    - 복수의 데이터 패킷들을 수신하고 각 개별의 수신된 데이터 패킷에 타임 스템프를 제공하는 단계와,
    - 출력 엔드 또는 출력 저장 위치를 각각 가지는 복수의 FIFO 입력 큐들 중 하나 이상의 큐에, 수신된 데이터 패킷을 각각 표시하는 단계와,
    - 상기 입력 큐들로부터 데이터 패킷을 디큐잉하는 단계를 포함하고, 상기 디큐잉하는 단계는 모든 입력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프를 가지는 패킷을 디큐잉하는 것을 포함하며, 상기 디큐잉하는 단계는 오직, 각각의 입력 큐가 하나 이상의 패킷을 가질 때 수행되고,
    상기 방법은, 미리 결정된 시간의 주기 동안 어떤 데이터 패킷도 관련 입력 큐에 포워딩되지 않았을 때 입력 큐에 타임 스템프를 가진 더미 패킷을 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 수신하는 단계는 복수의 물리적으로 별개인 수신 회로들이 각각 복수의 데이터 패킷을 수신하고 각 개별의 수신된 데이터 패킷에 대한/상기 패킷에 타임 스템프를 제공하는 것을 포함하며, 각각의 수신 회로는 상기 더미 패킷을 전송하는 단계를 수행할 수 있는 것을 특징으로 하는 데이터를 수신 및 포워딩하기 위한 방법.
  10. 제8항 및 제9항 중 어느 항에 있어서,
    상기 디큐잉하는 단계는 더미 패킷들을 폐기하는 것을 포함하는 것을 특징으로 하는 데이터를 수신 및 포워딩하기 위한 방법.
  11. 제8항 내지 제10항 중 어느 항에 있어서,
    상기 디큐잉하는 단계는 상기 입력 큐로부터 디큐잉된 순서로, 출력 엔드 또는 저장 위치를 각각 가지는 복수의 FIFO 출력 큐들 중 하나 이상의 큐에 상기 입력 큐들로부터 디큐잉된 데이터 패킷들을 포워딩하는 것을 포함하는 것을 특징으로 하는 데이터를 수신 및 포워딩하기 위한 방법.
  12. 제11항에 있어서,
    상기 디큐잉하는 단계는 디큐잉된 데이터 패킷으로부터 타임 스템프를 유도하고, 더미 패킷을 생성하며, 상기 유도된 타임 스템프를 더미 패킷에 제공하고, 그리고 적어도 미리 결정된 시간의 주기 동안 어떤 디큐잉된 데이터 패킷들도 포워딩되지 않았던 출력 큐에 상기 더미 패킷을 포워딩하는 것을 포함하는 것을 특징으로 하는 데이터를 수신 및 포워딩하기 위한 방법.
  13. 제11항에 있어서,
    하나의 입력 큐 및 출력 큐를 포함하는 큐들의 쌍들이 존재하고, 상기 쌍들의 큐들은 중첩되지 않으며, 여기서 상기 디큐잉하는 단계는 하나의 쌍 중의 입력 큐로부터 디큐잉된 데이터 패킷들을 상기 쌍 중의 출력 큐에 공급하는 것을 포함고, 상기 디큐잉하는 단계는 추가적으로, 어떤 더미 패킷들을 상기 쌍 중의 입력 큐로부터 상기 쌍 중의 출력 큐로 공급하는 것을 포함하는 것을 특징으로 하는 데이터를 수신 및 포워딩하기 위한 방법.
  14. 제13항에 있어서,
    상기 출력 큐의 출력 엔드/저장 위치에 있고 모든 출력 큐들의 출력 엔드들/저장 위치들에서의 모든 패킷들 중 최저 타임 스템프를 가진 패킷을 디큐잉함으로써 상기 출력 큐들로부터 데이터 패킷들 및 더미 패킷들을 디큐잉하는 단계를 더 포함하고, 상기 출력 큐들로부터 데이터 패킷들을 디큐잉하는 단계는 오직, 각각의 출력 큐가 하나 이상의 패킷을 가질 때 수행되는 것을 특징으로 하는 데이터를 수신 및 포워딩하기 위한 방법.
KR1020137020579A 2011-01-04 2011-12-27 데이터를 수신 및 포워딩하기 위한 장치 및 방법 KR20130135894A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161429663P 2011-01-04 2011-01-04
US61/429,663 2011-01-04
PCT/EP2011/074096 WO2012093056A1 (en) 2011-01-04 2011-12-27 An apparatus and method for receiving and forwarding data

Publications (1)

Publication Number Publication Date
KR20130135894A true KR20130135894A (ko) 2013-12-11

Family

ID=45446045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137020579A KR20130135894A (ko) 2011-01-04 2011-12-27 데이터를 수신 및 포워딩하기 위한 장치 및 방법

Country Status (8)

Country Link
US (1) US9246850B2 (ko)
EP (1) EP2661845B1 (ko)
JP (1) JP6266982B2 (ko)
KR (1) KR20130135894A (ko)
CN (1) CN103283193B (ko)
BR (1) BR112013017245A2 (ko)
DK (1) DK2661845T3 (ko)
WO (1) WO2012093056A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445828B2 (en) * 2013-03-20 2019-10-15 Sagar Dinesh Chheda Method and system for generating stock price alerts based on real-time market data
KR101446441B1 (ko) 2013-08-31 2014-10-06 김태준 타임스탬프 값 조정에 의한 차별적 패킷 손실을 지원하는 가중치 기반 공정 패킷 스케줄링
US10885583B2 (en) * 2013-12-19 2021-01-05 Chicago Mercantile Exchange Inc. Deterministic and efficient message packet management
EP3217614B1 (en) * 2016-03-09 2018-09-19 Mitsubishi Electric R&D Centre Europe B.V. Multiplexing method for scheduled frames in an ethernet switch
KR102643187B1 (ko) * 2017-03-08 2024-03-05 히타치 에너지 리미티드 시간 인식 엔드-투-엔드 패킷 흐름 네트워크들에 사이버 보안을 제공하기 위한 방법들 및 디바이스들
US20190155645A1 (en) * 2019-01-23 2019-05-23 Intel Corporation Distribution of network traffic to processor cores
CN111147573A (zh) 2019-12-24 2020-05-12 网宿科技股份有限公司 一种数据传输的方法和装置

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3979733A (en) * 1975-05-09 1976-09-07 Bell Telephone Laboratories, Incorporated Digital data communications system packet switch
JPH05207062A (ja) * 1992-01-27 1993-08-13 Nec Corp パケット交換方式
US5870396A (en) * 1996-12-31 1999-02-09 Northern Telecom Limited Output queueing in a broadband multi-media satellite and terrestrial communications network
FI104671B (fi) 1997-07-14 2000-04-14 Nokia Networks Oy Kytkentäkenttäjärjestely
US6389031B1 (en) * 1997-11-05 2002-05-14 Polytechnic University Methods and apparatus for fairly scheduling queued packets using a ram-based search engine
US6088734A (en) * 1997-11-12 2000-07-11 International Business Machines Corporation Systems methods and computer program products for controlling earliest deadline first scheduling at ATM nodes
US6091709A (en) * 1997-11-25 2000-07-18 International Business Machines Corporation Quality of service management for packet switched networks
US6072772A (en) * 1998-01-12 2000-06-06 Cabletron Systems, Inc. Method for providing bandwidth and delay guarantees in a crossbar switch with speedup
JP3228708B2 (ja) 1998-04-03 2001-11-12 パイオニア株式会社 伝送システムにおける受信インターフェース装置
US6459708B1 (en) * 1999-12-21 2002-10-01 Toledo Communications, Inc. Apparatus and method for providing T1/E1 telecommunications trunks over IP networks
KR100459036B1 (ko) * 2001-12-18 2004-12-03 엘지전자 주식회사 에이티엠 스위치 시스템의 트레인 패킷 구성 방법
US7236495B2 (en) * 2002-10-25 2007-06-26 Alcatel Lucent Calendar heap system and method for efficient sorting
US7415540B2 (en) * 2002-12-31 2008-08-19 Intel Corporation Scheduling processing threads
FR2854296A1 (fr) * 2003-04-24 2004-10-29 France Telecom Procede et dispositif pour differenciation implicite de la qualite de service dans un reseau
US20050281277A1 (en) * 2004-06-22 2005-12-22 Killian Thomas J Establishing traffic priorities in a voice over IP network
US8265091B2 (en) * 2004-08-18 2012-09-11 Avaya Inc. Traffic multiplexing using timestamping
JP5192378B2 (ja) * 2005-08-04 2013-05-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Pet用のモジュール式信号処理バックボーン
JP4547339B2 (ja) * 2006-01-30 2010-09-22 アラクサラネットワークス株式会社 送信制御機能を備えるパケット中継装置
JP4842075B2 (ja) * 2006-09-28 2011-12-21 京セラ株式会社 音声伝送装置
US7802032B2 (en) * 2006-11-13 2010-09-21 International Business Machines Corporation Concurrent, non-blocking, lock-free queue and method, apparatus, and computer program product for implementing same
US20090097848A1 (en) * 2007-10-12 2009-04-16 Sasak Anthony L Sharing value of network variables with successively active interfaces of a communication node
US8934890B2 (en) 2008-01-11 2015-01-13 Texas Instruments Incorporated Transmission of data bursts on a constant data rate channel
US8121128B2 (en) * 2008-02-26 2012-02-21 Qualcomm Incorporated Method and apparatus for link control in a wireless communication system
CN101674174B (zh) * 2008-09-12 2013-06-05 华为技术有限公司 一种提高时钟稳定度的方法及设备
US7953004B2 (en) * 2009-01-06 2011-05-31 Alcatel Lucent Minimizing effects of packet delay variation in time-division multiplexing pseudowire services
US20120008573A1 (en) * 2010-07-08 2012-01-12 Apple Inc. Radio resource signaling during network congestion in a mobile wireless device

Also Published As

Publication number Publication date
CN103283193B (zh) 2016-01-13
BR112013017245A2 (pt) 2016-10-25
CN103283193A (zh) 2013-09-04
US20130279509A1 (en) 2013-10-24
EP2661845B1 (en) 2014-08-13
JP6266982B2 (ja) 2018-01-24
WO2012093056A1 (en) 2012-07-12
US9246850B2 (en) 2016-01-26
JP2014504817A (ja) 2014-02-24
DK2661845T3 (da) 2014-11-10
EP2661845A1 (en) 2013-11-13

Similar Documents

Publication Publication Date Title
KR20130135894A (ko) 데이터를 수신 및 포워딩하기 위한 장치 및 방법
US10326713B2 (en) Data enqueuing method, data dequeuing method, and queue management circuit
JP5795592B2 (ja) 中央制御装置により制御されるデータパケットを受信し記憶する装置および方法
EP2668753B1 (en) An apparatus and a method for receiving and forwarding data packets
US9582440B2 (en) Credit based low-latency arbitration with data transfer
US10560383B2 (en) Network latency scheduling
JP5957055B2 (ja) 航空機用データ通信ネットワーク
KR101738620B1 (ko) 시간 스탬핑 및 중앙 제어기를 사용한 복수의 어댑터들에 의한 데이터 프레임들의 분산 처리
JP2014504817A5 (ko)
JP2015076889A (ja) 航空機用データ通信ネットワーク
JP6063425B2 (ja) 航空機用データ通信ネットワーク
US10581762B2 (en) Packet scheduling in a switch for reducing cache-miss rate at a destination network node
US8879578B2 (en) Reducing store and forward delay in distributed systems
US8943236B1 (en) Packet scheduling using a programmable weighted fair queuing scheduler that employs deficit round robin
JP5814253B2 (ja) 装置、アセンブリ及びデータパケットの読み出し及び順番付けをする複数の解析手段を操作する方法
WO2012163395A1 (en) An apparatus and a method of parallel receipt, forwarding and time stamping data packets using synchronized clocks
US11310164B1 (en) Method and apparatus for resource allocation
US20140321279A1 (en) Random early drop based processing circuit and method for triggering random early drop based operation according to at least trigger event generated based on software programmable schedule
JP5183460B2 (ja) パケットスケジューリング方法および装置
US20190036832A1 (en) Packet Switching Device Modifying Paths of Flows of Packets Taken Within While Outputting Packets in Received Intra-Flow Order but Not Necessarily Inter-Flow Order
US11784933B2 (en) Traffic shaping offload on a network interface controller
CN116686259A (zh) 数据转发和调度方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application