KR20030053452A - 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치 - Google Patents

네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치 Download PDF

Info

Publication number
KR20030053452A
KR20030053452A KR1020020082078A KR20020082078A KR20030053452A KR 20030053452 A KR20030053452 A KR 20030053452A KR 1020020082078 A KR1020020082078 A KR 1020020082078A KR 20020082078 A KR20020082078 A KR 20020082078A KR 20030053452 A KR20030053452 A KR 20030053452A
Authority
KR
South Korea
Prior art keywords
packet
data
identifier
block
blocks
Prior art date
Application number
KR1020020082078A
Other languages
English (en)
Other versions
KR100920651B1 (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 KR20030053452A publication Critical patent/KR20030053452A/ko
Application granted granted Critical
Publication of KR100920651B1 publication Critical patent/KR100920651B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

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

Abstract

본 발명은 네트워크 프로세서가 데이터 블록들을 재조합하여 원래의 구성 성분으로 된 데이터 패킷들로 되돌리는 방법 및 장치에 관한 것이다. 패킷과 결합되어 있는 각각의 데이터 블록에는 동일한 패킷으로부터 모든 블록들을 조합하는데 사용되는 단일 큐 식별자가 할당된다. 이 패킷에는 또한 다운 스트림 네트워크 프로세서가 패킷을 처리하는데 사용하는 패킷 식별자와, 패킷 식별자의 시작부와 패킷 식별자의 종료부가 할당된다. 상기 블록들은 할당된 큐 식별자에 따라서 조합되며 패킷의 마지막 블록이 수신되면, 이 때 패킷의 재조합이 완료된다.

Description

네트워크 프로세서 내에서 데이터 블록들의 재조합 방법 및 장치{A method and apparatus for reassembly of data blocks within a network processor}
(발명의 분야)
본 발명은 일반적으로 네트워크 프로세서 내의 데이터 패킷들을 처리하는 방법에 관한 것이고, 특히, 초기에 분할된 데이터 패킷의 형태로 데이터 블록들을 재조합하는 방법에 관한 것이다.
(발명의 배경)
컴퓨터 또는 데이터 네트워크들은 사용자가 프린터 서버들, 라우터들, 파일 시스템들, 장거리 데이터 통신 회선들, 검색 엔진 서버들 및 웹사이트 서버들을 공유 또는 다중 사용할 수 있도록 한다. 네트워크를 통해서 전송되는 데이터는 통상적으로 유한한 부분들 또는 블록들로 분할되어 있다. 일부 네트워크 프로토콜들 하에서, 데이터는 고정 길이의 셀들로 분할되어 있다. 예를 들어 비동기 전송 모드(asynchronous transfer mode: ATM) 프로토콜에서 데이터는 53 바이트의 셀들로 분할되며, 각 셀들의 5 바이트들은 헤더(또한 메타 데이터로도 지칭됨)로 지정되고 각 셀의 48 바이트들은 페이로드부(payload) 또는 정보부(information)로 지정된다. 다른 네트워크 프로토콜, 예를 들어 이더넷(Ethernet) 프로토콜은 데이터를 가변 길이의 패킷들로 분할할 수도 있다. 예를 들어 이더넷 패킷은 14 바이트의 헤더와 64 바이트들 내지 1,500 바이트들까지 변화할 수 있는 페이로드부 크기를 가진다.
스위치와 같은 네트워크 프로세서를 통해서 ATM 셀들과 같은 고정 길이의 패킷들을 처리하는 것은 가변 길이의 패킷들을 처리하는 것보다 용이하다. 각각의 고정 길이의 패킷의 길이가 알려져 있기 때문에, 스위치를 통한 전파 시간은 예상이가능하며, 따라서 파이프 라인을 통과시키는 방식과 같이 패킷들을 하나씩 순서대로 스위치를 통해 전달되도록 설정하는 것이 용이하고 즉 패킷들은 인접한 패킷들 사이에는 갭이 전혀 없이 직렬로 단일 데이터 경로를 거쳐서 전달된다.
고정 길이의 패킷들과는 대조적으로, 스위치 또는 다른 네트워크 프로세서들을 통해서 가변 길이의 패킷들을 처리하는데 소요되는 시간은 다양하다. 따라서 가변 길이의 패킷들을 파이프 라인 방식으로 처리하는 것은 불가능하다. 또한 가변 길이의 패킷은 이전 패킷에 대한 처리 시간이 미리 알려져 있지 않기 때문에 버퍼들로부터의 패킷들의 검색과 데이터 중재 스케줄링과 같은 특정 이벤트의 시간을 적절하게 확정하기 곤란하므로 시스템 타이밍에서의 불확실성들이 생성된다.
가변 길이의 패킷들을 보다 관리하기 쉽도록 처리하도록 하기 위해서, 가변 길이의 패킷들을 고정 길이의 블록들로 분할하고, 이들은 스위치 장치(switch fabric) 또는 다른 네트워크 프로세서를 통해서 알려지고 정해진 시간 안에 전달한다. 고정 길이의 블록들은 헤더 부분과 페이로드 부분을 구비하며, 각 패킷에 대한 고정 길이의 블록들의 수는 패킷의 크기와 직접적인 관련이 있다. 고정 길이의 블록들은 네트워크 프로세서 내부에서만 사용되며, 처리 중에 순서대로 유지된다. 블록들은 다운 스트림 네트워크 프로세서로 전달되기 전에 패킷 형태로 다시 재조합된다.
가변 길이의 데이터 패킷들은 또한 블록들에 오류 제어 기능을 적용하기 위한 목적으로 데이터 블록들로 분할할 수도 있다. 이런 방식에 있어서, 데이터 블록들의 연결된 일련의 시퀀스가 오류들에 대해서 보호되는 것뿐만 아니라, 이 시퀀스블록들 내의 각각의 블록 또한 보호될 수 있게 된다.
(이 발명의 간단한 요약)
본 발명은 네트워크 스위치와 같은 네트워크 프로세서를 통해서 처리하기에 용이하도록 데이터 블록들을 사전에 분할된 패킷(또는 패킷 데이터 유니트, packet data unit: PDU)으로 되돌려 재조합하기에 적합한 방법 및 장치를 설명하고 있다. 재조합 처리를 시작하게 전에, 각각의 블록에는 큐 식별자가 할당되는데, 이 식별자는 패킷과 유일하게 결합되는 것으로 이로부터 블록들이 분할되고, 재조합될 수 있다. 일단 패킷의 제 1 블록에 큐 식별자가 할당되면, 이 큐 식별자는 이 패킷의 재조합 처리가 완료되기 전까지는 할당에 사용할 수 없게 된다. 패킷 식별자는 다운 스트림 네트워크 프로세서들이 패킷을 처리하는 중에 유용한 패킷의 시작 및 패킷의 종료 식별자뿐만 아니라 각각의 패킷에 할당된다. 패킷 재조합 처리는 패킷에 대한 최종 블록임을 표시하는 필드 종료 식별자가 운반하는 블록이 재조합된 패킷에 부가될 때 종료된다. 본 발명에 따르면, 원래의 구성 블록들로부터 임의의 길이와 프로토콜의 패킷들이 재조합될 수 있다.
본 발명의 상세한 설명 및 이하의 도면들을 참조하여 고려하는 경우에 보다 용이하게 본 발명을 이해할 수 있고 또한 추가적인 장점들 및 사용법들도 보다 즉각적으로 명료하게 이용될 수 있다.
도 1은 재조합 처리를 수행하기 위한 주요 구성 요소들의 블록 다이어그램.
도 2는 재조합 처리 중에 사용되는 테이블.
도 3a 및 도 3b는 패킷의 재조합 처리를 도시한 도면.
도 4는 도 1의 조합 장치의 블록 다이어그램.
도 5는 재조합 절차를 도시한 순서도.
*******도면의 주요부분에 대한 부호의 설명******
12 : 프리프로세서14 : 재조합기
14 : 프로세서16 : 포트 집합기
20 : 프레이머26 : 데이터 버퍼
가변 길이의 네트워크 패킷 데이터를 효율적이고 적시에 처리하기 위해서, 특정한 네트워크 프로세서는 데이터 패킷들을 고정 길이의 데이터 블록들로 분할한다. 네트워크 프로세서가 개별적인 블록들에 대한 작업 또는 처리를 완료한 이후에, 블록들은 데이터 경로 내의 다음 네트워크 프로세서로 전송되기 전에 원래의패킷 형태로 재조합되어야 한다. 예를 들어서, 네트워크 프로세서가 스위치이면, 패킷의 개별적인 데이터 블록들이 필요에 따라 입력 포트로부터 출력 포트로 전환(switch)되고, 스위치에서 벗어나 업 스트림 네트워크 프로세서로 전달하기 전에 패킷의 형태로 되돌려 재조합된다. 본 발명의 개시 내용들에 따르면, 패킷들은 블록들이 서로 다른 프로토콜에 따라서 구조화된 패킷들 또는 서로 다른 길이들의 패킷들부터 분할된 경우라 할지라도 연속적으로 재조합된다.
패킷이 데이터 블록들로 분할되면, 일부 패킷 수준의 파라미터들은 각각의 블록 내에 포함되어진다. 이들에는 패킷이 시작된 소스 주소와, 패킷의 최초 및 최종 블록의 표시가 포함된다. 일 실시예에 있어서, 각각의 블록에는 제 1 블록 필드와 최종 블록 필드가 포함된다. 이들 필드들 내에 특정 인디케이터를 위치시켜서 패킷의 최초 또는 최종 블록으로서 블록을 지정한다.
본 발명의 개시 내용들에 따르면, 블록 재조합 처리는 도 1에 도시된 바와 같이 재조합기(14)가 이어지는 프리프로세서(preprocessor)(12)의해 수행된다. 본 발명의 일 응용 예에 있어서, 프리프로세서(12)로 입력되기 전에, 포트 집합기(16)가 다수의 소스들(일 실시예에서는 256 개)로부터의 데이터 패킷들을 조합하고, 패킷 헤더 내의 데이터에 기초하여 패킷 소스를 결정한다. 공지된 바와 같이, 256 소스들로부터의 패킷들은 포트 집합기(16)의 업 스트림에 있는 다른 포트 집합기의 다수의 소스들로부터 추가적으로 집합되어질 수도 있다. 포트 집합기(16)는 각각의 블록 내의 패킷 소스의 식별을 유지하고 또한 패킷의 최초 또는 최종 블록인지를 표시하면서 패킷들을 고정된 크기의 데이터 블록들로 분할한다. 서로 다른 소스들로부터의 패킷들이 포트 집합기(16)에 동시에 출현하기 때문에, 패킷들을 블록들로 분할하는 처리는 서로 다른 패킷들로부터 인터리브된 블록들을 형성한다. 그러나 하나의 패킷의 개별적인 블록들은 시퀀스로 유지되고, 따라서 패킷이 재조합되고 패킷의 블록들은 순서가 제대로 되어 있게 된다.
블록들은 데이터 링크(8)를 통해서 운반되고 오류 검사가 수행되는 프레이머(framer)(20)로 입력된다. 일 실시예에 있어서, 프레이머는 블록들을 더 작은 블록들로 분할하며, 여전히 패킷의 식별과 최초 및 최종 블록 정보를 유지시킨다. 데이터 블록들은 블록들이 패킷의 소스 식별과 최초 및 최종 블록 정보를 포함하고 있는 특정한 포맷으로 되는 데이터 버스(22)를 통해서 운반된다.
프리프로세서(12) 내에서, 각각의 데이터 블록에는 블록 내의 패킷 소스 정보에 기초한 큐 식별자(queue identifier: QID)가 할당된다. 따라서 패킷으로부터 분할된 모든 블록들은 동일한 QID를 가지게 된다. 또한 하나의 소스로부터의 모든 블록들은 동일한 소스의 다른 블록들이 재조합되기 전에 패킷으로 다시 재조합되어야 한다. 동일한 QID를 구비한 모든 블록들은 후술하는 바와 같이 재조합기(14)에서 패킷으로 재조합된다.
프리프로세서(12)는 또한 최종 블록 필드를 판독하고, 여기에 응답하여 재조합기(14)에서의 사용을 위해 패킷 재조합 처리를 종료하도록 하기 위해서 패킷의 최종 블록에 최종 프레임(emd-of-frame) 인디케이터를 할당한다. 인디케이터는 블록 내에 포함되어지는 단일 비트이다. 유리한 실시예에 있어서, 영(0)의 값은 블록이 패킷의 최종 부분이 아님을 표시하고, 일(1)의 값은 패킷의 최종 블록임을 의미한다.
패킷들이 재조합기(14)에서 재조합됨에 따라서, 각각의 패킷에 유일한 패킷 식별자(PID)가 할당되며, 패킷의 시작과 패킷의 종료 식별자들이 첨부되어 패킷 처리시 다운 스트림 네트워크 프로세서를 보조하게 된다. 재조합기(14)에는 QID 값에 따라 인덱스되어 있고, PID 필드와 일 비트의 QID 유효 필드를 내용들로 구비하는 QID-PID 테이블이 포함되어 있다. 따라서 이 테이블은 PID 값을 각각의 QID 값과 결합시키는데 사용할 수 있다. 재조합기(14)는 블록 QID 값을 판독하고, 이 값을 테이블 내의 인덱스로 이용해서 결합된 QID 값을 테이블로부터 선택한다. QID 유효 필드는 QID 값 사용 중인지, 즉, 프리프로세서(12)가 재조합이 진행 중인 패킷에 QID를 할당했는지를 표시한다. 상기 테이블은 또한 이하에서 QID 대 PID 검색 맵으로도 지칭되는데, 그 이유는 패킷에 대한 QID 값에 기초하여 그 패킷에 대한 PID 값을 검색하는데 사용되기 때문이다.
재조합기(14)의 동작은 도 2의 테이블을 사용하여 설명한다. 블록이 수신되면, 재조합기(14)는 블록의 최종 프레임 필드를 검사하여 이 블록이 패킷의 최종 블록인지 아닌지를 결정한다. 또한 QID-PID 테이블에 따라서 PID 값을 결정하는데 사용하기 위해서 블록의 QID 값을 프리프로세서(12)로부터 획득한다. 조합기는 이후에 QID 테이블의 QID 유효 필드 내에 있는 값을 판독한다. 도 2의 제 2 열을 참조하라. 테이블이 QID가 할당되지 않았음이 표시하는 경우에, (본 예에서는 영(0)의 값) 재조합기(14)는 현재의 블록이 신규 패킷의 최초 블록인 것으로 결론짓는다. 이에 응답하여, 재조합기(14)는 QID 유효 필드 내의 값을 토글(toggle)시켜서이 QID가 이제 사용 중임을 표시한다. QID 유효 메모리 필드에 기록되는 값은 도 2의 마지막 열에 표시되어 있다. 따라서 QID 유효 필드 내의 일(1)의 값은 이 QID 값이 사용 중임을 나타내게 된다.
수신된 블록의 예시적인 파라미터가 도시되어 있는 도 2의 테이블의 제 1 열을 참조하면, 프레임 인디케이터의 마지막은 영(0)임을 알 수 있으며, 이는 현재의 블록이 패킷의 최종 블록이 아님을 나타내는 것이다. QID 유효 필드는 또한 영(0)이며, 이는 이 QID 값을 할당해야할 최초 블록임을 표시하는 것이다. 이 두 가지 인자들로부터, 재조합기(14)는 이 블록이 신규 패킷의 최초 블록이고, 이 패킷에 대한 재조합 처리가 이제 시작된 것을 결정한다. 이 패킷이 신규 패킷이기 때문에 상술한 QID-PID 테이블에 따라 제 4 열에 표시한 바와 같이 재조합기(14)는 이 패킷에 신규 PID 값을 할당한다. 상술한 바와 같이, 조합기는 적절한 패킷 필드를 일(1)로 설정하여 각각의 완료된 패킷에 패킷의 시작 및 패킷의 종료 식별자를 할당한다. 따라서 도 2의 제 5 열에 도시한 바와 같이, 이 패킷에 대해서 재조합기(14)는 패킷 시작 필드를 일(1)로 설정한다. 패킷의 종료 필드는 영(0)으로 유지된다. 최종적으로, 재조합기(14)는 QID 테이블의 일(1) 비트 유효 필드를 토글한다.
테이블의 제 2 라인은 재조합기(14)에서 수신된 데이터의 예시적인 제 2 블록과 관련된 파라미터들을 나타내고 있다. 이 블록은 패킷의 최종 블록이 아니며, 따라서 데이터 블록 내의 최종 프레임 필드는 영(0)이다. 이 블록에 할당한 QID에 대한 QID 필드는 일(1)의 값(제 2 열 참조)을 포함하고 있으며, 이 값은 QID가 재조합기(14)에서 처리되는 최초에 이 값으로 설정되었다. 따라서 제 3 열에서 설명한 바와 같이, 이 블록은 패킷 내부로부터 왔으며, 재조합 처리는 지금 패킷의 시작 및 종류 사이에 위치한 블록들을 처리한다. PID가 이미 패킷에 할당되어 있기 때문에, 할당된 QID 값을 맵에 대한 인덱스로 사용하여 QID 대 PID 검색 맵으로부터 PID 값을 획득한다. 현재의 블록이 패킷의 시작도 아니고 끝도 아니기 때문에, 예컨데 시작과 패킷의 끝 양자는 0이다. QID값이 이 패킷으로부터 후속 블록들을 위해 계속 사용될 것이므로 QID 값에 대한 할당 필드는 일(1)이 된다. 이 패킷에 대해서 이어서 마주치는 블록들은 패킷의 최종 블록과 마주치기 전까지는 테이블의 제 2 라인에서 설정된 바와 같은 동일한 파라미터들을 구비하게 된다.
패킷의 최종 블록은 테이블의 제 3 라인에 따라서 조합된다. 이 블록은 일(1)로 설정된 최종 프레임 필드를 가지고 있는데, 이는 테이블 형태의 제 1 행에서 표시된 바와 같다. QID 유효 필드값은 이 패킷에 대한 이전 블록들(최초 블록은 제외)의 각각에 대해서와 마찬가지로 일(1)로 설정된다. 이전 블록들에 대해서, QID 대 PID 검색 맵으로부터 QID 값을 상기 맵에 대한 인덱스로 사용하여 PID 값을 획득한다. 패킷의 시작 비트는 영(0)이지만, 패킷의 종료 비트는 일(1)로 설정되며, 이는 패킷의 최종 블록임을 의미하게 된다. 재조합기(14)가 이 블록을 처리하는 경우에, QID 대 PID 검색 맵의 유효 필드 내의 값을 영(0)으로 재설정하며, 이는 이 QID가 패킷을 포함하고 있는 다른 일련의 블록들에 대한 할당에 이용할 수 있음을 나타내게 된다.
도 2 테이블의 제 4 라인은 단축 PDU(프로토콜 데이터 유니트, protocoldata unit) 또는 단축 패킷으로 지칭되는, 한 블록의 길이 보다 짧은 패킷에 대한 파라미터들이 기재되어 있다. 이 패킷이 블록 보다 짧기 때문에, 그 프레임 종료 비트가 설정되는데, 이는 이 블록이 패킷의 마지막을 구성하기 때문이다. 할당된 QID 값이 다른 블록들에 사전에 할당되지 않았기 때문에, 이는 패킷의 제 1 블록으로 되며, PID 대 QID 테이블의 유효 필드는 영(0)으로 설정된다. 블록은 또한 신규한 PID 값을 필요로 하는데, 그 이유는 어떤 것도 패킷에 사전에 할당되어 있지 않기 때문이다. 블록은 패킷의 시작 및 종료 패킷의 양자 모두이며, 따라서 블록 내의 패킷 시작 및 패킷 종료 필드들의 양자가 설정된다. 재조합기(14)는 또한 QID 유효 값을 영(0)의 값으로 남겨 두는데, 이는 이 QID 값이 이 패킷에서 더 이상 사용되지 않기 때문이다.
도 3a에 알파벳 문자로 지정된 다수의 서로 인터리브된 블록들을 도시하였다. 프리프로세서(12)가 할당한 QID 값들은 블록의 하단에 표시되어 있으며, 최종 프레임 인디케이터는 가능하다면 마찬가지로 도시하였다. 재조합기(14)와 최초로 마주치는 영(0)의 유효 필드값을 구비하는 QID 값은 이 블록이 신규 패킷의 최초라는 점을 상기하도록 한다. 블록(A)은 이렇게 지정되었다. 블록들(E, C, I 및 J)은 그들의 각각의 패킷들의 시작 및 종료부의 중간에 위치해 있다. 블록(B)은 QID = 5에 대한 프레임 종료 블록이며, 블록(G)은 QID = 1에 대한 프레임 종료 블록이다.
도 3b에서, 블록들은 QID 값들에 의해서 결정되는 바에 따라서 이들의 각각의 패킷들로 재조합된다. 각각의 QID는 도 3b에 표시된 바와 같이 다운 스트림 네트워크 처리 요소들이 사용하기 위해 할당된 PID도 구비하고 있다. 처리된 블록들의 이 세그먼트 내에는, QID 값이 4인 곳에는 아무 것도 없다. 수직으로 지향된 타원은 패킷 내의 블록들에 선행하거나 후속하는 추가적인 블록들을 나타낸다.
도 1로 되돌아가서, 재조합기(14)에서 재조합된 패킷들은 데이터 버퍼(26)로 입력되어 저장된다. 프로세서(28)는 각각의 패킷을 분석하며, 데이터 버퍼(26)로부터 다운 스트림 네트워크 프로세서들로의 데이터 패킷들의 전송을 제어한다.
본 발명은 일차적으로 가변 길이의 패킷들로부터 유도되고 가변 길이의 패킷들로 재조합되는 동일한 길이의 데이터 블록들에 관한 것이다. 그러나 본 발명은 또한 고정 길이의 ATM 데이터 셀들에도 적용할 수 있다. 특정 응용에 있어서, 몇 개의 ATM 셀들을 단일 유니트, 또한 패킷 데이터 유니트 또는 PDU로도 지칭되는 유니트로 조합하는 게 바람직할 수도 있다. 본 발명은 각각의 ATM 셀을 데이터 블록으로 처리하여 이 가능성을 제공하도록 사용할 수도 있다. PDU 내의 최초 ATM 셀에 대해서 헤더(5 바이트들)가 유지되며, 따라서 블록은 헤더에다 셀의 모든 정보 세그먼트, 즉 48 바이트들을 추가해서 포함하고 있다. 각각의 후속 블록은 단지 48 데이터 바이트들만 포함한다. 따라서 블록들이 프리프로세서(12) 및 재조합기(14)에서 PDU 내로 처리되고 조합되는 경우에, 각각의 PDU는 다섯 바이트의 헤더와 뒤따른 48 바이트 블록들을 포함한다. 네트워크의 대역폭은 각 셀과 함께 다섯 바이트의 헤더를 전송하지 않고 몇 개의 셀들을 연결함으로써 보호된다. 이를 달성하기 위해서, 프리프로세서(12) 내에서 각각의 ATM 셀에는 동일한 QID 값이 할당되며, 동일한 QID 값을 가진 모든 셀들은 단일 PDU로 조합된다.
도 4는 재조합기(14)의 주요 성분들의 블록 다이어그램이다. 블록이 재조합기(14)로 입력되면, 프리프로세서(12)가 재조합기(14)로 QID 값을 제공한다. 이 입력은, 도 4의 참조 문자(50)로 나타낸 바와 같이, QID 유효 필드들(54) 및 PID 필드들(55)을 포함하여 QID 대 PID 검색 맵(52)에 판독 주소로 작용한다. 판독 주소는 QID 대 PID 맵(52)으로의 인덱스이며, 인덱스화된 QID 유효 필드(54)가 판독되고, 유효 필드 내의 값은 링크(58)를 거쳐서 제어 상태 머신(56)에 입력된다. 상술한 바와 같이, QID 유효 필드값은 신규 PID가 재조합될 패킷에 할당되었는지 또는 PID가 이미 할당되었는지를 결정하며, 따라서 이 값은 QID 대 PID 검색 맵(52)으로부터 결정된다.
제어 상태 머신(56)으로부터의 출력 링크(60)는 제어 신호를 운반하고 있으며, 이 신호는 머신에 입력된 QID 유효 필드값 입력에 의해서 결정된다. 제어 신호는 QID 유효 필드의 값이 신규 PID 할당이 필요하다고 표시되는 경우에 제 1 값을 가지고, QID 유효 필드가 QID 대 PID 검색 맵(52)으로부터 PID를 입수 가능함을 나타내는 경우에는 제 2 값을 가진다. 출력 링크(60)는 두 개의 데이터 입력 터미널들(64, 66)을 구비한 멀티플렉서(62)의 제어 입력으로 작용한다. 입력 터미널(64)은 입력된 QID 값을 인덱스로 사용하여 PID 필드(55)로부터 판독한 PID 값에 반응한다. 입력 터미널(66)은 도시한 바와 같이 외부 소스로부터 제공된 신규 PID 값들에 반응한다. 따라서 멀티플렉서(62)는 출력 링크(60) 상의 제어 신호에 의해서 결정되는 출력값을 제공한다. QID 할당 필드(54)가 신규 PID 값이 필요하다고 표시되는 경우에, 제어 신호는 입력 터미널(66)에 존재하는 신규 PID 값을 멀티플렉서(62)가 출력하도록 한다. QID 유효 필드값이 블록에 대한 PID 값이 이미결정되었다고 표시되는 경우에, 이후에 멀티플렉서 제어 신호는 입력 터미널(66)에 나타나 있는 바와 같이 멀티플렉서의 출력이 PID 필드(55)로부터의 PID 값을 취하도록 한다.
신규 PID값이 블록에 적용될 때마다, 동일한 QID와 결합되어 있는 후속 블록들이 사용할 수 있도록 QID 대 PID 검색 맵(52)에 기록되어야 한다. 이 신규한 QID 값들은 링크(70)를 통해서 QID 대 PID 검색 맵(52)에 입력된다. 신규 PID가 활성화되는 경우에, 제어 상태 머신(56)에 의해서 멀티플렉서(74)의 제어 터미널(72)로 제어 신호가 제공되며, 따라서 멀티플렉서(74)의 출력은 멀티플렉서 입력 라인(50) 상의 QID 값을 취하게 된다. 멀티플렉서의 출력은 QID 대 PID 검색 맵(52)에 신규 PID 값을 쓰기 위한 쓰기 주소 인덱스로 기능하며, 따라서 신규 PID 값은 현재 블록의 QID 값과 결합하게 된다.
일 실시예에 있어서, 재조합기(14)는 대략 4000 개의 소스들을 수용할 수 있도록 크기가 조정된다. 따라서 4000 개의 패킷들을 동시에 재조합하고, QID 대 PID 검색 맵(52)은 4000 개의 메모리 위치들(즉 4000 개의 QID 값들 및 4000 개의 PID 값들)을 포함하게 되며, 각각의 길이는 13 비트들이므로, 즉 PID 필드(55) 내에 저장되어 있는 것으로의 PID 값에 대해서는 12 비트들(212= 4096)이, QID 유효 필드(54)에 대해서는 일(1) 비트가 된다.
프리프로세서(12)와 재조합기(14)의 업 스트림 네트워크 오류는 종종 개별적인 블록들을 분실하거나 패킷의 나머지를 분실하게 할 수도 있다. 이는 시스템으로부터 파손된 패킷을 비워야 하는데, 비워지면 비워진 패킷의 PID 값이 해제된다. 이와 같은 패킷의 비움을 달성하기 위해서, PID 값들을 QID로 되돌리도록 맵핑(mapping)하도록 도 4의 논리표에 추가적인 테이블을 추가한다. 따라서 다운 스트림 네트워크 프로세서가 패킷과 관련한 문제, 즉 블록들의 분실 또는 패킷 블록들의 파손으로 초래되는 불완전한 패킷 때문에 비움 요청을 발생시킨 경우, PID와 결합되어 있는 QID는 무효화되며, PID는 재사용을 위해서 해제된다.
비움 요청(flush request)은 재조합기(14)로 전달되며, 여기에는 다운 스트림 프로세서로부터 삭제되어야 하는 패킷의 PID가 포함되어 있다. 이 비움 요청에 반응하여, 신호 경로 내의 다음 네트워크 프로세서로 전송되기를 대기하면서 저장되어 있던 분실된 패킷 중에 남아 있는 어떠한 패킷들도 버퍼(26)로부터 삭제된다. 이 삭제 절차를 완성하기 위해서, 비워진 패킷의 QID 값을 정해야만 하는데, 이렇게 해서 문제의 QID 값을 가진 모든 블록들을 데이터 버퍼 내에서 식별할 수 있고 삭제할 수 있다. 되돌려진 PID 값을 사용하여 PID 대 QID 검색 맵을 조회하여 PID 값을 맵 내의 인덱스로 사용하여 대응하는 QID 값을 결정한다. QID 값은 이후에 결정되고, 이 QID와 결합되어 있는 임의의 블록들은 버퍼(26)에서 삭제된다. QID 값 또한 무효가 된다.
입력 포트/패킷 소스 정보에 기초하여 결정될 수 있는, 프리프로세서(12) 또는 재조합기(14)에서 비워진 패킷 중에서 나중에 도달한 블록들은 할당된 QID에 기초하여 무시된다. 블록들의 QID를 사전에 알고 있는 PID 대 QID 맵이 비워진다는 점을 상기하도록 하자. 패킷의 재조합과 신규 QID의 할당은 패킷의 시작 또는 제 1블록 식별자가 존재하는 경우에만 시작된다. 이들 나중에 도달하는 블록들이 제 1 블록에 포함되지 않기 때문에, 이들은 재조합 처리를 시작하게 된다.
도 4에 따르면, 업 스트립 네트워크 프로세서로부터의 비움 요청은 링크(80) 상에서 운반되는 비움 신호 및 링크(82) 상에서 운반되는 비워진 패킷의 PID 값의 형태로 재조합기(14)의 입력이 된다. PID 대 QID 검색 맵(84)에는 일치하는 PID 값에 따라서 인덱스화된 할당된 모든 QID 값들이 포함되어 있다. PID 대 QID 검색 맵(84)에 이미 적재된 값들은 동시에 QID 대 PID 검색 맵(52)에도 존재한다. 따라서 링크(82) 사의 업스트림 프로세서로부터의 PID 값은 비워질 블록들의 QID 값을 결정하기 위한 PID 대 QID 검색 맵(84)에 대한 인덱스이다. 이 QID 값은 입력 터미널(86)에서 멀티플렉서(74)에 입력된다. 멀티플렉서(74)에 대한 제어 신호는, 제어 상태 머신(56)에서 제공되는 바와 같이, 입력 터미널(86) 상의 신호가 출력으로 전환되도록 하며, 따라서 QID 대 PID 검색 맵(52) 내의 쓰기 주소로 기능하여 QID 할당 필드(54) 내의 비트를 오프(off)한다. 나중에라도, 비워진 PID와 관련된 추가적인 블록들이 재조합기(14)로 입력되면, 신규 QID 및 신규 PID가 할당되고, 블록들은 프레임 인디케이터와 마주치기 전까지 재조합된다. 그러나 업 스트립 프로세서들은 이 패킷이 완전하지 않음을 알게 되고, 불완전한 패킷을 폐기한다.
도 5는 본 발명의 개시 내용들에 따른 재조합 단계들을 도시하고 있는 순서도이다. 단계(100)에서, 다음 데이터 블록은 인터리브된 다수의 데이터 블록들 중에서 판독된다. 결정 단계(102)에서, 데이터 블록을 검사하여 이 블록이 완전한 패킷을 나타내는지를 결정, 즉 패킷의 길이가 블록 길이와 동일한지 아니면 더 짧은지를 결정한다. 결정 단계(102)로부터의 답이 부정적이라면, 이후에 처리 과정은 결정 단계(104)로 이동하여 현재의 데이터 블록이 신규 패킷에 대한 최초 데이터 블록인지 아닌지를 결정하게 된다. 상술한 바와 같이, 이는 먼저 데이터 블록에 할당된 QID를 결정하고 이후에 이 QID의 유효 필드를 검사하여 완수된다. 유효 필드값은 상기 데이터 블록이 패킷의 최초의 것인지를 나타낸다. 유리한 실시예에 있어서, QID 유효 필드에서의 영(0)의 값은 최초 블록 인디케이터이다.
블록이 패킷의 최초 블록이면, 단계(106)에서 신규 PID 값이 할당된다. 이후에 단계(108)에서, 블록의 QID에 대한 할당 필드를 이진값 일(1)로 토글하여 이 QID가 사용 중임을 표시한다. 이것이 신규 패킷의 최초 블록이기 때문에, 단계(110)에서 패킷 시작 필드는 일(1)로 설정된다.
결정 단계(104)로 되돌아 가 보면, 블록이 패킷의 최초 블록이 아닌 경우에, 처리 절차는 단계(118)로 진행하고, 여기에서 QID 대 PID 검색 맵을 조회하여 현재의 블록이 속해 있는지를 패킷의 PID를 알아낸다. 단계(120)에서, 모든 데이터 블록들은 제 1 및 후속 데이터 블록의 양자 모두 할당된 PID 값으로 결정됨에 따라서 이들이 할당된 데이터 버퍼(16) 내의 메모리 위치들에 기록된다.
각각의 단계(120)를 지나서, 처리 절차는 결정 단계(122)로 진행하여 현재의 블록이 필드 종료 인디케이터를 포함하고 있는지를 검사한다. 부정적인 결과는 이 처리 절차를 단계(100)로 되돌리고, 여기에서 다음 블록을 판독하여 처리한다. 현재의 블록에 필드 종료 인디케이터가 포함되어 있는 경우에는, 처리 절차는 단계(124)로 계속 진행하여 패킷 종료 인디케이터를 설정한다. 이 인디케이터는 다운 스트림의 성분들이 패킷의 종료를 식별하는데 유용하게 사용된다. QID 할당 필드를 이제 영(0)으로 토글할 수 있게 되어, 다른 데이터 블록을 할당하도록 QID를 해제한다. 단계(128)는 패킷의 재조합이 완료되었고 다운 스트림 성분으로 전송될 준비가 되었음을 나타낸다.
결정 단계(102)를 되돌아가서, 결과가 긍정적이면, 이후에 현재의 패킷은 블록 보다 짧은 것이고, 따라서 패킷 종료 인디케이터가 포함되어져야 한다. 단계(130)에서, 신규 PID가 할당되고, 패킷 시작 및 패킷 종료 인디케이터들이 설정된다. 이후에 처리 절차는 단계(128)로 진행하여 이 패킷이 재조합이 완료된다. 또한 처리 절차는 단계(128) 이후에 데이터 블록 판독 단계(100)로 되돌아간다.
상술한 본 발명의 유리한 실시예에 있어서, 소정의 작용에 대한 인디케이터로서 기능하는 데이터 필드들의 이진값들에 대한 참조들을 몇 가지 수행했다. 본 기술 분야에서 통상의 지식을 가진 자들은, 이진값 일(1) 또는 이진값 영(0)을 사용하여 소정의 작용을 할 수 있음을 알 것이다. 따라서 이진값일(1)은 값을 표시하는 것으로 식별되는 이들 경우들에 있어서, 해석 프로세서 또는 소프트웨어 요소에 대해서 상응하는 변경들이 행해지는 경우에 다른 실시예에서는 이진값 영(0)으로 대체할 수도 있다.
따라서 본 발명에 따르면 네트워크 프로세서 내의 데이터 패킷들을 처리하여, 초기에 분할된 데이터 패킷의 형태로 데이터 블록들을 재조합하는 방법이 제공된다.

Claims (25)

  1. 하나 이상의 데이터 블록들로 분할된 복수의 데이터 패킷들에 대해서, 상기 데이터 블록들을 원래의 각각의 데이터 패킷들로 재조합하기 위한 방법에 있어서,
    데이터 블록을 수신하는 단계와,
    상기 동일한 패킷으로부터 각각의 데이터 블록에 대해 동일한 큐 식별자를 할당하는 단계와,
    상기 동일한 큐 식별자를 가지는 모든 데이터 블록들을 그룹화하는 단계와,
    각각의 데이터 블록에 패킷 식별자를 할당하는 단계를 포함하고, 동일한 패킷으로 재조합되는 모든 데이터 블록들은 상기 동일한 패킷 식별자가 할당되는 단계를 포함하는, 재조합 방법.
  2. 제 1 항에 있어서,
    조합된 패킷은 상기 패킷을 포함하는 상기 데이터 블록들의 패킷 식별자를 포함하는, 재조합 방법.
  3. 제 1 항에 있어서,
    상기 큐 식별자를 할당하기 전에, 하나의 데이터 패킷의 상기 데이터 블록들은 다른 데이터 패킷들의 상기 데이터 블록들과 인터리빙하는, 재조합 방법.
  4. 제 1 항에 있어서,
    데이터 블록들을 재조합하는 단계들은 제 1 네트워크 프로세서에서 수행되며, 상기 재조합된 데이터 패킷은 제 2 네트워크 프로세서에 입력되며, 상기 패킷 식별자는 재조합된 데이터 패킷과 함께 제 2 네트워크 프로세서에 제공되는, 재조합 방법.
  5. 제 1 항에 있어서,
    상기 데이터 블록들을 데이터 패킷들로 재조합하는 단계들은 이후에 추가적인 데이터 처리 단계들이 뒤따르며, 상기 패킷 식별자는 추가적인 데이터 처리 단계들 중에 상기 데이터 패킷에 결합되는, 재조합 방법.
  6. 제 1 항에 있어서,
    상기 패킷이 재조합된 이후에 상기 패킷에 대한 상기 큐 식별자의 할당을 취소하는 단계를 추가적으로 포함하는, 재조합 방법.
  7. 제 1 항에 있어서,
    큐 식별자 유효 필드는 각각의 큐 식별자에 결합되며, 패킷의 상기 제 1 블록에 큐 식별자가 할당되는 경우에, 상기 방법은 상기 할당된 큐 식별자에 대한 상기 유효 필드값을 제 1 값으로 설정하는 단계를 추가적으로 포함하는, 재조합 방법.
  8. 제 6 항에 있어서,
    상기 패킷의 최종 블록을 처리한 이후에 상기 큐 식별자에 대한 상기 유효 필드를 제 2 값으로 설정하는 단계를 추가적으로 포함하는, 재조합 방법.
  9. 제 1 항에 있어서,
    상기 수신된 데이터 블록이 데이터 패킷의 상기 제 1 데이터 블록인 경우에, 상기 데이터 블록에 신규 패킷 식별자를 할당하는 단계를 추가적으로 포함하며, 상기 수신된 데이터 블록이 패킷의 상기 제 1 데이터 블록이 아닌 경우에, 검색 테이블을 조회함으로써 상기 패킷 식별자를 상기 데이터 블록에 할당을 결정하는 단계를 추가적으로 포함하며, 상기 할당된 큐 식별자는 상기 검색 테이블 내의 인덱스로 기능하며, 상기 검색 테이블 내의 상기 값들은 패킷 식별자들을 포함하는, 재조합 방법.
  10. 제 1 항에 있어서,
    각각의 패킷 식별자는 데이터 저장 버퍼에 결합되며, 상기 데이터 블록들을 그룹화하는 단계들은 상기 패킷 재조합 처리 중에 상기 할당된 패킷 식별자에 결합되는 저장 버퍼 내에 상기 데이터 블록들을 저장하는 단계를 포함하는, 재조합 방법.
  11. 제 1 항에 있어서,
    상기 데이터 블록들의 일부는 식별 인디케이터들을 포함하는, 재조합 방법.
  12. 제 11 항에 있어서,
    상기 식별 인디케이터들은 데이터 패킷의 마지막 데이터 블록을 표시하는 파일 끝 인디케이터를 포함하며, 데이터 패킷의 재조합 처리는 최종 데이터 블록이 수신되었을 때 종료되는, 재조합 방법.
  13. 제 12 항에 있어서,
    상기 데이터 패킷의 재조합은 상기 데이터 패킷의 최종 데이터 블록으로서 식별되는 상기 데이터 블록이 상기 데이터 패킷의 상기 다른 데이터 블록들과 함께 그룹화될 때 완료되는, 재조합 방법.
  14. 제 11 항에 있어서,
    데이터 블록 내의 식별 인디케이터에 응답하여 각각의 데이터 패킷과 함께 패킷 시작 식별자를 포함하는 단계를 추가로 포함하며, 상기 식별 인디케이터는 상기 데이터 블록이 데이터 패킷의 상기 제 1 데이터 블록인 것을 표시하는, 재조합 방법.
  15. 제 11 항에 있어서,
    데이터 블록 내의 식별 인디케이터에 반응하여 각각의 데이터 패킷과 함께 패킷 종료 식별자를 포함하는 단계를 추가로 포함하며, 상기 식별 인디케이터는 상기 데이터 블록이 데이터 패킷의 상기 최종 데이터 블록인 것을 표시하는, 재조합 방법.
  16. 제 11 항에 있어서,
    상기 식별 인디케이터들은 데이터 패킷 내의 상기 최종 데이터 블록을 식별하는 파일 끝 인디케이터를 포함하며, 상기 큐 식별자를 할당하는 단계는 파일 끝 인디케이터와 만나기 전까지 단일 패킷으로부터 각각의 블록에 대한 상기 동일한 큐 식별자를 할당하는 단계를 추가적으로 포함하는, 재조합 방법.
  17. 제 1 항에 있어서,
    데이터 패킷에 대한 비움 요청(flush request)을 수신하고, 이에 반응하여, 상기 동일한 큐 식별자를 가지는 모든 데이터 블록들과 함께 그룹화하는 단계에 따라서 그룹화된 모든 데이터 블록들을 삭제하는 단계를 추가적으로 포함하는, 재조합 방법.
  18. 제 17 항에 있어서,
    상기 비움 요청은 비워질 상기 데이터 패킷의 상기 패킷 식별자를 포함하며,
    상기 수신된 패킷 큐 식별자에 관련된 상기 큐 식별자를 결정하도록 상기 테이블로의 인덱스로서 상기 패킷 식별자를 이용하여 검색 테이블을 조회하는 단계와, 상기 결정된 큐 식별자에 결합되는 상기 데이터 블록들을 비우는 단계를 추가적으로 포함하는, 재조합 방법.
  19. 제 1 항에 있어서,
    상기 데이터 패킷이 데이터 블록 보다 짧은 경우에, 그리고 상기 데이터 블록이 필드 끝을 식별하는 인디케이터를 포함하는 경우에, 패킷 식별자를 상기 데이터 블록에 할당하는 단계와, 추가적으로 패킷 시작 및 패킷 종료 식별자를 데이터 패킷에 할당하는 단계를 포함하는, 재조합 방법.
  20. 데이터 블록들을 분할되었던 데이터 패킷들로 다시 재조합하기 위한 장치에 있어서,
    동일한 패킷으로부터의 각각의 데이터 블록에 동일한 큐 식별자를 할당하기 위한 프리프로세서와,
    동일한 큐 식별자를 가지는 모든 데이터 블록들을 함께 그룹화하고, 각각의 데이터 블록에 패킷 식별자를 할당하기 위한 재조합기로서, 동일한 패킷으로 재조합된 모든 데이터 블록들은 동일한 패킷 식별자가 할당되는, 상기 재조합기와,
    상기 할당된 패킷 식별자에 따라서 상기 데이터 블록들을 저장하기 위한 데이터 버퍼를 포함하는, 재조합 장치.
  21. 제 20 항에 있어서,
    상기 데이터 블록들에 할당된 상기 큐 식별자에 기초하여 상기 패킷 식별자를 결정하기 위한 검색 맵을 포함하는, 재조합 장치.
  22. 제 21 항에 있어서,
    상기 검색 맵은 상기 큐 식별자가 데이터 블록들에 할당이 유효한 지를 표시하는 각각에 큐 식별자에 관련된 필드를 포함하는, 재조합 장치.
  23. 제 22 항에 있어서,
    상기 검색 맵은 큐 식별자들 및 관련된 패킷 식별자를 포함하는 테이블을 포함하며, 상기 큐 식별자는 패킷 식별자를 결정하기 위한 상기 테이블 내의 상기 인덱스로 기능하는, 재조합 장치.
  24. 제 22 항에 있어서,
    상기 검색 맵은 패킷 식별자들이 패킷들에 할당되고 상기 테이블로부터 삭제됨에 따라서 신규 패킷 식별자들로 채워지는, 재조합 장치.
  25. 제 20 항에 있어서,
    데이터 블록에 할당된 상기 패킷 식별자에 기초하여 상기 큐 식별자를 결정하기 위한 검색 맵을 추가적으로 포함하며, 상기 데이터 버퍼로부터의 상기 데이터패킷 식별자에 결합되는 데이터 블록들을 비워내기 위한 비움 요청에 반응하여, 상기 패킷 식별자는 비워질 상기 데이터 블록들의 상기 큐 식별자를 결정하도록 상기 테이블 내의 인덱스로 기능하는, 재조합 장치.
KR1020020082078A 2001-12-21 2002-12-21 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치 KR100920651B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/037,082 2001-12-21
US10/037,082 US6804692B2 (en) 2001-12-21 2001-12-21 Method and apparatus for reassembly of data blocks within a network processor

Publications (2)

Publication Number Publication Date
KR20030053452A true KR20030053452A (ko) 2003-06-28
KR100920651B1 KR100920651B1 (ko) 2009-10-09

Family

ID=21892351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020082078A KR100920651B1 (ko) 2001-12-21 2002-12-21 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치

Country Status (5)

Country Link
US (1) US6804692B2 (ko)
JP (1) JP2003229907A (ko)
KR (1) KR100920651B1 (ko)
GB (1) GB2387688B (ko)
TW (1) TWI286425B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114229B1 (ko) * 2009-07-14 2012-04-12 충남대학교산학협력단 Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060100635A1 (en) * 1994-01-26 2006-05-11 Kyphon, Inc. Inflatable device for use in surgical protocol relating to fixation of bone
US20030229372A1 (en) * 1994-01-26 2003-12-11 Kyphon Inc. Inflatable device for use in surgical protocols relating to treatment of fractured or diseased bone
DE69535492T2 (de) * 1994-01-26 2007-09-06 Kyphon Inc., Sunnyvale Verbesserte aufblasbare Vorrichtung zur Verwendung in chirurgischen Methoden zur Fixierung von Knochen
ES2262642T3 (es) 2000-04-05 2006-12-01 Kyphon Inc. Dispositivo para el tratamiento de huesos fracturados y/o enfermos.
ATE390809T1 (de) * 2001-07-11 2008-04-15 Nokia Corp Verfahren zur übertragung und zum empfang von dienstdaten, netzwerkelemente und kommunikationsnetzwerk und -system
US7843922B1 (en) 2002-12-18 2010-11-30 Cypress Semiconductor Corporation Method and apparatus for separation of control and data packets
US7420975B1 (en) 2002-12-20 2008-09-02 Cypress Semiconductor Corporation Method and apparatus for a high-speed frame tagger
US7493392B1 (en) * 2002-12-20 2009-02-17 Cypress Semiconductor Corporation Method and apparatus for assembly of virtually concatenated data
US20040252721A1 (en) * 2003-06-16 2004-12-16 International Business Machines Corporation Bundled internet protocol packets
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US7570654B2 (en) * 2003-12-22 2009-08-04 Intel Corporation Switching device utilizing requests indicating cumulative amount of data
US20050207436A1 (en) * 2004-03-18 2005-09-22 Anujan Varma Switching device based on aggregation of packets
GB2418565B (en) * 2004-08-18 2006-09-20 Wecomm Ltd Transmitting data over a network
JP2006295567A (ja) * 2005-04-11 2006-10-26 Toshiba Corp パケットストリーム受信装置
US20060268913A1 (en) * 2005-05-27 2006-11-30 Utstarcom, Inc. Streaming buffer system for variable sized data packets
US20080159145A1 (en) * 2006-12-29 2008-07-03 Raman Muthukrishnan Weighted bandwidth switching device
US8723827B2 (en) 2009-07-28 2014-05-13 Cypress Semiconductor Corporation Predictive touch surface scanning
US9065761B2 (en) * 2011-07-25 2015-06-23 Intel Corporation Packet reassembly processing
US9246846B2 (en) * 2011-09-02 2016-01-26 Mediatek Co. Network processor
US9628397B2 (en) 2012-04-16 2017-04-18 Mediatek Inc. Communication device and related packet processing method
US9781418B1 (en) * 2012-06-12 2017-10-03 Google Inc. Adaptive deadzone and rate-distortion skip in video processing
US9179155B1 (en) 2012-06-14 2015-11-03 Google Inc. Skipped macroblock video encoding enhancements
CN102819495B (zh) * 2012-08-10 2015-01-07 东方网力科技股份有限公司 数据存储方法及装置
US10389773B2 (en) * 2015-10-20 2019-08-20 Intel Corporation Technologies for end of frame detection in streaming content
US20180054374A1 (en) * 2016-08-19 2018-02-22 Andes Technology Corporation Trace information encoding apparatus, encoding method thereof, and readable computer medium
US11184278B2 (en) * 2019-12-30 2021-11-23 Avago Technologies International Sales Pte. Limited Hyperscalar packet processing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493021A (en) * 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
JP3085391B2 (ja) * 1989-06-19 2000-09-04 株式会社日立製作所 通信装置
JPH06132974A (ja) * 1992-10-20 1994-05-13 Toshiba Corp パケット・ディスアセンブル用バッファ
US5535204A (en) * 1993-01-08 1996-07-09 Multi-Tech Systems, Inc. Ringdown and ringback signalling for a computer-based multifunction personal communications system
US5452289A (en) * 1993-01-08 1995-09-19 Multi-Tech Systems, Inc. Computer-based multifunction personal communications system
US5757801A (en) * 1994-04-19 1998-05-26 Multi-Tech Systems, Inc. Advanced priority statistical multiplexer
US5625625A (en) 1995-07-07 1997-04-29 Sun Microsystems, Inc. Method and apparatus for partitioning data load and unload functions within an interface system for use with an asynchronous transfer mode system
US5809024A (en) 1995-07-12 1998-09-15 Bay Networks, Inc. Memory architecture for a local area network module in an ATM switch
US6667978B1 (en) * 1998-07-09 2003-12-23 International Business Machines Corporation Apparatus and method for reassembling frame data into stream data
US6643298B1 (en) * 1999-11-23 2003-11-04 International Business Machines Corporation Method and apparatus for MPEG-2 program ID re-mapping for multiplexing several programs into a single transport stream
JP3584853B2 (ja) 2000-05-17 2004-11-04 日本電気株式会社 パケット交換機、パケット交換方法
US7286565B1 (en) 2000-06-28 2007-10-23 Alcatel-Lucent Canada Inc. Method and apparatus for packet reassembly in a communication switch
ATE267502T1 (de) 2000-07-05 2004-06-15 Roke Manor Research Verfahren zum betreiben eines puffers für das wiederzusammenstellen von paketen und netzwerk- router
US7212528B2 (en) 2001-12-21 2007-05-01 Alcatel Canada Inc. System and method for reassembling packets in a network element

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114229B1 (ko) * 2009-07-14 2012-04-12 충남대학교산학협력단 Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법

Also Published As

Publication number Publication date
GB2387688B (en) 2005-10-26
JP2003229907A (ja) 2003-08-15
KR100920651B1 (ko) 2009-10-09
TW200301642A (en) 2003-07-01
US20030120664A1 (en) 2003-06-26
GB2387688A (en) 2003-10-22
GB0227955D0 (en) 2003-01-08
TWI286425B (en) 2007-09-01
US6804692B2 (en) 2004-10-12

Similar Documents

Publication Publication Date Title
KR100920651B1 (ko) 네트워크 프로세서 내에서 데이터 블록들의 재조합 방법및 장치
US6430184B1 (en) System and process for GHIH-speed pattern matching for application-level switching of data packets
US7782849B2 (en) Data switch and switch fabric
EP1166520B1 (en) Method and apparatus for managing a network flow in a high performance network interface
US6426943B1 (en) Application-level data communication switching system and process for automatic detection of and quality of service adjustment for bulk data transfers
EP1159813B1 (en) Method and apparatus for dynamic packet batching with a network interface
JP2788577B2 (ja) フレーム変換方法及び装置
EP1157518B1 (en) Method and apparatus for data re-assembly with a high performance network interface
EP1157502B1 (en) Method and apparatus for early random discard of packets
JP2837650B2 (ja) ルーティング情報の格納及び取り出しのシステム及び方法
US7957392B2 (en) Method and apparatus for high-performance bonding resequencing
US7664112B2 (en) Packet processing apparatus and method
US20060268913A1 (en) Streaming buffer system for variable sized data packets
US6522188B1 (en) High-speed data bus for network switching
JPH0685842A (ja) 通信装置
EP1070405A2 (en) System and process for application-level flow connection of data processing networks
JP2002541732A5 (ko)
JPH06132974A (ja) パケット・ディスアセンブル用バッファ
US6892287B1 (en) Frame reassembly in an ATM network analyzer
US7065628B2 (en) Increasing memory access efficiency for packet applications
JP4209186B2 (ja) パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ
US6463065B1 (en) Mixed topology data switching system
WO2004107800A1 (en) A method of recombining data units
KR100261440B1 (ko) 비동기 전송 모드 어뎁테이션 층 타입 5의 비동기 전송 모드 셀전송 장치 및 방법

Legal Events

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

Payment date: 20120907

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130906

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160831

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee