KR20060130417A - IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법 - Google Patents

IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법 Download PDF

Info

Publication number
KR20060130417A
KR20060130417A KR1020050051089A KR20050051089A KR20060130417A KR 20060130417 A KR20060130417 A KR 20060130417A KR 1020050051089 A KR1020050051089 A KR 1020050051089A KR 20050051089 A KR20050051089 A KR 20050051089A KR 20060130417 A KR20060130417 A KR 20060130417A
Authority
KR
South Korea
Prior art keywords
packet
multicast
ipv6
forwarder
sender
Prior art date
Application number
KR1020050051089A
Other languages
English (en)
Other versions
KR100687745B1 (ko
Inventor
정상진
김용운
신명기
김형준
이형호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020050051089A priority Critical patent/KR100687745B1/ko
Publication of KR20060130417A publication Critical patent/KR20060130417A/ko
Application granted granted Critical
Publication of KR100687745B1 publication Critical patent/KR100687745B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • 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
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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/17Interaction among intermediate nodes, e.g. hop by hop
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

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

Abstract

IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한 네트워크 프로세서 및 그 방법이 개시된다. 네트워크 프로세서의 포워딩 엔진부의 인그레스 포워더는 패킷의 목적지 주소를 기초로 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색한다. 그리고 이그레스 포워더는 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 패킷에 해당하는 출력 포트의 수를 파악하고, 파악된 포트의 수 만큼 상기 패킷을 복사하여 포워딩한다. 이로써, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있다.
네트워크 프로세서, IPv6 송신자 기반 멀티캐스트

Description

IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한 네트워크 프로세서 및 그 방법{Network processor for IPv6 source-specific multicast packet forwarding and method therefor}
도 1은 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 포워딩 기능을 갖는 네트워크 프로세서의 패킷 포워딩 엔진부의 일 실시예의 구성을 도시한 도면,
도 2는 본 발명에 따른 네트워크 프로세서의 이그레스 포워더의 구성의 일 실시예를 도시한 도면,
도 3은 본 발명에 따른 네트워크 프로세서의 인그레스 포워더의 구성의 일 실시예를 도시한 도면, 그리고,
도 4a 및 도 4b는 본 발명에 따른 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법을 도시한 도면이다.
본 발명은 네트워크 프로세서에 관한 것으로, 보다 상세하게는 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩할 수 있는 네트워크 프로세서 및 그 방법에 관한 것이다.
현재 대부분의 IP 멀티캐스트 응용(application)들은 다대다 전송을 지원하는 임의 송신자 기반 멀티캐스트(Any-Source Multicast) 모델에 기반하여 구현되어 있다. 그러나 현재의 임의 송신자 기반 멀티캐스트 모델은 확장성이나 보안 등에 문제가 있는 것으로 알려져 있다. 현재 민간 국제표준 기구인 IETF(Internet Engineering Task Force)에서는 이러한 임의 송신자 기반 멀티캐스트 모델의 단점을 해결하기 위하여 IPv6 송신자 기반 멀티캐스트 방법을 제안하여 표준화를 완료하였으나, 아직까지 고성능 패킷 처리가 가능한 네트워크 프로세서 기반의 IPv6 송신자 기반 멀티캐스트 패킷 전송을 위한 실증적인 방법은 개발되어 있지 않다.
종래의 ASIC(Application-Specific Integrated Circuit) 기반의 시스템들은 하드웨어 기반으로 고성능을 제공하지만, 다양한 인터넷 서비스에 대한 요구를 신속하게 수용하지 못한다. 네트워크 프로세서는 빠른 개발 주기를 가지면서도 충분한 성능을 제공하므로 IPv6 시장과 같은 급변하는 시장에 유연성있게 대처할 수 있는 개발 환경을 제공한다.
본 발명이 이루고자 하는 기술적 과제는, IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있는 네트워크 프로세서 및 그 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 네트워크 프로세서의 일 실시예는, 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 인그레스 포워더; 및 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하고, 상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 이그레스 포워더;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법의 일 실시예는, (a) 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계; (b) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계; (c) 상기 포워딩 테이블의 검색이 성공하면, IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하는 단계; 및 (d)상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 단계;를 포함한다.
이로써, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 전송 기능을 갖는 네트워크 프로세서 및 그 방법에 대해 상세히 설명한다.
도 1은 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 전송 기능을 갖는 네트워크 프로세서의 패킷 포워딩 엔진부의 일 실시예의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 네트워크 프로세서는 인그레스 포워더(Ingress Forwarder)(100) 및 이그레스 포워더(Egress Forwarder)(150)로 구성된다.
인그레스 포워더(100)는 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 패킷이 IPv6 송신자 기반 멀티캐스트용 주소이면 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성한 후 패킷을 이그레스 포워더(150)로 전달한다.
이그레스 포워더(150)는 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 패킷에 해당하는 출력 포트의 수를 검색하고, 검색된 포트의 수 만큼 상기 패킷을 복사하여 패킷을 포워딩한다.
구체적으로 살펴보면, 인그레스 포워더(100)는 패킷 분류부(102), 인그레스 멀티캐스트 포워더(Ingress Multicast Forwarder)(104), CSIX 프레임 생성부(108) 및 예외 패킷 처리부(106)를 포함한다.
패킷 분류부(102)는 망으로부터 패킷을 수신하면, 패킷이 IPv6 패킷인지 파악하여 IPv6 패킷이 아니면 패킷을 폐기한다. 그리고 수신한 패킷의 목적지 주소를 기초로 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악한다. 또한, 패킷 분류부(102)는 패킷이 IPv6 유니캐스트 패킷이면 IPv6 유니캐스트 포워딩 모듈(미도시)로 패킷을 전송하고, 패킷이 IPv6 멀티캐스트 패킷이면 다시 IPv6 송 신자 기반 멀티캐스트 패킷인지 파악한다. 패킷 분류부(102)는 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면 패킷을 인그레스 멀티캐스트 포워더(104)로 전달한다.
인그레스 멀티캐스트 포워더(104)는 전달받은 IPv6 송신자 기반 멀티캐스트 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성한 후 패킷을 CSIX 프레임 생성부(108)로 전달한다.
CSIX 프레임 생성부(108)는 인그레스 멀티캐스트 포워더(104)로부터 전달받은 IPv6 송신자 기반 멀티캐스트 패킷을 CSIX 프레임으로 생성하여 상기 이그레스 포워더(150)로 전달한다.
예외 패킷 처리부(106)는 인그레스 멀티캐스트 포워더(104)로부터 소정의 IPv6 링크 로컬 멀티캐스트 주소를 가지는 패킷을 전달받고, 전달받은 패킷에 대한 예외 처리를 수행한다.
다음으로, 이그레스 포워더(150)에 대해 구체적으로 살펴보면, 이그레스 포워더(150)는 이그레스 멀티캐스트 포워더(Egress Multicast Forwarder)(152), 패킷 복제부(154) 및 패킷 전송부(156)를 포함한다.
이그레스 멀티캐스트 포워더(152)는 인그레스 멀티캐스트 포워더(104)로부터 전달받은 패킷의 출력 포트 수를 멀티캐스트 출력 포트 테이블을 검색하여 파악하고, 패킷 복제부(154)는 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장한다. 그리고 패킷 전송부(156)는 복제된 각각의 패킷에 대해 상기 멀티캐스트 출력 포트 테이블을 검색하여 해당하는 넥스트홉을 각각의 패킷에 설정하여 출력한 다.
도 2는 본 발명에 따른 네트워크 프로세서의 이그레스 포워더의 구성의 일 실시예를 도시한 도면이고, 도 3은 본 발명에 따른 네트워크 프로세서의 인그레스 포워더의 구성의 일 실시예를 도시한 도면이다.
도 2 및 도 3을 참조하면, 네트워크 프로세서의 이그레스 포워더 및 인그레스 포워더는 마이크로 블록 모듈과 코어 모듈로 크게 구분된다.
마이크로 블록 모듈은 제어 플레인에서 전달받은 멀티캐스트 트리 정보를 기반으로 해당 멀티캐스트 패킷의 전달 정보를 확인하고, 필요 시에 패킷 복제부(packet copier)(310)에 패킷 복제 명령을 전달하여 패킷을 복제하게 하고, 이들 복제된 패킷을 해당 멤버에게 전달하도록 하는 인그레스 멀티캐스트 포워더(215), 상기 인그레스 멀티캐스트 포워더(215)에 대응하여 이그레스 포워더에서 동작하는 이그레스 멀티캐스트 포워더(305), 인그레스 멀티캐스트 포워더(215)로부터 전달받은 패킷 복제 명령에 대해 요구되는 수 만큼의 패킷을 복제하는 패킷 복제부(310) 등을 포함한다.
코어 모듈은 인그레스 포워더의 XScale 코어에서 동작하여 인그레스 멀티캐스트 포워더(215)를 위한 자원의 초기화 및 마이크로 블록 모듈로부터의 예외 패킷을 처리하는 인그레스 코어 컴포넌트(220), 이그레스 코어 컴포넌트(330) 등을 포함한다.
이하에서, 각각의 구성에 대해 구체적으로 살펴본다.
도 2를 참조하면, 인그레스 포워더는 Ether Rx 모듈(200), 분류부 (Decap/Classify)(205), IPv6 포워더(210), 인그레스 멀티캐스트 포워더(215), 인그레스 코어 컴포넌트(220), 스택 드라이버 코어 컴포넌트(225), 큐 관리부(235) 및 CSIX TX 모듈(240)로 구성된다.
도 2에서 사각형으로 표시된 모듈들은 본 발명에서 새롭게 구현된 것이고, 마름모형으로 표시된 모듈은 종래의 네트워크 프로세서 포워딩 엔진부에서 제공되는 모듈을 확장한 것이며, 타원형으로 표시된 모듈은 종래의 네트워크 프로세서 포워딩 엔진부에서 제공되는 모듈이다. 그리고 육각형으로 제공되는 외부 패킷 처리 프로세서(230)는 별도의 예외 패킷 처리 시스템이다.
Ether Rx 모듈(200)은 망 인터페이스 장치를 통해 데이터 링크 계층의 패킷을 수신한다. 분류부(Decap/Classify)(205)는 Ether Rx 모듈(200)에 수신된 링크 계층 패킷의 타입(type) 값을 이용하여 패킷이 IPv6 패킷인지 구분한다. 분류부(205)는 수신된 패킷이 IPv6 패킷이 아니면 폐기한다. 일반적으로 IPv6 패킷의 경우 타입 값은 0x86DD 이다.
IPv6 포워더(210)는 분류부(205)로부터 전달받은 IPv6 패킷의 헤더에 대한 유효성 검사, IPv6 유니캐스트 포워딩 테이블 검색, IPv6 유니캐스트 패킷의 홉 리미트 값을 감소시키는 기능을 수행한다.
구체적으로, IPv6 포워더(210)는 IPv6 패킷 헤더의 유효성 검사에서 패킷의 버전이나 길이의 오류가 있는 패킷, 소스 주소가 멀티캐스트 주소 또는 0, ::1인 패킷을 폐기한다. 또한, IPv6 포워더(210)는 패킷의 목적지 주소가 IPv6 링크 로컬 주소인 경우, 패킷에 Hop-by-Hop 옵션 헤더가 포함된 경우, IPv6 유니캐스트 포워 딩 테이블 검색이 실패한 경우에는 패킷을 인그레스 코어 컴포넌트(220)로 전달한다. 또한, IPv6 포워더(210)는 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소(즉, FF3x::/96, x는 16진수로 0~F 범위의 값)인 경우에는 패킷을 인그레스 멀티캐스트 포워더(215)로 전달한다.
인그레스 멀티캐스트 포워더(215)는 전달받은 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인지 확인한다. 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인 경우에 인그레스 멀티캐스트 포워더(215)는 패킷의 소스 주소 및 목적지 주소를 해쉬키(Hash Key)로 사용하여 IPv6 멀티캐스트 포워딩 테이블을 검색한다.
멀티캐스트 포워딩 테이블의 검색에 성공하면, 인그레스 멀티캐스트 포워더(215)는 포워딩 엔진 내부에서의 패킷 처리를 위해 패킷마다 생성되는 패킷 메타데이터의 헤더 타입을 IPv6_MULTICAST로 설정하고 next_hop_id를 검색된 멀티캐스트 포워딩 테이블의 엔트리의 인덱스(Multicast ID, MTID)로 설정하고, 패킷의 홉 리미트를 감소시킨 후 패킷을 큐 관리부(235)로 전달한다.
인그레스 멀티캐스트 포워더(215)는 멀티캐스트 포워딩 테이블의 검색이 실패한 경우 패킷을 폐기한다. 또한, 인그레스 멀티캐스트 포워더(215)는 패킷의 목적지 주소가 IPv6 링크 로컬 멀티캐스트 주소 중 FF02::1, FF02::2, FF02::D, FF02::16 중 하나인 경우에는 패킷을 Xscale 코어 모듈의 인그레스 코어 컴포넌트(220)로 전달한다.
인그레스 코어 컴포넌트(220)는 IPv6 패킷의 전송을 위한 IPv6 유니캐스트 포워딩 테이블 및 IPv6 멀티캐스트 포워딩 테이블을 생성 및 관리한다. 또한, 인그레스 코어 컴포넌트(220)는 인그레스 멀티캐스트 포워더(215)로부터 전달받은 패킷을 검사하여 패킷에 IPv6 Hop-by-Hop 옵션 헤더가 존재하는 경우, 패킷의 종류가 IPv6 멀티캐스트 패킷인 경우, 패킷의 목적지 주소가 링크 로컬 멀티캐스트 주소(FF02::1, FF02::2, FF02::D, FF02::16 중 어느 하나인 경우)인 경우에는 패킷을 스택 드라이버 코어 컴포넌트(225)로 전달한다.
또한, 인그레스 코어 컴포넌트(220)는 패킷의 IPv6 MTU(Maximum Transmission Unit)검사가 실패하거나, 홉 제한 오류가 발생하거나, IPv6 유니캐스트 포워딩 테이블의 검색이 실패한 경우에는 ICMPv6(Internet Control Message Protocol for IPv6) 메시지를 전송한다. 또한, 인그레스 코어 컴포넌트(220)는 IPv6 멀티캐스트 포워딩 테이블의 검색이 실패한 경우 및 ICMPv6 리다이렉트 옵션이 설정된 경우 패킷을 폐기(drop)한다.
스택 드라이버 코어 컴포넌트(225)는 인그레스 코어 컴포넌트(220)로부터 전달받은 패킷의 처리를 담당하는 외부 패킷 처리 프로세서(230)에 패킷을 전달하는 기능 및 외부 패킷 처리 프로세서(230)에서 처리된 패킷을 큐 관리부(235)로 전달하는 기능을 담당한다.
CSIX(Common Switch Interface) TX 모듈은(240) 큐 관리부(235)로부터 전달받은 패킷을 검사하여, 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인 경우에는 CSIX 멀티캐스트 프레임을 생성한다. CSIX 멀티캐스트 프레임은 베이스 헤더의 타입 필드의 값이 멀티캐스트 ID(0x03)로 설정되며, CSIX 멀티캐스트 확장헤더가 추가된 다. 생성된 CSIX 멀티캐스트 프레임은 패킷 포워딩 엔진부의 이그레스 포워더로 전달된다.
도 3을 참조하면, 본 발명에 따른 이그레스 포워더는 CSIX RX 모듈(300), 이그레스 멀티캐스트 포워더(305), 패킷 복제부(310), Ether Encap 모듈(315), 큐 관리부(320), Ether TX 모듈(325) 및 이그레스 코어 컴포넌트(330)로 구성된다.
CSIX RX 모듈(300)은 패킷 포워딩 엔진부의 인그레스 포워더로부터 전달받은 패킷이 멀티캐스트 패킷인 경우, 헤더 타입을 멀티캐스트로 설정하고, 이그레스 멀티캐스트 포워더(305)로 패킷을 전달한다. CSIX RX 모듈(300)은 패킷이 IPv6 유니캐스트 패킷이면 Ether Encap 모듈(315)로 패킷을 직접 전달한다.
이그레스 멀티캐스트 포워더(305)는 IPv6 멀티캐스트 출력 포트 테이블(MOIT_Port_Table)을 검색하여 출력 포트의 수가 1개 이하인 경우에는 Ether Encap 모듈(315)로 패킷을 전달하고, 출력 포트의 수가 2개 이상인 경우에는 멀티캐스트 출력 인터페이스 테이블(MOIT_OIF_Table)을 검색하여 MTU 값과 홉 리미트 값을 검사하고, 패킷을 패킷 복제부(310)로 전달한다.
패킷 복제부(Packet Copier)(310)는 현 패킷의 출력 포트로 지정된 각 포트에 대하여 Child 버퍼를 생성한 후, 출력할 멀티캐스트 패킷을 각각 복사하여 버퍼에 저장한다. 그리고 패킷 복제부(310)는 복제된 패킷들을 Ether Encap 모듈(315)로 전달한다.
Ether Encap 모듈(315)은 포워딩 테이블 엔트리의 인덱스와 멀티캐스트 출력 인터페이스 테이블의 출력 인터페이스 번호를 이용하여 멀티캐스트 출력 포트 테이 블(MOIT_Port_Table)을 검색하여 실제 패킷을 전송할 네트워크 프로세서의 출력 포트 번호를 가져온다. Ether Encap 모듈(315)에서 출력 포트 번호가 검색된 패킷은 큐 관리부(320)를 거쳐 Ether Tx 모듈(325)로 전달된다.
Ether Tx 모듈(325)은 링크 계층 테이블을 검색하여 링크 계층 헤더를 패킷에 추가한 후 패킷을 전송한다. 그리고 난 후 패킷 복제부(310)는 Child 버퍼를 비운다.
도 4a 및 도 4b는 본 발명에 따른 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법을 도시한 도면이다.
도 2 및 4a를 참조하면, Ether Rx 모듈(200)이 인그레스 포워더의 망 인터페이스 장치를 통해 패킷을 수신하면(S400), 분류부(205)는 링크 계층 패킷의 타입 값을 이용하여 IPv6 패킷인지 확인한다(S405).
IPv6 패킷이면 분류부(205)는 패킷을 IPv6 포워더(210)로 전달하고, IPv6 포워더(210)는 전달받은 IPv6 패킷의 헤더에 대한 유효성 검사를 실시하여(S410) 버전이나 헤더 체크섬 등에 오류가 있으면 패킷을 폐기한다(S440).
그리고 IPv6 포워더(210)는 패킷의 목적지 주소를 확인하여 목적지 주소가 IPv6 멀티캐스트 주소인 경우에는 패킷을 인그레스 멀티캐스트 포워더(215)로 전달한다(S415). 목적지 주소가 IPv6 유니캐스트 영역인 패킷은 IPv6 유니캐스트 포워딩 모듈로 전달된다(S445).
인그레스 멀티캐스트 포워더(215)는 전달받은 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인지 확인하고(S420), IPv6 송신자 기반 멀티캐스트 주 소인 경우에는 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 IPv6 멀티캐스트 포워딩 테이블을 검색한다(S425).
멀티캐스트 포워딩 테이블 검색이 성공하면(S430), CSIX TX 모듈(240)은 패킷을 이그레스 포워더로 전달하기 위한 CSIX 멀티캐스트 프레임을 생성한 후 이그레스 포워더의 CSIX RX 모듈(300)로 전달한다(S435).
도 3 및 도 4b를 참조하면, 이그레스 포워더 내부의 CSIX RX 모듈(300)은 인그레스 포워더로부터 전달받은 패킷을 인그레스 멀티캐스트 포워더(305)로 전달한다(S450). 이그레스 멀티캐스트 포워더(305)는 IPv6 멀티캐스트 출력 포트 테이블을 검색한다(S455).
검색된 해당 출력 포트의 수가 1개 이하인 경우에는(S460), 이그레스 멀티캐스트 포워더(305)는 패킷을 Parent 버퍼에 저장하여 Ether Encap 모듈(315)로 전달한다(S470). 출력 포트의 수가 2개 이상인 경우에는 이그레스 멀티캐스트 포워더(305)는 패킷을 패킷 복제부(310)로 전달하고, 패킷 복제부(310)는 출력 포트의 수 만큼 Child 버퍼를 생성한 후, Parent 버퍼에 저장된 패킷을 복제하여 각 Child 버퍼에 저장한 후 Ether Encap 모듈(315)로 전달한다(S465,S470).
Ether Encap 모듈(315)은 멀티캐스트 출력 포트 테이블에서 넥스트 홉을 검색하여 패킷에 설정한 후(S475), 링크 계층 헤더를 추가하여 Child 버퍼의 개수 만큼 패킷을 반복하여 전송한다(S480,S485).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면, IPv6 망에서 네트워크 프로세서를 이용하여 IPv6 송신자 기반 멀티캐스트 서비스를 제공할 수 있다. 따라서, IPv6 망의 많은 수의 사용자들에게 IPv6 송신자 기반 멀티캐스트 서비스를 고속으로 제공할 수 있으며, 인터넷 방송과 같은 응용에 본 발명을 적용하여 망 자원의 효율적인 이용을 도모할 수 있다.

Claims (11)

  1. 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 인그레스 포워더; 및
    IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하고, 상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 이그레스 포워더;를 포함하는 것을 특징으로 하는 네트워크 프로세서.
  2. 제 1항에 있어서, 상기 인그레스 포워더는,
    상기 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 멀티캐스트 패킷이면 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 패킷 분류부;
    상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면, 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 상기 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성하는 인그레스 멀티캐스트 포워더;를 포함하는 것을 특징으로 하는 네트워크 프로세서.
  3. 제 2항에 있어서, 상기 인그레스 포워더는,
    망으로부터 수신한 패킷의 데이터 링크 계층의 타입 값을 기초로 상기 패킷이 IPv6 패킷인지 파악하고, 상기 패킷이 IPv6 패킷이면 상기 패킷 분류부로 전달하는 패킷 수신부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.
  4. 제 2항에 있어서, 상기 인그레스 포워더는,
    상기 인그레스 멀티캐스트 포워더로부터 전달받은 IPv6 송신자 기반 멀티캐스트 패킷을 CSIX 프레임으로 생성하여 상기 이그레스 포워더로 전달하는 CSIX 프레임 생성부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.
  5. 제 2항에 있어서, 상기 인그레스 포워더는,
    상기 인그레스 멀티캐스트 포워더로부터 소정의 IPv6 링크 로컬 멀티캐스트 주소를 가지는 패킷을 전달받고, 상기 전달받은 패킷에 대한 예외 처리를 수행하는 예외 패킷 처리부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.
  6. 제 1항에 있어서, 상기 이그레스 포워더는,
    상기 인그레스 멀티캐스트 포워더로부터 전달받은 패킷에 대한 출력 포트 수를 멀티캐스트 출력 포트 테이블을 검색하여 파악하는 이그레스 멀티캐스트 포워더; 및
    상기 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장하는 패킷 복제부;를 포함하는 것을 특징으로 하는 네트워크 프로세서.
  7. 제 6에 있어서, 상기 이그레스 포워더는,
    상기 복제된 각각의 패킷에 대해 상기 멀티캐스트 출력 포트 테이블을 검색하여 해당하는 넥스트 홉을 상기 각각의 패킷에 설정하여 전송하는 패킷 전송부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.
  8. (a) 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계;
    (b) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계;
    (c) 상기 포워딩 테이블의 검색이 성공하면, IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하는 단계; 및
    (d)상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.
  9. 제 8항에 있어서, 상기 (a) 단계는,
    (a1) 상기 패킷의 링크계층 타입 값을 기초로 상기 패킷이 IPv6 패킷인지 파악하고, 상기 패킷이 IPv6 패킷이 아니면 폐기하는 단계;
    (a2) 상기 패킷의 헤더의 유효성 검사를 수행하여, 검사 결과 이상이 있으면 상기 패킷을 폐기하는 단계;
    (a3) 상기 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악하는 단계; 및
    (a4) 상기 패킷이 IPv6 멀티캐스트 패킷이면 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.
  10. 제 8항에 있어서, 상기 (b) 단계는,
    (b1) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면, 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계;
    (b2) 상기 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성하는 단계; 및
    (b3) 상기 패킷의 목적지 주소가 소정의 IPv6 로컬 멀티캐스트 주소이면 상기 패킷을 포워딩 엔지부의 코어 모듈로 전달하여 패킷 예외 처리를 수행하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.
  11. 제 10항에 있어서, 상기 (d) 단계는,
    (d1) 상기 파악된 출력 포트의 수가 2개 이상이면 상기 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장하는 단계;
    (d2) 상기 멀티캐스트 출력 포트 테이블에서 상기 패킷에 해당하는 넥스트홉을 검색하여 상기 패킷에 설정한 후, 링크 계층 헤더를 추가하여 전송하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.
KR1020050051089A 2005-06-14 2005-06-14 IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법 KR100687745B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050051089A KR100687745B1 (ko) 2005-06-14 2005-06-14 IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050051089A KR100687745B1 (ko) 2005-06-14 2005-06-14 IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법

Publications (2)

Publication Number Publication Date
KR20060130417A true KR20060130417A (ko) 2006-12-19
KR100687745B1 KR100687745B1 (ko) 2007-02-27

Family

ID=37810851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050051089A KR100687745B1 (ko) 2005-06-14 2005-06-14 IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법

Country Status (1)

Country Link
KR (1) KR100687745B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759819B1 (ko) * 2006-05-26 2007-09-18 한국전자통신연구원 IPv6 패킷의 확장헤더를 검사하는 장치 및 방법
KR101301188B1 (ko) * 2007-01-02 2013-08-29 삼성전자주식회사 모바일 IPv6 네트워크 시스템 및 그 시스템의 패킷포워딩 방법
KR101363599B1 (ko) * 2007-02-16 2014-02-14 삼성전자주식회사 분산 구조 라우팅 시스템에서 아이피 버전 식스 링크 로컬주소 지원 장치 및 방법
CN105700859A (zh) * 2014-11-25 2016-06-22 中兴通讯股份有限公司 一种基于网络处理器实现硬件表遍历的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4501230B2 (ja) 2000-05-30 2010-07-14 株式会社日立製作所 IPv4−IPv6マルチキャスト通信方法および装置
JP4365998B2 (ja) 2000-07-21 2009-11-18 株式会社日立製作所 マルチキャスト通信方法および通信装置
KR20060035080A (ko) * 2004-10-21 2006-04-26 한국전자통신연구원 리눅스 라우터에서 IPv6 송신자 기반 멀티캐스트데이터 전송시스템 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759819B1 (ko) * 2006-05-26 2007-09-18 한국전자통신연구원 IPv6 패킷의 확장헤더를 검사하는 장치 및 방법
KR101301188B1 (ko) * 2007-01-02 2013-08-29 삼성전자주식회사 모바일 IPv6 네트워크 시스템 및 그 시스템의 패킷포워딩 방법
KR101363599B1 (ko) * 2007-02-16 2014-02-14 삼성전자주식회사 분산 구조 라우팅 시스템에서 아이피 버전 식스 링크 로컬주소 지원 장치 및 방법
CN105700859A (zh) * 2014-11-25 2016-06-22 中兴通讯股份有限公司 一种基于网络处理器实现硬件表遍历的方法及装置

Also Published As

Publication number Publication date
KR100687745B1 (ko) 2007-02-27

Similar Documents

Publication Publication Date Title
EP3320670B1 (en) Method and apparatus for pushing data in a content-centric networking (ccn) network
US9871781B2 (en) Systems and methods for path maximum transmission unit discovery
US9705799B2 (en) Server-side load balancing using parent-child link aggregation groups
US9836540B2 (en) System and method for direct storage access in a content-centric network
CN108768866B (zh) 组播报文跨卡转发方法、装置、网络设备及可读存储介质
US20160182680A1 (en) Interest acknowledgements for information centric networking
US20100036820A1 (en) Method and System for Processing Access Control Lists Using a Hashing Scheme
US10581741B2 (en) Method and system for interest groups in a content centric network
US10009266B2 (en) Method and system for reference counted pending interest tables in a content centric network
US10103989B2 (en) Content object return messages in a content centric network
JP2006311066A (ja) 電子機器
US20070230469A1 (en) Transmission apparatus
US9848059B2 (en) Content handling method, apparatus, and system
KR20170064996A (ko) 콘텐트 중심 네트워크에서의 명시적 콘텐트 삭제 명령어들
WO2020259420A1 (zh) 生成组播转发表项的方法和接入网关
US7792129B2 (en) Multi-queue packet processing using Patricia tree
KR100687745B1 (ko) IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한네트워크 프로세서 및 그 방법
US20210029036A1 (en) Hash collision mitigation system
KR101384794B1 (ko) 메시지 라우팅 플랫폼
WO2013181984A1 (zh) 一种报文复制方法及装置
US10051071B2 (en) Method and system for collecting historical network information in a content centric network
CN109067673B (zh) 堆叠系统中mac地址学习的方法及系统
CN100550844C (zh) 还原重定向报文特征信息的方法
TWI281804B (en) Packet forwarding method and system
US7639685B2 (en) Method and apparatus for multicast forwarding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee