KR20230160394A - 세그먼트 식별자 결정 방법 및 디바이스 - Google Patents

세그먼트 식별자 결정 방법 및 디바이스 Download PDF

Info

Publication number
KR20230160394A
KR20230160394A KR1020237036952A KR20237036952A KR20230160394A KR 20230160394 A KR20230160394 A KR 20230160394A KR 1020237036952 A KR1020237036952 A KR 1020237036952A KR 20237036952 A KR20237036952 A KR 20237036952A KR 20230160394 A KR20230160394 A KR 20230160394A
Authority
KR
South Korea
Prior art keywords
sid
address
field
message
offset
Prior art date
Application number
KR1020237036952A
Other languages
English (en)
Inventor
창왕 린
멍샤오 첸
하오 리
Original Assignee
뉴 에이치3씨 테크놀로지스 코., 엘티디.
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
Priority claimed from CN202111108022.6A external-priority patent/CN113691451B/zh
Application filed by 뉴 에이치3씨 테크놀로지스 코., 엘티디. filed Critical 뉴 에이치3씨 테크놀로지스 코., 엘티디.
Publication of KR20230160394A publication Critical patent/KR20230160394A/ko

Links

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/02Topology update or discovery
    • H04L45/03Topology update or discovery by updating link state protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source 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/74Address processing for 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/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers

Landscapes

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

Abstract

본 출원의 실시예는 세그먼트 식별자 결정 방법 및 디바이스를 제공하고, 통신 분야에 관한 것이다. 방안은, 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 단계 - 여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함함 - ; 및 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제1 SID를 계산하는 단계 - 동일한 Block은 적어도 하나의 제1 Block 식별자와 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block임 - 를 포함한다. 본 출원의 실시예에서 제공한 기술안을 적용하면, SID 발표 과정에서의 메시지의 오버헤드를 줄임으로써, 기기 성능 및 메시지 전송 프로토콜의 안정성을 보장한다.

Description

세그먼트 식별자 결정 방법 및 디바이스
본 출원은 2021년 9월 22일에 중국 특허청에 제출한 출원번호가 202111108022.6이고 발명의 명칭이 "세그먼트 식별자 결정 방법 및 디바이스"인 중국 특허 출원의 우선권을 주장하고, 그 전부 내용을 인용하여 본 출원에 결합한다.
본 출원은 통신 분야에 관한 것으로, 특히는 세그먼트 식별자 결정 방법 및 디바이스에 관한 것이다.
인터넷 프로토콜 버전 6 세그먼트 라우팅(Segment Routing Internet Protocol Version 6, SRv6) 네트워크에서, 기기는 SRv6 네트워크에서 세그먼트 식별자(Segment Identity, SID)를 발표하여, 후속 데이터 메시지의 포워딩을 구현해야 한다.
SRv6 네트워크 중의 각 기기에 대해, 해당 기기는 이에 대응되는 각 이웃 기기에 링크 상태 메시지를 송신하고, 해당 링크 상태 메시지에는 완전한 하나 또는 복수 개의 SID가 포함된다. 해당 기기의 이웃 기기는 해당 링크 상태 메시지를 수신한 후, 상기 기기가 발표한 SID를 결정할 수 있다.
본 출원의 실시예는 세그먼트 식별자 결정 방법 및 디바이스를 제공하여, SID의 발표 과정에서 메시지의 오버헤드를 감소함으로써, 기기 성능 및 메시지 전송 프로토콜의 안정성을 보장하는 것을 목적으로 한다. 구체적인 기술안은 아래와 같다.
제1 측면에서, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 제공하는 바, 해당 세그먼트 식별자 결정 방법은 SRv6 네트워크 중의 제1 기기에 적용되고, 상기 SRv6 네트워크는 제2 기기를 더 포함하며, 상기 제1 기기와 상기 제2 기기는 서로 이웃 기기이고, 상기 제2 기기는 제1 세그먼트 식별자 SID를 저장하며, 상기 방법은,
상기 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 단계 - 여기서, 상기 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 상기 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값를 포함함 - ; 및
동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계 - 상기 동일한 Block은 상기 적어도 하나의 제1 Block 식별자와 상기 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block임 - 를 포함한다.
일종 가능한 구현 방식에서, 상기 제1 메시지는 제1 서브 TLV를 포함하고, 상기 제1 서브 TLV는 블록 식별자 필드, 시작 SID 필드 및 말단 SID 필드를 포함하고; 여기서, 상기 블록 식별자 필드는 상기 적어도 하나의 제1 Block 식별자를 캐리하는 것에 사용되고; 상기 시작 SID 필드는 각 제1 Block에 대응되는 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 상기 말단 SID 필드는 각 제1 Block에 대응되는 주소 공간의 말단 주소를 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 상기 제1 서브 TLV는 오프셋 필드를 더 포함하고, 상기 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 상기 제2 메시지는 제2 서브 TLV, 제3 서브 TLV 또는 제4 서브 TLV를 포함하고;
상기 제2 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제2 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며; 상기 제3 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제3 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며; 상기 제4 서브 TLV는 기기 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제4 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며; 여기서, 상기 블록 식별자 필드는 상기 제2 Block 식별자를 캐리하는 것에 사용되고; 상기 인덱스 수량 필드는 인덱스 수량을 캐리하는 것에 사용되며; 상기 인덱스 길이 필드는 인덱스 길이를 캐리하는 것에 사용되고; 각 인덱스 필드는 하나의 인덱스 값을 캐리하는 것에 사용되며; 각 앤드포인트 행위 필드는 하나의 인덱스 값에 대응되는 앤드포인트 행위을 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 제2 서브 TLV는 오프셋 필드를 더 포함하고, 상기 제3 서브 TLV는 오프셋 필드를 더 포함하며, 상기 제4 서브 TLV는 오프셋 필드를 더 포함하고, 상기 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 상기 제1 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고; 상기 제1 인덱스 값은 시작 인덱스 값이고, 상기 시작 인덱스 값은 상기 제1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이며; 상기 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계는, 구체적으로,
상기 앤드포인트 행위의 수량 및 상기 시작 인덱스 값에 따라, 상기 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하는 단계; 및
상기 제1 주소 공간의 경계 주소 및 상기 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계를 포함한다.
일종 가능한 구현 방식에서, 상기 제1 메시지는 제5 서브 TLV를 포함하고, 상기 제5 서브 TLV는 블록 식별자 필드, 시작 SID 필드, 말단 SID 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 행위 수량 필드 및 앤드포인트 행위 필드를 포함하며; 여기서, 상기 블록 식별자 필드는 상기 제1 Block 식별자를 캐리하는 것에 사용되고; 상기 시작 SID 필드는 상기 제1 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 상기 말단 SID 필드는 상기 제1 주소 공간의 말단 주소를 캐리하는 것에 사용되고; 상기 플래그 비트 필드는 공유 플래그 비트를 캐리하는 것에 사용되며, 상기 공유 플래그 비트는 상기 제1 Block 식별자가 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고; 상기 알고리즘 필드는 공유 알고리즘을 캐리하는 것에 사용되며, 상기 공유 알고리즘은 상기 제1 Block 식별자가 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고; 상기 가중치 필드는 공유 가중치를 캐리하는 것에 사용되며, 상기 공유 가중치는 상기 제1 Block 식별자가 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고; 상기 행위 수량 필드는 상기 앤드포인트 행위의 수량을 캐리하는 것에 사용되며; 각 앤드포인트 행위는 하나의 앤드포인트 행위를 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 상기 제5 서브 TLV는 오프셋 필드를 더 포함하고, 상기 오프셋 필드는 상기 제1 오프셋을 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 상기 제2 메시지는 제6 서브 TLV 또는 제7 서브 TLV를 포함하고;
상기 제6 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제6 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며;
상기 제7 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제7 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며; 여기서, 상기 블록 식별자 필드는 상기 제2 Block 식별자를 캐리하는 것에 사용되고; 상기 인덱스 길이 필드는 상기 시작 인덱스 필드의 길이를 캐리하는 것에 사용되며; 상기 시작 인덱스 필드는 상기 시작 인덱스 값을 캐리하는 것에 사용된다.
일종 가능한 구현 방식에서, 상기 제6 서브 TLV는 오프셋 필드를 더 포함하고, 상기 제7 서브 TLV는 오프셋 필드를 더 포함하며, 상기 오프셋 필드는 상기 제1 오프셋을 캐리하는 것에 사용된다.
제2 측면에서, 본 출원의 실시예는 전자 기기를 제공하는 바, 상기 전자 기기는 SRv6 네트워크 중의 제1 기기이고, 상기 SRv6 네트워크는 제2 기기를 더 포함하며, 상기 제1 기기와 상기 제2 기기는 서로 이웃 기기이고, 상기 제2 기기는 제1 세그먼트 식별자 SID를 저장하며, 상기 전자 기기는, 프로세서; 트랜시버; 및 기계 판독 가능한 저장 매체를 포함하고, 상기 기계 판독 가능한 저장 매체에는 상기 프로세서에 의해 실행 가능한 기계가 실행 가능한 명령이 저장되어 있으며; 상기 기계가 실행 가능한 명령은 상기 프로세서가 하기의 단계들을를 실행하도록 한다.
트랜시버를 통해 상기 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 단계; 여기서, 상기 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 상기 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값를 포함하며;
동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계; 상기 동일한 Block은 상기 적어도 하나의 제1 Block 식별자와 상기 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block이다.
제3 측면에서, 본 출원의 실시예는 기계 판독 가능한 저장 매체를 더 제공하는 바, 상기 기계 판독 가능한 저장 매체에는 상기 프로세서에 의해 실행 가능한 기계가 실행 가능한 명령이 저장되어 있고, 상기 프로세서는 상기 기계가 실행 가능한 명령에 의해 상기 어느 하나에 따른 세그먼트 식별자 결정 방법의 단계를 구현한다.
제4 측면에서, 본 출원의 실시예는 명령이 포함된 컴퓨터 프로그램 제품을 더 제공하는 바, 해당 프로그램 제품이 컴퓨터에서 실행될 때, 컴퓨터가 상기 어느 하나에 따른 세그먼트 식별자 결정 방법의 단계를 실행하도록 한다.
본 출원의 실시예에서 제공한 기술안에서, 관련 기술의 SID 발표 과정에서 완전한 SID를 캐리해야 하는 것에 비해, 본 출원의 실시예에서 제2 기기가 제1 기기로 송신한 제1 메시지 및 제2 메시지에 제2 기기에 저장된 제1 SID가 포함되는 것이 아니라, 제2 기기에 저장된 SID가 속하는 Block의 Block 식별자, 해당 Block의 제1 주소 공간의 경계 주소 및 해당 SID에 대응되는 인덱스 값을 제1 기기로 송신한다. 따라서, SRv6 네트워크에 비교적 많은 기기가 포함될 경우, 각 기기는 그들의 이웃 기기에 제1 메시지 및 제2 메시지를 송신하는 방식을 통해, 그들의 이웃 기기가 제1 메시지 및 제2 메시지에 포함된 정보에 따라, 해당 기기가 발표한 SID를 정확하게 결정해내도록 할 수 있다. 그리고, 제1 메시지에 포함된 Block 식별자 및 제2 메시지에 포함된 Block 식별자와 인덱스 값에 대응되는 데이터 양이 전체 SID에 대응되는 데이터 양보다 현저히 적으므로, SRv6 네트워크에 대량의 발표해야 하는 SID가 존재할 경우, 본 출원의 실시예에서 제공한 방법을 사용하면, 메시지가 캐리해야 하는 정보의 데이터 양을 현저히 감소시킴으로써, 송신해야 하는 메시지의 수량을 감소시켜, SID 발표 과정에서의 메시지의 오버헤드를 효과적을 감소시킴으로써, 기기 성능 및 메시지 전송 프로토콜의 안정성을 보장할 수 있다.
물론, 본 출원의 어느 하나의 제품 또는 방법을 실시할 때 상술한 모든 장점을 반드시 동시에 구현해야 한 것은 아니다.
본 발명의 내용에 포함됨.
도 1a는 SRv6 End SID sub-TLV의 개략도이고;
도 1b는 SRv6 End.X SID sub-TLV의 개략도이며;
도 1c는 SRv6 LAN End.X SID sub-TLV의 개략도이고;
도 2는 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제1 프로세스 개략도이며;
도 3은 본 출원의 실시예에서 제공한 SRv6 네트워크의 구조 개략도이고;
도 4는 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제2 프로세스 개략도이며;
도 5는 SID의 개략도이고;
도 6은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제3 프로세스 개략도이며;
도 7은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제4 프로세스 개략도이고;
도 8은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제5 프로세스 개략도이며;
도 9는본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제6 프로세스 개략도이고;
도 10a는 본 출원의 실시예에서 제공한 SRv6 SID Block sub-TLV의 개략도이며;
도 10b는 본 출원의 실시예에서 제공한 SRv6 End.X SID Index Sub-TLV의 개략도이고;
도 10c는 본 출원의 실시예에서 제공한 SRv6 LAN End.X SID Index Sub-TLV의 개략도이며;
도 10d는 본 출원의 실시예에서 제공한 SRv6 End SID Index Sub-TLV의 개략도이고;
도 11은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제7 프로세스 개략도이며;
도 12a는 본 출원의 실시예에서 제공한 Rule-based End.X SID Block sub-TLV의 다른 개략도이고;
도 12b는 본 출원의 실시예에서 제공한 Rule-based End.X SID Index sub-TLV의 다른 개략도이며;
도 12c는 본 출원의 실시예에서 제공한 Rule-based LAN End.X SID Index sub-TLV의 다른 개략도이고;
도 13a는 본 출원의 실시예에서 제공한 세그먼트 식별자 디바이스의 제1 구조 개략도이며;
도 13b는 본 출원의 실시예에서 제공한 세그먼트 식별자 디바이스의 제2 구조 개략도이고;
도 14는 본 출원의 실시예에서 제공한 기기의 구조 개략도이다.
SRv6 네트워크에서, 인접한 두 개의 기기 사이는 중간 시스템 투 중간 시스템(Intermediate System-to-Intermediate System, IS-IS) 프로토콜 또는 개방형 최단 경로 우선 프로토콜 버전 3(Open Shortest Path First Version 3, OSPFv3)을 통해 SID 정보를 발표할 수 있다. 그러나, SRv6 네트워크에서, 기기의 수량이 매우 많고, 하나의 SID의 길이가 128비트(bits)에 도달하는데, 이는 SID 발표 과정에서, 각각의 기기 사이에 송신된 링크 상태 메시지의 수량 비교적 많고, 각 링크 상태 메시지가 비교적 많은 데이터 양을 포함하도록 하므로, SID 발표를 수행할 때 메시지의 오버헤드가 비교적 큰 것을 초래하여, 기기의 성능 및 메시지 전송 프로토콜의 안정성에 심각한 영향을 미친다.
이해를 돕기 위해, IS-IS 프로토콜에 기반하여, SRv6 네트워크 중의 기기 1이 기기 2에 SID를 송신하는 것을 예로 하여 설명한다. 여기서, 기기 1과 기기 2는 서로 이웃 기기이다.
SRv6 네트워크에서, 기기 1은 SID 발표를 수행할 때, 기기 1에 대응되는 모든 이웃 기기에 링크 상태 메시지를 송신하고, 해당 링크 상태 메시지에는 완전한 SID가 포함된다. 해당 SID는 기기 1의 기기 SID(End SID로 기록됨)일 수 있다. 해당 SID는 기기 1과 이웃 기기 사이의 링크 SID(End.X SID로 기록됨)일 수도 있다. 여기서, 링크 SID는 메시지 전송 과정에서 출력 인터페이스에 대응되는 SID이다. 즉 메시지 전송 과정에서 통과하는 링크에 대응되는 SID이다.
상기 SID가 기기 SID일 경우, 기기 1은 기기 2에 링크 상태 메시지(구분을 돕기 위해, 제1 링크 상태 메시지로 기록됨)를 송신할 수 있다. 해당 제1 링크 상태 메시지에는 SRv6 End SID sub-TLV가 캐리되어 있다. 여기서, SRv6 End SID sub-TLV는 기기 SID를 발표하는 것에 사용된다. 구체적으로 도 1-a에 도시된 바와 같이, 도 1-a는 SRv6 End SID sub-TLV의 개략도이다.
도 1-a에 도시된 SRv6 End SID sub-TLV에서, 유형(Type), 길이(Length), 플래그 비트(Flags), 앤드포인트 행위(Endpoint Behavior) 등 필드와 같은 상용 필드를 포함하는 외에, SID 필드를 더 포함하며, 해당 필드는 기기에 대응되는 기기 SID를 패딩(padding)하는 것에 사용된다. 예를 들면, 도 1-a에서 SID 필드 중의 128비트의 값이다.
상기 SID가 기기 사이의 링크 SID일 경우, 기기 1은 기기 2에 링크 상태 메시지(구분을 돕기 위해, 제2 링크 상태 메시지로 기록됨)를 송신할 수 있다. 해당 제2 링크 상태 메시지에는 SRv6 End.X SID sub-TLV가 캐리되어 있거나, SRv6 LAN End.X SID sub-TLV가 캐리되어 있다. 여기서, SRv6 End.X SID sub-TLV는 피투피(Peer-to-Peer, P2P) 인접 유형의 링크 SID를 발표하는 것에 사용되고, SRv6 LAN End.X SID sub-TLV는 근거리 통신망(Local Area Network, LAN) 인접 유형의 링크 SID를 발표한는 것에 사용된다. 구체적으로 도 1b 및 도 1c에 도시된 바와 같이, 도 1b는 SRv6 End.X SID sub-TLV의 개략도이고, 도 1c는 SRv6 LAN End.X SID sub-TLV의 개략도이다.
도 1b에 도시된 SRv6 End.X SID sub-TLV 및 도 1c에 도시된 SRv6 LAN End.X SID sub-TLV에서, 유형, 길이, 플래그 비트, 알고리즘(Algorithm), 가중치(Weight) 등 필드와 같은 상용 필드를 포함하는 외에, SID 필드를 더 포함하고, 해당 필드는 기기 사이의 링크 SID를 패딩하는 것에 사용된다. 예를 들면, 도 1b에서 SID 필드 중의 128비트의 값, 또는 도 1c에서 SID 필드 중의 128비트의 값이다.
상기 기기 1이 기기 2에 링크 SID가 캐리된 제2 링크 상태 메시지를 송신할 때, 기기 1과 기기 2 사이의 이웃을 구축하는 방식에 따라, 제2 링크 상태 메시지가 SRv6 End.X SID sub-TLV를 캐리하는지 또는 SRv6 LAN End.X SID sub-TLV를 캐리하는 지를 결정할 수 있다. 예를 들면, 기기 1과 기기 2가 P2P 이웃일 경우, 기기 1은 기기 2에 SRv6 End.X SID sub-TLV가 캐리된 제2 링크 상태 메시지를 송신한다. 다른 예를 들면, 기기 1과 기기 2가 LAN 이웃일 경우, 기기 1은 기기 2에 SRv6 LAN End.X SID sub-TLV가 캐리된 제2 링크 상태 메시지를 송신한다.
OSPFv3에 기반하여 SID발표를 수행할 때도, SRv6 End SID sub-TLV, SRv6 End.X SID sub-TLV 또는 SRv6 LAN End.X SID sub-TLV가 캐리된 링크 상태 메시지를 송신하는 방식을 통해 구현하는데, 상이한 점은, 두 가지의 프로토콜에 의해 송신된 링크 상태 메시지에서 SRv6 End SID sub-TLV, SRv6 End.X SID sub-TLV 또는 SRv6 LAN End.X SID sub-TLV에 대응되는 상용 필드가 일정한 차이점이 존재하는 것이다. 예를 들면, IS-IS 프로토콜에 기반하여 송신된 SRv6 End SID sub-TLV가 캐리된 링크 상태 메시지 중에서 유형 필드는 8비트를 차지하지만, OSPFv3에 기반하여 송신된 SRv6 End SID sub-TLV가 캐리된 링크 상태 메시지 중에서 유형 필드는 16비트를 차지한다. OSPFv3에 기반하여 SID를 발표하는 과정은 IS-IS 프로토콜에 기반하여 SID를 발표하는 과정을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다. 이해를 돕기 위해, 아래아래에서는 단지 IS-IS 프로토콜을 기반으로 하는 SID 발표 과정을 예로 하여 설명한다.
관련 기술의 SID 발표 과정에서, IS-IS 프로토콜에 기반하는 것 또는 OSPFv3에 기반하는 것을 막론하고, 링크 상태 메시지에는 반드시 완전한 SID, 즉 128비트의 SID가 캐리되어야 하며, 이때, 링크 상태 메시지의 데이터 양이 비교적 크고, SRv6 네트워크 중 각 기기의 SID 및 임의의 두 개의 이웃 기기 사이의 링크 SID의 수량이 복수 개일 수 있어, SID 발표를 수행할 때 송신해야 하는 링크 상태 메시지의 수량이 비교적 많고, 각 링크 상태 메시지의 데이터 양이 비교적 큰 것을 초래함으로써, SID 발표 과정에서 메시지의 오버헤드가 비교적 큰 것을 초래하여, 기기의 성능 및 IS-IS 프로토콜 또는 OSPFv3의 안정성에 영향을 미친다.
관련 기술에서의 문제를 해결하기 위해, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 제공한다. 도 2에 도시된 바와 같이, 도 2는 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제1 프로세스 개략도이다. 해당 방법은 SRv6 네트워크 중의 제1 기기에 적용되고, 해당 SRv6 네트워크는 제2 기기를 더 포함하며, 여기서, 제1 기기와 제2 기기는 서로 이웃 기기이고, 제2 기기에는 제1 SID가 저장된다. 해당 방법은 구체적으로 하기 단계들을 포함한다.
단계 S201: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하고; 여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
본 출원의 실시예에서의 제1 메시지 및 제2 메시지는 모두 링크 상태 메시지일 수 있는 바, 예를 들면, IS-IS 프로토콜에 기반하여 SID 발표를 수행하는 과정에서, 해당 링크 상태 메시지는 링크 상태 패킷(Link State Packet, LSP)일 수 있고; OSPF프로토콜에 기반하여 SID를 발표하는 과정에서, 해당 링크 상태 메시지는 LSA 메시지일 수 있다. 본 출원의 실시예의 방법을 기타 네트워크 그룹에 적용하면, 기타 네트워크 그룹이 준수하는 프로토콜 규정에 따라, 적합한 메시지를 선택하여 제1 메시지 및 제2 메시지로 할 수 있다.
단계 S202: 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제1 SID를 계산하고, 여기서, 동일한 Block은 적어도 하나의 제1 Block 식별자와 적어도 하나의 제2 Block 식별자에서 동일한 Block 식별자가 나타내는 Block이다.
상기 SRv6 네트워크에는 복수 개의 기기가 포함될 수 있다. 상기 제1 기기는 SRv6 네트워크 중 어느 하나의 기기일 수 있다. 해당 제1 기기는 하나 또는 복수 개의 이웃 기기가 존재할 수 있다. 상기 제2 기기는 제1 기기의 이웃 기기 중 어느 하나의 기기이다. 여기서, 상기 제1 기기와 제2 기기에 대해 구체적으로 한정하지 않는다. 이해를 돕기 위해, 아래에서는 단지 SRv6 네트워크 중의 제1 기기와 제2 기기를 예로 하여 설명한다.
도 2에 도시된 방법을 통해, 제1 기기는 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한 후, 동일한 Block의 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제2 기기가 발표한 제1 SID를 계산할 수 있다. 관련 기술의 SID 발표 과정에서 완전한 SID를 캐리해야 하는 것에 비해, 본 출원의 실시예에서 제2 기기가 제1 기기로 송신한 제1 메시지 및 제2 메시지에는 제2 기기에 저장된 제1 SID가 포함되는 것이 아니라, 이에 저장된 SID가 속하는 Block의 Block 식별자가 포함되는 바,해당 Block의 제1 주소 공간의 경계 주소 및 해당 SID에 대응되는 인덱스 값을 제1 기기로 송신한다. 따라서, SRv6 네트워크에 비교적 많은 기기가 포함될 경우, 각각의 기기는 그들의 이웃 기기에 제1 메시지 및 제2 메시지를 송신하는 방식을 통해, 그들의 이웃 기기가 제1 메시지 및 제2 메시지에 포함된 정보에 따라, 해당 기기가 발표한 SID를 정확하게 결정해내도록 할 수 있다. 그리고, 제1 메시지에 포함된 Block 식별자 및 제2 메시지에 포함된 Block 식별자와 인덱스 값에 대응되는 데이터 양이 전체 SID에 대응되는 데이터 양보다 현저히 적으므로, SRv6 네트워크에 대량의 발표해야 하는 SID가 존재할 경우, 본 출원의 실시예에서 제공한 방법을 사용하면, 메시지가 캐리해야 하는 정보의 데이터 양을 현저히 감소시킴으로써, 송신해야 하는 메시지의 수량을 감소시킬 수 있는데, 이는 SID 발표 과정에서의 메시지의 오버헤드를 효과적을 감소시켜, 기기 성능 및 메시지 전송 프로토콜의 안정성을 보장할 수 있다.
상기 단계 S201, 즉 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 것에 대해; 여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
본 단계에서, 제2 기기에는 제1 SID가 저장되어 있다. 제2 기기는 SID 발표를 수행할 때, 제2 기기의 이웃 기기에 제1 메시지 및 제2 메시지를 송신할 수 있다. 제2 기기의 이웃 기기는 모두 해당 제1 메시지 및 제2 메시지를 수신할 수 있다. 즉 제1 기기는 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신할 수 있다.
상기 제1 메시지는 링크 상태 메시지(구분을 돕기 위해, 제3 링크 상태 메시지로 기록되고, 후속 실시예에서 제1 메시지가 제3 링크 상태 메시지인 것을 예로 하여 설명함)일 수 있고, 제1 메시지는 제1 서브 TLV를 포함할 수 있으며, 제1 서브 TLV는 링크 상태 메시지에 포함된 SRv6 SID Block sub-TLV일 수 있다. 여기서, SRv6 SID Block sub-TLV는 SRv6 Locator TLV의 서브 유형-길이-값(Type-Length-Value, TLV)이다. 즉 SRv6 Locator TLV의 서브 TLV에는 SRv6 SID Block sub-TLV가 포함된다. SRv6 SID Block sub-TLV는 SID가 속하는 Block의 관련 정보를 발표하는 것에 사용된다. 현재의 프로토콜 규정에 따라, 링크 상태 메시지에는 SRv6 Locator TLV가 포함되고, 본 출원의 실시예에서의 제1 서브 TLV는 SRv6 Locator TLV의 서브 TLV이지만, 본 출원의 실시예는 이에 대해 한정하지 않고, 제1 서브 TLV는 제1 메시지에 포함된 기타 TLV의 서브 TLV일 수도 있다.
상기 제2 메시지는 링크 상태 메시지(구분을 돕기 위해, 제4 링크 상태 메시지로 기록되고, 후속 실시예에서 제2 메시지가 제4 링크 상태 메시지인 것을 예로 하여 설명함)일 수 있고, 제2 메시지는 제2 서브 TLV, 제3 서브 TLV 또는 제4 서브 TLV를 포함할 수 있다. 제2 서브 TLV는 SRv6 End.X SID Index Sub-TLV이고, 제3 서브 TLV는 SRv6 LAN End.X SID Index Sub-TLV이며, 제4 서브 TLV는 SRv6 End SID Index Sub-TLV이다. 여기서, SRv6 End.X SID Index Sub-TLV는 P2P 인접 유형의 링크 SID에 대응되는 관련 정보를 발표하는 것에 사용되고, SRv6 LAN End.X SID Index Sub-TLV는 LAN 인접 유형의 링크 SID에 대응되는 관련 정보를 발표하는 것에 사용되며, SRv6 End SID Index Sub-TLV는 기기 SID에 대응되는 관련 정보를 발표하는 것에 사용된다.
상기 제4 링크 상태 메시지에서, SRv6 End.X SID Index Sub-TLV 및 SRv6 LAN End.X SID Index Sub-TLV의 상급 TLV는 Extended IS Reachability TLV(TLV-22로도 지칭됨), IS Neighbor Attribute TLV(TLV-23로도 지칭됨), L2 Bundle Member Attributes TLV(TLV-25로도 지칭됨), inter-AS reachability information TLV(TLV-141로도 지칭됨), MT-ISN TLV(TLV-222로도 지칭됨) 및 MT IS Neighbor Attribute TLV(TLV-223로도 지칭됨)를 포함하지만 이에 한정되지 않는다. SRv6 End SID Index Sub-TLV의 상급 TLV는 SRv6 Locator TLV이다. 현재의 프로토콜 규정에 따르면, 본 출원의 실시예에서의 제2 서브 TLV 및 제3 서브 TLV는 상기 TLV-22, TLV-23, TLV-25, TLV-141, TLV-222 또는 TLV-223의 서브 TLV로 할 수 있고, 제4 서브 TLV는 SRv6 Locator TLV의 서브 TLV로 할 수 있다. 그러나 본 출원의 실시예는 이에 제한되지 않고, 제2 서브 TLV, 제3 서브 TLV 및 제4 TLV는 제2 메시지에 포함된 기타 TLV의 서브 TLV로 할 수도 있다.
제1 기기는 해당 제3 링크 상태 메시지 및 제4 링크 상태 메시지를 수신한 후, 제3 링크 상태 메시지 중의 SRv6 SID Block sub-TLV, 및 제4 링크 상태 메시지 중의 SRv6 End.X SID Index Sub-TLV, SRv6 LAN End.X SID Index Sub-TLV 또는 SRv6 End SID Index Sub-TLV에 대응되는 상급 TLV에 포함된 정보에 따라, 제1 메시지 및 제2 메시지를 통해 발표된 SID에 대응되는 기기를 결정할 수 있다.
이해를 돕기 위해, 두 개의 이웃 기기, 즉 기기 1과 기기 2를 예로 하여 설명한다. 기기 1이 기기 2에 기기 1와 다른 이웃 기기(예를 들면 기기 3)의 링크 SID에 대응되는 제1 메시지 및 제2 메시지를 송신할 경우, 기기 2는 기기 1에 의해 송신된 SRv6 SID Block sub-TLV가 캐리된 제3 링크 상태 메시지, 및 SRv6 LAN End.X SID Index Sub-TLV가 캐리된 제4 링크 상태 메시지를 수신한다. 이때, 기기 2는 수신된 제3 링크 상태 메시지 중의 SRv6 SID Block sub-TLV에 대응되는 상급 TLV(즉 상기 SRv6 Locator TLV) 중의 정보 및 제4 링크 상태 메시지 중의 SRv6 LAN End.X SID Index Sub-TLV에 대응되는 상급 TLV(예를 들면 상기 TLV-22) 중의 정보에 따라, 기기 1이 송신한 제1 메시지 및 제2 메시지에 대응되는 기기, 즉 기기 1 및 기기 3을 결정할 수 있다.
상기 SRv6 SID Block sub-TLV, SRv6 End.X SID Index Sub-TLV, SRv6 LAN End.X SID Index Sub-TLV 및 SRv6 End SID Index Sub-TLV는 아래의 설명을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다.
본 출원의 실시예에서, 상기 제2 기기에 저장된 제1 SID의 수량은 하나일 수 있고, 복수 개일 수도 있다. 제2 기기에 저장된 제1 SID의 수량이 복수 개일 경우, 해당 제1 SID는 제2 기기의 기기 SID 및 제2 기기와 제2 기기의 이웃 기기 사이의 링크 SID를 포함할 수 있고, 제2 기기에 저장된 복수 개의 제1 SID가 상이한 Block에 속한다면, 제1 메시지 및 제2 메시지는 각 제1 SID가 속하는 Block의 Block 식별자를 포함할 수 있다.
제2 기기의 이웃 기기는 적어도 해당 제1 기기를 포함하고, 이 외에, 기타 이웃 기기를 포함할 수도 있다. 여기서, 제2 기기의 이웃 기기에 대해 구체적으로 한정하지 않는다.
이해를 돕기 위해, 도 3을 예로 하여 설명한다. 도 3은 본 출원의 실시예에서 제공한 SRv6 네트워크의 구조 개략도이다.
상기 제2 기기가 도 3 중의 기기 2이고, 제1 기기가 도 3 중의 기기 3이라고 가정한다. 기기 2에는 제1 SID가 저장되어 있다. 해당 제1 SID는 기기 SID 및 링크 SID를 포함할 수 있다. 여기서, 기기 SID는 기기 2의 기기 SID이고; 링크 SID는 기기 1과 기기 2 사이의 링크 SID, 및 기기 2와 기기 3 사이의 링크 SID를 포함할 수 있다.
본 출원의 실시예에서, SRv6 네트워크 중의 각 기기는 하나 또는 복수 개의 기기 SID가 존재할 수 있고, 두 개의 인접한 기기 사이에는 하나 또는 복수 개의 링크 SID가 존재할 수 있다. 여기서, 상기 제1 SID에 포함된 SID의 종류 및 제1 SID의 수량에 대해 구체적으로 한정하지 않는다. 이해를 돕기 위해, 아래아래에서는 하나의 제1 SID의 발표를 예로 하여 설명하는 바, 제한적인 역할을 하지 않는다.
일 선택 가능한 실시예에서, 상기 제2 기기에 저장된 제1 SID가 기기 SID를 포함할 경우, 상기 제3 링크 상태 메시지 중의 SRv6 SID Block sub-TLV에는 해당 기기 SID에 대응되는 Block 식별자 및 해당 Block 식별자에 대응되는 제1 주소 공간의 경계 주소가 캐리되어 있다. 상기 제4 링크 상태 정보 중의 SRv6 End SID Index Sub-TLV에는 해당 기기 SID에 대응되는 Block 식별자 및 제1 인덱스 값이 캐리되어 있다.
다른 일 선택 가능한 실시예에서, 상기 제2 기기에 저장된 제1 SID가 링크 SID를 포함할 경우, 상기 제3 링크 상태 메시지 중의 SRv6 SID Block sub-TLV에는 해당 링크 SID에 대응되는 Block 식별자 및 해당 Block 식별자에 대응되는 제1 주소 공간의 경계 주소가 캐리되어 있다. 상기 제4 링크 상태 정보 중의 SRv6 End.X SID Index Sub-TLV 또는 SRv6 LAN End.X SID Index Sub-TLV에는 해당 링크 SID에 대응되는 Block 식별자 및 제1 인덱스 값이 캐리되어 있다.
상기 제4 링크 상태 메시지에 대해, 상기 제2 기기에 저장된 제1 SID가 링크 SID일 경우, 제2 기기와 제1 기기 사이가 P2P 이웃이면, 제4 링크 상태 메시지에는 SRv6 End.X SID Index Sub-TLV가 캐리되어 있고; 제2 기기와 제1 기기 사이가 LAN 이웃이면, 제4 링크 상태 메시지에는 SRv6 LAN End.X SID Index Sub-TLV가 캐리되어 있다.
본 출원의 실시예에서, 제1 SID에 대응되는 종류의 상이함 및 제1 기기와 제2 기기 사이의 인접 유형의 상이함에 따라, 상기 제4 링크 상태 메시지에 캐리된 서브 TLV는 상이하다. 여기서, 상기 제4 링크 상태 메시지에 캐리된 서브 TLV에 대해 구체적으로 한정하지 않는다.
본 출원의 실시예에서, 상기 제1 메시지 및 제2 메시지는 동일한 메시지일 수 있고, 상이한 메시지일 수도 있다. 예를 들면, 상기 제1 메시지가 제3 링크 상태 메시지이고, 제2 메시지가 제4 링크 상태 메시지일 경우, 상기 제3 링크 상태 메시지 및 제4 링크 상태 메시지는 동일한 링크 상태 메시지일 수 있고, 상이한 링크 상태 메시지일 수도 있다. 여기서, 상기 제3 링크 상태 메시지 및 제4 링크 상태 메시지에 대해 구체적으로 한정하지 않는다.
본 출원의 실시예에서, 상기 제1 메시지에는 제1 SID가 속하는 제1 Block의 제1 Block 식별자, 해당 제1 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 오프셋이 포함된다. 상기 제2 메시지는 제2 Block의 제2 Block 식별자 및 제1 SID에 대응되는 제1 인덱스 값을 포함한다.
상기 제1 SID가 기기 SID일 수도 있고, 링크 SID일 수도 있으므로, 상기 제1 메시지에 포함된 적어도 하나의 제1 Block 식별자와 제2 메시지에 포함된 적어도 하나의 제2 Block 식별자에는 동일한 Block 식별자가 존재할 수 있고, 상이한 Block 식별자가 존재할 수도 있다.
상기 제1 Block에 대응되는 주소 공간은 제1 Block에 대응되는 SID의 값 범위로 나타낼 수 있다. 상기 Block은 미리 설정된 규칙에 따라 분할되어 얻을 수 있고, 구체적인 분할 방식은 아래의 설명을 참조할 수 있으며, 여기서는 구체적으로 설명하지 않는다.
상기 단계 S202에 대해, 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제1 SID를 계산한다. 본 출원의 실시예에서, 제1 기기는 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한 후, 적어도 하나의 제1 Block 식별자 및 적어도 하나의 제2 Block 식별자에서 동일한 Block 식별자를 획득하여, 해당 동일한 Block 식별자에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 결정하여 동일한 제1 SID를 나타내는 것에 사용한다.
여기서, 제1 메시지에는 하나 또는 복수 개의 제1 Block 식별자가 포함될 수 있고, 제2 메시지에는 하나 또는 복수 개의 제2 Block 식별자가 포함될 수 있다.
제1 메시지에 하나의 제1 Block 식별자가 포함되고, 제2 메시지에 하나의 제2 Block 식별자가 포함될 경우, 제1 기기는 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한 후, 제1 메시지에 포함된 제1 Block 식별자 및 제2 메시지에 포함된 제2 Block 식별자가 동일한 Block을 나타내는지 여부를 판단할 수 있다. 즉 제1 메시지에 포함된 제1 Block 식별자와 제2 메시지에 포함된 제2 Block 식별자가 동일한지 여부를 판단하여, 제1 메시지에 대응되는 SID와 제2 메시지에 대응되는 SID가 동일한 SID인지 여부를 결정한다.
일 선택 가능한 실시예에서, 상기 제1 메시지에 포함된 제1 Block 식별자와 제2 메시지에 포함된 제2 Block 식별자가 동일할 경우, 즉 제1 Block 식별자 및 제2 Block 식별자가 동일한 Block을 나타낼 경우, 제1 기기는 제1 Block 식별자 및 제2 Block 식별자에 대응되는 SID가 동일한 SID인 것, 즉 해당 제1 SID인 것을 결정할 수 있다. 이때, 제1 기기는 상기 단계 S202를 실행할 수 있는 바, 즉 제1 기기는 제1 메시지에 포함된 제1 주소 공간 중의 경계 주소 및 제2 메시지에 포함된 제1 인덱스 값에 따라, 해당 SID, 즉 제1 SID를 결정해낼 수 있다. 해당 제1 SID의 구체적인 결정 방법은 아래의 설명을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다.
본 출원의 실시예에서, SID는 128bits인 인터넷 프로토콜 버전 6(Internet Protocol Version 6, IPv6)의 주소를 나타낸다. 상기 제1 Block이 속하는 주소 공간은 구체적으로, 제1 Block에 대응되는 SID의 값 범위(즉 IPv6의 주소 값 범위)로 나타낸다. 상기 제1 주소 공간의 경계 주소는 제1 주소 공간에 대응되는 SID의 값 범위 중의 시작 SID 및 말단 SID일 수 있다. 예를 들면, 제1 주소 공간 경계 주소 중의 시작 주소는 제1 주소 공간에 대응되는 SID의 값 범위 중의 시작 SID(즉 Start SID)일 수 있다. 다른 예를 들면, 제1 주소 공간의 경계 주소는 제1 주소 공간에 대응되는 SID의 값 범위 중의 말단 SID(즉 End SID)일 수 있다.
다른 일 선택 가능한 실시예에서, 제1 기기에 의해 수신된 하나의 제1 메시지에 대해, Block 식별자가 해당 제1 메시지 중의 Block 식별자와 동일한 제2 메시지가 검색되지 못하면, 즉 SID를 계산하는 데 수요되는 제1 주소 공간의 경계 주소가 결실되었을 경우, 제1 기기는 해당 제1 메시지를 포기한다.
제1 기기에 의해 수신된 하나의 제2 메시지에 대해, Block 식별자가 해당 제2 메시지 중의 Block 식별자와 동일한 제1 메시지가 검색되지 못하면, 즉 SID를 계산하는 데 수요되는 제1 인덱스 값이 결실되었을 경우, 제1 기기는 해당 제2 메시지를 포기한다.
일 선택 가능한 실시예에서, 네트워크 환경이 제1 기기와 제2 기기 사이의 링크 상태 메시지에 대한 영향을 고려하여, 제1 기기가 Block 식별자가 동일한 제1 메시지 또는 제2 메시지를 검색해내지 못하였을 경우, 미리 설정된 시간 동안 대기할 수 있고, 미리 설정된 시간 후 Block 식별자가 동일한 제1 메시지 및 제2 메시지를 여전히 검색해내지 못하면, 제1 기기는 수신된 제2 메시지 또는 제1 메시지를 포기할 수 있다.
일 선택 가능한 실시예에서, 상기 제1 기기는 상기 제1 메시지 및 제2 메시지를 수신한 후, 수신된 제1 메시지 및 제2 메시지(예를 들면 제3 링크 상태 메시지 및 제4 링크 상태 메시지)를 포워딩할 수 있다. 제1 기기의 이웃 노드는 수신된 제1 메시지 및 제2 메시지에 따라, 제2 기기가 발표한 제1 SID를 결정할 수 있다.
본 출원의 실시예에서, 상기 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 상기 제2 메시지는 제1 오프셋을 더 포함한다. 이에 기반하여, 상기 단계 S202는 구체적으로 아래와 같이 구현된다.
제1 주소 공간의 경계 주소, 제1 오프셋 및 제1 인덱스 값에 따라, 제1 SID를 계산한다.
일 선택 가능한 실시예에서, 상기 제1 주소 공간의 경계 주소가 제1 주소 공간의 시작 주소일 경우, 도 2에 도시된 방법에 따라, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 더 제공한다. 도 4에 도시된 바와 같이, 도 4는 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제2 프로세스 개략도이다. 해당 방법은 하기 단계들을 포함한다.
단계 S401: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한다.
여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자, 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소 및 제1 오프셋을 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
또는, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자, 제1 인덱스 값 및 제1 오프셋을 포함한다.
단계 S402: SID의 주소 규칙에 따라, 동일한 Block에 대응되는 제1 인덱스 값을 제1 오프셋 만큼 이동하여, 제1 오프셋 주소를 얻는다.
여기서, 동일한 Block은 적어도 하나의 제1 Block 식별자 및 적어도 하나의 제2 Block 식별자 중의 동일한 Block이 나타내는 Block이다.
본 단계에서, 상기 제1 메시지에 포함된 하나의 제1 Block 식별자와 제2 메시지에 포함된 하나의 제2 Block 식별자가 동일한 Block을 나타낼 경우, 제1 기기는 제1 오프셋에 기반하여, SID의 주소 규칙에 따라, 제2 메시지에 포함된 제1 인덱스 값에 대해 이동 처리를 수행하여, 제1 오프셋 주소를 얻을 수 있다. 즉 제1 인덱스 값을 제1 오프셋만큼 정도 이동하여, 제1 오프셋 주소를 얻는다.
SRv6 네트워크에서, 기기 SID 또는 링크 SID는 위치 식별자(Locator), 기능 (Function) 및 파라미터(Arguments)로 구성되고, 구체적으로 도 5에 도시된 바와 같으며, 도 5는 SID의 개략도이다.
여기서, Locator은 SID가 속하는 네트워크 세그먼트를 식별하는 것에 사용된다. Locator는 세그먼트 라우팅(Segment Routing, SR) 도메인 내에서 유일하다. Function은 SID에 바인딩된 로컬 작업 명령을 식별하는 것에 사용되고, SR 도메인 내의 지정된 노드가 플로우를 수신한 후, SID의 Function 필드에 따라 관련 작업을 실행한다. Arguments는 메시지의 플로우 및 서비스 등 정보를 정의하는 것에 사용된다.
예를 들면, 상기 제1 인덱스 값은 1이고, 제1 오프셋은 16이며, 이때, 상기 SID의 주소 규칙에 따라, 제1 인덱스 값을 제1 오프셋만큼 이동하는 것은 제1 인덱스 값을 왼쪽으로 16비트 이동시킨 후 얻은 주소, 즉 주소 0::1:0로 나타낼 수 있다. 즉 상기 제1 오프셋 주소는 0::1:0이다.
본 출원의 실시예에서, 상기 SID의 주소 규칙은 SID에 포함된 Locator, Function 및 Arguments에 대응되는 비트 수에 따라 결정될 수 있다.
단계 S403: 시작 주소와 제1 오프셋 주소에 따라, 제1 SID를 계산한다.
본 단계에서, 제1 기기는 이동 처리하여 얻은 제1 오프셋 주소 및 제1 메시지에 포함된 제1 주소 공간의 경계 주소(즉 해당 제1 주소 공간의 시작 주소)에 따라, 제1 메시지 및 제2 메시지에 대응되는 제1 SID를 계산할 수 있다. 제1 SID의 계산 방법은 아래의 설명을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다.
상기 단계 S402 내지 단계 S403은 상기 단계 S202에 대해 세분화한 것이다.
상기 단계 S402 내지 단계 S403을 통해, 대량의 SID 발표 과정에서, 기기는 상기 제1 오프셋을 이용하여 제1 인덱스 값에 대해 이동 처리를 수행하여 제1 오프셋 주소를 얻고, 제1 오프셋 주소 및 제1 주소 공간의 경계 주소에 따라, 기기가 수신한 제1 메시지 및 제2 메시지에 대응되는 SID를 정확하게 계산해낼 수 있는 바, 즉 제2 기기가 SRv6 네트워크에서 발표한 SID를 정확하게 계산할 수 있으므로, SID에 대한 발표 및 계산을 구현하는 동시에, 링크 상태 메시지에 포함된 데이터 양을 감소시켜, 계산해낸 SID의 정확성을 보장함으로써, 발표된 SID의 정확성을 보장한다.
일 선택 가능한 실시예에서, 상기 도 4에 도시된 방법에 따라, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 더 제공한다. 도 6에 도시된 바와 같이, 도 6은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제3 프로세스 개략도이다. 해당 방법은 하기의 단계들을 포함한다.
단계 S601: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한다.
여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자, 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소 및 제1 오프셋을 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
또는, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자, 제1 인덱스 값 및 제1 오프셋을 포함한다.
단계 S602: SID의 주소 규칙에 따라, 동일한 Block에 대응되는 제1 인덱스 값을 제1 오프셋 만큼 이동하여, 제1 오프셋 주소를 얻는다.
상기 단계 S601 내지 단계 S602는 상기 단계 S401 내지 단계 S402와 동일하다.
단계 S603: 시작 주소와 제1 오프셋 주소의 합을 계산한다.
본 단계에서, 제1 기기는 제1 주소 공간의 시작 주소 및 제1 오프셋 주소를 합산하여, 시작 주소와 제1 오프셋 주소의 합을 얻을 수 있다.
일 선택 가능한 실시예에서, 제1 기기는 시작 주소와 제1 오프셋 주소의 합을 계산하여 얻은 후, 해당 합을 제1 메시지 및 제2 메시지에 대응되는 SID, 즉 상기 제1 SID로 할 수 있다.
다른 일 선택 가능한 실시예에서, 상기 제3 링크 상태 메시지 및 제4 링크 상태 메시지가 전송 과정에서 전송 오류가 발생할 수 있는 것을 고려하여, 결정된 제1 SID의 정확성을 보장하기 위해, 제1 기기는 계산해낸 시작 주소와 제1 오프셋 주소의 합에 대응되는 SID가 상기 제1 주소 공간 내에 존재하는지 여부를 판단할 수 있다. 즉 계산해낸 시작 주소와 제1 오프셋 주소의 합에 대응되는 SID가 제1 주소 공간에 대응되는 SID의 값 범위 내에 존재하는지 여부를 판단한다. 제1 주소 공간 내에 존재하면, 단계 S604를 실행한다. 제1 주소 공간 내에 존재하지 않으면, 단계 S605를 실행한다.
일 선택 가능한 실시예에서, 상기 시작 주소와 제1 오프셋 주소의 합에 대응되는 SID가 제1 주소 공간 내에 존재하는지 여부를 결정하는 것은 구체적으로, 시작 주소와 제1 오프셋 주소의 합이 제1 주소 공간의 시작 주소보다 크거나 같고, 제1 주소 공간의 말단 주소보다 작거나 같은지 여부를 판단하는 것으로 나타낼 수 있다. 시작 주소와 제1 오프셋 주소의 합이 제1 주소 공간의 시작 주소보다 크거나 같고, 제1 주소 공간의 말단 주소보다 작거나 같을 경우, 해당 합에 대응되는 SID가 제1 주소 공간 내에 존재하는 것으로 결정한다. 시작 주소와 제1 오프셋 주소의 합이 제1 주소 공간의 시작 주소보다 작거나, 제1 주소 공간의 말단 주소보다 클 경우, 해당 합에 대응되는 SID가 제1 주소 공간 내에 존재하지 않는 것으로 결정한다.
본 출원의 실시예에서, 상기 시작 주소와 제1 오프셋 주소의 합은 IPv6의 주소로 나타내고, 해당 IPv6에 대응되는 SID는 해당 합 자체로 나타낸다.
단계 S604: 합에 대응되는 SID가 제1 주소 공간 내에 존재하면, 합에 대응되는 SID를 제1 SID로 한다.
상기 단계 S603 내지 단계 S604는 상기 단계 S403에 대해 세분화한 것이다.
단계 S605: 합에 대응되는 SID가 제1 주소 공간 내에 존재하지 않으면, 합에 대응되는 SID를 제1 SID로 하는 것을 거절한다.
본 단계에서, 계산해낸 시작 주소와 제1 오프셋 주소의 합에 대응되는 SID가 제1 주소 공간 내에 존재하지 않을 경우, 제1 기기는 계산해낸 합이 오류가 발생한 것을 결정할 수 있다. 이때, 제1 기기는 해당 합에 대응되는 SID를 제1 SID로 하는 것을 거절할 수 있다.
시작 주소와 제1 오프셋 주소의 합에 대응되는 SID가 제1 주소 공간에 존재하는지 여부를 판단하는 것을 통해, 계산해낸 합이 오류가 발생했는지 여부를 효과적으로 검출할 수 있어, 오류된 합에 대응되는 SID를 제1 SID로 하는 것을 방지하여, 얻은 제1 SID의 정확성을 보장하고, 따라서, 나중에 SID에 기반한 메시지 포워딩 과정에 대해 보장을 제공한다.
일 선택 가능한 실시예에서, 제1 주소 공간의 경계 주소가 제1 주소 공간의 말단 주소일 경우, 도 2에 도시된 방법에 따라, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 더 제공한다. 도 7에 도시되 바와 같이, 도 7은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제4 프로세스 개략도이다. 해당 방법은 하기의 단계들을 포함한다.
단계 S701: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한다.
여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자, 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소 및 제1 오프셋을 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
또는, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자, 제1 인덱스 값 및 제1 오프셋을 포함한다.
단계 S702: SID의 주소 규칙에 따라, 동일한 Block에 대응되는 제1 인덱스 값을 제1 오프셋 만큼 이동하여, 제2 오프셋 주소를 얻는다.
여기서, 동일한 Block은 적어도 하나의 제1 Block 식별자 및 적어도 하나의 제2 Block 식별자 중의 동일한 Block이 나타내는 Block이다.
상기 제2 오프셋 주소의 획득 방식은 상기 제1 오프셋 주소의 획득 방식을 참조할 수 있고, 여기에서는 자세한 설명을 생략하기로 한다.
단계 S703: 말단 주소와 제2 오프셋 주소에 따라, 제1 SID를 계산한다.
본 단계에서, 제1 기기는 이동 처리하여 얻은 제2 오프셋 주소 및 제1 메시지에 포함된 제1 주소 공간의 경계 주소(즉 해당 제1 주소 공간의 말단 주소)에 따라, 제1 메시지 및 제2 메시지에 대응되는 제1 SID를 계산할 수 있다. 제1 SID의 계산 방법은 아래의 설명을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다.
상기 단계 S702 내지 단계 S703은 상기 단계 S202에 대해 세분화한 것이다.
일 선택 가능한 실시예에서, 도 7에 도시된 방법에 따라, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 더 제공한다. 도 8에 도시된 바와 같이, 도 8은 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제5 프로세스 개략도이다. 해당 방법은 하기의 단계들을 포함한다.
단계 S801: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한다.
여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자, 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소 및 제1 오프셋을 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
또는, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 Block에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자, 제1 인덱스 값 및 제1 오프셋을 포함한다.
단계 S802: SID의 주소 규칙에 따라, 동일한 Block에 대응되는 제1 인덱스 값을 제1 오프셋만큼 이동하여, 제2 오프셋 주소를 얻는다.
상기 단계 S801 내지 단계 S802는 상기 단계 S701 내지 단계 S702와 동일하다.
단계 S803: 말단 주소와 제2 오프셋 주소의 차이값을 계산한다.
본 단계에서, 제1 기기는 제1 주소 공간의 말단 주소 및 제2 오프셋 주소에 대해 차이값 계산을 수행하여, 말단 주소와 제2 오프셋 주소의 차이값을 얻을 수 있다.
일 선택 가능한 실시예에서, 제1 기기는 말단 주소와 제2 오프셋 주소의 차이값을 계산하여 얻은 후, 해당 차이값을 제1 메시지 및 제2 메시지에 대응되는 SID, 즉 상기 제1 SID로 결정할 수 있다.
다른 일 선택 가능한 실시예에서, 상기 제3 링크 상태 메시지 및 제4 링크 상태 메시지가 전송 과정에서 전송 오류가 발생할 수 있는 것을 고려하여, 결정된 제1 SID의 정확성을 보장하기 위해, 제1 기기는 계산해낸 말단 주소와 제2 오프셋 주소의 차이값에 대응되는 SID가 해당 제1 주소 공간 내에 존재하는지 여부를 판단할 수 있다. 즉 계산해낸 말단 주소와 제2 오프셋 주소의 차이값에 대응되는 SID가 제1 주소 공간에 대응되는 SID의 값 범위 내에 존재하는지 여부를 판단한다. 제1 주소 공간 내에 존재하면, 단계 S804를 실행한다. 제1 주소 공간 내에 존재하지 않으면, 단계 S805를 실행한다.
상기 말단 주소와 제2 오프셋 주소 사이의 차이값에 대응되는 SID가 제1 주소 공간 내에 존재하는지 여부를 결정하는 방식은 상기 시작 주소와 제1 오프셋 주소의 합에 대응되는 SID가 제1 주소 공간 내에 존재하는지 여부를 결정하는 방법을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다.
단계 S804: 차이값에 대응되는 SID가 제1 주소 공간 내에 존재하면, 차이값에 대응되는 SID를 제1 SID로 한다.
상기 단계 S803 내지 단계 S804는 상기 단계 S703에 대해 세분화한 것이다.
단계 S805: 차이값에 대응되는 SID가 제1 주소 공간 내에 존재하지 않으면, 차이값에 대응되는 SID를 제1 SID로 하는 것을 거절한다.
본 단계에서, 계산해낸 말단 주소와 제2 오프셋 주소의 차이값에 대응되는 SID가 제1 주소 공간 내에 존재하지 않을 경우, 제1 기기는 계산된 차이값이 오류가 발생한 것을 결정할 수 있다. 이때, 제1 기기는 해당 차이값에 대응되는 SID를 제1 SID로 하는 것을 거절할 수 있다.
말단 주소와 제2 오프셋 주소의 차이값에 대응되는 SID가 제1 주소 공간에 존재하는지 여부를 판단하는 것을 통해, 계산된 차이값이 오류가 발생하는지 여부를 효과적으로 검출할 수 있어, 오류된 차이값에 대응되는 SID를 제1 SID로 하는 것을 방지하여, 얻은 제1 SID의 정확성을 보장하고, 따라서, 나중에 SID에 기반한 메시지 포워딩 과정에 대해 보장을 제공한다.
상기 도 4, 도 6 내지 도 8의 실시예에서, 제1 주소 공간 중의 시작 주소 및 말단 주소를 예로 하여, 제1 SID를 계산하는 방법을 설명한다. 이 외에, 제1 기기는 제1 주소 공간에서 시작 주소 및 말단 주소를 제외한 어느 하나의 주소에 따라, 제2 기기가 발표한 제1 SID를 계산할 수도 있다.
이해를 돕기 위해, 제1 주소 공간 중 시작 주소 및 말단 주소를 제외한 어느 하나의 주소를 주소 A로 하여, 제1 SID의 계산 방법을 설명한다. 이때, 상기 제1 오프셋에는 양과 음을 나타내는 부호 비트가 포함될 수 있고, 예를 들면, 부호 비트 값이 0이면 양수를 나타내고, 부호 비트 값이 1이면 음수를 나타낸다. 제1 기기는 SID의 주소 규칙에 따라 인덱스 값을 상기 제1 오프셋만큼 이동하여 오프셋 주소를 얻은 후, 제1 오프셋의 부호 비트에 따라, 주소 A 및 오프셋 주소에 대해 합산 또는 차이값 계산을 수행하여, 제1 SID를 얻을 수 있다. 예를 들면, 제1 오프셋의 부호 비트가 양수를 나타낼 경우, 제1 기기는 주소 A와 오프셋 주소의 합을 계산하여, 제1 SID를 얻을 수 있고; 제1 오프셋의 부호 비트가 음수를 나타낼 경우, 제1 기기는 계산 주소 A와 오프셋 주소의 차이값을 계산하여, 제1 SID를 얻을 수 있다.
본 출원의 실시예에서, 상기 제1 SID의 계산 과정에서 이용된 제1 주소 공간 중의 주소에 대해 구체적으로 한정하지 않는다.
일 선택 가능한 실시예에서, 상기 제1 기기에는 제2 SID가 저장되고, 상기 도 2에 도시된 방법에 따라, 본 출원의 실시예는 세그먼트 식별자 결정 방법을 더 제공하는 바, 도 9에 도시된 바와 같이, 도 9는 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법의 제6 프로세스 개략도이다. 해당 방법은 하기의 단계들을 포함한다.
단계 S901: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하고; 여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 제2 Block 식별자 및 제1 인덱스 값을 포함한다.
단계 S902: 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제1 SID를 계산한다.
여기서, 동일한 Block은 적어도 하나의 제1 Block 식별자 및 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block이다.
상기 단계 S901 내지 단계 S902는 상기 단계 S201 내지 단계 S202와 동일하다.
단계 S903: 저장된 제2 SID를 획득한다.
상기 제2 SID는 제1 기기의 기기 SID 및 제1 기기와 이의 이웃 노드 사이의 링크 SID 중 하나 또는 복수 개를 포함할 수 있다. 여기서, 상기 제2 SID에 대해 구체적으로 한정하지 않는다.
단계 S904: 미리 분할된 각 Block과 주소 공간 사이의 대응 관계에 따라, 제2 SID가 속하는 타겟 Block을 결정한다.
일 선택 가능한 실시예에서, SRv6 네트워크 중의 각 기기에 대해, 해당 기기는 미리 설정된 주소 공간 분할 규칙에 따라, 복수 개의 SID의 값 범위를 분할할 수 있고, 각 SID의 값 범위는 하나의 Block이다. 이때, 상기 미리 설정된 규칙은 해당 미리 설정된 주소 공간 분할 규칙이다.
이해를 돕기 위해, 주소 공간 0::100:0 내지 0::300:0을 예로 하여 설명한다. 기기는 미리 설정된 규칙에 따라, 해당 주소 공간을 두 개의 Block으로 분할할 수 있는 바, 예를 들면, Block 1에 대응되는 주소 공간은 0::100:0 내지 0::200:0일 수 있고, Block 2에 대응되는 주소 공간은 0::201:0 내지 0::300:0일 수 있다.
다른 일 선택 가능한 실시예에서, SRv6 네트워크 중의 각 기기에 대해, 해당 기기는 미리 설정된 비트 분할 규칙에 따라, 복수 개의 SID의 값 범위를 분할할 수 있고, 각 SID의 값 범위는 하나의 Block이다. 이때, 상기 미리 설정된 규칙은 해당 미리 설정된 비트 분할 규칙이다.
이해를 돕기 위해, 네 개의 비트의 분할을 예로 하여 설명한다. 주소 공간의 값 범위는 0000 내지 1111이다. 기기는 이러한 네 개의 비트에 기반하여 두 개의 SID의 값 범위를 분할할 수 있는 바, 즉 분할하여 두 개의 Block을 얻는다.
예를 들면, Block A에 대응되는 주소 저장 공간은 0000 내지 0011일 수 있고, 즉 제3 비트 및 제4 비트가 0이다. Block B에 대응되는 주소 저장 공간은 0100-1111이다. 즉 제3 비트 및 제4 비트 위치 중 적어도 하나의 비트가 1이다.
상기 Block은 미리 설정된 주소 공간 분할 규칙에 따라 분할하여 얻을 수 있고, 미리 설정된 비트 분할 규칙에 따라 분할하여 얻을 수도 있다. 여기서, 상기 Block의 분할 방식에 대해 구체적으로 한정하지 않는다.
본 출원의 실시예에서, 상기 SRv6 네트워크 중 각 기기가 미리 설정된 규칙에 따라 분할하여 얻은 Block의 수량은 동일할 수 있고, 상이할 수도 있으며; 각 Block에 대응되는 주소 공간의 값 범위는 동일할 수 있고, 상이할 수도 있다. 여기서, SRv6 네트워크 중 각 기기에 대응되는 Block의 수량 및 주소 공간에 대해 구체적으로 한정하지 않는다.
일 선택 가능한 실시예에서, 이리 알고있는 통신 프로토콜 표준에 따라 알 수 있듯이, 상기 SID 중 Arguments 필드는 0이다. 따라서, 상기 미리 설정된 규칙에 따라 Block을 분할할 때, SID에 포함된 Arguments 필드의 비트 수에 따라, 분할해야 할 주소 공간을 결정할 수 있다. 즉 Arguments 필드가 0인 주소 공간을 선택하여 분할하여, 하나 또는 복수 개의 Block을 얻는다.
일 선택 가능한 실시예에서, 상기 SRv6 네트워크 중의 각 기기가 하나 또는 복수 개의 Block을 분할하여 얻은 후, 각 Block에 대해 할당된 대응되는 Block 식별자, 즉 Block ID를 저장할 수 있다.
상기 제1 기기가 상기 제2 SID를 획득한 후, 미리 분할된 각 Block과 주소 공간의 대응 관계에 따라, 제2 SID가 존재하는 주소 공간(제2 주소 공간으로 기록함)을 결정하고, 제2 SID가 존재하는 제2 주소 공간에 대응되는 Block을 제2 SID가 속하는 Block으로 결정하여, 타겟 Block을 얻을 수 있다.
상기 실시예에서, 상기 단계 S904는 단계 S903 후 실행된다. 상술한 것을 제외하고, 상기 단계 S904는 상기 단계 S901와 동시에 실행할 수 있고, 상기 단계 S901 전에 실행할 수도 있다. 여기서, 상기 단계 S901과 단계 S904의 실행 순서에 대해 구체적으로 한정하지 않는다.
단계 S905: 타겟 Block에 대응되는 제2 주소 공간 중의 각 SID과 인덱스 값의 대응 관계에 따라, 제2 SID에 대응되는 제2 인덱스 값을 결정한다.
본 출원의 실시예에서, 상기 타겟 Block에 대응되는 제2 주소 공간 중의 각 SID는 대응되는 인덱스 값이 존재한다. 제1 기기는 제2 SID가 속하는 타겟 Block에 대응되는 제2 주소 공간을 결정한 후, 해당 제2 주소 공간 중의 각 SID와 인덱스 값 사이의 대응 관계에 따라, 제2 SID에 대응되는 인덱스 값을 결정하여, 제2 인덱스 값으로 할 수 있다.
본 출원의 실시예에서, 상기 제2 주소 공간 중의 각 SID에 대응되는 인덱스 값은 제2 주소 공간의 경계 주소에 기반하여 결정될 수 있다.
예를 들면, 상기 제2 주소 공간에 대응되는 SID의 값 범위가 0::100:0 내지 0::200:0이고, 해당 제2 주소 공간의 시작 주소가 0::100:0이면, 0::100:0에 대응되는 인덱스 값은 0일 수 있고, 0::101:0에 대응되는 인덱스 값은 1일 수 있으며, 0::102:0에 대응되는 인덱스 값은 2일 수 있고, 이와 같이 유추하면, 0::200:0에 대응되는 인덱스 값은 256=2*162-162일 수 있다.
다른 예를 들면, 상기 제2 주소 공간에 대응되는 SID의 값 범위가 여전히 0::100:0 내지 0::200:0이고, 해당 제2 주소 공간의 말단 주소가 0::200:0이면, 0::200:0에 대응되는 인덱스 값은 0일 수 있고, 0::1FF:0에 대응되는 인덱스 값은 1일 수 있어며, 0::1FE:0에 대응되는 인덱스 값은 2일 수 있고, 이와 같이 유추하면, 0::100:0에 대응되는 인덱스 값은 256일 수 있다. 본 출원의 실시예에서, 제2 주소 공간 중의 각 SID에 대응되는 인덱스 값의 결정 방법에 대해 구체적으로 한정하지 않는다.
단계 S906: 각 이웃 기기에 제3 메시지 및 제4 메시지를 송신하고, 제3 메시지는 타겟 Block의 제3 Block 식별자 및 제2 주소 공간의 경계 주소를 포함하고, 제4 메시지는 제3 Block 식별자 및 제2 인덱스 값을 포함한다.
제1 기기는 각 이웃 기기에 제3 메시지 및 제4 메시지를 송신할 수 있다. 제1 기기에 대응되는 각 이웃 기기는 해당 제3 메시지 및 제4 메시지를 수신한 후, 해당 제3 메시지 및 제4 메시지에 따라, 상기 제2 SID를 결정할 수 있다. 제2 SID의 결정 방법은 상기 제1 SID의 결정 방법을 참조할 수 있고, 여기서는 구체적으로 설명하지 않는다.
일 선택 가능한 실시예에서, 제3 메시지는 제2 오프셋을 더 포함하고, 또는, 제4 메시지는 제2 오프셋을 더 포함하며; 상기 단계 S906 전, 해당 방법은, 제2 주소 공간 중의 각 주소의 속성 특징에 따라, 제2 주소 공간의 경계 주소의 제2 오프셋을 계산하는 단계를 더 포함한다.
일 선택 가능한 실시예에서, 이미 알려진 통신 프로토콜 표준에서, 상기 SID가 Arguments 필드를 포함하므로, Arguments 필드를 SID의 하위 주소 비트에 설치한다. 그리고, Arguments 필드에 대응되는 각 비트가 0이므로, 제1 기기는 Arguments 필드에 대응되는 전부 비트 수를 제2 주소 공간의 경계 주소의 제2 오프셋으로 결정할 수 있다.
본 출원의 실시예에서, 상기 제2 주소 공간 중의 각 주소의 속성 특징은, 각 주소의 하위 주소 비트에서 값이 0인 비트의 수량으로 나타낼 수 있다.
상기 제2 주소 공간의 경계 주소는 제2 주소 공간 중의 시작 주소 또는 말단 주소 등일 수 있다.
본 출원의 실시예에서, 제1 기기는 사용자의 실제 수요에 따라 제2 오프셋을 결정할 수 있다. 하나의 예에서, 제1 기기는 하위 주소 비트로부터, 제1 수량의 주소 비트를 선택하여 제2 오프셋으로 한다. 여기서, 제1 수량의 값은 10개, 20개, 30개 등일 수 있다. 다른 예에서, 제2 오프셋은 0일 수 있고, 제2 오프셋이 0일 경우, 제3 메시지 및 제4 메시지에는 제2 오프셋가 캐리되지 않을 수 있다.
이해할 수 있는 것은, 해당 예시에서, 엄격히 기존 SID에 포함된 필드에 의해 제2 오프셋을 결정하는 것이 아니라, 사용자의 실제 수요에 따라, 일부 주소 비트를 선택하여 제2 오프셋으로 한다. 그리고, 선택해낸 각 주소 비트에 대응되는 값은 0일 수 있고, 1일 수도 있으며, 본 출원의 실시예에서, 각 주소 비트에 대응되는 값을 한정하지 않는다.
본 출원의 실시예에서, 상기 제2 오프셋의 결정 방법에 대해 구체적으로 한정하지 않는다.
본 출원의 실시예에서, 상기 제3 메시지는 링크 상태 메시지(구분을 돕기 위해, 제5 링크 상태 메시지로 기록됨)일 수 있고, 제3 메시지는 서브 TLV를 포함할 수 있으며, 제3 메시지의 서브 TLV는 제5 링크 상태 메시지 중의 SRv6 SID Block sub-TLV일 수 있다. 상기 제4 메시지는 링크 상태 메시지(구분을 돕기 위해, 제6 링크 상태 메시지로 기록됨)일 수 있고, 제4 메시지는 서브 TLV를 포함하며, 제4 메시지의 서브 TLV는 제6 링크 상태 메시지 중의 SRv6 End.X SID Index Sub-TLV, SRv6 LAN End.X SID Index Sub-TLV 또는 SRv6 End SID Index Sub-TLV일 수 있다.
일 선택 가능한 실시예에서, 상기 제1 기기는 이웃 노드에 상기 제3 메시지 및 제4 메시지를 송신하는 동시에, 상기 제1 메시지 및 제2 메시지를 더 송신할 수 있다. 여기서, 제1 기기가 송신한 메시지에 대해 구체적으로 한정하지 않는다.
이해를 돕기 위해, 도 10a 내지 도 10d를 결합하여 예로 하여 상기 제1 서브 TLV 내지 제4 서브 TLV를 설명한다.
제1 서브 TLV는 블록 식별자 필드, 시작 SID 필드 및 말단 SID 필드를 포함하고; 블록 식별자 필드는 적어도 하나의 제1 Block 식별자를 캐리하는 것에 사용되고; 시작 SID 필드는 각 제1 Block에 대응되는 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 말단 SID 필드는 각 제1 Block에 대응되는 주소 공간의 말단 주소를 캐리하는 것에 사용된다.
예시로서, 제1 서브 TLV는 SRv6 SID Block sub-TLV일 수 있고, 도 10a은 본 출원의 실시예에서 제공한 SRv6 SID Block sub-TLV의 개략도이다. 현재의 프로토콜 규정에 따르면, SRv6 SID Block sub-TLV는 유형 필드, 길이 필드, 하급 서브 TLV 길이 필드(Sub-sub-tlv- len) 및 하급 서브 TLV 필드(Sub-sub-TLVs)를 포함한다. 본 출원의 실시예에서, 상기 필드들을 제외하고, SRv6 SID Block sub-TLV는 블록 식별자 필드(Block ID), 시작 SID 필드(Start S ID) 및 말단 SID 필드(End ID)를 더 포함한다.
선택적으로, 해당 SRv6 SID Block sub-TLV는 오프셋 필드(offset)를 더 포함할 수 있고, 오프셋 필드는 제1 오프셋을 캐리할 수 있으며, 해당 제1 오프셋은 SRv6 SID Block sub-TLV에 포함된 블록 식별자에 대응되는 주소 공간의 경계 주소의 오프셋을 나타내는 것에 사용된다. 도 10a에서 하나의 블록 식별자를 예로 하고, 이해할 수 있는 것은, SRv6 SID Block sub-TLV가 복수 개의 블록 식별자를 포함할 경우, 해당 제1 오프셋은 각 블록 식별자에 대응되는 주소 공간의 경계 주소의 오프셋을 나타내는 것에 사용될 수 있다.
IS-IS 프로토콜에서, 해당 SRv6 SID Block sub-TLV 중의 유형 필드, 길이 필드, 블록 식별자 필드, 오프셋 필드, 하급 서브 TLV 길이 필드는 모두 8비트를 차지할 수 있고, 하급 서브 TLV 필드의 길이는 변경 가능하으며, 시작 SID 필드 및 말단 SID 필드는 모두 128비트를 차지한다. 기타 프로토콜에서, 각 필드의 길이 및 각 필드의 배열 순서는 이에 한정되지 않고, 본 출원의 실시예는 이에 대해 한정하지 않는다.
선택적으로, 제3 메시지 중의 서브 TLV도 SRv6 SID Block sub-TLV일 수 있고, 이럴 경우, SRv6 SID Block sub-TLV의 블록 식별자 필드의 값은 상기 제3 메시지 중의 제3 Block 식별자이고, 오프셋 필드의 값은 제3 메시지 중의 제2 오프셋이며, 시작 SID 필드 및 말단 SID 필드의 값은 각각 제2 주소 공간의 시작 주소 및 말단 주소이다.
제2 서브 TLV는 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제2 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함한다.
제3 서브 TLV는 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제3 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함한다.
제4 서브 TLV는 기기 SID의 인덱스를 캐리하는 것에 사용되고; 제4 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함한다.
여기서, 상기 제2 서브 TLV, 제3 서브 TLV 및 제4 서브 TLV에서, 블록 식별자 필드는 제2 Block 식별자를 캐리하는 것에 사용되고; 인덱스 수량 필드는 인덱스 수량을 캐리하는 것에 사용되며; 인덱스 길이 필드는 인덱스 길이를 캐리하는 것에 사용되고; 인덱스 필드는 하나의 인덱스 값을 캐리하는 것에 사용된다.
예시로서, 제2 서브 TLV는 SRv6 End.X SID Index Sub-TLV일 수 있고, 제3 서브 TLV는 SRv6 LAN End.X SID Index Sub-TLV일 수 있다. 도 10b는 본 출원의 실시예에서 제공한 SRv6 End.X SID Index Sub-TLV의 개략도이고; 도 10c는 본 출원의 실시예에서 제공한 SRv6 LAN End.X SID Index Sub-TLV의 개략도이다.
현재의 프로토콜 규정에 따르면, SRv6 End.X SID Index Sub-TLV 및 SRv6 LAN End.X SID Index Sub-TLV는 모두 유형 필드, 길이 필드, 플래그 비트 필드, 알고리즘 필드 및 가중치 필드를 포함한다. 본 출원의 실시예에서, 상기 필드들을 제외하고, SRv6 End.X SID Index Sub-TLV는 블록 식별자 필드(Block ID), 인덱스 수량 필드(Index Num), 인덱스 길이 필드(Index Length), 적어도 하나의 인덱스 필드(Index) 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드(Endpoint Behavior)를 더 포함한다. 여기서, 인덱스 수량 필드가 Num이면, 적어도 하나의 인덱스 필드는 인덱스 0(Index 0), 인덱스 1(Index 1), ??, 인덱스 Num-1(Index Num-1)를 포함하고, 상응되게, 앤드포인트 행위 필드는 앤드포인트 행위 0(Endpoint Behavior 0), 앤드포인트 행위 1(Endpoint Behavior 1), ??, 앤드포인트 행위 Num-1(Endpoint Behavior Num-1)를 포함한다.
SRv6 End.X SID Index Sub-TLV는 이웃 시스템 식별자 필드(Neighbor System-ID)를 더 포함하고, 이웃 시스템 식별자 필드가 차지하는 비트 수는 변경 가능하고, 이웃 시스템 식별자에 기반하여 결정될 수 있다.
IS-IS 프로토콜에서, SRv6 End.X SID Index Sub-TLV 및 SRv6 LAN End.X SID Index Sub-TLV 중의 유형 필드, 길이 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드 및 각 앤드포인트 행위 필드는 모두 8비트를 차지할 수 있고, 각 인덱스 필드가 차지하는 비트 수는 변경 가능하다. 기타 프로토콜에서, 각 필드의 길이 및 각 필드의 배열 순서는 이에 한정되지 않는다.
선택적으로, 제4 메시지 중의 서브 TLV는 SRv6 End.X SID Index Sub-TLV일 수도 있고, 이럴 경우, SRv6 End.X SID Index Sub-TLV의 블록 식별자 필드의 값은 제4 메시지 중의 제3 Block 식별자이고, 인덱스 필드의 값은 제4 메시지 중의 제2 인덱스 값일 수 있다.
또는, 제4 메시지 중의 서브 TLV는 SRv6 LAN End.X SID Index Sub-TLV일 수도 있고, 이럴 경우, SRv6 LAN End.X SID Index Sub-TLV의 블록 식별자 필드의 값은 제3 Block 식별자이고, 인덱스 필드의 값은 제4 메시지 중의 제2 인덱스 값일 수 있다.
도 10b 및 도 10c 중의 Block 식별자는 모두 링크 SID에 대응되는 식별자이다.
예시로서, 제4 서브 TLV는 SRv6 End SID Index Sub-TLV일 수 있고, 도 10d는 본 출원의 실시예에서 제공한 SRv6 End SID Index Sub-TLV의 개략도이다. 현재의 프로토콜 규정에 따르면, SRv6 End SID Index Sub-TLV는 유형 필드, 길이 필드 및 플래그 비트 필드를 포함한다. 본 출원의 실시예에서, 상기 필드들을 제외하고, SRv6 End SID Index Sub-TLV는 블록 식별자 필드(Block ID), 인덱스 수량 필드(Index Num), 인덱스 길이 필드(Index Length), 적어도 하나의 인덱스 필드(Index) 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드(Endpoint Behavior)를 더 포함한다. 여기서, 인덱스 수량 필드가 Num이면, 적어도 하나의 인덱스 필드는 인덱스 0(Index 0), 인덱스 1(Index 1), ??, 인덱스 Num-1(Index Num-1)를 포함하고, 상응되게, 앤드포인트 행위 필드는 앤드포인트 행위 0(Endpoint Behavior 0), 앤드포인트 행위 1(Endpoint Behavior 1), ??, 앤드포인트 행위 Num-1(Endpoint Behavior Num-1)를 포함한다.
IS-IS 프로토콜에서, SRv6 End Index Sub-TLV 중의 유형 필드, 길이 필드, 플래그 비트 필드, 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드 및 각 앤드포인트 행위 필드는 모두 8비트를 차지할 수 있고, 각 인덱스 필드가 차지하는 비트 수는 변경 가능하다. 기타 프로토콜에서 각 필드의 길이 및 각 필드의 배열 순서는 이에 한정되지 않고, 본 출원의 실시예는 이에 대해 한정하지 않는다.
선택적으로, 제4 메시지 중의 서브 TLV는 SRv6 End SID Index Sub-TLV일 수도 있고, 이럴 경우, SRv6 End SID Index Sub-TLV의 블록 식별자 필드의 값은 제4 메시지 중의 제3 Block 식별자이고, 인덱스 필드의 값은 제4 메시지 중의 제2 인덱스 값일 수 있다.
선택적으로, 제2 서브 TLV는 오프셋 필드를 더 포함하고, 제3 서브 TLV는 오프셋 필드를 더 포함하며, 제4 서브 TLV는 오프셋 필드를 더 포함하고, 해당 오프셋 필드는 제1 오프셋을 캐리할 수 있다.
제2 서브 TLV에 포함된 오프셋은, 제2 서브 TLV에 포함된 블록 식별자에 대응되는 주소 공간의 오프셋이다.
제3 서브 TLV에 포함된 오프셋은, 제3 서브 TLV에 포함된 블록 식별자에 대응되는 주소 공간의 오프셋이다.
제4 서브 TLV에 포함된 오프셋은, 제4 서브 TLV에 포함된 블록 식별자에 대응되는 주소 공간의 오프셋이다.
상기 도 10a 내지 도 10d는 IS-IS 프로토콜에 기반하여 송신된 링크 상태 메시지 중의 TLV이다. OSPFv3에 기반하여 송신된 링크 상태 메시지 중의 TLV는 IS-IS 프로토콜에 기반하여 송신된 링크 상태 메시지 중의 TLV와 기본적으로 비슷하고, 여기서, OSPFv3에 기반하여 송신된 링크 상태 메시지 중의 TLV의 구조에 대해 구체적으로 설명하지 않는다.
이해를 돕기 위해, 두 개의 인접한 기기, 즉 기기 1과 기기 2를 예로 하여, 기기 1에 저장된 SID의 발표 과정을 설명한다. 기기 1에 두 개의 기기 SID가 저장되어 있고, 각각 1::101:0 및 1::102:0로 나타내는 것으로 가정한다. 기기 1에 할당된 Block의 수량은 1이고, 해당 Block의 Block 식별자는 1이며, 주소 공간은 1::100:0 내지 1::200:0이다.
기기 1의 Block에 할당된 SID에 대응되는 인덱스 정보는, Index 1: 1::101:0 및 Index 2: 1::102:0로 나타낸다. SID 1::101:0에 대응되는 인덱스는 Index 1이고, SID 1::102:0에 대응되는 인덱스는 Index 2이다.
특정 시간에, 기기 1은 이웃 기기, 즉 기기 2에 SRv6 SID Block sub-TLV가 캐리된 링크 상태 메시지 1 및 SRv6 End SID Index Sub-TLV가 캐리된 링크 상태 메시지 2를 송신한다. SRv6 SID Block sub-TLV에서, 블록 식별자(즉 Block-ID)필드는 1이고, 시작 SID 필드는 1::100:0이며, 말단 SID 필드는 1::200:0이고, 오프셋(즉 offset) 필드는 16이다. SRv6 End SID Index Sub-TLV에서, 세그먼트 식별자 필드는 1이고, 인덱스 수량(즉 Index Num) 필드는 2이며, 인덱스 길이(즉 Index Length) 필드는 1이고, Index 0 필드는 1바이트를 차지하며, 값은 1(즉 인덱스 값이 1임)이고, Index 1 필드는 1바이트를 차지하며, 값은 2(즉 인덱스 값이 2임)이다.
기기 2는 기기 1에 의해 송신된 링크 상태 메시지 1 및 링크 상태 메시지 2를 수신한 후, SRv6 End SID Index Sub-TLV 중의 Index 0에 대해, 오프셋 필드 중의 오프셋(즉 16)에 따라, 인덱스 값(즉 1)에 대해 이동 처리를 수행할 수 있는 바, 즉 인덱스 값 1을 왼쪽으로 16비트 이동하여, 오프셋 주소 0::1:0를 얻으며, 이때, 기기 2는 오프셋 주소 0::1:0과 시작 SID(즉 1::100:0)를 가하여, SID 1::101:0을 얻을 수 있다.
SRv6 End SID Index Sub-TLV 중의 Index 1에 대해, 오프셋 필드 중의 오프셋(즉 16)에 따라, 인덱스 값(즉 2)에 대해 이동 처리를 수행할 수 있는 바, 즉 인덱스 값 2를 왼쪽으로 16비트 이동하여, 오프셋 주소 1::2:0를 얻으며, 이때, 기기 2는 오프셋 주소 0::2:0과 시작 SID(즉 1::100:0)를 가하여, SID 1::102:0을 얻을 수 있다.
이때, 기기 2는 기기 1에 의해 발표된 SID가 1::101:0 및 1::102:0인 것을 결정할 수 있다.
하나의 기기의 이웃 기기가 매우 많거나 사용한 Flex-Algorithms의 수량이 매우 클 경우, 대량의 링크 SID(End.X SID)를 발표해야 하므로, SID 발표를 수행할 때의 메시지 오버헤드를 한층 더 증가한다. SID 발표를 수행할 때의 메시지 오버헤드를 감소시키기 위해, 본 출원의 실시예는 SID 발표를 수행할 때의 메시지 내용을 추가로 압축시킬 수 있다.
이에 기반하여, 본 출원의 다른 실시예에서, 상기 단계 S201에서의 제1 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고, 상기 단계 S201에서의 제1 인덱스 값은 시작 인덱스 값일 수 있고, 시작 인덱스 값은 제1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이다. 이에 기초하여, 본 출원의 실시예는 다른 세그먼트 식별자 결정 방법을 제공하는 바, 도 11에 도시된 바와 같이, 해당 방법은 구체적으로 하기의 단계들을 포함한다.
단계 S1101: 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신한다.
제1 메시지는 적어도 하나의 제1 Block 식별자, 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소, 앤드포인트 행위의 수량 및 앤드포인트 행위를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함한다. 제1 메시지에 포함된 각 앤드포인트 행위는 하나의 인덱스 값에 대응되고, 제1 메시지에 포함된 복수 개의 앤드포인트 행위에 대응되는 인덱스 값은 연속된 것이다. 제2 메시지에 포함된 제1 인덱스 값은 시작 인덱스 값이고, 시작 인덱스 값은 제1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이다.
예를 들면, 제1 메시지에 포함된 앤드포인트 행위의 수량이 4이면, 제1 메시지에는 네 개의 앤드포인트 행위가 포함되고, 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이 1이면, 제2 메시지에 포함된 제1 인덱스 값은 1이다.
본 출원의 실시예에서, 제2 기기에는 복수 개의 링크 SID가 저장되어 있고, 제1 메시지 및 제2 메시지에 포함된 Block 식별자는 모두 링크 SID가 속하는 Block의 식별자이다.
제1 메시지가 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함할 경우, 단계 S202는 구체적으로 아래의 단계들과 같이 구현된다.
단계 S1102: 앤드포인트 행위의 수량 및 시작 인덱스 값에 따라, 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산한다.
이해할 수 있는 것은, 제1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값이고, 두 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값에 1을 가한 것이며, 세 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 값에 1을 가한 후 또 1을 가한 것인 바, 이와 같이 유추하여, 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하여 얻을 수 있다.
선택적으로, 단계 S1102는 구체적으로 다음과 같이 구현된다. 상기 시작 인덱스 값과 N의 합을 상기 제1 메시지에 포함된 N 번째 앤드포인트 행위에 대응되는 인덱스 값으로 하고, 여기서, N의 값 범위는 0 내지 상기 앤드포인트 행위의 수량과 1의 차이값이다.
예를 들면, 제1 메시지에 포함된 앤드포인트 행위의 수량이 4이면, 제1 메시지에 포함된 0 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값이고, 첫 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값과 1의 합이며, 두 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값과 2의 합이고, 세 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값과 3의 합이며, 네 번째 앤드포인트 행위에 대응되는 인덱스 값은 시작 인덱스 값과 4의 합이다.
단계 S1103: 제1 주소 공간의 경계 주소 및 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산한다.
본 출원의 실시예를 사용하면, 관련 기술의 SID 발표 과정에서 완전한 SID를 캐리해야 하는 것에 비해, 본 출원의 실시예에서는, 제1 메시지 및 제2 메시지에는 완전한 SID가 캐리되지 않는다. 그리고, 복수 개의 링크 SID를 발표해야 할 경우, 제2 메시지에는 각 링크 SID에 대응되는 인덱스 값이 캐리될 필요가 없이, 시작 인덱스 값을 캐리함으로써, 제1 기기는 제2 메시지를 이용하여 포함된 시작 인덱스 값 및 제1 메시지에 포함된 앤드포인트 행위의 수량을 통해 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하여, 각 앤드포인트 행위에 대응되는 SID를 계산할 수 있다. 이로써, 제2 기기에 포함된 이웃 기기가 매우 많거나 사용한 Flex-Algorithms의 수량이 매우 클 경우, 본 출원의 실시예에서 제공한 방법을 사용하여 제2 메시지에 캐리되어야 할 데이터 양을 감소시키고, 링크 SID의 발표 과정에서의 메시지의 오버헤드를 감소시킴으로써, 기기 성능 및 메시지 전송 프로토콜의 안정성을 보장할 수 있다.
일종 가능한 구현 방식에서, 제1 메시지 및 제2 메시지에 모두 제1 오프셋이 포함되지 않을 경우, 상기 S1103은 구체적으로 다음과 같이 구현된다. 각 앤드포인트 행위에 대응되는 인덱스 값을 제1 오프셋 주소로 하고, 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산한다.
다른 가능한 구현 방식에서, 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 제2 메시지는 제1 오프셋을 더 포함한다. 제1 메시지 또는 제2 메시지가 제1 오프셋을 포함할 경우, 상기 단계S1103은 구체적으로 하기의 단계들을 포함할 수 있다.
단계 A: SID의 주소 규칙에 따라, 각 앤드포인트 행위에 대응되는 인덱스 값을 각각 제1 오프셋만큼 이동하여, 각 앤드포인트 행위에 대응되는 제1 오프셋 주소를 얻는다.
단계 B: 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산한다.
여기서, 제1 주소 공간의 경계 주소가 제1 주소 공간의 시작 주소일 경우, 단계 B는 구체적으로, 시작 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 합을 각각 계산하는 단계; 및 계산하여 얻은 각 합이 모두 해당 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 합을 각각 각 앤드포인트 행위의 SID로 하는 단계를 포함한다.
또는, 제1 주소 공간의 경계 주소가 제1 주소 공간의 말단 주소일 경우, 단계 B는 구체적으로, 말단 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 차이값을 각각 계산하는 단계; 및 계산하여 얻은 각 차이값이 모두 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 차이값을 각각 각 앤드포인트 행위의 SID로 결정하는 단계를 포함한다.
단계 B에서, 제1 주소 공간의 경계 주소 및 각 제1 오프셋 주소에 기반하여 각 앤드포인트 행위에 대응되는 SID를 계산하는 방법은, 상기 실시예에서 제1 주소 공간의 경계 주소 및 제1 오프셋 주소에 기반하여 제1 SID를 계산하는 방법과 동일하므로, 상기 실시예에서의 관련 설명을 참조할 수 있고, 여기에서는 자세한 설명을 생략하기로 한다.
도 11에 대응되는 실시예에서, 제1 메시지는 제5 서브 TLV를 포함할 수 있고, 제5 서브 TLV는 블록 식별자 필드, 시작 SID 필드, 말단 SID 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 행위 수량 필드 및 앤드포인트 행위 필드를 포함한다.
여기서, 블록 식별자 필드는 제1 Block 식별자를 캐리하는 것에 사용되고; 시작 SID 필드는 제1 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 말단 SID 필드는 제1 주소 공간의 말단 주소를 캐리하는 것에 사용된다.
플래그 비트 필드는 공유 플래그 비트를 캐리하는 것에 사용되고, 공유 플래그 비트는 제1 Block 식별자가 나타내는 Block에 포함된 복수 개의 SID에 의해 공유되며; 알고리즘 필드는 공유 알고리즘을 캐리하는 것에 사용되고, 공유 알고리즘은 제1 Block 식별자가 나타내는 Block에 포함된 복수 개의 SID에 의해 공유되며; 가중치 필드는 공유 가중치를 캐리하는 것에 사용되고, 공유 가중치는 제1 Block 식별자가 나타내는 Block에 포함된 복수 개의 SID에 의해 공유된다.
행위 수량 필드는 앤드포인트 행위의 수량을 캐리하는 것에 사용되고; 각 앤드포인트 행위는 하나의 앤드포인트 행위를 캐리하는 것에 사용된다.
선택적으로, 상기 제1 메시지는 링크 상태 메시지일 수 있고, 제5 서브는 링크 상태 메시지에 포함된 Rule-based End.X SID Block sub-TLV일 수 있으며, 현재의 프로토콜 규정에 따르면, 링크 상태 메시지에는 SRv6 Locator TLV가 포함되고, 본 출원의 실시예에서의 제5 서브 TLV는 SRv6 Locator TLV의 서브 TLV이지만 본 출원의 실시예는 이에 대해 한정하지 않고, 제5 서브 TLV는 제1 메시지에 포함된 기타 TLV의 서브 TLV일 수도 있다.
도 12a에 도시된 바와 같이, 도 12a는 본 출원의 실시예에서 제공한 Rule-based End.X SID Block sub-TLV의 개략도이고, 현재의 프로토콜 규정에 따르면, Rule-based End.X SID Block sub-TLV는 유형 필드, 길이 필드, 하급 서브 TLV 길이 필드(Sub-sub-tlv- len) 및 하급 서브 TLV 필드(Sub-sub-TLVs)를 포함한다. 본 출원의 실시예에서, 상기 필드들을 제외하고, Rule-based End.X SID Block sub-TLV는 블록 식별자 필드, 시작 SID 필드, 말단 SID 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 행위 수량 필드 및 앤드포인트 행위 필드를 더 포함한다.
선택적으로, 해당 Rule-based End.X SID Block sub-TLV는 오프셋 필드를 더 포함할 수 있고, 오프셋 필드는 제1 오프셋을 캐리할 수 있으며, 해당 제1 오프셋은 Rule-based End.X SID Block sub-TLV에 포함된 블록 식별자에 대응되는 주소 공간의 경계 주소의 오프셋을 나타내는 것에 사용된다. 도 12a에서 하나의 블록 식별자를 예로 하고, 이해할 수 있는 것은, Rule-based End.X SID Block sub-TLV가 복수 개의 블록 식별자를 포함할 경우, 해당 제1 오프셋은 각 블록 식별자에 대응되는 주소 공간의 경계 주소의 오프셋을 나타내는 것에 사용될 수 있다.
해당 Rule-based End.X SID Block sub-TLV에 원래 포함되는 필드가 차지하는 비트 수는 IS-IS 프로토콜에 규정된 비트 수이고, 새로 추가된 필드가 차지하는 비트 수는 실제 수요에 기반하여 설치될 수 있으며, 본 출원의 실시예는 이에 대해 한정하지 않는다. 도 12a는 단지 예시로서, 각각의 필드의 길이 및 각각 필드의 배열 순서는 이에 한정되지 않는다.
도 11에 대응되는 실시예에서, 제2 메시지는 제6 서브 TLV 또는 제7 서브 TLV를 포함할 수 있다.
제6 서브 TLV는 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제6 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함한다.
제7 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제7 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함한다.
여기서, 블록 식별자 필드는 제2 Block 식별자를 캐리하는 것에 사용되고; 인덱스 길이 필드는 시작 인덱스 필드의 길이를 캐리하는 것에 사용되며; 시작 인덱스 필드는 해당 시작 인덱스 값을 캐리하는 것에 사용된다.
선택적으로, 상기 제2 메시지는 링크 상태 메시지일 수 있고, 제6 서브 TLV는 링크 상태 메시지에 포함된 Rule-based End.X SID Index sub-TLV일 수 있으며, 제7 서브 TLV는 링크 상태 메시지에 포함된 Rule-based LAN End.X SID Index sub-TLV일 수 있다. 현재의 프로토콜 규정에 따르면, 본 출원의 실시예에서의 제6 서브 TLV 및 제7 서브 TLV는 상기 TLV-22, TLV-23, TLV-25, TLV-141, TLV-222 또는 TLV-223의 서브 TLV로 할 수 있다. 하지만 본 출원의 실시예는 이에 제한되지 않고, 제6 서브 TLV 및 제7 서브 TLV는 제2 메시지에 포함된 기타 TLV의 서브 TLV로 할 수도 있다.
도 12b는 본 출원의 실시예에서 제공한 Rule-based End.X SID Index sub-TLV의 개략도이고; 도 12c는 본 출원의 실시예에서 제공한 Rule-based LAN End.X SID Index sub-TLV의 개략도이다.
현재의 프로토콜 규정에 따라, Rule-based End.X SID Index sub-TLV 및 Rule-based LAN End.X SID Index sub-TLV는 모두 유형 필드 및 길이 필드를 포함한다. 본 출원의 실시예에서, Rule-based End.X SID Index sub-TLV 및 Rule-based LAN End.X SID Index sub-TLV에 원래 포함된 플래그 비트 필드, 알고리즘 필드 및 가중치 필드는 상기 제5 서브 TLV에 캐리되고, 제5 서브 TLV와 동일한 Block 식별자를 캐리하는 제6 서브 TLV 및 제7 서브 TLV는 제5 서브 TLV에 캐리된 플래그 비트 필드, 알고리즘 필드 및 가중치 필드를 공유할 수 있음으로써, 링크 SID의 발표 과정에서의 메시지의 오버헤드를 한층 더 감소시킬 수 있다.
본 출원의 실시예에서, Rule-based End.X SID Index sub-TLV 및 Rule-based LAN End.X SID Index sub-TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 더 포함할 수 있다. 즉 Rule-based End.X SID Index sub-TLV 및 Rule-based LAN End.X SID Index sub-TLV는 모든 통지되어야 할 링크 SID의 인덱스를 캐리할 필요 없이, 인덱스가 연속되는 복수 개의 링크 SID중의 첫 번째 링크 SID의 인덱스만 캐리하면 됨으로써, 링크 SID의 발표 과정에서의 메시지의 오버헤드를 한층 더 감소시킬 수 있다.
선택적으로, 제6 서브 TLV(Rule-based End.X SID Index sub-TLV)는 오프셋 필드를 더 포함할 수 있고, 제7 서브 TLV(Rule-based LAN End.X SID Index sub-TLV)는 오프셋 필드를 더 포함하며, 해당 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
Rule-based End.X SID Index sub-TLV에 포함된 제1 오프셋은 Rule-based End.X SID Index sub-TLV에 포함된 블록 식별자에 대응되는 주소 공간의 경계 주소의 오프셋을 나타내는 것에 사용된다. Rule-based LAN End.X SID Index sub-TLV에 포함된 제1 오프셋은 Rule-based LAN End.X SID Index sub-TLV에 포함된 블록 식별자에 대응되는 주소 공간의 경계 주소의 오프셋을 나타내는 것에 사용된다.
해당 Rule-based End.X SID Index sub-TLV 및 Rule-based LAN End.X SID Index sub-TLV에 원래 포함된 필드가 차지하는 비트 수는 IS-IS 프로토콜에 규정된 비트 수이고, 새로 추가된 필드가 차지하는 비트 수는 실제 수요에 기반하여 설치될 수 있으며, 본 출원의 실시예는 이에 대해 한정하지 않는다. 도 12b 및 도 12c는 단지 예시로서, 각 필드의 길이 및 각 필드의 배열 순서는 이에 한정되지 않는다.
일 선택 가능한 실시예에서, 해당 실시예에 기초하여, 도 9에 도시된 실시예에서, 제1 기기는 복수 개의 인덱스가 연속되는 SID를 저장할 수 있고, 복수 개의 인덱스가 연속되는 SID 중의 첫 번째 SID는 제2 SID이다. 즉, 제4 메시지에 포함된 제2 인덱스 값은 복수 개의 인덱스가 연속되는 SID 중의 첫 번째 SID의 인덱스 값이다. 상기 제3 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고, 앤드포인트 행위의 수량은 인덱스가 연속되는 SID의 수량이며, 상기 복수 개의 인덱스가 연속되는 SID와 제3 메시지에 포함된 앤드포인트 행위는 일대일로 대응된다.
여기서, 제3 메시지에 포함된 서브 TLV는 도 12a에 도시된 TLV와 구조가 동일할 수 있고, 제3 메시지에 포함된 서브 TLV는 도 12b 또는 도 12c에 도시된 TLV와 구조가 동일할 수 있다.
동일한 발명 개념에 기반하여, 상기 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법에 따라, 본 출원의 실시예는 세그먼트 식별자 결정 디바이스를 더 제공한다. 도 13-a에 도시된 바와 같이, 도 13-a는 본 출원의 실시예에서 제공한 세그먼트 식별자 디바이스의 제1 구조 개략도이다. 해당 디바이스는 상기 제1 기기에 적용되고, 구체적으로 수신 모듈(1301) 및 계산 모듈(1302)을 포함한다.
수신 모듈(1301)은, 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 것에 사용되고; 여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값을 포함하며;
계산 모듈(1302)은, 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제1 SID를 계산하는 것에 사용되고, 동일한 Block은 적어도 하나의 제1 Block 식별자와 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block이다.
선택적으로, 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 제2 메시지는 제1 오프셋을 더 포함하며; 계산 모듈(1302)은 구체적으로, 제1 주소 공간의 경계 주소, 제1 오프셋 및 제1 인덱스 값에 따라, 제1 SID를 계산하는 것에 사용된다.
선택적으로, 상기 제1 주소 공간의 경계 주소는 제1 주소 공간의 시작 주소이고;
상기 계산 모듈(1302)은 구체적으로, SID의 주소 규칙에 따라, 제1 인덱스 값을 제1 오프셋만큼 이동하여, 제1 오프셋 주소를 얻고; 시작 주소와 제1 오프셋 주소에 따라, 제1 SID를 결정하는 것에 사용될 수 있다.
선택적으로, 상기 계산 모듈(1302)은 구체적으로, 시작 주소와 제1 오프셋 주소의 합을 계산하고; 합에 대응되는 SID가 제1 주소 공간 내에 존재하면, 합에 대응되는 SID를 제1 SID로 하는 것에 사용될 수 있다.
선택적으로, 상기 제1 주소 공간의 경계 주소는 제1 주소 공간의 말단 주소이다.
상기 계산 모듈(1302)은 구체적으로, SID의 주소 규칙에 따라, 제1 인덱스 값을 제1 오프셋만큼 이동하여, 제2 오프셋 주소를 얻고; 말단 주소와 제2 오프셋 주소에 따라, 제1 SID를 결정하는 것에 사용될 수 있다.
선택적으로, 상기 계산 모듈(1302)은 구체적으로, 말단 주소와 제2 오프셋 주소의 차이값을 계산하고; 차이값에 대응되는 SID가 제1 주소 공간 내에 존재하면, 차이값에 대응되는 SID를 제1 SID로 결정하는 것에 사용될 수 있다.
선택적으로, 상기 제1 메시지는 제1 서브 TLV를 포함하고, 제1 서브 TLV는 블록 식별자 필드, 시작 SID 필드 및 말단 SID 필드를 포함하며;
여기서, 블록 식별자 필드는 적어도 하나의 제1 Block 식별자를 캐리하는 것에 사용되고; 시작 SID 필드는 각 제1 Block에 대응되는 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 말단 SID 필드는 각 제1 Block에 대응되는 주소 공간의 말단 주소를 캐리하는 것에 사용된다.
선택적으로, 제1 서브 TLV는 오프셋 필드를 더 포함하고, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제2 메시지는 제2 서브 TLV, 제3 서브 TLV 또는 제4 서브 TLV를 포함하고;
제2 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제2 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
제3 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제3 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
제4 서브 TLV는 기기 SID의 인덱스를 캐리하는 것에 사용되고; 제4 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
여기서, 블록 식별자 필드는 제2 Block 식별자를 캐리하는 것에 사용되고; 인덱스 수량 필드는 인덱스 수량을 캐리하는 것에 사용되며; 인덱스 길이 필드는 인덱스 길이를 캐리하는 것에 사용되고; 각 인덱스 필드는 하나의 인덱스 값을 캐리하는 것에 사용되며; 각 앤드포인트 행위 필드는 하나의 인덱스 값에 대응되는 앤드포인트 행위을 캐리하는 것에 사용된다.
선택적으로, 제2 서브 TLV는 오프셋 필드를 더 포함하고, 제3 서브 TLV는 오프셋 필드를 더 포함하며, 제4 서브 TLV는 오프셋 필드를 더 포함하고, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제1 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위을 더 포함하고; 제1 인덱스 값은 시작 인덱스 값이고, 시작 인덱스 값은 1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이며;
계산 모듈(1302)은 구체적으로, 앤드포인트 행위의 수량 및 시작 인덱스 값에 따라, 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하고; 제1 주소 공간의 경계 주소 및 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 것에 사용될 수 있다.
선택적으로, 계산 모듈(1302)은 구체적으로, 시작 인덱스 값과 N의 합을 제1 메시지에 포함된 N 번째 앤드포인트 행위에 대응되는 인덱스 값으로 하는 것에 사용될 수 있고, 여기서, N의 값 범위는 0 내지 앤드포인트 행위의 수량과 1의 차이값이다.
선택적으로, 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 제2 메시지는 제1 오프셋을 더 포함하며;
계산 모듈(1302)은 구체적으로, SID의 주소 규칙에 따라, 각 앤드포인트 행위에 대응되는 인덱스 값을 각각 제1 오프셋만큼 이동하여, 각 앤드포인트 행위에 대응되는 제1 오프셋 주소를 얻고; 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 것에 사용될 수 있다.
선택적으로, 제1 주소 공간의 경계 주소는 제1 주소 공간의 시작 주소이고;
계산 모듈(1302)은 구체적으로, 시작 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 합을 각각 계산하고; 계산하여 얻은 각 합이 모두 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 합을 각각 각 앤드포인트 행위의 SID로 하는 것에 사용될 수 있다.
선택적으로, 제1 주소 공간의 경계 주소는 제1 주소 공간의 말단 주소이고;
계산 모듈(1302)은 구체적으로, 시작 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 차이값을 각각 계산하고; 계산하여 얻은 각 차이값이 모두 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 차이값을 각각 각 앤드포인트 행위의 SID로 하는 것에 사용된다.
선택적으로, 제1 메시지는 제5 서브 TLV를 포함하고, 제5 서브 TLV는 블록 식별자 필드, 시작 SID 필드, 말단 SID 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 행위 수량 필드 및 앤드포인트 행위 필드를 포함하며;
여기서, 블록 식별자 필드는 제1 Block 식별자를 캐리하는 것에 사용되고; 시작 SID 필드는 제1 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 말단 SID 필드는 제1 주소 공간의 말단 주소를 캐리하는 것에 사용되고; 플래그 비트 필드는 공유 플래그 비트를 캐리하는 것에 사용되며, 공유 플래그 비트는 제1 Block 식별자로 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되며;
알고리즘 필드는 공유 알고리즘을 캐리하는 것에 사용되고, 공유 알고리즘은 제1 Block 식별자로 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되며; 가중치 필드는 공유 가중치를 캐리하는 것에 사용되고, 공유 가중치는 제1 Block 식별자로 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되며; 행위 수량 필드는 앤드포인트 행위의 수량을 캐리하는 것에 사용되고; 각 앤드포인트 행위은 하나의 앤드포인트 행위을 캐리하는 것에 사용된다.
선택적으로, 제5 서브 TLV는 오프셋 필드를 더 포함하고, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제2 메시지는 제6 서브 TLV 또는 제7 서브 TLV를 포함하고;
제6 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제6 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며;
제7 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제7 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며;
여기서, 블록 식별자 필드는 제2 Block 식별자를 캐리하는 것에 사용되고; 인덱스 길이 필드는 시작 인덱스 필드의 길이를 캐리하는 것에 사용되며; 시작 인덱스 필드는 시작 인덱스 값을 캐리하는 것에 사용된다.
선택적으로, 제6 서브 TLV는 오프셋 필드를 더 포함하고, 제7 서브 TLV는 오프셋 필드를 더 포함하며, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 상기 제1 기기에는 제2 SID가 저장되고; 도 13-b에 도시된 바와 같이, 상기 세그먼트 식별자 결정 디바이스는,
저장된 제2 SID를 획득하기 위한 획득 모듈(1303);
미리 분할된 각 Block과 주소 공간 사이의 대응 관계에 따라, 제2 SID가 속하는 타겟 Block을 결정하기 위한 제1 결정 모듈(1304);
타겟 Block에 대응되는 제2 주소 공간 중의 각 SID과 인덱스 값의 대응 관계에 따라, 제2 SID에 대응되는 제2 인덱스 값을 결정하기 위한 제2 결정 모듈(1305); 및
각 이웃 기기에 제3 메시지 및 제4 메시지를 송신하기 위한 송신 모듈(1306) - 제3 메시지는 타겟 Block의 제3 Block 식별자, 제2 오프셋 및 제2 주소 공간의 경계 주소를 포함하며, 제4 메시지는 제3 Block 식별자 및 제2 인덱스 값을 포함함 - 을 더 포함할 수 있다.
선택적으로, 제1 기기는 복수 개의 인덱스가 연속되는 SID를 저장하고, 복수 개의 인덱스가 연속되는 SID 중의 첫 번째 SID는 제2 SID이며;
제3 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위을 더 포함하고, 앤드포인트 행위의 수량은 인덱스가 연속되는 SID의 수량이며; 복수 개의 인덱스가 연속되는 SID와 제3 메시지에 포함된 앤드포인트 행위는 일대일로 대응된다.
선택적으로, 계산 모듈(1302)은, 제2 주소 공간 중의 각 주소의 속성 특징에 따라, 제2 주소 공간의 경계 주소의 제2 오프셋을 계산하는 것에 사용된다.
동일한 발명 개념에 기반하여, 상기 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법에 따라, 본 출원의 실시예는 전자 기기를 더 제공하는바, 도 14에 도시된 바와 같이, 해당 전자 기기는 프로세서(1401), 기계 판독 가능한 저장 매체(1402) 및 트랜시버(1404)를 포함한다. 기계 판독 가능한 저장 매체(1402)에는 프로세서(1401)에 의해 실행 가능한 기계가 실행 가능한 명령이 저장되어 있고; 기계가 실행 가능한 명령은 프로세서(1401)가 아래의 단계들을 실행하도록 한다.
트랜시버(1404)를 통해 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하고, 여기서, 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값를 포함하며;
동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 제1 인덱스 값을 이용하여, 제1 SID를 계산하고, 동일한 Block은 적어도 하나의 제1 Block 식별자와 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block이다.
선택적으로, 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 제2 메시지는 제1 오프셋을 더 포함하며; 기계가 실행 가능한 명령은 프로세서(1401)가 제1 주소 공간의 경계 주소, 제1 오프셋 및 제1 인덱스 값에 따라, 제1 SID를 계산하는 단계를 실행하도록 한다.
선택적으로, 제1 주소 공간의 경계 주소는 제1 주소 공간의 시작 주소이고;
기계가 실행 가능한 명령은 프로세서(1401)가 SID의 주소 규칙에 따라, 제1 인덱스 값을 제1 오프셋만큼 이동하여, 제1 오프셋 주소를 얻는 단계; 및 시작 주소와 제1 오프셋 주소에 따라, 제1 SID를 계산하는 단계를 더 실행하도록 한다.
선택적으로, 기계가 실행 가능한 명령은 프로세서(1401)가, 시작 주소와 제1 오프셋 주소의 합을 계산하는 단계; 및 합에 대응되는 SID가 제1 주소 공간 내에 존재하면, 합에 대응되는 SID를 제1 SID로 하는 단계를 더 실행하도록 한다.
선택적으로, 제1 주소 공간의 경계 주소는 제1 주소 공간의 말단 주소이고;
기계가 실행 가능한 명령은 프로세서(1401)가, SID의 주소 규칙에 따라, 제1 인덱스 값을 제1 오프셋만큼 이동하여, 제2 오프셋 주소를 얻고; 말단 주소와 제2 오프셋 주소에 따라, 제1 SID를 계산하는 단계를 더 실행하도록 한다.
선택적으로, 기계가 실행 가능한 명령은 또한 프로세서(1401)가 하기의 단계를 실행하도록 한다.
말단 주소와 제2 오프셋 주소의 차이값을 계산하고; 차이값에 대응되는 SID가 제1 주소 공간 내에 존재하면, 차이값에 대응되는 SID를 제1 SID로 한다.
선택적으로, 제1 메시지는 제1 서브 TLV를 포함하고, 제1 서브 TLV는 블록 식별자 필드, 시작 SID 필드 및 말단 SID 필드를 포함하며; 여기서, 블록 식별자 필드는 적어도 하나의 제1 Block 식별자를 캐리하는 것에 사용되고; 시작 SID 필드는 각 제1 Block에 대응되는 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 말단 SID 필드는 각 제1 Block에 대응되는 주소 공간의 말단 주소를 캐리하는 것에 사용된다.
선택적으로, 제1 서브 TLV는 오프셋 필드를 더 포함하고, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제2 메시지는 제2 서브 TLV, 제3 서브 TLV 또는 제4 서브 TLV를 포함하고;
제2 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제2 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
제3 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제3 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
제4 서브 TLV는 기기 SID의 인덱스를 캐리하는 것에 사용되고; 제4 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
여기서, 블록 식별자 필드는 제2 Block 식별자를 캐리하는 것에 사용되고; 인덱스 수량 필드는 인덱스 수량을 캐리하는 것에 사용되며; 인덱스 길이 필드는 인덱스 길이를 캐리하는 것에 사용되고; 각 인덱스 필드는 하나의 인덱스 값을 캐리하는 것에 사용되며; 각 앤드포인트 행위 필드는 하나의 인덱스 값에 대응되는 앤드포인트 행위을 캐리하는 것에 사용된다.
선택적으로, 제2 서브 TLV는 오프셋 필드를 더 포함하고, 제3 서브 TLV는 오프셋 필드를 더 포함하며, 제4 서브 TLV는 오프셋 필드를 더 포함하고, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제1 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고; 제1 인덱스 값은 시작 인덱스 값이고, 시작 인덱스 값은 제1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이며;
기계가 실행 가능한 명령은 프로세서(1401)가, 앤드포인트 행위의 수량 및 시작 인덱스 값에 따라, 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하는 단계; 및 제1 주소 공간의 경계 주소 및 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계를 실행하도록 한다.
선택적으로, 기계가 실행 가능한 명령은 프로세서(1401)가 하기의 단계를 실행하도록 한다.
시작 인덱스 값과 N의 합을 제1 메시지에 포함된 N 번째 앤드포인트 행위에 대응되는 인덱스 값으로 하고, 여기서, N의 값 범위는 0 내지 앤드포인트 행위의 수량과 1의 차이값이다.
선택적으로, 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 제2 메시지는 제1 오프셋을 더 포함하며; 기계가 실행 가능한 명령은 프로세서(1401)가, SID의 주소 규칙에 따라, 각 앤드포인트 행위에 대응되는 인덱스 값을 각각 제1 오프셋만큼 이동하여, 각 앤드포인트 행위에 대응되는 제1 오프셋 주소를 얻는 단계; 및 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계를 실행하도록 한다.
선택적으로, 제1 주소 공간의 경계 주소는 제1 주소 공간의 시작 주소이고; 기계가 실행 가능한 명령은 프로세서(1401)가, 시작 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 합을 각각 계산하는 단계; 및 계산하여 얻은 각 합이 모두 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 합을 각각 각 앤드포인트 행위의 SID로 하는 단계를 실행하도록 한다.
선택적으로, 제1 주소 공간의 경계 주소는 제1 주소 공간의 말단 주소이고; 기계가 실행 가능한 명령은 프로세서(1401)가, 시작 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 차이값을 각각 계산하는 단계; 및 계산하여 얻은 각 차이값이 모두 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 차이값을 각각 각 앤드포인트 행위의 SID로 하는 단계를 실행하도록 한다.
선택적으로, 제1 메시지는 제5 서브 TLV를 포함하고, 제5 서브 TLV는 블록 식별자 필드, 시작 SID 필드, 말단 SID 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 행위 수량 필드 및 앤드포인트 행위 필드를 포함하며;
여기서, 블록 식별자 필드는 제1 Block 식별자를 캐리하는 것에 사용되고; 시작 SID 필드는 제1 주소 공간의 시작 주소를 캐리하는 것에 사용되며; 말단 SID 필드는 제1 주소 공간의 말단 주소를 캐리하는 것에 사용되고; 플래그 비트 필드는 공유 플래그 비트를 캐리하는 것에 사용되며, 공유 플래그 비트는 제1 Block 식별자로 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고; 알고리즘 필드는 공유 알고리즘을 캐리하는 것에 사용되며, 공유 알고리즘은 제1 Block 식별자로 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고; 가중치 필드는 공유 가중치를 캐리하는 것에 사용되며, 공유 가중치는 제1 Block 식별자로 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고; 행위 수량 필드는 앤드포인트 행위의 수량을 캐리하는 것에 사용되며; 각 앤드포인트 행위은 하나의 앤드포인트 행위을 캐리하는 것에 사용된다.
선택적으로, 제5 서브 TLV는 오프셋 필드를 더 포함하고, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제2 메시지는 제6 서브 TLV 또는 제7 서브 TLV를 포함하고; 제6 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제6 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며; 제7 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 제7 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며; 여기서, 블록 식별자 필드는 제2 Block 식별자를 캐리하는 것에 사용되고; 인덱스 길이 필드는 시작 인덱스 필드의 길이를 캐리하는 것에 사용되며; 시작 인덱스 필드는 시작 인덱스 값을 캐리하는 것에 사용된다.
선택적으로, 제6 서브 TLV는 오프셋 필드를 더 포함하고, 제7 서브 TLV는 오프셋 필드를 더 포함하며, 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용된다.
선택적으로, 제1 기기는 제2 SID를 저장하고; 기계가 실행 가능한 명령은 프로세서(1401)가, 저장된 제2 SID를 획득하는 단계; 미리 분할된 각 Block과 주소 공간 사이의 대응 관계에 따라, 제2 SID가 속하는 타겟 Block을 결정하는 단계; 타겟 Block에 대응되는 제2 주소 공간 중의 각 SID와 인덱스 값의 대응 관계에 따라, 제2 SID에 대응되는 제2 인덱스 값을 결정하는 단계; 트랜시버(1404)를 통해 각 이웃 기기에 제3 메시지 및 제4 메시지를 송신하는 단계를 실행하도록 하되, 제3 메시지는 타겟 Block의 제3 Block 식별자 및 제2 주소 공간의 경계 주소를 포함하며, 제4 메시지는 제3 Block 식별자 및 제2 인덱스 값을 포함한다.
선택적으로, 제1 기기는 복수 개의 인덱스가 연속되는 SID를 저장하고, 복수 개의 인덱스가 연속되는 SID 중의 첫 번째 SID는 제2 SID이며;
제3 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고, 앤드포인트 행위의 수량은 인덱스가 연속되는 SID의 수량이며; 복수 개의 인덱스가 연속되는 SID와 제3 메시지에 포함된 앤드포인트 행위는 일대일로 대응된다.
선택적으로, 제3 메시지는 제2 오프셋을 더 포함하고, 또는, 제4 메시지는 제2 오프셋을 더 포함하며; 기계가 실행 가능한 명령은 프로세서(1401)가, 제2 주소 공간 중의 각 주소의 속성 특징에 따라, 제2 주소 공간의 경계 주소의 제2 오프셋을 계산하는 단계를 실행하도록 한다.
도 14에 도시된 바와 같이, 전자 기기는 통신 버스(1403)를 더 포함할 수 있다. 프로세서(1401), 기계 판독 가능한 저장 매체(1402) 및 트랜시버(1404) 사이는 통신 버스(1403)를 통해 서로 간의 통신을 완료하고, 통신 버스(1403)는 주변장치 컴포넌트 상호접속(Peripheral Component Interconnect, PCI) 버스 또는 확장 업계 표준 구조(Extended Industry Standard Architecture, EISA) 버스 등일 수 있다. 해당 통신 버스(1403)는 주소 버스, 데이터 버스, 제어 버스 등으로 나뉠 수 있다.
트랜시버(1404)는 무선 통신 모듈일 수 있고, 트랜시버(1404)는 프로세서(1401)의 제어 하에서, 기타 기기(AC 및 단말기)와 데이터 인터랙션을 수행한다.
기계 판독 가능한 저장 매체(1402)는 랜덤 액세스 메모리(Random Access Memory, RAM)를 포함할 수 있고, 적어도 하나의 자기 디스크 메모리와 같은 비휘발성 메모리(Non-Volatile Memory, NVM)를 포함할 수도 있다. 또한, 기계 판독 가능한 저장 매체(1402)는 상기의 프로세서로부터 떨어진 적어도 하나의 저장 디바이스일 수 있다.
프로세서(1401)는 중앙처리장치(Central Processing Unit, CPU), 네트워크 프로세서(Network Processor, NP) 등을 포함하는 범용 프로세서일 수 있고; 디지털 신호 프로세서(Digital Signal Processing, DSP), 주문형 직접회로(Application Specific Integrated Circuit, ASIC), 필드 프로그래밍 가능 게이트 어레이(Field-Programmable Gate Array, FPGA) 또는 기타 프로그래밍 가능 논리 장치, 이산 게이트 또는 트랜지스터 논리 장치 및 이산 하드웨어 구성 요소일 수도 있다.
동일한 발명 개념에 기반하여, 상기 본 출원의 실시예에서 제공한 세그먼트 식별자 결정 방법에 따라, 본 출원의 실시예는 기계 판독 가능한 저장 매체를 더 제공하고, 기계 판독 가능한 저장 매체에는 프로세서에 의해 실행 가능한 기계가 실행 가능한 명령이 저장되어 있다. 프로세서는 기계가 실행 가능한 명령에 의해 상기 어느 하나의 세그먼트 식별자 결정 방법의 단계를 구현하도록 된다.
본 출원에서 제공한 또 다른 실시예에서, 명령이 포함된 컴퓨터 프로그램 제품을 더 제공하는 바, 해당 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 때, 컴퓨터가 상기 실시예 중 어느 하나의 세그먼트 식별자 결정 방법의 단계을 실행하도록 한다.
설명이 필요한 것은, 본 명세서에서, 제1 및 제2 등과 같은 용어는 단지 하나의 실체 또는 작업을 다른 실체 또는 작업과 구분하는 것에 사용될 뿐, 이러한 실체 또는 작업 사이에 임의의 이러한 실제 관계 또는 순서가 존재하는 것을 요구하거나 시사하지 않는다. 또한, 용어 "포함", "함유" 또는 임의의 기타 변형은 비배타적인 함유를 커버하여, 일련의 요소를 포함하는 과정, 방법, 물품 또는 디바이스가 단지 그러한 요소만 포함할 뿐만 아니라, 명확히 나열되지 않은 기타 요소를 더 포함하거나, 이러한 과정, 방법, 물품 또는 디바이스의 고유한 요소를 더 포함하도록 한다. 더 많은 제한이 없는 경우, 어구 "하나의 ??를 포함"으로 한정된 요소는, 상기 요소를 포함하는 과정, 방법, 물품 또는 디바이스에 다른 동일한 요소가 존재하는 것을 배제하지 않는다.
본 명세서 중의 각 실시예는 모두 관련되는 방식으로 설명되고, 각 실시예 사이의 동일하거나 유사한 부분은 서로 참조될 수 있으며, 각 실시예에서 중점적으로 설명한 것은 기타 실시예와의 차이점이다. 특히, 세그먼트 식별자 결정 디바이스, 기기 및 기계 판독 가능한 저장 매체에 대해. 기계 판독 가능한 저장 매체 실시예에 있어서, 세그먼트 식별자 결정 방법의 실시예와 기본적으로 유사하므로, 설명이 비교적 간단하고, 관련된 부분은 세그먼트 식별자 결정 방법 실시예의 일부 설명을 참조하면 된다.
상술한 설명은 본 발명의 바람직한 실시예일 뿐, 본 발명을 한정하기 위한 것은 아니다. 본 발명의 사상과 원칙 내에서 수행되는 모든 수정, 동등한 대체, 개선 등은 모두 본 발명의 청구범위 내에 포함되어야 한다.

Claims (25)

  1. 세그먼트 식별자 결정 방법으로서,
    SRv6 네트워크 중의 제1 기기에 적용되고, 상기 SRv6 네트워크는 제2 기기를 더 포함하며, 상기 제1 기기와 상기 제2 기기는 서로 이웃 기기이고, 상기 제2 기기는 제1 세그먼트 식별자 SID를 저장하며, 상기 방법은,
    상기 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 단계 - 여기서, 상기 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 상기 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값를 포함함 - ; 및
    동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계 - 상기 동일한 Block은 상기 적어도 하나의 제1 Block 식별자와 상기 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block임 - 를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  2. 제1항에 있어서,
    상기 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 상기 제2 메시지는 제1 오프셋을 더 포함하며;
    상기 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계는, 구체적으로,
    상기 제1 주소 공간의 경계 주소, 상기 제1 오프셋 및 상기 제1 인덱스 값에 따라, 상기 제1 SID를 계산하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  3. 제2항에 있어서,
    상기 제1 주소 공간의 경계 주소는 상기 제1 주소 공간의 시작 주소이고;
    상기 제1 주소 공간의 경계 주소, 상기 제1 오프셋 및 상기 제1 인덱스 값에 따라, 상기 제1 SID를 계산하는 단계는,
    SID의 주소 규칙에 따라, 상기 제1 인덱스 값을 상기 제1 오프셋만큼 이동하여, 제1 오프셋 주소를 얻는 단계; 및
    상기 시작 주소와 상기 제1 오프셋 주소에 따라, 상기 제1 SID를 계산하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  4. 제3항에 있어서,
    상기 시작 주소와 상기 제1 오프셋 주소에 따라, 상기 제1 SID를 계산하는 단계는, 구체적으로,
    상기 시작 주소와 상기 제1 오프셋 주소의 합을 계산하는 단계; 및
    상기 합에 대응되는 SID가 상기 제1 주소 공간 내에 존재하면, 상기 합에 대응되는 SID를 상기 제1 SID로 하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  5. 제2항에 있어서,
    상기 제1 주소 공간의 경계 주소는 상기 제1 주소 공간의 말단 주소이고;
    상기 제1 주소 공간의 경계 주소, 상기 제1 오프셋 및 상기 제1 인덱스 값에 따라, 상기 제1 SID를 계산하는 단계는, 구체적으로,
    SID의 주소 규칙에 따라, 상기 제1 인덱스 값을 상기 제1 오프셋만큼 이동하여, 제2 오프셋 주소를 얻는 단계; 및
    상기 말단 주소와 상기 제2 오프셋 주소에 따라, 상기 제1 SID를 계산하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  6. 제5항에 있어서,
    상기 말단 주소와 상기 제2 오프셋 주소에 따라, 상기 제1 SID를 계산하는 단계는, 구체적으로,
    상기 말단 주소와 상기 제2 오프셋 주소의 차이값을 계산하는 단계; 및
    상기 차이값에 대응되는 SID가 상기 제1 주소 공간 내에 존재하면, 상기 차이값에 대응되는 SID를 상기 제1 SID로 하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  7. 제1항에 있어서,
    상기 제1 메시지는 제1 서브 TLV를 포함하고, 상기 제1 서브 TLV는 블록 식별자 필드, 시작 SID 필드 및 말단 SID 필드를 포함하며;
    여기서, 상기 블록 식별자 필드는 상기 적어도 하나의 제1 Block 식별자를 캐리하는 것에 사용되고;
    상기 시작 SID 필드는 각 제1 Block에 대응되는 주소 공간의 시작 주소를 캐리하는 것에 사용되며;
    상기 말단 SID 필드는 각 제1 Block에 대응되는 주소 공간의 말단 주소를 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  8. 제7항에 있어서,
    상기 제1 서브 TLV는 오프셋 필드를 더 포함하고, 상기 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  9. 제1항에 있어서,
    상기 제2 메시지는 제2 서브 TLV, 제3 서브 TLV 또는 제4 서브 TLV를 포함하고;
    상기 제2 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제2 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
    상기 제3 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제3 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
    상기 제4 서브 TLV는 기기 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제4 서브 TLV는 블록 식별자 필드, 인덱스 수량 필드, 인덱스 길이 필드, 적어도 하나의 인덱스 필드 및 각 인덱스 필드에 대응되는 앤드포인트 행위 필드를 포함하며;
    여기서, 상기 블록 식별자 필드는 상기 제2 Block 식별자를 캐리하는 것에 사용되고;
    상기 인덱스 수량 필드는 인덱스 수량을 캐리하는 것에 사용되며;
    상기 인덱스 길이 필드는 인덱스 길이를 캐리하는 것에 사용되고;
    각 인덱스 필드는 하나의 인덱스 값을 캐리하는 것에 사용되며;
    각 앤드포인트 행위 필드는 하나의 인덱스 값에 대응되는 앤드포인트 행위를 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  10. 제9항에 있어서,
    제2 서브 TLV는 오프셋 필드를 더 포함하고, 상기 제3 서브 TLV는 오프셋 필드를 더 포함하며, 상기 제4 서브 TLV는 오프셋 필드를 더 포함하고, 상기 오프셋 필드는 제1 오프셋을 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  11. 제1항에 있어서,
    상기 제1 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고;
    상기 제1 인덱스 값은 시작 인덱스 값이고, 상기 시작 인덱스 값은 상기 제1 메시지에 포함된 첫 번째 앤드포인트 행위에 대응되는 인덱스 값이며;
    상기 동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계는, 구체적으로,
    상기 앤드포인트 행위의 수량 및 상기 시작 인덱스 값에 따라, 상기 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하는 단계; 및
    상기 제1 주소 공간의 경계 주소 및 상기 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  12. 제11항에 있어서,
    상기 앤드포인트 행위의 수량 및 상기 시작 인덱스 값에 따라, 상기 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값을 계산하는 단계는, 구체적으로,
    상기 시작 인덱스 값과 N의 합을 상기 제1 메시지에 포함된 N 번째 앤드포인트 행위에 대응되는 인덱스 값으로 하는 단계 - 여기서, N의 값 범위는 0 내지 상기 앤드포인트 행위의 수량과 1의 차이값임 - 를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 제1 메시지는 제1 오프셋을 더 포함하고, 또는, 상기 제2 메시지는 제1 오프셋을 더 포함하며;
    상기 제1 주소 공간의 경계 주소 및 상기 제1 메시지에 포함된 각 앤드포인트 행위에 대응되는 인덱스 값에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계는,
    SID의 주소 규칙에 따라, 각 앤드포인트 행위에 대응되는 인덱스 값을 각각 상기 제1 오프셋만큼 이동하여, 각 앤드포인트 행위에 대응되는 제1 오프셋 주소를 얻는 단계; 및
    상기 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  14. 제13항에 있어서,
    상기 제1 주소 공간의 경계 주소는 상기 제1 주소 공간의 시작 주소이고;
    상기 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계는,
    상기 시작 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 합을 각각 계산하는 단계; 및
    계산하여 얻은 각 합이 모두 상기 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 합을 각각 각 앤드포인트 행위의 SID로 하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  15. 제13항에 있어서,
    상기 제1 주소 공간의 경계 주소는 상기 제1 주소 공간의 말단 주소이고;
    상기 제1 주소 공간의 경계 주소 및 각 앤드포인트 행위에 대응되는 제1 오프셋 주소에 기반하여, 각 앤드포인트 행위에 대응되는 SID를 각각 계산하는 단계는,
    상기 말단 주소와 각 앤드포인트 행위에 대응되는 제1 오프셋 주소의 차이값을 각각 계산하는 단계; 및
    계산하여 얻은 각 차이값이 모두 상기 제1 주소 공간 내에 존재하면, 계산하여 얻은 각 차이값을 각각 각 앤드포인트 행위의 SID로 하는 단계를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  16. 제11항에 있어서,
    상기 제1 메시지는 제5 서브 TLV를 포함하고, 상기 제5 서브 TLV는 블록 식별자 필드, 시작 SID 필드, 말단 SID 필드, 플래그 비트 필드, 알고리즘 필드, 가중치 필드, 행위 수량 필드 및 앤드포인트 행위 필드를 포함하며;
    여기서, 상기 블록 식별자 필드는 상기 제1 Block 식별자를 캐리하는 것에 사용되고;
    상기 시작 SID 필드는 상기 제1 주소 공간의 시작 주소를 캐리하는 것에 사용되며;
    상기 말단 SID 필드는 상기 제1 주소 공간의 말단 주소를 캐리하는 것에 사용되고;
    상기 플래그 비트 필드는 공유 플래그 비트를 캐리하는 것에 사용되며, 상기 공유 플래그 비트는 상기 제1 Block 식별자가 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고;
    상기 알고리즘 필드는 공유 알고리즘을 캐리하는 것에 사용되며, 상기 공유 알고리즘은 상기 제1 Block 식별자가 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고;
    상기 가중치 필드는 공유 가중치를 캐리하는 것에 사용되며, 상기 공유 가중치는 상기 제1 Block 식별자가 나타낸 Block에 포함된 복수 개의 SID에 의해 공유되고;
    상기 행위 수량 필드는 상기 앤드포인트 행위의 수량을 캐리하는 것에 사용되며;
    각 앤드포인트 행위는 하나의 앤드포인트 행위를 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  17. 제16항에 있어서,
    상기 제5 서브 TLV는 오프셋 필드를 더 포함하고, 상기 오프셋 필드는 상기 제1 오프셋을 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  18. 제11항에 있어서,
    상기 제2 메시지는 제6 서브 TLV 또는 제7 서브 TLV를 포함하고;
    상기 제6 서브 TLV는 피투피 P2P 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제6 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며;
    상기 제7 서브 TLV는 근거리 통신망 LAN 인접 유형의 링크 SID의 인덱스를 캐리하는 것에 사용되고; 상기 제7 서브 TLV는 블록 식별자 필드, 인덱스 길이 필드 및 시작 인덱스 필드를 포함하며;
    여기서, 상기 블록 식별자 필드는 상기 제2 Block 식별자를 캐리하는 것에 사용되고;
    상기 인덱스 길이 필드는 상기 시작 인덱스 필드의 길이를 캐리하는 것에 사용되며;
    상기 시작 인덱스 필드는 상기 시작 인덱스 값을 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  19. 제18항에 있어서,
    상기 제6 서브 TLV는 오프셋 필드를 더 포함하고, 상기 제7 서브 TLV는 오프셋 필드를 더 포함하며, 상기 오프셋 필드는 상기 제1 오프셋을 캐리하는 것에 사용되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  20. 제1항에 있어서,
    상기 제1 기기에는 제2 SID가 저장되고;
    상기 방법은,
    저장된 제2 SID를 획득하는 단계;
    미리 분할된 각 Block과 주소 공간 사이의 대응 관계에 따라, 상기 제2 SID가 속하는 타겟 Block을 결정하는 단계;
    상기 타겟 Block에 대응되는 제2 주소 공간 중의 각 SID와 인덱스 값의 대응 관계에 따라, 상기 제2 SID에 대응되는 제2 인덱스 값을 결정하는 단계; 및
    각 이웃 기기에 제3 메시지 및 제4 메시지를 송신하는 단계 - 상기 제3 메시지는 상기 타겟 Block의 제3 Block 식별자 및 상기 제2 주소 공간의 경계 주소를 포함하고, 상기 제4 메시지는 상기 제3 Block 식별자 및 상기 제2 인덱스 값을 포함함 - 를 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  21. 제20항에 있어서,
    상기 제1 기기는 복수 개의 인덱스가 연속되는 SID를 저장하고, 상기 복수 개의 인덱스가 연속되는 SID 중의 첫 번째 SID는 상기 제2 SID이며;
    상기 제3 메시지는 앤드포인트 행위의 수량 및 앤드포인트 행위를 더 포함하고, 상기 앤드포인트 행위의 수량은 인덱스가 연속되는 SID의 수량이며; 상기 복수 개의 인덱스가 연속되는 SID와 상기 제3 메시지에 포함된 앤드포인트 행위는 일대일로 대응되는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  22. 제20항 또는 제21항에 있어서,
    상기 제3 메시지는 제2 오프셋을 더 포함하고, 또는, 상기 제4 메시지는 제2 오프셋을 더 포함하며;
    각 이웃 기기에 제3 메시지 및 제4 메시지를 송신하기 전, 상기 방법은,
    상기 제2 주소 공간 중의 각 주소의 속성 특징에 따라, 상기 제2 주소 공간의 경계 주소의 상기 제2 오프셋을 계산하는 단계를 더 포함하는 것을 특징으로 하는 세그먼트 식별자 결정 방법.
  23. 전자 기기로서,
    상기 전자 기기는 SRv6 네트워크 중의 제1 기기이고, 상기 SRv6 네트워크는 제2 기기를 더 포함하며, 상기 제1 기기와 상기 제2 기기는 서로 이웃 기기이고, 상기 제2 기기는 제1 세그먼트 식별자 SID를 저장하며, 상기 전자 기기는,
    프로세서;
    트랜시버; 및
    기계 판독 가능한 저장 매체를 포함하고,
    상기 기계 판독 가능한 저장 매체에는 상기 프로세서에 의해 실행 가능한 기계가 실행 가능한 명령이 저장되어 있으며,
    상기 기계가 실행 가능한 명령은 상기 프로세서가,
    트랜시버를 통해 상기 제2 기기에 의해 송신된 제1 메시지 및 제2 메시지를 수신하는 단계 - 여기서, 상기 제1 메시지는 적어도 하나의 제1 Block 식별자 및 각 제1 Block 식별자에 대응되는 주소 공간의 경계 주소를 포함하고; 상기 제2 메시지는 적어도 하나의 제2 Block 식별자 및 제1 인덱스 값를 포함함 - ; 및
    동일한 Block에 대응되는 제1 주소 공간의 경계 주소 및 상기 제1 인덱스 값을 이용하여, 상기 제1 SID를 계산하는 단계 - 상기 동일한 Block은 상기 적어도 하나의 제1 Block 식별자와 상기 적어도 하나의 제2 Block 식별자 중의 동일한 Block 식별자가 나타내는 Block임 - 를 실행하도록 하는 것을 특징으로 하는 전자 기기.
  24. 제23항에 있어서,
    상기 기계가 실행 가능한 명령은 상기 프로세서가 제2항 내지 제22항 중 어느 한 항의 방법에 따른 단계를 더 실행하도록 하는 것을 특징으로 하는 전자 기기.
  25. 기계 판독 가능한 저장 매체로서,
    기계가 실행 가능한 명령이 저장되어 있고, 프로세서에 의해 호출되고 실행될 때, 상기 기계가 실행 가능한 명령은 상기 프로세서가, 제1항 내지 제22항 중 어느 한 항의 방법에 따른 단계를 실행하도록 하는 것을 특징으로 하는 기계 판독 가능한 저장 매체.
KR1020237036952A 2021-09-22 2022-02-25 세그먼트 식별자 결정 방법 및 디바이스 KR20230160394A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202111108022.6A CN113691451B (zh) 2021-09-22 2021-09-22 一种段标识确定方法及装置
CN202111108022.6 2021-09-22
PCT/CN2022/078065 WO2023045247A1 (zh) 2021-09-22 2022-02-25 一种段标识确定方法及装置

Publications (1)

Publication Number Publication Date
KR20230160394A true KR20230160394A (ko) 2023-11-23

Family

ID=82232771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036952A KR20230160394A (ko) 2021-09-22 2022-02-25 세그먼트 식별자 결정 방법 및 디바이스

Country Status (5)

Country Link
US (1) US20240205134A1 (ko)
EP (1) EP4311197A1 (ko)
JP (1) JP2024518120A (ko)
KR (1) KR20230160394A (ko)
CN (1) CN114731330A (ko)

Also Published As

Publication number Publication date
EP4311197A1 (en) 2024-01-24
JP2024518120A (ja) 2024-04-24
US20240205134A1 (en) 2024-06-20
CN114731330A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
US11303553B1 (en) Return path trace
EP2388956B1 (en) Ascertaining per-hop network characteristics
EP2764728B1 (en) Route prefix aggregation using reachable and non-reachable addresses in a computer network
TW535068B (en) Method and system for optimizing routing through multiple available internet route providers
US9800493B2 (en) Routing messages in a computer network using deterministic and probalistic source routes
US9300569B2 (en) Compressing data packet routing information using bloom filters
CN116319524A (zh) 一种在sr网络中转发报文的方法、设备和系统
CN112511429A (zh) 信息发送和处理的方法、节点、控制器、计算机可读介质
WO2023045247A1 (zh) 一种段标识确定方法及装置
KR20210158807A (ko) 라우팅 정보 전송 방법, 패킷 전송 방법 및 관련 장치
KR20230160394A (ko) 세그먼트 식별자 결정 방법 및 디바이스
JP5673303B2 (ja) 無線端末装置、無線システム及び無線通信方法
CN109218182B (zh) 一种路由信息的同步方法及装置
JP2023515955A (ja) ルート更新方法及び装置
CN112737937B (zh) 信息跨域通告方法、系统和边界路由器
CN116530067A (zh) 使用内部网关协议(interior gateway protocol,IGP)的边缘计算数据和服务发现
Tanaka et al. A CLNP-based protocol for mobile End Systems within an area
EP4322482A1 (en) Routing information processing method and apparatus
CN113497794B (zh) 一种切换路由的方法及装置
WO2022267083A1 (zh) 确定路径的方法和装置
CN117579542A (zh) 基于比特索引筛选的任意播方法及相关设备
CN116032817A (zh) BGP-intent路由的接收方法和BGP-intent路由的通告方法
CN116418728A (zh) 一种报文发送的方法、段标识生成的方法及装置
CN116743649A (zh) 报文字段扩展方法、装置、介质、设备
CN115037687A (zh) 一种基于多根节点的路由建立方法、装置及电子设备