KR100918327B1 - 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치 - Google Patents

통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100918327B1
KR100918327B1 KR1020077005131A KR20077005131A KR100918327B1 KR 100918327 B1 KR100918327 B1 KR 100918327B1 KR 1020077005131 A KR1020077005131 A KR 1020077005131A KR 20077005131 A KR20077005131 A KR 20077005131A KR 100918327 B1 KR100918327 B1 KR 100918327B1
Authority
KR
South Korea
Prior art keywords
pdu
header
node
memory
received
Prior art date
Application number
KR1020077005131A
Other languages
English (en)
Other versions
KR20070040410A (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 KR20070040410A publication Critical patent/KR20070040410A/ko
Application granted granted Critical
Publication of KR100918327B1 publication Critical patent/KR100918327B1/ko

Links

Images

Classifications

    • 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/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

실시예들은 일반적으로 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치에 관한 것이다. 일 실시예에서, 제1 통신 링크 상의 노드에서 프로토콜 데이터 유닛(PDU)을 수신하고, 상기 노드에서 수신시 상기 PDU와 관련된 특정 통신 프로토콜에 특정되지 않은(non-specific) 헤더를 생성하고, 상기 헤더는 제2 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스(memory-based service interface)에 상기 PDU를 전달하기 위해 상기 제2 통신 링크를 통하여 상기 PDU의 캡슐화(encapsulation) 및 전송(transportation)을 용이하게 하는 것이다.
통신 네트워크, 헤더, 통신 링크, 엔드 포인트(endpoint), 프로토콜 데이터 유닛(PDU), 캡슐화(encapsulation)

Description

통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치{METHOD AND APPARATUS FOR GENERATING A HEADER IN A COMMUNICATION NETWORK}
본 발명의 실시예들은 일반적으로 전자 시스템 분야에 관한 것으로, 더 구체적으로는, 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치에 관한 것이다.
통신 네트워크에서의 통신 링크들은 흔히 통신 링크 상의 엔드 포인트들(endpoints) 간에 데이터 및/또는 명령들(이하에서는 "데이터"로 호칭)을 이동시키는 지정된 패킷 스위칭 네트워크들로 구성된다. 이들 통신 링크들 상의 엔드 포인트들은 특정 통신 프로토콜과 관련된 데이터를 수신하고 그 데이터를 다른 엔드 포인트들에 전송할 수 있다. 특정 통신 프로토콜과 관련된 데이터를 수신한 후에, 엔드 포인트들은 또한 서비스 클래스들(classes of service), 우선순위화(prioritization), 데이터 무결성(data integrity), 폭주 관리(congestion management), 흐름 제어 및 링크 관리와 같은 스위칭 또는 라우팅 기능을 제공하는 추가의 통신 프로토콜들을 추가할 수 있다. 이들 기능들의 추가는 통신 링크 상의 엔드 포인트에 의해 수신될 때 데이터와 관련된 다수의 가능한 통신 프로토콜들에 의해 더 복합적으로 되는 복잡도 레벨을 야기시킨다.
본 발명은, 동일한 참조 부호들이 유사한 엘리먼트들을 지시하는 첨부 도면들에서, 한정으로서가 아니라 예로서 도시되어 있다.
도 1은 본 발명의 일 실시예에 따른 전자 시스템의 그래픽 예시이다.
도 2는 본 발명의 일 실시예에 따른, 캡슐화된(encapsulated) 프로토콜 데이터 유닛(PDU)의 그래픽 예시이다.
도 3은 본 발명의 일 실시예에 따른, 전송 서비스 관리자(transport services manager)의 구조도이다.
도 4는 본 발명의 일 실시예에 따른, 전송 서비스 헤더의 그래픽 예시이다.
도 5a는 본 발명의 일 실시예에 따른, 전송 서비스 헤더의 인코딩들의 표 예시이다.
도 5b는 본 발명의 일 실시예에 따른, 전송 서비스 헤더의 G/E(granularity/endian) 인코딩들의 표 예시이다.
도 6은 본 발명의 일 실시예에 따른, 메모리 기반 서비스 인터페이스에 대한 엔디안 전달 옵션들(endian delivery options)의 그래픽 예시이다.
도 7은 본 발명의 일 실시예에 따른, 메모리 기반 서비스 인터페이스 내로의 프리패드(PrePad) 전달의 그래픽 예시이다.
도 8은 본 발명의 일 실시예에 따른, 메모리 기반 서비스 인터페이스 내로의 엔드패드(EndPad) 전달의 그래픽 예시이다.
도 9는 본 발명의 일 양태에 따른, 스위치 패브릭(switch fabric)을 통하여 스위치 패브릭 상의 노드의 메모리 기반 서비스 인터페이스로의 PDU의 전송을 용이 하게 하는 예시적인 방법의 흐름도이다.
본 발명의 실시예들은 일반적으로 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치에 관한 것이다. 하나의 예시적 실시예에 따르면, 전송 서비스 관리자(transport services manager)가 여기에 도입된다. 아래에서 더 상세히 설명되는 바와 같이, 혁신적인 전송 서비스 관리자는 통신 링크 상의 노드에 응답하고 그 노드에 의해 수신된 PDU와 관련된 특정 통신 프로토콜에 특정되지 않은(non-specific) 헤더를 생성 및/또는 처리하도록 동작 가능하고, 상기 헤더는 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스에 PDU를 전달하기 위해 통신 링크를 통하여 PDU의 캡슐화(encapsulation) 및 전송(transportation)을 용이하게 한다.
도 1은 본 발명의 일 실시예에 따른 전자 시스템의 그래픽 예시이다. 도 1에서는, AS(advanced switching) 패브릭(110), 입출력(IO) 엔드 포인트들(120, 130, 및 140), 디바이스들(160, 170 및 180), 통신 링크들(152, 154 및 156)이 각각 도시된 대로 연결된다. 또한 도 1에는, 패브릭 관리자(116) 및 AS 통신 링크들(114)을 포함하는 AS 패브릭(110)이 도시되어 있다.
아래에서 더 상세히 설명되는 바와 같이, 실시예에 따르면, 디바이스(170)로부터 통신 링크(152) 상의 IO 엔드 포인트(130)에 의해 임의의 데이터가 수신된다. 대안적으로 그 임의의 데이터는 엔드 포인트(130) 내에 위치하는 처리 엘리먼트에서 발신할 수 있다. 임의의 데이터는 각종 통신 프로토콜들(예컨대, 이더넷(Ethernet), 소넷(Sonet), ATM, TCP/IP 등)에 대응하거나 또는 그와 관련될 수 있는 통신 프로토콜 포맷으로 디바이스(예컨대, 디바이스(170))로부터 송신된 데이터 및/또는 명령(이하에서는 "데이터"로 불림)일 수 있다. 이 데이터는 특정 통신 프로토콜에 특정한 헤더를 포함할 수 있고 이하에서 "프로토콜 데이터 유닛" 또는 "PDU"로 호칭되는 데이터 패킷의 형태로 송신된다. PDU 내의 헤더는 이하에서 "PDU 헤더"로 호칭되고 PDU 내의 데이터는 이하에서 "PDU 페이로드(payload)"로 호칭된다.
대안 실시예에서는, PDU가 AS 패브릭(110) 상의 IO 엔드 포인트에서 수신될 때 헤더를 포함하지 않을 수 있다. 예를 들면, PDU는 AS 패브릭(110) 상의 IO 엔드 포인트 내의 처리 유닛에 의해 생성된 PDU 페이로드만 포함할 수 있다. 이 예에서, PDU는 AS 패브릭(110)을 통하여 PDU를 전송하기 위해 AS 패브릭(110)에 의해 제공된 전송 서비스들(transportation services)에 특정한 통신 프로토콜들과 관련될 수 있다. 이 예에서, PDU는 AS 패브릭(110) 상의 IO 엔드 포인트 내의 처리 유닛에 의해 생성되었을 수 있는 PDU 페이로드만 포함한다.
이 예시적 실시예에 따르면, 디바이스(170)로부터의 PDU는 디바이스(160)로 향한다. PDU는 PDU 페이로드를 포함하는데, 이 PDU 페이로드는, 예를 들면, 디바이스(160)에 의해 핸들링될, 커맨드, 명령, 정보 요구, 멀티미디어 콘텐츠 등일 수 있다. PDU는 또한 특정 통신 프로토콜과 관련되어 있는 PDU 헤더를 포함하고 이 PDU 헤더는 또한 AS 패브릭(110)을 통한 특정 통신 프로토콜의 브리징(bridging) 또는 터널링(tunneling)과 관련되어 있는 정보를 포함할 수 있다.
디바이스(160)에 의한 PDU의 효율적인 수신을 용이하게 하기 위하여, PDU는 AS 패브릭(110)을 통하여 전송된 후에 비교적 동일한 통신 프로토콜 포맷으로 남는다(특정 통신 프로토콜과 관련된 PUD 헤더 및 PDU 페이로드의 부분들이 본래대로 남아 있다).
도 1은, 디바이스(160)에 도달하기 위해, PDU는 IO 엔드 포인트(130)로부터 AS 통신 링크들(114)을 경유하여 AS 패브릭(110)을 통하여 IO 엔드 포인트(120)로 PDU를 전송할 루트를 따르는 것을 보여준다.
예시적 실시예에서, PDU는 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스에 전달된다. 예시적 실시예에서, 메모리 기반 서비스 인터페이스는 송신 및/또는 수신 버퍼(예컨대, FIFO(first-in-first-out) 버퍼), 처리 엘리먼트, 또는 공유 메모리일 수 있고, 이들 모두는 AS 패브릭(110) 상의 출구(egress) IO 엔드 포인트에 응답할 수 있다. 그 후 PDU는 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스로부터 통신 링크(156)를 통하여 디바이스(160)에 송신될 수 있거나 디바이스(160)가 통신 링크(156)를 통하여 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스 내의 PUD에 액세스할 수 있다.
PDU는 디바이스(170)로부터 송신된 것과 비교적 동일한 통신 프로토콜 포맷으로 디바이스(160)에 전달되므로, PDU는 "캡슐화(encapsulation)"로 호칭되는 프로세스에서 AS 패브릭(110)을 통해 IO 엔드 포인트(130)로부터 IO 엔드 포인트(120)로 전송된다. 아래에서 더 상세히 설명되는 바와 같이, 수신된 PDU와 관련된 특정 프로토콜에 특정되지 않은 헤더(이하에서는 "전송 서비스 헤더(transport services header)"로 호칭)를 포함하는 캡슐화 포맷이 이용되어 수신된 PDU의 AS 패브릭(110)을 통한 효율적인 전송을 용이하게 한다.
일 실시예에 따른 AS 패브릭(110)은, 이하에서 "AS 코어 규격(AS Core Specification)"으로 불리는, 2003년 12월에 발행된, Advanced Switching Core Architecture Specification, Rev. 1.0에 따라서 운영된다. AS 코어 규격에 기술되고 아래에서 더 상세히 설명되는, AS 루트 헤더들(route headers)은 AS 패브릭(110) 상의 IO 엔드 포인트들에 의해 이용되어 PDU를 AS 통신 링크들(114)을 경유하여 AS 패브릭(110) 상의 하나 이상의 다른 IO 엔드 포인트들에 라우팅한다.
예시적인 일 실시예에서, IO 엔드 포인트(130)는, 아래에서 더 상세히 설명되는 바와 같이, PDU를 AS 패브릭(110) 상의 다른 엔드 포인트에 효율적으로 전송하기 위해 캡슐화 포맷을 이용하여 PDU를 캡슐화한다. 일단 PDU가 IO 엔드 포인트(120)에 의해 수신되면, AS 패브릭(110)에 특정한 헤더들은 제거되고 PDU는 IO 엔드 포인트(130)에 의해 수신된 것과 비교적 동일한 통신 프로토콜 포맷으로 디바이스(160) 송신되거나 또는 디바이스(160)에게 액세스 가능하게 된다.
AS 루트 헤더들 외에, AS 코어 규격에는 폭주 관리, 멀티캐스트 및 분할(segmentation) 및 재조합(reassembly)(SAR)과 같은 패브릭 전송 서비스들(fabric transportation services)에 관한 특정 전송 서비스들이 기술되지만, 본 발명은 이들 전송 서비스들에 제한되지는 않는다. AS 코어 규격은 또한 이들 전송 서비스들을 특정 PI(protocol interfaces)들과 관련시킨다.
예시적 실시예에서, AS 패브릭(110) 상의 하나 이상의 PI들의 효율적인 이용을 돕기 위해, 전송 서비스 관리자(300)가 이용된다. 도 1에 도시된 바와 같이, 전송 서비스 관리자(300)의 기능은, 패브릭 관리자(116)의 일부로서 포함될 수도 있고 및/또는 AS 패브릭(110) 상의 IO 엔드 포인트 내에 위치하거나 및/또는 그에 응답할 수도 있다.
아래에서 더 상세히 설명되는, 전송 서비스 관리자(300)는 IO 엔드 포인트(130)에 의해 수신된 PDU 또는 그 엔드 포인트(130)에서 생성된 PDU와 관련된 특정 통신 프로토콜에 특정되지 않은 AS 패브릭(110) 상의 전송 서비스 헤더를 생성할 수 있다. 이 일반(generic) 전송 서비스 헤더는 PDU를 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스에 전달하기 위해 AS 패브릭(110)을 통하여 PDU의 캡슐화 및 전송을 용이하게 할 것이다.
예시적 실시예에서, AS 패브릭(110)을 통하여 PDU를 효율적으로 전송하기 위해, SAR 전송 서비스가 이용된다. SAR은, 예를 들면, PDU가 AS 패브릭(110)을 통하여 전송된 캡슐화된 PDU에 대하여 허용된 페이로드 사이즈를 초과하는 경우에 이용된다. 그와 관련하여, 아래에서 더 상세히 설명되는 바와 같이, 허용 가능한 페이로드 사이즈를 초과하는 디바이스(170)로부터 송신된 PDU는 허용 가능한 페이로드 내에 결과적인 세그먼트들이 맞도록 IO 엔드 포인트(130)에 의해 보다 작은 세그먼트들로 슬라이스된다.
아래에서 더 상세히 설명되는 바와 같이, 전송 서비스 관리자(300)는 AS 통신 링크들(114)을 경유하여 AS 패브릭(110)을 통해 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스에 전송되는 각각의 캡슐화된 PDU 세그먼트와 함께 포함될 일반 전송 서비스 헤더의 생성에 의해 이 분할 프로세스를 용이하게 한다. 그 후 세그먼트들은 PDU를 IO 엔드 포인트(130)에서 수신된 것과 비교적 동일한 포맷으로 디바이스(160)에 전달 및/또는 송신하기 위해 IO 엔드 포인트(120)에 의해 재조합된다.
대안 실시예에서, IO 엔드 포인트(130)는 PDU에 대한 목적지일 수 있다. 그 경우, 재조합된 PDU는 원격 디바이스(160)에 전송되지 않는다.
도 2는 본 발명의 일 실시예에 따른, 캡슐화된 PDU의 그래픽 예시이다. 도 2에서는, 캡슐화된 PDU가 AS 패브릭 캐리어 프로토콜(200)로 도시되어 있다.
AS 패브릭 캐리어 프로토콜(200)은 AS 루트 헤더(210), 일반 전송 서비스 헤더(220), PDU 헤더(230) 및 PDU 페이로드(240)를 포함한다. 위에서 소개된 바와 같이, AS 코어 규격에 기술된 포맷의 AS 루트 헤더들은 AS 패브릭(110) 상의 IO 엔드 포인트들에 의해 이동되어 캡슐화된 PDU를 AS 통신 링크들을 경유하여 AS 패브릭(110) 상의 출구 IO 엔드 포인트로 효율적으로 라우팅한다. 그와 관련하여, AS 루트 헤더(210)는 AS 코어 규격에 따라서 AS 패브릭(110) 상의 입구(ingress) IO 엔드 포인트에 의해 생성된다.
위에서 소개되고 아래에서 더 상세히 설명되는, 일반 전송 서비스 헤더(220)는 AS 패브릭 캐리어 프로토콜(200)의 포맷으로 캡슐화된 PDU의 AS 패브릭(110) 상의 출구 IO 엔드 포인트인 IO 엔드 포인트의 메모리 기반 서비스 인터페이스로의 전달을 용이하게 하기 위해 전송 서비스 관리자(300)에 의해 생성된다.
PDU 헤더(230)는 통신 프로토콜과 관련되고 또한 PDU에 포함된 데이터를 목적지 디바이스로부터 AS 패브릭(110) 상의 입구 IO 엔드 포인트로 송신하기 위해 이용되는 헤더를 포함한다.
PDU 페이로드(240)는 PDU 내에서 전송되는 콘텐츠를 포함한다. 이들 콘텐츠는, 데이터 외에, 또한 상위 레벨 프로토콜 PDU 및 그것의 관련 상위 레벨 프로토콜 헤더들의 일부 또는 전부를 포함할 수 있다. PDU 헤더(230) 및 PDU 페이로드(240)는, 일단 AS 패브릭 캐리어 프로토콜(200) 내에 포함되면, 이하에서 "캡슐화된 PDU"로 호칭된다.
AS 코어 규격은 캡슐화의 방법으로도 알려진 "체이닝(chaining)"으로 호칭되는 프로세스에서 다른 헤더들의 참조를 허용하는 헤더 포맷을 기술한다. 예시적 실시예에서, 체이닝은 AS 패브릭 캐리어 프로토콜(200)에서 상위 번호 헤더를 참조하는 하위 번호 헤더에 의해 달성된다. 따라서, AS 패브릭 캐리어 프로토콜(200)에서, AS 루트 헤더(210)는 하위 번호 헤더가 될 것이고 일반 전송 서비스 헤더(220)에 대한 참조를 포함함으로써 상위 번호 일반 전송 서비스 헤더(220)에 연쇄(chain to)할 것이다. 이 프로세스는 AS 패브릭 캐리어 프로토콜(200) 내에 포함된 각 헤더에 대하여 도 2의 AS 패브릭 캐리어 프로토콜(200)에서 아래로 계속될 것이다.
대안 실시예들에서, AS 패브릭 캐리어 프로토콜(200)은 도 2에 도시된 헤더들보다 더 많이 포함할 수 있고 어드밴스드 스위칭에 특정되지 않은 헤더들을 포함할 수 있다. 그와 관련하여, 상위에 위치한 각 헤더는 하위에 위치한 헤더에 연쇄할 것이다. 예를 들면, 전송 서비스 헤더(220)는, 하이퍼텍스트 마크업 언어(HTML), 원격 프로시저 호출(RPC : remote procedure call), 실시간 전송 프로토콜(RTP) 등과 같은 복수의 다른 상위 레벨 프로토콜들에 연쇄할 수 있다.
예시적 실시예에서, AS 패브릭 캐리어 프로토콜(200) 내의 각 엘리먼트는 이하에서 "디워드(dword)"로 호칭되는, 하나 이상의 "더블워드(double-words)"를 포함한다. 디워드는 4개의 8비트 세그먼트들로 더 분할될 수 있는 32비트의 데이터를 나타낸다. AS 패브릭 캐리어 프로토콜(200)은 각 엘리먼트에 대하여 및/또는 조합된 모든 엘리먼트들에 대하여 설정된 수의 디워드들과 같은 사이즈 제한을 가질 수 있다. 이 사이즈 제한은 AS 코어 규격에 의해 또는 특정 AS 패브릭의 물리적 성능들에 적용 가능한 것들과 같은 다른 제한들에 의해 결정된다.
도 3은 본 발명의 일 실시예에 따른, 전송 서비스 관리자의 구조도이다. 전송 서비스 관리자(300)는 전송 엔진(310), 제어 로직(320), IO 인터페이스(340), 및 선택적으로 하나 이상의 애플리케이션들(350)을 포함하고, 이들은 각각 도시된 대로 연결된다.
도 3에서, 전송 엔진(310)은 전송 헤더 특징(transport header feature)(314), 및 전달 특징(delivery feature)(316)을 포함한다. 아래에서 더 상세히 설명되는 바와 같이, 전송 헤더 특징(314) 및 전달 특징(316)은 PDU와 관련된 통신 프로토콜에 일반적인 방법으로 스위치 패브릭(예컨대, AS 패브릭(110)) 상의 노드(예컨대, IO 엔드 포인트(130))에서 수신된 PDU의 캡슐화 및 전송을 용이하게 하는 전송 서비스 헤더를 생성한다. 그 결과, 노드로부터 스위치 패브릭을 통하여 스위치 패브릭 상의 다른 노드(예컨대, 엔드 포인트(120))의 메모리 기반 서비스 인터페이스로의 PDU의 효율적인 전송이 달성될 수 있다.
본 명세서에서 사용된 바대로, 제어 로직(320)은 전송 서비스 관리자(300)의 전체 동작을 제어하고 본 명세서에서 기술된 전송 서비스 관리자(300)의 동작을 구현하기 위한 각종의 로직 디바이스(들) 및/또는 실행 가능한 콘텐츠 중 임의의 것을 나타내기 위한 것이다. 이와 관련하여, 제어 로직(320)은 그러한 제어 특징들을 구현하기 위한 마이크로프로세서, 네트워크 프로세서, 마이크로컨트롤러, FPGA( field programmable gate array), ASIC(application specific integrated circuit), 또는 실행 가능한 콘텐츠, 및/또는 그들의 임의의 조합으로 구성될 것이다. 대안 실시예들에서, 제어 로직(320)의 특징들 및 기능은 전송 엔진(310) 내에서 구현될 것이다.
예시적 실시예에서, 제어 로직(320)은 AS 패브릭(110) 상의 IO 엔드 포인트에서 수신된 PDU에 대한 전송 서비스 헤더의 생성을 용이하게 하기 위해 전송 엔진(310)의 인스턴스를 호출한다. 일반 전송 서비스 헤더는 AS 패브릭(110) 상의 다른 IO 엔드 포인트의 메모리 기반 서비스 인터페이스에 PDU를 전달하기 위해 AS 패브릭(110)을 통한 PDU의 캡슐화 및 전송을 용이하게 한다.
본 명세서에서 사용된 바와 같이, 메모리(330)는, 휘발성 메모리, 비휘발성 메모리, 플래시 및 프로그램 변수들 또는 상태들을 포함하는 각종의 메모리 매체를 나타내기 위한 것이지만, 이들에 제한되지는 않는다.
예시적 실시예에 따르면, 메모리(330)는 AS 패브릭(110) 상의 IO 엔드 포인트(130)에 의해 수신된 PUD와 관련된 특정 통신 프로토콜에 일반적인 일반 전송 서비스 헤더들을 생성하기 위한 인코딩들을 포함하는 표들을 임시로 저장하기 위해 이용된다. 메모리(330)는 또한 캡슐화된 PDU(예컨대, PDU 헤더(230) 및 PDU 페이로드(240))가 AS 패브릭 캐리어 프로토콜(200)의 포맷으로 AS 패브릭 캐리어 프로토콜 내에 배치되는 방법을 용이하게 하기 위한 인코딩들을 임시로 저장할 수 있다.
메모리(330)는 또한 실행 가능한 콘텐츠를 저장할 수 있다. 실행 가능한 콘텐츠는 전송 엔진(310)의 인스턴스를 구현하기 위해 제어 로직(320)에 의해 이용될 수 있다.
예시적 실시예에서, 머신 판독 가능한 명령들이 머신 액세스 가능한 매체의 형태로부터 메모리(330)에 제공될 수 있다. 본 명세서에서 사용된 바대로, 머신 액세스 가능한 매체는 머신 또는 디바이스(예컨대, IO 엔드 포인트(130))에 의해 판독 가능한 형태로 정보를 제공하는(즉, 저장 및/또는 송신하는) 임의의 메커니즘을 나타내기 위한 것이다. 예를 들면, 머신 액세스 가능한 매체는 읽기 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 저장 매체; 광 저장 매체; 플래시 메모리 디바이스; 전기, 광학, 음향 또는 다른 형태의 전파 신호(예컨대, 반송파, 적외선 신호, 디지털 신호) 등을 포함할 수 있다.
본 명세서에서 사용된 바대로, IO 인터페이스(340)는 전송 서비스 관리자(300)와 전자 시스템 간의 통신 인터페이스를 제공한다. 예를 들면, 전송 서비스 관리자(300)는 통신 네트워크의 엘리먼트로서 구현될 수 있고, I/O 인터페이스(340)는 통신 채널을 통하여 전송 서비스 관리자(300)와 통신 네트워크 간의 통신 인터페이스를 제공한다. 이와 관련하여, 제어 로직(320)은 I/O 인터페이스(340)를 통하여 전송 서비스 관리자(300) 외부의 애플리케이션 소프트웨어로부터 일련의 명령을 수신할 수 있다. 이 일련의 명령은 전송 엔진(310)의 하나 이상의 특징들을 구현하기 위해 제어 로직(320)을 호출할 수 있다.
예시적 실시예에서, 전송 서비스 관리자(300)는 제어 로직(320)에 명령들을 제공하는 하나 이상의 애플리케이션들(350)을 포함할 수 있다. 본 명세서에서 사용된 바대로, 그러한 애플리케이션들(350)은 관리 특징 등을 인에이블시키기 위해 사용자 인터페이스, 예컨대, 그래픽 사용자 인터페이스(GUI)를 생성하기 위해 호출될 수 있다. 대안 실시예들에서, 전송 엔진(310)의 하나 이상의 특징들은 그러한 특징들을 호출하기 위해 제어 로직(320)에 의해 호출되는 애플리케이션들(350)로서 구현될 수 있다.
일 실시예에서, PDU는 디바이스(160)를 목적지로 하여 AS 패브릭(110) 상의 IO 엔드 포인트(130)에 의해 수신된다. IO 엔드 포인트(130)는 AS 패브릭 캐리어 프로토콜(200)의 형태로 PDU를 캡슐화하여 그 PDU를 AS 패브릭(110)을 통하여 IO 엔드 포인트(120)로 전송할 것이고, 그 후 IO 엔드 포인트(120)는 PDU를 디바이스(160)의 행선지로 송신할 것이다. 캡슐화 전에, IO 엔드 포인트(130)는 PDU의 전체 사이즈를 결정하고 그 사이즈를 AS 패브릭 캐리어 프로토콜(200)에 대하여 허용 가능한 사이즈와 비교한다. 만일 PDU가 허용 가능한 사이즈를 초과하면, IO 엔드 포인트(130)는 PDU를 보다 작은 세그먼트들로 슬라이스할 것이다.
일단 PDU 사이즈가 결정되고 어쩌면 PDU가 분할되면, 전송 엔진(310)은 전송 헤더 특징(314)의 인스턴스를 호출한다. 아래에서 더 상세히 설명되는, 전송 헤더 특징(314)은 메모리(330) 내의 인코딩 표를 액세스하여 어떤 인코딩들이 일반 전송 서비스 헤더에 적용될 것인지를 결정한다. 일단 인코딩들이 결정되면, 전송 헤더 특징(314)은 (도 2에 일반 전송 서비스 헤더(220)로 도시된) 일반 전송 서비스 헤더의 적용 가능한 필드들을 차지한다(populate).
일단 일반 전송 서비스 헤더의 적용 가능한 필드들이 전송 헤더 특징(314)에 의해 차지되면, 전송 엔진(310)은 전달 특징(316)의 인스턴스를 호출한다. 아래에서 더 상세히 설명되는, 전달 엔진(316)은 캡슐화된 PUD의 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스로의 효율적인 전송을 용이하게 하기 위해 캡슐화된 PDU를 포맷 또는 배열한다.
예시적 실시예에서, 전송 서비스 관리자(300)는 AS 패브릭(110) 상의 출구 IO 엔드 포인트에서 캡슐화된 PDU의 전달을 용이하게 할 수 있다. 그와 관련하여, 전송 엔진(310)은 출구 IO 엔드 포인트에 의해 수신될 때 캡슐화된 PDU의 전송 서비스 헤더를 판독하기 위해 전달 특징(316)의 인스턴스를 호출한다. 그 후 전달 특징(316)은 PDU의 출구 IO 엔드 포인트의 메모리 기반 서비스 인터페이스로의 전달을 용이하게 한다.
도 4는 본 발명의 일 실시예에 따른, 전송 서비스 헤더의 그래픽 예시이다. 도 4에는, 일반 전송 서비스 헤더(400)가 도시되어 있다. 일반 전송 서비스 헤더(400)는 각종 통신 프로토콜들과 관련된 PDU의 캡슐화를 용이하게 하도록 설계된 포맷이다. 따라서, 일반 전송 서비스 헤더(400)는 스위치 패브릭 상의 노드에서 수신된 PDU와 어쩌면 관련 가능성 있는 특정 통신 프로토콜에 특정되지 않거나 일반적이다.
일반 전송 서비스 헤더(400)는 32비트의 데이터를 포함한다. 이 32비트의 데이터는 5개의 필드; 분할 코드(segmentation code), G/E(granularity/endian), 메모리 기반 서비스 인터페이스 식별자, PDU 시퀀스 번호 및 PI/세그먼트 시퀀스 번호를 포함한다.
비트 28-31의 "분할 코드" 필드는 PDU와 관련된 세그먼트의 특징을 나타낸다. 비트 28-31은 도 5a의 표(510)에서 설명되는 바와 같이, 분할 코드 인코딩들에 기초하여 선택적으로 어서트(assert)된다.
비트 26 및 27의 "G/E" 필드는 스위치 패브릭 상의 출구 노드의 메모리 기반 서비스 인터페이스에 전달될 때의 PDU의 GE 특징들을 나타낸다. 이와 관련하여, 비트 26 및 27은 아래 도 5b의 표(520)에서 설명되는 바와 같이, G/E 인코딩들에 기초하여 선택적으로 어서트된다.
예시적 실시예에서, 전송 엔진(310)은 AS 패브릭(110) 상의 IO 엔드 포인트에 의해 수신된 PDU의 적어도 일부를 판독하고 PDU와 관련된 데이터 페이로드의 포맷을 결정할 수 있는 전송 헤더 특징(314)의 인스턴스를 선택적으로 호출할 것이다. 데이터 페이로드의 포맷은 수신된 PDU와 관련된 통신 프로토콜에 기초할 수 있고 또는 그것은 정적으로 구성된 정보에 기초하거나, 또는 도출된 패킷 길이 및/또는 패킷과 관련되는 통신 인터페이스를 포함할 수 있는 패킷에 관한 정보(이하에서는 "메타데이터"로 호칭)에 의할 수 있다.
데이터 페이로드의 포맷은 하나 이상의 디워드 PDU 페이로드가 후속하는 하나 이상의 디워드 PDU 헤더를 포함할 수 있다. PDU 헤더는 PDU 페이로드가 바이트 스트림(byte-stream) 방식으로 PDU의 행선지에 전달될 것인지 아니면 디워드 스트림(dword-stream) 방식으로 전달될 것인지를 결정하기 위해 출구 전송 서비스 관리자(300)에 의해 이용되는 정보를 포함할 수 있다. 그와 관련하여, 비트 27은 바이트 스트림 방식이 지시되면 전송 헤더 특징(314)에 의해 어서트되고 디워드 스트림 방식이 지시되면 디어서트(de-assert)된다.
전송 헤더 특징(314)는, 바이트 스트림 방식이 지시되면, PDU가 AS 패브릭(110)을 통하여 전송된 후에 출구 IO 엔드 포인트의 메모리 기반 서비스 인터페이스에 어떻게 전달되는지를 나타내기 위해 비트 26을 선택적으로 어서트할 수 있다. 그와 관련하여, 만일 PDU가 메모리 기반 서비스 인터페이스로부터 어떻게 데이터가 액세스/검색되는지에 대한 반대 바이트 엔디안(opposite byte-endianess)을 갖는(엔디안은 디워드의 좌측 또는 우측에 위치한 MSB(most significant byte)임) 바이트 스트림 방식으로 전송되고 있다면, 전송 헤더 특징(314)은 비트 26을 어서트할 것이다. 이 비트 26의 어서트는 PDU 내의 페이로드 데이터가 바이트 반전 순서(byte-reverse order)로 메모리 기반 서비스 인터페이스 내로 전달될 것임을 나타낼 것이다.
비트 14-27의 "메모리 기반 서비스 식별자" 필드는 캡슐화된 PDU 세그먼트(들)가 전달되는 메모리 기반 서비스 인터페이스 내의 위치를 나타낸다. 메모리 기반 서비스 식별자는 또한 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더가 특정 메모리 기반 서비스 식별자를 나타낼 수 있는 수신된 PDU들 및 PDU 세그먼트들의 순서화된 플로우(ordered flow)와 관련된 재조합 정보(reassembly information)에 대한 핸들 또는 인덱스를 제공한다.
예시적 실시예에서, 이 식별자는 AS 패브릭(110) 상의 IO 엔드 포인트의 수신 및/또는 송신 버퍼에 유지된 특정 큐에 대한 구성된 전달 옵션일 수 있다. 대안 실시예에서, 이 식별자는 AS 패브릭 상의 IO 엔드 포인트에 응답하는 특정 PI-특정 처리 유닛에 대한 구성된 전달일 수 있으나, 본 발명은 이들 2개의 예시적 구현들에 제한되지는 않는다.
비트 7-13의 "PDU 시퀀스 번호" 필드는 스위치 패브릭 상에서 전송되는 PDU들의 시퀀스 내의 특정 PDU의 위치를 나타낸다. 예를 들면, 멀티미디어 오디오 프레임들의 시퀀스가 디바이스(170)로부터 디바이스(160)로 AS 패브릭(110)을 통하여 송신된다. 이 예에서, IO 엔드 포인트(130)에 의해 수신되는 제1 PDU는 캡슐화되고 PDU 시퀀스 번호 '0'이 할당되어 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스에 송신되고, 멀티미디어 오디오 프레임들과 관련된 각각의 후속 PDU에 대해서는 '1'씩 증분(increment)된다. 동일 PDU의 모든 세그먼트들은 동일 PDU 시퀀스 번호를 지닌다. PDU 시퀀스 번호는 랩(wrap)하는데, 즉, 최대 값으로부터의 증분은 '0'의 값으로 되고 '0'은 필드가 나타낼 수 있는 최대 값에 후속하는 다음 순차 값으로 간주된다.
비트 0-6의 "PI/시퀀스 번호" 필드는 PDU와 관련된 통신 프로토콜(들)(예컨대, 이더넷, ATM, IP, SONET 등)을 나타내거나 또는 PDU가 AS 패브릭(110)을 통하여 다른 IO 엔드 포인트에 전송되기 전에 IO 엔드 포인트에 의해 세그먼트들로 슬라이스되는 경우에는 PDU의 세그먼트의 시퀀스 번호를 나타낸다. 그와 관련하여, 세그먼트의 시퀀스 번호는 AS 패브릭(110)의 IO 엔드 포인트들 간의 점대점(point-to-point) 통신 링크의 특징(aspect)이고 AS 패브릭(110)을 통하여 중간 및 최종(이하에서는 "말단(terminal)"으로 불림) 세그먼트들의 전송을 용이하게 하기 위해 이용된다.
예시적 실시예에서, 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더는 세그먼트들로 슬라이스된 PDU의 최초 세그먼트(initial segment)와 관련되거나 세그먼트들로 슬라이스되지 않은 전체 PDU(이하에서는 "싱글턴(singleton)"으로 불림)와 관련된다. 그와 관련하여, 전송 헤더 특징(314)은 최초 세그먼트 또는 싱글턴의 적어도 일부를 판독하여 PDU와 관련된 통신 프로토콜을 결정한다. 그 후 전송 헤더 특징(314)은 (예컨대 메모리(330)에 유지된) 표에 액세스하여 지시된 통신 프로토콜에 대한 인코딩들을 결정하고 그에 따라서 비트 0-6을 선택적으로 어서트한다. 대안적으로, 전송 헤더 특징(314)은 또한 PDU와 관련된 메타데이터에 액세스하여 이 결정을 행할 수 있다.
예시적 실시예에서, 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더는 PDU 세그먼트와 관련되고, PDU 세그먼트는 AS 패브릭(110)을 통하여 전송되기 전에 IO 엔드 포인트에 의해 슬라이스된 세그먼트들의 시퀀스의 일부이다. 그와 관련하여, 전송 헤더 특징(314)은 IO 엔드 포인트에 의해 이전에 슬라이스된 다른 PDU 세그먼트들에 대한 PDU 세그먼트의 상대 위치에 기초하여 비트 0-6을 선택적으로 어서트한다. 세그먼트 시퀀스 번호는 최초 세그먼트에서 '0'으로 되고 전송 헤더 특징(314)에 의해 각각의 잇따른 세그먼트에서 '1'씩 증분된다. 시퀀스 번호는 최대 값에 도달하면 다시 0으로 랩되고 후속 세그먼트들은 여전히 PDU와 관련된 모든 데이터를 전송할 필요가 있다.
예시적 실시예에서, AS 패브릭(110)을 통하여 송신하기 전에 PDU를 슬라이스하는 것은 IO 엔드 포인트 이외의 다른 엘리먼트들에 의해 수행될 수도 있다. 그와 관련하여, PDU의 슬라이싱은 AS 패브릭(110)에 응답하여 컴퓨터 에이전트 상의 소프트웨어에서 일어날 수도 있고, 또는 AS 패브릭(110)에 응답하여 지정된 하드웨어(예컨대, ASIC)에서 일어날 수도 있다.
도 5a는 본 발명의 일 실시예에 따른, 전송 서비스 헤더에 대한 인코딩들의 표 예시이다. 도 5a에는, 비트 28-31의 일반 전송 서비스 헤더(400)에 대한 예시적 분할 코드 인코딩들을 포함하는 표가 도시되어 있다.
도 5b는 본 발명의 일 실시예에 따른, 전송 서비스 헤더의 단위 G/E(granularity/endian) 인코딩들의 표 예시이다. 도 5b에는, 비트 26 및 27의 일반 전송 서비스 헤더(400)에 대한 예시적 G/E 인코딩들을 포함하는 표가 도시되어 있다.
도 6은 본 발명의 일 실시예에 따른, 메모리 기반 서비스 인터페이스에 대한 엔디안 전달 옵션들(endian delivery options)의 그래픽 예시이다. 도 6에서, 블록 예시(610)는 특정 바이트 스트림 순서로 캡슐화된 PDU의 예시적 표현을 보여준다. 블록 예시들(620 및 630)은 최초에 블록 예시(610)의 순서로 캡슐화된 PDU의 바이트 반전이 없는 전달과 바이트 반전 전달의 예들을 각각 보여준다.
앞에서 언급한 바와 같이, 일반 전송 서비스 헤더(400)의 포맷으로 된 PI-일반 전송 서비스 헤더의 비트 26 및 27은 캡슐화된 PDU의 단위 및 엔디안 특징들을 나타낸다. 그와 관련하여, 캡슐화된 PDU가 스위치 패브릭(예컨대, AS 패브릭(110)) 상의 출구 노드(예컨대, IO 엔드 포인트(120, 130 또는 140)에 의해 수신될 때, 출구 노드는 일반 전송 서비스 헤더의 비트 26 및 27을 판독하고 표(520)에 도시된 인코딩들에 기초하여 그것의 메모리 기반 서비스 인터페이스 내로 캡슐화된 PDU를 수신한다. 패킷의 바이트 순서를 나타내는 비트 또는 타깃의 바이트 순서가 패킷의 바이트 순서와 다른 경우에는 컨텐츠가 바이트 반전되어야 함을 나타내는 비트와 같은 대안적 인코딩들이 동일한 결과를 달성하기 위해 이용될 수 있다는 것을 알 수 있다.
대안 실시예에서, 특정 IP와 관련된 캡슐화된 PDU들이 특정 PI에 기초하여 바이트 반전되도록 엔디안 전달 옵션들이 출구 노드 내에 정적으로 구성될 수 있다. 그와 관련하여, 캡슐화된 PDU가 노드에 의해 수신될 때, 출구 노드는 먼저 어떤 PI가 캡슐화된 PDU가 관련되는지를 결정하고 그 후 캡슐화된 PDU를 해당 PI에 대한 정적으로 프로그램된 구성에 따라서 그것의 메모리 기반 서비스 인터페이스 내로 수신한다.
도 7은 본 발명의 일 실시예에 따른, 메모리 기반 서비스 인터페이스 내로의 프리패드(PrePad) 전달의 그래픽 예시이다. 도 7에서, 블록 예시들(710, 720, 730, 740 및 750)은 캡슐화된 PDU와 관련된 최초 또는 싱글턴 세그먼트의 프리패드 부분들의 서로 다른 예들을 보여준다. PDU는, 예를 들면, AS 패브릭 캐리어 프로토콜(200)의 포맷으로 캡슐화된다.
예시적 실시예에서, "프리패드(PrePad)"는 캡슐화된 PDU를 오프셋팅하는 프로세스이다. 프리패드는 스위치 패브릭 상의 출구 노드의 처리 유닛 또는 메모리 기반 서비스 인터페이스 내로의 캡슐화된 PDU의 효율적인 전달 및 PDU의 콘텐츠의 효율적인 처리를 용이하게 한다. 바이트-카운트(byte-count) 길이로 측정된 프리패드의 사이즈는, 적어도 부분적으로, 스위치 패브릭 상의 입구 노드에서 수신될 때 PDU와 어느 통신 프로토콜이 관련되는지에 기초한다.
앞에서 언급한 바와 같이, 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더는 비트 28-31에서 최초 또는 싱글턴 세그먼트에 프리패드가 존재하는지를 나타낸다. 만일 일반 전송 서비스 헤더가 프리패드가 존재하는 것을 나타내면, 캡슐화된 PDU의 제1 디워드의 하나 이상의 비트들이 선택적으로 어서트된다. 이들 선택적으로 어서트된 비트들은 일단 스위치 패브릭 상의 출구 노드가 일반 전송 서비스 헤더가 최초 또는 싱글턴 세그먼트에 프래패드가 존재하는 것을 나타낸다고 결정하면 그 출구 노드가 프리패드의 바이트-카운트 길이를 결정할 수 있게 할 것이다.
도 7에서, 블록 예시(710)는 프리패드를 보여주지 않는다. 블록 예시들(720, 730, 740 및 750)은 각각 1, 2, 3 및 13 바이트-카운트 길이를 갖는 프리패드들을 보여준다. 레전드(760)는 또한 도 7의 블록 예시들에서 프리패드를 포함하는 바이트들을 하이라이트(highlight)하는 레전드를 예시한다.
예시적 실시예에서, PDU가 IO 엔드 포인트(170)에서 수신된다. 그 후 전송 엔진(310)은 전송 헤더 특징(314)의 인스턴스를 호출한다. 전송 헤더 특징(314)은 수신된 PDU의 적어도 일부를 판독하고 어떤 통신 프로토콜이 수신된 PDU와 관련되어 있는지를 결정하기 위해 추가 정보에 액세스할 수 있다. 전송 헤더 특징(314)은, 그 결정에 부분적으로 기초하여, 캡슐화된 PDU가 프리패드를 포함하는지를 나타내기 위해 PDU의 최초 또는 싱글턴 세그먼트에서 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더의 비트 28-31을 선택적으로 어서트한다.
예시적 구현에서, PDU와 관련된 통신 프로토콜은 이더넷일 수 있다. 이더넷 통신 프로토콜과 관련된 PDU는 14 바이트 헤더와 그에 후속하는 데이터의 페이로드로 구성된다. 이 예시적 구현에서, AS 패브릭(110) 상의 출구 IO 엔드 포인트의 메모리 기반 인터페이스는 캡슐화된 PDU들 내의 프로토콜 헤더들이 32비트(4바이트) 경계에서 메모리 기반 서비스 인터페이스 내로 전달되면 더 효율적으로 동작한다.
만일, 예를 들어, 이더넷 프레임이 HTTP 헤더를 더 캡슐화하는 TCP 헤더를 더 캡슐화하는 IP 헤더를 더 캡슐화하면, 이들 3개의 디워드 지향(dword-oriented) 헤더 포맷들은 4바이트가 아니라 2바이트 경계에서 정렬되어 전달되어 결국 이더넷 프레임 내에 캡슐화된 프로토콜들을 처리하는 네트워크 프로세서와 같은 프로세서에 의한 액세스가 덜 효율적으로 될 것이다. 그 결과, 이더넷 헤더에 대한 프리패드가 없다면, 이더넷 헤더와 관련된 PDU 전달이 디워드의 제3 바이트가 아니라 제1 바이트에서 시작할 경우 저장 및/또는 처리 비효율을 초래할 수 있다. 2바이트 프리패드를 이용하여 전송 서비스 헤더 내의 이더넷 프레임을 전송하는 것은 4바이트 경계에서 이더넷 페이로드(예컨대 IP)를 정렬시킨다.
그와 관련하여, 일반 전송 서비스 헤더의 비트 28-31은 프리패드가 존재하는 것을 나타낼 것이다. 그 후 전송 엔진(310)은 전달 특징(316)을 호출한다. 전달 특징(316)은 일반 전송 서비스 헤더의 비트 0-6을 판독하여 PDU와 관련된 통신 프로토콜이 이더넷인 것을 결정할 수 있고 그 후 이더넷에 대응하는 적당한 프리패드 바이트-카운트 길이를 포함하는 메모리(예컨대 메모리(300)) 내의 표에 액세스할 것이다. 위에서 언급한 바와 같이, 이더넷에 대한 프리패드 바이트-카운트 길이는 2바이트이다. 따라서, AS 패브릭(110) 상의 출구 IO 엔드 포인트가 2바이트의 프리패드 바이트-카운트 길이를 결정할 수 있게 하는 정보가 제1 PDU 디워드에 배치된다(예컨대, 비트들이 선택적으로 어서트된다). 위에서 언급한 바와 같이, 2의 프리패드 바이트-카운트 길이는 PDU 내에 캡슐화된 프로토콜들의 32비트 경계에서 출구 노드의 메모리 기반 서비스 인터페이스로의 효율적인 전달을 가능케 하도록 이더넷 통신 프로토콜과 관련된 캡슐화된 PDU를 포맷할 것이다.
도 8은 본 발명의 일 실시예에 따른, 메모리 기반 서비스 인터페이스 내로의 엔드패드(EndPad) 전달의 그래픽 예시이다. 도 8에서, 블록 예시들(810, 820, 830, 및 840)은 캡슐화된 PDU와 관련된 말단 또는 싱글턴 세그먼트의 엔드패드 부분들의 서로 다른 예들을 보여준다. PDU는, 예를 들면, AS 패브릭 캐리어 프로토콜(200)의 포맷으로 캡슐화된다.
예시적 실시예에서, "엔드패드(EndPad)"는 캡슐화된 PDU와 관련된 말단 또는 싱글턴 세그먼트의 트레일링 바이트들(trailing bytes)을 스킵하거나 무시하는 프로세스이다. 엔드패드는 디워드들만을 전송하는 패브릭을 통하여 바이트-임의 길이(byte-arbitrary length)의 패킷들을 운반하는 프로토콜들의 전송을 용이하게 한다. 이것은 말단 또는 싱글턴 세그먼트가 노드의 메모리 기반 서비스 인터페이스에 전달될 때 캡슐화된 PDU 내의 최종 디워드의 하나 이상의 트레일링 바이트들이 스킵되는 것을 수신측 출구 노드들(receiving egress nodes)에게 표시함으로써 달성된다. 바이트-카운트 길이로 측정된 엔드패드의 사이즈는, 적어도 부분적으로, 채워지지 않은 캡슐화된 PDU와 관련된 말단 또는 싱글턴 세그먼트의 최종 디워드 내의 트레일링 바이트들의 수에 기초한다. 다른 실시예에서 엔드패드는 스킵하거나 무시할 보다 큰 범위의 바이트들을 나타내고 보다 큰 패드 사이즈들을 용이하게 하기 위해 패킷의 최종 디워드에 제한되지 않을 수 있다.
위에서 언급한 바와 같이, 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더는 말단 또는 싱글턴 세그먼트에 엔드패드가 존재하는지를 비트 28-31에서 나타낸다. 만일 일반 전송 서비스 헤더가 엔드패드가 존재하는 것을 나타내면, 캡슐화된 PDU와 관련된 말단 또는 싱글턴 세그먼트의 최종 디워드의 하나 이상의 비트들이 선택적으로 어서트된다. 스위치 패브릭 상의 출구 노드는, 일반 전송 서비스 헤더가 엔드패드가 존재하는 것을 나타내는 것으로 결정한 후에, 최종 디워드 내의 선택적으로 어서트된 비트들을 이용하여 엔드패드의 바이트-카운트 길이를 결정한 다음 그에 따라서 최종 디워드 내의 하나 이상의 바이트들을 스킵하거나 무시한다.
도 8에서, 블록 예시(810)는 엔드패드가 없음을 보여준다. 블록 예시들(820, 830 및 840)은 각각 1, 2, 및 3 바이트-카운트 길이를 갖는 엔드패드들을 보여준다. 레전드(850)는 또한 도 8의 블록 예시들에서 엔드패드를 포함하는 바이트들을 하이라이트하는 레전드를 예시한다.
예시적 실시예에서, PDU가 IO 엔드 포인트(170)에서 수신되고 그 PDU는 AS 패브릭 캐리어 프로토콜(200)의 캡슐화 포맷으로 AS 패브릭(110) 상의 캡슐화된 PDU에 대한 허용 가능한 페이로드 사이즈 내에 용이하게 들어맞는 사이즈이다. 따라서, 캡슐화된 PDU는 싱글턴 세그먼트이다.
그 후 전송 엔진(310)은 전송 헤더 특징(314)의 인스턴스를 호출한다. 전송 헤더 특징(314)은 싱글턴 세그먼트의 적어도 일부 또는 다른 정보를 판독하여 그것의 사이즈를 결정한다. 전송 헤더 특징(314)은, 그 사이즈의 결정에 부분적으로 기초하여, PDU의 싱글턴 세그먼트 내의 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더 내의 비트들 28-31을 선택적으로 어서트하여 캡슐화된 PDU가 엔드패드를 포함하는지를 지시하여 바이트-정확한 길이(byte-accurate length)를 갖는 싱글턴의 전달을 가능케 한다.
도 9는 본 발명의 일 양태에 따른, 스위치 패브릭을 통하여 스위치 패브릭 상의 노드의 메모리 기반 서비스 인터페이스에 PDU의 전송을 용이하게 하는 예시적인 방법의 흐름도이다. 이 프로세스는 블록 900에서 시작하고, 거기서 예시적 실시예에 따르면, 특정 통신 프로토콜(예컨대, 이더넷, ATM, SONET 등)과 관련된 PDU가 디바이스(170)로부터 통신 링크(152)를 통하여 그 PDU에 대한 최종 행선지를 디바이스(160)로 하여 IO 엔드 포인트(130)에서 수신된다.
일단 PDU가 IO 엔드 포인트(130)에 의해 수신되면, 프로세스는 블록 910으로 이동한다. 블록 910에서, IO 엔드 포인트(130)는 그 PDU가 AS 패브릭 캐리어 프로토콜(200)의 포맷으로 된 AS 패브릭 캐리어 프로토콜을 이용하여 AS 패브릭(110)을 통하여 전송될 수 있는 허용 가능한 사이즈를 초과하는지를 결정한다. 만일 PDU가 허용 가능한 사이즈를 초과하면, 프로세스는 블록 920으로 이동한다.
블록 920에서, IO 엔드 포인트는 PDU를 AS 패브릭 캐리어 프로토콜 내에 캡슐화될 수 있는 허용 가능한 사이즈 내에 있는 세그먼트들로 슬라이스한다. 그 후 프로세스는 블록 930으로 이동한다.
블록 930에서, 전송 엔진(310)은 전송 헤더 특징(314)의 인스턴스를 호출한다. 전송 헤더 특징(314)은 분할된 PDU 또는 싱글턴(분할되지 않은) PDU의 콘텐츠의 적어도 일부를 판독하고 다른 정보에 액세스할 수도 있고 일반 전송 서비스 헤더(400)의 포맷으로 된 일반 전송 서비스 헤더(220) 내에 포함된 필드들에서 선택적으로 어서트할 비트들을 결정한다. 그 후 전송 헤더 특징(314)은 이 결정에 기초하여 일반 전송 서비스 헤더 내의 비트들을 선택적으로 어서트한다. 그 후 프로세스는 블록 940으로 이동한다.
블록 940에서, 전송 엔진(310)은 전달 특징(316)의 인스턴스를 호출한다. 전달 특징(316)은 일반 전송 서비스 헤더 내의 비트 28-31 및 PDU 길이와 같은 다른 정보를 판독하고 캡슐화될 때 PDU가 프리패드 및/또는 엔드패드를 포함하도록 PDU가 포맷되어야 할지를 결정한다. 만일 PDU가 프리패드 및/또는 엔드패드를 포함하면, 프로세스는 블록 950으로 이동한다.
블록 950에서, 전달 특징(316)은 최초 또는 싱글턴 PDU 세그먼트의 제1 디워드 및/또는 싱글턴 또는 말단 PDU 세그먼트의 최종 디워드의 비트들을 선택적으로 어서트한다. 이 선택적 어서트는 그로부터 수신측 출구 노드가 최초, 싱글턴 또는 말단 PDU 세그먼트의 프리패드 및/또는 엔드패드 바이트-카운트 길이를 결정할 수 있게 하는 정보를 제공한다. 그 후 프로세스는 블록 960으로 이동한다.
블록 960에서, 분할된 또는 싱글턴 PDU는 그 후 AS 루트 헤더(210) 내에 포함된 정보에 따라서 AS 통신 링크들(114) 상의 AS 패브릭(110)을 통하여 전송되고, 그것은 IO 엔드 포인트(120)에 의해 이루어질 것이다. 그 후 프로세스는 블록 970으로 이동한다.
블록 970에서 IO 엔드 포인트(120)는 PDU를, 분할되었다면, 재조합하고, 그것의 메모리 기반 서비스 인터페이스에 전달하기 전에, 임의의 프리패드들 및/또는 엔드패드들을 스킵하거나 무시하고 모든 AS 특정 캡슐화 프로토콜들을 제거한다. PDU 통신 프로토콜 타입 및 패킷 길이와 같은 일부 정보는 보존되어 PDU와 함께 통신될 수 있다. 그 후 PDU는 IO 엔드 포인트(120)의 메모리 기반 서비스 인터페이스를 통하여 통신 링크(156)을 경유하여 디바이스(160)에 송신하기 위해 액세스 가능하다. 액세스 가능성(accessibility)은, 예를 들면, IO 엔드 포인트(120)에 응답하거나 그 안에 위치하는 수신 및/또는 송신 버퍼와 관련된 메모리 컨트롤러 인터페이스에의 액세스일 수 있다. 그 후 프로세스는 AS 패브릭(110) 상의 IO 엔드 포인트에서 수신된 다음 PDU에 대하여 다시 시작된다.
도 1의 전자 시스템(100)의 예시를 다시 참조한다. 도 1에서, 전자 시스템(100)은 미디어 서버, 저장 서버, 통신 서버, 통신 네트워크용 스위치 또는 라우터일 수 있지만, 본 발명은 이들 실시예에 제한되지는 않는다.
디바이스들(160, 170 및 180)은 통신 링크들(152, 154, 및 156)을 통하여 AS 패브릭(110)에 직접 또는 원격으로 접속될 수 있다. 직접 접속은 이더넷, SONET, ATM(asynchronous transfer mode) 등과 같은 통신 규격을 이용한 점대점 링크들을 경유할 수 있다. 원격 접속은 802.11 및/또는 802.16 등과 같은 무선 통신 규격을 이용한 무선 통신 링크들을 경유할 수 있다.
디바이스들(160, 170 및 180)은 또한 전자 시스템(100) 내에서 송신된 데이터의 발신지(source) 또는 목적지(destination)일 수 있다. 그와 관련하여, 디바이스들(160, 170 및 180)은 미디어 블레이드(blade), 스위치 블레이드, 또는 계산 블레이드 또는 저장 블레이드 중 하나 이상을 포함할 수 있다.
본 명세서에서 사용된 바와 같이, IO 엔드 포인트들(120, 130 및 140)은 AS 패브릭(110)에 대한 입력(입구) 또는 출력(출구) 노드로서 기능하는 전자 시스템(100)의 엘리먼트들을 나타낸다. 본 명세서에서 사용된 바와 같이, IO 엔드 포인트들(120, 130 및 140)은 데이터를 수신 및 송신하는 다수의 하드웨어 및/또는 소프트웨어 엘리먼트(들) 중 임의의 것을 나타내게 되어 있다. 이와 관련하여, 하나의 예시적 실시예에 따르면, IO 엔드 포인트들(120, 130 및 140)은 브리지, 마이크로프로세서, 네트워크 프로세서, 소프트웨어 애플리케이션, 임베디드 로직(embedded logic) 등의 하나 또는 이상의 것을 포함할 수 있다.
위에서 언급한 바와 같이, 전송 서비스 관리자(300)는 IO 엔드 포인트들(120, 130 및 140) 내에 포함될 수 있다. 대안적으로, AS 통신 링크들(114)을 통하여 IO 엔드 포인트들(120, 130 및 140)에 통신 연결될 것이다.
하나의 예시적 실시예에 따르면, 전송 서비스 관리자(300)가 출구 IO 엔드 포인트 상의 메모리 기반 서비스 인터페이스에 PDU를 전달하기 위해 AS 패브릭(110)을 통하여 PDU의 캡슐화 및 전송을 용이하게 하기 위한 전송 서비스 헤더를 생성하는 것은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수 있다. 이와 관련하여, 전송 서비스 관리자(300)는 적어도 본 명세서에서 설명된 기능들을 수행하는 ASIC, 특수 기능 컨트롤러 또는 프로세서, FPGA, 그 밖의 하드웨어 디바이스 및 펌웨어 또는 소프트웨어 중 하나 또는 그 이상의 것으로 구현될 수 있다.
앞의 설명들에서는, 설명을 목적으로, 본 발명에 대한 철저한 이해를 제공하기 위해 다수의 특정 상세들이 제시되었다. 그러나, 숙련된 당업자라면, 본 발명이 이들 특정 상세들 없이도 실시될 수 있다는 것을 알 수 있을 것이다. 그 밖에, 본 발명을 모호하게 하는 것을 피하기 위해 구조들 및 디바이스들이 블록도로 도시되었다.
본 명세서에서 "일 실시예" 또는 "실시예"를 언급하면, 그 실시예와 관련하여 설명된 특별한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서의 도처에서 나타나는 "일 실시예에서"라는 구문의 출현은 반드시 모두 동일 실시예를 언급하는 것은 아니다. 마찬가지로, 본 명세서의 도처에서 나타나는 "다른 실시예에서" 또는 "대안 실시예에서"라는 구문의 출현은 반드시 동일 실시예를 언급하는 것은 아니다.
몇몇 실시예에 의하여 본 발명이 설명되었지만, 숙련된 당업자라면 본 발명이 설명된 실시예들에 제한되지 않고, 첨부된 청구항들의 사상 및 범위 내에서 수정 및 변경되어 실시될 수 있다는 것을 알 것이다. 따라서 이 설명은 첨부된 청구항들의 범위를 제한하는 것이 아니라 예시로서 간주되어야 할 것이다.

Claims (37)

  1. 제1 통신 링크 상의 노드에서 PDU(protocol data unit)을 수신하는 단계; 및
    제2 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스(memory-based service interface)에 상기 PDU를 전달하기 위해 헤더를 생성하는 단계
    를 포함하고,
    상기 헤더를 생성하는 단계는,
    상기 수신된 PDU와 관련된 통신 프로토콜을 결정하기 위해 상기 수신된 PDU의 적어도 일부를 판독하는 단계 및 그 결정에 기초하여 상기 헤더의 적어도 일부를 생성하는 단계를 포함하고, 상기 헤더의 적어도 일부는 프리패드 바이트(PrePad byte)가 상기 PDU의 하나 이상의 디워드(dword)들에 삽입될지, 그리고 상기 PDU가 바이트 반전 방식(byte-reverse manner)으로 상기 메모리 기반 서비스 인터페이스에 전달될지의 여부를 표시(indicate)하는 방법.
  2. 제1항에 있어서,
    각각의 세그먼트가 통신 유닛에 맞도록, 상기 PDU를 분할하는 단계;
    상기 헤더를 포함하도록 상기 PDU의 각각의 세그먼트를 캡슐화하는 단계; 및
    상기 헤더 내에 세그먼트 유형을 표시하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 PDU는 상기 노드에 통신가능하게 연결된 제1 디바이스에 의해 송신된 데이터를 포함하고, 상기 데이터는 상기 다른 노드에 통신가능하게 연결된 제2 디바이스에 의해 수신되는 방법.
  4. 제3항에 있어서, 상기 PDU는 상기 제1 디바이스에 의해 송신되는 것과 동일한 통신 포맷으로 상기 제2 디바이스에 의해 수신되는 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서, 상기 헤더를 생성하는 단계는 상기 수신된 PDU와 함께 포함된 메타데이터에 기초하여 상기 헤더의 적어도 일부를 생성하는 단계를 더 포함하고, 상기 메타데이터는 상기 제1 통신 링크와 관련된 인터페이스를 표시하는 방법.
  9. 제1항에 있어서, 상기 헤더를 생성하는 단계는 엔드패드(EndPad) 바이트가 상기 다른 노드의 상기 메모리 기반 서비스 인터페이스에 전달될 때 상기 PDU에 의해 채워지지 않을 바이트의 수에 기초하여 상기 PDU의 최종 디워드에 삽입될지 여부를 상기 헤더의 적어도 일부에 표시하는 방법.
  10. 제1항에 있어서, 상기 제2 통신 링크는 AS 코어 규격(Advanced Switching Core Specification)에 따라서 동작하는 스위치 패브릭(switch fabric)을 포함하는 방법.
  11. 제1항에 있어서, 상기 메모리 기반 서비스 인터페이스는 상기 다른 노드에 응답하는 송수신 버퍼용 메모리 기반 서비스 인터페이스를 포함하는 방법.
  12. 제11항에 있어서, 상기 송수신 버퍼는 FIFO(first-in-first-out) 버퍼를 포함하는 방법.
  13. 제1항에 있어서, 상기 메모리 기반 서비스 인터페이스는 상기 노드 및 상기 다른 노드에 응답하는 공유 메모리 내의 데이터 구조들을 포함하는 방법.
  14. 통신 링크 상의 노드; 및
    상기 노드에 응답하여 상기 노드에 의해 수신된 PDU에 대한 헤더를 생성하는 전송 서비스 관리자(transport services manager) - 상기 헤더는 상기 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스에 상기 PDU를 전달함 -
    를 포함하고,
    상기 헤더를 생성하는 것은,
    상기 전송 서비스 관리자가 상기 수신된 PDU와 관련된 통신 프로토콜을 결정하기 위해 상기 수신된 PDU의 적어도 일부를 판독하고;
    상기 전송 서비스 관리자가 그 결정에 기초하여 상기 헤더의 적어도 일부를 생성하는 것을 포함하며, 상기 헤더의 적어도 일부는 프리패드 바이트가 상기 PDU의 하나 이상의 디워드들에 삽입될지, 그리고 상기 PDU가 바이트 반전 방식으로 상기 메모리 기반 서비스 인터페이스에 전달될지의 여부를 표시하는 장치.
  15. 제14항에 있어서, 상기 통신 링크는 AS 코어 규격에 따라서 동작하는 스위치 패브릭(switch fabric)인 장치.
  16. 제14항에 있어서,
    상기 노드에 연결되어 통신 프로토콜 식별 정보를 저장하는 메모리를 더 포함하고, 상기 메모리는 상기 수신된 PDU와 어느 통신 프로토콜이 관련되는지에 대하여 결정하고 그 결정에 기초하여 상기 헤더의 적어도 일부를 생성하기 위해 상기 전송 서비스 관리자에 의해 액세스되는 장치.
  17. 제14항에 있어서,
    실행 가능한 콘텐츠를 저장하는 메모리; 및
    상기 메모리와 통신가능하게 연결되며, 상기 실행 가능한 콘텐츠를 실행하여 상기 전송 서비스 관리자의 인스턴스를 구현하는 제어 로직
    을 더 포함하는 장치.
  18. 제17항에 있어서, 상기 제어 로직은 네트워크 프로세서로 구현된 제어 로직을 포함하는 장치.
  19. 통신 링크;
    휘발성 메모리를 포함하는 노드; 및
    상기 노드에 응답하여 상기 노드에 의해 수신된 PDU에 대한 헤더를 생성하는 전송 서비스 관리자 - 상기 헤더는 상기 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스에 상기 PDU를 전달함 -
    를 포함하고,
    상기 헤더를 생성하는 것은,
    상기 전송 서비스 관리자가 상기 수신된 PDU와 관련된 통신 프로토콜을 결정하기 위해 상기 수신된 PDU의 적어도 일부를 판독하고,
    상기 전송 서비스 관리자가 그 결정에 기초하여 상기 헤더의 적어도 일부를 생성하는 것을 포함하며, 상기 헤더의 적어도 일부는 프리패드 바이트가 상기 PDU의 하나 이상의 디워드들에 삽입될지, 그리고 상기 PDU가 바이트 반전 방식으로 상기 메모리 기반 서비스 인터페이스에 전달될지의 여부를 표시하는 시스템.
  20. 제19항에 있어서, 상기 통신 링크는 AS 코어 규격에 따라서 동작하는 스위치 패브릭인 시스템.
  21. 제19항에 있어서, 상기 휘발성 메모리는 상기 수신된 PDU와 어느 통신 프로토콜이 관련되는지를 결정하기 위한 통신 프로토콜 정보를 포함하는 시스템.
  22. 제21항에 있어서, 상기 휘발성 메모리는 상기 수신된 PDU와 어느 통신 프로토콜이 관련되는지를 결정하기 위해 상기 전송 서비스 관리자에 의해 액세스되고, 그 결정에 기초하여 상기 전송 서비스 관리자는 상기 헤더의 적어도 일부를 생성하는 시스템.
  23. 통신 링크 상의 노드에 의해 실행될 때, 상기 노드로 하여금,
    PDU를 수신하고,
    헤더를 생성하게 하는 - 상기 헤더는 상기 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스에 상기 PDU를 전달함 - 콘텐츠를 포함하며,
    상기 헤더를 생성하는 것은,
    상기 노드가 상기 수신된 PDU와 관련된 상기 통신 프로토콜을 결정하기 위해 상기 수신된 PDU의 적어도 일부를 판독하고,
    상기 노드가 그 결정에 기초하여 상기 헤더의 적어도 일부를 생성하는 것을 포함하며, 상기 헤더의 적어도 일부는 프리패드 바이트가 상기 PDU의 하나 이상의 디워드들에 삽입될지, 그리고 상기 PDU가 바이트 반전 방식으로 상기 메모리 기반 서비스 인터페이스에 전달될지의 여부를 표시하는 기억 매체.
  24. 삭제
  25. 제23항에 있어서,
    각각의 세그먼트가 상기 통신 링크의 통신 유닛에 맞도록, 상기 노드가 상기 PDU를 분할하는 것;
    상기 헤더를 포함하도록 상기 노드가 상기 PDU의 각각의 세그먼트를 캡슐화(encapsulate)하는 것; 및
    상기 노드가 상기 헤더 내에 상기 세그먼트 유형의 표시를 삽입하는 것
    을 더 포함하는 기억 매체.
  26. 삭제
  27. 삭제
  28. 제1 통신 링크 상의 노드에서 주어진 통신 프로토콜과 관련된 PDU를 수신하는 단계;
    제2 통신 링크 상의 다른 노드의 메모리 기반 서비스 인터페이스에 상기 PDU를 전달하기 위해 헤더를 생성하는 단계;
    상기 PDU의 적어도 일부를 수정하는(modifying) 단계; 및
    상기 헤더의 상기 수정을 표시하는 단계
    를 포함하고,
    상기 수정하는 단계는, 상기 노드에서 수신될 때 어느 주어진 통신 프로토콜이 상기 PDU와 관련되는지에 기초하여 상기 PDU의 하나 이상의 디워드들에 하나 이상의 프리패드 바이트들을 삽입하는 단계를 포함하는 방법.
  29. 삭제
  30. 제28항에 있어서, 상기 주어진 통신 프로토콜은 이더넷(Ethernet)인 방법.
  31. 제28항에 있어서, 상기 PDU의 적어도 일부를 수정하는 단계는, 다른 노드의 상기 메모리 기반 서비스 인터페이스에 전달될 때 상기 PDU에 의해 채워지지 않을 바이트의 수에 기초하여 상기 PDU의 최종 디워드에 하나 이상의 엔드패드 바이트들을 삽입하는 단계를 포함하는 방법.
  32. 제28항에 있어서, 상기 헤더의 적어도 일부는 상기 PDU가 바이트 반전 방식으로 다른 노드의 상기 메모리 기반 서비스 인터페이스에 전달될지의 여부를 표시하는 방법.
  33. 제28항에 있어서,
    각각의 세그먼트가 통신 유닛에 맞도록, 상기 PDU를 분할하는 단계;
    상기 헤더를 포함하도록 상기 PDU의 각각의 세그먼트를 캡슐화하는 단계; 및
    상기 헤더 내에 세그먼트 유형을 표시하는 단계
    를 더 포함하는 방법.
  34. 제33항에 있어서, 상기 제2 통신 링크는 AS 코어 규격에 따라서 동작하는 스위치 패브릭을 포함하는 방법.
  35. 제34항에 있어서, 상기 헤더는 상기 캡슐화된 PDU에 대한 분할 및 재조합 전송 서비스에 대한 표시를 포함하는 헤더를 포함하는 방법.
  36. 제28항에 있어서, 상기 메모리 기반 서비스 인터페이스는 다른 노드에 응답하는 송수신 버퍼용 메모리 기반 서비스 인터페이스를 포함하는 방법.
  37. 제28항에 있어서, 상기 메모리 기반 서비스 인터페이스는 상기 노드 및 다른 노드에 응답하는 공유 메모리 내의 데이터 구조들을 포함하는 방법.
KR1020077005131A 2004-09-03 2005-08-12 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치 KR100918327B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/934,271 US7573879B2 (en) 2004-09-03 2004-09-03 Method and apparatus for generating a header in a communication network
US10/934,271 2004-09-03

Publications (2)

Publication Number Publication Date
KR20070040410A KR20070040410A (ko) 2007-04-16
KR100918327B1 true KR100918327B1 (ko) 2009-09-22

Family

ID=35432724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077005131A KR100918327B1 (ko) 2004-09-03 2005-08-12 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US7573879B2 (ko)
EP (1) EP1790146B1 (ko)
JP (1) JP2008512895A (ko)
KR (1) KR100918327B1 (ko)
CN (1) CN100512213C (ko)
AT (1) ATE418226T1 (ko)
DE (1) DE602005011830D1 (ko)
WO (1) WO2006028661A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756273B2 (en) * 2003-09-26 2010-07-13 Broadcom Corporation System and method for bit-reversing and scrambling payload bytes in an asynchronous transfer mode cell
US7580412B2 (en) * 2003-09-26 2009-08-25 Broadcom Corporation System and method for generating header error control byte for Asynchronous Transfer Mode cell
US7903810B2 (en) * 2003-09-26 2011-03-08 Broadcom Corporation Single instruction for data scrambling
US7751557B2 (en) * 2003-09-26 2010-07-06 Broadcom Corporation Data de-scrambler
KR101187076B1 (ko) 2006-01-05 2012-09-27 엘지전자 주식회사 이동 통신 시스템에 있어서 신호 전송 방법
BRPI0706841A8 (pt) * 2006-01-05 2018-04-17 Lg Electronics Inc transmissão de dados em um sistema e comunicação móvel
WO2007148881A2 (en) 2006-06-21 2007-12-27 Lg Electronics Inc. Method of supporting data retransmission in a mobile communication system
JP2008252263A (ja) * 2007-03-29 2008-10-16 Nippon Telegraph & Telephone West Corp Ethernetフレームの送受信方式とその送受信変換装置
KR101018731B1 (ko) * 2007-11-29 2011-03-04 이노베이티브 소닉 리미티드 무선 통신 시스템에서 최고 수신 상태 변수를 설정하기 위한 방법 및 장치
EP2667657B1 (en) * 2008-10-31 2015-09-30 Panasonic Intellectual Property Corporation of America Base station apparatus, terminal apparatus, and communication method
US8743885B2 (en) 2011-05-03 2014-06-03 Cisco Technology, Inc. Mobile service routing in a network environment
US8798052B2 (en) * 2012-08-15 2014-08-05 International Business Machines Corporation Relaying frames in a large layer 2 network fabric
US9794379B2 (en) 2013-04-26 2017-10-17 Cisco Technology, Inc. High-efficiency service chaining with agentless service nodes
US9112790B2 (en) * 2013-06-25 2015-08-18 Google Inc. Fabric network
US9379931B2 (en) 2014-05-16 2016-06-28 Cisco Technology, Inc. System and method for transporting information to services in a network environment
US9479443B2 (en) 2014-05-16 2016-10-25 Cisco Technology, Inc. System and method for transporting information to services in a network environment
US9398486B2 (en) * 2014-06-10 2016-07-19 Cisco Technology, Inc. Conveying subscriber information to service chain services using tunnel protocol header encapsulation for mobile network applications in a network environment
US9413655B2 (en) 2014-06-13 2016-08-09 Cisco Technology, Inc. Providing virtual private service chains in a network environment
US10417025B2 (en) 2014-11-18 2019-09-17 Cisco Technology, Inc. System and method to chain distributed applications in a network environment
USRE48131E1 (en) 2014-12-11 2020-07-28 Cisco Technology, Inc. Metadata augmentation in a service function chain
US9660909B2 (en) 2014-12-11 2017-05-23 Cisco Technology, Inc. Network service header metadata for load balancing
US9762402B2 (en) 2015-05-20 2017-09-12 Cisco Technology, Inc. System and method to facilitate the assignment of service functions for service chains in a network environment
US11044203B2 (en) 2016-01-19 2021-06-22 Cisco Technology, Inc. System and method for hosting mobile packet core and value-added services using a software defined network and service chains
US10187306B2 (en) 2016-03-24 2019-01-22 Cisco Technology, Inc. System and method for improved service chaining
US10931793B2 (en) 2016-04-26 2021-02-23 Cisco Technology, Inc. System and method for automated rendering of service chaining
US10419550B2 (en) 2016-07-06 2019-09-17 Cisco Technology, Inc. Automatic service function validation in a virtual network environment
US10218616B2 (en) 2016-07-21 2019-02-26 Cisco Technology, Inc. Link selection for communication with a service function cluster
US10320664B2 (en) 2016-07-21 2019-06-11 Cisco Technology, Inc. Cloud overlay for operations administration and management
US10225270B2 (en) 2016-08-02 2019-03-05 Cisco Technology, Inc. Steering of cloned traffic in a service function chain
US10218593B2 (en) 2016-08-23 2019-02-26 Cisco Technology, Inc. Identifying sources of packet drops in a service function chain environment
US10218614B2 (en) * 2016-08-25 2019-02-26 Honeywell International Inc. Ethernet to spacewire bridge
US10361969B2 (en) 2016-08-30 2019-07-23 Cisco Technology, Inc. System and method for managing chained services in a network environment
US10225187B2 (en) 2017-03-22 2019-03-05 Cisco Technology, Inc. System and method for providing a bit indexed service chain
US10257033B2 (en) 2017-04-12 2019-04-09 Cisco Technology, Inc. Virtualized network functions and service chaining in serverless computing infrastructure
US10884807B2 (en) 2017-04-12 2021-01-05 Cisco Technology, Inc. Serverless computing and task scheduling
US10178646B2 (en) 2017-04-12 2019-01-08 Cisco Technology, Inc. System and method to facilitate slice management in a network environment
US10333855B2 (en) 2017-04-19 2019-06-25 Cisco Technology, Inc. Latency reduction in service function paths
US10554689B2 (en) 2017-04-28 2020-02-04 Cisco Technology, Inc. Secure communication session resumption in a service function chain
US10735275B2 (en) 2017-06-16 2020-08-04 Cisco Technology, Inc. Releasing and retaining resources for use in a NFV environment
US10798187B2 (en) 2017-06-19 2020-10-06 Cisco Technology, Inc. Secure service chaining
US10397271B2 (en) 2017-07-11 2019-08-27 Cisco Technology, Inc. Distributed denial of service mitigation for web conferencing
US10673698B2 (en) 2017-07-21 2020-06-02 Cisco Technology, Inc. Service function chain optimization using live testing
US11063856B2 (en) 2017-08-24 2021-07-13 Cisco Technology, Inc. Virtual network function monitoring in a network function virtualization deployment
US10791065B2 (en) 2017-09-19 2020-09-29 Cisco Technology, Inc. Systems and methods for providing container attributes as part of OAM techniques
US11018981B2 (en) 2017-10-13 2021-05-25 Cisco Technology, Inc. System and method for replication container performance and policy validation using real time network traffic
US10541893B2 (en) 2017-10-25 2020-01-21 Cisco Technology, Inc. System and method for obtaining micro-service telemetry data
US10666612B2 (en) 2018-06-06 2020-05-26 Cisco Technology, Inc. Service chains for inter-cloud traffic

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1093266A2 (en) 1999-09-23 2001-04-18 Nortel Networks Limited Telecommunications switches and methods for their operation
KR20010052354A (ko) * 1998-05-14 2001-06-25 클라스 노린, 쿨트 헬스트룀 통신 링크상에서 가변 송신 속도로 데이터를 송신하기위한 방법 및 장치
WO2002015469A2 (en) 2000-08-14 2002-02-21 Advanced Micro Devices, Inc. Apparatus and method for packet classification
US20040109473A1 (en) 2002-12-05 2004-06-10 Gerald Lebizay Interconnecting network processors with heterogeneous fabrics

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5353282A (en) * 1993-03-18 1994-10-04 Northern Telecom Limited Local area network embedded in the communication switch core
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5740385A (en) * 1994-12-19 1998-04-14 Intel Corporation Low load host/PCI bus bridge
US5625779A (en) * 1994-12-30 1997-04-29 Intel Corporation Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
US6212589B1 (en) * 1995-01-27 2001-04-03 Intel Corporation System resource arbitration mechanism for a host bridge
US5745837A (en) * 1995-08-25 1998-04-28 Terayon Corporation Apparatus and method for digital data transmission over a CATV system using an ATM transport protocol and SCDMA
US5742603A (en) * 1995-09-14 1998-04-21 Level One Communications, Inc. Method and apparatus for integrating repeater management, media access control, and bridging functions
US6317803B1 (en) * 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5953338A (en) 1996-12-13 1999-09-14 Northern Telecom Limited Dynamic control processes and systems for asynchronous transfer mode networks
US5955338A (en) * 1997-06-27 1999-09-21 Incyte Pharmaceuticals, Inc. Phosphatidylinositol 4,5-bisphosphate 5-phosphatase
DE19835668A1 (de) * 1997-08-07 1999-02-25 Matsushita Electric Ind Co Ltd Übertragungsmedienverbindungsvorrichtung, steuernde Vorrichtung, gesteuerte Vorrichtung und Speichermedium
US6442632B1 (en) * 1997-09-05 2002-08-27 Intel Corporation System resource arbitration mechanism for a host bridge
US6285659B1 (en) * 1997-09-10 2001-09-04 Level One Communications, Inc. Automatic protocol selection mechanism
US6266345B1 (en) * 1998-04-24 2001-07-24 Xuan Zhon Ni Method and apparatus for dynamic allocation of bandwidth to data with varying bit rates
US6081848A (en) * 1998-08-14 2000-06-27 Intel Corporation Striping packets of data across multiple virtual channels
US6393506B1 (en) * 1999-06-15 2002-05-21 National Semiconductor Corporation Virtual channel bus and system architecture
JP3613102B2 (ja) 1999-12-14 2005-01-26 日本電気株式会社 フレーム構成方法、フレーム構成装置およびフレーム構成転送システム
US7110398B2 (en) * 2001-01-12 2006-09-19 Broadcom Corporation Packet tag for support of remote network function/packet classification
JP2003046567A (ja) * 2001-07-31 2003-02-14 Toshiba Corp マルチトンネル・ゲートウェイ装置、仮想マルチドロップ接続通信システム及び同システムにおける通信方法
US6691192B2 (en) * 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
US20030043848A1 (en) * 2001-08-30 2003-03-06 Sonksen Bradley Stephen Method and apparatus for data item processing control
JP3941925B2 (ja) * 2002-02-28 2007-07-11 株式会社エヌ・ティ・ティ・ドコモ ネットワーク擬似装置
WO2003075537A1 (fr) * 2002-03-05 2003-09-12 Fujitsu Limited Appareil de communication
JP2003338843A (ja) * 2002-05-21 2003-11-28 Genetec Corp ルーティング装置及びルーティング方法
AU2003250536A1 (en) * 2002-08-06 2004-02-23 Matsushita Electric Industrial Co., Ltd. Packet routing device and packet routing method
US7302500B2 (en) * 2003-04-30 2007-11-27 Dynamic Network Factory, Inc. Apparatus and method for packet based storage virtualization
US7386010B2 (en) * 2003-06-13 2008-06-10 Corrigent Systems Ltd Multiprotocol media conversion
US7096310B2 (en) * 2004-03-16 2006-08-22 Hewlett-Packard Development, L.P. Switch configurable for a plurality of communication protocols

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010052354A (ko) * 1998-05-14 2001-06-25 클라스 노린, 쿨트 헬스트룀 통신 링크상에서 가변 송신 속도로 데이터를 송신하기위한 방법 및 장치
EP1093266A2 (en) 1999-09-23 2001-04-18 Nortel Networks Limited Telecommunications switches and methods for their operation
WO2002015469A2 (en) 2000-08-14 2002-02-21 Advanced Micro Devices, Inc. Apparatus and method for packet classification
US20040109473A1 (en) 2002-12-05 2004-06-10 Gerald Lebizay Interconnecting network processors with heterogeneous fabrics

Also Published As

Publication number Publication date
US7573879B2 (en) 2009-08-11
KR20070040410A (ko) 2007-04-16
WO2006028661A1 (en) 2006-03-16
CN1744579A (zh) 2006-03-08
EP1790146A1 (en) 2007-05-30
CN100512213C (zh) 2009-07-08
DE602005011830D1 (de) 2009-01-29
JP2008512895A (ja) 2008-04-24
ATE418226T1 (de) 2009-01-15
US20060050739A1 (en) 2006-03-09
EP1790146B1 (en) 2008-12-17

Similar Documents

Publication Publication Date Title
KR100918327B1 (ko) 통신 네트워크에서 헤더를 생성하기 위한 방법 및 장치
US6172990B1 (en) Media access control micro-RISC stream processor and method for implementing the same
US7991007B2 (en) Method and apparatus for hardware packets reassembly in constrained networks
US9166917B2 (en) Link layer preemption
US8831024B2 (en) Dynamic header creation and flow control for a programmable communications processor, and applications thereof
CN110022264B (zh) 控制网络拥塞的方法、接入设备和计算机可读存储介质
US20010053148A1 (en) Network adapter with embedded deep packet processing
US20030061269A1 (en) Data flow engine
US8862768B2 (en) Method and system for packetizing data for servicing traffic end-to-end
US20090185582A1 (en) Unified data packet for encapsulating data packets having diverse formats
US12034653B2 (en) Packet processing method and related devices
CN112787902B (zh) 报文封装方法及装置、报文解封装方法及装置
US8990422B1 (en) TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data
EP0960517A1 (en) Media access control micro-risc stream processor and method for implementing the same
US10757032B2 (en) Methods, apparatuses and computer-readable storage mediums for communication via user services platform
CN104904170B (zh) 有效地对用于低带宽传送的视频流中的要素进行优先化的方法和装置
EP2201740B1 (en) High speed packet processing in a wireless network
WO2002045309A1 (en) Method for compressing packet headers within a trunking protocol for aggregating multiple information channels across a network
US20140016486A1 (en) Fabric Cell Packing in a Switch Device
CN114615348B (zh) 基于udp gso的数据传输方法、装置、计算机设备和存储介质
EP3866401A1 (en) Move stream content from point to point over the existing ip gateway
JP6970124B2 (ja) Mmtpパケットを送受信する方法及びその装置
WO2023168133A2 (en) Packet wash of rtp aggregation packets in a video stream
KR20230006486A (ko) 가상 네트워크 디바이스
US20090175277A1 (en) System and method for eliminating malformed packets in a multimedia-content digital transport stream

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20120904

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee