KR100637933B1 - Packet forwarding method and apparatus in subscriber access network access equipment - Google Patents
Packet forwarding method and apparatus in subscriber access network access equipment Download PDFInfo
- Publication number
- KR100637933B1 KR100637933B1 KR1020050093167A KR20050093167A KR100637933B1 KR 100637933 B1 KR100637933 B1 KR 100637933B1 KR 1020050093167 A KR1020050093167 A KR 1020050093167A KR 20050093167 A KR20050093167 A KR 20050093167A KR 100637933 B1 KR100637933 B1 KR 100637933B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- forwarding
- information
- subscriber
- metadata
- Prior art date
Links
Images
Classifications
-
- 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/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 가입자 액세스 망에서의 패킷 포워딩에 있어서 대용량의 데이터를 고속으로 처리할 수 있으며 가입자 간에 공평한 서비스를 제공할 수 있는 가입자 액세스 망에서의 패킷 포워딩 방법 및 장치에 관한 것으로서, 가입자 액세스 망으로부터 패킷을 수신하면, 상기 수신된 패킷의 IP 헤드를 추출한 후, 다중 엔진을 통해 상기 추출된 IP 헤드 정보를 이용하여, QoS 및 보안을 위한 프로파일 정보 획득, 포워딩 정보의 획득, 및 가상 큐 인덱스 획득을 병렬로 수행하여, 메타 데이터를 구성함으로써, 패킷 분류, 테이블 룩-업 등의 지연을 감소시키고, 그 결과 데이터 처리 성능을 향상시킨 것이다. The present invention relates to a method and apparatus for packet forwarding in a subscriber access network capable of processing a large amount of data at high speed in packet forwarding in a subscriber access network and providing a fair service among subscribers. When receiving the IP head of the received packet, and using the extracted IP head information through the multiple engine, parallel to the profile information acquisition for QoS and security, the acquisition of forwarding information, and the virtual queue index acquisition By configuring the metadata, the delay of packet classification, table look-up, and the like is reduced, thereby improving data processing performance.
Description
도 1은 가입자 액세스 망에서 패킷 포워딩을 수행하는 접속 장비의 일반적인 구성을 나타낸 블럭도이다.1 is a block diagram illustrating a general configuration of an access device that performs packet forwarding in a subscriber access network.
도 2는 패킷 포워딩을 위한 종래의 패킷 처리 절차를 나타낸 데이터 흐름도이다.2 is a data flow diagram illustrating a conventional packet processing procedure for packet forwarding.
도 3은 본 발명에 의한 패킷 포워딩 장치의 구성을 나타낸 기능 블록도이다.3 is a functional block diagram showing the configuration of a packet forwarding apparatus according to the present invention.
도 4는 본 발명에 의한 패킷 포워딩 방법에 있어서, 가입자측으로부터 수신된 패킷의 처리 절차를 보인 플로우챠트이다.4 is a flowchart showing a processing procedure of a packet received from a subscriber in the packet forwarding method according to the present invention.
도 5는 본 발명에 의한 패킷 포워딩 방법에 있어서, 가입자측으로 송신되는 패킷의 처리 절차를 보인 플로우챠트이다.5 is a flowchart illustrating a packet processing procedure transmitted to a subscriber side in the packet forwarding method according to the present invention.
도 6은 본 발명에 의한 패킷 포워딩 방법에 있어서, 큐잉 과정을 설명하는 모식도이다.6 is a schematic diagram illustrating a queuing process in the packet forwarding method according to the present invention.
*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
31: 수신 버퍼31: Receive Buffer
32: 헤드 추출부32: head extraction unit
33 ~ 35: 제1~제3 포워딩 엔진33 to 35: 1st to 3rd forwarding engine
36: 메타 데이터 저장부36: metadata storage
37: 송신 버퍼37: Send buffer
본 발명은 가입자와 연결된 가입자 액세스 망에서의 패킷 포워딩에 있어서 대용량의 데이터를 고속으로 처리할 수 있으며 가입자 간에 공평한 서비스를 제공할 수 있도록 한 가입자 액세스 망에서의 패킷 포워딩 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for packet forwarding in a subscriber access network capable of processing a large amount of data at high speed in packet forwarding in a subscriber access network connected to a subscriber and providing a fair service among subscribers.
다수의 가입자 단말을 코어망(예를 들어, 인터넷(internet)등)으로 연결하기 위한 가입자 액세스 망에는, 다수 가입자 단말의 송수신 패킷을 적절한 경로로 전달하기 위한 접속 장비가 구비되며, 이러한 접속 장비를 라우터(Router)라 한다.The subscriber access network for connecting a plurality of subscriber stations to a core network (for example, the Internet, etc.) is provided with access equipment for transmitting and receiving packets of the multiple subscriber stations through an appropriate path. This is called a router.
도 1은 상술한 라우터 시스템에 있어서 포워딩 처리를 위한 일반적인 구성을 나타낸 블록도로서, 하드웨어적인 구성은 크게 코어망 혹은 가입자측에 연결되어 패킷의 송수신 및 포워딩을 수행하는 다수의 라인 카드(10)와, 상기 다수의 라인 카드(10) 간의 데이터 교환을 수행하는 스위치 패브릭(13)과, 상기 다수 라인 카드(10)의 포워딩을 제어하는 마이크로프로세서(MPU)(14)로 이루어진다.FIG. 1 is a block diagram illustrating a general configuration for forwarding processing in the above-described router system. The hardware configuration includes a plurality of
상기 라인 카드(10)는 실제 패킷 포워딩을 수행하는 부분으로써, 패킷의 포워딩을 담당하는 네트워크 프로세서(11)와, 네트워크 및 가입자와의 접속을 담당하는 물리계층처리부(12)로 구성되며, 상기 네트워크 프로세서(11)에는 패킷 포워딩 처리를 위해 포워딩 엔진(PFE: Packet Forwarding Engine)(11a)이 구성되어 있으며, 상기 마이크로프로세서(14)에는 라우팅 기능과 장비의 OAM(Operation and Management) 기능을 수행하는 라우팅 엔진(15)이 구성된다.The
상기 라인 카드(10) 간의 데이터 교환은 스위치 패브릭(13)을 통해 이루어지며, 상기 포워딩 엔진(11)과 라우팅 엔진(15) 간의 제어 패킷은 내부 LAN(Local Area Network)을 통해 이루어진다.The data exchange between the
도 2는 상술한 라우터 시스템에 있어서, 종래의 포워딩 방법에 따라서 상기 라인카드(10)의 입력단과 출력단 사이에서 이루어지는 데이터 처리 절차를 보인 것이다.2 illustrates a data processing procedure performed between the input terminal and the output terminal of the
상기 라인 카드(10)에서 이루어지는 절차는 크게 네트워크와 연결되는 미디어장치로부터 패킷을 입력받아 스위치 패브릭(13)으로 출력하는 입력(ingress) 데이터 처리와, 스위치 패브릭(13)으로부터 입력받아 네트워크로 패킷을 출력하는 출력(egress) 데이터 처리로 구분할 수 있다.The procedure of the
상기 입력 데이터 처리절차는 다음과 같이 이루어진다. 미디어 장치(도시생략)로부터 패킷을 수신하면(S211), 데이터 프레임으로 조립을 한 후(S212), QoS 정보를 획득하기 위해 상기 패킷의 헤드로부터 6-투플(tuple)을 추출하여 이에 따라 서 패킷을 분류한다(S213). 이때 패킷의 플로우별로 패킷 전송률과 데이터의 크기에 따라 분류하여, 각 분류된 패킷의 컬러를 green, yellow, red로 표시한다.The input data processing procedure is performed as follows. When receiving a packet from a media device (not shown) (S211), after assembling into a data frame (S212), 6-tuples are extracted from the head of the packet to obtain QoS information, and thus the packet To classify (S213). At this time, each packet flow is classified according to the packet transmission rate and data size, and the color of each classified packet is displayed as green, yellow, and red.
다음으로, 수신한 패킷에 대한 미터링 및 통계 정보를 수집하여 통계 정보를 처리한 후(S214), 수신 패킷의 착신측 주소에 따라서 패킷 포워딩 정보를 룩-업한다(S215).Next, after the metering and statistical information on the received packet is collected and the statistical information is processed (S214), the packet forwarding information is looked up according to the destination address of the received packet (S215).
이어서, 패킷의 폭주를 방지하기 위하여 패킷을 미리 폐기하는 RED(Random Early Discard)/WRED (Weighted RED)를 수행한 후(S216), 큐 스케줄링 및 큐 관리를 통하여 상기 수신된 패킷을 소정 순서로 스위치 패브릭(13)에 연결된 출력 포트로 송신한다(S217,S218). 이때 스위치 인터페이스가 CSIX(Common Switch Interface)이므로, 상기 패킷은 고정된 크기의 셀 단위인 "C-frame" 포맷으로 전달된다.Subsequently, after performing RED (Random Early Discard) / WRED (Weighted RED) to discard the packet in advance in order to prevent the congestion of the packet (S216), the received packet is switched in a predetermined order through queue scheduling and queue management. Transmission to the output port connected to the fabric 13 (S217, S218). At this time, since the switch interface is CSIX (Common Switch Interface), the packet is delivered in a "C-frame" format, which is a cell unit of fixed size.
다음으로, 출력 데이터 처리 과정은 다음과 같다.Next, the output data processing process is as follows.
스위치 패브릭(13)으로부터 패킷이 입력되면(S221), 상기 패킷에 대하여 상술한 입력 데이터 처리에서와 마찬가지로 미터링 과정과 통계 정보를 수집한 후 RED/WRED에 의한 폭주 제어 과정을 수행한다(S222~S223).When a packet is input from the switch fabric 13 (S221), the metering process and statistical information are collected in the same manner as in the input data processing described above with respect to the packet, and then the congestion control process by RED / WRED is performed (S222 to S223). ).
그리고 상기 폭주 제어 과정에서 폐기되지 않은 패킷은 L2(Layer 2) 헤드 정보를 갱신 및 부가하여 캡슐화한 후(S224), 스케줄링 및 큐 관리를 통해 소정 순서로 미디어 장치로 송신한다(S225,S226).The packet not discarded in the congestion control process is encapsulated by updating and adding L2 (Layer 2) head information (S224), and then transmitting the packet to the media device in a predetermined order through scheduling and queue management (S225, S226).
상술한 입력/출력 데이터 처리에 있어서, 스케줄링시 보통, 포트 간에는 WRR (Weighted Round Robin), 큐 간에는 DRR (Deficit Round Robin) 알고리즘을 적용한 다. 또한, 상기 통계 정보 처리는 플로우 단위로 송수신한 패킷의 수와 바이트의 수를 계산하고, 포트 및 인터페이스 단위로 전송한 패킷의 수, 바이트의 수, 그리고, 패킷 도착 간격 시간을 수집한다.In the above-described input / output data processing, a WRR (Weighted Round Robin) algorithm is generally used between ports and a DRR (Deficit Round Robin) algorithm is used between queues. The statistical information processing calculates the number of packets transmitted and received in units of flows and the number of bytes, and collects the number of packets transmitted in units of ports and interfaces, the number of bytes, and the packet arrival interval time.
상술한 바와 같이, 종래의 포워딩 절차는, 수신된 패킷의 IP 헤드를 추출하여 패킷을 분류해서 QoS 프로파일 정보를 알아낸 다음, 다시 수신된 패킷의 IP 헤드에서 목적지 주소를 추출한 후 이를 이용한 룩-업을 통하여 포워딩 정보를 알아내는 식으로, 순차적인 흐름으로 데이터를 처리하였다.As described above, the conventional forwarding procedure extracts the IP head of the received packet, classifies the packet to find QoS profile information, and then extracts a destination address from the IP head of the received packet and then looks up using the same. In this way, the forwarding information was found out, and the data was processed in a sequential flow.
그렇기 때문에, 패킷의 헤드를 추출하는 과정이 중복 수행되었으며, 또한 패킷 분류 후에 포워딩을 위한 룩-업을 수행하기 때문에 패킷 처리의 지연 시간이 증가하였다.Therefore, the process of extracting the head of the packet is repeatedly performed, and the delay time of packet processing is increased because the look-up for forwarding is performed after packet classification.
또한, 종래에는 패킷 송신을 위한 큐 관리에 있어서, 패킷이 수신되는 순서로 큐잉하는 방식을 사용하였기 때문에, 망의 폭주시에 많은 트래픽을 사용하는 가입자와 적은 트래픽을 사용하는 가입자에 관계없이 모두 같은 양의 패킷 손실이 나타난다. 따라서, 가입자 간에 공평한 데이터 트래픽을 제공할 수 없었다.In addition, in the conventional queue management for packet transmission, since a method of queuing the packets in the order in which they are received is used, both subscribers that use a lot of traffic and subscribers that use less traffic during network congestion are the same. Positive packet loss is seen. Therefore, it was not possible to provide fair data traffic between subscribers.
본 발명은 상술한 종래의 문제점을 해결하기 위하여 제안된 것으로서, 그 목적은 가입자 액세스 망에서의 패킷 포워딩에 있어서 대용량의 데이터를 고속으로 처리할 수 있으며 가입자 간에 공평한 서비스를 제공할 수 있도록 한 가입자 액세 스 망에서의 패킷 포워딩 방법 및 장치를 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been proposed to solve the above-mentioned conventional problems, and an object thereof is to provide a service that is capable of processing a large amount of data at high speed in packet forwarding in a subscriber access network and providing a fair service among subscribers. It is to provide a packet forwarding method and apparatus in a network.
상술한 목적을 달성하기 위한 구성수단으로서, 본 발명은 외부 네트워크와 연결되어 패킷의 송수신 및 포워딩 처리를 수행하는 다수의 라인 카드와, 상기 다수 라인 카드 간에 패킷을 전달하는 스위치 패브릭을 포함하는 가입자 액세스망 접속 장비에서의 패킷 포워딩 방법에 있어서, 외부 네트워크로부터 패킷을 수신하면, 상기 수신된 패킷의 IP 헤드를 추출하는 단계; 다중 엔진을 통해 상기 추출된 IP 헤드 정보를 이용하여, QoS 및 보안을 위한 프로파일 정보 획득, 포워딩 정보의 획득, 및 가상 큐 인덱스 획득을 병렬로 수행하는 단계; 상기 획득한 QoS 프로파일 정보, 포워딩 정보, 및 가상 큐 인덱스 정보로 해당 패킷을 설명하는 메타 데이터를 설정하는 단계; 및 상기 설정된 메타 데이터를 참조하여, 수신된 패킷의 큐잉 및 스케줄링을 수행하여 스위치 패브릭으로 전달하는 단계를 포함함을 특징으로 하는 한다.As a means for achieving the above object, the present invention provides a subscriber access including a plurality of line cards connected to an external network to perform transmission and reception of packets, and a switch fabric for transferring packets between the plurality of line cards. A packet forwarding method in a network access device, the method comprising: extracting an IP head of the received packet when receiving a packet from an external network; Using the extracted IP head information through multiple engines, acquiring profile information for QoS and security, obtaining forwarding information, and obtaining a virtual queue index in parallel; Setting metadata describing the packet with the obtained QoS profile information, forwarding information, and virtual queue index information; And performing queuing and scheduling of the received packet with reference to the set metadata, and delivering the received packet to the switch fabric.
또한, 상기 목적을 달성하기 위한 다른 구성수단으로서, 본 발명은, 수신된 패킷을 저장하는 수신 버퍼; 상기 수신 버퍼에 저장된 패킷의 IP 헤드를 추출하는 헤드 추출부; 각각 QoS 및 보안을 위한 패킷 분류, 포워딩 정보 획득, 패킷 큐잉 정보 획득을 담당하여 상기 헤드 추출부로부터 수신 패킷의 헤드 정보가 전달되면, 각각 상기 헤드정보를 이용하여 해당 패킷에 대한 분류, 포워딩 정보 및 큐잉 정보를 획득하여 해당 패킷의 메타 데이터에 설정하는 제1~제3 포워딩 엔진; 패킷별 메 타 데이터를 저장하는 메타 데이터 저장부; 상기 제1~제3 포워딩 엔진에서 처리된 패킷을 송신하기 전까지 저장하는 송신 버퍼; 및 상기 메타 데이터 저장부에 저장된 메타 데이터의 스케줄링 정보를 참조하여, 송신 버퍼에 저장된 패킷 간의 송신 순서를 결정하여 송신시키는 스케줄러를 포함하는 것을 특징으로 한다.In addition, as another configuration means for achieving the above object, the present invention, a receiving buffer for storing the received packet; A head extracting unit extracting an IP head of a packet stored in the receiving buffer; When the head information of the received packet is transmitted from the head extractor to obtain packet classification, forwarding information acquisition, and packet queuing information for QoS and security, respectively, classification, forwarding information, and First to third forwarding engines which acquire queuing information and set the metadata of the corresponding packet; Meta data storage unit for storing the packet-specific metadata; A transmission buffer for storing the packets processed by the first to third forwarding engines before transmission; And a scheduler for determining and transmitting a transmission order between packets stored in a transmission buffer by referring to scheduling information of metadata stored in the metadata storage unit.
도 3은 본 발명에 의한 패킷 포워딩 장치를 나타낸 기능 블럭도로서, 이는 도 1에 보인 라우터 시스템에 있어서 네트워크 프로세서(11) 내에 적용된다.3 is a functional block diagram showing a packet forwarding apparatus according to the present invention, which is applied in the
도 3을 참조하면, 본 발명에 의한 패킷 포워딩 장치는, 미디어 장치로부터 입력된 패킷을 수신하는 수신 버퍼(31)와, 상기 수신 버퍼(31)에서 헤드를 추출하는 헤드 추출부(32)와, 각각 QoS 및 보안을 위한 패킷 분류, 포워딩 정보 획득, 패킷 큐잉 정보 획득을 담당하여 상기 헤드 추출부(32)로부터 소정 패킷의 헤드 정보가 전달되면, 해당 패킷에 대한 분류, 포워딩 정보 및 큐잉 정보를 동시에 획득하여 해당 패킷의 메타 데이터를 구성하는 제1~제3 포워딩 엔진(33~35)과, 상기 제1~제3 포워딩 엔진(33~35)에 의해 획득된 정보로 구성된 패킷별 메타 데이터 자료구조체를 저장하는 메타 데이터 저장부(36)와, 상기 제1~제3 포워딩 엔진(33~34)에서 데이터 처리된 패킷을 스위치 패브릭(13)으로 출력하기 전까지 저장하는 송신 버퍼(37)와, 상기 메타 데이터 저장부(36)에 구성된 메타 데이터를 이용하여 상기 송신 버퍼(37)에 저장된 패킷의 송신 순서를 결정하는 스케줄러(38)를 포함한다.Referring to FIG. 3, the packet forwarding apparatus according to the present invention includes a receiving
상술한 구성의 패킷 포워딩 장치는, 다중 엔진을 이용하여, 패킷의 헤드를 한번만 추출하여, 패킷의 분류, 포워딩 정보 획득을 위한 룩-업, 큐잉 정보 획득을 동시에 수행함으로써, 헤드의 중복 추출 및 패킷 포워딩 처리의 지연을 방지한 것으로서, 그 상세 작용은 다음과 같다.The packet forwarding apparatus having the above-described configuration extracts the head of a packet only once using multiple engines, simultaneously performs classification of the packet, look-up for acquiring forwarding information, and acquiring queuing information. As a delay of the forwarding process is prevented, the detailed action is as follows.
미디어 장치를 통해 외부 네트워크(또는 가입자망)에서 수신된 패킷이 도 1의 네트워크 프로세서(10)로 입력되면, 상기 패킷은 포워딩을 위한 데이터 처리가 완료되기까지 상기 수신 버퍼(31)에 순서대로 저장되고, 헤드 추출부(32)는 상기 수신 버퍼(31)에 저장된 수신 패킷의 헤드에서 필요 정보를 추출하는데, 이때, 수신 패킷의 IP 헤드중 6-투플(tuple)을 추출하여 복수의 포워딩 엔진, 즉, 제1~제3 포워딩 엔진(33~35)으로 전달한다.When a packet received from an external network (or subscriber network) through a media device is input to the
상기 헤드 추출부(32)에서 추출되는 6-투플에는 근원지 IP 주소, 목적지 IP 주소, 근원지 포트, 목적지 포트, 프로토콜, DSCP(Differentiated Service Code Point)가 해당된다.The six-tuple extracted by the
제1 포워딩 엔진(33)은 상기와 같이 추출된 6-투플로 해시 키를 계산하고, 상기 계산된 해시키를 이용하여 QoS 프로파일 테이블을 검색하여, 완전 매칭되는 엔트리의 QoS 프로파일 정보를 획득하며, 완전 매칭되는 엔트리가 없는 경우에는 라우팅 시스템에서 설정된 디폴트 QoS 프로파일 정보를 획득하며, 제2 포워딩 엔진(34)은 상기와 같이 추출된 6-투플 중에서 목적지 IP 주소를 이용하여 포워딩 테이블을 룩업하여 포워딩 정보를 획득하며, 제3 포워딩 엔진(33)은 상기 추출된 6-투플 중에서 근원지 IP 주소를 이용하여 가입자별로 가상 큐 번호를 획득한다.The
상기에서, QoS 프로파일 테이블과 포워딩 테이블은 상기 라우팅 프로세서 (15)에서 구성되어, 다수의 네트워크 프로세서(11)로 제공되어, 네트워크 프로세서(11)내에 저장된 것이다.In the above, the QoS profile table and the forwarding table are configured in the
상기 제1~제3 포워딩 엔진(33~35)는 각각 QoS 프로파일 정보, 포워딩 정보, 가상 큐 번호가 획득되면, 이를 메타 데이터 저장부(36)에 저장하여, 해당 패킷을 설명하는 메타 데이타를 구성한다.When the first to
이때, 상기 제1~제3 포워딩 엔진(33~35)은 메타 데이터 저장부(36)라는 동일한 메모리에 정보를 설정해야 하므로, 제1~제3 포워딩 엔진(33~35) 간에 동기화가 필요하다. 이를 위한 가장 기본적인 방법은, 제1~제3 포워딩 엔진(33~35)의 복잡도에 따라서 메타 데이터 저장부(36)에 접근하는 순서를 가상 큐 번호 획득을 담당하는 제3 포워딩 엔진(35), QoS 프로파일 정보 획득을 담당하는 제1 포워딩 엔진(33), 포워딩 정보 획득을 담당하는 제2 포워딩 엔진(34) 순으로 정하는 것이다. In this case, since the first to
더하여, 상기 제1~제3 포워딩 엔진(33~35) 간에 정보를 전달할 수 있는 레지스터를 두고, 메타 데이터를 구성했는 지의 여부를 0 또는 1로 표시하도록 하고, 상기 제1~제3 포워딩 엔진(33~35)이 각각 우선 접근 순위를 갖는 포워딩 엔진에 대한 플래그가 1로 될 경우에만 메타 데이타에 접근하도록 하며, 이 경우, 제1~제3 포워딩 엔진(33~35)에 대한 세 플래그가 모두 1로 된 경우, 메타 데이타의 구축이 완료된 것으로 판단할 수 있다.In addition, a register for transferring information between the first to
상기와 같이 제1~제3 포워딩 엔진(33~35)에 의하여 메타 데이타의 구성이 완료되면, 해당 수신된 패킷은 송신 버퍼(37)에 저장되고, 이후 스케줄러(38)를 통해 설정된 스위치 패브릭 포트로 출력된다. 상기 스케줄러(38)는 메타 데이터 저장부(36)에 저장된 메타 데이터를 통해 해당 패킷의 스케줄링 정보를 참조하여, 각 패킷별 우선 순위에 따라서 순차적으로 스위치 패브릭(13)으로 출력한다.When the configuration of the meta data is completed by the first to
다음의 표 1은 라우터 시스템의 네트워크 프로세서(11)에서 패킷이 입력되어 출력될 때까지, 해당 패킷의 정보를 설명하기 위해 구성된 상술한 메타 데이터(meta data)의 자료 구조를 나타낸 것이다. 메타 데이터는 일반적으로 32비트 사이즈의 8개의 워드(LW : Long Word)로 구성되어, 패킷의 버퍼, 크기에 대한 정보, 포워딩 정보, QoS 프로파일 정보 등을 갖는다.Table 1 below shows the data structure of the above-described metadata configured to describe the information of the packet until the packet is input and output from the
상술한 구조의 메타 데이터에 있어서, 포워딩 정보에는, output_port, next_hop_id, fabric_port 가 해당되며 이는 상기 포워딩 룩업을 담당하는 제2 포워딩 엔진(34)에 의해서 획득된다. 이때 상기 next_hop_id는 패킷이 네트워크 프로세서의 출력단에서 망으로 전송될 때 다음 전송위치를 알기 위해 패킷에 필요한 정보로서, 이더넷 헤드와 같은 L2 정보 테이블의 인덱스이고, fabric_port는 해당 패킷이 전송되고자 하는 스위치 패브릭(13)의 포트 번호이다.In the metadata of the above-described structure, forwarding information corresponds to output_port, next_hop_id, and fabric_port, which are obtained by the
그리고 QoS 프로파일 정보에는, flow_id와, class_id와, color_id가 해당되며, 이는 QoS 프로파일 정보 획득을 담당하는 제1 포워딩 엔진(33)에 의해서 획득된다. 이때 flow_id는 해당 패킷의 플로우 구분자로 트래픽의 대역(bandwidth)을 나타내며, class_id는 패킷 스케줄링시의 우선순위(priority)를 나타내고, color_id는 폭주 제어시에 패킷의 폐기에 대한 우선순위를 나타내는 인자이다.The QoS profile information corresponds to flow_id, class_id, and color_id, which are obtained by the
그리고 큐잉 및 스케줄링 정보에는, queue_id와, class_id가 해당되며, 이때 queue_id는 가입자 단위로 가상 큐를 설정하기 위한 큐 구분자를 나타내고, class_id는 패킷 스케줄링의 등급을 나타낸다. 여기서, class_id는 상기 제1 포워딩 엔진(33)에 의해서 획득되며, 나머지 queue_id는 가상 큐 번호 설정을 담당하는 제3 포워딩 엔진(35)에 의해서 획득된다. The queue_id and the class_id correspond to the queuing and scheduling information. In this case, the queue_id represents a queue identifier for setting a virtual queue on a subscriber basis, and the class_id represents a class of packet scheduling. Here, class_id is obtained by the
본 발명이 적용될 경우, 도 1의 네트워크 프로세서(11)는 제1~제3 포워딩 엔진(33~35)의 동시 동작을 통해서 상술한 구조의 메타 데이터를 설정하며, 이와 같이 설정된 정보를 이용하여 패킷의 포워딩을 수행하게 된다. 상술한 바에 의하면, 패킷의 IP 헤드의 중복 추출이 제거되며, QoS 프로파일 테이블 및 포워딩 테이블의 룩업이 동시에 수행됨으로써, 포워딩 절차의 시간 지연을 상당히 감소시킬 수 있다.When the present invention is applied, the
도 4는 본 발명에 의한 패킷 포워딩 방법을 나타낸 플로우챠트로서, 이는 네트워크 프로세서(11)에서 입력 데이터 처리 과정에 해당된다.4 is a flowchart illustrating a packet forwarding method according to the present invention, which corresponds to an input data processing process in the
도 4를 참조하면, 본 발명이 적용되는 경우 도 1에 보인 라우터 시스템의 네트워크 프로세서(11)는 미디어 장치를 통해 외부에서 패킷이 수신되면(S300), 수신된 패킷의 IP 헤드 중에 6-투플을 추출한다(S310).Referring to FIG. 4, when the present invention is applied, when the
그리고, 다중 엔진을 통해, 상기 추출된 6-투플을 이용한 QoS 프로파일 테이블의 룩업 및 정보의 획득, 포워딩 테이블의 룩업 및 정보 획득, 그리고 가상 큐 번호(queue id)의 획득을 동시에 수행한다(S320, S330, S340).Then, through the multiple engines, the lookup and information acquisition of the QoS profile table using the extracted 6-tuple, the lookup and information acquisition of the forwarding table, and the acquisition of the virtual queue number (queue id) are performed simultaneously (S320, S330, S340).
상기 중에서 QoS 프로파일 정보 획득 과정(S320)은, 상기 추출된 6 투플을 해시 계산하여 해시 키를 얻은 후(S321), 상기 계산된 해시 키로 QoS 프로파일 테이블을 검색하여 완전 매칭(exact matching)되는 프로파일 정보를 찾는다(S322). 상기 검색 결과, 완전 매칭되는 QoS 프로파일이 존재하면, 해당 QoS 프로파일 정보(flow_id, class_id, color_id)를 획득하여 메타 데이터에 설정하고, 완전 매칭되는 QoS 프로파일이 존재하지 않으면, 디폴트 QoS 프로파일 정보로 설정된 값을 메타 데이터에 설정한다.(S323~S325).In the process of obtaining the QoS profile information (S320), after hashing the extracted 6 tuples to obtain a hash key (S321), profile information that is completely matched by searching the QoS profile table with the calculated hash key Find (S322). As a result of the search, if there is a perfectly matched QoS profile, the corresponding QoS profile information (flow_id, class_id, color_id) is obtained and set in the metadata, and if the completely matched QoS profile does not exist, the value set as default QoS profile information Is set in the metadata (S323 to S325).
상기 중에서 포워딩 테이블의 룩업 과정(S330)은, 상기 추출된 6-투플 중에서 목적지 IP 주소를 얻어, LPM(Longest Prefix Match) 방식으로 포워딩 테이블을 검색한다(S332). 상기 검색결과, 포워딩 테이블 내에 매칭되는 엔트리가 존재하면, 해당 엔트리에서 넥스트홉 정보(next_hop_id, output_port, fabric_port)를 획득하여 메타 데이타내에 설정한다(S333,S334). 반대로, 포워딩 테이블 내에 매칭되는 엔트리가 존재하지 않으면, 해당 예외 상황에 대한 인터럽트를 라우팅 프로세서(15)로 보내거나, 수신된 패킷을 폐기시킨다(S335).In the lookup process of the forwarding table (S330), the destination IP address is obtained from the extracted 6-tuple, and the forwarding table is searched by a longest prefix match (LPM) method (S332). As a result of the search, if there is a matching entry in the forwarding table, the next hop information (next_hop_id, output_port, fabric_port) is obtained from the entry and set in the metadata (S333, S334). On the contrary, if there is no matching entry in the forwarding table, an interrupt for the corresponding exceptional situation is sent to the
상기 중에서, 가상 큐 번호 획득 과정(S340), 상기 추출된 6-투플 중에서 근원지 IP 주소를 얻어(S341), 상기 근원지 주소에 해당하는 가입자에게 설정된 가상 큐 번호를 검색하고(S342), 상기 검색에 의해 가입자별로 설정된 가상 큐 번호(queue_id)를 획득하여 메타 데이터에 설정한다(S343). 현재의 메타데이타 구조는 상기 표 1에 나타낸 바와 같이 가상 큐 번호(queue_id)를 위해 14 비트의 가상 큐 인덱스를 사용한다. 따라서, 대략 16000 개의 가입자를 구분할 수 있다. 그러나, 상기 라우팅 시스템에서 수용하는 가입자의 수가 더 늘어날 경우, 상기 메타 데이타의 구조를 확장해야 한다.In the above, the virtual queue number acquisition process (S340), the source IP address is obtained from the extracted 6-tuple (S341), the virtual queue number set to the subscriber corresponding to the source address (S342), and the search The virtual queue number queue_id set for each subscriber is obtained and set in the metadata (S343). The current metadata structure uses a 14-bit virtual queue index for the virtual queue number (queue_id) as shown in Table 1 above. Thus, approximately 16000 subscribers can be distinguished. However, if the number of subscribers to be accommodated in the routing system increases, the structure of the metadata should be extended.
이때, 다중 엔진간의 동기화를 위하여 메타 데이터 자료 구조에 대한 접근 순서를 일정하게 설정하는 것이 바람직하며, 본 실시예에서는 상기 과정(S320,S330,S340)을 수행하는 엔진별 복잡도에 따라서 메타 데이터 자료 구조에 대한 접근 순서를 가상 큐 번호 설정, QoS 프로파일 정보 설정, 넥스트 홉 정보 설정 순으로 정한다.In this case, it is preferable to set the order of access to the metadata data structure in order to synchronize the multiple engines, and in the present embodiment, the metadata data structure according to the complexity of each engine performing the process (S320, S330, S340). The order of access is determined in order of virtual queue number setting, QoS profile information setting, and next hop information setting.
상술한 과정(S320,S330,S340)에 의해서, 수신된 패킷의 정보를 나타내는 메타 데이터의 구축이 완료되면(S350), 미터링(metering)을 통해 해당 패킷의 트래픽 대역폭(메타 데이터의 flow_id로부터 확인가능함)이 가용한 대역인지를 검사하고(S360), 상기 검사결과 가용한 대역내에 포함되는 경우, 스케줄링을 통해 해당 패킷을 스위치 패브릭(13)의 출력 포트로 패킷을 전달한다(S380). 상기에서 스케줄링은 메타 데이터내의 스케줄링 정보(class_id)에 따른 우선순위를 판단하여, 우선 순위가 높은 순으로 출력시킨다.By the above-described processes (S320, S330, S340), when the construction of the metadata indicating the information of the received packet is completed (S350), it is possible to check the traffic bandwidth (measurement from the flow_id of the meta data) through the metering. Check whether the band is available (S360), and if the check result is included in the available band, the packet is delivered to the output port of the
더하여, 본 발명은 라우터 시스템에서의 패킷 포워딩을 수행하는데 있어서, 가입자별 공평성을 확보하기 위하여, 패킷의 수신되는 순서대로 큐잉하는 종래 방식과는 달리, 가입자별로 가상 큐를 할당하여, 가입자 간에 공평한 데이터 트래픽을 제공할 수 있도록 한다. 가상 큐 할당은 라인카드(10)의 입력단(ingress) 데이터 처리 및 출력단(egress) 데이터 처리 모두의 큐잉 단계에 적용될 수 있다.In addition, the present invention, in order to ensure fairness for each subscriber in performing packet forwarding in the router system, unlike the conventional method of queuing packets in order of receiving the packets, assigning a virtual queue for each subscriber so that the data is fair among the subscribers. To provide traffic. The virtual queue assignment can be applied to the queuing step of both the ingress data processing and the egress data processing of the
도 5는 본 발명에 의하여 가입자별로 가상 큐를 할당하기 위한 포워딩 절차를 나타낸 플로우챠트로서, 여기서는 스위칭 패브릭(13)으로부터 입력된 데이터를 미디어 장치를 통해 가입자 측으로 전달하는 출력 데이터 처리를 예로 든다. 도 6은 도 5의 플로우챠트에 보인 가상 큐 할당과정의 처리를 그림으로 나타낸 것이다. FIG. 5 is a flowchart showing a forwarding procedure for allocating virtual queues for each subscriber according to the present invention, and exemplifies output data processing for transferring data input from the switching
도 5를 참조하면, 상기 네트워크 프로세서(11)는 스위치 패브릭(13)으로부터 C-frame 포맷의 패킷을 수신하고(S510), 해당 패킷의 메타 데이타로부터 상기 도 4의 가상 큐 번호 획득 과정(S340)을 통해 가입자별로 구분되어 설정된 가상 큐 번호(queue_id)를 얻어, 가입자 단위로 가상 큐를 할당한다(S520). 이와 같이 가입자별로 가상 큐를 할당함으로써 가입자별 버퍼 수는 동일하게 설정된다.Referring to FIG. 5, the
그리고, 가입자 별로 할당된 가상 큐내에서 품질 서비스와 일반 서비스를 구분하여 가중치를 설정한다(S530).Then, the weight is set by dividing the quality service and the general service in the virtual queue allocated to each subscriber (S530).
도 6을 예로 들면, 가입자 1과 가입자 2는 품질 서비스(QoS 서비스)와 일반 서비스 2개에 등록한 가입자이고, 가입자 n은 품질 서비스는 등록하지 않고 일반 서비스에만 등록한 가입자이다. 여기서, 품질 서비스는 IP 방송, VoD, 화상전화, VoIP 등의 대역, 지연변이, 손실율 등에 민감한 영향을 받는 품질이 보장되어야 하는 서비스이고, 일반 서비스는 P2P등과 같이 대역, 지연, 손실등에 민감한 영향을 받지 않는 일반 인터넷 서비스를 말한다. 상기 도 6의 실시 예에서는, 품질 서비스에 대하여 일반 서비스의 5배의 가중치를 할당하여, 일반 서비스보다 우선적으로 서비스되도록 한다.6, for example, subscribers 1 and 2 are subscribers who have registered quality service (QoS service) and two general services, and subscriber n is a subscriber who has only registered quality service without registering quality service. Here, quality service is a service that must be guaranteed quality sensitive to the band, delay variation, loss rate, etc. of IP broadcasting, VoD, video call, VoIP, etc., and general service is sensitive to band, delay, loss, etc. like P2P. It does not receive general Internet service. In the embodiment of FIG. 6, a weight of five times the general service is assigned to the quality service, so that the service is given priority over the general service.
즉, 상술한 바에 의하면, 가입자마다 가상 큐를 할당하여 버퍼의 수를 동일하게 설정함으로써, 가입자간의 공평성을 유지하면서, 일반 서비스보다 품질 서비스를 우선적으로 처리할 수 있도록 한다. 이때, 일반 서비스는 망의 자원이 허용하는 범위에서 최선(BE : best-effort) 전송 방식으로 서비스한다.That is, according to the above, by allocating virtual queues for each subscriber and setting the same number of buffers, quality services can be preferentially processed over general services while maintaining fairness among subscribers. At this time, the general service serves as a best-effort (BE) transmission method within a range allowed by network resources.
상기와 같이, 큐잉을 수행한 후, 스케줄링을 수행하여 우선순위가 높은 패킷을 송신한다(S540,S550)As described above, after performing queuing, scheduling is performed to transmit a packet having a high priority (S540 and S550).
이때, 스케줄링 방식은 종래와 마찬가지로 가입자 간에 공평성을 최대로 보장하면서, 구현도 용이한 WRR(Weight Round Robin)과 DRR(Deficit Round Robin) 알고리즘을 적용할 수 있다.At this time, the scheduling scheme can be applied to the WRR (Weight Round Robin) and DRR (Deficit Round Robin) algorithm that can be easily implemented, while ensuring maximum fairness among subscribers.
이러한 가입자별 가상 큐 할당 및 서비스별 가중치 적용은 미디어 장치에서 입력되어 스위치 패브릭으로 출력되는 패킷에 대해서도, 상기 도 4의 방법에 의해 구성된 메타 데이터의 플로우 식별자(flow_id) 및 클래스 식별자(class_id)에 따라서 동일한 방법으로 적용할 수 있다.Such subscriber-specific virtual queue allocation and service-specific weighting are applied to packets input from the media device and output to the switch fabric according to the flow identifier (flow_id) and the class identifier (class_id) of the metadata configured by the method of FIG. The same can be applied.
상술한 바와 같이, 본 발명은 가입자 액세스 망의 QoS를 보장하는 포워딩을 수행하는데 있어서, 패킷의 IP 헤드를 한 번만 추출하고, 다중 엔진을 이용하여 QoS 프로파일 정보 획득, 포워딩 정보 획득, 가상 큐 번호 회득을 병렬로 처리함으로써 데이터 처리 성능을 향상시켜 고속 데이터 처리가 가능해지는 우수한 효과가 있다.As described above, the present invention, in performing the forwarding to guarantee the QoS of the subscriber access network, extracts the IP head of the packet only once, obtains QoS profile information, obtains the forwarding information, and obtains the virtual queue number using multiple engines. By processing the data in parallel, there is an excellent effect of improving data processing performance and enabling high-speed data processing.
또한, 가입자 주소를 이용한 가입자별 가상 큐 설정을 통해 가입자 단위로 가상 큐를 할당하여 망에서 가입자 간의 큐 선점에 대한 공평성을 제공할 수 있으며, 이를 통해 가입자 단위의 패킷에 대한 통계 데이터를 수집하거나 가입자가 사용하는 서비스를 분석 및 파악할 수 있다.In addition, by setting a virtual queue for each subscriber using a subscriber address, a virtual queue can be allocated to each subscriber to provide fairness for queue preemption between subscribers in the network. Analyze and understand the services used by
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050093167A KR100637933B1 (en) | 2005-10-04 | 2005-10-04 | Packet forwarding method and apparatus in subscriber access network access equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050093167A KR100637933B1 (en) | 2005-10-04 | 2005-10-04 | Packet forwarding method and apparatus in subscriber access network access equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100637933B1 true KR100637933B1 (en) | 2006-10-24 |
Family
ID=37621806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050093167A KR100637933B1 (en) | 2005-10-04 | 2005-10-04 | Packet forwarding method and apparatus in subscriber access network access equipment |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100637933B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101544592B1 (en) | 2013-12-10 | 2015-08-17 | 한국전기연구원 | Dynamic Queue Allocation Scheme Method and Apparatus for High Availability Distributed Embedded Network Transmission |
CN107332787A (en) * | 2017-06-29 | 2017-11-07 | 北京奇艺世纪科技有限公司 | A kind of message distributing method and device |
-
2005
- 2005-10-04 KR KR1020050093167A patent/KR100637933B1/en not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101544592B1 (en) | 2013-12-10 | 2015-08-17 | 한국전기연구원 | Dynamic Queue Allocation Scheme Method and Apparatus for High Availability Distributed Embedded Network Transmission |
CN107332787A (en) * | 2017-06-29 | 2017-11-07 | 北京奇艺世纪科技有限公司 | A kind of message distributing method and device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8064344B2 (en) | Flow-based queuing of network traffic | |
JP3789395B2 (en) | Packet processing device | |
US8229705B1 (en) | Performance monitoring in computer networks | |
EP2180644B1 (en) | Flow consistent dynamic load balancing | |
US8139576B2 (en) | Network routing apparatus | |
US6990106B2 (en) | Classification and tagging rules for switching nodes | |
EP1670187B1 (en) | Tagging rules for hybrid ports | |
EP1158728A2 (en) | Packet processor with multi-level policing logic | |
JP3788803B2 (en) | L2 switch | |
US9590910B1 (en) | Methods and apparatus for handling multicast packets in an audio video bridging (AVB) network | |
US20090292575A1 (en) | Coalescence of Disparate Quality of Service Matrics Via Programmable Mechanism | |
US8451730B2 (en) | Apparatus and method for implementing multiple high speed switching fabrics in an ethernet ring topology | |
US20020089929A1 (en) | Packet processor with multi-level policing logic | |
US20130003554A1 (en) | Flow-based rate limiting | |
US20110019572A1 (en) | Method and apparatus for shared shaping | |
EP1694006B1 (en) | Multi-part parsing in a network device | |
EP1345363A2 (en) | Scalable packet filter for a network device | |
JP2002044139A (en) | Router and priority control method used for it | |
EP1417795B1 (en) | Switching node with classification-dependent mac buffer control | |
CN100579059C (en) | Parallel Data Link Layer Controller in Network Switching Devices | |
EP1241843A2 (en) | Multi-contract rate policing | |
US8218440B2 (en) | High speed transmission protocol | |
US20230155947A1 (en) | Method for identifying flow, and apparatus | |
CN1638385A (en) | Parallel data link layer controllers in a network switching device | |
KR100637933B1 (en) | Packet forwarding method and apparatus in subscriber access network access equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20051004 |
|
PA0201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20060831 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20061017 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20061018 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20091001 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20101001 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20111007 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20121011 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20121011 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130923 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20130923 Start annual number: 8 End annual number: 8 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20150909 |