KR100747181B1 - 네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기위한 장치 및 방법 - Google Patents

네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기위한 장치 및 방법 Download PDF

Info

Publication number
KR100747181B1
KR100747181B1 KR1020057012688A KR20057012688A KR100747181B1 KR 100747181 B1 KR100747181 B1 KR 100747181B1 KR 1020057012688 A KR1020057012688 A KR 1020057012688A KR 20057012688 A KR20057012688 A KR 20057012688A KR 100747181 B1 KR100747181 B1 KR 100747181B1
Authority
KR
South Korea
Prior art keywords
protocol
network
forwarding element
configuration information
data plane
Prior art date
Application number
KR1020057012688A
Other languages
English (en)
Other versions
KR20050095841A (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 KR20050095841A publication Critical patent/KR20050095841A/ko
Application granted granted Critical
Publication of KR100747181B1 publication Critical patent/KR100747181B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
  • Small-Scale Networks (AREA)

Abstract

네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기 위한 방법 및 장치가 기재된다. 일 실시예에서, 본 방법은 네트워크 요소 제어 플레인 내에서 네트워크 프로토콜 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보를 수신하는 단계를 포함한다. 프로토콜 구성 정보가 수신되면, 프로토콜 구성 정보는 프로토콜 어플리케이션에 의해 구현되는 네트워크 프로토콜에 대응하는 제어 인터페이스를 이용하여 처리된다. 프로토콜 구성 정보가 처리되면, 제어 인터페이스는 프로토콜 구성 정보에 따라 네트워크 요소의 하나 이상의 데이터 플레인의 전달 요소를 프로그램한다. 따라서, 다수의 네트워크 프로토콜에 유사한 제어 인터페이스를 제공함으로써, 다수의 벤더로부터의 구성 요소 간의 상호 동작성이 가능하게 된다.
네트워크 전달 요소, 데이터 플레인, 프로토콜 구성 정보, 제어 플레인, 관리 플레인, 제어 인터페이스

Description

네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기 위한 장치 및 방법{AN APPARATUS AND METHOD FOR CONFIGURING DATA PLANE BEHAVIOR ON NETWORK FORWARDING ELEMENTS}
본 발명의 하나 이상의 실시예는 일반적으로 네트워크 통신 및 프로토콜의 분야에 관한 것으로, 특히 네트워크 전달 요소에 대한 데이터 플레인 방식(plane behavior)을 구성하기 위한 방법 및 장치에 관한 것이다.
오늘날, 수많은 독립적 하드웨어 벤더(IHV)는 무수한 패킷 처리 작업을 실행하기 위해 네트워크화된 어플리케이션 특정 집적 회로(ASIC)를 제조한다. 불행히도, 이 ASIC에 대한 현재의 인터페이스는 대응하는 비트 레벨 방식과 문서를 갖는 보통 메모리 매핑된 레지스터이다. 그러나, 모든 IHV가 그들의 제품을 레지스터 레벨의 종류로 제한하지 않으며, 어떤 것은 하드웨어에 C 레벨이나 그 외 다른 소프트웨어 인터페이스를 제공하고 있다. 그러나, 이들 인터페이스는 편리하게 하위 레지스터와 유사하다고 하는 것일 뿐, IHV 마다 다르다.
또한, 하드웨어 ASIC에 대한 레지스터 레벨의 종류나 이들의 소프트웨어 인터페이스는 이들 여러 제품을 이용하기 매우 어렵게 만든다. 사실상, 이들 레지스터 레벨의 모델은 가파른 학습 곡선(steep learning curve)을 나타내며 주문자 상 표 부착 생산(OEM) 또는 제품에 ASIC 또는 네트워킹 실리콘을 이용하길 원하는 독립적인 소프트웨어 벤더(ISV)와 밀접하게 결합되어 있다. 이런 마이크로 레벨의 종류(즉, 레지스터 비트)에서는, 이들 여러 ASIC를 통해 재사용 가능한 코드를 기록하기가 어렵다. 또한, ASIC의 네트워킹 실리콘의 마이크로 레벨 기능을 해독하기가 어렵다.
최근 네트워킹 산업의 동향은 비교적 불변의 ASIC를, 더욱 프로그래머블하게 그렇지만 여전히 네트워크 프로세서와 같이 성능 위주의 네트워크 장치로 대체하고 있는 실정이다. 불행히도, 네트워크 프로세서는 일반적으로 초기 단계에 있으며 앱스트랙트 프로그래밍 모델을 갖지 않거나 프로세서 그 자체의 진보에 맞춰갈 만큼 충분히 표현적이며 가변적인 것을 갖지 않는다. 일반적으로, 스위치 및 라우터 등의 네트워크 요소는 세 개의 논리적 동작 구성 요소: 제어 플레인(control plane), 전달 플레인(forwarding plane) 및 관리 플레인(management plane)으로 분류될 수 있다.
일반적으로, 제어 플레인은 여러 다른 시그널링 및/또는 라우팅 프로토콜을 실행하며 모든 라우팅 정보를 전달 플레인에 제공한다. 전달 플레인은 이 정보에 기초하여 판정을 내리며 전달, 분류(classification), 필터링(filtering) 등과 같은 동작을 패킷에 대해 실행한다. 직교 관리 플레인은 제어 및 전달 플레인을 관리한다. 그러나, 상술한 플레인 내의 표준 어플리케이션 프로그래밍 인터페이스(API)의 도입으로 시스템 벤더 OEM 및 이들 네트워크 요소의 종단 사용자가 여러 벤더로부터 이용 가능한 구성 요소를 혼합하여 조화되게 하여 그들이 선택한 장치 를 이루는 것이 용이하게 된다.
본 발명의 여러 실시예들은 첨부한 도면에서 제한하고자 하는 것이 아니고, 예시로서 도시되고 있다.
도 1은 본 기술에 공지된 종래의 컴퓨터 네트워크를 설명하는 블럭도이다.
도 2는 도 1에 도시된 종래의 컴퓨터 네트워크를 설명하는 블럭도로서, 종래에 공지된 네트워크 내의 패킷을 라우트하는 데에 이용되는 여러 네트워크 요소를 설명한다.
도 3은 도 2에 도시된 종래의 네트워크 내에서 이용되는 종래의 네트워크 요소를 설명하는 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 네트워크 요소를 설명하는 블럭도이다.
도 5는 본 발명의 일 실시예에 따른 도 4에 도시된 네트워크 요소를 이용하는 컴퓨터 네트워크이다.
도 6은 본 발명의 일 실시예에 따른 네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기 위한 방법을 설명하는 플로우챠트이다.
도 7은 본 발명의 일 실시예에 따라 수신된 구성 정보에 의해 구현되는 네트워크 프로토콜에 대응하는 제어 인터페이스를 이용하여 수신된 구성 정보를 처리하기 위한 방법을 설명하는 플로우챠트이다.
도 8은 본 발명의 일 실시예에 따른 네트워크 프로토콜에 따른 하나 이상의 데이터 플레인 전달 요소를 프로그래밍하기 위한 방법을 설명하는 플로우챠트이다.
도 9는 본 발명의 일 실시예에 따른 IPv4(인터넷 프로토콜 버전 4) 라우팅 프로토콜에 따른 하나 이상의 데이터 플레인 전달 요소를 프로그래밍하기 위한 방법을 설명하는 플로우챠트이다.
도 10은 본 발명의 일 실시예에 따른 IPv6(인터넷 프로토콜 버전 6) 라우팅 프로토콜에 따른 하나 이상의 데이터 플레인 전달 요소를 프로그래밍하기 위한 방법을 설명하는 플로우챠트이다.
도 11은 본 발명의 일 실시예에 따른 MPLS(Multi-protocol label switching) 프로토콜에 따른 하나 이상의 데이터 플레인 전달 요소를 프로그래밍하기 위한 방법을 설명하는 플로우챠트이다.
도 12는 본 발명의 일 실시예에 따른 DiffServ(differentiated services) 프로토콜에 따른 하나 이상의 데이터 플레인 전달 요소를 프로그래밍하기 위한 방법을 설명하는 플로우챠트이다.
도 13은 본 발명의 일 실시예에 따른 라우팅 프로토콜을 구현하기 위한 제어 플레인 제어 인터페이스에 따라 프로그램된 전달 요소 내의 수신 패킷을 처리하기 위한 방법을 설명하는 플로우챠트이다.
네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기 위한 방법 및 장치가 설명되어 있다. 일 실시예에서, 이 방법은 네트워크 요소 제어 플레인 내에서, 네트워크 프로토콜 어플리케이션 프로그래밍 인터페이스(API)를 이용하는 네트워크 프로토콜 스택(프로토콜 어플리케이션)으로부터 추출된 프로토콜 구성 정보를 수신하는 것을 포함한다. 프로토콜 구성 정보가 일단 수신되면, 프로토콜 구성 정보는 제어 플레인의 대응 제어 인터페이스를 이용하여 처리된다.
프로토콜 구성 정보가 처리되면, 제어 인터페이스는 수신된 프로토콜 구성 정보에 따라 네트워크 요소의 하나 이상의 데이터 플레인 전달 요소를 프로그래밍한다. 따라서, 다수의 네트워크 프로토콜에 대해 유사한 제어 인터페이스를 제공함으로써, 다수의 벤더로부터의 구성 요소 간의 상호 동작성이 가능하게 된다. 그 결과, 벤더 독립성이 성취되며, 이는 빠른 유통 구조, 효율성의 개선, 비용의 저하, 및 장래 네트워크 요소의 진보의 결과를 가져온다.
이하에서는, 설명의 목적으로, 본 발명의 실시예의 완전한 이해를 제공하도록 여러 특정한 상세 설명이 제공된다. 그러나, 당업자에게는 이런 본 발명의 여러 실시예들은 이들 특정한 설명 없이도 실행될 수 있다는 것이 명백할 것이다. 부가하여, 다음의 설명은 본 발명의 실시예의 모든 가능한 구현을 배타적으로 제공하기 위해서 보다는, 가능한 실시예의 부세트 및 첨부한 도면을 제공하고자 하는 것이다. 다른 경우, 공지의 구조 및 장치는 본 발명의 여러 실시예의 설명을 모호하게 하지 않도록 하기 위해 블럭도의 형태로 도시되었다.
시스템 아키텍쳐
도 1은 인터넷을 통해 호스트 컴퓨터(140(140-1,..., 140-N))에 결합된 인터넷 호스트(102)를 포함하는 종래의 네트워크(100)를 도시하는 블럭도이다. 일반적으로, 인터넷 호스트(102)와 호스트 컴퓨터(140) 간의 정보의 라우팅은 데이터 패킷을 전달하기 위한 종래의 수단에 따라 실행된다. 다양한 패킷이 인터넷 내에서 인터넷 호스트(102)로부터 여러 호스트 컴퓨터(140)에 라우트된다. 이 모델이 종래의 패킷화 정보를 전송할 때 성공적이긴 하지만, 종래의 네트워크 내에서 발생하는 지연에 민감한 멀티미디어 어플리케이션 뿐만 아니라, 텔레컨퍼런싱을 포함하는 각종 어플리케이션이 나타나고 있다.
그 결과, 도 1에 도시된 바와 같은 네트워크를 이용하는 이런 멀티미디어 및 실시간 어플리케이션의 출현으로 인해 이용 가능한 네트워크로부터 서비스 품질(Quality of Service; QoS), 스위칭, 라우팅 등의 가변과 동시에 개선에 대한 요구가 증대되고 있다. 유사하게, 네트워크(100)를 통해 라우트될 수 있는 여러 정보(패킷)는 여러 특수화된 프로토콜 동작을 필요로 할 수 있다. 불행히도, 도 1에 도시된 네트워크는 네트워크 트래픽을 취급하기 위한 대역폭을 미리 할당하는 것이 아니고, 베스트 에포트(best effort)에 기초하여 현재 이용 가능한 대역폭을 이용하여 패킷을 단순히 라우트만 하는 종래의 베스트 에포트 서비스 모델을 이용한다. 그 결과, 인터넷 경로 상의 다양한 큐잉 지연과 폭주 상태는 일반적이 되고 있다.
네트워크(100)에 의해 구현되는 베스트 에포트 서비스 모델은 전송 제어 프로토콜(TCP) 인터넷 프로토콜(IP)(TCP/IP)에 기초한 것이다. 상세하게, 프로토콜 구현은 인터넷 프로토콜 버전(4)(IPv4)을 말한다. 일반적으로, IPv4는 오늘날 이용되는 가장 광범위하게 설비된 레벨의 인터넷 프로토콜 설비이다. 당업자에게는 잘 알려진 바와 같이, IP 주소는 인터넷 경로의 패킷으로 전송되는 정보의 각 송신자나 수신자를 식별하는 32비트의 수자이다. IP 주소는 일반적으로 두 부분: 인터넷 상의 특정 네트워크의 식별자; 및 네트워크 내의 특정 장치의 식별자를 갖는다.
이와 같이, 인터넷은 많은 개별의 네트워크의 상호 접속으로서, 네트워크가 그 자신의 인터넷 주소 및 이것이 통신하는 다른 네트워크의 주소를 알고 있는 경우, IPv4는 서로 통신하는 한 네트워크에 대한 규칙의 세트가 된다. 불행히도, IPv4에 의해 특정된 32비트 IP 주소는 초과될 정도로 매우 근접해 있다. 다시 말해, 인터넷의 급속한 성장으로 인해 새로운 아키텍쳐 없이는 IPv4에 의해 제공되는 어드레싱 방안을 이용하는 가능한 네트워크 주소의 수는 곧 초과될 가능성이 커지고 있다. 유사하게, 현재의 TCP/IP에 의해 제공된 베스트 에포트 서비스 모델은 장차 네트워킹 어플리케이션 뿐만 아니라 여러 현재의 어플리케이션에도 충분하지가 않다.
따라서, 인터넷 프로토콜의 차세대 버전을 구현하고 있는 중이다. 당업자에게는 잘 알려진 바와 같이, 이 차세대 인터넷 프로콜은 "인터넷 프로토콜 버전 6"(IPv6)을 말한다. IPv4에 비해 IPv6에서 가장 분명한 것은 IP 주소가 32비트에서 128비트로 확장된다는 것이다. 결과적으로, 이 확장은 장차 상당한 인터넷의 성장을 고려한 것으로 네트워크 주소의 부족의 임박함이 파악되고 있는 이 때 안도감을 준다. 더구나, IPv6는 세 유형의 어드레싱: 유니캐스트(하나의 호스트에서 다른 호스트로); 캐스트(한 호스트에서 다수의 호스트중 가장 근접한 것으로); 및 멀티캐스트(한 호스트에서 복수의 호스트로)에 대한 규칙을 개시한다.
부가하여, IPv6는 여러가지로 개선되었다. 예를 들어, IPv6는 다른 네트워크 트래픽 패킷에 비해 더 높은 QoS를 필요로 할 것 같은 패킷을 식별하는 기구를 가능하게 한다. 다시 말해, 종단 간(end-to-end) 경로에 속하는 패킷(또는 "흐름 (flow)")은 예를 들어, 실시간 도착을 필요로 하는 멀티미디어 프리젠테이션의 일부로 식별될 수 있다. 결과적으로, 이 식별 번호를 제공하여, 실시간 전달을 필요로 하거나 지연에 민감한 패킷에는 표준 네트워크 트래픽에 비해 더 높은 QoS가 부여될 수 있다.
예를 들어, 도 2는 예를 들어, 실시간 어플리케이션 서버(소스 컴퓨터: 200)와 목적지 컴퓨터(220) 사이의 여러 네트워크 요소를 설명하기 위한 것이다. 네트워크가 예를 들어, IPv4 라우팅 프로토콜에 따라 구성된 사실로 인해, 수신된 네트워크 트래픽은 베스트 에포트 서비스 모델에 기초하여 전달되게 된다. 결과적으로, 실시간 어플리케이션 서버(200)와 목적지 컴퓨터(220) 간의 패킷화 데이터의 전송은 광범위한 인터넷의 이용 증가의 결과로 인터넷 경로의 폭주 상태가 매우 일반적이 되버렸기 때문에 다양한 라우팅 지연을 초래하게 된다. 예를 들어, 피크 시간 동안, 실시간 패킷화 데이터의 전송은 이런 상당한 지연을 초래하여 목적지 소스 컴퓨터에서 어플리케이션을 이용 불가능이 되게 한다.
트래픽 흐름에 대한 서비스 차별화(QoS 가변)를 제공하기 위한 현재의 네트워크 프로토콜(모델)이 차별화 서비스(DiffServ) 모델이다. DiffServ 모델은 통합 서비스(IntServ) 모델에 의해 제공되는 지연 바운드 및 확보된 대역폭과 같은 보장과는 달리 흐름의 집합들에 대해 품질의 차별화를 제공한다. 예를 들어, DiffServ 모델에 의해 제공되는 품질의 차별화는 클래스 B보다 클래스 A에 더 우선 순위를 제공하는 것으로 구성될 수 있다. 또한, DiffServ 모델은 이에만 제한되는 것은 아니지만, 분류기(classifier), 미터(meter), 드롭퍼(dropper), 큐(queue) 및 스케 줄러(scheduler)를 포함하는 데이터 경로 요소(DPE)를 제공한다.
예를 들어, 오디오 및 음성 어플리케이션과 같이 네트워크 내에서 큐잉 지연과 폭주 상태에 매우 민감한 어플리케이션을 구현하기 위해 네트워크 트래픽을 예를 들어 가속화하는 데에 이용될 수 있는 다른 네트워크 프로토콜로는 멀티 프로토콜 레이블 스위칭 프로토콜(MPLS)이 있다. MPLS 프로토콜은 네트워크 트래픽 흐름을 가속화하기 위한 표준 승인 기술임과 동시에, 이의 간략화된 관리를 말한다. MPLS는 각 패킷에 붙혀진 레이블에 의해 식별된 임의 시퀀스의 패킷에 대한 특정 경로를 셋업하는 것을 포함한다. 그 결과, 라우터가 패킷을 전달하기 위해 다음 노드의 주소를 룩업하는 데에 보통 필요한 시간이 절약된다.
부가하여, MPLS는 본 기술에서 알려진 바와 같이, 인터넷 프로토콜, 비동기성 전송 모드(ATM) 프로토콜 및 프레임 릴레이 네트워크 프로토콜로 동작하기 때문에 멀티 프로토콜로 언급된다. 더욱, MPLS는 대부분의 패킷이 계층 3(라우팅) 레벨 보다는, 계층 2(스위칭) 레벨에서 전달되게 한다. 더욱, MPLS는 트래픽을 더 빠르게 이동시키는 것에 부가하여, 서비스 품질(QoS) 및 트래픽 엔지니어링에 대해 간략화된 네트워크 관리를 제공한다. 따라서, MPLS 프로토콜을 구현하는 네트워크는 여러 혼합된 네트워크 트래픽에 충분한 서비스 품질을 적절히 제공할 수 있게 된다. 여기 기재된 바와 같이, 상술된 여러 라우팅, 스위칭 및 QoS 프로토콜을 집합적으로 "네트워크 프로토콜"로 언급한다.
이하 도 3을 참조하면, 도 3은 도 2에 나타낸 바와 같이, 네트워크(300) 내에 이용되는 종래의 네트워크 요소(302)이다. 도시된 바와 같이, 네트워크 요소는 제어 플레인(310)에 의해 나타낸 바와 같이, 목적지로 인입 패킷을 라우팅하기 위해 진입 필터 블럭(304), 전달 판정 블럭(390) 및 배출 필터 블럭(306)을 이용하는 전달 플레인(380)을 포함한다. 불행히도, 네트워크 요소(302)는 하나의 장치 내에 밀접하게 결합된 전달 및 제어 플레인을 제공한다. 그 결과, 네트워크 요소(302) 내에서 지연에 민감한 어플리케이션이 필요로 하는 바와 같이, QoS의 가변을 구현하는 데에는 보통 장치 내에서 이용되는 사유 인터페이스를 자세히 알고 있어야 한다.
그러나, 네트워킹 산업의 최근 동향은 비교적 불변인 종래의 네트워크 요소를 네트워크 프로세서와 같은 더욱 프로그래머블하지만, 여전히 성능 위주의 네트워크 장치로 교체하고 있는 중이다. 불행히도, 네트워크 프로세서는 일반적으로 초기 단계에 있으며 앱스트랙트 프로그래밍 모델을 갖지 않거나 프로세서 그 자체의 진보에 맞추어 성장할 만큼 충분히 표현적이거나 유동적인 것을 갖지 않는다.
일반적으로, 스위치 및 라우터와 같은 네트워크 요소는 세 개의 논리 연산 구성 성분: 제어 플레인, 전달 플레인 및 관리 플레인으로 분류될 수 있다. 예를 들어, 제어 플레인은 여러 시그널링 또는 라우팅 프로토콜을 실행하고, 모든 라우팅 정보를 전달 플레인에 제공한다. 전달 플레인은 이 정보에 기초하여 판정을 행하여 전달, 분류, 필터링 등과 같은 패킷에 대한 동작을 실행한다. 직교 관리 플레인은 제어 및 전달 플레인을 관리한다.
그러나, 상술한 플레인 내의 표준화된 어플리케이션 프로그래밍 인터페이스(API)의 도입으로 시스템 벤더, OEM 및 이들 네트워크 요소의 종단 유저가 여러 벤 더로부터 이용 가능한 구성 요소를 혼합하여 조화되게 하여 그들의 선택에 따른 장치를 이루는 것이 용이하게 된다. 도 4는 본 발명의 일 실시예에 따라서, 인터커넥트(402)를 통해 함께 결합된 개별의 제어 플레인(410) 및 데이터 플레인(430)으로 구성된 네트워크 요소(400)를 도시하는 블럭도이다.
일 실시예에서, 제어 인터페이스(420)는 데이터 플레인(430)의 전달 요소를 프로그램하는 데에 필요한 정보를 결정하기 위해 데이터 플레인의 쿼리를 가능하게 한다. 이것은 네트워크 전달 요소의 특정 방식을 제어하는 데에 있어 보편성의 정도를 더 크게 한다. 여기에 기재된 바와 같이, 각 프로토콜을 구현하기 위해 표를 형성하고 이들의 엔트리를 위치시키기 위한 여러 파라미터와 정보를 여기에서는 집합적으로 "프로토콜 구성 정보"로 언급한다.
따라서, 제어 인터페이스(420)는 데이터 플레인의 벤더 소스에 상관 없이, 데이터 플레인(430) 내에 제3자 네트워크 프로토콜 스택(프로토콜 어플리케이션)을 구현하기 위해 선택된 데이터 플레인 전달 요소를 프로그램할 수 있다. 일 실시예에서, 제어 인터페이스(420)는 프로토콜과 대응하는 API에 의해 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보에 따라 데이터 플레인(430)을 프로그램화한다. 예를 들어, 네트워크 요소(400)는 어플리케이션(424, 426)을 통해, IPv4, IPv6 라우팅 프로토콜 뿐만 아니라, MPLS 및 DiffServ 네트워크 프로토콜("네트워크 프로토콜")을 구현하는 것으로 도시되어 있다. 유사하게, 관리/구성 어플리케이션(422)도 또한 제공되어 있다.
다른 제3자 개발자로부터의 여러 프로토콜 어플리케이션을 가능하게 하기 위 해서, 본 발명의 일 실시예는 예를 들어, IPv4 라우팅 프로토콜, IPv6 라우팅 프로토콜, MPLS 네트워크 프로토콜 및 DiffServ 네트워크 프로토콜에 API를 제공한다. 그러나, 원하는 부가의 프로토콜에 대한 여러 API는 본 발명의 실시예에 따라 구현될 수 있다. 따라서, 본 발명의 실시예에 따라서 API를 이용함으로써, 제3자 프로토콜 어플리케이션은 벤더 B의 데이터 플레인 내에서 제3자 소프트웨어 개발자가 원하는 것 같은 특정 프로토콜을 구현하기 위해 벤더 A의 제어 플레인이 로드될 수 있다.
일 실시예에서, 데이터 플레인(430) 내에서 프로토콜의 구현 뿐만 아니라, 통신 인터페이싱이 각 프로토콜 API에 의해 취급된다. 다시 말해, 제어 인터페이스(420)는 상술된 프로토콜에 대해 API를 보인다. 그 결과, 대응 API를 종래의 프로토콜 어플리케이션에 결합하게 되면 플랫폼에 독립적인 프로토콜 어플리케이션을 제공하게 된다. 이와 같이, 일 실시예에서, 대응하는 API는 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보를 제어 플레인(410)에 제공한다.
일 실시예에서, 제어 플레인(410)은 이 프로토콜 구성 정보를 이용하여 프로토콜을 구현하도록 데이터 플레인(430)의 전달 요소를 프로그램한다. 부가하여, 제어 인터페이스(420)와 데이터 플레인(430) 간의 통신은 예를 들어, 인터커넥트 메시지 프로토콜 등을 이용하여 이루어진다. 예를 들어, IPv6 라우팅 프로토콜은 전달 요소(440) 내에서 구현될 수 있다. 설명된 바와 같이, IPv6 전달 표 뿐만 아니라, 인접 표(460)가 장치의 부트업(boot-up) 동안 전달 요소(440) 내에 형성되게 된다. 부가하여, 프로토콜 구성 정보에 의해 나타낸 바와 같이, 인터페이스 특정 표 엔트리(462 및 464)는 인터페이스(442)를 통해 수신된 패킷의 라우팅을 나타내기 위해 각 표(460) 내에 형성되어 위치되게 된다.
유사하게, MPLS, FTN(FEC-to-NHLFE (forward equivalence class to next hop label-forwarding entry)) 및 인입 레이블 맵(ILM) 표가 또한 전달 요소(440) 내에서 특정 엔트리(452, 454, 456)로 구현될 수 있다. 특정 엔트리는 인터페이스(442)를 통해 대응 패킷을 수신할 때 요소를 전달하는 방식을 제어하기 위해서 대응하는 레이블 분산 프로토콜(LDP) 어플리케이션에 의해 나타낸다. 유사하게, DiffServ 라우팅 프로토콜과 동시에 IPv4 라우팅 프로토콜도 전달 요소(470) 내에서 구현될 수 있다.
이 능력은 일 실시예에서, 제어 인터페이스(420)가 데이터 플레인(430) 내의 많은 특정 요소들 중 하나를 목표로 하는 기구를 제공한다는 사실로 인해 제공된다. 즉, 다수의 전달 요소 중 하나 내의 하나 이상의 표 내의 하나의 특정 표 엔트리가 어드레스될 수 있다. 유사하게, 일 실시예에서, 제어 인터페이스는 데이터 플레인의 파라미터와 능력을 결정하기 위해 전달 요소를 쿼리하는 기구를 제어 플레인 구성 요소(프로토콜 어플리케이션)에 제공한다.
이에 따라, 도 5는 본 발명의 일 실시예에 따라서 도 4에 도시된 바와 같이, 네트워크 요소(400)를 이용하는 네트워크(500)를 도시하는 블럭도이다. 도시된 바와 같이, 실시간 어플리케이션 서버(200)는 또한 네트워크 요소(400) 내의 예를 들어 DiffServ 네트워크 프로토콜에 의해 제공되는 개선된/가변 QoS를 수신할 수가 있다. 유사하게, 다른 다양한 소스 컴퓨터들은 예를 들어, IPv4(기존의 어플리케 이션용) 및 IPv6 라우팅 프로토콜, MPLS 네트워크 등과 같은 개별의 라우팅/네트워크 프로토콜을 필요로 한다. 이들 프로토콜은 예를 들어, 본 발명의 실시예에 따른 대응 프로토콜 API를 포함하는 제3자 프로토콜 어플리케이션을 이용하여, 네트워크 요소 내에서 구현될 수 있다.
또한, 네트워크 요소(400) 내의 제어 인터페이스(420)는 제어 및 데이터 플레인 간의 인터커넥트(402)에 대해 어느 종류의 인터커넥트 기술이라도 지원하기 위해서 속성이 완전히 비동기적으로 설계된다. 제어 플레인과 데이터 플레인은 이더넷, 케이블선, 버스나 광 섬유와 같은 네트워크 기술을 이용하여 접속될 수 있다. 유사하게, 제어와 데이터 플레인 간의 접속은 소형 PCI(주변 구성 요소 인터커넥트) 와 같은 버스 기술을 통해 성취될 수 있거나 제어와 데이터 플레인은 프로세스 간 통신을 통해 함께 배치되고 및 접속될 수 있다. 본 발명의 실시예를 구현하기 위한 방법의 단계를 이하 설명한다.
동작
도 6은 본 발명의 일 실시예에 따라서 도 4에 도시된 바와 같이, 예를 들어, 네트워크 요소(400)의 네트워크 전달 요소로 데이터 플레인 방식을 구성하기 위한 방법(600)을 설명하는 플로우챠트이다. 프로세스 블럭(602)에서 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보는 네트워크 요소 제어 플레인 내에 수신된다. 일 실시예에서, 프로토콜 어플리케이션은 프로토콜 구성 정보의 추출을 담당하는 프로토콜 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 네트워크/라우팅 프로토콜을 구현한다.
일 실시예에서, 프로토콜 API는 예를 들어, IPv4 및 IPv6 라우팅 프로토콜 뿐만 아니라, DiffServ 네트워크 프로토콜, MPLS 네트워크 프로토콜과 같은 네트워크 프로토콜을 지원한다. 따라서, 수신된 프로토콜 구성 정보에 의해 특정된 각 프로토콜의 구현은 어플리케이션 프로그래머에게는 감추어진다. 프로토콜 구성 정보 어플리케이션이 수신되면, 프로세스 블럭(604)에서, 수신된 프로토콜 구성 정보는 수신된 프로토콜 어플리케이션에 의해 구현되는 프로토콜에 대응하는 제어 인터페이스를 이용하여 처리되게 된다.
예를 들어, 도 4를 참조하여 도시된 바와 같이, 제어 인터페이스(420)는 IPv4, IPv6, MPLS 및 DiffServ 제어 인터페이스로 이루어진다. 그 결과, 제어 인터페이스(420)는 예를 들어, 제3자 개발자로부터 수신된 어플리케이션을 처리하기 위한 대응 프로토콜 인터페이스를 결정한다. 이와 같이, 일단 선택되면, 프로세스 블럭(620)에서, 네트워크 요소의 하나 이상의 데이터 플레인 전달 요소는 예를 들어, 도 4에 도시된 바와 같이, 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보에 따라 프로그램된다.
도 7은 본 발명의 일 실시예에 따르면, 도 6에 도시된 바와 같이, 프로세스 블럭(604)에서 수신된 프로토콜 구성 정보의 처리를 위한 방법(606)를 설명하는 플로우챠트이다. 프로세스 블럭(608)에서, 제어 인터페이스는 수신된 프로토콜 구성 정보와 관련되는 네트워크 라우팅 또는 논라우팅 프로토콜을 구현하도록 데이터 플레인 내의 전달 요소를 선택한다. 예를 들어, 제어 인터페이스(420)는 IPv6 라우팅 프로토콜을 구현하도록 전달 요소(440)를 선택할 수 있다.
다음에, 프로세스 블럭(610)에서, 선택된 전달 요소 내에 형성할 하나 이상의 인터페이스 특정 표가 결정된다. 결정되고 나면, 프로세스 블럭(612)에서 인터페이스 특정(또는 프로토콜 특정) 표 내의 하나 이상의 엔트리가 프로토콜 구성 정보에 따라 제어 인터페이스에 의해 결정되게 된다. 그 결과, 인터페이스 특정 표를 포함하는 전달 요소가 인터페이스 특정 표 내의 엔트리에 따른 라우팅 판정을 결정하게 된다. 예를 들어, IPv6 표(460)의 엔트리 1 및 2에 부가하여 MPLS 표(450)의 엔트리 1-3이 결정된다.
도 8은 본 발명의 일 실시예에 따라서, 도 6에 도시된 바와 같이 프로세스 블럭(620)의 데이터 플레인 전달 요소를 프로그램화하기 위한 방법(622)를 설명하는 플로우챠트이다. 프로세스 블럭(624)에서, 데이터 플레인에 의해 제공되는 프로토콜 능력을 쿼리한 후에, 데이터 플레인으로부터의 이벤트 수신을 가능하게 하도록 프로토콜 구성 정보에 의해 특정된 네트워크 프로토콜은 장치의 부트업 동안 데이터 플레인으로 등록되게 된다. 다시 말해, 전달 요소 내의 여러 처리 동안, 이 구현된 프로토콜은 데이터 플레인 내의 후속 처리 방식을 결정하기 위해 제어 플레인과의 통신을 필요로 하는 이벤트를 트리거할 수 있다.
프로세스 블럭(626)에서 제어 인터페이스는 예를 들어, 전달 요소(440)와 같은 네트워크 데이터 플레인의 하나 이상의 전달 요소 중에서 하나의 전달 요소를 선택한다(도 4). 다음에, 프로세스 블럭(628)에서 장치의 부트업시 선택된 전달 요소 내에 형성된 하나 이상의 인터페이스 특정 표가 선택된다. 선택되고 나면, 프로세스 블럭(630)에서 제어 인터페이스는 대응하는 프로토콜 API에 의해 수신된 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보에 의해 나타낸 바와 같이, 선택된 전달 요소의 인터페이스 특정 표 내에 하나 이상의 엔트리를 형성하게 된다.
도 9는 본 발명의 일 실시예에 따라 IPv4 라우팅 프로토콜을 구현하기 위해서, 도 6에 도시된 바와 같이, 프로세스 블럭(620)의 데이터 플레인 방식을 프로그래밍하는 방법(632)의 플로우챠트이다. 프로세스 블럭(634)에서 IPv4 라우팅 프로토콜은 데이터 플레인으로부터의 이벤트 수신을 가능하게 하기 위해서, 장치의 부트업 동안 네트워크 요소 데이터 플레인으로 등록된다. 프로세스 블럭(636)에서, IPv4 전달 표는 장치의 부트업 동안 선택된 전달 요소 내에 형성된다. 프로세스 블럭(638)에서 주소 해석(ARP) 표는 장치의 부트업 동안 선택된 전달 요소 내에 형성되게 된다.
다음에, 프로세스 블럭(640)에서, 데이터 플레인 내의 전달 요소는 IPv4 라우팅 프로토콜을 구현하도록 선택된다. 프로세스 블럭(642)에서 프로토콜 어플리케이션으로부터의 요청이 수신되었는지가 판정되며, 이는 라우트 업데이트 요청 및 ARP 업데이트 요청을 포함한다. 라우트 요청이 수신되면, 프로세스 블럭(644)에서, IPv4 라우팅 엔트리가 수신된 업데이트 요청에 따라 전달 표 내에서 추가되거나 삭제된다. ARP 요청이 수신된 경우, 프로세스 블럭(646)에서, IPv4 엔트리는 수신된 요청에 따라서 주소 해석 표 내에서 추가되거나 삭제된다. 이에 같이, 프로세스 블럭(642-646)은 전달 요소의 프로그래밍이 완료될 때 까지 반복되게 된다.
도 10은 도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 IPv6 라우팅 프로토콜을 구현하기 위해서, 프로세스 블럭(620)의 데이터 플레인을 프로그래밍하는 방법(650)를 설명하는 플로우챠트이다. 프로세스 블럭(652)에서, IPv6 라우팅 프로토콜은 상기한 바와 같이, 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하기 위해서, 장치의 부트업 동안 데이터 플레인 내에 등록된다. 프로세스 블럭(654)에서 장치의 부트업 동안 IPv6 전달 요소 표가 선택된 전달 요소 내에 형성된다. 선택되고 나면 프로세스 블럭(656)에서, 장치의 부트업 동안 IPv6 인접 표가 선택된 전달 요소 내에 형성되게 된다.
다음에, 프로세스 블럭(658)에서, 전달 요소가 네트워크 요소 데이터 플레인으로부터 선택된다. 프로세스 블럭(660)에서, 요청이 프로토콜 어플리케이션으로부터 수신되었는지가 판정되고, 이는 라우트 업데이트 요청 및 인접한 표 업데이트 요청을 포함할 수 있다. 라우트 요청이 수신되면, 프로세스 블럭(662)에서 IPv6 라우팅 엔트리는 수신된 요청에 따라 전달 표 내에서 추가되거나 삭제된다. 인접 표 업데이트 요청이 수신되면, 프로세스 블럭(664)에서 IPv6 인접 엔트리가 수신된 요청에 따라 인접 표에서 추가되거나 삭제된다. 따라서, 프로세스 블럭(660-664)은 전달 요소의 프로그래밍이 완료될 때 까지 반복된다.
도 11은 본 발명의 일 실시예에 따라 MPLS 네트워크 프로토콜을 구현하기 위해서, 도 6에서 나타낸 바와 같이, 프로세스 블럭(620)에서 데이터 플레인의 전달 요소를 프로그래밍하는 방법(670)를 설명하는 플로우챠트이다. 프로세스 블럭(672)에서, FTN 표는 MPLS 스위칭 프로토콜을 구현하기 위해서, 장치의 부트업 동안, 선택된 전달 요소 내에 형성되게 된다. 프로세스 블럭(674)에서, ILM 표는 장 치의 부트업 동안 선택된 전달 요소 내에서 형성된다. 다음에, 프로세스 블럭(676)에서, FTN DiffServ 컨텍스트 표가 장치의 부트업 동안 선택된 전달 요소 내에서 형성되게 된다.
형성되고 나면, 프로세스 블럭(678)에서, ILM DiffServ 컨텍스트 표가 장치의 부트업 동안 선택된 전달 요소 내에 형성된다. 형성되면, 프로세스 블럭(680)에서, 프로토콜 어플리케이션 요청이 수신되었는지가 판정된다. FTN 요청이 수신되면, 프로세스 블럭(682 및 684)이 실행된다. 그러나, ILM 요청이 수신되면, 프로세스 블럭(686 및 688)이 형성된다. 그 이외에, 제어 플로우는 프로세스 블럭(620)으로 돌아가는데(도 6), 이는 일반적으로 데이터 플레인 전달 요소의 프로그래밍이 각 프로토콜 어플리케이션 요청에 대해 프로세스 블럭(680-688)의 반복으로 완료되게 되면 발생한다.
따라서, 프로세스 블럭(682)에서 MPLS FTN 엔트리 요청이 수신되면 MPLS FTN 엔트리가 FTN 표 내에서 추가되거나 삭제되게 된다. 유사하게, 프로세스 블럭(684)에서, MPLS E-LSP (명시적 라우트 레이블 스위치 경로) 구성 엔트리는 MPLS E-LSP 구성 엔트리 요청이 수신될 때 FTN DiffServ 컨텍스트 표에서 추가되거나 삭제된다. 그렇지 않으면, 프로세스 블럭(686)에서 MPLS ILM 엔트리는 MPLS ILM 엔트리 요청이 수신될 때 ILM표 내에서 추가되거나 삭제된다. 유사하게, 프로세스 블럭(688)에서, MPLS E-LSP 사전 구성(pre-configuration) 엔트리는 MPLS E-LSP 사전 구성 엔트리 요청이 수신될 때 ILM DiffServ 컨텍스트표 내에서 추가되거나 삭제된다.
도 12는 본 발명의 일 실시예에 따라서 DiffServ 네트워크 프로토콜을 구현하기 위해 도 6에서 도시한 바와 같이, 프로세스 블럭(620)의 데이터 플레인 전달 요소를 프로그래밍하기 위한 방법(690)을 설명하는 플로우챠트이다. 프로세스 블럭(692)에서, 복수의 DiffServ 표는 장치의 부트업 동안, DiffServ 라우팅 프로토콜, 예를 들어, DiffServ DPE를 구현하기 위해 선택된 전달 요소 내에 형성된다. 일 실시예에서, 각 호출(프로토콜 어플리케이션 요청)은 다음의 유형: 필터, 미터, 마커, 큐, 또는 스케줄러 중 하나의 엔트리를 포함할 수 있다. 프로세스 블럭(694)에서, 필터 엔트리는 분류기 표 엔트리 요청이 수신될 때 DiffServ 분류기 표에서 추가되거나 삭제될 수 있다. 프로세스 블럭(696)에서, DiffServ 미터 표 내의 미터 엔트리는 미터 엔트리 요청이 수신될 때 추가, 수정 또는 삭제된다.
또한, 프로세스 블럭(698)에서, DiffServ 마커 표 내의 마커 엔트리는 마커 표 엔트리 요청이 수신될 때 추가, 수정 또는 삭제된다. 프로세스 블럭(700)에서, 드롭퍼 엔트리는 드롭퍼 엔트리 요청이 수신될 때 선택된 전달 요소 내에 형성된 DiffServ 알고리즘의 드롭퍼 표 내에서 추가, 수정 또는 삭제된다. 프로세스 블럭(702)에서 DiffServ 큐 내의 큐 엔트리가 큐 엔트리 요청이 수신될 때 추가, 수정 또는 삭제된다. 마지막으로, 프로세스 블럭(704)에서, DiffServ 스케줄러 표 내의 스케줄러 엔트리가 스케줄러 표 엔트리 요청이 수신될 때 추가, 수정 또는 삭제된다.
마지막으로, 도 13은 예를 들어, 본 발명의 일 실시예에 따라서 제어 인터페이스를 구현하는 네트워크 요소의 방식에 대한 방법(710)을 설명하는 플로우챠트이 다. 프로세스 블럭(712)에서 패킷이 수신되었는지가 판정된다. 수신되면 프로세스 블럭(714)에서, "프로토콜 비지원" 이벤트와 같은 이벤트가 수신된 패킷에 의해 트리거되는지가 판정된다. 이벤트가 트리거되면 프로세스 블럭(716)이 실행된다. 프로세스 블럭(716)에서 수신된 패킷에 대응하는 네트워크 프로토콜을 구현하는 전달 요소 어플리케이션이 이 이벤트를 통지 받는다. 일 실시예에서, 통지는 수신된 패킷을 책임 있는 전달 요소에 전달하는 것을 포함할 수 있다.
그렇지 않으면 프로세스 블럭(718)에서, 패킷과 관련되는 네트워크 프로토콜에 대응하는 하나 이상의 인터페이스 특정 표로 프로그램된 전달 요소가 결정된다. 결정되고 되면, 프로세스 블럭(720)에서, "엔트리 유실/노 엔트리 발견" 이벤트와 같은 이벤트가 표 룩업으로 트리거되었는지가 판정되다. 이벤트가 트리거되면 프로세스 블럭(722)이 실행된다. 프로세스 블럭(722)에서 수신된 패킷에 대응하는 네트워크 프로토콜을 구현하는 전달 요소 어플리케이션이 이 이벤트를 통지 받는다. 일 실시예에서, "엔트리 발견되지 않음" 이벤트는 전달 요소에 의해 수신된 패킷의 DROP 동작을 초래할 수 있다.
그렇지 않으면, 프로세스 블럭(724)에서 전달 요소는 패킷과 관련되며 대응하는 프로토콜 구성 정보에 따라 위치되는 네트워크 프로토콜에 대응하는 인터페이스 특정 표 엔트리에 따라 패킷을 처리한다. 일 실시예에서, 제어 플레인과 데이터 플레인 간의 통신은 예를 들어, 공지된 바와 같이 인터커넥트 메시징 프로토콜을 통해 제공된다. 다른 실시예에서, 제어 플레인과 데이터 플레인 간에 부가의 메시징 또는 통신 프로토콜을 이용할 수 있다.
따라서, 본 발명의 실시예를 이용하면 예를 들어 네트워크 프로세서에 대한 제3자의 프로토콜 어플리케이션의 개발이 네트워크 프로세서와 같은 전달 요소의 제어 플레인 또는 데이터 플레인의 벤더 소스와 상관 없이 실행될 수 있다. 다시 말해, 본 발명의 실시예에 따른 제어 인터페이스 및 대응하는 API을 이용하게 되면 네트워크 요소를 구현하기 위한 다수의 벤더의 구성 요소들 간의 상호 동작성으로 가변과 동시에 개선된 서비스 품질을서비스 품질 트래픽에 제공할 수 있게 한다.
따라서, 제3자 프로토콜 어플리케이션 개발자로부터의 데이터 플레인 내에서의 네트워크/라우팅 프로토콜 구현을 분리시켜, 플랫폼 독립성을 성취하고, 이는 제품의 상품화를 더 빠르게 하며, 효율성의 증진과 비용의 절감을 가져와 혁신적이다. 더구나, 제공되는 제어 인터페이스는 제어와 데이터 플레인 간의 어느 종류의 인터넷 인터커넥트 기술이라도 지원할 수 있도록 하기 위해 속성이 완전히 비동기적으로 설계되어 있다. 그 결과, 제어 및 데이터 플레인은 예를 들어, 이더넷 광 섬유와 같은 네트워크 기술을 이용하여 접속될 수 있다.
유사하게, 제어와 데이터 플레인 간의 접속(인터커넥트 링크)은 소형 PCI와 같은 버스 기술을 거쳐 이루어질 수 있거나 제어 및 데이터 플레인은 프로세스간 통신을 통해 함께 위치되거나 접속될 수 있다. 더구나, 이 제어 인터페이스에 의하면 네트워크 프로세서 데이터 플레인에서 IPv4/IPv6/MPLS/DiffServ 방식을 구성하기 위해 스케일러블(scalable)하며 로버스트(robust)한 인터페이스를 이용할 수 있게 해준다. 일 실시예에서 캘리포니아 산타클라라 소재의 인텔사에 의해 제조되는 네트워크 프로세서가 제어 플레인에서 실행되는 관리, 어플리케이션 및 라우팅 /MPLS/QoS 어플리케이션에 이용된다. 더욱, 제3자 라우팅 스택과 관리 어플리케이션의 통합이 또한 본 발명의 실시예에 따라서 제어 인터페이스를 이용하여 용이하게 구현된다.
대체 실시예
다수의 데이터 플레인 방식을 구성하기 위해 제어 인터페이스와 API의 일 구현예의 몇 형태가 설명되었다. 그러나, 제어 인터페이스와 API의 여러 구현예들은 상술한 특징의 보완, 추가 및/또는 교체를 포함하는 여러 특성을 제공한다. 이 특징들은 여러 실시예 구현시 제어 플레인의 일부나 네트워크 요소의 일부로서 구현될 수 있다. 부가하여, 상술한 기재는 설명의 목적으로, 본 발명의 실시예의 완전한 이해를 제공하기 위해 특정 명명법을 이용한다. 그러나, 당업자에게는 이 특정 설명들이 본 발명의 실시예를 실행하는 데에 반드시 필요한 것이 아니라는 것이 명백할 것이다.
부가하여, 여기 기재된 실시예가 네트워크 요소에 대한 제어 인터페이스 및 API에 관한 것이지만, 당업자라면 본 발명의 실시예가 다른 실시예에도 적용될 수 있다는 것이 이해될 것이다. 사실상, 다수의 프로토콜을 네트워크 요소로 지원하는 시스템은 첨부한 청구범위에 의해 정의되는 본 발명의 실시예 범주에 들어가는 것이다. 상술된 실시예는 본 발명의 실시예와 그 실용적 응용예의 원리를 가장 잘 설명하고자 선택하여 기재된 것이다. 이들 실시예들은 당업자 이외의 사람들도 본 발명과 여러 실시예들을 특정하게 고안된 이용예에 적합한 것과 같은 여러 수정예로 이용할 수 있도록 선택되었을 뿐이다.
본 발명의 여러 실시예의 수많은 특성과 장점들은 본 발명의 여러 실시예의 구조와 기능의 설명과 함께 위에서 기재되었지만, 이것은 오적 설명적인 것이라는 것이 이해되어야 한다. 몇가지 경우에, 특정한 서브어셈블리는 이 일 실시예로서 상세히 기재되었을 뿐이다. 그럼에도, 이런 서브어셈블리는 본 발명의 다른 실시예에서 이용될 수 있다는 것이 인식된다. 첨부한 청구범위가 표현하고 있는 용어의 광범위한 일반적 의미로 전 범위에 걸쳐 나타낸 본 발명의 실시예의 원리 내에서 구조와 일부 관리에 대해 변경이 행해질 수 있다.
예시의 실시예와 최상의 모드가 기재되었지만, 다음의 청구범위에 의해 정의되는 본 발명의 실시예의 영역 내에서 유지되면서 개시된 실시예의 변형 및 수정이 가능하다.

Claims (35)

  1. 네트워크 요소 제어 플레인 내에서, 제3자 프로토콜 어플리케이션의 네트워크 프로토콜에 대응하는 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 상기 제3자 프로토콜 어플리케이션으로부터 프로토콜 구성 정보를 추출하는 단계;
    상기 추출된 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜에 대응하는 제어 인터페이스를 이용하여 상기 추출된 프로토콜 구성 정보를 처리하는 단계; 및
    상기 추출된 프로토콜 구성 정보에 따라 네트워크 요소 데이터 플레인의 하나 이상의 전달 요소를 상기 제어 인터페이스로 구성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 추출된 프로토콜 구성 정보를 처리하는 단계는:
    상기 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 구현하기 위해 상기 데이터 플레인 내의 전달 요소를 선택하는 단계;
    상기 프로토콜 구성 정보에 따라 상기 선택된 전달 요소 내에 형성할 하나 이상의 인터페이스 특정 표를 결정하는 단계; 및
    상기 인터페이스 특정 표 내의 하나 이상의 엔트리를 결정하여 상기 인터페이스 특정 표를 포함하는 전달 요소가 상기 인터페이스 특정 표 내의 엔트리에 따른 판정을 행하도록 하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 하나 이상의 데이터 플레인 전달 요소를 구성하는 단계는:
    상기 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하기 위해 상기 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 상기 데이터 플레인으로 등록하는 단계;
    네트워크 요소 데이터 플레인의 하나 이상의 전달 요소 중에서 하나의 전달 요소를 선택하는 단계;
    상기 프로토콜 구성 정보에 따라 상기 선택된 전달 요소 내의 하나 이상의 인터페이스 특정 표에 대해 상기 선택된 전달 요소를 쿼리하는 단계; 및
    상기 프로토콜 어플리케이션에 의해 구현되는 상기 네트워크 프로토콜에 대응하는 패킷을 처리할 때 데이터 플레인 방식을 제어하기 위해 상기 선택된 전달 요소의 인터페이스 특정 표 내에 하나 이상의 엔트리를 형성하여 위치시키는 단계
    를 더 포함하는 방법.
  4. 제3항에 있어서, 상기 형성하는 단계는:
    상기 형성된 인터페이스 특정 표를 결정하도록 상기 선택된 전달 요소를 쿼리하는 단계; 및
    상기 추출된 프로토콜 구성 정보에 따라 상기 형성된 인터페이스 특정 표를 위치시키는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서, 상기 데이터 플레인 요소를 구성하는 단계는:
    부트업(boot-up) 동안 상기 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하기 위해 상기 네트워크 요소 데이터 플레인으로 상기 네트워크 프로토콜을 등록하는 단계;
    상기 추출된 프로토콜 구성 정보에 따라 IPv4 라우팅 프로토콜을 구현하기 위해 상기 네트워크 요소의 상기 데이터 플레인 내에서 전달 요소를 선택하는 단계;
    부트업 동안 상기 선택된 전달 요소 내에 형성된 전달 표에 대해 상기 선택된 전달 요소를 쿼리하는 단계;
    부트업 동안 상기 선택된 전달 요소 내에 형성된 주소 해석 표에 대해 상기 선택된 전달 요소를 쿼리하는 단계;
    프로토콜 어플리케이션 라우트 업데이트 요청이 수신될 때 상기 전달 표 내에서 IPv4 라우팅 엔트리를 추가/삭제하는 단계;
    프로토콜 어플리케이션 주소 해석 표 업데이트 요청이 수신될 때 상기 주소 해석 표에서 IPv4 엔트리를 추가/삭제하는 단계
    를 포함하는 방법.
  6. 제1항에 있어서, 상기 하나 이상의 데이터 플레인 전달 요소를 구성하는 단계는:
    부트업 동안 상기 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하기 위해서 상기 네트워크 프로토콜을 상기 데이터 플레인으로 등록하는 단계;
    상기 추출된 프로토콜 구성 정보에 따라 IPv6 라우팅 프로토콜을 구현하기 위해 상기 네트워크 요소 데이터 플레인의 전달 요소를 선택하는 단계;
    부트업 동안 상기 선택된 전달 요소 내에 형성된 IPv6 전달 표에 대해 상기 선택된 전달 요소를 쿼리하는 단계;
    부트업 동안 상기 선택된 전달 요소 내에 형성된 IPv6 인접표에 대해 상기 선택된 전달 요소를 쿼리하는 단계;
    프로토콜 어플리케이션 라우트 업데이트 요청이 수신될 때 상기 전달 표에서 IPv6 라우팅 엔트리를 추가/삭제하는 단계; 및
    프로토콜 어플리케이션 인접 표 업데이트 요청이 수신될 때 상기 인접 표에서 IPv6 인접 엔트리를 추가/삭제하는 단계
    를 포함하는 방법.
  7. 제1항에 있어서, 상기 데이터 플레인의 상기 하나 이상의 전달 요소를 구성하는 단계는:
    부트업 동안 MPLS 프로토콜을 구현하기 위해 선택된 전달 요소 내의 FTN 표를 형성하는 단계;
    부트업 동안 상기 선택된 전달 요소 내의 ILM 표를 형성하는 단계;
    부트업 동안 상기 선택된 전달 요소 내의 FTN DiffServ 컨텍스트 표를 형성하는 단계;
    부트업 동안 상기 선택된 전달 요소 내의 ILM DiffServ 컨텍스트 표를 형성하는 단계;
    프로토콜 어플리케이션 FTN 표 업데이트 요청이 수신될 때 상기 FTN 표 내에서 MPLS ILM 엔트리를 추가/삭제하는 단계;
    프로토콜 어플리케이션 ILM 표 업데이트 요청이 수신될 때 상기 ILM 표 내에서 MPLS ILM 엔트리를 추가/삭제하는 단계;
    프로토콜 어플리케이션 MPLS E-LSP 구성 업데이트 요청이 수신될 때 상기 FTN DiffServ 컨텍스트 표에서 MPLS E-LSP 구성 엔트리를 추가/삭제하는 단계; 및
    프로토콜 어플리케이션 MPLS E-LSP 사전 구성 업데이트 요청이 수신될 때 상기 ILM DiffServ 컨텍스트 표에서 MPLS E-LSP 사전 구성 엔트리를 추가/삭제하는 단계
    를 포함하는 방법.
  8. 제1항에 있어서, 상기 하나 이상의 데이터 플레인의 전달 요소를 구성하는 단계는:
    부트업 동안 DiffServ 네트워크 프로토콜을 구현하도록 선택된 전달 요소 내에 복수의 DiffServ 표를 형성하는 단계;
    프로토콜 어플리케이션 분류기 업데이트 요청이 수신될 때 상기 선택된 전달 요소 내에 형성된 DiffServ 분류기 표에서 필터 엔트리를 추가/삭제하는 단계;
    프로토콜 어플리케이션 미터 업데이트 요청이 수신될 때 상기 선택된 전달 요소 내에 형성된 DiffServ 미터 표 내에서 필터 엔트리를 추가/수정/삭제하는 단계;
    프로토콜 어플리케이션 마커 업데이트 요청이 수신될 때 상기 선택된 전달 요소 내에 형성된 DiffServ 마커 표 내에서 필터 엔트리를 추가/수정/삭제하는 단계;
    프로토콜 어플리케이션 드롭퍼 업데이트 요청이 수신될 때 상기 선택된 전달 요소 내에 형성된 DiffServ 알고리즘의 드롭퍼 표에서 필터 엔트리를 추가/수정/삭제하는 단계;
    프로토콜 어플리케이션 큐 업데이트 요청이 수신될 때 상기 선택된 전달 요소 내에 형성된 DiffServ 큐 표 내에서 쿼리 엔트리를 추가/수정/삭제하는 단계;
    프로토콜 어플리케이션 스케줄러 업데이트 요청이 수신될 때 선택된 전달 요소 내에 형성된 DiffServ 스케줄러 표 내에서 스케줄러 엔트리를 추가/수정/삭제하는 단계
    를 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 데이터 플레인 내에 패킷을 수신하는 단계;
    이벤트가 트리거될 때, 상기 수신된 패킷에 대응하는 네트워크 프로토콜을 구현하는 프로토콜 어플리케이션을 통지하는 단계;
    그렇지 않으면, 상기 수신된 패킷과 관련되는 네트워크 프로토콜에 대응하는 하나 이상의 인터페이스 특정 표로 프로그램되는 전달 요소를 결정하는 단계;
    이벤트가 트리거될 때, 상기 수신된 패킷에 대응하는 네트워크 프로토콜을 구현하는 프로토콜 어플리케이션을 통지하는 단계;
    그렇지 않으면, 상기 프로토콜 구성 정보에 따라서 제어 인터페이스에 의해 형성되며 상기 수신된 패킷과 관련되는 인터페이스 특정 표 엔트리에 따라 상기 수신된 패킷을 처리하는 단계
    를 포함하는 방법.
  10. 제1항에 있어서, 상기 네트워크 프로토콜 API는 라우팅 프로토콜 API, 스위칭 프로토콜 API, 및 서비스 품질(QoS) 프로토콜 API 중 하나인 방법.
  11. 제10항에 있어서, 상기 라우팅 프로토콜 API는 IPv4 프로토콜 및 IPv6 프로토콜 중 하나인 방법.
  12. 제10항에 있어서, 상기 스위칭 프로토콜 API는 MPLS 프로토콜 API인 방법.
  13. 제10항에 있어서, 상기 QoS 프로토콜 API는 DiffServ 프로토콜 API인 방법.
  14. 제1항에 있어서, 상기 네트워크 프로토콜 API는 특정 트래픽 흐름의 패킷을 원하는 특수 처리와 관련시킬 수 있는 서비스 품질 능력을 포함하는 방법.
  15. 제14항에 있어서, 상기 원하는 특수 처리는 실시간 서비스 또는 논디폴트 서비스 품질 중 적어도 하나를 포함하는 방법.
  16. 프로세서에 의해 실행될 때 컴퓨터가 방법을 실행하도록 하는 프로그램 명령을 포함하는 컴퓨터 판독 가능 저장 매체에 있어서, 상기 방법은:
    네트워크 요소 제어 플레인 내에서, 제3자 프로토콜 어플리케이션의 네트워크 프로토콜에 대응하는 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 상기 제3자 프로토콜 어플리케이션으로부터 프로토콜 구성 정보를 추출하는 단계;
    상기 추출된 프로토콜 구성 정보에 의해 특정된 네트워크 프로토콜에 대응하는 제어 인터페이스를 이용하여 상기 추출된 프로토콜 구성 정보를 처리하는 단계; 및
    상기 추출된 프로토콜 구성 정보에 따른 네트워크 요소 데이터 플레인의 하나 이상의 전달 요소를 상기 제어 인터페이스로 구성하는 단계 - 상기 제어 플레인의 벤더는 상기 데이터 플레인의 벤더와 상이함-
    를 포함하는 컴퓨터 판독 가능 저장 매체.
  17. 제16항에 있어서, 상기 추출된 프로토콜 구성 정보를 처리하는 단계는:
    상기 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 구현하는 상기 데이터 플레인 내의 전달 요소를 선택하는 단계;
    상기 프로토콜 구성 정보에 따라서 상기 선택된 전달 요소 내에 형성할 하나 이상의 인터페이스 특정 표를 결정하는 단계; 및
    상기 인터페이스 특정 표 내의 하나 이상의 엔트리를 결정하여 상기 인터페이스 특정 표를 포함하는 전달 요소가 상기 인터페이스 특정 표 내의 엔트리에 따른 판정을 정하도록 하는 단계
    를 더 포함하는 컴퓨터 판독 가능 저장 매체.
  18. 제16항에 있어서, 상기 하나 이상의 데이터 플레인의 전달 요소를 구성하는 단계는:
    부트업 동안 상기 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하기 위해 상기 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 상기 데이터 플레인으로 등록하는 단계;
    네트워크 요소 데이터 플레인의 하나 이상의 전달 요소 중에서 하나의 전달 요소를 선택하는 단계;
    상기 프로토콜 구성 정보에 따라 상기 선택된 전달 요소 내의 하나 이상의 인터페이스 특정 표에 대해 상기 선택된 전달 요소를 쿼리하는 단계; 및
    상기 프로토콜 어플리케이션에 의해 구현되는 상기 네트워크 프로토콜에 대응하는 패킷을 처리할 때 데이터 플레인 방식을 제어하기 위해 상기 선택된 전달 요소의 상기 인터페이스 특정 표 내에 하나 이상의 엔트리를 형성하여 위치시키는 단계
    를 더 포함하는 컴퓨터 판독 가능 저장 매체.
  19. 제16항에 있어서, 상기 방법은:
    상기 데이터 플레인 내에서 패킷을 수신하는 단계;
    이벤트가 트리거될 때, 상기 수신된 패킷에 대응하는 네트워크 프로토콜을 구현하는 프로토콜 어플리케이션을 통지하는 단계;
    그렇지 않으면, 상기 수신된 패킷과 관련되는 네트워크 프로토콜에 대응하는 하나 이상의 인터페이스 특정 표로 프로그램되는 전달 요소를 결정하는 단계;
    이벤트가 트리거될 때, 상기 수신된 패킷에 대응하는 네트워크 프로토콜을 구현하는 프로토콜 어플리케이션을 통지하는 단계;
    그렇지 않으면, 상기 프로토콜 구성 정보에 따라서 상기 제어 인터페이스에 의해 형성되며 상기 수신된 패킷과 관련되는 인터페이스 특정 표 엔트리에 따라 상기 수신된 패킷을 처리하는 단계
    를 포함하는 컴퓨터 판독 가능 저장 매체.
  20. 제16항에 있어서, 상기 네트워크 프로토콜 API는 라우팅 프로토콜 API, 스위칭 프로토콜 API, 및 서비스 품질(QoS) 프로토콜 API 중 하나인 컴퓨터 판독 가능 저장 매체.
  21. 제20항에 있어서, 상기 라우팅 프로토콜 API는 IPv4 프로토콜 및 IPv6 프로토콜 중 하나인 컴퓨터 판독 가능 저장 매체.
  22. 제20항에 있어서, 상기 스위칭 프로토콜 API는 MPLS 프로토콜 API인 컴퓨터 판독 가능 저장 매체.
  23. 제20항에 있어서, 상기 QoS 프로토콜 API는 DiffServ 프로토콜 API인 컴퓨터 판독 가능 저장 매체.
  24. 제16항에 있어서, 상기 네트워크 프로토콜 API는 특정 트래픽 흐름의 패킷을 원하는 특수 처리와 관련될 수 있게 하는 서비스 품질 능력을 포함하는 컴퓨터 판독 가능 저장 매체.
  25. 제24항에 있어서, 상기 원하는 특수 처리는 실시간 서비스 또는 논디폴트 서비스 품질 중 적어도 하나를 포함하는 컴퓨터 판독 가능 저장 매체.
  26. 각 전달 요소 내에 포함된 대응 인터페이스 특정 표에 따라 수신된 패킷을 처리하는 하나 이상의 전달 요소를 포함하는 데이터 플레인;
    상기 데이터 플레인에 인터커넥트 링크를 통해 연결되어, 네트워크 프로토콜을 구현하는 제3자 프로토콜 어플리케이션으로부터 프로토콜 구성 정보를 추출하며, 상기 제3자 프로토콜 어플리케이션의 상기 네트워크 프로토콜에 대응하는 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 프로토콜 구성 정보를 추출하는 제어 플레인; 및
    상기 제어 플레인에 의해 상기 제3자 프로토콜 어플리케이션으로부터 상기 추출된 프로토콜 구성 정보에 따라 상기 데이터 플레인 내에 포함된 상기 인터페이스 특정 표를 형성하여 구성하는 제어 인터페이스
    를 포함하는 네트워크 요소.
  27. 제26항에 있어서, 상기 제어 인터페이스는 더욱 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 구현할 상기 데이터 플레인 내의 전달 요소를 선택하고; 추출된 프로토콜 구성 정보에 따라 상기 선택된 전달 요소 내에 형성될 하나 이상의 인터페이스 특정 표를 결정하고; 및 프로토콜 구성 정보에 따라 상기 인터페이스 특정 표 내의 하나 이상의 엔트리를 결정하여 상기 인터페이스 특정 표를 포함하는 전달 요소가 상기 인터페이스 특정 표 내의 엔트리에 따른 프로토콜 판정을 결정하게 하는 네트워크 요소.
  28. 제26항에 있어서, 상기 제어 인터페이스는 더욱 부트업 동안 상기 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하도록 상기 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 상기 데이터 플레인으로 등록하고; 네트워크 요소 데이터 플레인의 하나 이상의 전달 요소 중에서 하나의 전달 요소를 선택하고; 부트업 동안 상기 선택된 전달 요소 내에 형성된 하나 이상의 인터페이스 특정 표 에 대해 상기 선택된 전달 요소를 쿼리하고; 추출된 프로토콜 구성 정보에 따라 상기 선택된 전달 요소의 상기 인터페이스 특정 표 내에 하나 이상의 엔트리를 형성하여 위치시키도록 하는 네트워크 요소.
  29. 제26항에 있어서, 상기 제어 인터페이스는 더욱 상기 데이터 플레인 내에서 패킷을 수신하고; 상기 패킷과 관련되는 네트워크 프로토콜에 대응하는 하나 이상의 인터페이스 특정 표로 프로그램된 전달 요소를 결정하고; 상기 추출된 프로토콜 구성 정보에 따라 상기 제어 인터페이스에 의해 형성된 인터페이스 특정 표 엔트리에 따라 상기 패킷을 처리하고; 및 이벤트가 트리거될 때, 상기 패킷과 관련되는 네트워크 프로토콜을 구현하는 상기 프로토콜에 통지하도록 하는 네트워크 요소.
  30. 제26항에 있어서, 상기 인터커넥트 링크는 버스, 케이블, 광학 섬유, 및 이더넷 링크 중 하나인 네트워크 요소.
  31. 각 전달 요소 내에 포함되는 대응 인터페이스 특정 표에 따라 수신된 패킷을 처리하는 하나 이상의 전달 요소를 포함하는 데이터 플레인;
    상기 데이터 플레인에 인터커넥트 링크를 통해 연결되고, 네트워크 프로토콜을 구현하는 적어도 하나의 프로토콜 어플리케이션을 포함하며, 상기 네트워크 프로토콜에 대응하는 어플리케이션 프로그래밍 인터페이스(API)를 제공하는 제어 플레인; 및
    각 프로토콜 API에 의해 상기 제어 플레인의 상기 프로토콜 어플리케이션으로부터 추출된 프로토콜 구성 정보에 따라 상기 데이터 플레인 내에 포함된 상기 인터페이스 특정 표를 형성하여 구성하는 제어 인터페이스 - 상기 제어 플레인의 벤더는 상기 데이터 플레인의 벤더와 상이함 -
    를 포함하는 복수의 결합된 네트워크 요소를 포함하는 네트워크로 이루어지는 시스템.
  32. 제31항에 있어서, 상기 제어 인터페이스는 더욱 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 구현할 상기 데이터 플레인 내의 전달 요소를 선택하고; 추출된 프로토콜 구성 정보에 따라 상기 선택된 전달 요소 내에 형성될 하나 이상의 인터페이스 특정 표를 결정하고; 및 프로토콜 구성 정보에 따라 상기 인터페이스 특정 표 내의 하나 이상의 엔트리를 결정하여 상기 인터페이스 특정 표를 포함하는 전달 요소가 상기 인터페이스 특정 표 내의 엔트리에 따른 프로토콜 판정을 결정하게 하는 시스템.
  33. 제31항에 있어서, 상기 제어 인터페이스는 더욱 부트업 동안 상기 데이터 플레인으로부터의 이벤트의 수신을 가능하게 하도록 상기 프로토콜 구성 정보에 의해 특정된 상기 네트워크 프로토콜을 상기 데이터 플레인으로 등록하고; 네트워크 요소 데이터 플레인의 하나 이상의 전달 요소 중에서 하나의 전달 요소를 선택하고; 부트업 동안 상기 선택된 전달 요소 내에 형성된 하나 이상의 인터페이스 특정 표에 대해 상기 선택된 전달 요소를 쿼리하고; 추출된 프로토콜 구성 정보에 따라 상기 선택된 전달 요소의 상기 인터페이스 특정 표 내에 하나 이상의 엔트리를 형성 하여 위치시키도록 하는 시스템.
  34. 제31항에 있어서, 상기 제어 인터페이스는 더욱 상기 데이터 플레인 내에서 패킷을 수신하고; 상기 패킷과 관련되는 네트워크 프로토콜에 대응하는 하나 이상의 인터페이스 특정 표로 프로그램된 전달 요소를 결정하고; 상기 추출된 프로토콜 구성 정보에 따라 상기 제어 인터페이스에 의해 형성된 인터페이스 특정 표 엔트리에 따라 상기 패킷을 처리하고; 및 이벤트가 트리거될 때, 상기 패킷과 관련되는 네트워크 프로토콜을 구현하는 상기 프로토콜에 통지하도록 하는 시스템.
  35. 제31항에 있어서, 상기 인터커넥트 링크는 버스, 케이블, 광학 섬유, 및 이더넷 링크 중 하나인 시스템.
KR1020057012688A 2003-01-07 2004-01-02 네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기위한 장치 및 방법 KR100747181B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/338,291 US7646759B2 (en) 2003-01-07 2003-01-07 Apparatus and method for configuring data plane behavior on network forwarding elements
US10/338,291 2003-01-07

Publications (2)

Publication Number Publication Date
KR20050095841A KR20050095841A (ko) 2005-10-04
KR100747181B1 true KR100747181B1 (ko) 2007-08-07

Family

ID=32681414

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057012688A KR100747181B1 (ko) 2003-01-07 2004-01-02 네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기위한 장치 및 방법

Country Status (7)

Country Link
US (1) US7646759B2 (ko)
JP (2) JP2006515499A (ko)
KR (1) KR100747181B1 (ko)
CN (1) CN100401254C (ko)
DE (1) DE112004000122T5 (ko)
GB (1) GB2413032B (ko)
WO (1) WO2004064309A2 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983239B1 (en) 2003-01-07 2011-07-19 Raytheon Bbn Technologies Corp. Systems and methods for constructing a virtual model of a multi-hop, multi-access network
US7415028B1 (en) * 2003-02-11 2008-08-19 Network Equipment Technologies, Inc. Method and system for optimizing routing table changes due to ARP cache invalidation in routers with split plane architecture
US7397778B2 (en) * 2003-04-21 2008-07-08 Avaya Technology Corp. Method and apparatus for predicting the quality of packet data communications
US7881229B2 (en) * 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
US7606927B2 (en) * 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US7606140B2 (en) * 2003-08-28 2009-10-20 Alcatel Lucent Distributed and disjoint forwarding and routing system and method
US8166204B2 (en) * 2003-08-29 2012-04-24 Raytheon Bbn Technologies Corp. Systems and methods for automatically placing nodes in an ad hoc network
US20050265234A1 (en) * 2004-05-13 2005-12-01 Marconi Communications, Inc. Diffserv path object for network management
FI117587B (fi) * 2004-06-18 2006-11-30 Nethawk Oyj Menetelmä, laite ja tietokoneohjelmatuote tiedonsiirtoyhteyksien monitorointiin
US8068408B2 (en) * 2004-11-01 2011-11-29 Alcatel Lucent Softrouter protocol disaggregation
US8953432B2 (en) * 2004-11-01 2015-02-10 Alcatel Lucent Softrouter dynamic binding protocol
US9100266B2 (en) * 2004-11-01 2015-08-04 Alcatel Lucent SoftRouter protocol failovers
US8996722B2 (en) * 2004-11-01 2015-03-31 Alcatel Lucent Softrouter feature server
US9014181B2 (en) * 2004-11-01 2015-04-21 Alcatel Lucent Softrouter separate control network
US7941512B2 (en) * 2004-12-13 2011-05-10 Cisco Technology, Inc. Use of IPv6 in access networks
CN100505684C (zh) * 2005-03-29 2009-06-24 国际商业机器公司 网络系统,流量均衡方法,网络监视设备和主机
CN1842051A (zh) * 2005-03-30 2006-10-04 国际商业机器公司 流量均衡设备和方法以及使用它们的网络转发设备和方法
US7870565B2 (en) * 2005-06-30 2011-01-11 Intel Corporation Systems and methods for secure host resource management
US7742477B1 (en) * 2006-02-03 2010-06-22 Cisco Technology, Inc. Interconnectivity between autonomous systems
US20070233885A1 (en) * 2006-03-31 2007-10-04 Buskens Richard W Architectures for assuring the inter-domain transport of QoS sensitive information
JP4714081B2 (ja) * 2006-06-01 2011-06-29 アラクサラネットワークス株式会社 ネットワーク接続装置
US8279885B2 (en) * 2007-09-25 2012-10-02 Packeteer, Inc. Lockless processing of command operations in multiprocessor systems
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US9419867B2 (en) * 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
US8059532B2 (en) * 2007-06-21 2011-11-15 Packeteer, Inc. Data and control plane architecture including server-side triggered flow policy mechanism
TWI423622B (zh) * 2007-11-26 2014-01-11 Ind Tech Res Inst 路由系統、控制元件、路由方法及交換表和轉送表的產生方法
US8199750B1 (en) * 2007-12-18 2012-06-12 World Wide Packets, Inc. Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier
US8428021B2 (en) * 2009-05-14 2013-04-23 Avaya, Inc. Architecture using inexpensive, managed wireless switching points to deliver large scale WLAN
US9531716B1 (en) * 2009-08-07 2016-12-27 Cisco Technology, Inc. Service enabled network
US9054943B2 (en) * 2009-12-23 2015-06-09 Citrix Systems, Inc. Systems and methods for mixed mode handling of IPv6 and IPv4 traffic by a virtual server
US8804720B1 (en) * 2010-12-22 2014-08-12 Juniper Networks, Inc. Pass-through multicast admission control signaling
CN102148764B (zh) * 2011-05-09 2013-12-11 杭州华三通信技术有限公司 一种基于QoS业务的数据处理方法和设备
EP2745475B1 (en) * 2011-08-18 2015-10-07 Telefonaktiebolaget L M Ericsson (publ) Centralized control of data plane applications
US8930604B2 (en) 2012-07-17 2015-01-06 Lsi Corporation Reliable notification of interrupts in a network processor by prioritization and policing of interrupts
CN103986660B (zh) * 2014-05-30 2018-01-23 华为技术有限公司 加载微码的装置以及加载微码的方法
US9450866B2 (en) * 2014-07-11 2016-09-20 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table performance control in SDN
US10219522B2 (en) * 2015-02-06 2019-03-05 Naturex S.A. Antimicrobial compositions
US10721206B2 (en) * 2015-02-27 2020-07-21 Arista Networks, Inc. System and method of persistent address resolution synchronization
US10587468B2 (en) 2015-04-27 2020-03-10 Arista Networks, Inc. System and method of a graceful reboot of a network controller
WO2017184112A1 (en) * 2016-04-18 2017-10-26 Arista Networks, Inc. System and method of a graceful reboot of a network controller
US10530692B2 (en) * 2015-09-04 2020-01-07 Arista Networks, Inc. Software FIB ARP FEC encoding
US10075567B1 (en) 2016-02-08 2018-09-11 Barefoot Networks, Inc. Packet generation in the data plane of a forwarding element
US10848420B2 (en) 2018-02-12 2020-11-24 Cisco Technology, Inc. Dynamic forwarding features in network elements
US11272042B2 (en) * 2020-01-21 2022-03-08 Cisco Technology, Inc. Methods and systems to track protocol and hardware resource state transitions
CN112558935B (zh) * 2020-12-10 2023-05-30 中盈优创资讯科技有限公司 一种基于编排控制流程业务开通的网元控制引擎模块
CN113282296B (zh) * 2021-05-31 2022-12-13 河南信大网御科技有限公司 基于数据面编程的数据转发方法及装置
CN114157461B (zh) * 2021-11-22 2023-08-01 绿盟科技集团股份有限公司 工控协议数据流处理方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0767564A2 (en) * 1995-10-06 1997-04-09 Canon Kabushiki Kaisha Protocol reconfiguration in a network interface device
WO2001047207A2 (en) * 1999-12-22 2001-06-28 Intel Corporation Method and apparatus for proprietary data forwarding in an open architecture for network devices

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06197111A (ja) * 1992-10-26 1994-07-15 Hitachi Ltd インタネットワーク装置
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
US6393496B1 (en) * 1995-11-09 2002-05-21 Curtis A. Schwaderer Operating system and network independent application program interface for use in an intelligent communication device
US5987517A (en) * 1996-03-27 1999-11-16 Microsoft Corporation System having a library of protocol independent reentrant network interface functions for providing common calling interface for communication and application protocols
US6185566B1 (en) * 1998-05-05 2001-02-06 Robert A. Adams Network management system having an embedded network database
JP3645733B2 (ja) * 1999-02-24 2005-05-11 株式会社日立製作所 ネットワーク中継装置及びネットワーク中継方法
US6532241B1 (en) * 1999-05-20 2003-03-11 Cisco Technology, Inc. Method and apparatus for determining SNA sessions using various protocols for transport based on filter criteria
KR100454674B1 (ko) * 2000-08-28 2004-11-03 엘지전자 주식회사 라우터의 자동 설정 장치 및 방법
US6681262B1 (en) * 2002-05-06 2004-01-20 Infinicon Systems Network data flow optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0767564A2 (en) * 1995-10-06 1997-04-09 Canon Kabushiki Kaisha Protocol reconfiguration in a network interface device
WO2001047207A2 (en) * 1999-12-22 2001-06-28 Intel Corporation Method and apparatus for proprietary data forwarding in an open architecture for network devices

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Software Architecture for Next-Generation Routers, IEEE/ACM TON 2000-02 *
Multiprotocol Label Switching Architecture, 1999-08 *
Router Plugins: A Software Architecture for Next-Generation Routers, D. Escaper et al., IEEE ACM Transactions On Networking, Vol.8 no.1(2002.2) *

Also Published As

Publication number Publication date
GB0513407D0 (en) 2005-08-03
DE112004000122T5 (de) 2013-01-17
WO2004064309A3 (en) 2004-12-23
JP5160214B2 (ja) 2013-03-13
GB2413032A (en) 2005-10-12
WO2004064309A2 (en) 2004-07-29
JP2006515499A (ja) 2006-05-25
JP2008125116A (ja) 2008-05-29
GB2413032B (en) 2006-05-17
CN100401254C (zh) 2008-07-09
US7646759B2 (en) 2010-01-12
US20040131079A1 (en) 2004-07-08
CN1723439A (zh) 2006-01-18
KR20050095841A (ko) 2005-10-04

Similar Documents

Publication Publication Date Title
KR100747181B1 (ko) 네트워크 전달 요소에 대한 데이터 플레인 방식을 구성하기위한 장치 및 방법
US8934486B2 (en) System and method for implementing multicast over a label-switched core network
KR102586898B1 (ko) 패킷 처리 방법 및 장치, 및 관련 디바이스들
US7529199B1 (en) System and method for resolving conflicts in proxy routing information associated with multicast distribution trees
US8599685B2 (en) Snooping of on-path IP reservation protocols for layer 2 nodes
US8224902B1 (en) Method and apparatus for selective email processing
US8510551B1 (en) Policy handling for multicast transmissions
CN106453138B (zh) 一种报文处理方法和装置
EP3094053A1 (en) Predictive egress packet classification for quality of service
CN109361606B (zh) 一种报文处理系统及网络设备
CN1630995A (zh) 通信网络的rsvp代理业务
CN1511399A (zh) 执行网络路由选择的方法和装置
US6760776B1 (en) Method and apparatus for processing network frames in a network processor by embedding network control information such as routing and filtering information in each received frame
US20060218300A1 (en) Method and apparatus for programmable network router and switch
US20060114904A1 (en) Differentiated services multicast system and method using encapsulation and unicast
US8743685B2 (en) Limiting transmission rate of data
WO2014139157A1 (zh) 一种报文处理的方法、报文设备和系统
CN107528781A (zh) 组播报文的转发方法及装置、路由器
CN110601989A (zh) 一种网络流量均衡方法及装置
US7978728B2 (en) Network clustering for improving connection management and re-routing capabilities
CN113542114B (zh) 路由配置方法和路由配置装置
CN109661037B (zh) 一种sfc报文转发方法及设备
US7061919B1 (en) System and method for providing multiple classes of service in a packet switched network
JP2002077257A (ja) ストリーム配信ネットワークサービス方法およびシステム
US20050232240A1 (en) Relay equipment and communication system

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: 20121102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee