KR100687745B1 - IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method - Google Patents
IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method Download PDFInfo
- Publication number
- KR100687745B1 KR100687745B1 KR1020050051089A KR20050051089A KR100687745B1 KR 100687745 B1 KR100687745 B1 KR 100687745B1 KR 1020050051089 A KR1020050051089 A KR 1020050051089A KR 20050051089 A KR20050051089 A KR 20050051089A KR 100687745 B1 KR100687745 B1 KR 100687745B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- multicast
- ipv6
- forwarder
- sender
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/17—Interaction among intermediate nodes, e.g. hop by hop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow 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 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있다.A network processor and method for IPv6 sender based multicast packet forwarding are disclosed. The ingress forwarder of the network processor's forwarding engine unit determines whether the packet is an IPv6 sender-based multicast packet based on the packet's destination address. If the packet is an IPv6 sender-based multicast address, the ingress forwarder uses the packet's source address and destination address as a hash key. Retrieve the multicast forwarding table. The egress forwarder searches the IPv6 multicast output port table to determine the number of output ports corresponding to the packet, and copies and forwards the packet by the number of the identified ports. As a result, the network processor can divide the IPv6 sender-based multicast packet and forward the packet at high speed.
네트워크 프로세서, IPv6 송신자 기반 멀티캐스트 Network Processor, IPv6 Sender Based Multicast
Description
도 1은 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 포워딩 기능을 갖는 네트워크 프로세서의 패킷 포워딩 엔진부의 일 실시예의 구성을 도시한 도면,1 is a diagram showing the configuration of an embodiment of a packet forwarding engine unit of a network processor having an IPv6 sender based multicast packet forwarding function according to the present invention;
도 2는 본 발명에 따른 네트워크 프로세서의 이그레스 포워더의 구성의 일 실시예를 도시한 도면,2 is a diagram illustrating an embodiment of a configuration of an egress forwarder of a network processor according to the present invention;
도 3은 본 발명에 따른 네트워크 프로세서의 인그레스 포워더의 구성의 일 실시예를 도시한 도면, 그리고,3 is a diagram illustrating an embodiment of a configuration of an ingress forwarder of a network processor according to the present invention; and
도 4a 및 도 4b는 본 발명에 따른 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법을 도시한 도면이다.4A and 4B illustrate a method of forwarding an IPv6 sender based multicast packet in a network processor according to the present invention.
본 발명은 네트워크 프로세서에 관한 것으로, 보다 상세하게는 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩할 수 있는 네트워크 프로세서 및 그 방법에 관한 것이다. The present invention relates to a network processor, and more particularly, to a network processor and a method for forwarding an IPv6 sender based multicast packet.
현재 대부분의 IP 멀티캐스트 응용(application)들은 다대다 전송을 지원하는 임의 송신자 기반 멀티캐스트(Any-Source Multicast) 모델에 기반하여 구현되어 있다. 그러나 현재의 임의 송신자 기반 멀티캐스트 모델은 확장성이나 보안 등에 문제가 있는 것으로 알려져 있다. 현재 민간 국제표준 기구인 IETF(Internet Engineering Task Force)에서는 이러한 임의 송신자 기반 멀티캐스트 모델의 단점을 해결하기 위하여 IPv6 송신자 기반 멀티캐스트 방법을 제안하여 표준화를 완료하였으나, 아직까지 고성능 패킷 처리가 가능한 네트워크 프로세서 기반의 IPv6 송신자 기반 멀티캐스트 패킷 전송을 위한 실증적인 방법은 개발되어 있지 않다.Currently, most IP multicast applications are based on the Any-Source Multicast model, which supports many-to-many transmission. However, the current random sender-based multicast model is known to have problems with scalability and security. Currently, the Internet Engineering Task Force (IETF), a private international standards organization, has completed the standardization by proposing an IPv6 sender-based multicast method to solve the shortcomings of the random sender-based multicast model. An empirical method for transport based on IPv6 sender based multicast packets has not been developed.
종래의 ASIC(Application-Specific Integrated Circuit) 기반의 시스템들은 하드웨어 기반으로 고성능을 제공하지만, 다양한 인터넷 서비스에 대한 요구를 신속하게 수용하지 못한다. 네트워크 프로세서는 빠른 개발 주기를 가지면서도 충분한 성능을 제공하므로 IPv6 시장과 같은 급변하는 시장에 유연성있게 대처할 수 있는 개발 환경을 제공한다.Conventional application-specific integrated circuit (ASIC) -based systems provide high performance on a hardware basis, but do not quickly accommodate the demands for various Internet services. The network processor has a rapid development cycle and provides sufficient performance, providing a development environment that can flexibly cope with rapidly changing markets such as the IPv6 market.
본 발명이 이루고자 하는 기술적 과제는, IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있는 네트워크 프로세서 및 그 방법을 제공하는 데 있다. An object of the present invention is to provide a network processor and a method for classifying IPv6 sender-based multicast packets and forwarding them at high speed.
상기의 기술적 과제를 달성하기 위한, IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 네트워크 프로세서의 일 실시예는, 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 인그레스 포워더; 및 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하고, 상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 이그레스 포워더;를 포함한다.In order to achieve the above technical problem, an embodiment of a network processor for forwarding an IPv6 sender based multicast packet may be configured to determine whether the packet is an IPv6 sender based multicast packet based on a destination address of the packet, and wherein the packet is an IPv6 An ingress forwarder for searching a multicast forwarding table using a source address and a destination address of the packet as a hash key if the sender is a multicast address; And an egress forwarder for searching an IPv6 multicast output port table to determine the number of output ports corresponding to the packet, and copying and transmitting the packet as many as the identified port number.
상기의 기술적 과제를 달성하기 위한, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법의 일 실시예는, (a) 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계; (b) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계; (c) 상기 포워딩 테이블의 검색이 성공하면, IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하는 단계; 및 (d)상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 단계;를 포함한다.In order to achieve the above technical problem, an embodiment of a method of forwarding an IPv6 sender based multicast packet in a network processor includes: (a) determining whether the packet is an IPv6 sender based multicast packet based on a destination address of the packet; step; (b) if the packet is an IPv6 sender based multicast address, searching for a multicast forwarding table using the source address and destination address of the packet as a hash key; (c) if the search of the forwarding table is successful, searching the IPv6 multicast output port table to determine the number of output ports corresponding to the packet; And (d) copying and transmitting the packet by the number of the identified ports.
이로써, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있다.As a result, the network processor can divide the IPv6 sender-based multicast packet and forward the packet at high speed.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 전송 기능을 갖는 네트워크 프로세서 및 그 방법에 대해 상세히 설명한다.In the following, with reference to the accompanying drawings will be described in detail with respect to a network processor having a IPv6 sender-based multicast packet transmission function and a method according to the present invention.
도 1은 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 전송 기능을 갖는 네트워크 프로세서의 패킷 포워딩 엔진부의 일 실시예의 구성을 도시한 도면이다.1 is a diagram illustrating a configuration of an embodiment of a packet forwarding engine unit of a network processor having an IPv6 sender based multicast packet transmission function according to the present invention.
도 1을 참조하면, 본 발명에 따른 네트워크 프로세서는 인그레스 포워더(Ingress Forwarder)(100) 및 이그레스 포워더(Egress Forwarder)(150)로 구성된다.Referring to FIG. 1, a network processor according to the present invention includes an
인그레스 포워더(100)는 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 패킷이 IPv6 송신자 기반 멀티캐스트용 주소이면 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성한 후 패킷을 이그레스 포워더(150)로 전달한다.The
이그레스 포워더(150)는 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 패킷에 해당하는 출력 포트의 수를 검색하고, 검색된 포트의 수 만큼 상기 패킷을 복사하여 패킷을 포워딩한다.The egress
구체적으로 살펴보면, 인그레스 포워더(100)는 패킷 분류부(102), 인그레스 멀티캐스트 포워더(Ingress Multicast Forwarder)(104), CSIX 프레임 생성부(108) 및 예외 패킷 처리부(106)를 포함한다.Specifically, the
패킷 분류부(102)는 망으로부터 패킷을 수신하면, 패킷이 IPv6 패킷인지 파악하여 IPv6 패킷이 아니면 패킷을 폐기한다. 그리고 수신한 패킷의 목적지 주소를 기초로 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악한다. 또한, 패킷 분류부(102)는 패킷이 IPv6 유니캐스트 패킷이면 IPv6 유니캐스트 포워딩 모듈(미도시)로 패킷을 전송하고, 패킷이 IPv6 멀티캐스트 패킷이면 다시 IPv6 송 신자 기반 멀티캐스트 패킷인지 파악한다. 패킷 분류부(102)는 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면 패킷을 인그레스 멀티캐스트 포워더(104)로 전달한다.Upon receiving a packet from the network, the
인그레스 멀티캐스트 포워더(104)는 전달받은 IPv6 송신자 기반 멀티캐스트 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성한 후 패킷을 CSIX 프레임 생성부(108)로 전달한다.The
CSIX 프레임 생성부(108)는 인그레스 멀티캐스트 포워더(104)로부터 전달받은 IPv6 송신자 기반 멀티캐스트 패킷을 CSIX 프레임으로 생성하여 상기 이그레스 포워더(150)로 전달한다.The CSIX
예외 패킷 처리부(106)는 인그레스 멀티캐스트 포워더(104)로부터 소정의 IPv6 링크 로컬 멀티캐스트 주소를 가지는 패킷을 전달받고, 전달받은 패킷에 대한 예외 처리를 수행한다. The exception
다음으로, 이그레스 포워더(150)에 대해 구체적으로 살펴보면, 이그레스 포워더(150)는 이그레스 멀티캐스트 포워더(Egress Multicast Forwarder)(152), 패킷 복제부(154) 및 패킷 전송부(156)를 포함한다.Next, the egress
이그레스 멀티캐스트 포워더(152)는 인그레스 멀티캐스트 포워더(104)로부터 전달받은 패킷의 출력 포트 수를 멀티캐스트 출력 포트 테이블을 검색하여 파악하고, 패킷 복제부(154)는 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장한다. 그리고 패킷 전송부(156)는 복제된 각각의 패킷에 대해 상기 멀티캐스트 출력 포트 테이블을 검색하여 해당하는 넥스트홉을 각각의 패킷에 설정하여 출력한 다.The egress
도 2는 본 발명에 따른 네트워크 프로세서의 이그레스 포워더의 구성의 일 실시예를 도시한 도면이고, 도 3은 본 발명에 따른 네트워크 프로세서의 인그레스 포워더의 구성의 일 실시예를 도시한 도면이다.2 is a view showing an embodiment of the configuration of the egress forwarder of the network processor according to the present invention, Figure 3 is a view showing an embodiment of the configuration of the ingress forwarder of the network processor according to the present invention.
도 2 및 도 3을 참조하면, 네트워크 프로세서의 이그레스 포워더 및 인그레스 포워더는 마이크로 블록 모듈과 코어 모듈로 크게 구분된다. 2 and 3, an egress forwarder and an ingress forwarder of a network processor are largely divided into a micro block module and a core module.
마이크로 블록 모듈은 제어 플레인에서 전달받은 멀티캐스트 트리 정보를 기반으로 해당 멀티캐스트 패킷의 전달 정보를 확인하고, 필요 시에 패킷 복제부(packet copier)(310)에 패킷 복제 명령을 전달하여 패킷을 복제하게 하고, 이들 복제된 패킷을 해당 멤버에게 전달하도록 하는 인그레스 멀티캐스트 포워더(215), 상기 인그레스 멀티캐스트 포워더(215)에 대응하여 이그레스 포워더에서 동작하는 이그레스 멀티캐스트 포워더(305), 인그레스 멀티캐스트 포워더(215)로부터 전달받은 패킷 복제 명령에 대해 요구되는 수 만큼의 패킷을 복제하는 패킷 복제부(310) 등을 포함한다. The micro block module checks the delivery information of the corresponding multicast packet based on the multicast tree information received from the control plane and, if necessary, sends a packet copy command to the
코어 모듈은 인그레스 포워더의 XScale 코어에서 동작하여 인그레스 멀티캐스트 포워더(215)를 위한 자원의 초기화 및 마이크로 블록 모듈로부터의 예외 패킷을 처리하는 인그레스 코어 컴포넌트(220), 이그레스 코어 컴포넌트(330) 등을 포함한다. The core module operates on the XScale core of the ingress forwarder and initializes resources for the
이하에서, 각각의 구성에 대해 구체적으로 살펴본다.Hereinafter, each configuration will be described in detail.
도 2를 참조하면, 인그레스 포워더는 Ether Rx 모듈(200), 분류부 (Decap/Classify)(205), IPv6 포워더(210), 인그레스 멀티캐스트 포워더(215), 인그레스 코어 컴포넌트(220), 스택 드라이버 코어 컴포넌트(225), 큐 관리부(235) 및 CSIX TX 모듈(240)로 구성된다.2, the ingress forwarder includes an Ether
도 2에서 사각형으로 표시된 모듈들은 본 발명에서 새롭게 구현된 것이고, 마름모형으로 표시된 모듈은 종래의 네트워크 프로세서 포워딩 엔진부에서 제공되는 모듈을 확장한 것이며, 타원형으로 표시된 모듈은 종래의 네트워크 프로세서 포워딩 엔진부에서 제공되는 모듈이다. 그리고 육각형으로 제공되는 외부 패킷 처리 프로세서(230)는 별도의 예외 패킷 처리 시스템이다.Modules indicated by squares in FIG. 2 are newly implemented in the present invention, and modules indicated by rhombuses extend modules provided by the conventional network processor forwarding engine unit, and modules indicated by ovals indicate the conventional network processor forwarding engine unit. This module is provided by. And the external
Ether Rx 모듈(200)은 망 인터페이스 장치를 통해 데이터 링크 계층의 패킷을 수신한다. 분류부(Decap/Classify)(205)는 Ether Rx 모듈(200)에 수신된 링크 계층 패킷의 타입(type) 값을 이용하여 패킷이 IPv6 패킷인지 구분한다. 분류부(205)는 수신된 패킷이 IPv6 패킷이 아니면 폐기한다. 일반적으로 IPv6 패킷의 경우 타입 값은 0x86DD 이다.The Ether
IPv6 포워더(210)는 분류부(205)로부터 전달받은 IPv6 패킷의 헤더에 대한 유효성 검사, IPv6 유니캐스트 포워딩 테이블 검색, IPv6 유니캐스트 패킷의 홉 리미트 값을 감소시키는 기능을 수행한다. The
구체적으로, IPv6 포워더(210)는 IPv6 패킷 헤더의 유효성 검사에서 패킷의 버전이나 길이의 오류가 있는 패킷, 소스 주소가 멀티캐스트 주소 또는 0, ::1인 패킷을 폐기한다. 또한, IPv6 포워더(210)는 패킷의 목적지 주소가 IPv6 링크 로컬 주소인 경우, 패킷에 Hop-by-Hop 옵션 헤더가 포함된 경우, IPv6 유니캐스트 포워 딩 테이블 검색이 실패한 경우에는 패킷을 인그레스 코어 컴포넌트(220)로 전달한다. 또한, IPv6 포워더(210)는 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소(즉, FF3x::/96, x는 16진수로 0~F 범위의 값)인 경우에는 패킷을 인그레스 멀티캐스트 포워더(215)로 전달한다.In detail, the
인그레스 멀티캐스트 포워더(215)는 전달받은 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인지 확인한다. 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인 경우에 인그레스 멀티캐스트 포워더(215)는 패킷의 소스 주소 및 목적지 주소를 해쉬키(Hash Key)로 사용하여 IPv6 멀티캐스트 포워딩 테이블을 검색한다. The
멀티캐스트 포워딩 테이블의 검색에 성공하면, 인그레스 멀티캐스트 포워더(215)는 포워딩 엔진 내부에서의 패킷 처리를 위해 패킷마다 생성되는 패킷 메타데이터의 헤더 타입을 IPv6_MULTICAST로 설정하고 next_hop_id를 검색된 멀티캐스트 포워딩 테이블의 엔트리의 인덱스(Multicast ID, MTID)로 설정하고, 패킷의 홉 리미트를 감소시킨 후 패킷을 큐 관리부(235)로 전달한다.Upon successful retrieval of the multicast forwarding table, the
인그레스 멀티캐스트 포워더(215)는 멀티캐스트 포워딩 테이블의 검색이 실패한 경우 패킷을 폐기한다. 또한, 인그레스 멀티캐스트 포워더(215)는 패킷의 목적지 주소가 IPv6 링크 로컬 멀티캐스트 주소 중 FF02::1, FF02::2, FF02::D, FF02::16 중 하나인 경우에는 패킷을 Xscale 코어 모듈의 인그레스 코어 컴포넌트(220)로 전달한다.The
인그레스 코어 컴포넌트(220)는 IPv6 패킷의 전송을 위한 IPv6 유니캐스트 포워딩 테이블 및 IPv6 멀티캐스트 포워딩 테이블을 생성 및 관리한다. 또한, 인그레스 코어 컴포넌트(220)는 인그레스 멀티캐스트 포워더(215)로부터 전달받은 패킷을 검사하여 패킷에 IPv6 Hop-by-Hop 옵션 헤더가 존재하는 경우, 패킷의 종류가 IPv6 멀티캐스트 패킷인 경우, 패킷의 목적지 주소가 링크 로컬 멀티캐스트 주소(FF02::1, FF02::2, FF02::D, FF02::16 중 어느 하나인 경우)인 경우에는 패킷을 스택 드라이버 코어 컴포넌트(225)로 전달한다.The
또한, 인그레스 코어 컴포넌트(220)는 패킷의 IPv6 MTU(Maximum Transmission Unit)검사가 실패하거나, 홉 제한 오류가 발생하거나, IPv6 유니캐스트 포워딩 테이블의 검색이 실패한 경우에는 ICMPv6(Internet Control Message Protocol for IPv6) 메시지를 전송한다. 또한, 인그레스 코어 컴포넌트(220)는 IPv6 멀티캐스트 포워딩 테이블의 검색이 실패한 경우 및 ICMPv6 리다이렉트 옵션이 설정된 경우 패킷을 폐기(drop)한다. Further, the
스택 드라이버 코어 컴포넌트(225)는 인그레스 코어 컴포넌트(220)로부터 전달받은 패킷의 처리를 담당하는 외부 패킷 처리 프로세서(230)에 패킷을 전달하는 기능 및 외부 패킷 처리 프로세서(230)에서 처리된 패킷을 큐 관리부(235)로 전달하는 기능을 담당한다.The stack
CSIX(Common Switch Interface) TX 모듈은(240) 큐 관리부(235)로부터 전달받은 패킷을 검사하여, 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인 경우에는 CSIX 멀티캐스트 프레임을 생성한다. CSIX 멀티캐스트 프레임은 베이스 헤더의 타입 필드의 값이 멀티캐스트 ID(0x03)로 설정되며, CSIX 멀티캐스트 확장헤더가 추가된 다. 생성된 CSIX 멀티캐스트 프레임은 패킷 포워딩 엔진부의 이그레스 포워더로 전달된다.The CSIX TX module examines the packet received from the
도 3을 참조하면, 본 발명에 따른 이그레스 포워더는 CSIX RX 모듈(300), 이그레스 멀티캐스트 포워더(305), 패킷 복제부(310), Ether Encap 모듈(315), 큐 관리부(320), Ether TX 모듈(325) 및 이그레스 코어 컴포넌트(330)로 구성된다.3, the egress forwarder according to the present invention includes a
CSIX RX 모듈(300)은 패킷 포워딩 엔진부의 인그레스 포워더로부터 전달받은 패킷이 멀티캐스트 패킷인 경우, 헤더 타입을 멀티캐스트로 설정하고, 이그레스 멀티캐스트 포워더(305)로 패킷을 전달한다. CSIX RX 모듈(300)은 패킷이 IPv6 유니캐스트 패킷이면 Ether Encap 모듈(315)로 패킷을 직접 전달한다.If the packet received from the ingress forwarder of the packet forwarding engine unit is a multicast packet, the
이그레스 멀티캐스트 포워더(305)는 IPv6 멀티캐스트 출력 포트 테이블(MOIT_Port_Table)을 검색하여 출력 포트의 수가 1개 이하인 경우에는 Ether Encap 모듈(315)로 패킷을 전달하고, 출력 포트의 수가 2개 이상인 경우에는 멀티캐스트 출력 인터페이스 테이블(MOIT_OIF_Table)을 검색하여 MTU 값과 홉 리미트 값을 검사하고, 패킷을 패킷 복제부(310)로 전달한다.The
패킷 복제부(Packet Copier)(310)는 현 패킷의 출력 포트로 지정된 각 포트에 대하여 Child 버퍼를 생성한 후, 출력할 멀티캐스트 패킷을 각각 복사하여 버퍼에 저장한다. 그리고 패킷 복제부(310)는 복제된 패킷들을 Ether Encap 모듈(315)로 전달한다. The
Ether Encap 모듈(315)은 포워딩 테이블 엔트리의 인덱스와 멀티캐스트 출력 인터페이스 테이블의 출력 인터페이스 번호를 이용하여 멀티캐스트 출력 포트 테이 블(MOIT_Port_Table)을 검색하여 실제 패킷을 전송할 네트워크 프로세서의 출력 포트 번호를 가져온다. Ether Encap 모듈(315)에서 출력 포트 번호가 검색된 패킷은 큐 관리부(320)를 거쳐 Ether Tx 모듈(325)로 전달된다. The
Ether Tx 모듈(325)은 링크 계층 테이블을 검색하여 링크 계층 헤더를 패킷에 추가한 후 패킷을 전송한다. 그리고 난 후 패킷 복제부(310)는 Child 버퍼를 비운다. The
도 4a 및 도 4b는 본 발명에 따른 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법을 도시한 도면이다.4A and 4B illustrate a method of forwarding an IPv6 sender based multicast packet in a network processor according to the present invention.
도 2 및 4a를 참조하면, Ether Rx 모듈(200)이 인그레스 포워더의 망 인터페이스 장치를 통해 패킷을 수신하면(S400), 분류부(205)는 링크 계층 패킷의 타입 값을 이용하여 IPv6 패킷인지 확인한다(S405). 2 and 4A, when the
IPv6 패킷이면 분류부(205)는 패킷을 IPv6 포워더(210)로 전달하고, IPv6 포워더(210)는 전달받은 IPv6 패킷의 헤더에 대한 유효성 검사를 실시하여(S410) 버전이나 헤더 체크섬 등에 오류가 있으면 패킷을 폐기한다(S440). If it is an IPv6 packet, the
그리고 IPv6 포워더(210)는 패킷의 목적지 주소를 확인하여 목적지 주소가 IPv6 멀티캐스트 주소인 경우에는 패킷을 인그레스 멀티캐스트 포워더(215)로 전달한다(S415). 목적지 주소가 IPv6 유니캐스트 영역인 패킷은 IPv6 유니캐스트 포워딩 모듈로 전달된다(S445).The
인그레스 멀티캐스트 포워더(215)는 전달받은 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인지 확인하고(S420), IPv6 송신자 기반 멀티캐스트 주 소인 경우에는 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 IPv6 멀티캐스트 포워딩 테이블을 검색한다(S425). The
멀티캐스트 포워딩 테이블 검색이 성공하면(S430), CSIX TX 모듈(240)은 패킷을 이그레스 포워더로 전달하기 위한 CSIX 멀티캐스트 프레임을 생성한 후 이그레스 포워더의 CSIX RX 모듈(300)로 전달한다(S435).If the multicast forwarding table search succeeds (S430), the
도 3 및 도 4b를 참조하면, 이그레스 포워더 내부의 CSIX RX 모듈(300)은 인그레스 포워더로부터 전달받은 패킷을 인그레스 멀티캐스트 포워더(305)로 전달한다(S450). 이그레스 멀티캐스트 포워더(305)는 IPv6 멀티캐스트 출력 포트 테이블을 검색한다(S455). 3 and 4B, the
검색된 해당 출력 포트의 수가 1개 이하인 경우에는(S460), 이그레스 멀티캐스트 포워더(305)는 패킷을 Parent 버퍼에 저장하여 Ether Encap 모듈(315)로 전달한다(S470). 출력 포트의 수가 2개 이상인 경우에는 이그레스 멀티캐스트 포워더(305)는 패킷을 패킷 복제부(310)로 전달하고, 패킷 복제부(310)는 출력 포트의 수 만큼 Child 버퍼를 생성한 후, Parent 버퍼에 저장된 패킷을 복제하여 각 Child 버퍼에 저장한 후 Ether Encap 모듈(315)로 전달한다(S465,S470).If the number of the corresponding output ports is one or less (S460), the
Ether Encap 모듈(315)은 멀티캐스트 출력 포트 테이블에서 넥스트 홉을 검색하여 패킷에 설정한 후(S475), 링크 계층 헤더를 추가하여 Child 버퍼의 개수 만큼 패킷을 반복하여 전송한다(S480,S485). The
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.
본 발명에 따르면, IPv6 망에서 네트워크 프로세서를 이용하여 IPv6 송신자 기반 멀티캐스트 서비스를 제공할 수 있다. 따라서, IPv6 망의 많은 수의 사용자들에게 IPv6 송신자 기반 멀티캐스트 서비스를 고속으로 제공할 수 있으며, 인터넷 방송과 같은 응용에 본 발명을 적용하여 망 자원의 효율적인 이용을 도모할 수 있다. According to the present invention, an IPv6 sender based multicast service can be provided using a network processor in an IPv6 network. Accordingly, IPv6 sender-based multicast service can be provided to a large number of users of IPv6 network at high speed, and the present invention can be applied to applications such as Internet broadcasting to efficiently use network resources.
Claims (11)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020050051089A KR100687745B1 (en) | 2005-06-14 | 2005-06-14 | IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020050051089A KR100687745B1 (en) | 2005-06-14 | 2005-06-14 | IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20060130417A KR20060130417A (en) | 2006-12-19 |
| KR100687745B1 true KR100687745B1 (en) | 2007-02-27 |
Family
ID=37810851
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020050051089A Expired - Fee Related KR100687745B1 (en) | 2005-06-14 | 2005-06-14 | IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR100687745B1 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100759819B1 (en) * | 2006-05-26 | 2007-09-18 | 한국전자통신연구원 | Apparatus and method for checking the extension header of IPv6 packet |
| KR101301188B1 (en) * | 2007-01-02 | 2013-08-29 | 삼성전자주식회사 | MOBILE IPv6 NETWORK SYSTEM AND PACKET FORWARD METHOD THEREOF |
| KR101363599B1 (en) * | 2007-02-16 | 2014-02-14 | 삼성전자주식회사 | APPARATUS AND METHOD FOR SUPPORTING IPv6 LINK-LOCAL ADDRESS IN DISTRIBUTED ARCHITECTURE ROUTING SYSTEM |
| CN105700859A (en) * | 2014-11-25 | 2016-06-22 | 中兴通讯股份有限公司 | Network-processor-based hardware table traversal method and apparatus |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001345845A (en) | 2000-05-30 | 2001-12-14 | Hitachi Ltd | Method and device for ipv4/ipv6 multicast communication |
| US20020181465A1 (en) | 2000-07-21 | 2002-12-05 | Hitachi, Ltd. | Multicast routing method and apparatus for routing multicast packet |
| KR20060035080A (en) * | 2004-10-21 | 2006-04-26 | 한국전자통신연구원 | IP6 Sender-based Multicast Data Transmission System in Linux Routers |
-
2005
- 2005-06-14 KR KR1020050051089A patent/KR100687745B1/en not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001345845A (en) | 2000-05-30 | 2001-12-14 | Hitachi Ltd | Method and device for ipv4/ipv6 multicast communication |
| US20020181465A1 (en) | 2000-07-21 | 2002-12-05 | Hitachi, Ltd. | Multicast routing method and apparatus for routing multicast packet |
| KR20060035080A (en) * | 2004-10-21 | 2006-04-26 | 한국전자통신연구원 | IP6 Sender-based Multicast Data Transmission System in Linux Routers |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20060130417A (en) | 2006-12-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3320670B1 (en) | Method and apparatus for pushing data in a content-centric networking (ccn) network | |
| US10445380B2 (en) | System and method for direct storage access in a content-centric network | |
| US8290934B2 (en) | Method and system for processing access control lists using a hashing scheme | |
| US9871781B2 (en) | Systems and methods for path maximum transmission unit discovery | |
| CN108768866B (en) | Cross-card forwarding method and device for multicast message, network equipment and readable storage medium | |
| US20160182680A1 (en) | Interest acknowledgements for information centric networking | |
| US10581741B2 (en) | Method and system for interest groups in a content centric network | |
| WO2018192587A1 (en) | Table lookup method and device, and computer storage medium | |
| CN103747083B (en) | A kind of content delivery method based on CCN | |
| CN108259347A (en) | A kind of message transmitting method and device | |
| US7200105B1 (en) | Systems and methods for point of ingress traceback of a network attack | |
| US10009266B2 (en) | Method and system for reference counted pending interest tables in a content centric network | |
| US9848059B2 (en) | Content handling method, apparatus, and system | |
| US10938721B2 (en) | Hash collision mitigation system | |
| KR20170064996A (en) | Explicit content deletion commands in a content centric network | |
| KR101384794B1 (en) | Message routing platform | |
| KR100687745B1 (en) | IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method | |
| US20070230469A1 (en) | Transmission apparatus | |
| CN115567436A (en) | Multicast packet processing method, system, computer equipment and readable storage medium | |
| CN114490781A (en) | Block chain data processing method and device | |
| US10051071B2 (en) | Method and system for collecting historical network information in a content centric network | |
| US7792129B2 (en) | Multi-queue packet processing using Patricia tree | |
| CN101442547A (en) | Method, system and equipment for processing message | |
| CN111083060B (en) | A method of network traffic control | |
| JP4597882B2 (en) | Packet search management apparatus and packet search management method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20100222 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20100222 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |