KR20210064217A - 네트워크 라우팅 환경에서 비동기식 객체 관리자 - Google Patents

네트워크 라우팅 환경에서 비동기식 객체 관리자 Download PDF

Info

Publication number
KR20210064217A
KR20210064217A KR1020217008637A KR20217008637A KR20210064217A KR 20210064217 A KR20210064217 A KR 20210064217A KR 1020217008637 A KR1020217008637 A KR 1020217008637A KR 20217008637 A KR20217008637 A KR 20217008637A KR 20210064217 A KR20210064217 A KR 20210064217A
Authority
KR
South Korea
Prior art keywords
route
objects
dependencies
object manager
asynchronous object
Prior art date
Application number
KR1020217008637A
Other languages
English (en)
Inventor
나리나크시 파이
칼얀 라자라만
비크람 라구쿠마르
Original Assignee
아르쿠스 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아르쿠스 인크. filed Critical 아르쿠스 인크.
Publication of KR20210064217A publication Critical patent/KR20210064217A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2869Operational details of access network equipments
    • H04L12/2878Access multiplexer, e.g. DSLAM
    • H04L12/2879Access multiplexer, e.g. DSLAM characterised by the network type on the uplink side, i.e. towards the service provider network
    • H04L12/2881IP/Ethernet DSLAM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L2012/4629LAN interconnection over a backbone network, e.g. Internet, Frame Relay using multilayer switching, e.g. layer 3 switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Inspection Of Paper Currency And Valuable Securities (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

네트워크 데이터를 데이터 저장소로 오프로드하기 위한 시스템, 방법 및 디바이스. 시스템은 라우팅 칩 하드웨어와 라우팅 칩 하드웨어와 통신하는 비동기식 객체 관리자를 포함한다. 비동기식 객체 관리자는 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령을 실행하도록 구성될 수 있다. 명령은 하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신하는 것을 포함한다. 명령은 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별하는 것을 포함한다. 명령은 하나 이상의 종속성에 따라 복수의 객체를 재정렬하는 것을 포함한다. 명령은 하나 이상의 종속성이 해결되었는지 여부를 결정하는 것을 포함한다. 명령은 하나 이상의 종속성이 해결되었다고 결정한 것에 응답하여 애플리케이션을 다시 호출하고 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 것을 포함한다.

Description

네트워크 라우팅 환경에서 비동기식 객체 관리자
관련 출원에 대한 상호 참조
본 출원은 "데이터베이스 시스템 방법 및 디바이스"라는 제목으로 2018 년 8 월 23 일에 출원된 미국 가특허 출원 일련 번호 62/722,003에 우선권을 주장하고, 이는 구체적으로 이하에서 제시된 부분을 포함하지만 이에 한정되지 않고, 그 전체가 참조로 본 출원에 통합되고, 이하의 예외를 제외하고 참조에 의한 통합이 이루어진다 : 상기에 언급된 출원의 일부가 본 출원과 일치하지 않는 경우,본 출원은 상기에 언급된 출원을 대체한다.
기술분야
본 개시는 컴퓨팅 네트워크에 관한 것으로, 보다 상세하게는 네트워크 환경에서 정보 복원 충돌을 해결하는 것에 관한 것이다.
네트워크 컴퓨팅은 다수의 컴퓨터 또는 노드가 함께 작동하고 네트워크를 통해 서로 통신하는 수단이다. WAN (Wide Area Network)과 LAN (Local Area Network)이 있다. WAN과 LAN 둘 모두 컴퓨터 간의 상호 연결을 허용한다. 근거리 통신망(local area network)은 일반적으로 가정, 기업, 학교 등에서 사용될 수 있는 더 작고 더 로??화된 네트워크에 사용된다. 광역 통신망(wide area network)는 도시와 같은 더 넓은 지역을 커버하며 심지어 다른 국가의 컴퓨터를 연결할 수도 있다. 근거리 통신망은 전형적으로 광역 통신망 보다 빠르고 안전하지만 광역 통신망은 광범위한 연결을 가능하게 한다. LAN은 전형적으로 배치된 조직에서 내부적으로 소유, 제어 및 관리하는 반면, 광역 통신망은 전형적으로 공용 인터넷을 통해 또는 텔레통신 제공자에 의해 수립된 개인 연결을 통해 연결되는 두 개 이상의 구성 LAN을 필요로 한다.
근거리 통신망과 광역 통신망은 컴퓨터를 서로 연결하고 데이터 및 기타 정보를 전송할 수 있도록 한다. 근거리 통신망과 광역 통신망 둘 모두에 대해, 한 컴퓨팅 인스턴스에서 다른 컴퓨팅 인스턴스로 데이터가 전달되는 경로를 결정하는 수단이 있어야 한다. 이를 라우팅(routing)이라고 한다. 라우팅은 네트워크에서 또는 다수의 네트워크 사이 또는 다수의 네트워크를 가로질러 트래픽 경로를 선택하는 프로세스이다. 라우팅 프로세스는 일반적으로 다양한 네트워크 목적지(destination)에 대한 라우트의 레코드(record)를 유지하는 라우팅 테이블을 기반으로 포워딩(forwarding)을 지시한다. 라우팅 테이블은 관리자에 의해 지정되거나, 네트워크 트래픽을 관찰하여 학습되거나, 라우팅 프로토콜을 사용하여 구축될 수 있다.
일부 네트워크 라우팅 동작은 다수의 상이한 생산자에 의해 생성된 정보 객체를 송신하는 것을 포함한다. 이러한 객체는 수신 애플리케이션이 객체를 적절하게 처리할 수 있도록 특정 순서로 송신되어야할 수 있다. 그러나 다수의 상이한 생산자가 있는 경우 올바른 순서로 객체를 송신는 것이 어려울 수 있다. 특히, 분산 네트워크 운영 체제 (NOS : network operating system)에서, 포워딩 정보 객체가 다른 생산자에 의해 생성된다. 포워딩 객체는 서로 의존하는 경향이 있으며 프로그래밍 흐름은 이러한 종속성을 고려해야 한다. 객체는 기저 데이터 평면으로 순서대로 조화되고 프로그래밍되어야 한다. 한 가지 전통적인 접근 방식은 상이한 생산자를 서로 동기화 한 다음 다수의 생산자에 걸쳐 올바른 시퀀스로 객체를 아래로 푸시하는 것이다. 이 접근 방식에는 수많은 결함이 있다. 이 접근 방식은 프로세스간에 긴밀한(tight) 상태 동기화를 유도하고 긴밀하게 결합된 분산 NOS를 생성하는 경향이 있다. 긴밀한 동기화는 NOS가 여러 시스템에 분산되어 있거나 NOS 컴포넌트가 클라우드 기반 네트워크 환경에서 동작할 때 수많은 문제를 일으킬 수 있다.
전술한 내용에 비추어, 네트워크 컴퓨팅 동작을 개선하고 비동기식 객체 관리자가 네트워크 환경에서 정보 객체를 수신하고 재정렬하기 위한 시스템, 방법 및 디바이스가 본 출원에 개시된다.
본 개시의 비 제한적이고 비 포괄적인 구현은 이하의 도면을 참조하여 설명되며, 동일한 도면 번호는 달리 명시되지 않는 한 다양한 도면을 통해 동일한 부분을 지칭한다. 본 개시의 장점은 이하의 설명 및 첨부 도면과 관련하여 더 잘 이해될 것이다.
도 1은 인터넷을 통해 통신하는 네트워크 연결된 디바이스 시스템의 개략도이다.
도 2는 비동기식 객체 관리자에 의해 관리될 수 있는 다수의 종속성을 갖는 객체 하이어레키(hierarch)의 개략도이다.
도 3은 객체를 비동기식으로 수신하는 예시적인 순서의 개략도이다.
도 4는 비동기식 객체 관리자에 의해 수신된 객체의 예시적인 재정렬의 개략도이다.
도 5는 결손 시퀀스(deletion sequence)의 예시적인 재정렬의 개략도이다.
도 6은 네트워킹 디바이스에 의해 가능하게 된 통신의 개략도이다.
도 7은 하드웨어 동작을 위한 명령을 제공하는 하드웨어 및 소프트웨어 스택을 포함하는 예시적인 네트워킹 디바이스의 개략도이다.
도 8은 디바이스에 대한 컨트롤러 로직을 클라우드 네트워크로 오프로딩하기 위한 시스템의 개략도이다.
도 9는 디바이스에 대한 컨트롤러 로직을 클라우드 네트워크로 오프로딩하기 위한 시스템의 개략도이다.
도 10은 컴퓨터 네트워크를 통해 송신될 객체를 수신하고 재정렬하기 위한 방법의 개략적인 흐름도이다.
도 11은 네트워크 컴퓨팅 환경에서 네트워킹 디바이스의 동작을 개선하기 한 방법의 개략적인 흐름도이다.
도 12는 예시적인 컴퓨팅 디바이스의 컴포넌트를 예시하는 개략도이다.
네트워크 컴퓨팅 환경에서 개선된 정보 라우팅을 한 시스템, 방법 및 디바이스가 본 출원에 개시된다. 본 개시의 실시예는 상이한 제어 계획 정보의 라이프 사이클을 추적하도록 구성된 비동기식 객체 관리자이다. 비동기식 객체 관리자는 네트워크 라우팅 환경에 배치될 수 있으며 스위치 또는 라우터와 같은 네트워킹 디바이스의 동작을 제어하기 위해 소프트웨어 스택에 포함될 수 있다.
컴퓨터 네트워크 환경에서, 스위치나 라우터와 같은 네트워킹 디바이스는 하나의 목적지에서 최종 목적지로 정보를 송신하는데 사용될 수 있다. 일 실시예에서, 데이터 패키지 및 메시지는 사람의 집 내의 컴퓨터와 같은 제 1 위치에서 생성될 수 있다. 데이터 패키지 및 메시지는 웹 브라우저와 상호 작용하고 인터넷을 통해 액세스할 수 있는 원격 서버에 정보를 요청하거나 정보를 제공하는 사람으로부터 생성될 수 있다. 예를 들어, 데이터 패키지와 메시지는 인터넷에 연결된 웹 페이지에서 액세스할 수 있는 형태에 사람이 입력한 정보일 수 있다. 데이터 패키지와 메시지는 사람의 컴퓨터에서 지리적으로 매우 멀리 떨어져있는 원격 서버로 송신되어야할 수 있다. 그 사람의 집에 있는 라우터와 원격 서버간에 직접적인 통신이 없을 가능성이 크다. 따라서, 데이터 패키지와 메시지는 원격 서버의 최종 목적지에 도달할 때까지 다른 네트워킹 디바이스로 "호핑(hopping)"하여 이동해야 한다. 사람의 집에 있는 라우터는 데이터 패키지와 메시지가 원격 서버의 최종 목적지에 도달할 때까지 인터넷에 연결된 다수의 상이한 디바이스를 통해 데이터 패키지와 메시지를 송신하는 라우트를 결정해야 한다.
제 1 위치에서 최종 목적지까지 최상의 경로를 결정하고 다음 목적지로 데이터 패키지 및 메시지를 포워딩하는 프로세스는 스위치나 라우터와 같은 네트워킹 디바이스에 의해 수행되는 중요한 기능이다. 네트워킹 디바이스의 동작을 개선하기 위한 시스템, 방법 및 디바이스가 본 출원에 개시된다. 본 개시의 실시예는 스위치 또는 라우터의 라우팅 칩 하드웨어 상에서 동작하는 소프트웨어 스택에 포함된다. 소프트웨어 스택의 일 부분은 본 출원에서 논의된 비동기식 객체 관리자이다. 비동기식 객체 관리자는 네트워크 라우팅 환경에서 다양한 장점을 제공한다. 첫째, 비동기식 객체 관리자에 의해 수행되는 동작으로 인해, 메시지 생성자는 더 이상 서로 대화할 필요가 없으며 대신 비동기식 객체 관리자에 의해 구성될 메시지를 송신할 수 있다. 또한, 비동기식 객체 관리자는 상이한 객체 간의 관계와 종속성을 표현하는 수단을 제공한다. 추가하여, 비동기식 객체 관리자 내의 상태 머신(state machine)은 비동기식 객체 관리자가 소프트웨어 스택의 다른 부분에 순서(order)을 발행하기 전에 필요한 모든 객체가 도달할 때까지 대기할 수 있다.
일 실시예에서, 비동기식 객체 관리자는 라우터 또는 스위치와 같은 네트워킹 디바이스에서 라우팅 칩 하드웨어를 관리하고 하드웨어 상에 있는 소프트웨어이다. 특히, 비동기식 객체 관리자는 소프트웨어 언어를 수정하지 않고도 라우터 또는 스위치에서 사용될 수 있다. 일 실시예에서, 다른 소프트웨어 스택과 조합된 비동기식 객체 관리자는 스위치를 라우터로 및 그 반대로 변환하는데 사용될 수 있다.
비동기식 객체 관리자는 컴퓨터 네트워크로부터 정보를 수집하고 라우팅 칩 하드웨어에 의해 프로그래밍될 수 있는 형태로 정보를 요약한다. 비동기식 객체 관리자는 패키지 포워딩 기능이 라우팅 칩 하드웨어에 의해 수행하도록 한다. 비동기식 객체 관리자는 네트워킹 디바이스에서 동작하는 소프트웨어 스택의 최하위 계층이다. 비동기식 객체 관리자는 기저 라우팅 칩 하드웨어와 상호 작용하고 API (application program interface)와 상호 작용한다.
비동기식 객체 관리자는 DPAL (Data Plan Adaptation Layer)과 함께 작동할 수 있다. DPAL는 다수의 클라이언트를 가질수 있으며 다른 클라이언트로부터 다른 정보를 대기하여야할 수도 있다. DPAL은 객체가 특정 순서로 배열되지 않으면 기능을 수행할 수 없다. 일 실시예에서, 비동기식 객체 관리자의 주요 태스크(task)는 객체가 DPAL에 의해 처리될 수 있도록 객체를 재정렬하는 것이다. 비동기식 객체 관리자는 DPAL 컨텍스트 외부에서 사용될 수 있으며 계층 3 네트워크 등에 계층화된 세그먼트를 구축하기 위한 VPN 소프트웨어로 적용될 수 있다.
일 실시예에서, 비동기식 객체 관리자는 상태 머신이다. 비동기식 객체 관리자는 미리 정의된 매개 변수의 조건 내에서 특정 상태로 구축하도록 디자인되었다. 비동기식 객체 관리자는 정보 패키지를 관리하는 대신 프로그래밍 정보를 전달하는 메시지를 재배열하도록 구성될 수 있다. 예를 들어, 비동기식 객체 관리자는 기저 라우팅 칩 하드웨어에 예를 들어, 인터페이즈(interphase) A가 인터페이즈 B로 전송되어야 한다는 것을 알려주도록 구성된다.
일 실시예에서, 비동기식 객체 관리자는 DPAL과 상호 작용하고 DPAL에 제 1 위치에서 최종 목적지로 메시지를 전송하기 위한 라우트를 제공한다. 예에서, DPAL은 다수의 통신 채널을 통해 메시지를 수신할 수 있다. DPAL은 비동기식 객체 관리자에 쿼리하고 메시지 송신을 위한 라우트를 요청할 수 있다. 비동기식 객체 관리자는 라우트를 생성하고 라우트를 기록하고 DPAL에 라우트를 제공한다. 비동기식 객체 관리자는 상이한 객체 간의 관계를 표현한다는 점에서 고유하다. 비동기식 객체 관리자 내부에 구축된 상태 머신은 비동기식 객체 관리자가 DPAL에 라우트를 발행하거나 임의의 객체에 변화가 생기기 전에 모든 객체가 도달할 때까지 대기할 수 있다. 비동기식 객체 관리자는 객체 생산자가 서로 통신할 필요가 없다.
본 개시의 이해를 증진시키기 위해, 다수의 네트워킹 컴퓨팅 디바이스 및 프로토콜에 대한 일부 설명이 제공될 것이다.
BGP 인스턴스는 네트워크에서 정보를 라우팅하기 위한 디바이스이다. BGP 인스턴스는 라우트 리플렉터 어플라이언스(route reflector appliance)의 형태를 취할 수 있다. BGP 인스턴스는 스위치, 라우터 또는 스위치의 BGP 스피커에서 실행될 수 있다. 하이 레벨에서, BGP 인스턴스는 프리픽스(prefix)에 대해 학습한 모든 경로를 최상 경로 컨트롤러로 발송한다. 최상 경로 컨트롤러는 이러한 경로 중에서 최상의 경로 세트로 응답한다. 최상 경로 컨트롤러는 임의의 경로에 대한 다음 홉(hop) 및 속성을 수정할 수 있다. 최상의 경로가 수신되면 BGP 인스턴스는 로컬 RIB (Routing Information Base)를 업데이트하고 최상의 경로를 그 이웃(neighbor)에 광고한다.
스위치 (대안적으로 스위칭 허브, 브리징 허브 또는 MAC 브리지라고도 함)는 네트워크를 생성한다. 대부분의 내부 네트워크는 스위치를 사용하여 건물이나 캠퍼스의 컴퓨터, 프린터, 전화, 카메라, 조명 및 서버를 연결한다. 스위치는 네트워크로 연결된 디바이스가 서로 효율적으로 통신할 수 있도록 하는 컨트롤러 역할을 한다. 스위치는 패킷 스위칭을 사용하여 컴퓨터 네트워크의 디바이스를 연결하여 데이터를 수신, 처리 및 목적지 디바이스로 포워딩한다. 네트워크 스위치는 하드웨어 어드레스를 사용하여 OSI (Open Systems Interconnection) 모델의 데이터 링크 계층 (계층 2)에서 데이터를 처리하고 포워딩하는 멀티 포트 네트워크 브리지이다. 일부 스위치는 라우팅 기능을 추가로 통합하여 네트워크 계층 (계층 3)에서 데이터를 처리할 수도 있다. 이러한 스위치는 일반적으로 계층 3 스위치 또는 멀티 계층 스위치로 알려져 있다.
라우터는 네트워크를 연결한다. 스위치와 라우터는 유사한 기능을 수행하지만 각각은 네트워크에서 수행할 고유한 기능이 있다. 라우터는 컴퓨터 네트워크간에 데이터 패킷을 포워딩하는 네트워킹 디바이스이다. 라우터는 인터넷에서 트래픽 전달 기능을 수행한다. 웹 페이지, 이메일 또는 기타 형태의 정보와 같이 인터넷을 통해 발송되는 데이터는 데이터 패킷의 형태로 발송된다. 패킷은 전형적으로 패킷이 목적지 노드에 도달할 때까지 인터 네트워크(internetwork) (예를 들어, 인터넷)를 구성하는 네트워크를 통해 한 라우터에서 다른 라우터로 포워딩된다.라우터는 서로 다른 네트워크의 두 개 이상의 데이터 라인에 연결된다. 데이터 패킷이 라인 중 하나에 들어 오면, 라우터는 패킷의 네트워크 어드레스 정보를 판독하여 최종 목적지를 결정한다. 그런 다음, 라우터의 라우팅 테이블 또는 라우팅 정책에 정보를 사용하여 라우터는 이동 중인 다음 네트워크로 패킷을 보낸다. BGP 스피커는 BGP (Border Gateway Protocol)로 인에이블된 라우터이다.
라우팅 테이블 또는 라우팅 정보 베이스 (RIB : routing information base)는 특정 네트워크 목적지에 대한 라우트를 나열하는 라우터 또는 네트워크 연결된 컴퓨터에 저장된 데이터 테이블이다. 일부 경우에, 라우팅 테이블은 거리, 무게 등과 같은 경로에 대한 메트릭(metric)을 포함한다. 라우팅 테이블은 그것이 저장된 라우터 주변의 네트워크 토폴로지에 대한 정보를 포함한다. 라우팅 테이블의 구성은 라우팅 프로토콜의 주요 목표이다. 정적 라우트(static route)는 자동이 아닌 방법으로 라우팅 테이블에 만들어진 엔트리(entry)이며 일부 네트워크 토폴로지 발견 절차의 결과가 아니라 고정된다. 라우팅 테이블은 네트워크 ID, 메트릭, 다음 홉을 위한 필드를 포함하여 적어도 3 개의 정보 필드를 포함할 수 있다. 네트워크 ID는 목적지 서브넷이다. 메트릭은 패킷이 발송되는 경로의 라우팅 메트릭이다. 라우트는 가장 낮은 메트릭을 갖는 게이트웨이 방향으로 진행한다. 다음 홉은 패킷이 최종 목적지로 가는 도중에 발송될 다음 스테이션의 어드레스이다. 라우팅 테이블은 라우트와 관련된 서비스 품질, 라우트와 관련된 필터링 기준 목록에 대한 링크, 이더넷 카드용 인터페이스 등을 더 포함할 수 있다.
라우팅 테이블의 개념을 설명하기 위해, 라우팅 테이블은 패키지를 배달하기 위해 맵을 사용하는 것과 유사할 수 있다. 라우팅 테이블은 패키지를 최종 목적지로 배달하기 위해 맵을 사용하는 것과 유사하다. 노드가 네트워크 상의 다른 노드로 데이터를 발송해야 하는 경우, 노드는 먼저 데이터를 발송할 위치를 알아야 한다. 노드가 목적지 노드에 직접 연결될 수 없는 경우, 노드는 목적지 노드에 대한 적절한 라우트를 따라 다른 노드로 데이터를 발송해야 한다. 대부분의 어느 노드가 작동할 수 있는 지를 파악하지 않는다. 대신 노드는 LAN의 게이트웨이에 IP 패킷을 발송한 다음 데이터를 올바른 목적지로 라우팅하는 방법을 결정한다. 각각의 게이트웨이는 다양한 데이터 패키지를 배달하는 방법을 추적해야 하며 이를 위해 라우팅 테이블을 사용한다. 라우팅 테이블은 맵과 같은 경로를 추적하고 이러한 경로를 사용하여 트래픽을 포워딩할 방법을 결정하는 데이터베이스이다. 게이트웨이는 또한 라우팅 테이블의 콘텐츠를 정보를 요청하는 다른 노드와 공유할 수 있다.
개별 홉(hop-by-hop) 라우팅의 경우, 각 라우팅 테이블은 도달 가능한 모든 목적지에 대해 해당 목적지, 즉 다음 홉에 대한 경로를 따라 다음 디바이스의 어드레스를 나열한다. 라우팅 테이블이 일관적이라고 가정하면, 패킷을 목적지의 다음 홉으로 중계(relay)하는 알고리즘은 네트워크의 임의의 위치에 데이터를 배달하는 데 충분하다. 개별 홉(Hop-by-hop)은 IP 인터네트워크 계층(Internetwork Layer) 및 OSI (Open Systems Interconnection) 모델의 특성이다.
OSI (Open Systems Interconnection) 모델은 기저(underlying) 내부 구조 및 기술에 관계없이 컴퓨팅 시스템의 통신 기능을 특성화하고 표준화하는 개념적 모델이다. OSI 모델의 목표는 표준 통신 프로토콜과 다양한 통신 시스템의 상호 운용이다. OSI 모델은 통신 시스템을 추상화 계층으로 분할한다. 계층은 그 위에 있는 계층에 서비스를 제공(serve)하고 아래 계층에 의해 서비스를 제공받는다. 예를 들어, 네트워크를 통해 에러 없는 통신을 제공하는 계층은 그 위에 있는 애플리케이션에 의해 필요한 경로를 제공하는 반면 다음 아래 계층을 호출하여 해당 경로의 콘텐츠를 구성하는 패킷을 발송하고 수신한다. 동일한 계층에 있는 두 인스턴스는 해당 계층에서 수평 연결로 연결된 것으로 시각화된다. 통신 프로토콜은 한 호스트의 엔티티가 다른 호스트의 동일한 계층에 있는 대응하는 엔티티와 상호 작용하도록 한다. OSI 모델과 같은 서비스 정의는 (N-1) 계층에 의해 (N) 계층에 제공되는 기능을 추상적으로 설명하고, 여기서, N은 로컬 호스트에서 동작하는 프로토콜 계층 중 하나이다.
라우트 제어는 인터넷 연결을 개선하고 대역폭 비용과 전반적인 인터네트워크 동작을 줄이는 것을 목표로 하는 네트워크 관리 유형이다. 일부 라우트 제어 서비스는 전체 인터넷 성능을 개선하고 최소한의 비용으로 사용 가능한 인터넷 대역폭 사용을 미세 조정하기 위해 함께 작동하는 하드웨어 기반 및 소프트웨어 기반 제품 및 서비스 제품군(suite)을 포함한다. 라우트 제어는 네트워크 또는 자율 시스템이 다수의 제공자로부터 인터넷 대역폭을 소싱(sourcing)하는 시나리오에서 성공할 수 있다. 라우트 제어는 데이터 송신을 위한 최적의 경로를 선택하는 데 도움이될 수 있다.
일부 네트워크 통신 시스템은 수천 개의 처리 노드가 있는 대규모 엔터프라이즈 레벨(enterprise-level) 네트워크이다. 수천 개의 처리 노드는 다수의 ISP (Internet Service Provider)의 대역폭을 공유하고 상당한 인터넷 트래픽을 처리할 수 있다. 이러한 시스템은 매우 복잡할 수 있으며 수락 가능한 인터넷 성능을 제공하도록 적절하게 구성되어야 한다. 최적의 데이터 송신을 위해 시스템을 올바르게 구성하지 않으면 인터넷 액세스 속도가 느려지고 시스템은 높은 대역폭 소비와 트래픽을 경험할 수 있다. 이 문제를 해결하기 위해, 이러한 문제를 제거하거나 줄이기 위한 일련의 서비스가 구현될 수 있다. 이 서비스 세트를 라우팅 제어라고할 수 있다.
라우팅 제어 메커니즘의 일 실시예는 하드웨어와 소프트웨어로 구성된다. 라우팅 제어 메커니즘은 인터넷 서비스 제공자 (ISP)와의 연결을 통해 나가는 모든 트래픽을 모니터링한다. 라우팅 제어 메커니즘은 효율적인 데이터 송신을 위한 최상의 경로를 선택하는 데 도움이 된다. 라우팅 제어 메커니즘은 모든 ISP의 성능과 효율성을 계산하고 적용 가능한 영역에서 최적으로 수행된 ISP 만 선택할 수 있다. 비용, 성능 및 대역폭과 관련하여 정의된 파라미터에 따라 라우트 제어 디바이스가 구성될 수 있다.
데이터 송신을 위한 최상의 경로를 결정하기 위한 알려진 알고리즘을 BGP (Border Gateway Protocol)이라고 한다. BGP는 인터넷의 자율 시스템에 대한 라우팅 정보를 제공하는 경로 벡터 프로토콜(path-vector protocol)이다. BGP가 잘못 구성되면 서버 가용성 및 보안 문제가 발생할 수 있다. 추가하여, 수정된 BGP 라우트 정보는 공격자가 트래픽의 큰 블록을 리다이렉션(redirect)하여 트래픽이 의도된 목적지에 도달하기 전에 특정 라우터로 이동하도록 허용할 수 있다. BGP 최상 경로 알고리즘은 트래픽 포워딩을 위해 인터넷 프로토콜 (IP) 라우팅 테이블에 설치할 최상의 경로를 결정하도록 구현될 수 있다. BGP 라우터는 동일한 목적지에 대한 다수의 경로를 수신하도록 구성될 수 있다.
BGP 최상 경로 알고리즘은 현재 최상 경로로 제 1 유효한 경로를할당한다. BGP 최상 경로 알고리즘은 BGP가 유효한 경로 목록의 끝에 도달할 때까지 목록의 다음 경로와 최상 경로를 비교한다. 해당 목록은 최상의 경로를 결정하는 데 사용되는 규칙을 제공한다. 예를 들어, 목록은 가중치가 가장 높은 경로가 선호되고, 로컬 선호도(local preference)가 없는 경로가 선호되며, 네트워크 또는 집성(aggregate) BGP를 통해 로컬에서 발원된 경로가 선호되고, 최단 경로가 선호되고, 가장 낮은 멀티 엑시트 판별자(multi-exit discriminator)를 갖는 경로가 선호된다 는 등의 표시를 포함할 수 있다. BGP 최상 경로 선택 프로세스는 커스터마이즈(customize)될 수 있다.
BGP 라우팅의 맥락에서, 각 라우팅 도메인은 자율 시스템 (AS : autonomous system)으로 알려져 있다. BGP는 두 개의 라우팅 도메인을 연결하기 위해 인터넷을 통한 경로 선택을 지원한다. BGP는 전형적으로 최단 AS 경로라고하는 가장 적은 수의 자율 시스템을 횡단하는 라우트 선택한다. 일 실시예에서, BGP가 인에이블되면, 라우터는 ISP일 수 있는 BGP 이웃으로부터 인터넷 라우트의 목록을 가져올 것이다. 그런 다음 BGP는 목록을 면밀히 조사하여 최단 AS 경로를 갖는 라우트를 찾는다. 이러한 라우트는 라우터의 라우팅 테이블에 입력될 수 있다. 일반적으로 라우터는 AS에 대한 최단 경로를 선택할 것이다. BGP는 경로 속성을 사용하여 트래픽을 특정 네트워크로 라우팅하는 방법을 결정한다.
본 개시에 따른 원리의 이해를 촉진하기 위해, 이제 도면에 예시된 실시예가 참조될 것이며, 이를 설명하기 위해 특정 언어가 사용될 것이다. 그럼에도 불구하고 본 개시의 범위의 제한이 의도되지 않음이 이해될 것이다. 본 출원에 예시된 발명 특징의 임의의 변경 및 추가 수정, 및 본 출원에 예시된 개시의 원리의 임의의 추가 적용은 일반적으로 관련 기술 분야의 숙련자에게 발생하고 본 개시를 소유하는 것은 청구된 개시의 범위 내에서 고려되어야 한다.
네트워크 컴퓨팅 환경에서 객체의 라이프 사이클을 추적하기 위한 구조, 시스템 및 방법이 개시되고 설명되기 전에, 본 개시가 특정 구조, 구성, 프로세스 단계 및 재료는 다소 다를 수 있으므로 본 출원에 개시된 이러한 구조, 구성, 프로세스 단계 및 재료에 제한되지 않음을 이해해야 한다. 또한, 본 출원에 사용된 용어는 특정 실시예를 설명하기 위한 목적으로만 사용되며 본 개시의 범위가 첨부된 청구 범위 및 그 등가물에 의해서만 제한될 것이기 때문에 제한하려는 의도가 아님을 이해해야 한다.
본 개시의 주제를 설명하고 청구함에 있어서, 다음과 같은 용어는 아래에서 정하는 정의에 따라 사용된다.
본 명세서 및 첨부된 청구 범위에서 사용된, 단수 형태 "a", "an” 및 "the"는 문맥상 명백하게 달리 지시하지 않는 한 복수의 지시 대상을 포함한다는 점에 유의해야 한다.
본 출원에서 사용된, 용어 "구성하는", "포함하는", "함유하는", "특징되는” 및 그 문법적 등가물은 추가의, 인용되지 않은 엘리먼트 또는 방법 단계를 배제하지 않는 포괄적이거나 개방적인 용어이다.
본 출원에 사용된, "구성되는(consisting of)"이라는 문구 및 그에 상응하는 문법적 표현은 청구 범위에 명시되지 않은 엘리먼트 또는 단계를 배제한다.
본 출원에 사용된, "본질적으로 구성되는(consisting essentially of)"이라는 문구 및 그의 문법적 등가물은 청구 범위를 특정된 재료 또는 단계 및 청구된 개시의 기본적이고 신규한 특성 또는 특성들에 실질적으로 영향을 미치지 않는 것들로 제한한다.
이제 도면을 참조하면, 도 1은 디바이스를 인터넷에 연결하기 위한 시스템 (100)의 개략도를 예시한다. 시스템 (100)은 스위치 (106)에 의해 연결된 다수의 근거리 통신망 (160)을 포함한다. 다수의 근거리 통신망 (160) 각각은 라우터 (162)를 통해 공중 인터넷을 통해 서로 연결될 수 있다. 도 1에 예시된 예시 시스템(100)에서, 2 개의 근거리 통신망 (160)이 존재한다. 그러나, 공중 인터넷을 통해 서로 연결된 다수의 근거리 통신망 (160)이 있을 수 있음을 이해해야 한다. 각각의 근거리 통신망 (160)은 스위치 (106)를 통해 서로 연결된 다수의 컴퓨팅 디바이스 (108)를 포함한다. 다수의 컴퓨팅 디바이스 (108)는 예를 들어, 데스크톱 컴퓨터, 랩톱, 프린터, 서버 등을 포함할 수 있다. 근거리 통신망 (160)은 라우터 (162)를 거쳐 공중 인터넷을 통해 다른 네트워크와 통신할 수 있다. 라우터 (162)는 다수의 네트워크를 서로 연결한다. 라우터 (162)는 인터넷 서비스 제공자 (102)에 연결된다. 인터넷 서비스 제공자 (102)는 하나 이상의 네트워크 서비스 제공자 (104)에 연결된다. 네트워크 서비스 제공자 (104)는 도 1에 도시된 바와 같이 다른 로컬 네트워크 서비스 제공자 (104)와 통신한다.
스위치 (106)는 패킷 스위칭을 이용하여 근거리 통신망 (160)에 있는 디바이스를 연결하여 데이터를 수신, 처리하여 목적지 디바이스로 포워딩한다. 스위치 (106)는 예를 들어, 프린터로 향하는 컴퓨터로부터 데이터를 수신하도록 구성될 수 있다. 스위치 (106)는 데이터를 수신하고, 데이터를 처리하고, 데이터를 프린터로 발송할 수 있다. 스위치 (106)는 계층 1 스위치, 계층 2 스위치, 계층 3 스위치, 계층 4 스위치, 계층 7 스위치 등일 수 있다. 계층 1 네트워크 디바이스는 데이터를 전송하지만 그것을 통해 들어오는 트래픽을 관리하지 않다. 계층 1 네트워크 디바이스의 예는 이더넷 허브(Ethernet hub)이다. 계층 2 네트워크 디바이스는 하드웨어 어드레스를 사용하여 데이터 링크 계층 (계층 2)에서 데이터를 처리하고 포워딩하는 멀티 포트 디바이스이다. 계층 3 스위치는 라우터에 의해 일반적으로 수행되는 기능의 일부 또는 전부를 수행할 수 있다. 그러나, 일부 네트워크 스위치는 단일 유형의 물리적 네트워크, 전형적으로 이더넷을 지원하는 것으로 제한되는 반면 라우터는 상이한 포트에서 서로 다른 유형의 물리적 네트워크를 지원할 수 있다.
라우터 (162)는 컴퓨터 네트워크간에 데이터 패킷을 포워딩하는 네트워킹 디바이스이다. 도 1에 도시된 예시적인 시스템 (100)에서, 라우터 (162)는 근거리 통신망 (160) 사이에서 데이터 패킷을 포워딩하는 것이다. 그러나, 라우터 (162)는 근거리 통신망 (160) 사이에서 데이터 패킷을 포워딩하는데 반드시 적용되는 것은 아니며 광역 통신망 사이에서 데이터 패킷을 포워딩하는데 사용될 수 있다. 라우터 (162)는 인터넷 상에서 트래픽 방향 기능(traffic direction function)을 수행한다. 라우터 (162)는 구리 케이블, 광섬유 또는 무선 전송과 같은 상이한 유형의 물리 계층 연결을 위한 인터페이스를 가질 수 있다. 라우터 (162)는 상이한 네트워크 계층 송신 표준을 지원할 수 있다. 각각의 네트워크 인터페이스는 데이터 패킷이 한 전송 시스템에서 다른 전송 시스템으로 포워딩되도록 하는데 사용된다. 라우터 (162)는 또한 각각 다른 네트워크 프리픽스를 갖는 서브넷으로 알려진 컴퓨터 디바이스의 둘 이상의 논리적 그룹을 연결하는데 사용될 수 있다. 라우터 (162)는 도 1에 도시된 바와 같이 기업 내, 기업과 인터넷 사이 또는 인터넷 서비스 제공자의 네트워크 사이의 연결을 제공할 수 있다. 일부 라우터 (162)는 다양한 인터넷 서비스 제공자를 상호 연결하도록 구성되거나 대기업 네트워크에서 사용될 수 있다. 더 작은 라우터 (162)는 전형적으로 가정 및 사무실 네트워크를 위한 인터넷 연결을 제공한다. 도 1에 도시된 라우터 (162)는 에지 라우터, 가입자 에지 라우터, 제공자 간(inter-provider) 경계 라우터(border router), 코어 라우터, 인터넷 백본, 포트 포워딩, 음성/데이터/팩스/비디오 처리 라우터 등과 같은 네트워크 송신에 적합한 임의의 라우터를 나타낼 수 있다.
인터넷 서비스 제공자 (ISP) (102)는 인터넷 접속, 사용 또는 참여를 위한 서비스를 제공하는 조직이다. ISP (102)는 상업, 커뮤니티 소유, 비영리 또는 개인 소유와 같은 다양한 형태로 조직될 수 있다. ISP (102)에 의해 전형적으로 제공되는 인터넷 서비스는 인터넷 액세스, 인터넷 트랜짓, 도메인 이름 등록, 웹 호스팅, 유즈넷 서비스(Usenet service) 및 코로케이션(collocation)을 포함한다. 도 1에 도시된 ISP (102)는 호스팅 ISP, 트랜짓(transit) ISP, 가상 ISP, 프리(free) ISP, 무선 ISP 등과 같은 적절한 ISP를 나타낼 수 있다.
네트워크 서비스 제공자 (NSP) (104)는 인터넷 서비스 제공자에게 직접 인터넷 백본 액세스를 제공함으로써 대역폭 또는 네트워크 액세스를 제공하는 조직이다. 네트워크 서비스 제공자는 네트워크 액세스 포인트 (NAP : network access point)에 대한 액세스를 제공할 수 있다. 네트워크 서비스 제공자 (104)는 때때로 백본 제공자 또는 인터넷 제공자로 지칭된다. 네트워크 서비스 제공자 (104)는 고속 인터넷 액세스를 제공하는 텔레통신 회사, 데이터 캐리어, 무선 통신 제공자, 인터넷 서비스 제공자 및 케이블 텔레비전 운영자를 포함할 수 있다. 네트워크 서비스 제공자 (104)는 또한 정보 기술 회사를 포함할 수 있다.
도 1에 도시된 시스템 (100)는 예시 일 뿐이며 네트워크와 컴퓨팅 디바이스 사이에서 데이터를 송신하기 위해 많은 다른 구성 및 시스템이 생성될 수 있다는 것이 이해되어야 한다. 네트워크 형성에는 많은 사용자 지정 가능성(customizability)이 있기 때문에 컴퓨터간에 또는 네트워크간에 데이터를 송신하기 위한 최상의 경로를 결정할 때보다 큰 사용자 지정 가능성을 만들고자 한다. 전술한 내용에 비추어, 컴퓨터 또는 특정 기업의 특정 그룹에 잘 맞는 최상의 경로 알고리즘을 결정할 때, 더 큰 사용자 지정 가능성을 가능하게 하기 위해 최상의 경로 계산을 외부 디바이스로 오프로드(offloading)하기 위한 시스템, 방법 및 디바이스가 본 출원에 개시된다.
도 2는 본 출원에서 논의되는 비동기식 객체 관리자에 의해 관리되는 환경에서 3 가지 유형의 객체 A, B 및 C를 포함하는 객체 구조 (200)의 개략도이다. 유형 A, B 및 C의 객체 인스턴스는 키(key)로 식별된다. 객체 유형 A는 키 A1로 표시된다. 객체 유형 B는 키 B1 및 B2로 표시된다. 객체 유형 C는 키 C1 및 C2로 표시된다. 화살표는 객체 간의 종속성을 나타낸다. 키가 A1인 객체 유형 A는 키가 B1 및 B2 인 객체 유형 B에 종속된다. 키가 B1인 객체 유형 B는 키가 C1인 객체 유형 C에 종속된다. 키가 B2인 객체 유형 B는 키가 C2인 객체 유형 C에 종속된다.
예시적인 구현예에서, 객체 유형 A 및 B는 한 생산자에 의해 생성되고, 객체 유형 C는 다른 생산자에 의해 생성된다고 가정한다. 이러한 객체의 정보는 데이터 계획에서 C, B, A 순서로 프로그래밍될 수 있다. 그러나 생산자가 이러한 객체를 비동기식으로 푸시하기 때문에 객체가 순서없이 도달할 수 있다.
본 출원에서 논의된 비동기식 객체 관리자는 위의 예시적인 구현에서 예시된 순서 요구 사항을 해결하기 위해 사용될 수 있다. 일 실시예에서, 모든 객체는 객체가 수신되는 순서에 관계없이 비동기식 객체 관리자에 추가된다. 비동기식 객체 관리자는 주어진 객체의 종속성이 해결되었는지 여부를 검출한다. 종속성이 해결되었는지 확인하는 응답으로 비동기식 객체 관리자는 애플리케이션 제공 콜백(callback)을 다시 호출하고 추가 작업을 위해 객체와 해당 애플리케이션 상태를 전달한다.
일 구현예에서, 객체의 실제 도착 시퀀스는 B (B1), A (A1), B (B2), C (C1), C (C2)이다. 이것은 도 3에 예시되어 있다. 비동기식 객체 관리자는 이 시퀀스를 재정렬하고 적절한 순서로 애플리케이션에서 콜백을 개시한다. 객체의 순서는 구현에 따라 다를 수 있다. 객체 순서의 예는 C (C1), C (C2), B (B1), B (B2), A (A1)이다. 이것은 도 4에 예시되어 있다. 마찬가지로, 생산자로부터의 결손 시퀀스는 C (C1), C (C2), B (B1), B (B2), A (A1)과 같을 수 있다. 비동기식 객체 관리자는 결손 시퀀스를 : A (A1), B (B1), B (B2), C (C1), C (C2)로 재정렬한다. 이것은 도 5에 예시되어 있다.
종속성(dependency)은 비동기식 객체 관리자의 시스템 공간에서 객체를 식별하는 고유 키(unique key)에 따라 정의될 수 있다. 종속성은 자식 객체가 채택하는 부모 객체의 키를 나타낼 수 있다. 예를 들어, 라우트 객체는 "nexthopID"라는 필드를 가질 수 있으며 nexthopID는 NextHop 객체의 키이다. 라우터 객체가 비동기식 객체 관리자에 추가되면, 별도의 종속성 목록은 nexthopID를 포함한다. 이것은 결국 종속된 NextHop 객체를 고유하게 식별한다.
도 6은 BGP 인스턴스(610)에 의해 가능하게 된 통신의 개략도이다. 일 실시예에서, 시스템에 대한 관련 정보를 저장하는 BGP 인스턴스에 로컬인 데이터 저장소 (602)가 있다. 데이터 저장소 (602)는 하나 이상의 라우터 또는 스위치에 대한 최상의 경로 정보를 저장하는 데이터베이스일 수 있다. 데이터 저장소 (602)는 CPU 사용률, 온도, 팬 속도 및 LED 또는 다른 디바이스와 같은 주변 기기에 대한 상태 정보와 같은 시스템 상태 정보를 추가로 저장할 수 있다. 데이터 저장소 (602)는 모니터링 에이전트에 유용할 수 있는 다양한 정보를 저장할 수 있다. 데이터 저장소 (602)의 정보는 그러한 정보를 원할 수 있는 다른 컨트롤러 또는 디바이스로 스트리밍될 수 있다. 데이터 저장소 (602)는 데이터베이스 인덱스를 포함할 수 있고 다수의 호스트를 포함할 수 있다. 다수의 호스트 각각은 프로세서 및 캐시 메모리를 포함할 수 있다. 도 6에 도시된 예시적인 실시예에서, 데이터 저장소 (602)는 데이터베이스 호스트 1, 데이터베이스 호스트 2, 데이터베이스 호스트 3, 내지 데이터베이스 호스트 n을 포함한다.
데이터 저장소 (602)는 생산자(producer) (604), 생산자 소비자(producer consumer) (606) 및 소비자(consumer) (608)와 통신한다. 생산자 (604)는 소비자 (606)에 의해 소비되는 정보를 생산하는 프로세스이다. 포워딩 정보 베이스 (FIB : forwarding information base) (710 참조)는 라우트와 다음 홉을 생성한다. FIB에 의해 생성되는 다음 홉은 인터페이스 관리자에 의해 생성된 인터페이스에 종속성을 갖는다.
도 7은 네트워킹 디바이스 (702)의 개략도이다. 네트워킹 디바이스 (702)는 스위치 (106) 또는 라우터 (112)일 수 있다. 네트워킹 디바이스 (702)는 하드웨어 (704), 비동기식 객체 관리자 (706), 데이터 계획 적응 계층 (DPAL : data plan adaptation layer) (708), 포워딩 정보 베이스 (FIB : forwarding information base) (710), 라우팅 정보 베이스 (RIB : routing information base) (712), 구성 에이전트, 및 BGP (Border Gateway Protocol) (716) 중 하나 이상을 포함한다. 네트워킹 디바이스 (702)는 본 출원에 예시되지 않은 추가 컴포넌트를 가질 수 있다는 것을 이해해야 한다.
네트워킹 디바이스 (702)의 소프트웨어 부분은 도 4에 도시된 소프트웨어 스택 (414)에 포함될 수 있다. 이 소프트웨어 스택 (414)은 스위치 또는 라우터와 같은 네트워킹 디바이스 (702)의 동작을 수행하기 위해 하드웨어와 함께 작동한다. 일 실시예에서, 네트워킹 디바이스 (702)의 소프트웨어 부분은 BGP 인스턴스 내의 로컬에 위치되지 않고 대신 클라우드 스토리지로 오프로드된다. 소프트웨어 스택 (414)은 클라우드 스토리지로 오프로드되고 네트워킹 디바이스 (702) 디바이스에서 로컬로 복사될 수 있다.
일 실시예에서, 비동기식 객체 관리자 (706)는 상이한 제어 평면 정보 (예를 들어, 도 2-5에서 객체로 표시됨)의 라이프 사이클을 추적하기 위해 하나 이상의 애플리케이션 프로그램 인터페이스 (API)를 제공한다. 비동기식 객체 관리자 (706)는 객체 간의 종속성을 추가로 추적한다. 비동기식 객체 관리자 (706)는 최하위 계층에 위치하여 상이한 생산자로부터 비동기식으로 내려가는 시퀀스 및 순서 정보를 돕는다.
일 실시예에서, 비동기식 객체 관리자 (706)는 객체를 재정렬하기 위한 상태 머신을 구현한다. 일 실시예에서, 다른 생산자로부터의 객체가 필요한 순서로 도달하지 않으면, 상태 머신은 부모 객체가 생성될 때까지 종속 객체의 생성 또는 업데이트를 보류한다. 마찬가지로 상태 머신은 종속 항목이 업데이트되거나 삭제될 때까지 객체 결손을 보류한다. 비동기식 객체 관리자 (706)는 그래프와 유사한 데이터 구조를 사용하여 객체를 구성하고, 종속성 그래프의 위 또는 아래에서 객체를 생성, 업데이트 및/또는 삭제하는 효과를 반복적으로 리플(ripple)시킬 수 있다. 도면들 2-5 참조.
비동기식 객체 관리자 (706)는 선언적 언어(declarative language)를 포함하는 프레임 워크를 포함한다. 선언적 언어는 서로 다른 종류의 객체 간의 종속성을 표현한다. 선언적 언어를 사용하여 상이한 객체 유형에 대한 스키마(schema)를 정의할 수 있다. 추가하여, 선언적 언어를 객체의 키를 구성하는 속성 및 다른 속성과 함께 사용하여 객체의 종속성을 식별할 수 있다. 일 실시예에서, 스키마가 정의된 후, 코드 생성기가 실행되어 상이한 객체에 대한 코드를 생성할 수 있다. 생성된 코드는 객체를 나타내는 프로그래밍 언어 구조, 객체를 추가 또는 삭제하는 API, 키 및 종속 키를 추출하기 위한 코드 자동 생성 또는 객체 상태 관찰 API를 포함한다.
또한 일 실시예에서, 비동기식 객체 관리자 (706)의 프레임 워크는 다수의 스레드가 데이터 평면을 프로그래밍할 수 있도록 함으로써 최하위 계층에서 다수의 스레드 아키텍처를 가능하게 한다. 작업 분배는 다양한 방법으로 수행될 수 있다. 한 가지 방법은 각각의 스레드가 하나 이상의 데이터 평면 디바이스 (일반적으로 ASIC 칩)에 대한 데이터 평면 프로그래밍 케어를 관리하도록 하는 것이다. 이 방법은 생산자로부터의 작업이 하나 이상의 작업자 스레드에 걸쳐 고르게 분산되기 때문에 간단하다. 또한, 각각의 작업자 스레드는 생산자로부터 정보를 보유하고 할당된 디바이스를 프로그래밍하기 위한 비동기식 객체 관리자 (706) 프레임 워크의 인스턴스를 가진다.
또 다른 방법은 각각의 스레드가 동일한 디바이스에서 선택된 데이터 평면 테이블 세트에 대해 프로그래밍을 수행하게 하는 것을 포함한다. 이 방법은 더 복잡하며 작업자 스레드를 하나 이상의 피처(feature) 객체에 매핑해야 한다. 분배자 스레드는 피처 객체를 각각의 작업자 스레드에 분배할 책임이 있을 수 있다. 여기서, 객체 간의 관계는 스레드에 걸쳐 있을 수 있다. 비동기식 객체 관리자 (706)는 스레드에 걸친 객체 종속성을 추적하기 위해 확장된 성능을 요구할 수 있다. 동기화(synchronization)는 스레드 간 메시지 전달에 의해 달성된다. 비동기식 객체 관리자 (706)는 객체가 한 번만 삭제되고 그 객체에 의존하는 다른 스레드에 객체가 없음을 보장할 수 있다.
포워딩 정보 베이스 (FIB) (710)는 포워딩 테이블 (forwarding table)이라고도 할 수 있다. FIB는 입력 인터페이스가 객체를 포워딩해야 하는 적절한 출력 네트워크 인터페이스를 식별하도록 구성된다. FIB는 미디어 액세스 제어 (MAC) 어드레스를 포트에 매핑하는 동적 테이블이다.
라우팅 정보 베이스 (RIB) (712)는 대안적으로 라우팅 테이블로 지칭될 수 있다. RIB는 특정 네트워크 목적지에 대한 라우트, 일부 경우에는 라우트와 연관된 메트릭 (거리)을 나열하는 네트워킹 디바이스 (702)에 저장된 데이터 테이블이다. RIB (712)는 네트워킹 디바이스 (702)를 둘러싼 네트워크의 토폴로지에 대한 정보를 포함한다. 라우팅 테이블의 구성은 BGP (Border Gateway Protocol) (716)과 같은 라우팅 프로토콜의 주요 목표이다.
도 8은 디바이스(810)와 클라우드 네트워크(828)에 저장된 컨트롤러 로직(812)간 통신을 위한 시스템(800)의 개략도이다. 컨트롤러 로직(812)는 비동기식 객체 관리자의 동작을 위한 로직을 포함할 수 있다. 디바이스(810)는 본 출원에 논의된 스위치(106) 또는 라우터(162)일 수 있다. 노드(804)는 구성 에이전트(806) 및/또는 모니터링/텔레메트리 에이전트(808)을 포함한다. 디바이스(810)은 데이터 저장소(802)를 포함한다. 데이터 저장소 (802)는 노드 (804)와 함께 로컬에 저장될 수 있고, 디바이스 (810)에 저장될 수 있고 다수의 노드에 액세스 가능하게 될 수 있고, 클라우드 스토리지로 오프로드되거나 외부에 저장되어 다수의 디바이스 (802)에 액세스하게 할 수 있다. 구성 에이전트 (806)는 컨트롤러 로직 (812)의 형태로 명령을 수신한다. 컨트롤러 로직 (812)은 클라우드 네트워크의 클라우드 기반 스토리지에 저장되고 네트워크를 통해 디바이스 (810)에 액세스 가능하게 된다. 구성 에이전트 (806)는 모니터링/텔레메트리 에이전트 (808)에 명령을 제공한다. 모니터링/텔레메트리 에이전트 (808)는 데이터 저장소 (802)로부터 정보를 수신한다. 데이터 저장소 (802)는 도시된 바와 같이 애플리케이션 1, 애플리케이션 2, 내지 애플리케이션 N과 같은 다수의 애플리케이션에 대한 정보를 포함할 수 있다.
도 9는 다수의 노드 데이터 저장소의 아키텍처(900)의 개략도이다. 예시적인 아키텍처 (900)는 별개의 블록 노드 1 및 노드 N으로 도시된 2 개의 노드를 포함한다. 본 개시의 상이한 실시예 및 구현에 적절한 임의의 수의 노드가 있을 수 있다는 것을 이해해야 한다. 노드 1은 노드 N의 복제기 에이전트 (904)와의 통신을 제공하는 내부 패브릭 (926)과 통신하는 복사기 에이전트(duplicator agent) (904)를 포함한다. 노드 1의 구성 에이전트 (906)는 데이터 저장소 (902)에 대한 컨트롤러 로직 (912)을 포함하는 클라우드 (928) 네트워크와 통신한다. 각각의 노드는 데이터 저장소 (902)의 사본을 포함한다. 데이터 저장소 (902)의 정보는 애플리케이션 1, 애플리케이션 2 내지 애플리케이션 N과 같은 다수의 애플리케이션 에 의해 액세스되고 사용될 수 있다. 노드 N의 모니터링 및 텔레메트리 에이전트 (908)는 데이터 저장소 (902) 및 클라우드 (928) 네트워크와 통신한다. 노드 1의 구성 에이전트 (906)는 클라우드 (928) 네트워크를 통해 노드 N의 모니터링 및 텔레메트리 에이전트 (908)와 통신할 수 있다.
도 10은 네트워킹 디바이스를 이용하여 송신될 데이터를 비동기식으로 수신하고 재정렬하기 위한 방법 (1000)의 개략적인 블록도이다. 방법 (1000)은 본 출원에서 논의된 비동기식 객체 관리자 (706) 또는 임의의 적합한 컴퓨팅 디바이스에 의해 수행될 수 있다.
방법 (1000)이 시작되고 컴퓨팅 디바이스가 (1002)에서 하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신한다. 객체는 예를 들어, 라우트, 다음 홉, 동일 비용 다수의 경로 그룹, 인터페이스, ACL, ACE, QoS 클래스, 서브 인터페이스, 가상 근거리 통신망 등을 포함할 수 있다. 방법 (1000)은 계속되고 컴퓨팅 디바이스는 (1004)에서 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별한다. 방법 (1000)은 계속되고 컴퓨팅 디바이스는 하나 이상의 종속성에 따라 복수의 객체를 (1006)에서 재정렬한다. 방법 (1000)은 계속되고 컴퓨팅 디바이스는 (1008)에서 하나 이상의 종속성이 해결되었는지 여부를 결정한다. 방법 (1000)은 하나 이상의 종속성이 해결된 것으로 결정한 것에 응답하여, (1010)에서 애플리케이션을 다시 호출하고 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 단계를 포함한다.
도 11은 네트워킹 디바이스의 동작을 개선하기 위한 방법 (1100)의 개략적인 블록도이다. 방법 (1000)은 본 출원에서 논의된 비동기식 객체 관리자 (706) 또는 임의의 적합한 컴퓨팅 디바이스에 의해 수행될 수 있다.
방법 (1100)이 시작되고 컴퓨팅 디바이스가 (1102)에서 네트워킹 디바이스에 알려진 복수의 라우트에 대한 상태를 저장한다. 방법 (1100)은 (1104)에서 제 1 라우트가 오프라인이라는 표시를 수신하는 단계를 포함한다. 방법 (1100)은 계속되고 컴퓨팅 디바이스는 (1106)에서 제 1 라우트와 연관된 제 1 인터페이즈 링크(interphase link)를 식별한다. 방법 (1100)은 계속되고 컴퓨팅 디바이스는 (1108)에서 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별한다. 이 식별은 두 위치 간의 최상의 경로를 결정하기 위해 BGP (Border Gateway Protocol) 알고리즘을 수행함으로써 수행될 수 있다. 방법 (1100)은 계속되고 컴퓨팅 디바이스는 (1110)에서 네트워킹 디바이스의 라우팅 칩 하드웨어에 제 1 라우트가 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공한다.
이제 도 12를 참조하여, 예시적인 컴퓨팅 디바이스 (1200)의 블록도가 도시되어 있다. 컴퓨팅 디바이스 (1200)는 본 출원에서 논의된 다양한 절차를 수행하기 위해 사용될 수 있다. 일 실시예에서, 컴퓨팅 디바이스 (1200)는 비동기식 객체 관리자의 기능을 수행하도록 기능할 수 있고 하나 이상의 애플리케이션 프로그램을 수행할 수 있다. 컴퓨팅 디바이스 (1200)는 데스크톱 컴퓨터, 인-대시(in-dash) 컴퓨터, 차량 제어 시스템, 노트북 컴퓨터, 서버 컴퓨터, 핸드 헬드 컴퓨터, 태블릿 컴퓨터 등과 같은 다양한 컴퓨팅 디바이스 중 임의의 것일 수 있다.
컴퓨팅 디바이스 (1200)는 하나 이상의 프로세서(들) (1202), 하나 이상의 메모리 디바이스(들) (1204), 하나 이상의 인터페이스(들) (1206), 하나 이상의 대용량 스토리지 디바이스(들) (1208), 하나 이상의 입력/출력 (I/O) 디바이스(들) (1202) 및 디스플레이 디바이스 (1230)를 포함하고 이들 모두는 버스 (1212)에 결합된다. 프로세서(들) (1202)는 메모리 디바이스(들) (1204) 및/또는 대용량 스토리지 디바이스(들) (1208)에 저장된 명령을 실행하는 하나 이상의 프로세서 또는 컨트롤러를 포함한다. 프로세서(들) (1202)는 또한 캐시 메모리와 같은 다양한 유형의 컴퓨터 판독 가능 매체를 포함할 수 있다.
메모리 디바이스(들) (1204)는 휘발성 메모리 (예를 들어, 랜덤 액세스 메모리 (RAM) (1214)) 및/또는 비 휘발성 메모리 (예를 들어, 판독 전용 메모리 (ROM) (1216))와 같은 다양한 컴퓨터 판독 가능 매체를 포함한다. 메모리 디바이스(들) (1204)는 또한 플래시 메모리와 같은 재기록 가능한 ROM을 포함할 수 있다.
대용량 스토리지 디바이스(들) (1208)는 자기 테이프, 자기 디스크, 광 디스크, 솔리드 스테이트 메모리 (예를 들어, 플래시 메모리) 등과 같은 다양한 컴퓨터 판독 가능 매체를 포함한다. 도 12에 도시된 바와 같이, 특정 대용량 스토리지 디바이스는 하드 디스크 드라이브 (1224)이다. 다양한 컴퓨터 판독 가능 매체로부터 판독 및/또는 기록을 가능하게 하기 위해 다양한 드라이브가 대용량 스토리지 디바이스(들) (1208)에 포함될 수도 있다. 대용량 스토리지 디바이스(들) (1208)는 착탈 가능한 매체 (1226) 및/또는 착탈 불가능한 매체를 포함한다.
입력/출력 (I/O) 디바이스(들) (1202)는 데이터 및/또는 다른 정보가 컴퓨팅 디바이스 (1200)에 입력되거나 그로부터 검색될 수 있게 하는 다양한 디바이스를 포함한다. 예시적인 I/O 디바이스(들) (1202)는 커서 제어 디바이스, 키보드, 키패드, 마이크, 모니터 또는 다른 디스플레이 디바이스, 스피커, 프린터, 네트워크 인터페이스 카드, 모뎀 등을 포함한다.
디스플레이 디바이스 (1230)는 컴퓨팅 디바이스 (1200)의 한 명 이상의 사용자에게 정보를 디스플레이할 수 있는 임의의 유형의 디바이스를 포함한다. 디스플레이 디바이스 (1230)의 예는 모니터, 디스플레이 단말, 비디오 프로젝션 디바이스 등을 포함한다.
인터페이스(들) (1206)는 컴퓨팅 디바이스 (1200)가 다른 시스템, 디바이스 또는 컴퓨팅 환경과 상호 작용할 수 있도록 하는 다양한 인터페이스를 포함한다. 예시적인 인터페이스(들) (1206)는 근거리 통신망 (LAN), 광역 통신망 (WAN), 무선 네트워크 및 인터넷에 대한 인터페이스와 같은 임의의 수의 상이한 네트워크 인터페이스 (1220)를 포함할 수 있다. 다른 인터페이스(들)는 사용자 인터페이스 (1218) 및 주변 디바이스 인터페이스 (1222)를 포함한다. 인터페이스(들) (1206)는 또한 하나 이상의 사용자 인터페이스 엘리먼트(1218)를 포함할 수 있다. 인터페이스(들) (1206)는 또한 프린터용 인터페이스, 포인팅 디바이스 (마우스, 트랙 패드 또는 이 분야의 통상의 기술자에게 현재 알려져 있거나 나중에 발견되는 임의의 적절한 사용자 인터페이스), 키보드 등과 같은 하나 이상의 주변 인터페이스를 포함할 수 있다.
버스 (1212)는 프로세서(들) (1202), 메모리 디바이스(들) (1204), 인터페이스(들) (1206), 대용량 스토리지 디바이스(들) (1208) 및 I/O 디바이스(들) (1202)가 서로 뿐만 아니라 버스 (1212)에 결합된 다른 디바이스 또는 컴포넌트와 서로 통신할 수 있게 한다. 버스 (1212)는 시스템 버스, PCI 버스, IEEE 버스, USB 버스 등과 같은 여러 유형의 버스 구조 중 하나 이상을 나타낸다.
설명을 위해, 프로그램 및 기타 실행 가능한 프로그램 컴포넌트는 본 명세서에서 별개의 블록으로 도시되어 있지만, 이러한 프로그램 및 컴포넌트는 컴퓨팅 디바이스 (1200)의 서로 다른 저장 컴포넌트에 여러 번 상주할 수 있고 프로세서(들)(1202)에 의해 실행되는 것으로 이해된다. 대안으로, 본 출원에 설명된 시스템 및 절차는 하드웨어 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 예를 들어, 하나 이상의 주문형 집적 회로 (ASIC)는 본 출원에 설명된 시스템 및 절차 중 하나 이상을 수행하도록 프로그래밍될 수 있다.
전술한 설명은 예시 및 설명의 목적으로 제시되었다. 개시된 정확한 형태로 개시를 제한하거나 포괄하려는 의도는 아니다. 상기의 교시에 비추어 많은 수정 및 변형이 가능하다. 또한, 전술한 대안적인 구현들 중 임의의 것 또는 전부가 본 개시의 추가적인 하이브리드 구현들을 형성하기 위해 원하는 임의의 조합으로 사용될 수 있다는 것을 유의해야 한다.
또한, 본 개시의 특정 구현이 설명되고 예시되었지만, 본 개시는 그렇게 설명되고 예시된 부분의 특정 형태 또는 배열로 제한되지 않는다. 본 개시의 범위는 본 출원에 첨부된 청구 범위에 의해 정의되며, 그리고 (있는 경우) 상이한 출원에서 제출된 미래의 청구 범위 및 그 등가물에 의해 정의되어야 한다.
예들
이하는 예들은 추가 실시예들에 관한 것이다.
예 1은 시스템이다. 상기 시스템은 라우팅 칩 하드웨어와 상기 라우팅 칩 하드웨어와 통신하는 비동기식 객체 관리자를 포함한다. 비동기식 객체 관리자는 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령을 실행하도록 구성될 수 있다. 명령은 하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신하는 것을 포함한다. 명령은 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별하는 것을 포함한다. 명령은 하나 이상의 종속성에 따라 복수의 객체를 재정렬하는 것을 포함한다. 명령은 하나 이상의 종속성이 해결되었는지 여부를 결정하는 것을 포함한다. 명령은 하나 이상의 종속성이 해결되었다는 결정에 응답하여 애플리케이션을 다시 호출하고 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 것을 포함한다.
예 2는 예 1의 시스템으로서, 비동기식 객체 관리자는 상태 머신을 포함한다.
예 3은 예 1-2 중 어느 하나의 시스템으로서, 비동기식 객체 관리자는 네트워킹 디바이스의 동작을 관리하기 위한 소프트웨어 스택의 최하위 계층이다.
예 4는 예 1-3 중 어느 하나의 시스템으로서, 하나 이상의 생산자는 애플리케이션, 프로세스, 스레드(thread) 또는 기능 중 하나 이상을 포함한다.
예 5는 예 1-4 중 어느 하나의 시스템으로서, 명령은 제 1 라우트(route)가 제 1 인터페이즈 링크(interphase link)를 통해 처리될 필요가 있음을 나타내는 메시지를 상기 라우팅 칩 하드웨어에 제공하는 것을 더 포함한다.
예 6은 예 1-5 중 어느 하나의 시스템으로서, 상기 비동기식 객체 관리자 및 상기 라우팅 칩 하드웨어와 통신하는 DPAL (Data Plan Adaptation Layer)을 더 포함하고, 상기 비동기식 객체 관리자에 대한 명령은 메시지가 제 1 위치에서 최종 목적지로 송신될 라우트를 생성하기 위해 상기 DPAL로부터 메시지를 수신하는 것; 상기 메시지를 위해 상기 라우트를 생성하는 것; 및 상기 DPAL에 라우트를 제공하는 것을 더 포함한다.
예 7은 예 1-6 중 어느 하나의 시스템으로서, 명령은 비동기식 객체 관리자에게 알려진 복수의 라우트에 대한 상태를 저장하는 것; 제 1 라우트가 오프라인이라는 표시를 수신하는 것; 상기 제 1 라우트와 연관된 제 1 인터페이즈 링크를 식별하는 것; 상기 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별하는 것; 및 상기 라우팅 칩 하드웨어에 상기 제 1 라우트가 상기 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공하는 것을 더 포함한다.
예 8은 예 1-7 중 어느 하나의 시스템으로서, 상기 비동기식 객체 관리자는 메시지를 다음 홉의 제 2 생산자에게 직접 제공하는 대신 상기 비동기식 객체 관리자에게 메시지를 제공하는 제 1 생산자를 위한 수단을 제공한다.
예 9는 예 1-8 중 어느 하나의 시스템으로서, 상기 비동기식 객체 관리자는 스위치 또는 라우터에서 동작하도록 호환된다.
예 10은 예 1-9 중 어느 하나의 시스템으로서, 상기 명령은 하나 이상의 생산자로부터 복수의 객체에 대한 결손 시퀀스(deletion sequence)를 수신하는 것; 및 하나 이상의 종속성에 따라 결손 시퀀스를 재정렬하는 것을 더 포함한다.
예 11은 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령을 실행하도록 구성 가능한 하나 이상의 프로세서이다. 명령은 하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신하는 것을 포함한다. 명령은 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별하는 것을 포함한다. 명령은 하나 이상의 종속성에 따라 복수의 객체를 재정렬하는 것을 포함한다. 명령은 하나 이상의 종속성이 해결되었는지 여부를 결정하는 것을 포함한다. 명령은 하나 이상의 종속성이 해결되었다고 결정한 것에 응답하여 애플리케이션을 다시 호출하고 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 것을 포함한다.
예 12는 예 11의 하나 이상의 프로세서로서, 상기 명령은 제 1 라우트가 제 1 인터페이즈 링크를 통해 처리될 필요가 있음을 나타내는 메시지를 라우팅 칩 하드웨어에 제공하는 것을 더 포함한다.
예 13은 예 11-12 중 어느 하나의 하나 이상의 프로세서로서, 상기 명령은 비동기식 객체 관리자에 알려진 복수의 라우트에 대한 상태를 저장하는 것; 제 1 라우트가 오프라인이라는 표시를 수신하는 것; 상기 제 1 라우트와 연관된 제 1 인터페이즈 링크를 식별하는 것; 상기 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별하는 것; 및 상기 라우팅 칩 하드웨어에 상기 제 1 라우트가 상기 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공하는 것을 더 포함한다.
예 14는 예 11-13 중 어느 하나의 하나 이상의 프로세서로서, 상기 명령은 메시지를 다음 홉의 제 2 생산자에게 직접 제공하는 대신 비동기식 객체 관리자에게 메시지를 제공하는 제 1 생산자를 위한 수단을 제공하는 것을 더 포함한다.
예 15는 예 11-14 중 어느 하나의 하나 이상의 프로세서로서, 하나 이상의 프로세서에 대한 명령은 스위치 또는 라우터에서 동작하도록 호환된다.
예 16은 방법이다. 방법은 하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신하는 단계를 포함한다. 방법은 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별하는 단계를 포함한다. 방법은 하나 이상의 종속성에 따라 복수의 객체를 재정렬하는 단계를 포함한다. 방법은 하나 이상의 종속성이 해결되었는지 여부를 결정하는 단계를 포함한다. 방법은 하나 이상의 종속성이 해결된 것으로 결정한 것에 응답하여, 애플리케이션을 다시 호출하고 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 단계를 포함한다.
예 17은 예 16의 방법으로서, 제 1 라우트가 제 1 인터페이즈 링크를 통해 처리될 필요가 있음을 나타내는 메시지를 라우팅 칩 하드웨어에 제공하는 단계를 더 포함한다.
예 18은 예 16-17 중 어느 하나의 방법으로서, 상기 비동기식 객체 관리자는 상태 머신을 포함하고 네트워킹 디바이스의 동작을 관리하기 위한 소프트웨어 스택의 최하위 계층에 위치된다.
예 19는 예 16-18 중 어느 하나의 방법으로서, 비동기식 객체 관리자에게 알려진 복수의 라우트에 대한 상태를 저장하는 단계; 상기 제 1 라우트가 오프라인이라는 표시를 수신하는 단계; 상기 제 1 라우트와 연관된 제 1 인터페이즈 링크를 식별하는 단계; 상기 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별하는 단계; 및 상기 라우팅 칩 하드웨어에 상기 제 1 라우트가 상기 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공하는 단계를 더 포함한다.
예 20은 예 16-19 중 어느 하나의 방법으로서, 하나 이상의 생산자로부터 복수의 객체에 대한 결손 시퀀스를 수신하는 단계; 및 하나 이상의 종속성에 따라 결손 시퀀스를 재정렬하는 단계를 더 포함한다.
전술한 배열, 예 및 실시예의 임의의 특징은 임의의 개시된 배열, 예 및 실시예로부터 취해진 특징의 조합을 포함하는 단일 실시예로 결합될 수 있음을 이해해야 한다.
본 명세서에 개시된 다양한 특징은 당업계에서 상당한 장점 및 개선을 제공한다는 것을 이해할 것이다. 이하의 청구 범위는 이러한 특징 중 일부의 예시이다.
전술한 개시의 상세한 설명에서, 개시의 다양한 특징은 개시를 합리화할 목적으로 단일 실시예에서 함께 그룹화된다. 이 개시 방법은 청구된 개시가 각각의 청구 범위에서 명시적으로 언급된 것보다 더 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 창의적인 양태는 하나의 전술한 개시된 실시예의 모든 특징보다 적다.
전술한 배열은 본 개시의 원리의 적용을 단지 예시하는 것임을 이해해야 한다. 본 개시의 사상 및 범위를 벗어나지 않고 당업자에 의해 다수의 수정 및 대안적인 배열이 고안될 수 있으며, 첨부된 청구 범위는 그러한 수정 및 배열을 포함하도록 의도된다.
따라서, 본 개시가 도면에 도시되고 상기에서 구체적이고 상세하게 설명되었지만, 본 기술 분야의 통상의 기술자에게는 크기, 재료, 형상, 형태, 기능 및 작동 방식, 조립 및 사용의 변화를 포함하지만 이에 제한되지 않는 다양한 수정이 본 출원에 개시된 원리와 개념을 벗어나지 않고 이루어질 수 있다는 것이 명백할 것이다.
또한, 적절한 경우 본 출원에 설명된 기능은 하드웨어, 소프트웨어, 펌웨어, 디지털 컴포넌트 또는 아날로그 컴포넌트 중 하나 이상에서 수행될 수 있다. 예를 들어, 하나 이상의 ASIC (application specific integrated circuit) 또는 FPGA (field programmable gate array)는 본 출원에 설명된 시스템 및 절차 중 하나 이상을 수행하도록 프로그래밍될 수 있다. 특정 용어가 특정 시스템 컴포넌트를 나타내기 위해 이하의 설명 및 청구 범위 전체에서 사용된다. 당업자가 이해하는 바와 같이, 컴포넌트는 다른 이름으로 지칭될 수 있다. 본 문서는 이름이 다르지만 기능하지 않는 컴포넌트를 구별하기 위한 것이 아니다.
전술한 설명은 예시 및 설명의 목적으로 제시되었다. 개시된 정확한 형태로 개시를 제한하거나 포괄적 하려는 의도는 아니다. 상기의 교시에 비추어 많은 수정 및 변형이 가능하다. 또한, 임의의 또는 모든 전술한 대체 구현이 본 개시의 추가 하이브리드 구현을 형성하기 위해 원하는 임의의 조합으로 사용될 수 있다는 점에 유의해야 한다.
또한, 본 개시의 특정 구현이 설명되고 예시되었지만, 본 개시는 이와 같이 설명되고 예시된 부분의 특정 형태 또는 배열로 제한되지 않는다. 본 개시의 범위는 본 출원에 첨부된 청구 범위, 그리고 다른 출원에서 제출된 미래의 청구 범위, 및 그 등가물에 의해 정의되어야 한다.

Claims (20)

  1. 시스템에 있어서,
    라우팅 칩 하드웨어(routing chip hardware); 및
    상기 라우팅 칩 하드웨어와 통신하고, 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령을 실행하도록 구성 가능한 비동기식 객체 관리자(asynchronous object manager)를 포함하고, 상기 명령은,
    하나 이상의 생산자(producer)로부터 복수의 객체를 비동기식으로 수신하는 것;
    상기 복수의 객체 중 둘 이상 간의 하나 이상의 종속성(dependency)을 식별하는 것;
    상기 하나 이상의 종속성에 따라 상기 복수의 객체를 재정렬하는 것;
    상기 하나 이상의 종속성이 해결되었는지 여부를 결정하는 것; 및
    상기 하나 이상의 종속성이 해결되었다는 결정에 응답하여, 애플리케이션을 다시 호출하고 상기 복수의 객체 중 하나 이상을 상기 애플리케이션에 제공하는 것을 포함하는, 시스템.
  2. 제 1 항에 있어서, 상기 비동기식 객체 관리자는 상태 머신(state machine)을 포함하는, 시스템.
  3. 제 1 항에 있어서, 상기 비동기식 객체 관리자는 네트워킹 디바이스의 동작을 관리하기 위한 소프트웨어 스택의 최하위 계층인, 시스템.
  4. 제 1 항에 있어서, 상기 하나 이상의 생산자는 애플리케이션, 프로세스, 스레드(thread) 또는 기능 중 하나 이상을 포함하는, 시스템.
  5. 제 1 항에 있어서, 상기 명령은 제 1 라우트(route)가 제 1 인터페이즈 링크(interphase link)를 통해 처리될 필요가 있음을 나타내는 메시지를 상기 라우팅 칩 하드웨어에 제공하는 것을 더 포함하는, 시스템.
  6. 제 1 항에 있어서, 상기 비동기식 객체 관리자 및 상기 라우팅 칩 하드웨어와 통신하는 DPAL (Data Plan Adaptation Layer)을 더 포함하고, 상기 비동기식 객체 관리자에 대한 명령은,
    메시지가 제 1 위치에서 최종 목적지로 송신될 라우트를 생성하기 위해 상기 DPAL로부터 메시지를 수신하는 것;
    상기 메시지를 위해 상기 라우트를 생성하는 것; 및
    상기 DPAL에 라우트를 제공하는 것을 더 포함하는, 시스템.
  7. 제 1 항에 있어서, 상기 명령은,
    상기 비동기식 객체 관리자에게 알려진 복수의 라우트에 대한 상태를 저장하는 것;
    제 1 라우트가 오프라인(offline)이라는 표시를 수신하는 것;
    상기 제 1 라우트와 연관된 제 1 인터페이즈 링크를 식별하는 것;
    상기 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별하는 것; 및
    상기 라우팅 칩 하드웨어에 상기 제 1 라우트가 상기 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공하는 것을 더 포함하는, 시스템.
  8. 제 1 항에 있어서, 상기 비동기식 객체 관리자는 메시지를 다음 홉의 제 2 생산자에게 직접 제공하는 대신 상기 비동기식 객체 관리자에게 메시지를 제공하는 제 1 생산자를 위한 수단을 제공하는, 시스템.
  9. 제 1 항에 있어서, 상기 비동기식 객체 관리자는 스위치 또는 라우터에서 동작하도록 호환되는, 시스템.
  10. 제 1 항에 있어서, 상기 명령은,
    상기 하나 이상의 생산자로부터 상기 복수의 객체에 대한 결손 시퀀스(deletion sequence)를 수신하는 것; 및
    상기 하나 이상의 종속성에 따라 상기 결손 시퀀스를 재정렬하는 것을 더 포함하는, 시스템.
  11. 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 명령을 실행하도록 구성 가능한 하나 이상의 프로세서에 있어서, 상기 명령은,
    하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신하는 것;
    상기 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별하는 것;
    상기 하나 이상의 종속성에 따라 복수의 객체를 재정렬하는 것;
    상기 하나 이상의 종속성이 해결되었는지 여부를 결정하는 것; 및
    상기 하나 이상의 종속성이 해결되었다고 결정한 것에 응답하여, 애플리케이션을 다시 호출하고 상기 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 것을 더 포함하는, 하나 이상의 프로세서.
  12. 제 11 항에 있어서, 상기 명령은 제 1 라우트가 제 1 인터페이즈 링크를 통해 처리될 필요가 있음을 나타내는 메시지를 상기 라우팅 칩 하드웨어에 제공하는 것을 더 포함하는, 하나 이상의 프로세서.
  13. 제 11 항에 있어서, 상기 명령은,
    상기 비동기식 객체 관리자에 알려진 상기 복수의 라우트에 대한 상태를 저장하는 것;
    제 1 라우트가 오프라인이라는 표시를 수신하는 것;
    상기 제 1 라우트와 연관된 제 1 인터페이즈 링크를 식별하는 것;
    상기 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별하는 것; 및
    상기 라우팅 칩 하드웨어에 상기 제 1 라우트가 상기 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공하는 것을 더 포함하는, 하나 이상의 프로세서.
  14. 제 11 항에 있어서, 상기 명령은 메시지를 다음 홉의 제 2 생산자에게 직접 제공하는 대신 상기 비동기식 객체 관리자에게 메시지를 제공하는 제 1 생산자를 위한 수단을 제공하는 것을 더 포함하는, 하나 이상의 프로세서.
  15. 제 11 항에 있어서, 상기 하나 이상의 프로세서에 대한 명령은 스위치 또는 라우터에서 동작하도록 호환되는, 하나 이상의 프로세서.
  16. 네트워크 환경의 데이터 스토리지를 오프로딩하기 위한 방법에 있어서, 상기 방법은,
    하나 이상의 생산자로부터 복수의 객체를 비동기식으로 수신하는 단계;
    상기 복수의 객체 중 둘 이상 간의 하나 이상의 종속성을 식별하는 단계;
    상기 하나 이상의 종속성에 따라 상기 복수의 객체를 재정렬하는 단계;
    상기 하나 이상의 종속성이 해결되었는지 여부를 결정하는 단계;
    상기 하나 이상의 종속성이 해결되었다고 결정한 것에 응답하여, 애플리케이션을 다시 호출하고 상기 복수의 객체 중 하나 이상을 애플리케이션에 제공하는 단계를 포함하는, 방법.
  17. 제 16 항에 있어서, 제 1 라우트가 제 1 인터페이즈 링크를 통해 처리될 필요가 있음을 나타내는 메시지를 상기 라우팅 칩 하드웨어에 제공하는 단계를 더 포함하는, 방법.
  18. 제 16 항에 있어서, 상기 비동기식 객체 관리자는 상태 머신을 포함하고, 네트워킹 디바이스의 동작을 관리하기 위한 소프트웨어 스택의 최하위 계층에 위치되는, 방법.
  19. 제 16 항에 있어서,
    상기 비동기식 객체 관리자에게 알려진 복수의 라우트에 대한 상태를 저장하는 단계;
    상기 제 1 라우트가 오프라인이라는 표시를 수신하는 단계;
    상기 제 1 라우트와 연관된 제 1 인터페이즈 링크를 식별하는 단계;
    상기 제 1 라우트와 연관될 대체 인터페이즈 링크를 식별하는 단계; 및
    상기 라우팅 칩 하드웨어에 상기 제 1 라우트가 상기 제 1 인터페이즈 링크보다는 대체 인터페이즈 링크로 처리되어야 한다는 표시를 제공하는 단계를 더 포함하는, 방법.
  20. 제 16 항에 있어서,
    상기 하나 이상의 생산자로부터 상기 복수의 객체에 대한 결손 시퀀스(deletion sequence)를 수신하는 단계; 및
    상기 하나 이상의 종속성에 따라 상기 결손 시퀀스를 재정렬하는 단계를 더 포함하는, 방법.
KR1020217008637A 2018-08-23 2019-08-23 네트워크 라우팅 환경에서 비동기식 객체 관리자 KR20210064217A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862722003P 2018-08-23 2018-08-23
US62/722,003 2018-08-23
PCT/US2019/047844 WO2020041666A1 (en) 2018-08-23 2019-08-23 Asynchronous object manager in a network routing environment

Publications (1)

Publication Number Publication Date
KR20210064217A true KR20210064217A (ko) 2021-06-02

Family

ID=69583257

Family Applications (7)

Application Number Title Priority Date Filing Date
KR1020217008637A KR20210064217A (ko) 2018-08-23 2019-08-23 네트워크 라우팅 환경에서 비동기식 객체 관리자
KR1020217008635A KR20210059727A (ko) 2018-08-23 2019-08-23 네트워크 라우팅 환경에서 단일 노드 및 다수 노드 데이터 저장소 아키텍처
KR1020217008634A KR20210063343A (ko) 2018-08-23 2019-08-23 네트워크 컴퓨팅 환경에서 라우팅 최적화
KR1020217008456A KR20210059724A (ko) 2018-08-23 2019-08-23 네트워크 컴퓨팅 환경에서 루프 충돌 회피
KR1020217008455A KR20210060484A (ko) 2018-08-23 2019-08-23 결정론적 호스트 학습 및 로컬화된 통합 라우팅 및 브리징을 사용하는 호스트 라우팅 오버레이
KR1020217008454A KR20210060483A (ko) 2018-08-23 2019-08-23 네트워크 컴퓨팅 환경에서 제 1 홉 게이트웨이 이중화
KR1020217008636A KR20210059728A (ko) 2018-08-23 2019-08-23 네트워크 라우팅 환경의 독립 데이터 저장소

Family Applications After (6)

Application Number Title Priority Date Filing Date
KR1020217008635A KR20210059727A (ko) 2018-08-23 2019-08-23 네트워크 라우팅 환경에서 단일 노드 및 다수 노드 데이터 저장소 아키텍처
KR1020217008634A KR20210063343A (ko) 2018-08-23 2019-08-23 네트워크 컴퓨팅 환경에서 라우팅 최적화
KR1020217008456A KR20210059724A (ko) 2018-08-23 2019-08-23 네트워크 컴퓨팅 환경에서 루프 충돌 회피
KR1020217008455A KR20210060484A (ko) 2018-08-23 2019-08-23 결정론적 호스트 학습 및 로컬화된 통합 라우팅 및 브리징을 사용하는 호스트 라우팅 오버레이
KR1020217008454A KR20210060483A (ko) 2018-08-23 2019-08-23 네트워크 컴퓨팅 환경에서 제 1 홉 게이트웨이 이중화
KR1020217008636A KR20210059728A (ko) 2018-08-23 2019-08-23 네트워크 라우팅 환경의 독립 데이터 저장소

Country Status (8)

Country Link
US (17) US11212215B2 (ko)
EP (7) EP3841487A4 (ko)
JP (7) JP7448537B2 (ko)
KR (7) KR20210064217A (ko)
CN (8) CN112840625B (ko)
CA (7) CA3109950A1 (ko)
TW (8) TWI819072B (ko)
WO (7) WO2020041729A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10951463B2 (en) * 2019-03-27 2021-03-16 Cisco Technology, Inc. BGP aggregation in Clos networks
US11799722B2 (en) 2019-03-28 2023-10-24 Harmonic, Inc. Support for a scalable and highly available (HA) service platform
US11368553B1 (en) * 2019-03-28 2022-06-21 Harmonic, Inc. Support for a scalable and high availability (HA) virtual cable modem termination system (VCMTS)
US11656992B2 (en) 2019-05-03 2023-05-23 Western Digital Technologies, Inc. Distributed cache with in-network prefetch
US11240355B2 (en) 2019-05-17 2022-02-01 Arista Networks, Inc. Platform agnostic abstraction for forwarding equivalence classes with hierarchy
US11228459B2 (en) * 2019-10-25 2022-01-18 Dell Products L.P. Anycast address configuration for extended local area networks
US11409711B2 (en) 2019-12-03 2022-08-09 Western Digital Technologies, Inc. Barriers for dependent operations among sharded data stores
US11567899B2 (en) * 2019-12-03 2023-01-31 Western Digital Technologies, Inc. Managing dependent delete operations among data stores
US11477643B2 (en) * 2020-02-12 2022-10-18 Charter Communications Operating, Llc Systems and methods for access point device recovery using mobile devices
US11757771B2 (en) * 2020-05-25 2023-09-12 Airbus Defence And Space Sas Method for routing packets in a communication network having a variable and predictable topology
EP4152702A4 (en) * 2020-06-08 2023-11-15 Huawei Technologies Co., Ltd. METHOD, APPARATUS AND APPARATUS FOR PROCESSING TAX MESSAGES IN A COLLECTIVE COMMUNICATIONS SYSTEM AND SYSTEM
US11924083B2 (en) 2020-06-16 2024-03-05 Cisco Technology, Inc. Multiple network interfacing
CN113810275B (zh) * 2020-06-17 2023-08-04 华为技术有限公司 发送报文的方法及设备
CN111800327B (zh) * 2020-06-19 2021-11-26 浪潮思科网络科技有限公司 Vxlan网络的流量分担方法、设备
US11765250B2 (en) * 2020-06-26 2023-09-19 Western Digital Technologies, Inc. Devices and methods for managing network traffic for a distributed cache
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
US11323392B1 (en) * 2020-07-17 2022-05-03 Juniper Networks, Inc. Managing split-brain scenario in multi-homed environment
US11456941B2 (en) * 2020-07-24 2022-09-27 Nvidia Corporation Extensible network traffic engineering platform for increasing network resiliency in cloud applications
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
US11575594B2 (en) * 2020-09-10 2023-02-07 Mellanox Technologies, Ltd. Deadlock-free rerouting for resolving local link failures using detour paths
CN112187636B (zh) * 2020-09-22 2022-08-16 锐捷网络股份有限公司 Ecmp路由的存储方法及装置
US11418433B2 (en) * 2020-10-13 2022-08-16 Realtek Singapore Private Limited Control method for spanning tree protocol of easymesh network and related system
US11411911B2 (en) 2020-10-26 2022-08-09 Mellanox Technologies, Ltd. Routing across multiple subnetworks using address mapping
US11290330B1 (en) 2020-10-30 2022-03-29 Nutanix, Inc. Reconciliation of the edge state in a telemetry platform
US11700178B2 (en) 2020-10-30 2023-07-11 Nutanix, Inc. System and method for managing clusters in an edge network
US11374807B2 (en) 2020-10-30 2022-06-28 Nutanix, Inc. Handling dynamic command execution in hybrid cloud environments
CN114697250A (zh) * 2020-12-31 2022-07-01 华为技术有限公司 一种路由方法及相关设备
US11431619B2 (en) 2021-01-27 2022-08-30 Cisco Technology, Inc. Hierarchical ECMP control plane for dense topologies
US11716277B2 (en) 2021-02-11 2023-08-01 Cisco Technology, Inc. Integrated routing and bridging route reduction in ethernet virtual private network
CN113364661B (zh) * 2021-06-11 2022-06-03 中国电信股份有限公司 综合组网方法、装置、电子设备及计算机可读介质
US11575541B1 (en) * 2021-06-15 2023-02-07 Juniper Networks, Inc. Mapping of virtual routing and forwarding (VRF) instances using ethernet virtual private network (EVPN) instances
US11870682B2 (en) 2021-06-22 2024-01-09 Mellanox Technologies, Ltd. Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies
US11700201B2 (en) * 2021-07-26 2023-07-11 Arista Networks, Inc. Mechanism to enforce consistent next hops in a multi-tier network
US11765103B2 (en) 2021-12-01 2023-09-19 Mellanox Technologies, Ltd. Large-scale network with high port utilization
TWI789169B (zh) * 2021-12-21 2023-01-01 大陸商達發科技(蘇州)有限公司 向量包處理轉發方法
CN114297109B (zh) * 2021-12-28 2024-05-24 中汽创智科技有限公司 一种基于订阅发布模式的数据处理方法、装置、电子设备及存储介质
US11765065B1 (en) 2022-03-23 2023-09-19 Nutanix, Inc. System and method for scalable telemetry
US11841856B2 (en) * 2022-03-24 2023-12-12 Visa International Service Association System, method, and computer program product for efficiently joining time-series data tables
US20230308389A1 (en) * 2022-03-24 2023-09-28 Cisco Technology, Inc. Inter-compatible forwarding modes in network fabric overlays
TWI802481B (zh) * 2022-08-04 2023-05-11 中華電信股份有限公司 配置路由器的任播標籤的電子裝置及方法
CN115396365B (zh) * 2022-10-26 2023-04-07 中国人民解放军军事科学院系统工程研究院 一种规模无关的快速路由收敛方法

Family Cites Families (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873076A (en) * 1995-09-15 1999-02-16 Infonautics Corporation Architecture for processing search queries, retrieving documents identified thereby, and method for using same
JPH10190733A (ja) 1996-12-25 1998-07-21 Hitachi Ltd Ipスイッチ、該ipスイッチに用いるインターフェース回路及びatmスイッチ、及びipスイッチネットワークシステム
WO1998023080A2 (en) * 1996-11-18 1998-05-28 Mci Worldcom, Inc. A communication system architecture
GB2345162A (en) * 1998-12-24 2000-06-28 Ibm Publish and subscribe data processing with distribution agents configured to support certain streams
JP2000305453A (ja) 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
US6879594B1 (en) 1999-06-07 2005-04-12 Nortel Networks Limited System and method for loop avoidance in multi-protocol label switching
US6434568B1 (en) * 1999-08-31 2002-08-13 Accenture Llp Information services patterns in a netcentric environment
US6842906B1 (en) * 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US7274869B1 (en) 1999-11-29 2007-09-25 Nokia Networks Oy System and method for providing destination-to-source protection switch setup in optical network topologies
FI109753B (fi) 2000-01-14 2002-09-30 Nokia Corp Tietoliikennejärjestelmä, jolla on parannettu vikasieto
US6681232B1 (en) * 2000-06-07 2004-01-20 Yipes Enterprise Services, Inc. Operations and provisioning systems for service level management in an extended-area data communications network
US20030014483A1 (en) * 2001-04-13 2003-01-16 Stevenson Daniel C. Dynamic networked content distribution
WO2002086712A1 (en) * 2001-04-20 2002-10-31 Egenera, Inc. Virtual networking system and method in a processing system
DE10127880A1 (de) 2001-06-11 2002-12-12 Philips Corp Intellectual Pty Dynamisches Netzwerk und Routing-Verfahren für ein dynamisches Netzwerk
US7333487B2 (en) * 2001-07-16 2008-02-19 International Business Machines Corporation Methods and apparatus for updating subsource addressing multicast routing records in a communications network
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
JP2003204332A (ja) 2002-01-07 2003-07-18 Canon Inc ネットワークデバイス管理システム及びその制御方法
US7162524B2 (en) * 2002-06-21 2007-01-09 International Business Machines Corporation Gapless delivery and durable subscriptions in a content-based publish/subscribe system
US7801857B2 (en) * 2003-12-19 2010-09-21 Solace Systems, Inc. Implicit routing in content based networks
US7593320B1 (en) 2004-04-30 2009-09-22 Marvell International, Ltd. Failover scheme for stackable network switches
GB0427798D0 (en) * 2004-12-18 2005-01-19 Ibm Publish/subscribe messaging system
JP2008527538A (ja) 2005-01-06 2008-07-24 テーベラ・インコーポレーテッド メッセージング・システム内のキャッシング・エンジン
US8064467B2 (en) 2005-02-04 2011-11-22 Level 3 Communications, Llc Systems and methods for network routing in a multiple backbone network architecture
GB0506059D0 (en) * 2005-03-24 2005-05-04 Ibm Methods and apparatus for switching between data streams
US7823170B2 (en) 2005-08-31 2010-10-26 Sap Ag Queued asynchronous remote function call dependency management
KR100694296B1 (ko) * 2005-11-08 2007-03-14 한국전자통신연구원 가상 인터페이스 기반의 2 계층 멀티캐스트 스위칭 및 3계층 멀티캐스트 라우팅 동시 제공 시스템 및 그 방법
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US7801912B2 (en) * 2005-12-29 2010-09-21 Amazon Technologies, Inc. Method and apparatus for a searchable data service
US20070168420A1 (en) * 2005-12-30 2007-07-19 Morris Robert P Method and apparatus for providing customized subscription data
CN101395592A (zh) * 2006-03-03 2009-03-25 美国唯美安视国际有限公司 基于电影工作室的网络分发系统与方法
US7945813B1 (en) * 2006-12-16 2011-05-17 United Services Automobile Association (Usaa) Automated delayed message redelivery
EP2109965B1 (en) 2007-02-02 2015-04-08 Groupe Des Ecoles Des Telecommunications (GET) Institut National Des Telecommunications (INT) Autonomic network node system
US8259720B2 (en) * 2007-02-02 2012-09-04 Cisco Technology, Inc. Triple-tier anycast addressing
US7693813B1 (en) * 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
WO2008144927A1 (en) 2007-06-01 2008-12-04 Nortel Networks Limited Distributed connection establishment and restoration
US7769888B2 (en) 2007-06-15 2010-08-03 Silver Spring Networks, Inc. Method and system for providing network and routing protocols for utility services
US20110004913A1 (en) * 2007-07-31 2011-01-06 Symbol Technologies, Inc. Architecture for seamless enforcement of security policies when roaming across ip subnets in ieee 802.11 wireless networks
JP4729119B2 (ja) 2007-10-25 2011-07-20 富士通株式会社 ラベルスイッチングネットワークにおける通信装置
KR20100107479A (ko) * 2008-01-02 2010-10-05 샌디스크 아이엘 엘티디 직접적인 사용자 액세스를 갖는 저장 장치
JP2009224866A (ja) * 2008-03-13 2009-10-01 Nec Corp スタック構成の障害検出装置、障害検出システム、障害検出方法及びプログラム
JP2009278261A (ja) * 2008-05-13 2009-11-26 Toshiba Corp 情報処理装置および通信制御方法
US8121032B2 (en) 2008-05-30 2012-02-21 Cisco Technology, Inc. Efficient convergence of grouped VPN prefixes
US8839387B2 (en) 2009-01-28 2014-09-16 Headwater Partners I Llc Roaming services network and overlay networks
US20100061366A1 (en) 2008-09-08 2010-03-11 Verizon Corporate Services Group Inc. Method and apparatus for link sharing among logical routers
US8756656B1 (en) * 2008-09-30 2014-06-17 Symantec Corporation Systems and methods for creating and synchronizing security metadata within synchronized-data networks
US8108908B2 (en) * 2008-10-22 2012-01-31 International Business Machines Corporation Security methodology to prevent user from compromising throughput in a highly threaded network on a chip processor
US20100128638A1 (en) * 2008-11-20 2010-05-27 Sap Ag Hierarchical shortest path first network routing protocol
US7856024B1 (en) * 2008-12-12 2010-12-21 Tellabs San Jose, Inc. Method and apparatus for integrating routing and bridging functions
US8166187B2 (en) * 2009-01-28 2012-04-24 Cisco Technology, Inc. Distributed IP gateway based on sharing a MAC address and IP address concurrently between a first network switching device and a second network switching device
US9165154B2 (en) 2009-02-16 2015-10-20 Microsoft Technology Licensing, Llc Trusted cloud computing and services framework
US9098562B2 (en) * 2009-03-30 2015-08-04 The Boeing Company Computer architectures using shared storage
EP2254046B1 (en) 2009-05-18 2014-07-30 Amadeus S.A.S. A method and system for managing the order of messages
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US9036504B1 (en) 2009-12-07 2015-05-19 Amazon Technologies, Inc. Using virtual networking devices and routing information to associate network addresses with computing nodes
CN102201964B (zh) * 2010-03-22 2014-02-05 杭州华三通信技术有限公司 一种实现快速路径切换的方法和装置
CN101848236A (zh) * 2010-05-06 2010-09-29 北京邮电大学 具有分布式网络架构的实时数据分发系统及其工作方法
US9253016B2 (en) * 2010-11-02 2016-02-02 International Business Machines Corporation Management of a data network of a computing environment
CN102137173B (zh) * 2010-12-27 2014-09-03 华为技术有限公司 路由信息发布方法、设备及虚拟专用网系统
JP5812612B2 (ja) 2011-01-19 2015-11-17 沖電気工業株式会社 通信制御装置及びプログラム、並びに、通信システム
US8988984B2 (en) * 2011-02-04 2015-03-24 Cisco Technology, Inc. Designated forwarder election for VPLS with BGP-based MAC learning
US8953590B1 (en) * 2011-03-23 2015-02-10 Juniper Networks, Inc. Layer two virtual private network having control plane address learning supporting multi-homed customer networks
US9270572B2 (en) 2011-05-02 2016-02-23 Brocade Communications Systems Inc. Layer-3 support in TRILL networks
US9100213B1 (en) * 2011-06-08 2015-08-04 Juniper Networks, Inc. Synchronizing VPLS gateway MAC addresses
US8060533B1 (en) * 2011-07-07 2011-11-15 Google Inc. Panel-based management of data objects from a plurality of data sources
US8804490B2 (en) 2011-07-29 2014-08-12 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
US9330154B2 (en) 2011-08-22 2016-05-03 Sybase, Inc. Multicast database replication
US8717888B2 (en) * 2011-10-18 2014-05-06 Cisco Technology, Inc. Optimizations for N-way gateway load balancing in fabric path switching networks
US9935781B2 (en) 2012-01-20 2018-04-03 Arris Enterprises Llc Managing a large network using a single point of configuration
US9485300B2 (en) * 2012-03-13 2016-11-01 Yahoo! Inc. Publish-subscribe platform for cloud file distribution
JP5873597B2 (ja) * 2012-03-27 2016-03-01 アルカテル−ルーセント 仮想ファブリックリンク障害復旧のためのシステムおよび方法
US9071541B2 (en) 2012-04-25 2015-06-30 Juniper Networks, Inc. Path weighted equal-cost multipath
US8755377B2 (en) * 2012-06-06 2014-06-17 Juniper Networks, Inc. Facilitating operation of one or more virtual networks
US9191139B1 (en) * 2012-06-12 2015-11-17 Google Inc. Systems and methods for reducing the computational resources for centralized control in a network
US8989049B2 (en) * 2012-06-15 2015-03-24 Cisco Technology, Inc. System and method for virtual portchannel load balancing in a trill network
US8855117B2 (en) 2012-08-08 2014-10-07 Cisco Technology, Inc. Scalable media access control protocol synchronization techniques for fabric extender based emulated switch deployments
TWI445356B (zh) * 2012-08-13 2014-07-11 Chunghwa Telecom Co Ltd 寬頻網路媒體封包最佳傳遞路徑選擇系統
US9331940B2 (en) * 2012-08-28 2016-05-03 Alcatel Lucent System and method providing distributed virtual routing and switching (DVRS)
US20140081685A1 (en) * 2012-09-17 2014-03-20 Salesforce.com. inc. Computer implemented methods and apparatus for universal task management
US9008095B2 (en) 2012-10-02 2015-04-14 Cisco Technology, Inc. System and method for hardware-based learning of internet protocol addresses in a network environment
US8948181B2 (en) * 2012-10-23 2015-02-03 Cisco Technology, Inc. System and method for optimizing next-hop table space in a dual-homed network environment
US9055000B1 (en) * 2012-12-17 2015-06-09 Juniper Networks, Inc. Distributed network subnet
US9348638B2 (en) * 2013-01-17 2016-05-24 Xockets, Inc. Offload processor modules for connection to system memory, and corresponding methods and systems
US9594718B2 (en) 2013-01-24 2017-03-14 Qualcomm Innovation Center, Inc. Hardware accelerated communications over a chip-to-chip interface
KR20140101607A (ko) * 2013-02-12 2014-08-20 삼성테크윈 주식회사 데이터 배포 서비스의 데이터베이스 관리 시스템 및 방법
US9253035B2 (en) 2013-02-21 2016-02-02 International Business Machines Corporation Reducing switch state size in flow-based networks
US9137119B2 (en) 2013-03-07 2015-09-15 Cisco Technology, Inc. Efficient handling of multi-destination traffic in an internet protocol fabric data center
CN104052666B (zh) * 2013-03-14 2018-05-11 新华三技术有限公司 实现主机路由可达的方法和装置
JP2016517596A (ja) * 2013-03-15 2016-06-16 セールスフォース ドット コム インコーポレイティッド パブリッシャ及び情報フィードを介してレコードとインタラクトするためのシステム及び方法
US20140317616A1 (en) 2013-04-23 2014-10-23 Thomas P. Chu Cloud computing resource management
US9460474B2 (en) * 2013-05-03 2016-10-04 Salesforce.Com, Inc. Providing access to a private resource in an enterprise social networking system
ITMI20130942A1 (it) * 2013-06-07 2014-12-08 Ibm Pianificazione dell'esecuzione di attivita' con risoluzione di dipendenze
US9118633B2 (en) * 2013-06-18 2015-08-25 International Business Machines Corporation Topic protection policy for publish-subscribe messaging system
US9369383B2 (en) 2013-07-02 2016-06-14 Arista Networks, Inc. Method and system for overlay routing with VXLAN
US9892177B2 (en) * 2013-07-11 2018-02-13 Salesforce.Com, Inc. Systems and methods for interacting with external content objects
US9282033B2 (en) * 2013-08-06 2016-03-08 Cisco Technology, Inc. Intelligent handling of virtual machine mobility in large data center environments
US9426060B2 (en) 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
US9559951B1 (en) * 2013-08-29 2017-01-31 Cisco Technology, Inc. Providing intra-subnet and inter-subnet data center connectivity
US9900366B2 (en) * 2013-09-17 2018-02-20 Amazon Technologies, Inc. Email webclient notification queuing
US9330155B1 (en) * 2013-09-30 2016-05-03 Emc Corporation Unified management of sync and async replication for block and file objects
US9544185B1 (en) * 2013-11-05 2017-01-10 Cisco Technology, Inc. Hardware based fast convergence for network failures
US9876711B2 (en) * 2013-11-05 2018-01-23 Cisco Technology, Inc. Source address translation in overlay networks
IN2013CH05044A (ko) * 2013-11-08 2015-05-29 Huawei Technologies India Pvt Ltd
US10635644B2 (en) 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9503358B2 (en) * 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9300528B2 (en) * 2013-12-13 2016-03-29 International Business Machines Corporation Trill network with multipath redundancy
US9264347B2 (en) 2013-12-27 2016-02-16 Dell Products L.P. N-node virtual link trunking (VLT) systems control plane
US10425294B2 (en) * 2014-01-06 2019-09-24 Cisco Technology, Inc. Distributed and learning machine-based approach to gathering localized network dynamics
US9727625B2 (en) * 2014-01-16 2017-08-08 International Business Machines Corporation Parallel transaction messages for database replication
US9558000B2 (en) * 2014-02-06 2017-01-31 Optimum Semiconductor Technologies, Inc. Multithreading using an ordered list of hardware contexts
US9225597B2 (en) 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
US9647926B2 (en) * 2014-03-17 2017-05-09 Telefonaktiebolaget L M Ericsson (Publ) Procedure to identify multi-homed prefixes for IS-IS LFA
US9391876B2 (en) * 2014-03-18 2016-07-12 Telefonaktiebolaget L M Ericsson (Publ) Better alternate paths for multi homed IS-IS prefixes
EP3629529B1 (en) * 2014-03-27 2022-08-31 Nicira Inc. Ingress ecmp in virtual distributed routing environment
US9912577B2 (en) * 2014-04-17 2018-03-06 Cisco Technology, Inc. Segment routing—egress peer engineering (SP-EPE)
US9485115B2 (en) * 2014-04-23 2016-11-01 Cisco Technology, Inc. System and method for enabling conversational learning in a network environment
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US20150355946A1 (en) 2014-06-10 2015-12-10 Dan-Chyi Kang “Systems of System” and method for Virtualization and Cloud Computing System
US9237078B1 (en) 2014-06-26 2016-01-12 Cisco Technology, Inc. Path validation in segment routing networks
US9313044B2 (en) * 2014-07-17 2016-04-12 Cisco Technology, Inc. Multiple mobility domains with VLAN translation in a multi-tenant network environment
US9699067B2 (en) 2014-07-22 2017-07-04 Mellanox Technologies, Ltd. Dragonfly plus: communication over bipartite node groups connected by a mesh network
US20160065498A1 (en) 2014-08-26 2016-03-03 rift.IO, Inc. Distributed transaction subsystem
US10826977B2 (en) * 2014-09-25 2020-11-03 Oracle International Corporation System and method for supporting asynchronous request/response in a network environment
US10116493B2 (en) * 2014-11-21 2018-10-30 Cisco Technology, Inc. Recovering from virtual port channel peer failure
CN104486124B (zh) * 2014-12-19 2018-09-04 盛科网络(苏州)有限公司 使用逻辑端口实现多系统链路聚合的装置及方法
US10545987B2 (en) * 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
DE102015100208A1 (de) 2015-01-09 2016-07-14 Leonhard Kurz Stiftung & Co. Kg Verfahren zur Herstellung eines Verbundartikels sowie ein Verbundartikel
US10129180B2 (en) * 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
US9965541B2 (en) * 2015-02-24 2018-05-08 Salesforce.Com, Inc. Interest groups based on network feed items
US10491546B2 (en) * 2015-02-25 2019-11-26 At&T Intellectual Property I, L.P. Provider edge router system and provider edge router system controller for hybrid virtualization of provider edge router functions
US10116464B2 (en) * 2015-03-18 2018-10-30 Juniper Networks, Inc. EVPN inter-subnet multicast forwarding
US10142171B2 (en) 2015-04-01 2018-11-27 Nokia Of America Corporation Selective configuration of packet engine for cable service flows
JP6453154B2 (ja) 2015-04-30 2019-01-16 日本電信電話株式会社 ネットワーク管理システム及びネットワーク管理方法
US9787575B2 (en) * 2015-05-28 2017-10-10 Arista Networks, Inc. Method and system for programming equal-cost multi-path routes on network devices
US10210115B2 (en) * 2015-06-02 2019-02-19 Box, Inc. System for handling event messages for file collaboration
US10572509B2 (en) * 2015-07-27 2020-02-25 Cisco Technology, Inc. Scalable spine nodes with partial replication of routing information in a network environment
CN105007224B (zh) * 2015-07-28 2018-06-15 清华大学 一种sdn网络和ip网络互联通信系统、通信方法
US10009277B2 (en) 2015-08-04 2018-06-26 Mellanox Technologies Tlv Ltd. Backward congestion notification in layer-3 networks
US9781037B2 (en) * 2015-09-15 2017-10-03 Cisco Technology, Inc. Method and apparatus for advanced statistics collection
US10505802B2 (en) * 2015-11-02 2019-12-10 Cisco Technology, Inc. Adaptive subscriber-driven resource allocation for push-based monitoring
CN105553849B (zh) * 2015-11-26 2019-05-17 北京邮电大学 一种传统ip网络与sptn网络互通方法与系统
US9813286B2 (en) 2015-11-26 2017-11-07 Industrial Technology Research Institute Method for virtual local area network fail-over management, system therefor and apparatus therewith
US9985867B2 (en) * 2015-12-11 2018-05-29 Cisco Technology, Inc. Optimizing EVPN for data centers with redundant top-of-rack deployments
US10237163B2 (en) * 2015-12-30 2019-03-19 Juniper Networks, Inc. Static route advertisement
US10397108B2 (en) * 2016-01-25 2019-08-27 Futurewei Technologies, Inc. Service function chaining across multiple subnetworks
US20170222943A1 (en) 2016-01-29 2017-08-03 Mediatek Inc. Method and apparatus for reordering
US10187290B2 (en) * 2016-03-24 2019-01-22 Juniper Networks, Inc. Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures
US10454766B2 (en) * 2016-04-21 2019-10-22 Super Micro Computer, Inc. Automatic configuration of a network switch in a multi-chassis link aggregation group
US20170315882A1 (en) * 2016-04-29 2017-11-02 Netapp, Inc. Protected write-back cache transaction replication
US10454877B2 (en) * 2016-04-29 2019-10-22 Cisco Technology, Inc. Interoperability between data plane learning endpoints and control plane learning endpoints in overlay networks
CN107347032B (zh) * 2016-05-05 2019-09-10 中兴通讯股份有限公司 报文转发方法及装置
US10756945B2 (en) 2016-05-11 2020-08-25 Cisco Technology, Inc. Virtualized network management protocols
US9838314B1 (en) * 2016-05-16 2017-12-05 Cisco Technology, Inc. Contextual service mobility in an enterprise fabric network environment
US10785299B2 (en) 2016-06-08 2020-09-22 Nutanix, Inc. Generating cloud-hosted storage objects from observed data access patterns
US10645631B2 (en) * 2016-06-09 2020-05-05 Qualcomm Incorporated Device detection in mixed static and mobile device networks
US10084891B2 (en) * 2016-06-22 2018-09-25 RtBrick Inc. Method to build a modular distributed network device using microservices architecture
US20170373973A1 (en) * 2016-06-27 2017-12-28 Juniper Networks, Inc. Signaling ip address mobility in ethernet virtual private networks
WO2018009205A1 (en) 2016-07-08 2018-01-11 Intel Corporation Intelligent gateway configuration for internet-of-things networks
US10291434B2 (en) * 2016-07-26 2019-05-14 Avago Technologies International Sales Pte. Limited Multi-destination packet forwarding for a multi-homed device in a virtual network
US10153988B2 (en) * 2016-08-10 2018-12-11 Arista Networks, Inc. Load balancing on multi-chip network switch without full bi-section bandwidth
JP6514158B2 (ja) 2016-08-22 2019-05-15 日本電信電話株式会社 経路伝搬システム、および、経路伝搬方法
US10419340B2 (en) 2016-08-29 2019-09-17 Vmware, Inc. Stateful connection optimization over stretched networks using specific prefix routes
CN107800625B (zh) * 2016-08-30 2020-07-07 新华三技术有限公司 一种报文转发方法及装置
US10454758B2 (en) * 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10193805B2 (en) * 2016-09-08 2019-01-29 Futurewei Technologies, Inc. User oriented IoT data discovery and retrieval in ICN networks
US10671764B2 (en) * 2016-09-15 2020-06-02 Nuts Holdings, Llc NUTS: eNcrypted Userdata Transit and Storage
US10552429B2 (en) 2016-11-02 2020-02-04 Microsoft Technology Licensing, Llc Discovery of data assets using metadata
CN108075969B (zh) * 2016-11-17 2020-01-03 新华三技术有限公司 报文转发方法和装置
US10491698B2 (en) 2016-12-08 2019-11-26 International Business Machines Corporation Dynamic distribution of persistent data
US10645181B2 (en) * 2016-12-12 2020-05-05 Sap Se Meta broker for publish-subscribe-based messaging
US10044605B2 (en) * 2016-12-23 2018-08-07 Juniper Networks, Inc. Apparatus, system, and method for distributing routing-protocol information in clos fabrics
US11284300B2 (en) * 2016-12-30 2022-03-22 Comcast Cable Communications, Llc Efficiently managing network traffic
US11290324B2 (en) 2016-12-30 2022-03-29 Intel Corporation Blockchains for securing IoT devices
CN106878065B (zh) * 2017-01-18 2021-06-11 新华三技术有限公司 一种分布式聚合系统的配置方法及装置
US10397097B2 (en) 2017-01-18 2019-08-27 Futurewei Technologies, Inc. Weighted next hop selection at a router using an equal cost multipath process
CN106878166B (zh) * 2017-01-22 2020-04-03 新华三技术有限公司 路由通告方法及装置
US10966070B2 (en) 2017-01-30 2021-03-30 Veniam, Inc. Systems and methods for managing data with heterogeneous multi-paths and multi-networks in an internet of moving things
US10334055B2 (en) 2017-02-01 2019-06-25 International Business Machines Corporation Communication layer with dynamic multi-session management
US10200274B1 (en) 2017-02-17 2019-02-05 Juniper Networks, Inc. Enhanced traffic flow in software-defined networking controller-based architecture
US10333836B2 (en) * 2017-04-13 2019-06-25 Cisco Technology, Inc. Convergence for EVPN multi-homed networks
US10530873B1 (en) 2017-04-28 2020-01-07 Cisco Technology, Inc. Techniques for optimizing EVPN-IRB for IPv6-enabled data centers with top-of-rack deployments
US10659352B2 (en) 2017-05-31 2020-05-19 Juniper Networks, Inc. Signaling private context forwarding tables for a private forwarding layer
US10931530B1 (en) 2017-06-26 2021-02-23 Amazon Technologies, Inc. Managing routing resources of a network
US11074300B1 (en) 2017-07-03 2021-07-27 Palantir Technologies Inc. Techniques for visualizing dependencies in a data analytics system
CN107547402B (zh) * 2017-07-19 2020-04-03 新华三技术有限公司 一种转发表生成方法和装置
US10452726B2 (en) 2017-09-07 2019-10-22 Futurewei Technologies, Inc. In-network semantic mashup for an information-centric networking (ICN) network
US10644931B2 (en) 2017-09-15 2020-05-05 Walmart Apollo, Llc Event ordering framework in distributed asynchronous systems
US10721651B2 (en) * 2017-09-29 2020-07-21 Arista Networks, Inc. Method and system for steering bidirectional network traffic to a same service device
US10382346B2 (en) * 2017-10-24 2019-08-13 Cisco Technology, Inc. Method and device for offloading processing of data flows
US10652308B2 (en) * 2017-11-08 2020-05-12 International Business Machines Corporation Cognitive storage management for a mobile computing device
US10469921B2 (en) 2017-11-10 2019-11-05 Juniper Networks, Inc. Data center packet optical transport failure protection
US10831670B2 (en) * 2017-11-22 2020-11-10 Blackberry Limited Method and system for low latency data management
CN108173902A (zh) * 2017-11-29 2018-06-15 清华大学 数据传输、发布及订阅方法和装置
US20190182202A1 (en) * 2017-12-12 2019-06-13 Nokia Solutions And Networks Oy System and method for route optimization in a multichasiss link aggregation configuration
US10880112B2 (en) * 2017-12-31 2020-12-29 Arista Networks, Inc. Multicast traffic in a virtual extensible local area network (VXLAN)
US20190207844A1 (en) 2018-01-03 2019-07-04 Hewlett Packard Enterprise Development Lp Determining routing decisions in a software-defined wide area network
US10785145B2 (en) 2018-02-19 2020-09-22 Arista Networks, Inc. System and method of flow aware resilient ECMP
US10608921B2 (en) * 2018-04-19 2020-03-31 Cisco Technology, Inc. Routing in fat tree networks using negative disaggregation advertisements
US11258853B2 (en) * 2018-05-04 2022-02-22 EMC IP Holding Company, LLC Storage management system and method
US10574566B2 (en) * 2018-05-25 2020-02-25 Juniper Networks, Inc. Reducing or eliminating routing microloops in networks having a CLOS topology, such as data center CLOS networks employing the exterior border gateway protocol (EBGP) for example
US10826823B2 (en) 2018-07-31 2020-11-03 Facebook, Inc. Centralized label-based software defined network

Also Published As

Publication number Publication date
EP3841485A1 (en) 2021-06-30
JP7461354B2 (ja) 2024-04-03
CN112840333B (zh) 2023-12-29
US11140070B2 (en) 2021-10-05
US11675637B2 (en) 2023-06-13
EP3841733A4 (en) 2022-06-22
CA3109950A1 (en) 2020-02-27
US11212215B2 (en) 2021-12-28
WO2020041666A1 (en) 2020-02-27
US20220075672A1 (en) 2022-03-10
US20230236908A1 (en) 2023-07-27
JP2021535697A (ja) 2021-12-16
EP3841471A4 (en) 2022-06-29
WO2020041681A1 (en) 2020-02-27
US20200068014A1 (en) 2020-02-27
JP7427671B2 (ja) 2024-02-05
CN112840332A (zh) 2021-05-25
CN112840604B (zh) 2022-12-23
US11693716B2 (en) 2023-07-04
JP7475349B2 (ja) 2024-04-26
TWI813742B (zh) 2023-09-01
EP3841733A1 (en) 2021-06-30
EP3841483A1 (en) 2021-06-30
KR20210060484A (ko) 2021-05-26
US20200067830A1 (en) 2020-02-27
CN112840322A (zh) 2021-05-25
TW202026901A (zh) 2020-07-16
US20210390000A1 (en) 2021-12-16
CA3109923A1 (en) 2020-02-27
KR20210059727A (ko) 2021-05-25
TWI813744B (zh) 2023-09-01
US20220075673A1 (en) 2022-03-10
US20200067823A1 (en) 2020-02-27
CA3109941A1 (en) 2020-02-27
CN112840333A (zh) 2021-05-25
US11972306B2 (en) 2024-04-30
US11134006B2 (en) 2021-09-28
US20200067822A1 (en) 2020-02-27
TWI819072B (zh) 2023-10-21
TWI821373B (zh) 2023-11-11
US20200067812A1 (en) 2020-02-27
TWI813743B (zh) 2023-09-01
CN112840332B (zh) 2024-06-25
TWI803687B (zh) 2023-06-01
CA3109939A1 (en) 2020-02-27
TW202034737A (zh) 2020-09-16
CN117914767A (zh) 2024-04-19
TW202026873A (zh) 2020-07-16
CA3109948A1 (en) 2020-02-27
CA3109935A1 (en) 2020-02-27
EP3841471A1 (en) 2021-06-30
JP7461355B2 (ja) 2024-04-03
WO2020041699A1 (en) 2020-02-27
CN112840606A (zh) 2021-05-25
EP3841487A4 (en) 2022-05-11
US20240152410A1 (en) 2024-05-09
WO2020041742A1 (en) 2020-02-27
EP3841709A1 (en) 2021-06-30
US20230367658A1 (en) 2023-11-16
WO2020041674A1 (en) 2020-02-27
WO2020041729A1 (en) 2020-02-27
KR20210060483A (ko) 2021-05-26
US20240193015A1 (en) 2024-06-13
US20240086263A1 (en) 2024-03-14
KR20210059724A (ko) 2021-05-25
JP2021535696A (ja) 2021-12-16
CN112840605B (zh) 2023-10-17
CN112840322B (zh) 2024-06-04
JP7465878B2 (ja) 2024-04-11
US11206208B2 (en) 2021-12-21
TW202017340A (zh) 2020-05-01
US20220091910A1 (en) 2022-03-24
TW202026896A (zh) 2020-07-16
US11861419B2 (en) 2024-01-02
CN112840605A (zh) 2021-05-25
TW202034662A (zh) 2020-09-16
US20200065317A1 (en) 2020-02-27
EP3841709A4 (en) 2022-06-15
EP3841711A4 (en) 2022-06-15
EP3841487A1 (en) 2021-06-30
KR20210063343A (ko) 2021-06-01
KR20210059728A (ko) 2021-05-25
EP3841485A4 (en) 2022-06-29
CN112840606B (zh) 2023-08-08
JP2021535693A (ja) 2021-12-16
US11868824B2 (en) 2024-01-09
JP7427672B2 (ja) 2024-02-05
CN112840625B (zh) 2024-02-20
JP7448537B2 (ja) 2024-03-12
TW202037220A (zh) 2020-10-01
WO2020041727A1 (en) 2020-02-27
EP3841483A4 (en) 2022-06-29
CN112840604A (zh) 2021-05-25
TW202404318A (zh) 2024-01-16
US11941460B2 (en) 2024-03-26
EP3841711A1 (en) 2021-06-30
JP2021535695A (ja) 2021-12-16
CA3109946A1 (en) 2020-02-27
US20210406101A1 (en) 2021-12-30
JP2021535524A (ja) 2021-12-16
CN112840625A (zh) 2021-05-25
TW202344019A (zh) 2023-11-01
JP2021535694A (ja) 2021-12-16
US11221893B2 (en) 2022-01-11
JP2021535698A (ja) 2021-12-16
US20200065141A1 (en) 2020-02-27
US12020089B2 (en) 2024-06-25

Similar Documents

Publication Publication Date Title
US11861419B2 (en) Asynchronous object manager in a network routing environment
US9686194B2 (en) Adaptive multi-interface use for content networking
TWI839379B (zh) 在網路路由環境中的單節點和多節點資料儲存空間架構
KR20230137336A (ko) 네트워크 컴퓨팅 환경에서 최상 경로 계산 오프로드

Legal Events

Date Code Title Description
A201 Request for examination