KR20220018065A - 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체 - Google Patents

패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체 Download PDF

Info

Publication number
KR20220018065A
KR20220018065A KR1020227001349A KR20227001349A KR20220018065A KR 20220018065 A KR20220018065 A KR 20220018065A KR 1020227001349 A KR1020227001349 A KR 1020227001349A KR 20227001349 A KR20227001349 A KR 20227001349A KR 20220018065 A KR20220018065 A KR 20220018065A
Authority
KR
South Korea
Prior art keywords
forwarding
node device
forwarding table
packet
path
Prior art date
Application number
KR1020227001349A
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 KR20220018065A publication Critical patent/KR20220018065A/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/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • 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/2803Home automation networks
    • H04L12/2823Reporting information sensed by appliance or service execution status of appliance services in a home automation network
    • 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/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations
    • 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/74Address processing for routing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint 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/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/54Organization of routing tables
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 출원은 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체를 개시하며, 통신기술 분야에 속한다. 상기 방법은 BIER 패킷을 포워딩하는 데 사용되며, 상기 방법은, 목적지 노드 디바이스가 네트워크 토폴로지가 변경된 것으로 결정할 때 타이머를 시작하고; 타이머가 만료되기 전에 목적지 노드 디바이스가 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축하며 - 이전 포워딩 테이블은 네트워크 토폴로지가 변경되기 전에 목적지 노드 디바이스에서 사용된 포워딩 테이블이고, 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 목적지 노드 디바이스에 의해 구축된 포워딩 테이블이며, 타이머는 타이머가 만료되기 전에 신규 포워딩 테이블의 구축이 완료되었음을 지시함 -; 그리고 타이머가 만료된 후, 목적지 노드 디바이스는 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고, 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩하는 것을 포함한다. 본 출원은 패킷 손실 및 초과 패킷을 방지하거나 줄일 수 있다.

Description

패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체
본 출원은 2019년 7월 5일에 중국 특허청에 출원되고 발명의 명칭이 "패킷 포워딩 방법 및 디바이스 그리고 컴퓨터가 판독 가능한 저장 매체"인 중국 특허 출원 번호 제201910606586.9호에 대한 우선권을 주장하는 바이며, 이러한 문헌의 내용은 그 전체로서 원용에 의해 본 명세서에 포함된다.
본 출원은 통신 기술 분야에 관한 것으로, 특히 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체에 관한 것이다.
비트 인덱스 명시적 복제(bit indexed explicit replication, BIER) 기술은 멀티캐스트 기술이다. BIER 기술에서 BIER 포워딩 라우터 식별자(BIER Forwarding Router id, BFR-id)는 네트워크의 각 에지 노드 디바이스에 대해 구성된다. 에지 노드 디바이스의 구성 정보는 내부 게이트웨이 프로토콜(Interior Gateway Protocol, IGP) 플러딩(flooding)을 통해 네트워크에 플러딩되므로, 네트워크의 각 노드는 각 BFR-id로 식별되는 디바이스를 결정할 수 있다. 또한, 네트워크 상의 각 노드는 IGP를 통해 제어 평면에 의해 플러딩된 정보를 기반으로 포워딩 테이블을 구축하고, 각 노드는 포워딩 테이블을 사용하여 포워딩 평면에서 BIER 패킷을 포워딩할 수 있다.
본 출원의 실시예는 관련 기술의 문제점을 해결하기 위한 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체를 제공한다. 기술적 솔루션은 다음과 같다.
일 측면에 따르면, 패킷 포워딩 방법이 제공된다. 상기 패킷 포워딩 방법은, BIER 패킷을 포워딩하는 데 사용되며, 상기 패킷 포워딩 방법은, 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때 상기 목적지 노드 디바이스가, 타이머를 시작하는 것; 상기 타이머가 만료되기 전에, 상기 목적지 노드 디바이스가 이전 포워딩 테이블을 사용하여 상기 BIER 패킷을 포워딩하고, 신규 포워딩 테이블을 구축하는 것 - 상기 이전 포워딩 테이블은 상기 네트워크 토폴로지가 변경되기 전에 상기 목적지 노드 디바이스에 의해 사용된 포워딩 테이블이고, 상기 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 상기 목적지 노드 디바이스에 의해 구축된 포워딩 테이블이며, 상기 타이머는 상기 타이머가 완료되기 전에 상기 신규 포워딩 테이블의 구축이 완료되었음을 지시함 -; 및 상기 타이머가 만료된 후, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 것을 포함한다.
네트워크 토폴로지가 변경될 때 목적지 노드 디바이스는 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 타이머가 만료되기 전에 신규 포워딩 테이블을 구축하며, 타이머 만료 후에 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고 신규 포워딩 테이블을 사용하여 BIER 패킷을 포워딩한다. 이렇게 하면 패킷 손실 및 초과 패킷을 방지하거나 줄일 수 있다.
예시적인 실시예에서, 상기 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때, 상기 패킷 포워딩 방법은, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 패킷 포워딩 경로에 루프(loop)가 존재하는지를 판정하는 것; 및 상기 타이머를 시작하기 전에, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하는 것을 더 포함한다.
타이머는 이전 포워딩 테이블에 따라 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정될 때만 시작된다. 이것은 루프가 존재할 때 타이머의 타이밍으로 인한 링크 혼잡(link congesti)을 방지한다.
예시적인 실시예에서, 상기 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때, 상기 패킷 포워딩 방법은, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 것; 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 목적지 노드 디바이스가 상기 타이머를 시작하지 않고, 상기 목적지 노드 디바이스가 상기 신규 포워딩 테이블을 구축하는 것; 및 상기 신규 포워딩 테이블의 구축이 완료된 후, 상기 목적지 노드 디바이스가 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 것을 더 포함한다.
이전 포워딩 테이블에 따라 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정될 때, 타이머가 시작되지 않고 신규 포워딩 테이블이 직접 구축된다. 신규 포워딩 테이블의 구축이 완료된 후 이전 포워딩 테이블이 신규 포워딩 테이블로 전환된다. BIER 패킷은 링크 혼잡을 피하기 위해 신규 포워딩 테이블에 따라 포워딩된다.
예시적인 실시 예에서, 상기 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때, 상기 패킷 포워딩 방법은, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 것; 및 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 목적지 노드 디바이스가 상기 타이머를 시작하지 않고, 상기 변경된 네트워크 토폴로지를 기반으로 상기 이전 포워딩 테이블을 업데이트하고, 업데이트된 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 것을 포함한다.
이전 포워딩 테이블에 따라 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정될 때, 타이머가 시작되지 않고 이전 포워딩 테이블이 직접 업데이트된다. BIER 패킷은 링크 혼잡을 피하기 위해 업데이트된 포워딩 테이블에 따라 포워딩된다.
예시적인 실시예에서, 상기 패킷 포워딩 경로는 상기 변경된 네트워크 토폴로지에 기반하여 계산되는 제1 경로 및 제2 경로를 포함한다. 상기 제1 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스로부터 상기 목적지 노드 디바이스의 각 이웃까지의 경로이다. 상기 제2 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 상기 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용한다. 상기 루프의 존재는 상기 제2 경로가 상기 목적지 노드 디바이스를 통해 이동하는(travel) 것을 의미한다.
예시적인 실시 예에서, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 것은, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 임의의 이웃에 대해, 상기 목적지 노드 디바이스가, 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로이면서 또한 상기 임의의 이웃의 포워딩 비트 마스크에 의해 지시된 경로가, 상기 목적지 노드 디바이스를 통해 이동하는지를 판정하는 것; 및 상기 변경된 네트워크 토폴로지에서 임의의 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동할 때, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하거나, 또는 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동하지 않을 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하는 것을 포함한다.
예시적인 실시 예에서, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 것은, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 루트(root)로 사용하는 것에 의해, 상기 변경된 네트워크 토폴로지에서 최단 경로 트리를 구축하는 것; 상기 목적지 노드 디바이스를 통해 상기 최단 경로 트리에 도달한 에지 노드 디바이스의 식별자를 순회하여(traverse) 비트 스트링을 획득하는 것; 상기 목적지 노드 디바이스의 이웃의 비트 스트링 및 포워딩 비트 마스크에 대해 AND 연산을 수행하는 것; 및 결과가 0일 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하거나, 또는 결과가 0이 아닐 때 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하는 것을 포함한다.
예시적인 실시 예에서, 상기 타이머가 만료되기 전에, 상기 목적지 노드 디바이스가 이전 포워딩 테이블을 사용하여 상기 BIER 패킷을 포워딩하고, 신규 포워딩 테이블을 구축하는 것은, 상기 타이머가 만료되기 전에, 상기 목적지 노드 디바이스가, 이전 다중 로드 밸런싱 엔트리(multiple load balancing entry)를 사용하여 상기 BIER 패킷을 포워딩하고, 로드 밸런싱 경로의 수량에 따라 신규 다중 로드 밸런싱 엔트리를 구축하는 것을 포함하고; 상기 타이머가 만료된 후, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 것은, 상기 타이머가 만료된 후, 상기 목적지 노드 디바이스가, 상기 다중 로드 밸런싱 엔트리의 포워딩 테이블을 상기 신규 다중 로드 밸런싱 엔트리로 전환하고, 상기 신규 다중 로드 밸런싱 엔트리에 따라 상기 BIER 패킷을 포워딩하는 것을 포함한다.
본 출원의 실시 예는 패킷 포워딩 노드 디바이스를 더 제공한다. 상기 패킷 포워딩 노드 디바이스는 BIER 패킷을 포워딩하도록 구성되며, 상기 패킷 포워딩 노드 디바이스는 네트워크 토폴로지가 변경되는 것으로 결정할 때 타이머를 시작하도록 구성된 시작 모듈; 상기 타이머가 만료되기 전에, 이전 포워딩 테이블을 사용하여 상기 BIER 패킷을 포워딩하도록 - 상기 이전 포워딩 테이블은 상기 네트워크 토폴로지가 변경되기 전에 상기 패킷 포워딩 노드 디바이스에 의해 사용된 포워딩 테이블임 - 구성된 포워딩 모듈; 및 상기 타이머가 만료되기 전에, 신규 포워딩 테이블을 구축하도록 - 상기 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 상기 패킷 포워딩 노드 디바이스에 의해 구축된 포워딩 테이블이며, 상기 타이머는 상기 타이머가 완료되기 전에 상기 신규 포워딩 테이블의 구축이 완료되었음을 지시함 - 구성된 구축 모듈을 포함하고, 상기 포워딩 모듈은 추가로, 상기 타이머가 만료된 후, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하도록 구성된다.
예시적인 실시 예에서, 상기 패킷 포워딩 노드 디바이스는, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈을 더 포함하고, 상기 타이머를 시작하기 전에, 상기 결정 모듈은, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정한다.
예시적인 실시 예에서, 상기 패킷 포워딩 노드 디바이스는, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈을 더 포함하고, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 시작 모듈이 상기 타이머를 시작하지 않고, 상기 구축 모듈은 상기 신규 포워딩 테이블을 구축하며, 상기 신규 포워딩 테이블의 구축이 완료된 후, 상기 포워딩 모듈이 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩한다.
예시적인 실시 예에서, 상기 패킷 포워딩 노드 디바이스는, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈을 더 포함하고, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 시작 모듈이 상기 타이머를 시작하지 않고, 상기 포워딩 모듈이 상기 변경된 네트워크 토폴로지를 기반으로 상기 이전 포워딩 테이블을 업데이트하고, 업데이트된 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하도록 구성된다.
예시적인 실시 예에서, 상기 패킷 포워딩 경로는 상기 변경된 네트워크 토폴로지에 기반하여 계산되는 제1 경로 및 제2 경로를 포함한다. 상기 제1 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스로부터 상기 목적지 노드 디바이스의 각 이웃까지의 경로이다. 상기 제2 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 상기 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용한다. 상기 루프의 존재는 상기 제2 경로가 상기 목적지 노드 디바이스를 통해 이동하는 것을 의미한다.
예시적인 실시 예에서, 상기 결정 모듈은, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 임의의 이웃에 대해, 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로이면서 또한 상기 임의의 이웃의 포워딩 비트 마스크에 의해 지시된 경로가, 상기 목적지 노드 디바이스를 통해 이동하는지를 판정하고; 그리고, 상기 변경된 네트워크 토폴로지에서 임의의 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동할 때, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하거나, 또는 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동하지 않을 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하도록 구성된다.
예시적인 실시 예에서, 상기 결정 모듈은, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 루트로 사용하는 것에 의해, 상기 변경된 네트워크 토폴로지에서 최단 경로 트리를 구축하고; 상기 목적지 노드 디바이스를 통해 상기 최단 경로 트리에 도달한 에지 노드 디바이스의 식별자를 순회하여 비트 스트링을 획득하며; 상기 목적지 노드 디바이스의 이웃의 비트 스트링 및 포워딩 비트 마스크에 대해 AND 연산을 수행하고; 그리고 결과가 0일 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하거나, 또는 결과가 0이 아닐 때 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하도록 구성된다.
예시적인 실시 예에서, 상기 포워딩 모듈은, 상기 타이머가 만료되기 전에, 이전 다중 로드 밸런싱 엔트리를 사용하여 상기 BIER 패킷을 포워딩하도록 구성되고, 상기 구축 모듈은 로드 밸런싱 경로의 수량에 따라 신규 다중 로드 밸런싱 엔트리를 구축하도록 구성되며; 그리고 상기 포워딩 모듈은, 상기 타이머가 만료된 후, 상기 다중 로드 밸런싱 엔트리의 포워딩 테이블을 상기 신규 다중 로드 밸런싱 엔트리로 전환하고, 상기 신규 다중 로드 밸런싱 엔트리에 따라 상기 BIER 패킷을 포워딩하도록 구성된다.
패킷 포워딩 노드 디바이스가 추가로 제공된다. 상기 패킷 포워딩 노드 디바이스는, 메모리 및 프로세서를 포함한다. 상기 메모리는 적어도 하나의 명령을 저장하고, 상기 프로세서가 상기 적어도 하나의 명령을 로딩하고 실행하여, 전술한 패킷 포워딩 방법 중 어느 하나를 구현한다.
컴퓨터가 판독 가능한 저장 매체가 더 제공된다. 상기 저장 매체는 적어도 하나의 명령을 저장하고, 프로세서는 상기 명령을 로딩하고 실행하여, 전술한 패킷 포워딩 방법 중 어느 하나를 구현한다.
다른 통신 장치가 제공된다. 상기 통신 장치는, 트랜시버, 메모리 및 프로세서를 포함한다. 상기 트랜시버, 상기 메모리 및 상기 프로세서는 내부 연결 채널을 통해 서로 통신한다. 상기 메모리는 명령을 저장하도록 구성된다. 상기 프로세서는 메모리에 저장된 명령을 실행하고, 신호를 수신하도록 상기 트랜시버를 제어하며, 신호를 송신하도록 상기 트랜시버를 제어하도록 구성된다. 또한, 상기 프로세서가 상기 메모리에 저장된 명령을 실행할 때, 상기 프로세서는 제1 측면 또는 제1 측면의 가능한 구현 중 임의의 하나의 방법을 수행할 수 있다.
예시적인 실시예에서, 하나 이상의 프로세서가 있고, 하나 이상의 메모리가 있다.
예시적인 실시예에서, 상기 메모리는 상기 프로세서와 통합되거나, 상기 메모리와 상기 프로세서가 별도로 배치될 수 있다.
특정 구현 프로세스에서, 상기 메모리는 읽기 전용 메모리(read only memory, ROM)와 같은 비일시적(non-transitory) 메모리일 수 있다. 상기 메모리와 상기 프로세서는 하나의 칩으로 집적될 수도 있고, 서로 다른 칩에 배치될 수도 있다. 메모리의 종류 및 메모리와 프로세서가 배치되는 방식은 본 출원의 이 실시예에서 제한되지 않는다.
컴퓨터 프로그램(제품)이 제공된다. 상기 컴퓨터 프로그램(제품)은 컴퓨터 프로그램 코드를 포함한다. 상기 컴퓨터 프로그램 코드가 컴퓨터에서 실행될 때, 상기 컴퓨터는 전술한 측면의 방법을 수행할 수 있다.
칩이 제공된다. 상기 칩은 칩이 설치된 통신 디바이스가 전술한 측면의 방법을 수행하도록, 메모리에 저장된 명령을 호출하고 실행하도록 구성된 프로세서를 포함한다.
입력 인터페이스, 출력 인터페이스, 프로세서 및 메모리를 포함하는 다른 칩이 제공된다. 상기 입력 인터페이스, 상기 출력 인터페이스, 상기 프로세서 및 상기 메모리는 내부 연결 채널을 통해 서로 연결된다. 상기 프로세서는 상기 메모리에서 코드를 실행하도록 구성된다. 상기 코드가 실행될 때 상기 프로세서는 전술한 측면의 방법을 수행하도록 구성된다.
도 1은 본 출원의 실시예에 따른 네트워크 토폴로지 구조의 개략도이다.
도 2는 본 출원의 실시예에 따른 BIER 헤더의 구조의 개략도이다.
도 3a 및 도 3b는 본 출원의 실시예에 따른 BIER-MPLS 캡슐화 및 포워딩의 개략도이다.
도 4는 본 출원의 실시예에 따른 네트워크 토폴로지 구조의 개략도이다.
도 5는 본 출원의 실시예에 따른 패킷 포워딩 방법의 흐름도이다.
도 6은 본 출원의 실시예에 따른 네트워크 토폴로지의 구조의 개략도이다.
도 7은 본 출원의 실시예에 따른 네트워크 토폴로지의 구조의 개략도이다.
도 8은 본 출원의 실시예에 따른 네트워크 토폴로지의 구조의 개략도이다.
도 9는 본 출원의 실시예에 따른 패킷 포워딩 노드 디바이스의 구조의 개략도이다.
도 10은 본 출원의 실시예에 따른 패킷 포워딩 노드 디바이스의 구조의 개략도이다.
도 11은 본 출원의 실시예에 따른 패킷 포워딩 노드 디바이스의 구조의 개략도이다.
본 출원의 구현에 사용된 용어는 단지 본 출원의 특정 실시예를 설명하기 위한 것으로, 본 출원을 한정하려는 의도가 아니다.
BIER 기술은 멀티캐스트 기술이다. BIER 기술에서, BFR-id는 네트워크 상의 각 에지 노드 디바이스에 대해 구성되며, 예를 들어, BFR-id는 1에서 256 사이의 값이다. 네트워크 상의 각 에지 노드의 구성 정보는 IGP 플러딩을 통해 네트워크에 플러딩된다. IGP와 함께 플러딩되는 정보를 BIER 정보라고 한다. 플러딩 후 네트워크의 각 노드는 각 BFR-id로 식별되는 디바이스를 결정할 수 있다.
도 1은 BIER 정보가 IGP를 통해 플러딩되는 네트워크의 개략도이다. 네트워크 상의 에지 노드 디바이스는 A, D, E, F를 포함한다. 도 1에 도시된 바와 같이, 에지 노드 디바이스 A, D, E, F에 대해 구성되는 BFR-id 값은 각각 4, 1, 2, 3이다. 각 에지 노드의 BFR-id 값은 IGP를 통해 플러딩된다. 예를 들어, 각 에지 노드 디바이스는 제어 평면 패킷을 네트워크의 다른 노드 디바이스로 송신한다. 제어 평면 패킷은 플러딩 정보를 포함하고, 플러딩 정보는 에지 노드 디바이스의 BFR-id를 포함하며, 인터넷 프로토콜(internet protocol, IP) 주소 및 캡슐화(encapsulation) 정보를 더 포함한다. 캡슐화 정보는 캡슐화 유형을 포함한다. 예를 들어, 에지 노드 디바이스 A의 플러딩 정보는 에지 노드 디바이스 A의 BFR-id, IP 주소 및 캡슐화 유형 그리고 대응하는 에지 노드 디바이스 A에 할당된 MPLS 레이블을 운반하며, 여기서 캡슐화 유형은 다중 프로토콜 레이블 스위칭(multi-protocol label switching, MPLS)이다. 노드 B와 노드 C는 중간 노드이며, 이들에 대해 BFR-id를 구성할 필요가 없다. 따라서, 노드 B와 노드 C에 의해 송신된 제어 평면 패킷의 플러딩 정보에서 BFR-id는 이에 따라 0으로 설정된다. 노드 B 및 노드 C의 제어 평면 패킷의 플러딩 정보는 노드의 IP 주소 및 캡슐화 정보와 같은 다른 정보를 더 포함한다.
또한, 네트워크 상의 각 노드는 IGP를 통해 제어 평면에 의해 플러딩된 정보를 기반으로 포워딩 테이블을 구축하고, 각 노드는 포워딩 테이블을 사용하여 포워딩 평면에서 BIER 패킷을 포워딩할 수 있다. BIER 패킷은 BIER 캡슐화된 멀티캐스트 데이터 패킷을 포함한다. BIER 캡슐화 형식(format)의 경우, 주석 요청(request for comment, RFC) 8296에서 BIER 헤더 형식에 대한 설명을 참조한다. BIER 헤더 형식은 포워딩 평면(칩)에서 BIER을 구현하는 핵심(key)이다. 도 2에 도시된 바와 같이, BIER 헤더는 32비트(4바이트) BIER-Label(레이블) 또는 BIER 포워딩 테이블 식별자(bit indexed forwarding table identifier, BIFT-ID) 값을 포함한다. 처음 20비트는 레이블 값 또는 BIFT-ID 값이고, 마지막 12비트는 통신 트래픽 클래스(traffic class, TC), S 비트 및 TTL(Time to Live)을 포함하는 레이블의 다른 정보이다. BIER 헤더는 판별기(discriminator)(Nibble), 버전(Ver), 비트 스트링 길이(bits length, BSL), 엔트로피(Entropy), 검출(OAM), 예약(Rsv), 차별화된 서비스 필드 코드 포인트(differentiated services field codepoints, DSCP), 프로토콜(Proto) 및 BIER 포워딩 인그레스 라우터 식별자(BIER forwarding ingress router, BFIR-id)를 포함하는 다른 64비트(8바이트) 필드를 포함하며, 비트 스트링(BitString)을 더 포함한다. BitString의 길이는 64비트, 128비트, 256비트 등일 수 있다. BIER-Label 또는 BFR-ID 값은 BitString의 길이를 결정하는 데 사용될 수 있다.
BitString 필드의 각 비트는 BIER 포워딩 이그레스 라우터(BIER forwarding edge router, BFER)를 식별하는 데 사용된다. 예를 들어, BitString의 최하위(가장 오른쪽) 비트는 다음 홉(next-hop) 노드가 BFR-id가 1인 노드임을 식별하는 데 사용된다. BitString의 오른쪽의 제2 비트는 BFR-id가 2인 노드를 식별하는 데 사용된다. 포워딩 평면에 의한 포워딩은 포워딩 엔트리를 기반으로 한다. 포워딩 엔트리는 BIER 패킷의 BitString을 기반으로 다음 홉 또는 BIER 패킷을 송신할 다음 홉을 결정한다. 복수의 비트가 동일한 다음 홉에 대응하면, 하나의 BIER 패킷만 다음 홉으로 송신된다.
예를 들어, 도 1의 노드는 BIER 포워딩 테이블을 구축한다. 포워딩 테이블의 이웃은 네트워크 토폴로지에서 직접 연결된 이웃이거나 간접적으로 연결된 이웃 예를 들어, RFC 8279의 섹션 6.9에 따라 계산된 간접적으로 연결된 이웃일 수 있다. 에지 노드 디바이스 A의 이웃은 노드 B를 포함한다. 도 1에 도시된 네트워크 토폴로지에서, BFR-id가 1/2/3인 BFER 노드의 다음 홉은 모두 노드 B이므로, 에지 노드 디바이스 A의 이웃 엔트리가 구축된다.
Neighbor(Nbr) = B, 포워딩 비트 마스크(forwarding bit mask, FBM) = 0111
FBM의 각 비트는 하나의 에지 노드 디바이스를 지시한다. 에지 노드 디바이스가 많으면 에지 노드 디바이스는 서로 다른 세트(set)로 나눌 수 있다. 복수의 세트에 대해, FBM은 복수 세트의 비트 스트링을 포함한다. 예를 들어, 네트워크 토폴로지에는 512개의 에지 노드 디바이스가 있다. 512개의 에지 노드 디바이스는 세트 0과 세트 1의 2개의 세트로 나뉜다. 한 세트는 256비트 비트 스트링을 사용한다. 이 경우, 이웃의 FBM은 2개의 256비트 비트 스트링, 즉 세트 0에 대응하는 비트 스트링과 세트 1에 대응하는 비트 스트링을 포함할 수 있다.
에지 노드 디바이스 A의 이웃 엔트리의 경우, BIER 패킷에서 BitString의 제1 비트, 제2 비트, 제3 비트가 1일 때, 에지 노드 디바이스 A는 BIER 패킷을 이웃 노드 B로 송신한다. BIER 패킷에서 BitString의 오른쪽의 제4 비트가 1(예를 들어, 노드 B에서 노드 A로 송신된 BIER 패킷)일 때, 엔트리는 BIER 패킷을 노드 A로 송신하도록 지시한다. 도 1에서, *A* 식별자는 BIER 패킷을 노드 A로 송신하는 것을 지시한다.
노드 B의 경우, 노드 B의 이웃은 에지 노드 디바이스 A, 노드 C 및 에지 노드 디바이스 E를 포함한다. BFR-id가 1/2인 BFER 노드의 다음 홉은 모두 노드 C이고, BFR-id가 3인 BFER 노드는 에지 노드 디바이스 E이며, BFR-id가 4인 BFER 노드는 에지 노드 디바이스 A이다. 노드 B의 이웃 엔트리는 다음과 같이 구축된다.
Nbr = C, FBM = 0011
Nbr = E, FBM = 0100
Nbr = A, FBM = 1000
노드 C의 경우, 노드 C의 이웃 노드는 노드 B, 에지 노드 디바이스 E, 에지 노드 디바이스 F 및 에지 노드 디바이스 D를 포함한다. BFR-id가 1인 BFER 노드는 에지 노드 디바이스 D이고, BFR-id가 2인 BFER 노드는 에지 노드 디바이스 F이며, BFR-id가 3인 BFER 노드는 에지 노드 디바이스 E이고, BFR-id가 4인 BFER 노드의 다음 홉은 노드 B이다. 노드 C의 이웃 엔트리는 다음과 같이 구축된다.
Nbr = D, FBM = 0001
Nbr = F, FBM = 0010
Nbr = E, FBM = 0100
Nbr = B, FBM = 1000
에지 노드 디바이스 D의 경우, 에지 노드 디바이스 D의 이웃 노드는 노드 C를 포함한다. BFR-id가 2/3/4인 BFER 노드의 다음 홉은 노드 C이다. 에지 노드 디바이스 D의 이웃 엔트리는 다음과 같이 구축된다.
Nbr = C, FBM = 1110
에지 노드 디바이스 E의 경우, 에지 노드 디바이스 E의 이웃 노드는 노드 B와 노드 C를 포함한다. BFR-id가 1/2인 BFER 노드의 다음 홉은 노드 C이고, BFR-id가 4인 BFER 노드의 다음 홉은 노드 B이다. 에지 노드 디바이스 E의 이웃 엔트리는 다음과 같이 구축된다.
Nbr = B, FBM = 1000
Nbr = C, FBM = 0011
에지 노드 디바이스 F의 경우, 에지 노드 디바이스 F의 이웃 노드는 노드 C를 포함한다. BFR-id가 1/3/4인 BFER 노드의 다음 홉은 노드 C이다. 에지 노드 디바이스 F의 이웃 엔트리는 다음과 같이 구축된다.
Nbr = C, FBM = 1101
도 1에 도시된 네트워크 상에서, BIER 패킷을 수신한 노드는 BIER 헤더를 제거하고 패킷을 원래의 멀티캐스트 패킷으로 포워딩한다. 패킷 포워딩 프로세스는 다음과 같다.
멀티캐스트 인터넷 프로토콜(internet protocol, IP) 패킷을 수신한 후, 노드 A는 BIER 헤더를 캡슐화한다. 예를 들어, 도 1에서, 노드 A에 의해 캡슐화된 BIER 헤더의 BitString은 0111이다. 그런 다음, 노드 A는 BIER 포워딩 테이블에서 Nbr = B 및 FBM = 0111에 따라 패킷을 포워딩한다. 포워딩 테이블에 따르면, BIER 패킷은 이웃 노드 B로 송신된다. BIER 패킷을 수신한 후, 노드 B는 BitString이 0111인 것에 따라, BIER 패킷이 2개의 이웃, 즉 노드 C와 노드 E에 각각 송신되어야 하는 것으로 결정한다. 패킷을 노드 C에 송신할 때, 노드 B는 BIER 패킷의 BitString과 포워딩 테이블의 Nbr = C 엔트리의 FBM 필드에 대해 논리곱(AND) 연산을 수행한다. 도 1에 도시된 바와 같이, 노드 B가 수신한 BIER 패킷에서 BitString은 0111이고, 노드 B의 포워딩 테이블에서 Nbr=C 엔트리의 FBM 필드는 0011이며, AND 결과는 0011이다. 노드 B는 BIER 패킷의 BitString을 0011로 변경하고 BIER 패킷을 노드 C로 송신한다. 이와 유사하게, 노드 B는 BIER 패킷을 노드 E로 송신할 때, BIER 패킷의 BitString을 0100으로 변경한 다음 BIER 패킷을 송신한다. BIER 패킷을 수신한 후, 노드 E는 BIER 패킷에서 BitString이 0100인 것에 따라, BIER 패킷이 노드 E(자체)로 송신되어야 한다고 결정한다. 따라서, 노드 E는 BIER 헤더를 역캡슐화(decapsulate)하고 그런 다음 내부 IP 패킷에 따라 BIER 패킷을 포워딩한다. 예를 들어, 내부 IP 패킷은 도 1의 노드 E의 멀티캐스트 수신기(multicast receiver, RCV)로 송신될 수 있다. 노드 B에 의해 송신된 BIER 패킷을 수신한 후, 노드 C는 BitString이 0011인 것에 따라 BIER 패킷을 노드 D와 노드 F로 송신해야 하는 것으로 결정한다. 노드 C는 BIER 패킷의 BitString을 0001로 변경하고 BIER 패킷을 노드 D로 송신한다. 노드 D는 BIER 헤더를 캡슐화 해제하고, 내부 IP 패킷에 따라 패킷을 포워딩한다. 예를 들어, 노드 D는 도 1의 노드 D의 RCV로 BIER 패킷을 송신한다. 노드 C는 BIER 패킷의 BitString을 0010으로 변경하고 BIER 패킷을 노드 F로 송신한다. 노드 F는 BIER 헤더를 역캡슐화하고, 내부 IP 패킷에 따라 패킷을 포워딩한다. 예를 들어, BIER 패킷은 노드 F의 RSV로 송신된다.
그러나, 포워딩 테이블을 구축하고 포워딩 테이블에 따라 BIER 패킷을 포워딩하는 전술한 프로세스에서, 네트워크에 링크가 추가되고 네트워크 토폴로지가 변경되면, 패킷 손실 또는 초과 패킷이 발생하거나 BIER 패킷 포워딩의 프로세스에서 발생한다. 예를 들어, 노드 1과 노드 3 사이의 링크가 도 4에 도시된 네트워크 토폴로지에 추가된다. 노드 1과 노드 3 사이의 링크가 추가되기 전의 상태에서, 노드의 BIER 포워딩 테이블은 다음과 같다:
{(Nbr = Node 1(Self), FBM = 0001),
(Nbr = Node 2, FBM = 0110)}
노드 1과 노드 3 사이에 링크가 추가된 후의 최종 상태에서, 노드 1의 BIER 포워딩 테이블은 다음과 같다.
{(Nbr = Node 1(Self), FBM = 0001),
(Nbr = Node 2, FBM = 0010),
(Nbr = Node 3, FBM = 0100)}
노드 3의 경로가 원래 Nbr = Node 2에서 Nbr = Node 3으로 전환되기 때문에 Nbr = Node2 및 Nbr = Node 3 엔트리의 FBM 필드를 업데이트해야 한다. 두 엔트리를 업데이트하는 것은 원자 연산(atomic operation)이 아니며 두 엔트리는 순차적으로 업데이트된다. 예를 들어, 최종 상태에 도달하는 프로세스에서 Nbr = Node2 엔트리의 FBM 필드가 먼저 0010으로 업데이트된 다음 Nbr = Node3 엔트리가 추가될 수 있다. 이 경우 Nbr = Node 3 엔트리가 추가되기 전에 노드 3으로 송신된 패킷이 손실될 수 있다. 다르게는, 최종 상태에 도달하는 프로세스에서 Nbr = Node 3 엔트리가 먼저 추가된 다음 Nbr = Node2 엔트리의 FBM 필드가 0010으로 업데이트될 수 있다. 이 경우, 노드 3으로 송신되는 패킷은 반복될 수 있다.
도 4의 네트워크 토폴로지에 링크가 추가될 때 발생하는 패킷 손실 또는 초과 패킷에 대해, 본 출원의 실시예는 패킷 포워딩 방법을 제공한다. 이 방법은 포워딩 경로가 신규(new) 포워딩 테이블에 대응하는 경로로 전환되기 전에 먼저 이전(old) 포워딩 경로에 따라 BIER 패킷을 포워딩한다. 신규 포워딩 테이블이 구축된 후, 이전 포워딩 테이블을 신규 포워딩 테이블로 변경한 후 이전 포워딩 테이블을 삭제한다. 다시 말해서, 패킷 손실 또는 반복된 패킷을 피하거나 줄이기 위해 본 출원의 이 실시예에서 메이크 비포 브레이크(make before break, MBB) 방식이 사용된다. 도 5를 참조한다. 본 출원의 이 실시예에서 제공되는 방법은 다음 단계를 포함한다.
단계 501: 목적지 노드 디바이스가 네트워크 토폴로지가 변경된 것으로 결정할 때 목적지 노드 디바이스는 타이머를 시작한다.
네트워크 토폴로지 변경은 신규 링크가 추가되는 경우를 포함한다. 본 출원의 본 실시예에서 신규 링크가 추가되는 경우는 제한되지 않는다. 예를 들어, 추가된 링크는 이전에 장애(fault)로 인해 연결이 끊겼다가 복구된 링크일 수 있다. 또한, 도 4에 도시된 네트워크 토폴로지를 참조한다. 노드 1과 노드 3 사이에 링크가 있지만, 노드 1과 노드 3 사이의 링크는 장애로 인해 연결이 끊어진다. 노드 1과 노드 3 사이의 링크 장애가 수정된 후 네트워크 토폴로지가 변경된다. 노드 1과 노드 3 사이의 링크 장애가 수정되기 때문에 노드 1과 노드 3 사이의 링크가 추가된다.
앞에서 설명한 링크 장애가 수정되기 때문에 링크가 추가되는 경우 이외에도 라우터가 네트워크에 추가된 후 신규 링크가 추가되는 경우가 있다. 도 4에 도시된 네트워크 토폴로지는 여전히 예시로 사용된다. 예를 들어, 노드 4가 추가되고 노드 4와 노드 1 사이에 연결이 구축되면, 노드 1과 노드 4 사이의 링크가 추가된다.
본 출원의 이 실시예에서, BIER MBB는 네트워크 상의 노드에 대해 활성화될(enabled) 수 있다. 달리 말하면, 이 방법의 목적지 노드 디바이스는 링크가 추가된 후 변경된 네트워크 토폴로지에 있으면서 BIER MBB가 구성된 노드일 수 있다. 예를 들어, 목적지 노드 디바이스는 BIER 프로토콜을 사용하고, BIER 포워딩 능력(capability) 및 예를 들어 MPLS 캡슐화, 이더넷(Ethernet) 캡슐화 또는 인터넷 프로토콜 버전 6(internet protocol version 6, IPv6) 캡슐화와 같은 특정 BIER 캡슐화 유형의 포워딩 능력을 갖는다. BIER 포워딩을 위한 특정 캡슐화 유형은 본 출원의 이 실시예에서 제한되지 않는다. 또한, 본 출원의 이 실시예에서 목적지 노드 디바이스는 라우터 또는 스위치일 수 있다.
본 출원의 이 실시예에서 제공된 방법에서, 네트워크 관리자(administrator)는 목적지 노드 디바이스에 대해 BIER MBB를 활성화하므로, 목적지 노드 디바이스가 BIER MBB 기능을 갖는다. 또한, 타이머는 타이머가 만료되기 전에 신규 포워딩 테이블의 구축이 완료되었음을 지시한다. 예를 들어, 목적지 노드 디바이스에 대해 BIER MBB를 활성화하는 것 외에도 네트워크 관리자는 추가로, 타이머의 타이밍 지속 기간(timing duration)을 구성할 수 있다. 타이머의 타이밍 지속 기간은 목적지 노드 디바이스의 능력에 기반하여, 예를 들어, 목적지 노드 디바이스의 중앙 처리 유닛(central processing unit, CPU) 부하에 기반하여 구성될 수 있거나, 또는 경험에 기반하여 구성될 수 있다. 타이머의 동일한 타이밍 지속 기간 또는 상이한 타이밍 지속 기간이 상이한 목적지 노드 디바이스에 대해 구성될 수 있다. 이것은 신규 포워딩 테이블의 구축이 완료되는 것이 보장될 수 있다면 본 출원의 이 실시예에서 제한되지 않는다.
단계 502: 타이머가 만료되기 전에 목적지 노드 디바이스는 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축한다.
이전 포워딩 테이블은 네트워크 토폴로지가 변경되기 전에 목적지 노드 디바이스에서 사용되는 포워딩 테이블이다. 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 목적지 노드 디바이스에 의해 구축된 포워딩 테이블이다. 네트워크 토폴로지가 변경된 후, 목적지 노드 디바이스는 타이머가 만료되기 전에 BIER 패킷을 수신하면, 목적지 노드 디바이스는 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축한다.
네트워크 토폴로지가 변경될 때, 타이머가 시작되기 전이나 후에 신규 포워딩 테이블이 구축될 수 있으며 또는 타이머가 시작될 때 신규 포워딩 테이블이 구축될 수 있음을 유의한다. 타이머는 타이머가 만료되기 전에 신규 포워딩 테이블의 구축이 완료되었음을 지시하기 때문에, 타이머가 시작되기 전에 신규 포워딩 테이블이 구축되면, 타이머의 타이밍 지속 기간이 신규 포워딩 테이블의 구축 지속 기간보다 짧다. 타이머가 시작된 후 신규 포워딩 테이블이 구축되면, 타이머의 타이밍 지속 기간이 신규 포워딩 테이블의 구축 지속 기간보다 길다. 타이머가 시작될 때 신규 포워딩 테이블이 구축되면, 타이머의 타이밍 지속 기간은 신규 포워딩 테이블의 구축 지속 기간과 동일할 수 있다. 신규 포워딩 테이블의 구축 지속 기간은 신규 포워딩 테이블의 구축이 시작되는 순간부터 신규 포워딩 테이블의 구축이 완료되는 순간 사이의 시간의 길이이다.
링크가 추가되기 때문에, 원래 포워딩 경로에 따라 목적지 노드 디바이스에서 목적지 노드로 송신된 BIER 패킷이 목적지 노드 디바이스로 다시 송신될 수 있다. 달리 말하면, BIER 패킷이 이전 포워딩 테이블에 따라 포워딩되면, 루프가 패킷 포워딩 경로에 존재할 수 있다. 그 결과, 링크 혼잡 등이 발생할 수 있다. 따라서, BIER 패킷을 이전 포워딩 테이블에 따라 포워딩하기 전에 루프가 패킷 포워딩 경로에 존재하는지를 판정해야 한다. 예시적인 실시예에서, 네트워크 토폴로지가 변경될 때, 상기 방법은 이전 포워딩 테이블에 기반하여, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 단계를 더 포함한다. 이 실시예에서, 타이머가 시작되기 전에, 목적지 노드 디바이스는 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정한다. 그런 다음 타이머가 만료되기 전에, 목적지 노드 디바이스는 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축한다. 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정될 때, 타이머가 만료되기 전에 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축한다. 이것은 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩할 때 존재하는 루프로 인한 링크 혼잡을 방지한다.
이전 포워딩 테이블을 기반으로, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 방식은 다음 두 가지 방식을 포함하지만 이에 한정되지는 않는다.
방식 1: 이전 포워딩 테이블의 목적지 노드 디바이스의 임의의 이웃에 대해, 목적지 노드 디바이스는, 변경된 네트워크 토폴로지의 각 에지 노드 디바이스의 경로이면서 또한 임의의 이웃의 포워딩 비트 마스크로 지시된 경로가, 목적지 노드 디바이스를 통해 이동하는지를(travel) 판정한다. 변경된 네트워크 토폴로지에서 에지 노드 디바이스의 경로가 목적지 노드 디바이스를 통과할 때, 목적지 노드 디바이스는 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정한다. 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로가 목적지 노드 디바이스를 통과하지 않을 때, 목적지 노드 디바이스는 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정한다.
패킷 포워딩 경로는 제1 경로와 변경된 네트워크 토폴로지를 기반으로 계산되는 제2 경로를 포함한다. 제1 경로는 이전 포워딩 테이블에서 목적지 노드 디바이스로부터 목적지 노드 디바이스의 각 이웃까지의 경로이다. 제2 경로는 이전 포워딩 테이블에서 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용한다. 루프의 존재는 제2 경로가 목적지 노드 디바이스를 통해 이동하는 것을 의미한다.
목적지 노드 디바이스인 도 4에 도시된 네트워크 토폴로지의 노드 1은 예로 사용된다. 노드 1과 노드 3 사이에 링크가 추가되고 노드 1이 네트워크 토폴로지의 변경을 검출하기 때문에, 노드 1은 토폴로지 변경으로 인해 루프가 현재 BIER 포워딩 테이블에 대응하는 패킷 포워딩 경로에 존재하는지를 판정한다. 구체적으로, 노드 1은 변경된 네트워크 토폴로지에서 포워딩 테이블에서 노드 1의 각 이웃의 FBM 필드에 의해 지시되는 각 에지 노드 디바이스의 경로가 노드 1을 통해 이동하는지를 판정한다. 이전 포워딩 테이블에서, 노드 1의 이웃은 노드 2를 포함하고, 노드 1에서 노드 2로의 경로가 제1 경로이다. 제2 경로는 노드 2를 시작점으로 사용하고 노드 2의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용한다. 포워딩 테이블에서 노드 1의 각 이웃의 FBM 필드에 의해 지시되는, 각 에지 노드 디바이스의 경로가 변경된 네트워크 토폴로지에서 노드 1을 통해 이동하지 않는 것으로 결정되면, MBB 프로세스를 수행한다. 구체적으로, 현재 BIER 포워딩 테이블(bit indexed forwarding table, BIFT) 1은 그대로 유지되고, BIER 포워딩 테이블 BIFT 2가 추가된다. 신규 포워딩 테이블은 패킷 포워딩 경로에 대해 사용되도록 설정되고, 이전 포워딩 테이블은 신규 포워딩 테이블로 변경되며, 이전 포워딩 테이블은 삭제된다.
BIFT 포워딩 테이블이 추가된 후, 신규 포워딩 테이블은 특정 기간(specific period of time) 후에 포워딩 경로에 대해 사용되도록 설정될 수 있다. 라우터와 같은 시스템에서 포워딩 테이블을 전달하는(deliver) 프로세스를 완료하는 데 시간이 걸리고 전달 프로세스가 비동기식 프로세스일 수 있기 때문이다. 달리 말하면, 전달 프로그램(delivery program)은 전달 완료 여부를 확인하지 않는다. 예를 들어, 타이머의 타이밍 지속 기간은 500ms이다. 타이머가 만료될 때, 신규 포워딩 테이블이 포워딩 경로에 대해 구축된다. 타이머의 타이밍 지속 기간이 구성된 후, 네트워크 토폴로지 변경이 검출될 때, 타이머의 타이밍이 시작될 수 있다.
예를 들어, 노드 1의 현재 포워딩 테이블 BIFT 1은 다음과 같다.
{(Nbr = Node1(Self), FBM = 0001),
(Nbr = Node2, FBM = 0110)}
노드 1의 각 Nbr 노드(노드 1 제외)의 FBM 필드에 의해 지시되는 BFER 노드에 대해, 노드 1은 변경된 네트워크 토폴로지에서 패킷 포워딩 경로가 노드 1을 통해 이동하는지, 즉 이웃에서 노드 1로 이동하는지를 판정한다.
예를 들어, 결정은 수식 Distance(2_X) < Distance(2_1) + Distance(1_X) 또는 D(2_X) < D(2_1) + D(1_X)에 따라 수행될 수 있으며, 여기서 D(X_Y)는 노드 X에서 노드 Y로의 경로 비용(path cost)을 지시한다.
노드 1의 이웃 노드가 노드 2이므로, Nbr<Node2>의 FBM<0110>는 노드 2와 노드 3을 각각 지시한다. 결정은 다음 수식에 따라 수행된다.
D(2_2) < D(2_1) + D(1_2)
D(2_3) < D(2_1) + D(1_3)
도 4에 도시된 링크가 동일한 비용(cost)을 가지면, 도 4에 도시된 네트워크 토폴로지는 전술한 모든 수식을 만족하며, 토폴로지 변경으로 인해 루프가 현재 포워딩 테이블 BIFT 1에 존재하지 않는다. 따라서, 노드 1은 MBB 작동을 수행할 수 있다.
방식 2: 목적지 노드 디바이스는 이전 포워딩 테이블에서 목적지 노드 디바이스의 각 이웃을 루트로 사용하는 것에 의해, 변경된 네트워크 토폴로지에서 최단 경로 트리를 구축하며; 목적지 노드 디바이스로부터 최단 경로 트리의 에지 노드 디바이스로 에지 노드 디바이스의 식별자를 순회하여 비트 스트링을 획득하고; 비트 스트링과 이웃의 포워딩 비트 마스크에 대해 AND 연산을 수행하며; 결과가 0일 때, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하며; 또는 결과가 0이 아닐 때, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정한다.
예를 들어, 노드 1의 이전 포워딩 테이블에서 노드 1의 각 이웃(예: 2)을 루트로 사용하는 것에 의해, SPT 트리가 변경된 네트워크 토폴로지에서 구축된다. 노드 1에서 SPT 트리의 노드까지 노드의 BFR-id를 순회하여, BitString(BitStringx)을 형성한다. 그런 다음, BitString과 이웃의 FBM(FBMx)에 대해 AND 연산 즉, (BSx AND FBMx)을 수행한다. 결과가 0이 아니면 루프가 존재한다.
도 4에 도시된 네트워크 토폴로지의 경우, 노드 1의 포워딩 테이블은 FBMx가 110인 하나의 이웃 2만을 포함한다. 변경된 네트워크 토폴로지에서, SPT 트리는 노드 1만 통해 이동하며, 대응하는 BitStringx는 001이다. BitStringx AND FBMx = 0이다. 따라서, 변경된 네트워크 토폴로지에서 이웃 엔트리에 대한 루프가 존재하지 않는다.
단계 503: 타이머가 만료된 후, 목적지 노드 디바이스는 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고, 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩한다.
타이머가 만료된 후, 이전 포워딩 테이블은 신규 포워딩 테이블로 전환되고 BIER 패킷은 신규 포워딩 테이블에 따라 포워딩된다. 이 프로세스에서 원자 연산 또는 단일 엔트리 연산이 사용될 수 있다.
도 4에 도시된 네트워크 토폴로지는 여전히 예시로 사용된다. 수신된 BIER 패킷의 경우, 노드 1은 BIER 패킷을 수신한 후 BIER 패킷을 노드 2와 노드 3에 포워딩한다. 노드 1이 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정할 때, 타이머가 시작되고 이전 포워딩 테이블이 일정 기간 동안 사용된다. 달리 말하면, 타이머가 만료된 후 이전 포워딩 테이블이 신규 포워딩 테이블로 전환되고, 그리고 이전 포워딩 테이블이 삭제된다. BIER MBB가 네트워크 상의 노드 1, 노드 2 및 노드 3에 대해 활성화될 수 있다. 이 프로세스에서, 각 노드 디바이스는 노드 1이 수행한 전술한 작동에 따라 결정 및 처리를 수행한다. 노드 3은 또한 전술한 프로세스에 따라 결정 및 처리를 수행한다. 노드 1은 이전 포워딩 테이블과 신규 포워딩 테이블에 따라 다음과 같이 패킷을 포워딩한다.
(1) 노드 1은 이전 포워딩 테이블에 따라, 즉 이전 포워딩 경로 1 -> 2 -> 3에 따라 BIER 패킷을 포워딩한다. 노드 3은 전술한 패킷 포워딩 프로세스에서 노드 디바이스들의 작동에 따라 BIER 패킷에서 BitString(0100)만을 수신한다. 노드 3이 이전의 포워딩 경로 또는 신규 포워딩 경로에 따라 BIER 패킷을 포워딩하는지에 관계없이, BIER 패킷의 포워딩 결과는 영향을 받지 않는다. 달리 말하면, 노드 1로부터 노드 3에 의해 수신된 BIER 패킷에는 패킷 손실이 발생하지 않는다.
(2) 노드 1은 신규 포워딩 테이블에 따라, 즉 신규 포워딩 경로 1 -> 2 또는 3에 따라 BIER 패킷을 포워딩한다. 노드 3도 BIER 패킷에서 BitString(0100)만 수신한다. 노드 3이 이전의 포워딩 경로에 따라 또는 신규 포워딩 경로에 따라 BIER 패킷을 포워딩하는지에 관계없이, BIER 패킷의 포워딩 결과는 영향을 받지 않는다. 달리 말하면, 노드 1로부터 노드 3에 의해 수신된 BIER 패킷에는 패킷 손실이 발생하지 않는다.
본 출원의 이 실시예에서 제공된 방법에 따르면, 타이머는 네트워크 토폴로지가 변경될 때 시작된다. 타이머가 만료되기 전에 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축한다. 타이머가 만료된 후, 이전 포워딩 테이블이 신규 포워딩 테이블로 전환된다. 신규 포워딩 테이블은 BIER 패킷을 포워딩하는 데 사용된다. 이렇게 하면 패킷 손실 및 초과 패킷을 방지하거나 줄일 수 있다. 또한, 타이머는 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정될 때만 시작된다. 이는 루프가 존재할 때 발생하는 링크 혼잡을 방지하고, 패킷 포워딩의 신뢰성을 향상시키며, 패킷 손실 또는 초과 패킷의 가능성을 더욱 감소시킨다.
전술한 설명은 목적지 노드 디바이스가 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하는 경우에만 제공된다는 점에 유의해야 한다. 루프가 존재하면, 본 출원의 이 실시예에서 제공되는 방법은 다음 두 가지 처리 방식을 포함하지만 이에 제한되지 않는다.
처리 방식 1: 네트워크 토폴로지가 변경될 때, 상기 방법은, 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 목적지 노드 디바이스가 타이머를 시작하지 않고 신규 포워딩 테이블을 구축하는 것을 더 포함한다. 신규 포워딩 테이블의 구축이 완료된 후, 목적지 노드 디바이스는 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고, 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩한다.
이러한 방식으로, 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 전술한 방식이 사용된다. 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 경로 포워딩 경로에 존재하는 것으로 결정될 때, 타이머가 시작되지 않고 신규 포워딩 테이블이 직접 구축된다. 신규 포워딩 테이블의 구축이 완료된 후, 이전 포워딩 테이블은 신규 포워딩 테이블로 전환되고, BIER 패킷은 신규 포워딩 테이블에 따라 포워딩된다.
처리 방식 2: 네트워크 토폴로지가 변경될 때, 상기 방법은, 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 목적지 노드 디바이스가 타이머를 시작하지 않는 것을 더 포함한다. 목적지 노드 디바이스는 변경된 네트워크 토폴로지를 기반으로 이전 포워딩 테이블을 업데이트하고, 업데이트된 포워딩 테이블에 따라 BIER 패킷을 포워딩한다.
이러한 방식으로, 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 전술한 방식이 사용된다. 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정될 때. 타이머가 시작되지 않고 신규 포워딩 테이블이 구축되지 않는다. 대신, 변경된 네트워크 토폴로지를 기반으로 이전 포워딩 테이블을 업데이트하고 업데이트된 포워딩 테이블에 따라 패킷을 포워딩한다.
전술한 처리 방식 1 및 처리 방식 2에서, 패킷 포워딩 경로는 제1 경로 및 변경된 네트워크 토폴로지를 기반으로 계산된 제2 경로를 포함한다. 제1 경로는 이전 포워딩 테이블에서 목적지 노드 디바이스로부터 목적지 노드 디바이스의 각 이웃까지의 경로이다. 제2 경로는 이전 포워딩 테이블에서 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용한다. 루프의 존재는 제2 경로가 목적지 노드 디바이스를 통해 이동하는 것을 의미한다.
루프가 링크 혼잡 등을 유발하기 때문에, 루프가 존재하는 것으로 결정될 때, 타이머를 시작하지 않으므로 링크 혼잡을 피하거나 감소시킨다.
본 출원의 이 실시예에서 제공되는 방법을 이해하기 쉽도록, 다음은 도 4에 도시된 시나리오 이외의 여러 다른 시나리오를 예로 사용하여 설명한다
시나리오 1: 4개의 디바이스가 네트워크에 배포된다. 도 6의 (1)은 링크 추가 후의 토폴로지 구조와 링크 비용을 도시한다. 이 시나리오에서, 링크가 추가되는 경우는 여러 가지가 있다. 각 링크 추가 사례에 대한 패킷 포워딩 프로세스는 다음과 같다.
(1) 링크가 노드 1과 노드 2 사이에 추가된다.
도 6의 (2)에 도시된 바와 같이, 노드 1은 다음의 결정 방식에서 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하고, 수렴(convergence)을 지연시킨다. 구체적으로, 타이머가 만료되기 전에 노드 1은 노드 1에서 노드 3으로 BIER 패킷 <1110>을 계속 포워딩한다. 타이머가 만료된 후 이전 포워딩 테이블은 신규 포워딩 테이블로 전환되고, BIER 패킷은 신규 포워딩 테이블에 따라 포워딩된다.
결정 방식 1: 이웃 노드 3에서 이웃 노드 3까지 FBM이 <1110>인 모든 노드는 노드 1을 포함하지 않는다.
결정 방식 2: 이웃 노드 3에 대해 신규 SPT 트리가 계산되며, FBM에 대응하는 노드가 수식 D(3_X) < D(3_1) + D(1_X)를 충족한다.
예를 들어, 트래픽은 노드 1에서 수신되어 노드 2, 노드 3 또는 노드 4로 송신된다. 노드 2의 수렴은 BFER = 1에만 영향을 미치기 때문에, 노드 2의 수렴은 패킷 포워딩 결과에 영향을 미치지 않는다. BIER 패킷이 노드 2에 도달할 때, BIER 패킷의 BitString은 BFER = 1을 포함하지 않는다.
(2) 링크가 노드 2와 노드 4 사이에 추가된다.
도 6의 (3)에 도시된 바와 같이, 노드 2는 다음의 결정 방식에서 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하고, 수렴을 지연시킨다. 구체적으로, 타이머가 만료되기 전에, 노드 2는 노드 2에서 노드 1로 BIER 패킷 <1101>을 계속해서 포워딩한다. 타이머가 만료된 후 이전 포워딩 테이블은 신규 포워딩 테이블로 전환되고, BIER 패킷은 신규 포워딩 테이블에 따라 포워딩된다.
결정 방식 1: 이웃 노드 1에서 이웃 노드 1까지 FBM이 <1101>인 모든 노드는 노드 2를 포함하지 않는다.
결정 방식 2: 이웃 노드 1에 대해 신규 SPT 트리가 계산되며, FBM <1101>에 대응하는 노드는 수식 D(1_X) < D(1_2) + D(2_X)를 충족한다.
예를 들어, 트래픽은 노드 2에서 수신되어 노드 1, 노드 3 또는 노드 4로 송신된다. 노드 3의 수렴은 BFER = 2에만 영향을 미치기 때문에, 노드 3의 수렴은 패킷 포워딩 결과에 영향을 미치지 않는다. 패킷이 노드 3에 도달할 때 패킷의 BitString는 BFER = 2를 포함하지 않는다. 마찬가지로, 노드 4의 수렴은 BFER = 2에만 영향을 미치기 때문에, 노드 4의 수렴은 패킷 포워딩 결과에 영향을 미치지 않는다. 패킷이 노드 4에 도달할 때, 패킷의 BitString는 BFER = 2를 포함하지 않는다.
예를 들어, 트래픽은 노드 4에서 수신되어 노드 1, 노드 2 또는 노드 3으로 송신된다. 노드 3으로 송신된 패킷 <0010>이 다시 송신되기 때문에, 노드 4는 다음 결정 방식에서 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정하고, 따라서, 수렴을 지연시키지 않는다.
결정 방식 1: 이웃 노드 3에서 이웃 노드 3까지 FBM이 <0111>인 BIER 패킷의 모든 노드에서, BFR-id가 2인 패킷이 노드 4로 송신된다. 따라서, 이웃 노드 3에서 이웃 노드 3까지 FBM이 <0111>인 노드 중 노드 4를 포함하는 노드가 없다는 조건이 충족되지 않는다.
결정 방식 2: 이웃 노드 3에 대해 신규 SPT 트리가 계산되고, BFR-id = 2는 수식 D(3_2) < D(3_4) + D(4_2)를 충족하지 않는다.
BIER 패킷 <0111> 의 수렴은 지연될 수 없지만 트래픽에서 BIER 패킷 <0101>의 수렴은 영향을 받지 않는다는 점에 유의해야 한다. BFR-id = 2인 BIER 패킷만 영향을 받는다.
(3) 링크가 노드 3과 노드 4 사이에 추가된다.
도 6의 (4)에 도시된 바와 같이, 노드(3)는 다음의 결정 방식에서 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정한다. 노드 1로 송신된 BIER 패킷 <1000>은 다시 송신되기 때문에 수렴이 지연되지 않는다.
결정 방식 1: 이웃 노드 1에서 이웃 노드 1까지 FBM이 <1011>인 BIER 패킷의 모든 노드에서, BFR-id가 4인 패킷이 노드 3으로 송신된다. 따라서, 이웃 노드 1에서 이웃 노드 1까지의 FBM이 <1011>인 노드 중 노드 3을 포함하는 노드가 없다는 조건이 충족되지 않는다.
결정 방식 2: 이웃 노드 1에 대해 신규 SPT 트리가 계산되고, BFR-id = 4는 수식 D(1_4) < D(1_3) + D(3_4)를 충족하지 않는다.
예를 들어, 트래픽이 노드 3으로부터 수신된다. 노드 3은 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정하고, 따라서, 타이머를 시작하지 않는다. 신규 포워딩 테이블의 구축이 완료된 후, 노드 3은 즉시 신규 포워딩 테이블로 다시 전환하거나 이전 포워딩 테이블을 업데이트한다. 이 경우, 본 출원의 이 실시예에서 구성된 MBB는 유효하지 않다.
시나리오 2: 6개의 디바이스가 네트워크에 배포된다. 도 7의 (1)은 링크 추가 후의 토폴로지 구조와 링크 비용을 도시한다. 이 시나리오에서, 링크가 추가되는 경우는 여러 가지가 있다. 각 링크 추가 사례에 대한 패킷 포워딩 프로세스는 다음과 같다.
(1) 링크가 노드 1과 노드 2 사이에 추가된다.
도 7의 (2)에 도시된 바와 같이, 노드 2는 다음의 결정 방식에서 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하고, 수렴을 지연시킨다. 구체적으로, 타이머가 만료되기 전에, 노드 2는 노드 2에서 노드 4로 BIER 패킷 <111101>을 계속 포워딩한다. 타이머가 만료된 후, 이전 포워딩 테이블은 신규 포워딩 테이블로 전환되고, BIER 패킷은 신규 포워딩 테이블에 따라 포워딩된다.
결정 방식 1: 이웃 노드 4에서 이웃 노드 4까지 FBM이 <111101>인 모든 노드는 노드 2를 포함하지 않는다.
결정 방식 2: 이웃 노드 1에 대해 신규 SPT 트리가 계산되며, FBM <111101>에 대응하는 노드가 수식 D(4_X) < D(4_2) + D(2_X)를 충족한다.
노드 1의 수렴은 BFER = 2인이면 패킷 포워딩 결과에 영향을 미치지 않는다. 예를 들어, 노드 2로부터 트래픽이 수신된다. 패킷(BitString = 111101)이 노드 1, 노드 3, 노드 4, 노드 5 또는 노드 6으로 송신될 때, 패킷이 손실되지 않는다.
(2) 링크가 노드 2와 노드 4 사이에 추가된다.
도 7의 (3)에 도시된 바와 같이, 노드 2는 다음의 결정 방식에서 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하고, 수렴을 지연시킨다. 구체적으로, 타이머가 만료되기 전에 노드 2는 노드 2에서 노드 1로 BIER 패킷 <111101>을 계속 포워딩한다. 타이머가 만료된 후, 이전 포워딩 테이블은 신규 포워딩 테이블로 전환되고, BIER 패킷은 신규 포워딩 테이블에 따라 포워딩된다.
결정 방식 1: 이웃 노드 1에서 이웃 노드 1까지 FBM이 <111101>인 모든 노드는 노드 2를 포함하지 않는다.
결정 방식 2: 이웃 노드 1에 대해 신규 SPT 트리가 계산되며, FBM <111101> 에 대응하는 노드가 수식 D(1_X) < D(1_2) + D(2_X)를 충족한다.
노드 4의 수렴은 BFER = 2이면 패킷 포워딩 결과에 영향을 미치지 않는다. BFER = 2인 노드가 노드 4를 포함하기 때문에, 노드 4는 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정한다.
예를 들어, 노드 2로부터 트래픽이 수신된다. 노드 4의 수렴은 BFER = 2에만 영향을 준다. BIER 패킷이 노드 4에 도달할 때, BIER 패킷의 BitString은 BFER = 2를 포함하지 않는다. 본 출원의 이 실시예에서 제공된 방법에 따르면, 패킷이 손실되지 않는다.
(3) 링크가 노드 3과 노드 4 사이에 추가된다.
도 7의 (4)에 도시된 바와 같이, 노드 2로부터 트래픽이 수신되는 예에서 포워딩 경로는 2 -> 1 -> 3 및 2 -> 4 -> 6 -> 5를 포함한다. 노드 3과 노드 4 사이의 링크가 추가된다:
노드 2의 처리를 위해, 원래 이웃 노드 1은 1 또는 3을 인수하고 이웃 노드 4는 2, 4, 6 또는 5를 인수한다. 이웃 노드 1에서 이웃 노드 1까지 FBM이 <000101>인 모든 노드는 노드 2를 포함하지 않는다. 이웃 노드 4에서 이웃 노드 4까지 FBM이 <111000>인 모든 노드는 노드 2를 포함하지 않는다. 따라서, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않으며, 수렴이 지연될 수 있다.
노드 3의 처리를 위해, 2개의 이웃 노드가 3개의 이웃 노드로 변경된다. BFER = 4인 노드는 노드 3을 포함하므로, 루프가 패킷 포워딩 경로에 존재한다. 그러나, 노드 3의 수렴 프로세스는 노드 2에서 노드 3으로 송신되는 BIER 패킷에 영향을 미치지 않는다.
노드 4의 처리를 위해, 2개의 이웃 노드가 3개의 이웃 노드로 변경된다. BFER = 3인 노드는 노드 4를 포함하므로 루프가 패킷 포워딩 경로에 존재한다. 그러나, 노드 4의 수렴 프로세스는 노드 2에서 노드 4로 송신되는 BIER 패킷에 영향을 미치지 않는다.
(4) 링크가 노드 4와 노드 6 사이에 추가된다.
도 7의 (5)에 도시된 바와 같이, 노드 2로부터 트래픽이 수신되는 예에서 포워딩 경로는 2 -> 1 및 2 -> 4 -> 3 -> 5 -> 6을 포함한다. 노드 4와 노드 6 사이의 링크가 추가된다.
노드 2의 처리를 위해, 원래 이웃 노드 1이 1을 인수하고, 이웃 노드 4가 3, 4, 5 또는 6을 인수한다. 이웃 노드 1에서 이웃 노드 1까지 FBM이 <000001>인 모든 노드는 노드 2를 포함하지 않는다. 이웃 노드 4에서 이웃 노드 4까지 FBM이 <111101>인 모든 노드는 노드 2를 포함하지 않는다. 따라서, 루프가 패킷 포워딩 경로에 존재하지 않으며(두 이웃 노드의 FBM은 변경되지 않음), 수렴이 지연될 수 있다.
노드 4의 처리를 위해, 2개의 이웃 노드가 3개의 이웃 노드로 변경된다. 루프가 패킷 포워딩 경로에 존재하지 않으며, 수렴이 지연될 수 있다.
노드 6의 처리를 위해, 하나의 이웃 노드는 2개의 이웃 노드로 변경된다. BFER = 4이기 때문에, 루프가 존재하고 수렴이 지연되지 않는다. 그러나, 수렴 프로세스는 노드 2에서 노드 6으로 송신되는 BIER 패킷에 영향을 미치지 않는다.
노드 1로부터 트래픽이 수신되는 예에서 포워딩 경로는 1 -> 2, 1 -> 3 -> 4 또는 5, 그리고 5 -> 6을 포함한다. 노드 4와 노드 6 사이의 링크가 추가될 때:
노드 1의 처리를 위해, 원래 이웃 노드 2는 2를 인수하고, 이웃 노드 3은 3, 4, 5 또는 6을 인수한다. 2개의 이웃 노드의 FBM은 변경되지 않으며, 루프가 패킷 포워딩 경로에 존재하지 않고, 수렴이 지연될 수 있다.
위의 프로세스에서, 노드 1로부터 노드 2, 노드 3, 노드 4, 노드 5, 또는 노드 6으로 송신되는 전체 트래픽에는 패킷 손실이 없다.
(5) 링크가 노드 5와 노드 6 사이에 추가된다.
도 7의 (6)에 도시된 바와 같이, 노드 2로부터 트래픽을 수신하는 예에서, 포워딩 경로는 2 -> 1, 2 -> 4 -> 3 또는 6, 그리고 3 -> 5를 포함한다. 노드 5와 노드 6 사이의 링크가 추가된다.
노드 5의 처리를 위해, 하나의 이웃 노드는 2개의 이웃 노드로 변경된다. BFER = 6이므로, 루프가 패킷 포워딩 경로에 존재하고 수렴이 지연되지 않는다.
노드 6의 처리를 위해, 하나의 이웃 노드는 2개의 이웃 노드로 변경된다. BFER = 5이므로, 루프가 패킷 포워딩 경로에 존재하고 수렴이 지연되지 않는다. 그러나, 수렴 프로세스는 패킷에 영향을 미치지 않으며 패킷이 손실되지 않는다.
노드 2의 처리를 위해, 원래 이웃 노드 1이 1을 인수하고, 이웃 노드 4가 3, 4, 5 또는 6을 인수한다. 이웃 노드 1에서 이웃 노드 1까지 FBM이 <000001>인 모든 노드는 노드 2를 포함하지 않는다. 이웃 노드 4에서 이웃 노드 4까지 FBM이 <111101>인 모든 노드는 노드 2를 포함하지 않는다. 따라서, 2개의 이웃 노드의 FBM은 변경되지 않고, 루프가 패킷 포워딩 경로에 존재하지 않으며, 수렴이 지연될 수 있다.
위의 프로세스에서 링크가 추가될 때 패킷이 손실되지 않는다.
또한, 전술한 몇 가지 시나리오이외에, 이 실시예에서 제공되는 방법은 로드 밸런싱(load balancing) 시나리오에도 적용 가능하다. 로드 밸런싱 시나리오에서, 타이머가 만료되기 전에 목적지 노드 디바이스가 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축하는 것은: 타이머가 만료되기 전에 목적지 노드 디바이스가 이전 다중 로드 밸런싱 엔트리를 사용하여 BIER 패킷을 포워딩하고, 로드 밸런싱 경로의 수량을 기반으로 신규 다중 로드 밸런싱 엔트리를 구축하는 것을 포함한다.
상응하여, 타이머가 만료된 후, 목적지 노드 디바이스가 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고, 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩하는 것은: 타이머가 만료된 후, 목적지 노드 디바이스가 다중 로드 밸런싱 엔트리의 포워딩 테이블을 신규 다중 로드 밸런싱 엔트리로 전환하고, 신규 다중 로드 밸런싱 엔트리에 따라 패킷을 포워딩하는 것을 포함한다.
전술한 다중 포워딩 엔트리의 경우, 패킷 포워딩 프로세스의 원리는 도 5에 도시된 방법 절차의 원리와 동일하다. 세부 사항은 여기에서 다시 설명되지 않는다. 이해를 돕기 위해 다음은 시나리오 3의 로드 밸런싱 시나리오를 예로 들어 패킷 포워딩 프로세스를 설명한다.
시나리오 3: 로드 밸런싱 링크가 네트워크에 배포된다. 도 8은 링크가 추가된 후의 토폴로지 구조를 도시한다. 이 토폴로지 구조에서 링크 비용은 동일하다. 노드 1, 노드 2, 노드 5, 노드 6, 노드 7, 노드 8은 BFER 노드이며, 각각 BFR-id 1, BFR-id 2, BFR-id 5, BFR-id 6, BFR-id 7, BFR-id 8에 대응한다. 장애가 없으면, 노드 1에서 다른 모든 BFER 노드까지 4개의 경로인, 이웃 B를 통과하는 경로, 이웃 R을 통과하는 경로, 이웃 G를 통과하는 경로 및 이웃 P를 통과하는 경로가 있다. 예를 들어, 노드 1과 노드 B 사이의 링크는 장애 후 복구되고, 노드 1에서 각 BFER 노드까지의 경로 수량은 3개에서 4개로 변경된다.
본 실시예에서, BIER을 이용하여 복수의 엔트리에 대해 수행되는 로드 밸런싱(RFC 8279)이 노드 1에 대해 구성된다. 4개의 로드 밸런싱 엔트리가 구성된다. 달리 말하면, 로드 밸런싱을 위한 경로의 수량은 4이다. 로드 밸런싱 테이블은 다음과 같으며, 노드 자체인 이웃의 엔트리는 생략된다.
BIFT 1: {(Nbr=R, FBM=1111 0010)}
BIFT 2: {(Nbr=G, FBM=1111 0010)}
BIFT 3: {(Nbr=P, FBM=1111 0010)}
BIFT 4: {(Nbr=R, FBM=1111 0010)}
예를 들어, 현재 400개의 멀티캐스트 플로(multicast flow)가 있고, 각 BIFT 테이블에는 100개의 멀티캐스트 플로가 있다. 200개의 멀티캐스트 플로는 이웃 R을 통해 이동하고, 100개의 멀티캐스트 플로는 이웃 G를 통해 이동하며, 100개의 멀티캐스트 플로는 이웃 P를 통해 이동한다. 링크가 추가된 후 위 엔트리는 다음과 같이 변경될 수 있다:
BIFT 1: {(Nbr=B, FBM=1111 0010)}
BIFT 2: {(Nbr=R, FBM=1111 0010)}
BIFT 3: {(Nbr=G, FBM=1111 0010)}
BIFT 4: {(Nbr=P, FBM=1111 0010)}
각각의 BIFT 테이블이 변경됨을 알 수 있다. Nbr = R은 BIFT 1에서 Nbr = B로 변경된다. Nbr = G는 BIFT 2에서 Nbr = R로 변경된다. Nbr = P는 BIFT 3에서 Nbr = G로 변경된다. Nbr = R은 BIFT 4에서 Nbr = P로 변경된다.
이 경우, 링크를 추가하면 패킷이 손실되거나 패킷이 초과될 수 있다. 예를 들어, 링크 장애가 발생한 후 BIFT 테이블이 직접 업데이트되면, BIFT 1의 경우, Nbr = R 엔트리가 먼저 삭제되고 Nbr = B 엔트리가 추가될 수 있다. 이 경우 플로가 인터럽트된다(interrupt). Nbr = B 엔트리가 먼저 추가되고 Nbr = R 엔트리가 추가되면, 초과 패킷이 있다. 제1 문제의 경우, 예를 들어, BIFT 1을 포워딩하는 경우에, BIFT 1'에서의 신규 엔트리가 먼저 구축된다. 특정 기간이 지나면, 달리 말하면, 타이머가 만료된 후, 포워딩 엔트리가 BIFT 1'의 엔트리로 변경되므로, 패킷이 손실되지 않는다.
전술한 문제를 해결하기 위해, 본 출원의 이 실시예에서 제공된 방법에서, BIER MBB는 각 노드에 대해 활성화되고 타이머의 타이밍 지속 기간이 구성된다. 도 8에 도시된 바와 같이, 링크(노드 1로부터 노드 B로)가 추가된다. 노드 1로부터 트래픽이 수신되는 예에서, 노드 1은 다음과 같은 방식으로 루프가 존재하는지를 판정한다.
BIFT 1의 현재 엔트리의 경우, 이웃 노드 R에서 이웃 노드 R까지 FBM이 <11110010>인 노드는 노드 1을 포함하지 않는다. BIFT 2의 현재 엔트리의 경우, 이웃 노드 G에서 이웃 노드 G까지 FBM이 <11110010>인 노드는 노드 1을 포함하지 않는다. BIFT 3의 현재 엔트리의 경우, 이웃 노드 P에서 이웃 노드 P까지의 FBM이 <11110010>인 노드는 노드 1을 포함하지 않는다. BIFT 4의 현재 엔트리의 경우, 이웃 노드 R에서 이웃 노드 R까지의 FBM이 <11110010>인 노드는 노드 1을 포함하지 않는다.
위의 모든 조건이 충족되면, 이는 4개의 원래 로드 밸런싱 엔트리를 원래 경로로 계속 포워딩할 수 있음을 지시한다. 따라서, 타이머를 시작할 수 있다.
예를 들어, 타이머가 만료되기 전에 신규 다중 로드 밸런싱 엔트리가 생성된다. 예를 들어, 처음에는 다음과 같은 다중 테이블 로드 밸런싱 인덱스, 즉 MBI 1과 같은 다중 BIER 포워딩 테이블 인덱스(multiple BIFT index, MBI)가 사용된다.
다중 테이블 로드 밸런싱 인덱스: MBI1 = {BIFT 1, BIFT 2, BIFT 3, BIFT4}
BIER 포워딩 테이블은 다음과 같다:
BIFT 1: {(Nbr=R, FBM=1111 0010)}
BIFT 2: {(Nbr=G, FBM=1111 0010)}
BIFT 3: {(Nbr=P, FBM=1111 0010)}
BIFT 4: {(Nbr=R, FBM=1111 0010)}
다중 테이블 로드 밸런싱 인덱스 테이블과 대응하는 포워딩 테이블은 타이머의 타이밍 동안 추가된다.
MBI2 = {BIFT 21, BIFT 22, BIFT 23, BIFT24}
BIFT 21: {(Nbr=B, FBM=1111 0010)}
BIFT 22: {(Nbr=R, FBM=1111 0010)}
BIFT 23: {(Nbr=G, FBM=1111 0010)}
BIFT 24: {(Nbr=P, FBM=1111 0010)}
타이머가 만료된 후, 포워딩 테이블이 다중 테이블 로드 밸런싱 인덱스 = MBI 2로 변경된다.
이 방법에서, 네트워크 토폴로지 변경 후 루프가 BIFT 1, BIFT 2, BIFT 3, BIFT 4에서의 패킷 포워딩 경로에 존재하는지를 판정해야 한다. 루프가 없으면, 신규 다중 로드 밸런싱 엔트리가 사용된다.
결론적으로, 본 출원의 이 실시예에서 제공된 방법에 따르면, 링크가 추가될 때, 타이머가 만료되기 전에 이전 다중 로드 밸런싱 엔트리를 사용하여 BIER 패킷을 포워딩하고, 로드 밸런싱 경로의 수량에 기반하여 신규 다중 로드 밸런싱 엔트리를 구축한다. 타이머가 만료된 후, 기존의 다중 로드 밸런싱 엔트리가 신규 다중 로드 밸런싱 엔트리로 전환되고, 신규 다중 로드 밸런싱 엔트리를 사용하여 BIER 패킷이 포워딩된다. 이렇게 하면 패킷 손실 및 초과 패킷을 방지하거나 줄일 수 있다.
본 출원의 실시예는 패킷 포워딩 노드 디바이스를 제공한다. 패킷 포워딩 노드 디바이스는 BIER 패킷을 포워딩하도록 구성된다. 도 9를 참조한다. 패킷 포워딩 노드 디바이스는,
네트워크 토폴로지가 변경되는 것으로 결정될 때 타이머를 시작하도록 구성된 시작 모듈(901);
타이머가 만료되기 전에 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하도록 구성된 포워딩 모듈(902) - 이전 포워딩 테이블은 네트워크 토폴로지가 변경되기 전에 패킷 포워딩 노드 디바이스에 의해 사용된 포워딩 테이블임; 및
타이머가 만료되기 전에 신규 포워딩 테이블을 구축하도록 구성된 구축 모듈(903) - 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 패킷 포워딩 노드 디바이스에 의해 구축되는 포워딩 테이블이고, 타이머는 타이머가 만료되기 전에 신규 포워딩 테이블의 구축이 완료됨을 지시함 - 를 포함한다.
포워딩 모듈(902)은 추가로, 타이머가 만료된 후, 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고, 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩하도록 구성된다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 패킷 포워딩 노드 디바이스는:
이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈(904)을 더 포함한다.
시작 모듈(901)이 타이머를 시작하기 전에, 결정 모듈(904)은 이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정한다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 패킷 포워딩 노드 디바이스는:
이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈(904)을 더 포함한다.
이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정될 때, 시작 모듈(901)은 타이머를 시작하지 않고 구축 모듈(903)은 신규 포워딩 테이블을 구축한다. 신규 포워딩 테이블의 구축이 완료된 후, 포워딩 모듈(902)은 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고, 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩한다.
예시적인 실시예에서, 도 10에 도시된 바와 같이, 패킷 포워딩 노드 디바이스는:
이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈(904)을 더 포함한다
이전 포워딩 테이블에 따라, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정될 때, 시작 모듈(901)은 타이머를 시작하지 않고, 포워딩 모듈(902)은 변경된 네트워크 토폴로지를 기반으로 하여 이전 포워딩 테이블을 업데이트하고, 업데이트된 포워딩 테이블에 따라 BIER 패킷을 포워딩하도록 구성된다.
예시적인 실시예에서, 패킷 포워딩 경로는 제1 경로 및 변경된 네트워크 토폴로지에 기반하여 계산되는 제2 경로를 포함한다. 제1 경로는 이전 포워딩 테이블에서 목적지 노드 디바이스로부터 목적지 노드 디바이스의 각 이웃까지의 경로이다. 제2 경로는 이전 포워딩 테이블에서 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용한다. 루프의 존재는 제2 경로가 목적지 노드 디바이스를 통해 이동하는 것을 의미한다.
예시적인 실시예에서, 결정 모듈(904)은: 이전 포워딩 테이블에서 목적지 노드 디바이스의 임의의 이웃에 대해, 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로이면서 또한 임의의 이웃의 포워딩 비트 마스크에 의해 지시된 경로가, 목적지 노드 디바이스를 통해 이동하는지를 판정하고, 변경된 네트워크 토폴로지에서 임의의 에지 노드 디바이스의 경로가 목적지 노드 디바이스를 통해 이동할 때, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정하고; 또는 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로가 목적지 노드 디바이스를 통해 이동하지 않을 때, 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하도록 구성된다.
예시적인 실시예에서, 결정 모듈(904)은: 이전 포워딩 테이블에서 목적지 노드 디바이스의 각각의 이웃을 루트로 사용하는 것에 의해, 변경된 네트워크 토폴로지에서 최단 경로 트리를 구축하고; 목적지 노드 디바이스를 통해 최단 경로 트리에 도달한 에지 노드 디바이스의 식별자를 순회하여 비트 스트링을 획득하며; 목적지 노드 디바이스의 이웃의 비트 스트링 및 포워딩 비트 마스크에 대해 AND 연산을 수행하고; 결과가 0일 때 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하지 않는 것으로 결정하고, 또는 결과가 0이 아닐 때 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는 것으로 결정하도록 구성된다.
예시적인 실시예에서, 포워딩 모듈(902)은 타이머가 만료되기 전에, 이전 다중 로드 밸런싱 엔트리를 사용하여 BIER 패킷을 포워딩하도록 구성된다.
구축 모듈(903)은 로드 밸런싱 경로의 수량에 기반하여 신규 다중 로드 밸런싱 엔트리를 구축하도록 구성된다.
포워딩 모듈(902)은 타이머가 만료된 후, 다중 로드 밸런싱 엔트리의 포워딩 테이블을 신규 다수의 로드 밸런싱 엔트리로 전환하고, 신규 다수의 로드 밸런싱 엔트리에 따라 BIER 패킷을 포워딩하도록 구성된다.
도 9 및 도 10에서 제공된 장치는 장치의 기능을 구현할 때, 전술한 기능 모듈로의 구분은 단지 설명을 위한 예로서 사용됨을 이해되어야 한다. 실제 애플리케이션에서는 요건에 따라 구현을 위해 전술한 기능을 서로 다른 기능 모듈에 할당할 수 있다. 달리 말하면, 디바이스의 내부 구조를 서로 다른 기능 모듈로 나누어 위에서 설명한 기능의 전부 또는 일부를 구현한다. 또한, 전술한 실시예에서 제공된 디바이스 및 방법 실시예는 동일한 개념에 속한다. 구체적인 구현 프로세스에 대해서는 방법 실시예를 참조한다. 세부 사항은 여기에서 다시 설명되지 않는다.
도 11은 본 출원의 실시예에 따른 패킷 포워딩 노드 디바이스(1100)의 하드웨어 구조의 개략도이다. 도 11에 도시된 패킷 포워딩 노드 디바이스(1100)는 전술한 실시예의 방법에서 패킷 포워딩 노드 디바이스에 의해 수행되는 대응하는 단계를 수행할 수 있다.
도 11에 도시된 바와 같이, 패킷 포워딩 노드 디바이스(1100)는 프로세서(1101), 메모리(1102), 인터페이스(1103), 및 버스(1104)를 포함한다. 인터페이스(1103)는 무선 또는 유선으로 구현될 수 있다. 구체적으로, 인터페이스(1103)는 네트워크 인터페이스 카드일 수 있다. 프로세서(1101), 메모리(1102), 및 인터페이스(1103)는 버스(1104)를 사용하여 연결된다.
인터페이스(1103)는 구체적으로, 전술한 실시예에서 패킷 포워딩 노드 디바이스와 다른 노드 디바이스 사이에서 정보를 송수신하도록 구성된 송신기 및 수신기를 포함할 수 있다. 예를 들어, 인터페이스(1103)는 이웃 노드 디바이스에 의해 송신된 BIER 패킷을 수신하는 것을 지원하도록 구성된다. 프로세서(1101)는 전술한 실시예에서 패킷 포워딩 노드 디바이스에 의해 수행되는 처리를 수행하도록 구성된다. 예를 들어, 프로세서(1101)는 네트워크 토폴로지가 변경되는 것으로 결정될 때 타이머를 시작하고; 타이머가 만료되기 전에 이전 포워딩 테이블을 사용하여 BIER 패킷을 포워딩하고 신규 포워딩 테이블을 구축하며 - 이전 포워딩 테이블은 네트워크 토폴로지가 변경되기 전에 목적지 노드 디바이스가 사용하는 포워딩 테이블이고, 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 목적지 노드 디바이스에 의해 구축된 포워딩 테이블이며, 타이머는 타이머가 만료되기 전에 신규 포워딩 테이블의 구축이 완료되었음을 지시함 -; 그리고 타이머가 만료된 후 이전 포워딩 테이블을 신규 포워딩 테이블로 전환하고 신규 포워딩 테이블에 따라 BIER 패킷을 포워딩하도록 구성된다. 프로세서(1101)는 및/또는 본 명세서에 기술된 기술의 다른 프로세스에서 사용된다. 예를 들어, 프로세서(1101)는 도 5의 단계(501 내지 503)를 지원하도록 구성된다. 메모리(1102)는 운영 체제(11021) 및 애플리케이션 프로그램(11022)을 포함하고, 프로그램, 코드 또는 명령을 저장하도록 구성된다. 프로그램, 코드 또는 명령을 실행할 때, 프로세서 또는 하드웨어 디바이스는 방법 실시예에서 패킷 포워딩 노드 디바이스와 관련된 처리 프로세스를 완료할 수 있다. 선택적으로, 메모리(1102)는 읽기 전용 메모리(Read-only Memory, ROM) 및 랜덤 액세스 메모리(Random Access Memory, RAM)를 포함할 수 있다. ROM은 기본 입출력 시스템(Basic Input/Output System, BIOS) 또는 임베디드 시스템을 포함한다. RAM은 애플리케이션 프로그램과 운영 체제를 포함한다. 패킷 포워딩 노드 디바이스(1100)가 실행될 필요가 있을 때, ROM에 내장된 BIOS 또는 임베디드 시스템의 부트로더를 사용하여 시스템을 부팅하여 시작하고, 패킷 포워딩 노드 디바이스를 부팅하여 정상 실행 상태로 진입한다. 정상 실행 상태에 들어간 후, 패킷 포워딩 노드 디바이스는 RAM에서 애플리케이션 프로그램 및 운영 체제를 실행하여, 방법 실시예에서 패킷 포워딩 노드 디바이스와 관련된 처리 프로세스를 완료한다.
도 11은 패킷 포워딩 노드 디바이스(1100)의 단순화된 설계만을 도시함을 이해해야 한다. 실제 애플리케이션에서, 패킷 포워딩 노드 디바이스는 임의의 수량의 인터페이스, 프로세서 또는 메모리를 포함할 수 있다.
프로세서는 중앙 처리 유닛(Central Processing Unit, CPU)일 수 있으며, 또는 다른 범용 프로세서, 디지털 신호 프로세서(digital signal processing, DSP), 응용 프로그램별 집적 회로(application specific integrated circuit, ASIC), 필드 프로그래밍 가능 게이트 어레이(field-programmable gate array, FPGA), 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 또는 이산 하드웨어 구성요소 등일 수 있음을 이해해야 한다. 범용 프로세서는 마이크로프로세서, 임의의 통상적인 프로세서 등일 수 있다. 프로세서는 고급 축소 명령 세트 컴퓨팅 머신(advanced RISC machines, ARM) 아키텍처를 지원하는 프로세서일 수 있다는 점에 유의해야 한다.
또한, 선택적인 실시예에서, 전술한 메모리는 읽기 전용 메모리 및 랜덤 액세스 메모리를 포함할 수 있고, 명령 및 데이터를 프로세서에 제공할 수 있다. 메모리는 비휘발성 랜덤 액세스 메모리를 더 포함할 수 있다. 예를 들어, 메모리는 디바이스 유형에 대한 정보를 더 저장할 수 있다.
메모리는 휘발성 메모리 또는 비휘발성 메모리일 수 있으며, 또는 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 비휘발성 메모리는 읽기 전용 메모리(read-only memory, ROM), 프로그램 가능한 읽기 전용 메모리(programmable ROM, PROM), 소거 가능한 프로그램 가능한 읽기 전용 메모리(erasable PROM, EPROM), 전기적으로 소거 가능한 프로그램 가능한 읽기 전용 메모리(electrically EPROM, EEPROM) 또는 플래시 메모리일 수 있다. 휘발성 메모리는 외부 캐시로 사용되는 랜덤 액세스 메모리(random access memory, RAM)일 수 있다. 예를 들어, 제한은 아니지만 많은 형태의 RAM을 사용할 수 있다. 예를 들어, 정적 랜덤 액세스 메모리(static RAM, SRAM), 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM), 동기식 동적 랜덤 액세스 메모리(synchronous DRAM, SDRAM), 더블 데이터 레이트 동기식 동적 랜덤 액세스 메모리(double data date SDRAM, DDR SDRAM), 향상된 동기식 동적 랜덤 액세스 메모리(enhanced SDRAM, ESDRAM), 싱크링크 동적 랜덤 액세스 메모리(synchlink DRAM, SLDRAM) 및 직접 램버스 랜덤 액세스 메모리(direct rambus RAM, DR RAM)일 수 있다.
컴퓨터가 판독 가능한 저장 매체가 더 제공된다. 저장 매체는 적어도 하나의 명령을 저장하고, 프로세서는 적어도 하나의 명령을 로딩 및 실행하여, 전술한 패킷 포워딩 방법 중 어느 하나를 구현한다.
본 출원은 컴퓨터 프로그램을 제공한다. 컴퓨터 프로그램이 컴퓨터에 의해 실행될 때, 프로세서 또는 컴퓨터는 전술한 방법 실시예에서 대응하는 단계 및/또는 절차를 수행할 수 있다.
전술한 실시예의 전부 또는 일부는 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 실시예가 소프트웨어를 이용하여 구현되는 경우, 실시예의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령을 포함한다. 컴퓨터 프로그램 명령이 컴퓨터에 로딩되어 실행될 때, 본 출원에 따른 절차 또는 기능의 전부 또는 일부가 생성된다. 컴퓨터는 범용 컴퓨터, 특수 목적 컴퓨터, 컴퓨터 네트워크 또는 다른 프로그램 가능한 장치일 수 있다. 컴퓨터 명령은 컴퓨터가 판독 가능한 저장매체에 저장될 수 있거나, 또는 컴퓨터가 판독 가능한 저장매체에서 다른 컴퓨터가 판독 가능한 저장매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령은 웹사이트, 컴퓨터, 서버 또는 데이터 센터에서 유선(예: 동축 케이블, 광섬유 또는 디지털 가입자 라인)으로 또는 무선(예: 적외선, 라디오 또는 마이크로파) 방식으로, 다른 웹사이트, 컴퓨터, 서버 또는 데이터 센터로 전송될 수 있다. 컴퓨터가 판독 가능한 저장매체는 컴퓨터에 의해 액세스될 수 있는 모든 사용 가능한 매체이거나, 하나 이상의 사용 가능한 매체를 통합한 서버나 데이터 센터와 같은 데이터 저장 디바이스일 수 있다. 사용 가능한 매체는 자기 매체(예: 플로피 디스크, 하드 디스크 또는 자기 테이프), 광학 매체(예: DVD), 반도체 매체(예: 솔리드 스테이트 드라이브 상태 디스크) 등일 수 있다.
전술한 설명은 단지 본 출원의 실시예일 뿐, 본 출원을 제한하려는 것은 아니다. 본 출원의 정신과 원칙을 벗어나지 않고 이루어진 모든 수정, 동등한 교체 또는 개선은 본 출원의 보호 범위에 속해야 한다.

Claims (18)

  1. BIER(bit index explicit replication) 패킷을 포워딩하는 데 사용되는 패킷 포워딩 방법으로서,
    상기 패킷 포워딩 방법은,
    목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때 상기 목적지 노드 디바이스가, 타이머를 시작하는 단계;
    상기 타이머가 만료되기 전에, 상기 목적지 노드 디바이스가 이전 포워딩 테이블을 사용하여 상기 BIER 패킷을 포워딩하고, 신규 포워딩 테이블을 구축하는 단계 - 상기 이전 포워딩 테이블은 상기 네트워크 토폴로지가 변경되기 전에 상기 목적지 노드 디바이스에 의해 사용된 포워딩 테이블이고, 상기 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 상기 목적지 노드 디바이스에 의해 구축된 포워딩 테이블이며, 상기 타이머는 상기 타이머가 완료되기 전에 상기 신규 포워딩 테이블의 구축이 완료되었음을 지시함 -; 및
    상기 타이머가 만료된 후, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 단계
    를 포함하는 패킷 포워딩 방법.
  2. 제1항에 있어서,
    상기 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때, 상기 패킷 포워딩 방법은,
    상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프(loop)가 패킷 포워딩 경로에 존재하는지를 판정하는 단계; 및
    상기 타이머를 시작하기 전에, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하는 단계
    를 더 포함하는 패킷 포워딩 방법.
  3. 제1항에 있어서,
    상기 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때, 상기 패킷 포워딩 방법은,
    상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 단계; 및
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 목적지 노드 디바이스가 상기 타이머를 시작하는 것을 건너뛰고(skip), 상기 목적지 노드 디바이스가 상기 신규 포워딩 테이블을 구축하며, 상기 신규 포워딩 테이블의 구축이 완료된 후, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 단계
    를 더 포함하는 패킷 포워딩 방법.
  4. 제1항에 있어서,
    상기 목적지 노드 디바이스가 네트워크 토폴로지가 변경되는 것으로 결정할 때, 상기 패킷 포워딩 방법은,
    상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 단계; 및
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 목적지 노드 디바이스가 상기 타이머를 시작하는 것을 건너뛰고, 상기 목적지 노드 디바이스가 상기 변경된 네트워크 토폴로지를 기반으로 상기 이전 포워딩 테이블을 업데이트하고, 업데이트된 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 단계
    를 더 포함하는 패킷 포워딩 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 패킷 포워딩 경로는 상기 변경된 네트워크 토폴로지에 기반하여 계산되는 제1 경로 및 제2 경로를 포함하고; 상기 제1 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스로부터 상기 목적지 노드 디바이스의 각 이웃까지의 경로이며, 상기 제2 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 상기 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용하며; 상기 루프의 존재는 상기 제2 경로가 상기 목적지 노드 디바이스를 통해 이동하는(travel) 것을 의미하는, 패킷 포워딩 방법.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 단계는,
    상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 임의의 이웃에 대해, 상기 목적지 노드 디바이스가, 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로이면서 또한 상기 임의의 이웃의 포워딩 비트 마스크에 의해 지시된 경로가, 상기 목적지 노드 디바이스를 통해 이동하는지를 판정하는 단계; 및
    상기 변경된 네트워크 토폴로지에서 임의의 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동할 때, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하거나, 또는
    상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동하지 않을 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하는 단계
    를 포함하는, 패킷 포워딩 방법.
  7. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하는 단계는,
    상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 루트로 사용하는 것에 의해, 상기 변경된 네트워크 토폴로지에서 최단 경로 트리를 구축하는 단계;
    상기 목적지 노드 디바이스를 통해 상기 최단 경로 트리에 도달한 에지 노드 디바이스의 식별자를 순회하여(traverse) 비트 스트링을 획득하는 단계;
    상기 목적지 노드 디바이스의 이웃의 비트 스트링 및 포워딩 비트 마스크에 대해 AND 연산을 수행하는 단계; 및
    결과가 0일 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하거나, 또는
    결과가 0이 아닐 때 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하는 단계
    를 포함하는, 패킷 포워딩 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 타이머가 만료되기 전에, 상기 목적지 노드 디바이스가 이전 포워딩 테이블을 사용하여 상기 BIER 패킷을 포워딩하고, 신규 포워딩 테이블을 구축하는 단계는,
    상기 타이머가 만료되기 전에, 상기 목적지 노드 디바이스가, 이전 다중 로드 밸런싱 엔트리(multiple load balancing entry)를 사용하여 상기 BIER 패킷을 포워딩하고, 로드 밸런싱 경로의 수량에 따라 신규 다중 로드 밸런싱 엔트리를 구축하는 단계
    를 포함하고,
    상기 타이머가 만료된 후, 상기 목적지 노드 디바이스가, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는 단계는,
    상기 타이머가 만료된 후, 상기 목적지 노드 디바이스가, 상기 다중 로드 밸런싱 엔트리의 포워딩 테이블을 상기 신규 다중 로드 밸런싱 엔트리로 전환하고, 상기 신규 다중 로드 밸런싱 엔트리에 따라 상기 BIER 패킷을 포워딩하는 단계
    를 포함하는, 패킷 포워딩 방법.
  9. BIER(bit index explicit replication) 패킷을 포워딩하는 데 사용되는 패킷 포워딩 노드 디바이스로서,
    상기 패킷 포워딩 노드 디바이스는,
    네트워크 토폴로지가 변경되는 것으로 결정할 때 타이머를 시작하도록 구성된 시작 모듈;
    상기 타이머가 만료되기 전에, 이전 포워딩 테이블을 사용하여 상기 BIER 패킷을 포워딩하도록 - 상기 이전 포워딩 테이블은 상기 네트워크 토폴로지가 변경되기 전에 상기 패킷 포워딩 노드 디바이스에 의해 사용된 포워딩 테이블임 - 구성된 포워딩 모듈; 및
    상기 타이머가 만료되기 전에, 신규 포워딩 테이블을 구축하도록 - 상기 신규 포워딩 테이블은 변경된 네트워크 토폴로지를 기반으로 상기 패킷 포워딩 노드 디바이스에 의해 구축된 포워딩 테이블이며, 상기 타이머는 상기 타이머가 완료되기 전에 상기 신규 포워딩 테이블의 구축이 완료되었음을 지시함 - 구성된 구축 모듈
    을 포함하고,
    상기 포워딩 모듈은 추가로, 상기 타이머가 만료된 후, 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하도록 구성되는, 패킷 포워딩 노드 디바이스.
  10. 제9항에 있어서,
    상기 패킷 포워딩 노드 디바이스는,
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈
    을 더 포함하고,
    상기 타이머를 시작하기 전에, 상기 결정 모듈은, 상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하는, 패킷 포워딩 노드 디바이스.
  11. 제9항에 있어서,
    상기 패킷 포워딩 노드 디바이스는,
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈
    을 더 포함하고,
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 시작 모듈이 상기 타이머를 시작하지 않고, 상기 구축 모듈은 상기 신규 포워딩 테이블을 구축하며, 상기 신규 포워딩 테이블의 구축이 완료된 후, 상기 포워딩 모듈이 상기 이전 포워딩 테이블을 상기 신규 포워딩 테이블로 전환하고, 상기 신규 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하는, 패킷 포워딩 노드 디바이스.
  12. 제9항에 있어서,
    상기 패킷 포워딩 노드 디바이스는,
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 루프가 패킷 포워딩 경로에 존재하는지를 판정하도록 구성된 결정 모듈
    을 더 포함하고,
    상기 이전 포워딩 테이블에 따라, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정할 때, 상기 시작 모듈이 상기 타이머를 시작하지 않고, 상기 포워딩 모듈이 상기 변경된 네트워크 토폴로지를 기반으로 상기 이전 포워딩 테이블을 업데이트하고, 업데이트된 포워딩 테이블에 따라 상기 BIER 패킷을 포워딩하도록 구성되는, 패킷 포워딩 노드 디바이스.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서,
    상기 패킷 포워딩 경로는 상기 변경된 네트워크 토폴로지에 기반하여 계산되는 제1 경로 및 제2 경로를 포함하고; 상기 제1 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스로부터 상기 목적지 노드 디바이스의 각 이웃까지의 경로이며, 상기 제2 경로는 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 시작점으로 사용하고, 상기 목적지 노드 디바이스의 각 이웃의 포워딩 비트 마스크에 의해 지시되는 에지 노드 디바이스를 끝점으로 사용하며; 상기 루프의 존재는 상기 제2 경로가 상기 목적지 노드 디바이스를 통해 이동하는 것을 의미하는, 패킷 포워딩 노드 디바이스.
  14. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 결정 모듈은, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 임의의 이웃에 대해, 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로이면서 또한 상기 임의의 이웃의 포워딩 비트 마스크에 의해 지시된 경로가, 상기 목적지 노드 디바이스를 통해 이동하는지를 판정하고; 그리고, 상기 변경된 네트워크 토폴로지에서 임의의 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동할 때, 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하거나, 또는 상기 변경된 네트워크 토폴로지에서 각 에지 노드 디바이스의 경로가 상기 목적지 노드 디바이스를 통해 이동하지 않을 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하도록 구성되는, 패킷 포워딩 노드 디바이스.
  15. 제10항 내지 제13항 중 어느 한 항에 있어서,
    상기 결정 모듈은, 상기 이전 포워딩 테이블에서 상기 목적지 노드 디바이스의 각 이웃을 루트로 사용하는 것에 의해, 상기 변경된 네트워크 토폴로지에서 최단 경로 트리를 구축하고; 상기 목적지 노드 디바이스를 통해 상기 최단 경로 트리에 도달한 에지 노드 디바이스의 식별자를 순회하여 비트 스트링을 획득하며; 상기 목적지 노드 디바이스의 이웃의 비트 스트링 및 포워딩 비트 마스크에 대해 AND 연산을 수행하고; 그리고 결과가 0일 때, 상기 네트워크 토폴로지가 변경된 후 루프가 상기 패킷 포워딩 경로에 존재하지 않는 것으로 결정하거나, 또는 결과가 0이 아닐 때 상기 네트워크 토폴로지가 변경된 후 상기 루프가 상기 패킷 포워딩 경로에 존재하는 것으로 결정하도록 구성되는, 패킷 포워딩 노드 디바이스.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서,
    상기 포워딩 모듈은, 상기 타이머가 만료되기 전에, 이전 다중 로드 밸런싱 엔트리를 사용하여 상기 BIER 패킷을 포워딩하도록 구성되고,
    상기 구축 모듈은 로드 밸런싱 경로의 수량에 따라 신규 다중 로드 밸런싱 엔트리를 구축하도록 구성되며; 그리고
    상기 포워딩 모듈은, 상기 타이머가 만료된 후, 상기 다중 로드 밸런싱 엔트리의 포워딩 테이블을 상기 신규 다중 로드 밸런싱 엔트리로 전환하고, 상기 신규 다중 로드 밸런싱 엔트리에 따라 상기 BIER 패킷을 포워딩하도록 구성되는, 패킷 포워딩 노드 디바이스.
  17. 패킷 포워딩 노드 디바이스로서,
    상기 패킷 포워딩 노드 디바이스는,
    메모리 및 프로세서
    를 포함하고,
    상기 메모리는 적어도 하나의 명령을 저장하고, 상기 프로세서가 상기 적어도 하나의 명령을 로딩하고 실행하여, 제1항 내지 제8항 중 어느 한 항에 따른 패킷 포워딩 방법을 구현하는, 패킷 포워딩 노드 디바이스.
  18. 컴퓨터가 판독 가능한 저장 매체로서,
    상기 저장 매체는 적어도 하나의 명령을 저장하고, 프로세서가 상기 명령을 로딩하고 실행하여, 제1항 내지 제18항 중 어느 한 항에 따른 패킷 포워딩 방법을 구현하는, 컴퓨터가 판독 가능한 저장 매체.
KR1020227001349A 2019-07-05 2020-05-17 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체 KR20220018065A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201910606586.9 2019-07-05
CN201910606586.9A CN112187647B (zh) 2019-07-05 2019-07-05 报文转发方法、设备及计算机可读存储介质
PCT/CN2020/090726 WO2021004156A1 (zh) 2019-07-05 2020-05-17 报文转发方法、设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
KR20220018065A true KR20220018065A (ko) 2022-02-14

Family

ID=73919681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227001349A KR20220018065A (ko) 2019-07-05 2020-05-17 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체

Country Status (6)

Country Link
US (1) US20220131808A1 (ko)
EP (1) EP3979576A4 (ko)
JP (1) JP7322193B2 (ko)
KR (1) KR20220018065A (ko)
CN (1) CN112187647B (ko)
WO (1) WO2021004156A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733560B (zh) * 2020-08-13 2021-07-11 瑞昱半導體股份有限公司 網路交換器及其網路交換器系統
CN114915589B (zh) * 2021-02-10 2024-06-04 华为技术有限公司 报文传输方法及装置
CN113347099A (zh) * 2021-05-31 2021-09-03 中国工商银行股份有限公司 一种分布式网络流量转发方法、装置、设备及存储介质
US11881935B2 (en) * 2022-03-02 2024-01-23 Arista Networks, Inc. Reducing a network device upgrade outage using a reduced hardware resource scaling
US11736385B1 (en) * 2022-08-17 2023-08-22 Juniper Networks, Inc. Distributed flooding technique
CN117938813A (zh) * 2022-10-17 2024-04-26 中兴通讯股份有限公司 一种转发表索引的通告方法、节点及存储介质
CN117255055B (zh) * 2023-11-15 2024-02-23 新华三技术有限公司 报文转发方法、装置及电子设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678274B1 (en) * 1999-07-30 2004-01-13 Riverstone Networks, Inc. Method and system for managing forwarding tables
CN100456752C (zh) * 2005-04-04 2009-01-28 华为技术有限公司 一种在快速生成树环网下实现组播的方法
US7835312B2 (en) * 2005-07-20 2010-11-16 Cisco Technology, Inc. Method and apparatus for updating label-switched paths
CN101064687B (zh) * 2007-02-07 2011-09-21 中兴通讯股份有限公司 路由收敛的方法
CN100583827C (zh) * 2007-05-17 2010-01-20 华为技术有限公司 一种多协议标签交换网络流量切换的方法及设备
US10461946B2 (en) * 2013-09-17 2019-10-29 Cisco Technology, Inc. Overlay signaling for bit indexed explicit replication
CN105556899B (zh) * 2013-09-17 2019-08-13 思科技术公司 用于执行位索引显式复制的系统和方法
US9544230B2 (en) * 2013-09-17 2017-01-10 Cisco Technology, Inc. Migration support for bit indexed explicit replication
CN104811387B (zh) * 2014-01-24 2018-06-01 思科技术公司 具有位索引显式复制的等价多路径
US9401858B2 (en) * 2014-06-30 2016-07-26 Cisco Technology, Inc. Loop avoidance during network convergence in switched networks
US9838246B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Micro-loop prevention using source packet routing
US9832031B2 (en) * 2014-10-24 2017-11-28 Futurewei Technologies, Inc. Bit index explicit replication forwarding using replication cache
US9742575B2 (en) * 2014-11-04 2017-08-22 Telefonaktiebolaget L M Ericsson (Publ) Explicit list encoding of sparse multicast group membership information with Bit Index Explicit Replication (BIER)
US9432205B2 (en) * 2014-11-04 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Explicit block encoding of multicast group membership information with bit index explicit replication (BIER)
US9749410B2 (en) * 2014-11-18 2017-08-29 Cisco Technology, Inc. Using bit index explicit replication (BIER) in low-power and lossy networks
US10341221B2 (en) * 2015-02-26 2019-07-02 Cisco Technology, Inc. Traffic engineering for bit indexed explicit replication
CN106572017B (zh) * 2015-10-09 2021-06-15 中兴通讯股份有限公司 Bier信息的发送方法、接收方法及装置
CN107294859B (zh) * 2016-04-13 2021-04-06 中兴通讯股份有限公司 一种信息传递方法、装置及系统
CN107968750B (zh) * 2016-10-20 2021-06-15 中兴通讯股份有限公司 报文传输方法、装置及节点
US10469379B2 (en) * 2017-02-17 2019-11-05 Cisco Technology, Inc. System and method to facilitate content delivery to multiple recipients in a network environment
CN108632678B (zh) * 2017-03-22 2023-03-24 中兴通讯股份有限公司 一种数据传输方法、装置及系统
US10447496B2 (en) * 2017-03-30 2019-10-15 Cisco Technology, Inc. Multicast traffic steering using tree identity in bit indexed explicit replication (BIER)
CN108696438A (zh) * 2017-04-05 2018-10-23 中兴通讯股份有限公司 Bier报文的转发方法及装置
CN109660460B (zh) * 2017-10-10 2021-10-19 中兴通讯股份有限公司 Bier-te信息的处理方法、服务器及存储介质
US10764082B2 (en) * 2018-06-29 2020-09-01 Nokia Solutions And Networks Oy Supporting multicast over a network domain

Also Published As

Publication number Publication date
JP2022538809A (ja) 2022-09-06
EP3979576A1 (en) 2022-04-06
CN112187647B (zh) 2021-12-14
EP3979576A4 (en) 2022-08-10
CN112187647A (zh) 2021-01-05
JP7322193B2 (ja) 2023-08-07
US20220131808A1 (en) 2022-04-28
WO2021004156A1 (zh) 2021-01-14

Similar Documents

Publication Publication Date Title
KR20220018065A (ko) 패킷 포워딩 방법 및 디바이스, 그리고 컴퓨터가 판독 가능한 저장 매체
US11677587B2 (en) EVPN packet processing method, device, and system for mac learning via MAC/IP advertisement route
US11533249B2 (en) Route processing method and apparatus, and data transmission method and apparatus
US11394644B2 (en) EVPN packet processing method, device, and system
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US12074728B2 (en) Tunnel configuration method, apparatus, system, and device, and storage medium
WO2021258823A1 (zh) 路径创建方法、装置及系统
US11799769B2 (en) Packet processing method, apparatus, system, and device, and storage medium
JP7124206B2 (ja) パケット処理方法およびゲートウェイ・デバイス
CN112737954B (zh) 报文处理方法、装置、系统、设备及存储介质
US20220263760A1 (en) Method, apparatus, and device for load balancing in bit index explicit replication network
WO2021109997A1 (zh) 分段路由隧道的防断纤方法、装置,入口节点及存储介质
EP3764610A1 (en) Data traffic processing method, device and system
US11575615B2 (en) First network node, second network node, and methods performed thereby for tracing a packet in a pipeline
WO2023045793A1 (zh) 一种环路的检测方法和装置
CN113132222B (zh) 报文转发方法、设备及计算机可读存储介质
CN112995026A (zh) 一种链路保护方法、装置,入口节点及存储介质
EP4214914B1 (en) First node, second node, and methods performed thereby for configuring handling of two or more ingress member flows

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal