KR101700141B1 - 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치 - Google Patents

네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101700141B1
KR101700141B1 KR1020100044964A KR20100044964A KR101700141B1 KR 101700141 B1 KR101700141 B1 KR 101700141B1 KR 1020100044964 A KR1020100044964 A KR 1020100044964A KR 20100044964 A KR20100044964 A KR 20100044964A KR 101700141 B1 KR101700141 B1 KR 101700141B1
Authority
KR
South Korea
Prior art keywords
port
fdu
state
ports
network element
Prior art date
Application number
KR1020100044964A
Other languages
English (en)
Other versions
KR20100122870A (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 KR20100122870A publication Critical patent/KR20100122870A/ko
Application granted granted Critical
Publication of KR101700141B1 publication Critical patent/KR101700141B1/ko

Links

Images

Classifications

    • 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
    • H04L45/245Link aggregation, e.g. trunking
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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/58Association of routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

네트워크 소자의 전송 평면에서 포트 상태 테이블을 유지하기 위한 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 복수의 전송 데이터 유닛(FDU)들 중 하나인 제 1 FDU와 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정한다. 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하기 위해서 결정된 상태가 사용된다. 다른 FDU들 각각이 다른 FDU들 각각에 로컬한 포트 상태 데이터베이스 내에 포트들의 제 1 세트의 상태를 저장할 수 있도록 결정된 상태가 상기 네트워크 소자 상의 각각의 다른 FDU들에 송신된다. 전송 평면에 의해 포트 상태 데이터베이스가 사용되어 신속한 패킷들의 재라우팅이 수행된다.

Description

네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치{METHOD AND APPARATUS FOR MAINTAINING PORT STATE TABLES IN A FORWARDING PLANE OF A NETWORK ELEMENT}
본 발명은 전체가 본원에 참조되어 있고 2009년 5월 13일자로 출원된, 미국 가 특허 출원 제 61/178,020의 이점을 주장한다.
데이터 통신 네트워크들은 다양한 컴퓨터들, 서버들, 노드들(nodes), 라우터들(routers), 스위치들(switches), 허브들(hubs), 프록시들(proxies), 및 서로 결합되거나 데이터를 서로 통과시키도록 구성되는 다른 디바이스들(devices)을 포함할 수 있다. 이 디바이스들은 본원에서 "네트워크 소자들"로 칭해지고, 네트워크상에 다양한 네트워크 자원들을 제공할 수 있다. 데이터는 데이터 통신 네트워크들을 통해, 네트워크상의 통신 링크들을 통해 네트워크 소자들 사이에서 프로토콜 데이터 유닛들(units)(패킷들(packets), 셀들(cells), 프레임들(frames), 또는 세그먼트들(segments))을 통과시킴으로써, 통신된다. 특정한 프로토콜 데이터 유닛은 그것이 네트워크를 통해 자신의 소스(source) 및 자신의 목적지 사이에서 이동할 때 다수의 네트워크 소자들에 의해 처리될 수 있고 다수의 통신 링크들과 교차할 수 있다. 컴퓨터들, 전화들, 셀룰러 폰들, PDA(Personal Digital Assistants), 및 다른 유형의 가전 제품들(consumer electronics)과 같은 호스트들(hosts)은 통신 네트워크에 접속되고, 통신 네트워크를 통해 데이터를 전달하고 송신/수신하므로, 상기 통신 네트워크에 의해 제동되는 통신 서비스들의 사용자들이다.
네트워크 소자들은 전형적으로 네트워크 소자의 동작을 제어하는 제어 평면(control plnae) 및 네트워크를 통하여 흐르는 트래픽(traffic)을 처리하는 데이터 평면(data plane)을 가지도록 구현된다. 데이터 평면은 전형적으로 네트워크상의 링크들을 접속시키는 포트들을 갖는 라인 카드들(line cards)의 집단(collection)을 가질 것이다. 데이터는 특정 포트(port)에서 수신되고, 데이터 평면 내에서 교환되며, 네트워크상의 다른 링크들 상에 있는 하나 이상의 다른 포트들에서 출력된다. 데이터가 신속하게 처리될 수 있도록 하기 위해서, 데이터 평면은 전형적으로 하드웨어로 구현되어 데이터를 처리하는 방법에 관한 모든 결정들이 하드웨어 색인들(lookups) 등을 사용하여 수행되도록 한다.
포트들은, 라인 카드 고장, 포트에 접속된 링크의 고장(예를 들어, 라인 절단), 상대방 라인 카드 고장 등을 포함한, 많은 이유들로 인해 고장날 수 있다. 용어들 멀티-링크 트렁크(multi-link trunk : MLT), LAG(Link Aggregation Group) 및 논리적 포트들은 동의어이고 이들 용어들은 상호 교환하며 사용된다. 마찬가지로, 포트 또는 포트들의 세트가 고장난 것으로 보이도록 할 수 있는 네트워크 소자 내의 내부 전송 데이터경로(datapath)가 고장이 나거나, 포트의 외부 피어(peer) 종단지점으로의 논리적/가상 접속에 따른 일부 다른 고장들이 존재할 수 있다. 포트들이 고장 날 수 있는 수많은 이유들이 존재한다.
포트가 고장이 난 경우에, 포트로 향하는 트래픽은 네트워크를 통해 접속성이 복구될 수 있도록 대안 포트로 흐르게 우회되어야만 한다. 네트워크 소자에 의해 처리되는 트래픽에 대한 충격을 최소화하기 위해, 예를 들어 다운 시간(down time) 및 패킷 손실을 최소화하기 위해, 트래픽의 재라우팅(rerouting)이 더욱 신속할수록 더욱 양호해진다. 바람직하게도, 트래픽이 대체 포트로 10 밀리초(ms) 내로 대체될 수 있는 것이 유용할 것이다. 바람직하게도, LAG 또는 MLT의 경우에, 트래픽은, 지정된 대체 포트가 트래픽으로 오버로드(overload)되지 않도록, 고장난 포트로부터 특정한 지정된 대체 포트로 모두 이동하기보다는 남은 포트들에 걸쳐 확산되어야만 한다.
상술한 메커니즘과 같은 종래의 메커니즘들은 다양한 결함들로 손해를 겪는다. 그러한 결함 중 하나는 고장으로부터 복구하는데 종래의 네트워크 소자들에 의해 걸리는 시간이 길다는 것이다. 복구하는데 걸리는 시간의 양이 더 길수록 고장난 포트에 대하여 극복하기 위한 다른 포트들로의 로딩(loading)뿐만 아니라 수행 시의 지연(더 많은 버려지는 패킷들(dropped packets)을 포함하는)이 더욱 길어진다. 현재 솔루션들은 효율적으로 포트 고장들을 검출하고 포트 상태들을 분배하여 패킷/셀/프레임 전송 동안 신속한 재라우팅을 가능하게 하는 포괄적인 방법을 제공하지 않는다. 이 솔루션들은 전형적으로 고장들의 서브세트를 처리하기 위한 관리 및/또는 제어 평면 소프트웨어를 광범위하게 사용한다. 그러한 방법들은 훨씬 더 긴 네트워크 다운 시간 및 더 높은 패킷 손실을 야기한다.
본 발명의 실시예들은 이와 같은 결점들을 상당히 극복하고 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치를 제공하는 메커니즘들 및 기술들을 제공한다. 네트워크 다운 시간 및 패킷 손실을 최소화하고 그러한 고장들이 발생할 때 네트워크 디바이스들에서 중단없는 대체 동작을 제공하는 것을 매우 중요하다. 본 발명은 노드들의 클러스터(cluster) 내에서의 매우 신속하고 효율적인 검출 및 분배를 가능하게 한다. 이 메커니즘은 그와 같은 고장들의 발생 시에 관리 및/또는 제어 평면 소프트웨어로부터의 동적인 도움 없이도 신속한 경로가 중단없는 신속한 재라우팅을 수행하도록 할 수 있다.
네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법의 특정한 실시예에서, 상기 방법은 제 1 전송 데이터 유닛(Forwarding Data Unit: FDU)과 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정하는 단계를 포함하고, 상기 제 1 FDU는 상기 네트워크 소자의 상기 전송 평면 내에서 전송 기능들을 구현하는 복수의 FDU들 중 하나이다. 상기 방법은 상기 결정된 상태를 사용하여 상기 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하는 단계를 더 포함한다. 추가적으로, 상기 방법은, 다른 FDU들 각각이 다른 FDU들 각각에 로컬(local)한 포트 상태 데이터베이스 내에 상기 포트들의 제 1 세트의 상태를 저장할 수 있도록 상기 결정된 상태를 상기 네트워크 소자 상의 각각의 다른 FDU들에 송신하는 단계를 포함한다.
다른 실시예들은 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위하여 컴퓨터 판독 가능 코드(code)를 갖는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 제 1 전송 데이터 유닛(FDU)과 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정하기 위한 명령들을 포함하고, 상기 제 1 FDU는 상기 네트워크 소자의 상기 전송 평면 내에서 전송 기능들을 실행하는 복수의 FDU들 중 하나이다. 상기 컴퓨터 판독 가능 매체는 상기 결정된 상태를 사용하여 상기 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하기 위한 명령들을 더 포함한다. 추가적으로, 상기 컴퓨터 프로그램 판독 가능 매체는, 다른 FDU들 각각이 상기 포트들의 제 1 세트의 상태를 다른 FDU들 각각에 로컬한 포트 상태 데이터베이스 내에 저장할 수 있도록 상기 결정된 상태를 상기 네트워크 소자 상의 각각의 다른 FDU들에 송신하기 위한 명령들을 포함한다.
또 다른 실시예들은 본 발명의 실시예들에 따라 본원에 개시되는 상기 모든 방법 동작들을 프로세싱하도록 구성되는, 컴퓨터형 디바이스(computerized device)(네트워크 소자)를 포함한다. 이와 같은 실시예들에서, 상기 컴퓨터형 디바이스는 메모리 시스템, 프로세서(processor), 상기 컴포넌트들(components)을 접속시키는 상호접속 메커니즘 내의 통신 인터페이스(interface)를 포함한다. 상기 메모리 시스템은, 상기 프로세서상에서 실행될 때(예를 들어 실행될 때) 본 발명의 실시예들로서 본원에 설명된 상기 모든 방법 실시예들 및 동작들을 수행하는 상기 컴퓨터형 디바이스 내에서, 본원에서 설명된 바와 같이 동작하는 본원에서 설명된 바와 같은 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하도록 제공되는 프로세스에 의해 인코딩(encoding)된다. 그러므로 본원에 설명된 바와 같이 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하도록 실행되거나 프로그램된 임의의 컴퓨터형 디바이스는 본 발명의 하나의 실시예이다.
본원에 개시되는 본 발명의 다른 실시예들의 배열들은 상기에 요약되고 이후에 상세하게 개시되는 상기 방법 실시예 단계들 및 동작들을 수행하기 위한 소프트웨어 프로그램들을 포함한다. 특히, 컴퓨터 프로그램 제품은, 컴퓨터형 디바이스에서 수행될 때, 본원에 설명된 바와 같이 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위하여 연관된 동작들을 제공하는 인코딩된 컴퓨터 프로그램 논리를 포함하는 컴퓨터 판독 가능 매체를 갖는 하나의 실시예이다. 상기 컴퓨터 프로그램 논리는, 컴퓨팅 시스템(computing system)을 구비한 적어도 하나의 프로세서에서 실행될 때, 상기 프로세서가 본 발명의 실시예들로 본원에 나타난 동작들(예를 들어 방법들)을 수행하도록 한다. 본 발명의 이와 같은 배열들은 전형적으로, 소프트웨어, 코드 및/또는 광 매체(예를 들어 CD-ROM), 플로피 또는 하드 디스크 또는 하나 이상의 ROM 또는 RAM 또는 PROM 칩들(chips) 내의 펌웨어(firmware) 또는 마이크로코드(microcode)와 같은 다른 매체, 또는 주문형 반도체(Application Specific Integrated Circuit: ASIC)와 같은 컴퓨터 판독 가능 매체에 배열되거나 인코딩되는 다른 데이터 구조들, 또는 하나 이상의 모듈들(modules) 내의 다운로드 가능 소프트웨어 이미지들(images), 공유 라이브러리들(shared libraries) 등으로 제공된다. 상기 소프트웨어 및 펌웨어 또는 다른 그와 같은 구성들은, 컴퓨터형 디바이스 내의 하나 이상의 프로세서들로 하여금 본 발명의 실시예들로서 본원에 설명된 기술들을 수행하도록 하기 위해서, 상기 컴퓨터형 디바이스상에 인스톨(install)될 수 있다. 데이터 통신 디바이스들 또는 다른 엔티티들(entities)의 그룹에서와 같이, 컴퓨터형 디바이스들의 집단에서 동작하는 소프트웨어 프로세스들은 또한 본 발명의 시스템을 제공할 것이다. 본 발명의 시스템은 여러 데이터 통신 디바이스들상의 많은 소프트웨어 프로세스들 사이에서 분배될 수 있거나, 또는 모든 프로세스들은 작은 세트의 전용 컴퓨터상에 또는 하나의 컴퓨터상에 단독으로 분배될 수 있다.
본 발명의 실시예들은, 데이터 통신 디바이스 내에서처럼, 소프트웨어 프로그램으로서, 소프트웨어 및 하드웨어로서, 또는 하드웨어 및/또는 회로소자 단독으로 엄격하게 구현될 수 있음이 이해되어야 한다. 본 발명의 특징들은, 본원에 설명되는 바와 같이, New Jersey의 Lincroft의 Avaya, Inc.에 의해 제조되는 장치들과 같은 그와 같은 장치들을 위해서 데이터 통신 디바이스들 및/또는 소프트웨어 시스템들에서 채용될 수 있다.
본 명세서에 논의되는 상이한 특징들, 기술들, 구성들 등의 각각은 독립적으로 또는 결합하여 실행될 수 있음에 주목하라. 따라서, 본 발명은 많은 상이한 방법으로 구현되고 검토될 수 있다. 또한, 본 요약 부분은 본원에서 모든 실시예 및/또는 본 명세서 또는 청구되는 발명의 증가한 신규 양상을 지정하지 않음에 주목하라. 대신, 본 요약은 다만 상이한 실시예들 및 종래의 기술들에 대하여 대응하는 신규한 점들의 예비적인 논의를 제공할 뿐이다. 추가적인 세부사항들, 요소들 및/또는 본 발명의 가능한 관점들(변경들)을 위해서, 독자는 아래에서 더 논의되는 본 명세서의 상세한 설명 부분 및 대응하는 도면들을 참조한다.
상술한 바와 같은 본 발명에 따르면, 데이터 통신 네트워크에서의 종래의 결점들이 상당히 극복되어서, 네트워크 다운 시간이 감소하고 패킷 손실이 낮아진다.
도 1은 노드들의 클러스터를 조직하는 제 1 예를 도시하는 기능 블록도.
도 2는 노드들의 클러스터를 조직하는 다른 예를 도시하는 기능 블록도.
도 3은 노드들의 클러스터를 조직하는 다른 예를 도시하는 기능 블록도.
도 4는 노드들의 클러스터를 조직하는 다른 예를 도시하는 기능 블록도.
도 5는 노드들의 클러스터를 조직하는 다른 예를 도시하는 기증 블록도.
도 6은 노드들의 클러스터를 조직하는 다른 예를 도시하는 기증 블록도.
도 7은 예시적인 통신 네트워크의 기능 블록도.
도 8은 예시적인 네트워크 소자의 기능 블록도.
도 9는 도 8의 네트워크 소자와 같은 네트워크 소자에서 사용될 수 있는 예시적인 라인 카드의 기능 블록도.
도 10은 도 9의 라인 카드와 같은 라인 카드에서 사용될 수 있는 예시적인 포트 데이터베이스의 기능 블록도.
도 11은 노드 클러스터 내의 데이터경로의 컴포넌트들 사이에서의 포트 상태 정보의 흐름을 도시하는 네트워크 소자들의 예시적인 클러스터의 기능 블록도.
도 12는 본 발명의 실시예들에 따라 포트 상태 테이블을 유지하는 네트워크 소자에 대한 예시적인 컴퓨터 시스템 아키텍처를 도시한 도면.
도 13은 본 발명의 실시예들에 따라 포트 상태 테이블들을 유지하기 위한 방법의 흐름도를 포함한 도면.
도 14는 본 발명의 실시예들에 따라 네트워크 소자 내의 포트 상태 테이블을 업데이트하기 위한 방법의 흐름도를 포함한 도면.
상술한 설명은, 동일한 참조 문자들이 상이한 도면들을 통해 동일한 파트들을 언급하는 첨부 도면들에 도시된, 본 발명의 바람직한 실시예의 다음의 더욱 특정한 기술로부터 명확해질 것이다.
시간에 따라서, 네트워크 소자들이 데이터를 처리하는 방법이 진화되어 왔다. 예를 들어, 둘 이상의 물리적 링크들이 네트워크 소자들의 그룹 사이에서 신장되어 MLT 또는 LAG로서 포괄적으로 사용될 수 있다. 도 1은 멀티-링크 트렁크(22)를 형성하기 위해 그룹화되어 있는 다수의 링크들(24a 내지 24d)에 의해 접속되는 두 네트워크 소자들(네트워크 소자(1) 및 네트워크 소자(2))의 예를 도시한다. 특히, MLT(22) 내의 링크들(24a 내지 24d) 각각은, 다른 네트워크 소자로 데이터를 전송하도록 네트워크 소자들 중 하나에 의해 사용될 수 있다. 그러므로, 네트워크 소자(1)가 네트워크 소자(2)로 송신할 데이터(예를 들어 프레임/패킷)를 가지고 있는 경우, 네트워크 소자(1)는 MLT(22)로부터 링크들(24a 내지 24d) 중 하나를 선택해서 상기 링크를 통해 패킷을 네트워크 소자(2)로 송신할 수 있다.
도 2는 네트워크 소자들이 상호 접속될 수 있는 다른 예시적인 방식을 도시한다. 특히, 이 예에서, 네트워크 소자(1) 및 네트워크 소자(2)는 단일 링크일 수 있고 또는 자체가 멀티-링크 트렁크일 수 있는 인터-스위치 트렁크(inter-switch trunk : IST)(26)에 의해서 상호 접속된다. 멀티링크 트렁크의 링크들이 물리적으로 두 개의 상이한 네트워크 소자들에 접속되면, MLT는 분산 멀티-링크 트렁크(Split Multi-Link Trunk : SLMT)라 칭해진다. 네트워크 소자들(1 및 2)은 각각 네트워크 소자(3)에 접속하는 하나 이상의 링크들을 가지며, 이들은 SMLT(23)를 형성하기 위해 서로 그룹화될 수 있다. 그러므로, 네트워크 소자(1)가 네트워크 소자(3)로 송신할 데이터(예를 들어 프레임/패킷)를 가지고 있는 경우, 네트워크 소자(1)는 자신과 접속된 SMLT 링크들 중 하나를 선택하거나, 또는 인터-스위치 트렁크(26)와 연관된 링크들 중 하나의 링크 상에서 패킷을 송신하여 네트워크 소자(2)가 SMLT와 연관된 자신의 링크들 중 하나 상에서 데이터를 네트워크 소자(3)로 송신하는 것을 가능하게 할 수 있다.
도 3은 네트워크 소자(1)가 SMLT(23)로 접속되는 어떠한 링크들을 갖지 않지만 SMLT와 연관된 링크들에 접속되는 포트들을 갖는 두 개의 다른 네트워크 소자들(네트워크 소자(2) 및 네트워크 소자(3))에 IST들(25 및 26)에 의해 접속된 다른 예를 도시한다. 이 시나리오에서, 네트워크 소자(1)가 SMLT 상에서 송신될 데이터를 가지는 경우에, 네트워크 소자(1)는 IST 링크들(각각의 IST 링크는 자체가 SMLT일 수 있음에 주목하라) 중 하나를 선택하여 네트워크 소자(2 또는 3) 중에 하나로 데이터를 송신할 것이다. IST들은 물리적이며 두 네트워크 소자들 사이에서 직접적으로 신장될 수 있거나, 또는 논리적이며 하나 이상의 중간 네트워크 소자들을 통하는 터널들 상에서 신장될 수 있다.
도 4는 네트워크 소자(1)가 또한 SMLT(23)에 참여하는 다른 예를 도시한다. 이 예에서, 네트워크 소자(1)가 송신할 데이터를 가지는 경우, 네트워크 소자(1)는 데이터가 SMLT(23)상에서 송신될 수 있도록 하기 위해서 SMLT(23)와 연관된 자신의 링크들 중 하나의 링크 상으로 데이터를 전송할 수 있거나, 또한 IST들(25 또는 26) 중 하나와 연관된 링크들 중 하나의 링크 상으로 데이터를 전송할 수 있다.
도 5 및 도 6은 사각 형상의 SMLT 배열로 네트워크 소자들을 상호 접속시키는 다른 방법을 도시한다. 도 5에 도시된 배열에서, 네 개의 네트워크 소자들은 사각 형상의 배열에서 IST들(25 내지 28)을 통해서 상호 접속되고, 도 6에서 네 개의 네트워크 소자들은 메쉬형(meshed) 배열에서 IST들(25 내지 30)을 통해 상호 접속된다. IST들은 물리적이며 두 네트워크 소자들 사이에서 직접적으로 신장될 수 있거나, 또는 논리적이며 하나 이상의 중간 네트워크 소자들을 통하는 터널들 상에서 신장될 수 있다.
네트워크 디바이스들이 상호 접속될 수 있는 방식들의 여러 예들이 도시되었을지라도, 네트워크 소자들의 클러스터를 상호 접속시키는 다른 방식들이 또한 존재할 수 있고 이 상호 접속 아키텍처들의 예시적인 세트는 철저하도록 의도되지 않는다. 그러므로 이 예들은 단지 네트워크 소자들을 상호 접속시키는 몇몇 방식들 중 대표적인 예를 제공하고자 의도되었다. 네트워크 소자들의 그룹은 본원에서 클러스터로 칭해질 수 있다.
도 7은 가입자들(12)이 에지 스위치(edge switch)(14)에 접속되는 예시적인 통신 네트워크(10)를 도시한다. 에지 스위치(14)는 링크들(18) 상으로 네트워크를 통하여 데이터를 전송하는 코어 스위치들(16)에 접속한다. 이들 스위치들의 각각은 물리적 라우터/스위치(router/switch)일 수 있고 또는 클러스터로 동작하기 위해 서로 접속되는 다수의 디바이스들일 수 있다. 링크들(18)의 각각은 MLT일 수 있거나, 또는 라우터/스위치가 다수의 물리적 디바이스로서 실행되는 곳에서는 SLMT일 수 있다. 네트워크 라우팅 관점에서, 패킷이 네트워크를 가로지르는 다수의 방법들이 존재한다. 예를 들어, 도 7에서, 에지 스위치(A)는 패킷을 코어 스위치들(C 및 D)을 통하여 에지 스위치(B)로 전송할 수 있거나, 또는 대안으로, 패킷을 코어 스위치들(E 및 F)을 통하여 송신할 수 있다. 네트워크 계층 라우팅 프로토콜은 패킷의 송신을 위해 사용되는 경로를 결정하는데 사용될 수 있다.
상술한 바와 같이, 네트워크 소자들이 상호 접속되는 방식에 따라, 네트워크 소자들이 프레임/패킷을 송신하여 프레임/패킷이 자신의 목적지에 도착하는 것을 가능하게 하는 많은 방법들이 존재할 수 있다. 본원에 사용되는 바와 같이, 용어 "클러스터"는 네트워크 레벨에서 노드-레벨 복구(node level resiliency)를 제공하는 하나 이상의 노드들을 칭하는데 사용된다. 그러므로, 도 1에서, 네트워크 소자(1)는 클러스터일 것이다; 도 2에서 네트워크 소자들(1 및 2)은 클러스터일 것이고, 도 3 및 도 4에서 네트워크 소자들(1, 2 및 3)은 클러스터일 것이며 도 5 및 도 6에서 네트워크 소자들(1 내지 4)은 클러스터일 것이다. 상술한 바와 같이 클러스터 내에서 노드들을 조직하는 다른 방법들이 존재한다.
클러스트 노드들 사이의 논리적 접속들은 본원에서 인터-스위치 트렁크들(IST들)로서 칭해진다. IST들은 하나의 네트워크 소자에서 클러스터 내에서 이웃하는 네트워크 소자로 신장되는 물리적 링크일 수 있거나, 또는 클러스터 내에서 하나 이상의 중간 네트워크 소자들을 통하여 터널링되는 논리적 링크들일 수 있다. IST가 아닌 포트(non-IST port)로부터 패킷을 수신하는 노드는 로컬 노드(local node)로 칭해질 것이다. 클러스터 내의 모든 다른 노드들은 수신된 패킷에 대한 원격 노드들(remote nodes)로 칭해진다. IST가 사용하기 위해서 선택되면, IST는 순환 방식으로 선택된다. 이는 동일한 IST를 반복하여 선택하는 것을 방지하기 위해서 행해지고 해싱(hashing) 기능 대신에 사용된다.
둘 이상의 링크들은 멀티-링크 트렁크(MLT)를 형성하도록 그룹화될 수 있다. 각각의 MLT에는 클러스터 내의 포괄 값(global value)이고 클러스터 노드들에 걸쳐 고유한 MLT 그룹 ID(MLT-ID)가 할당될 것이다. 단 하나의 노드에서만 자체의 모든 포트 부재들을 갖는 MLT는 정상 MLT 그룹으로 칭해진다. 자체의 포트 부재들이 둘 이상의 노드들에 있는 MLT 그룹은 분산 MLT(split MLT) 또는 SMLT 그룹으로 칭해진다.
논리적 포트가 MLT 또는 SMLT로서 구현되면, 네트워크상에서 자신의 다음 홉(hop)들에 패킷을 송신할 수 있는 다수의 물리적 포트들이 실제로 존재한다. 따라서, MLT/SMLT의 포트들 중 하나가 고장이 나는 경우, 패킷이 나머지 포트들 중 하나에서 전송되도록 하여 패킷이 버려지기보다는 네트워크를 가로질러 갈 수 있도록 하는 것이 유용할 것이다. 마찬가지로, MLT/SMLT에서 각각의 포트에 대한 1차 및 백업(backup) 포트를 지정하기보다는, MLT/SMLT의 나머지 포트들에 걸쳐 패킷들을 로드 공유(load share)하여 패킷들이 UP인 나머지 포트들에 걸쳐 분배될 수 있도록 하는 것이 유용할 것이다. 실시예에 따르면, 이 프로세스는 신속한 경로(fastpath)(데이터평면)가 자동적으로 개별 및 다중 포트 고장들에 적응되고 패킷 트래픽을 공정한 방식으로 나머지 포트들에 걸쳐 자동적으로 재지향할 수 있도록 하드웨어에서 실행된다.
도 8은 도 1 내지 도 6에 도시된 네트워크 소자들 중 하나로서 사용될 수 있는 예시적인 네트워크 소자(20)의 기능 블록도를 도시한다. 도 8에 도시된 예에서, 네트워크 소자는 제어 평면(31) 및 데이터 평면(32)을 포함한다. 제어 평면은 하나 이상의 CPU들(34)을 포함하고 일반적으로 라우팅 프로세스들, 관리 프로세스들 등과 같은 제어 프로세스들을 운영한다. 제어 평면은 데이터 평면을 프로그래밍하여 데이터 평면에 네트워크 상에서 데이터를 전송하는 방법을 지시한다.
데이터 평면(32)은 많은 상이한 아키텍처들을 사용하여 구성될 수 있으므로 도 8에 도시된 예는 단지 하나의 그와 같은 아키텍처의 하나의 예이다. 도 8에 도시된 예에서, 데이터 평면은 각각이 네트워크 내에서 링크들에 접속되는 다수의 물리적 포트들을 구현하는 복수의 라인 카드들(36)을 포함한다. 다른 실시예들에서 라인 카드들이 직접적으로 상호 접속되고 분산 방식으로 교환 기능들을 수행할 수 있을지라도, 이 실시예에서의 라인 카드들은 스위치 패브릭(switch fabric)(40)에 의해 상호 접속된다.
도 9에 도시된 바와 같이, 각각의 라인 카드(36)는 네트워크상에서 링크들에 물리적으로 접속되는 복수의 포트들(38)을 포함한다. 라인 카드는 또한 접속된 포트들로부터 프로세스 패킷들이 수신되었던 하나 이상의 기능 유닛들(units)(42)을 포함한다. 본원에 사용되는 바와 같이, 들어오고 나가는 방향들 모두에서 접속된 포트들로부터의 패킷들을 프로세싱하고 전송 결정들을 행하는 기능 유닛은 전송 데이터경로 유닛(Forwarding Datapath Unit) 또는 FDU(42)로 칭해진다. 라인 카드는 제어 평면과 상호 동작하는 관리/제어 프로세서(Management/Control Processor: MCP)(44)를 포함하여 제어 평면이 FDU(42) 및 선택적으로 라인 카드상의 다른 컴포넌트들 내로 명령들을 프로그래밍할 수 있도록 함으로써 FDU(42)가 네트워크상에서 적절하게 데이터를 처리하도록 할 것이다. MCP(44)는 또한 FDU(42) 및 라인 카드의 다른 컴포넌트들의 상태를 정기적으로 검사하여 고장이 발생하는 때를 검출한다.
이제 도 10을 참조하면, 각각의 FDU(42)는 포트 상태 데이터베이스(46)를 유지한다. 이 포트 상태 데이터베이스(46)는 로컬뿐만 아니라 모든 원격 포트들에 대한 물리적 링크 상태들 및 접속 상태들을 유지한다. 포트 상태 데이터베이스(46)는 두 테이블들을 포함한다 - 로컬 포트 데이터 테이블(48) 및 원격 포트 데이터 테이블(50). 로컬 데이터 테이블(48)은 로컬 노드에 속하는 포트 상태들을 유지하고, 원격 포트 데이터 테이블(50)은 클러스터 내의 원격 노드들에 속하는 포트 상태들을 유지한다. MLT 그룹들의 경우에, FDU는 MLT 포트 부재들을 로컬 테이블 내의 로컬 노드에, 그리고 상기 포트 부재들을 원격 테이블 내의 모든 다른 원격 노드들에 유지시킨다.
FDU가 패킷을 수신하면, 네트워크상에서 패킷을 패킷 자신의 목적지로 전송하는 UP인 MLT(또는 SMLT) 내의 포트를 찾아야만 한다. 포트는 UP 상태이거나 DOWN 상태 중 하나이다. 상술한 바와 같이, MLT 상의 모든 포트들이 로컬이라면, FDU는 로컬 포트들 중 어떤 포트가 UP 상태에 있는지를 결정하여 결정된 포트가 DOWN인 포트를 통하여 패킷을 전송하는 시도를 하지 않도록 할 필요가 있을 것이다. 마찬가지로, MLT와 연관된 포트들이 모두 로컬한 것이 아니라면(예를 들어 SMLT), FDU는 SMLT와 연관되고 UP 상태를 갖는 개별 물리적 네트워크 소자 상에서 포트를 선택할 필요가 있을 것이다.
실시예에 따르면, 각각의 FDU는 클러스터 내의 각각의 포트의 상태를 유지하기 위해서 사용되는 포트 상태 데이터베이스(46)를 유지한다. 데이터베이스는 로컬뿐만 아니라 모든 원격 포트들에 대한 물리적 링크 상태들 및 접속 상태들을 유지한다. 데이터베이스는 두 테이블들을 포함한다 - 즉 로컬 테이블(48) 및 원격 테이블(50). 로컬 테이블은 로컬 노드 상에서 모든 FDU들에 속하는 포트 상태들을 유지하고, 원격 테이블은 클러스터 내의 모든 원격 노드들 상에서 모든 포트들의 포트 상태를 유지한다. MLT 그룹들의 경우에, FDU는 로컬 테이블 내의 로컬 노드에 있는 MLT 포트 부재들의 상태를 유지하고, 원격 테이블 내의 모든 다른 원격 노드들에 있는 MLT 포트 부재들의 상태들을 유지한다. 로컬 테이블은 또한 모든 IST 포트들의 상태를 유지한다. 패킷이 수신되면, FDU는 UP인 패킷을 위한 포트를 결정하고 상기 패킷을 상기 포트로 전송하여 네트워크상에서 출력되도록 하기 위해 포트 상태 데이터베이스를 사용할 것이다.
포트 상태 데이터베이스(46)가 FDU(42)에 의해 전송 결정을 행하는데 사용되므로, 포트 상태 테이블이 각각의 포트의 상태에 대한 현재 정보를 포함하도록, 계속해서 상기 포트 상태 테이블을 업데이트하는 것이 중요하다. 각각의 라인 카드가 하나 이상의 FDU를 가지므로, 각각의 FDU(각각의 라인 카드에서)는 로컬 네트워크 소자 내의 모든 다른 라인 카드들 내의 FDU들 뿐만 아니라 클러스터 내의 다른 네트워크 소자들 내의 모든 다른 FDU들과 동기화할 필요가 있다.
하나의 실시예에서, 각각의 라인 카드는 하트비트(heartbeat) 타이머들을 유지한다. 하트비트 타이머들 중 특정한 하나가 만료될 때마다, 하트비트 엔진(heartbeat engine)(54)은 하트비트 패킷을 생성하고 하트비트 패킷을 상기 라인 카드 상의 로컬 FDU(42)로 송신한다. 하트비트 패킷은 로컬 FDU에 상기 라인 카드상의 포트들의 상태를 고지하기 위해서 상기 라인 카드상의 모든 포트들의 로컬 물리적 링크 상태를 반송(carry)한다. 패킷은 포괄 포트 ID(Global Port ID : GPID) 및 네트워크 소자 ID를 표시한다. FDU는 자체의 로컬 포트 상태 데이터베이스를 업데이트하기 위해서 이 상태를 사용한다. FDU는 또한 로컬 노드 내의 다른 모든 FDU들뿐만 아니라 클러스터 내의 다른 노드들에서의 다른 모든 FDU들로 패킷을 전송할 것이다. 각각의 FDU는 자체의 포트 상태 데이터베이스를 업데이트하기 위해 패킷에 의해 반송되는 포트 상태를 사용한다.
자기 자신의 포트 상태 정보를 수집/보고하는 것과 연관된 타이머를 유지하는 것 외에도, 각각의 라인 카드/FDU는 또한 로컬 노드 내의 다른 모든 FDU들 및 클러스터 내의 다른 노드들에서의 다른 모든 FDU들과 연관된 타이머들의 세트를 유지할 것이다. 각각의 FDU들은 모든 다른 로컬 및 원격 FDU로부터 정기적인 하트비트 패킷들을 수신할 것을 예상한다. 그러므로, 로컬 수신 타이머는 FDU 마다(로컬 네트워크 소자에서의 각각의 FDU뿐만 아니라 클러스터 내의 각각의 원격 네트워크 소자 상의 각각의 FDU에 대하여) 유지된다. FDU 고장(로컬 또는 원격)은 대응하는 수신 타이머가 만료되는 경우에 검출된다. 하트비트 패킷이 수신 타이머의 만료 전에 수신되지 않으면, FDU와 연관된 각각의 포트는 DOWN으로 설정되어 FDU가 복구될 때까지 패킷들이 상기 FDU와 연관되는 포트들로 송신되지 않도록 한다.
하트비트 패킷들은 FDU들이 상태 정보를 서로 전달하도록 하고 각각의 FDU가 데이터평면 내의 모든 포트들의 상태를 인지하도록 한다. 후술되겠지만, 이는 데이터가 UP인 포트들을 향해 그리고 DOWN인 포트들로부터 멀어지도록 재지향될 수 있도록 데이터평면이 포트 고장들에 자동적으로 적응하도록 한다. 이 모든 것은 제어 평면의 개입 없이 발생하므로, 제어 평면에는 특정한 포트/라인 카드의 고장이 고지되지 않는다. 제어 평면이 데이터평면 고장들을 인지할 수 있도록 하기 위해, 관리/제어 프로세서(44)가 하트비트 패킷들을 자체의 로컬 FDU(42)로 그리고 자체의 로컬 FDU(42)로부터 정기적으로 삽입하고 추출한다. 각각의 삽입된 하트비트 패킷은 타킷(target) FDU 및 관련된 포트들을 통하여 완전하게 루프화(loop)된 후에 프로세서로 역으로 추출된다. 관리 하트비트 패킷은 들어오고 나가는 데이터경로들 모두에서 모든 기능 블록들을 가로질러 지난다. 제어 프로세서가 이 종류의 관리 하트비트 패킷을 삽입할 때마다, 제어 프로세서는 자체의 대응하는 수신 타이머를 킥오프(kickoff)한다. 제어 프로세서는 수신 타이머가 만료되는 경우 라인 카드의 고장을 검출한다. 프로세서는 이 정보를 사용하여 제어 평면(30)에 전달될 시스템 알람을 설정한다. 그러므로 제어 평면은 데이터 평면 고장에 대하여 인지할 수 있다. 그러나, 데이터 평면이 포트 고장들에 적응하는 자가 수리(self-healing) 메커니즘을 가지고 있고 이에 따라 트래픽을 재지향하기 때문에, 제어 평면이 재지향 트래픽에 관여될 필요가 없으므로, 고장의 제어 평면의 통지는 네트워크 소자를 통하는 트래픽의 복구에 중요하지 않다.
하트비트 패킷들은 또한 각각의 FDU에 의해 자체의 포트들의 상태를 결정하는데 사용된다. 하나의 실시예에서, 각각의 FDU는 논리적/가상 접속으로 구성되는 접속 포트당 한 쌍의 타이머들을 유지한다. 타이머들 중 하나는 접속을 통해 송신되는 하트비트 패킷들을 생성하는데 사용된다. 다른 타이머(수신 타이머)는 접속 실패를 검출하는데 사용된다. 이 타이머는 접속의 다른 종단으로부터의 하트비트 패킷이 제때에 수신되지 않는 경우 만료한다. FDU는 자신의 포트 상태 테이블을 하트비트 패킷들의 도착 및 수신 타이머 만료들로 업데이트한다.
각각의 라인 카드상의 각각의 FDU는 자기 자신의 포트 상태 테이블(46)을 유지한다. 이 테이블은 물리적 링크 상태들 및 자체의 로컬 포트들뿐만 아니라 클러스터 내의 모든 FDU들의 모든 원격 포트들에 대한 접속 상태들을 유지한다. FDU는 수신된 하트비트 패킷들 및 타이머 만료 메시지들(접속 타임 아웃(time out) 또는 원격 FDU 고장에 의한)을 사용하여 테이블을 업데이트한다. 상기 테이블은 두 세그먼트들로 분할된다: 로컬 노드에 속하는 포트 상태들 및 원격 노드들에 속하는 포트 상태들. 포트 상태 테이블은 또한 MLT 및 SMLT 그룹 정보를 유지한다. 포트 상태 테이블은 아래에 더욱 자세하게 설명된 바와 같이 신속한 재라우팅을 수행하기 위해 전송 논리에 의해 사용된다.
도 11은 네 노드들의 클러스트 내의 포트 상태 패킷의 확산을 도시하고, 도면에서 진한 화살표들은 클러스터에서의 모든 FDU들로의 포트 상태 패킷의 흐름을 나타낸다. 도면에 도시된 바와 같이, 특정한 FDU와 연관된 각각의 포트의 상태를 포함하는 패킷(1)이 생성될 것이다. 이 패킷은 좌측 상부의 네트워크 소자의 좌측 상부의 라인 카드에서 참조 번호 1로 도시된다. 이 패킷은, FDU가 자체의 포트들의 현재 상태를 반영하기 위해서 자체의 포트 상태 데이터베이스를 업데이트할 수 있도록, FDU로 통과될 것이다. 그리고나서 패킷은 로컬 노드 내에서 다른 FDU들 각각으로 통과될 것이다(화살표들 2). 하나의 실시예에서 이는 패킷이 스위치 패브릭에 의해 로컬 노드 내의 다른 모든 FDU들로 브로드캐스팅(broadcasting)되도록 함으로써 실행될 수 있다. 패킷은 또한 포트의 상태가 클러스터의 각각의 노드와 연관되는 각각의 FDU에 분배(화살표들 4)될 수 있도록 클러스터 내의 다른 노드들로 전송(화살표들 3)될 것이다. FDU가 포트 상태 정보를 포함하는 패킷을 수신할 때마다, FDU는 상기 정보를 사용하여 자기 자신의 포트 상태 데이터베이스를 업데이트할 것이다. 이는 클러스터 내의 모든 FDU들의 포트 상태 데이터베이스가 동기화되는 것을 가능하게 한다.
클러스터 내의 여러 네트워크 소자들, 네트워크 소자 내의 다수의 FDU들, 및 각각의 FDU에 의해 지원되는 다수의 포트들이 존재할 수 있다. 각각의 노드가 어떤 FDU들에 상태 패킷들이 제공되었는지를 추적하고, 특정한 포트 상태 패킷들을 특정한 FDU들과 상관하는 것을 가능하게 하기 위해서, 번호화 스킴(numbering scheme)이 실행될 수 있다. 바람직하게도 번호화 스킴은 클러스터 내의 각각의 FDU가 고유하게 식별될 수 있도록 고유한 크기의 클러스터가 되도록 실행된다. 하나의 실시예에서, 포트 상태 패킷은 자체의 포트들 각각에 대한 정보를 반송한다. 패킷은 소스 노드 ID 및 포괄 포트 ID(GOID)를 지정할 것이다. 포괄 포트 ID는 포트가 포트 데이터베이스 내에서 고유하게 식별되도록 하는 포괄적 고유 식별자(노드 내에서 포괄적으로 고유한)이다.
이전의 메시지들은 포트 상태가 데이터경로 내의 포트들 사이에서 동기화되는 것을 가능하게 하기 위해 FDU들이 메시지들을 어떻게 교환하는지를 기술하였다. 동작 시에, 이 포트 상태 정보는 선택된 포트가 UP인 신뢰성있는 특정한 데이터 패킷을 위하여 FDU들이 이용 가능한 포트를 선택하는 것을 가능하게 할 것이다. 포트들이 Down하게 되면, 클러스터 내의 FDU들은 상기 포트들을 선택하는 것을 중단할 것이고 대신에 패킷을 처리하는데 사용하기 위해서 다운 포트와 연관되는 MLT/SMLT 내에서의 대안 포트들을 선택할 것이다. 따라서, 데이터경로는 제어 평면을 수반하지 않고 패킷들을 이용 가능한 대안 포트들로 재라우팅하도록, 자동적으로 포트 고장들, 라인 카드 실패들 등에 적응할 수 있다. 그러므로, 패킷들의 재라우팅은 네트워크 소자 내에서 그리고 네트워크 소자들의 클러스터들 사이에서 10ms 이내로 신속하게 행해질 것이다.
도 12는 본원에서 개시되는 예시적인 구조를 설명하는데 사용하기 적합한 포트 상태 테이블 애플리케이션(application)(140-1) 및 포트 상태 테이블 프로세스(140-2)를 실행하거나, 운영하거나, 해석하거나, 동작시키거나, 그렇지 않으면 수행하는 전송 데이터 유닛(FDU)(110)의 예시적인 아키텍처를 도시한 블록도이다. 본 예에서 도시되는 바와 같이, FDU(110)는 데이터 버스와 같은 상호 접속 메커니즘(111), 또는 메모리 시스템(112), 프로세서(113), 입력/출력 인터페이스(114), 및 통신 인터페이스(115)를 결합하는 다른 회로 소자를 포함한다. 통신 인터페이스(115)는 FDU(110)가 네트워크(도시되지 않음)상의 다른 디바이스들(즉, 다른 컴퓨터들)과 통신할 수 있게 한다.
메모리 시스템(112)은 임의의 유형의 컴퓨터 판독 가능 매체이고, 이 실시예에서, 본원에 설명된 바와 같이 포트 상태 테이블 애플리케이션(140-1)으로 인코딩된다. 포트 상태 테이블 애플리케이션(140-1)이 본원에 기술된 다른 실시예들에 따라 프로세싱 기능을 지원하는 데이터 및/또는 논리 명령들과 같은 소프트웨어 코드(예를 들어, 메모리 내에 또는 제거 가능 디스크와 같은 다른 컴퓨터 판독 가능 매체 상에 저장되는 코드)로서 구현될 수 있다. FDU(110)의 동작 중에, 포트 상태 테이블 애플리케이션(140-1)의 논리 명령들을 런칭(launching), 운영, 실행, 해석 그렇지 않으면 수행하기 위해서, 프로세서(113)는 상호 접속부(111)를 통해 메모리 시스템(112)에 액세스한다. 이 방식으로의 포트 상태 테이블 애플리케이션(140-1)의 실행은 포트 상태 테이블 프로세스(140-2)에서의 프로세싱 기능을 발생시킨다. 즉, 포트 상태 테이블 프로세스(140-2)는 런타임(runtime)에서 FDU(110)에서의 프로세서(113) 내부에서 또는 상기 프로세서(113) 상에서 수행하거나 실행하는 포트 상태 테이블 애플리케이션(140-1)(또는 전체 포트 상태 테이블 애플리케이션(140-1))의 하나 이상의 부분들 또는 런타임 사례들을 표시한다.
본원에 개시되는 예시적인 구성들은 포트 상태 테이블 애플리케이션(140-1) 자체(즉, 실행되지 않은 또는 수행하지 않은 논리 명령들 및/또는 데이터의 형태로)를 포함하는 것에 주목하라. 포트 상태 테이블 애플리케이션(140-1)은 컴퓨터 판독 가능 매체(플로피 디스크와 같은), 하드 디스크, 전자, 자기, 광학 또는 다른 컴퓨터 판독 가능 매체에 저장될 수 있다. 포트 상태 테이블 애플리케이션(140-1)은 또한, 펌웨어(firmware), ROM(read only memory)와 같은 메모리 시스템(112)에, 또는 이 예에서, 예를 들어 RAM(random access memory) 내에서 수행가능한 코드로서 저장될 수 있다. 이 실시예들 외에도, 다른 실시예들은 프로세서(113)에서의 포트 상태 테이블 애플리케이션(140-1)이 포트 상태 테이블 프로세스(140-2)와 같이 실행되는 것을 본원에서 포함하는 것이 또한 주목되어야 한다. 당업자는 FDU(110)가 다른 프로세스들 및/또는 본 예에서 도시되지 않은 운영 시스템과 같은 소프트웨어 및 하드웨어 컴포넌트들을 포함할 수 있음을 이해할 것이다.
동작 중에, FDU(110)의 프로세서(113)는 포트 상태 테이블 애플리케이션(140-1)의 논리 명령들을 런칭(launching), 운영, 실행, 해석 그렇지 않으면 수행하기 위해서, 상호 접속부(111)를 통해 메모리 시스템(112)에 액세스한다. 포트 상태 테이블 애플리케이션(140-1)은 포트 상태 테이블 프로세스(140-2)에서 프로세싱 기능을 발생시킨다. 즉, 포트 상태 테이블 프로세스(140-2)는 컴퓨터 시스템(100)에서의 프로세서(113) 내부에서 또는 상기 프로세스(113) 상에서 수행하는 포트 상태 테이블 애플리케이션(140-1)(또는 전체 애플리케이션)의 하나 이상의 부분들을 표시한다.
포트 상태 테이블 프로세스(140-2) 이외에, 본원에서의 실시예들이 포트 상태 테이블 애플리케이션(140-1) 자체(즉, 실행되지 않은 또는 수행하지 않은 논리 명령들 및/또는 데이터)를 포함할 수 있음에 주목해야 한다. 포트 상태 테이블 애플리케이션(140-1)은 플로피 디스크, 하드 디스크, 광학 매체와 같은 컴퓨터 판독 가능 매체에 저장될 수 있다. 포트 상태 테이블 애플리케이션(140-1)은 또한 펌웨어, ROM과 같은 메모리형 시스템에, 또는 이 예에서와 같이, 메모리 시스템(112) 내의(예를 들어 임의 액세스 메모리 또는 RAM) 내의 실행 가능 코드로 저장될 수 있다.
이 실시예들 이외에도, 다른 실시예들은 프로세서(113)에서의 포트 상태 테이블 애플리케이션(140-1)이 포트 상태 테이블 프로세스(140-2)와 같이 실행되는 것을 본원에서 포함하는 것이 또한 주목되어야 한다. 당업자는 FDU(110)가 다른 프로세스들 및/또는 FDU(110)와 연관된 하드웨어 자원들의 할당 및 사용을 제어하는 운영 체제와 같은 소프트웨어 및 하드웨어 컴포넌트들을 포함할 수 있음을 이해할 것이다.
도 13 및 도 14에서는 현재 개시된 방법들의 흐름도들이 도시된다. 직사각 요소들은 본원에서 "프로세싱 블록"으로 표시되고 컴퓨터 소프트웨어 명령들 또는 명령들의 그룹들을 나타낸다. 대안으로, 프로세싱 블록들은 디지털 신호 프로세서 회로 또는 주문형 반도체(applicatin specific integrated circuit: ASIC)와 같은 기능적 등가 회로들에 의해서 수행되는 단계들을 나타낸다. 상기 흐름도들은 임의의 특정한 프로그래밍 언어의 구문을 도시하지 않는다. 오히려, 흐름도들은 당업자라면 누구라도 본 발명에 따라 요구되는 프로세싱을 수행하는 회로들을 제조하거나 컴퓨터 소프트웨어를 생성하는데 필요한 기능 정보를 도시한다. 루프들 및 변수들의 초기화 및 임시 변수들의 사용과 같은 많은 루틴 프로그램(routine program) 요소들이 도시되지 않음이 주목되어야 한다. 본원에서 달리 지시되지 않으면, 기술되는 특정한 시퀀스의 단계들은 단지 설명적인 것이며 본 발명의 정신을 벗어나지 않고 변형될 수 있음이 당업자에 의해 인식될 것이다. 그러므로, 달리 진술되지 않으면, 후술되는 단계들은, 가능하면, 단계들이 임의의 편리한 또는 원하는 순서로 수행될 수 있는 비순서적인 의미이다.
이제 도 13을 참조하면, 네트워크 소자의 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법(200)의 특정한 실시예가 도시된다. 방법(200)은 제 1 전송 데이터 유닛(FDU)과 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정하는 것을 개시하는 프로세싱 블록(202)으로 시작하며, 상기 제 1 FDU는 네트워크 소자의 전송 평면 내에서 전송 기능들을 구현하는 복수의 FDU들 중 하나이다.
프로세싱 블록(204)은 결정된 상태를 사용하여 제 1 FDU와 연관되는 제 1 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하는 단계를 진술한다. 프로세싱 블록(206)에 도시되는 바와 같이, 제 1 포트 상태 데이터베이스는 로컬 포트 데이터 테이블 및 원격 포트 데이터 테이블을 포함하고, 여기서 로컬 포트들에 대한 물리적 링크 상태들 및 접속 상태들은 로컬 포트 데이터 테이블에서 유지되고 원격 포트들에 대한 물리적 링크 상태들 및 접속 상태들은 원격 포트 데이터 테이블에서 유지된다. 프로세싱 블록(208)에서 또한 도시되는 바와 같이, 상기 로컬 포트 데이터 테이블 내의 제 1 FDU 상에 있는 멀티-링크 트렁크(MLT) 포트 부재 상태를 유지하고 원격 포트 데이터 테이블 내의 다른 FDU들 상에 있는 멀티-링크 트렁크(MLT) 포트 부재를 유지하는 단계를 포함한다.
프로세싱은 프로세싱 블록(210)으로 계속되고, 프로세싱 블록(210)은, 네트워크 소자 상의 각각의 다른 FDU들에 결정된 상태를 송신하여 상기 다른 FDU들 각각이 포트들의 제 1 세트의 상태를 상기 각각의 다른 FDU에 로컬한 포트 상태 데이터베이스에 저장하는 것을 가능하게 하는 단계를 기술한다. 프로세싱 블록(212)은 제 1 포트 상태 데이터베이스에서 로컬 포트들 및 원격 포트들에 대한 물리적 링크 상태들 및 접속 상태들을 유지하는 단계를 개시한다. 프로세싱 블록(214)은 전송 평면에 의해 포트 상태 데이터베이스를 사용하여 패킷들의 신속한 재라우팅을 수행하는 단계를 기술한다.
이제 도 14를 참조하면, 포트 상태 테이블을 업데이트하기 위한 방법(250)의 특정한 실시예가 도시된다. 방법(250)은 제 1 FDU를 포함하는 라인 카드상의 포트들의 로컬 물리적 링크 상태를 포함하는 하트비트 패킷을 수신하는 단계를 개시하는 프로세싱 블록(252)으로 시작하고, 여기서, 제 1 FDU는 하트비트 패킷의 라인 카드상의 포트들의 로컬 물리적 링크 상태를 사용하여 포트 상태 데이터베이스를 업데이트한다.
프로세싱 블록(254)은 하트비트 패킷들이 다른 FDU들로부터 수신되는지를 결정하기 위해 다른 FDU들 각각에 대한 타이머를 유지하는 단계를 진술하고, 여기서, 타이머가 상기 타이머와 연관되는 FDU로부터 하트비트 패킷을 수신하기 전에 만료하는 경우, 상기 FDU와 연관되는 각각의 포트가 DOWN 상태에 있다고 결정되어 상기 FDU가 복구될 때까지 패킷들이 DOWN 상태를 갖는 포트들로 송신되지 않는다.
프로세싱 블록(256)은 제 1 FDU의 접속된 포트당 한 쌍의 로컬 타이머들을 유지하는 단계를 기술하고, 접속된 포트는 논리적/가상 접속으로 구성되고, 로컬 타이머들 중 하나는 접속된 포트를 통해 송신될 하트비트 패킷들을 생성하는데 사용되고 로컬 타이머들 중 다른 하나는 송신된 하트비트 패킷이 수신되지 않을 때에 접속 실패가 존재할 때 접속된 포트의 접속 실패를 검출하는데 사용된다. 프로세싱 블록(258)은 제 1 FDU가 하트비트 패킷들의 도착 및 타이머 만료들에 의해 자신의 포트 상태 데이터베이스를 업데이트하는 것을 개시한다.
프로세서(들)를 통합하는 디바이스(들) 또는 컴퓨터 시스템들은 예를 들어, 개인용 컴퓨터(들), 워크스테이션(workstation)(들)(예를 들어, Sun, HP), PDA(personal digital assistant)들, 셀룰러 전화(들), 랩탑(들), 휴대용 컴퓨터(들)와 같은 휴대용 디바이스(들), 또는 본원에서 제공되는 바와 같이 동작할 수 있는 프로세서(들)와 통합될 수 있는 다른 디바이스(들)를 포함할 수 있다. 따라서, 본원에서 제공되는 디바이스들은 철저하게 규명된 것은 아니며 단지 설명을 위해 제한하지 않게 제공된다.
"a microprocessor" 및 "a processor", 또는 "the microprocessor" 및 "the processor"의 언급은 자립형 및/또는 분배형 환경(들)에서 통신할 수 있어서 다른 프로세서들과 유선 또는 무선 통신을 통해 통신하도록 구성될 수 있는 하나 이상의 마이크로프로세서들을 포함하는 것으로 이해될 수 있고, 여기서 그와 같은 하나 이상의 프로세서는 유사한 또는 상이한 디바이스들일 수 있는 하나 이상의 프로세서-제어 디바이스들에서 동작하도록 구성될 수 있다. 그러므로 그와 같은 "microprocessor" 또는 "processor" 용어를 사용하는 것은 또한 중앙 처리 장치, 산술 논리 연산 유닛(arithmetic logic unit), 및 주문형 반도체(IC), 및/또는 태스크 엔진(task engine)을 포함하는 것으로 이해될 수 있으며, 그와 같은 예들은 설명을 위해서 제공되며 제한되지 않는다.
더욱이, 메모리의 언급은, 달리 지정되지 않으면, 프로세서-제어 디바이스의 내부에, 프로세서 제어 디바이스 외부에 있을 수 있고/있거나 다양한 통신 프로토콜들을 사용하여 유선 또는 무선 네트워크를 통해 액세스될 수 있고, 달리 지정되지 않으면 외부 및 내부 메모리 디바이스들의 결합을 포함하도록 배열될 수 있는 하나 이상의 프로세서 판독 가능 및 액세스 가능 메모리 소자들 및/또는 컴포넌트들을 포함할 수 있고, 여기서 그와 같은 메모리는 애플리케이션에 기반하여 인접하고/하거나 분할될 수 있다. 따라서, 데이터베이스의 언급은 하나 이상의 메모리 조합들을 포함하는 것으로 이해될 수 있고, 여기서 그와 같은 언급들은 상업적으로 구입 가능한 데이터베이스 제품들(예를 들어, SQL, Informix, Oracle) 및 또한 독점적 데이터베이스(proprietary database)를 포함할 수 있고, 또한 링크들, 큐들(queues), 그래프들, 트리들(trees)과 같은 연관 메모리에 대한 다른 구조들을 포함할 수 있으며, 그와 같은 구조들은 설명을 위해서 제공되며 제한되지 않는다.
네트워크의 언급들은, 달리 제공되지 않으면, 하나 이상의 인트라넷들(intranets) 및/또는 인터넷뿐만 아니라 가상 네트워크를 포함할 수 있다. 본원에서 마이크로프로세서 명령들 또는 마이크로프로세서-실행 가능 명령들의 언급들은 상술한 바에 따라, 프로그램 가능 하드웨어를 포함하는 것으로 이해될 수 있다.
달리 지정되지 않으면, 단어 "실질적으로"의 사용은 정확한 관계, 상태, 배열, 방향 및/또는 특성, 및 개시된 방법들 및 시스템들에 실질적으로 영향을 미치지 않는 범위에서 당업자 누구라도 이해되는 이들의 편차들을 포함하는 것으로 해석될 수 있다.
본 명세서의 전체에 걸쳐, 명사를 한정하는 관사들 "a" 또는 "an"의 사용은 달리 특별하게 진술되지 않으면, 편의상 사용되고 하나 또는 한정된 명사보다 더 많은 명사를 포함하는 것으로 이해될 것이다.
기술되고/되거나 그와 달리 도면들을 통해 도시되면서, 그 밖의 다른 것과 통신하고, 연관되고, 그리고/또는 그에 기반하는 소자들, 컴포넌트들, 모듈들, 및/또는 이들의 부분들은, 본원에 달리 명기되지 않으면, 직접적 및/또는 간접적인 방식으로 통신하고, 연관되고, 그리고/또는 기반하는 것으로 이해될 수 있다.
방법들 및 시스템들이 이의 특정한 실시예들에 대하여 기술되었을지라도, 방법 및 시스템들은 그렇게 제한되지 않는다. 명백하게 많은 수정들 및 변형들이 상술한 내용들의 관점에서 명백할 것이다. 본원에서 기술되고 도시된 세부사항들, 재료들 및 부분들의 배열에 있어서의 많은 추가적인 변화들이 당업자에 의해 행해질 수 있다.
본 발명의 바람직한 실시예들을 기술하는 것은 이제 이 개념들을 통합하는 다른 실시예들이 사용될 수 있다는 것이 당업자에게 명확해질 것이다. 추가적으로, 본 발명의 일부로서 포함되는 소프트웨어는 컴퓨터 사용 가능 매체를 포함하는 컴퓨터 프로그램 제품에서 구현된다. 예를 들어, 그와 같은 컴퓨터 사용 가능 매체는 저장된 컴퓨터 판독 가능 프로그램 코드 세그먼트들을 갖는 하드 드라이브 디바이스, CD-ROM, DVD-ROM, 또는 컴퓨터 디스켓과 같은 판독 가능 메모리 디바이스를 포함할 수 있다. 따라서, 본 발명은 기술된 실시예들로 제한되지 않고, 오히려 첨부된 청구항들의 정신 및 범위에 의해서만 제한되어야만 한다고 언급된다.

Claims (10)

  1. 네트워크 소자의 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법에 있어서:
    상기 네트워크 소자에 의해, 제 1 전송 데이터 유닛(FDU)과 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정하는 단계로서, 상기 제 1 FDU는 상기 네트워크 소자의 상기 전송 평면 내에서 전송 기능들을 구현하는 복수의 FDU들 중 하나이고, 상기 포트들의 제 1 세트의 상태는 상기 제 1 FDU에서 수신된 하트비트 패킷들(heartbeat packets)에 기초하여 결정되고, 상기 하트비트 패킷들은 라인 카드에 의해 생성되고, 상기 라인 카드는 상기 제 1 FDU를 포함하고 라인 카드상의 포트들의 로컬 물리적 링크 상태를 포함하는, 상기 포트들의 제 1 세트의 상태를 정기적으로 결정하는 단계;
    상기 네트워크 소자에 의해, 상기 결정된 상태를 사용하여 상기 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하는 단계로서, 상기 제 1 FDU는 상기 포트 상태 데이터베이스를 업데이트하기 위해 상기 라인 카드상의 포트들의 로컬 물리적 링크 상태를 사용하는, 상기 결정된 상태를 사용하여 상기 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하는 단계; 및
    다른 FDU들 각각이 상기 다른 FDU들 각각에 로컬한 포트 상태 데이터베이스 내에 상기 포트들의 제 1 세트의 상태를 저장할 수 있도록 상기 결정된 상태를 상기 네트워크 소자 상의 다른 FDU들에 송신하는 단계를 포함하는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  2. 제 1 항에 있어서, 상기 제 1 포트 상태 데이터베이스에서의 로컬 포트들 및 원격 포트들에 대한 물리적 링크 상태들 및 접속 상태들을 유지하는 단계를 더 포함하는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  3. 제 2 항에 있어서, 상기 제 1 포트 상태 데이터베이스는 로컬 포트 데이터 테이블 및 원격 포트 데이터 테이블을 포함하고, 로컬 포트들에 대한 물리적 링크 상태들 및 접속 상태들은 상기 로컬 포트 데이터 테이블에서 유지되고, 원격 포트들에 대한 물리적 링크 상태들 및 접속 상태들은 상기 원격 포트 데이터 테이블에서 유지되는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  4. 제 3 항에 있어서, 상기 로컬 포트 데이터 테이블 내의 상기 제 1 FDU 상에 있는 멀티-링크 트렁크(MLT; multi-link trunk) 포트 부재(member) 상태를 유지하고 상기 원격 포트 데이터 테이블 내의 다른 FDU들 상에 있는 멀티-링크 트렁크(MLT) 포트 부재(member) 상태를 유지하는 단계를 더 포함하는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  5. 삭제
  6. 제 1 항에 있어서, 하트비트 패킷들이 상기 다른 FDU들로부터 수신되는지를 결정하기 위해 상기 다른 FDU들 각각에 대한 타이머를 유지하는 단계로서, 타이머가 상기 타이머와 연관되는 상기 FDU로부터 하트비트 패킷을 수신하기 전에 만료하는 경우, 상기 FDU와 연관되는 각각의 포트가 DOWN 상태에 있다고 결정되어 상기 FDU가 복구될 때까지 패킷들이 상기 DOWN 상태를 갖는 포트들로 송신되지 않는, 상기 타이머를 유지하는 단계를 더 포함하는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  7. 제 6 항에 있어서, 상기 제 1 FDU의 접속된 포트당 한 쌍의 로컬 타이머들을 유지하는 단계로서, 상기 접속된 포트는 논리적/가상 접속으로 구성되고, 상기 로컬 타이머들 중 하나는 상기 접속된 포트를 통해 송신될 하트비트 패킷들을 생성하는데 사용되고 상기 로컬 타이머들 중 다른 하나는 상기 송신된 하트비트 패킷이 수신되지 않을 때에 접속 실패가 존재할 때 상기 접속된 포트의 접속 실패를 검출하는데 사용되는, 상기 제 1 FDU의 접속된 포트당 한 쌍의 로컬 타이머들을 유지하는 단계를 더 포함하는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  8. 제 7 항에 있어서, 상기 제 1 FDU는 하트비트 패킷들의 도착 및 타이머 만료들에 의해 자신의 포트 상태 데이터베이스를 업데이트하는, 전송 평면에서 포트 상태 데이터베이스를 유지하는 방법.
  9. 네트워크 소자에 있어서:
    메모리;
    프로세서;
    통신 인터페이스;
    상기 메모리, 상기 프로세서 및 상기 통신 인터페이스를 결합하는 상호접속 메커니즘을 포함하고;
    상기 메모리는, 상기 프로세서상에서 수행될 때 정보를 프로세싱하기 위한 프로세스를 제공하는 포트 상태 데이터베이스를 유지하는 애플리케이션에 의해 인코딩되고, 상기 프로세스는 상기 네트워크 소자로 하여금:
    상기 네트워크 소자의 전송 평면 내에서 전송 기능들을 구현하는 복수의 전송 데이터 유닛(FDU)들 중 하나인 제 1 FDU와 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정하고, 상기 포트들의 제 1 세트의 상태는 상기 제 1 FDU에서 수신된 하트비트 패킷들에 기초하여 결정되고, 상기 하트비트 패킷들은 라인 카드에 의해 생성되고, 상기 라인 카드는 상기 제 1 FDU를 포함하고 라인 카드상의 포트들의 로컬 물리적 링크 상태를 포함하고;
    상기 결정된 상태를 사용하여 상기 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하고, 상기 제 1 FDU는 상기 포트 상태 데이터베이스를 업데이트하기 위해 상기 라인 카드상의 포트들의 로컬 물리적 링크 상태를 사용하고;
    다른 FDU들 각각이 상기 다른 FDU들 각각에 로컬한 포트 상태 데이터베이스 내에 상기 포트들의 제 1 세트의 상태를 저장할 수 있도록 상기 결정된 상태를 상기 네트워크 소자 상의 다른 FDU들에 송신하는 동작들을 수행하도록 하는, 네트워크 소자.
  10. 포트 상태 데이터베이스를 유지하기 위하여 컴퓨터 판독 가능 코드를 갖는 컴퓨터 판독 가능 저장 매체에 있어서, 상기 컴퓨터 판독 가능 저장 매체는 컴퓨터 시스템이:
    네트워크 소자에 의해, 네트워크 소자의 전송 평면 내에서 전송 기능들을 구현하는 복수의 전송 데이터 유닛(FDU)들 중 하나인 제 1 FDU와 연관되는 포트들의 제 1 세트의 상태를 정기적으로 결정하고, 상기 포트들의 제 1 세트의 상태는 상기 제 1 FDU에서 수신된 하트비트 패킷들에 기초하여 결정되고, 상기 하트비트 패킷들은 라인 카드에 의해 생성되고, 상기 라인 카드는 상기 제 1 FDU를 포함하고 라인 카드상의 포트들의 로컬 물리적 링크 상태를 포함하고;
    네트워크 소자에 의해, 상기 결정된 상태를 사용하여 상기 제 1 FDU와 연관되는 포트 상태 데이터베이스의 제 1 포트 상태 테이블을 업데이트하고, 상기 제 1 FDU는 상기 포트 상태 데이터베이스를 업데이트하기 위해 상기 라인 카드상의 포트들의 로컬 물리적 링크 상태를 사용하고;
    다른 FDU들 각각이 상기 다른 FDU들 각각에 로컬한 포트 상태 데이터베이스 내에 상기 포트들의 제 1 세트의 상태를 저장할 수 있도록 상기 결정된 상태를 네트워크 소자 상의 다른 FDU들에 송신하는 것을 포함하는 동작들을 수행하는 명령들을 포함하는, 컴퓨터 판독 가능 저장 매체.
KR1020100044964A 2009-05-13 2010-05-13 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치 KR101700141B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17802009P 2009-05-13 2009-05-13
US61/178,020 2009-05-13
US12/772,457 2010-05-03
US12/772,457 US8619605B2 (en) 2009-05-13 2010-05-03 Method and apparatus for maintaining port state tables in a forwarding plane of a network element

Publications (2)

Publication Number Publication Date
KR20100122870A KR20100122870A (ko) 2010-11-23
KR101700141B1 true KR101700141B1 (ko) 2017-02-13

Family

ID=42542789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100044964A KR101700141B1 (ko) 2009-05-13 2010-05-13 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US8619605B2 (ko)
EP (1) EP2252013A1 (ko)
JP (1) JP5361794B2 (ko)
KR (1) KR101700141B1 (ko)
CN (1) CN101888333B (ko)
BR (1) BRPI1002963A2 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8139492B1 (en) * 2009-06-09 2012-03-20 Juniper Networks, Inc. Local forwarding bias in a multi-chassis router
US8355319B2 (en) * 2011-02-02 2013-01-15 Telefonaktiebolaget L M Ericsson (Publ) Multicast dual join for ring network topologies
CN102447639B (zh) * 2012-01-17 2016-03-09 华为技术有限公司 一种策略路由方法及装置
JP2013197627A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd データ処理装置、データ送受信装置、及びデータ送受信制御方法
WO2013136526A1 (ja) * 2012-03-16 2013-09-19 株式会社日立製作所 分散アプリケーション統合型ネットワークシステム
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
CN104104570B (zh) * 2013-04-07 2018-09-04 新华三技术有限公司 Irf系统中的聚合处理方法及装置
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
US9577932B2 (en) 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) * 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US9667494B2 (en) * 2014-06-30 2017-05-30 International Business Machines Corporation Abstraction layer and distribution scope for a logical switch router architecture
CN104184834A (zh) * 2014-09-11 2014-12-03 东莞宇龙通信科技有限公司 文件传输的方法、文件传输的装置和终端
US10003525B2 (en) 2014-11-14 2018-06-19 Fisher-Rosemount Systems, Inc. Methods and apparatus to provide redundancy in a process control system
CN105850077B (zh) * 2014-12-01 2019-06-28 华为技术有限公司 心跳包定时器的识别方法和设备
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link
CN105049248A (zh) * 2015-07-09 2015-11-11 北京宇航系统工程研究所 一种sdh设备的网络状态快速检测方法
US9628480B2 (en) * 2015-07-27 2017-04-18 Bank Of America Corporation Device blocking tool
JP6468566B2 (ja) * 2016-02-03 2019-02-13 日本電信電話株式会社 データ伝送制御システム及び方法、並びに、データ伝送制御プログラム
CN106059791B (zh) * 2016-05-13 2020-04-14 华为技术有限公司 一种存储系统中业务的链路切换方法和存储设备
US10382444B2 (en) * 2016-05-23 2019-08-13 Bank Of America Corporation Device blocking tool
US10404569B2 (en) * 2016-08-22 2019-09-03 General Electric Company Internet of things associate
US11042416B2 (en) * 2019-03-06 2021-06-22 Google Llc Reconfigurable computing pods using optical networks
CN109889411B (zh) * 2019-03-22 2020-09-11 新华三技术有限公司 一种数据传输的方法及装置
US11171863B2 (en) * 2019-08-12 2021-11-09 Hewlett Packard Enterprise Development Lp System and method for lag performance improvements
KR102217114B1 (ko) * 2020-07-24 2021-02-18 넷록스 주식회사 엣지 플랫폼 네트워크의 가속화 제어 방법 및 이를 사용하는 전자 장치
CN113852547B (zh) * 2021-09-10 2023-07-25 锐捷网络股份有限公司 一种报文转发方法、装置、线卡及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142680A1 (en) * 2002-01-28 2003-07-31 Naoki Oguchi Device, network, and system for forwarding frames between geographically dispersed user networks

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535489B1 (en) 1999-05-21 2003-03-18 Advanced Micro Devices, Inc. Method and apparatus in a network switch for handling link failure and link recovery in a trunked data path
US7099276B1 (en) 1999-05-24 2006-08-29 Broadcom Corporation Apparatus and method for distributing a load across a trunk group
US20060274647A1 (en) 2005-06-02 2006-12-07 Broadcom Corporation Dynamic port failover
US8189599B2 (en) * 2005-08-23 2012-05-29 Rpx Corporation Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
JP4851961B2 (ja) * 2007-02-27 2012-01-11 三菱電機株式会社 観測局、監視制御システム、監視制御コントローラ、通信制御装置、およびlanスイッチ装置
JP4830942B2 (ja) * 2007-03-28 2011-12-07 日本電気株式会社 通信装置、通信システム及びそれに用いるlag管理テーブル管理方法
CN101094157B (zh) * 2007-08-20 2011-09-21 中兴通讯股份有限公司 利用链路聚合实现网络互连的方法
CN101252532B (zh) * 2008-03-18 2010-08-25 华为技术有限公司 以太网链路聚合端口配置的方法和设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142680A1 (en) * 2002-01-28 2003-07-31 Naoki Oguchi Device, network, and system for forwarding frames between geographically dispersed user networks

Also Published As

Publication number Publication date
CN101888333B (zh) 2015-06-17
EP2252013A1 (en) 2010-11-17
US8619605B2 (en) 2013-12-31
KR20100122870A (ko) 2010-11-23
JP2010283811A (ja) 2010-12-16
US20100293200A1 (en) 2010-11-18
CN101888333A (zh) 2010-11-17
BRPI1002963A2 (pt) 2012-03-20
JP5361794B2 (ja) 2013-12-04

Similar Documents

Publication Publication Date Title
KR101700141B1 (ko) 네트워크 소자의 전송 평면에서 포트 상태 테이블들을 유지하기 위한 방법 및 장치
US8351431B2 (en) Method and apparatus for providing fast reroute of a multicast packet within a network element to an available port associated with a multi-link trunk
US8385335B2 (en) Method and apparatus for providing fast reroute of a unicast packet within a network element to an available port associated with a multi-link trunk
EP2252015B1 (en) Method and apparatus for providing fast reroute of a packet that may be forwarded on one of a plurality of equal cost multipath routes through a network
US8477791B2 (en) Method and apparatus for locally implementing port selection via synchronized port state databases maintained by the forwarding plane of a network element
CN107347021B (zh) 一种基于sdn网络可靠传输方法
CN104104570A (zh) Irf系统中的聚合处理方法及装置
US20140219289A1 (en) Handling stacking link failures in mdc device
WO2013017017A1 (en) Load balancing in link aggregation
US11228524B1 (en) Methods and apparatus for efficient use of link aggregation groups
EP3213441B1 (en) Redundancy for port extender chains
CN105915467A (zh) 一种面向软件定义的数据中心网络流量均衡方法及装置
US8432789B2 (en) Split multi-link trunking (SMLT) hold-down timer for internet protocol (IP) multicast
US9172599B1 (en) Fault tolerant folded Clos networks
WO2022012145A1 (zh) 一种负载均衡方法、装置和系统
US9590893B2 (en) System and method for management of network links by traffic type

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

Year of fee payment: 4