[go: up one dir, main page]

KR100489685B1 - 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법 - Google Patents

패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법 Download PDF

Info

Publication number
KR100489685B1
KR100489685B1 KR10-2003-0010824A KR20030010824A KR100489685B1 KR 100489685 B1 KR100489685 B1 KR 100489685B1 KR 20030010824 A KR20030010824 A KR 20030010824A KR 100489685 B1 KR100489685 B1 KR 100489685B1
Authority
KR
South Korea
Prior art keywords
packet
input
network processor
controller
header
Prior art date
Application number
KR10-2003-0010824A
Other languages
English (en)
Other versions
KR20040075381A (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 KR10-2003-0010824A priority Critical patent/KR100489685B1/ko
Priority to US10/778,363 priority patent/US8208482B2/en
Publication of KR20040075381A publication Critical patent/KR20040075381A/ko
Application granted granted Critical
Publication of KR100489685B1 publication Critical patent/KR100489685B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

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

Abstract

본 발명은 네트워크 프로세서와 일반적인 데이터 링크 계층 패킷 처리를 담당하고 있는 패킷 제어기 사이의 패킷 송수신 장치와 그 방법에 관한 것으로서, 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치에 있어서, 입력 인터페이스로부터 입력 패킷을 수신하는 상기 패킷 제어기; 상기 패킷 제어기를 통해 수신된 상기 입력 패킷을 저장하여, 상기 네트워크 프로세서의 요청에 의해 상기 입력 패킷을 전달하는 패킷 버퍼; 상기 패킷 제어기로부터 상기 네트워크 프로세서로, 상기 패킷 버퍼에 저장된 상기 입력 패킷에 대한 정보를 전달하기 위한 패킷 큐; 및 상기 패킷 큐를 통해 전달된 상기 입력 패킷에 대한 정보를 이용해, 상기 패킷 버퍼로부터 패킷을 전달받아 출력 인터페이스로 전달하기 위한 상기 네트워크 프로세서로 이루어져, 서로 다른 데이터 링크 계층간 패킷 송수신이 발생할 때 입/출력 패킷 헤더가 변경됨으로 인한 패킷헤더 이동/복사 및 패킷 정렬(alignment) 관련 처리를 제거함으로써 패킷 전송에 있어서의 성능을 향상시키는 효과가 있다.

Description

패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치와 그 방법 {Apparatus for transmitting packet between packet controller and network processor and method thereof}
본 발명은 패킷 송수신 방법에 관한 것으로, 특히 네트워크 프로세서와 일반적인 데이터 링크 계층 패킷 처리를 담당하고 있는 패킷 제어기 사이의 패킷 송수신 장치와 그 방법에 관한 것이다.
인터넷 트래픽의 폭발적인 증가로 인해 높은 대역폭, 고속 패킷처리에 대한 요구뿐만 아니라, MPLS(MultiProtocol Label Switching), MPLS(Multiprotocol Label Switching) VPN(Virtual Private Network), IP(Internet Protocol) VPN, QoS(Quality of Service) 등의 다양한 서비스에 대한 수요가 증가함에 따라 종래의 호스트 프로세서 또는 패킷 전용 주문형 반도체(ASIC : Application Specific Integrated Circuit)로는 시장 출시까지의 기간(time-to-market)이 짧은 장점을 보여 주지 못했다.
따라서, 네트워크 프로세서가 등장했으며 패킷을 고속으로 처리하며 다양한 서비스를 수용하기 위한 프로그램이 가능한(programmability) 장점을 갖춰 시장의 요구에 맞는 제품(1G/2.5G/10G 등)이 계속 출시되고 있는 상황이다.
이러한 네트워크 프로세서의 외부 인터페이스를 보면 일반적으로 업스트림(upstream)으로 스위치 패브릭과 인터페이스하며, 다운스트림(downstream)으로 데이터 링크 계층과 연결된 구조를 갖고 있다. 여기서, 데이터 링크 계층(Layer 2)은 주로 해당 데이터 링크 프로토콜 패킷을 처리하는 패킷 제어기를 통해서 호스트 프로세서로 전달한다. 최근 호스트 프로세서가 네트워크 프로세서로 대체하고 있다. 본 발명은 바로 네트워크 프로세서와 패킷 제어기 사이의 패킷 전송 방법에 관한 것이다.
일반적으로 패킷 제어기는 "계층(Layer)2" 처리를, 네트워크 프로세서는 "계층 2"에서 "계층 7"까지의 패킷을 핸들링할 수 있다. 통신 시스템에서 패킷 제어기와 네트워크 프로세서간의 패킷 처리가 빈번히 발생하고, 또한 서로 다른 데이터 링크 계층 간 패킷 송수신도 발생하는 데 이를 위해서는 패킷 변환 작업이 필요하다. 특히, 멀티 서비스(multi-service)(ATM, Ethernet, POS 등)를 지원하는 통신 시스템의 경우는 이와 같은 패킷 변환 작업이 필수적이다.
도 1은 종래의 기술에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치에 관한 구성도이다. 도 1을 참조하면, 종래의 패킷 전송 장치는 패킷 제어기(11), 제 1 패킷 버퍼(12), 네트워크 프로세서(13) 및 제 2 패킷 버퍼(14)를 포함한다. 특히, 네트워크 프로세서(13)는 제어 패킷 처리부(131)와 데이터 패킷 처리부(132)로 이루어진다.
그 동작을 살펴보면, 패킷 제어기(11)로 "계층 2"의 패킷이 입력된다. 입력된 패킷은 패킷 제어기(11)의 영역에 속한 제 1 패킷 버퍼(12)에 저장된다.
그리고, 네트워크 프로세서(13)로의 전송을 위해, 패킷 제어기(11)는 인터럽트 신호를 네트워크 프로세서(13)의 제어 패킷 처리부(131)로 전달하여 제 1 패킷 버퍼(12)에 저장된 입력 패킷을 제 2 패킷 버퍼(14)로 복사한다. 그리고, 제 2 패킷 버퍼(14)에 복사된 입력 패킷은 네트워크 프로세서(13)의 데이터 패킷 처리부(132)에 의해 패킷 변환을 하여 출력된다.
이 경우, 네트워크 프로세서(13)와 패킷 제어기(11) 사이의 패킷 처리에 있어서, 각각 자신이 관리하는 메모리 영역(즉, 제 1 패킷 버퍼와 제2 패킷 버퍼)으로 패킷 전체를 복사하여 처리함으로써 성능 저하가 발생하는 문제점이 있다.
또한, 서로 다른 데이터 링크 계층간(예컨대, ATM -> Ethernet) 패킷 송수신할 때 패킷 헤더가 상이함에 따른 처리 오버헤드(overhead)가 발생하는 문제점이 있다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 네트워크 프로세서와 일반적인 데이터 링크 계층 패킷 처리를 담당하고 있는 패킷 제어기 사이의 패킷 송수신 장치와 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 패킷 제어기에서 받은 패킷정보(패킷주소, 크기, 입력포트 등)를 네트워크 프로세서에게 통지하여 이에 대한 처리를 함으로써 전체 패킷을 복사하는 부담을 줄여 성능을 향상시키는데 그 목적이 있다.
또한, 본 발명은 서로 다른 데이터 링크 계층으로 패킷을 전달할 경우 패킷 헤더가 상이함으로 발생하는 문제를 해결하는데 그 목적이 있다.
이러한 목적을 달성하기 위한 본 발명에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치는 입력 인터페이스로부터 입력 패킷을 수신하는 상기 패킷 제어기; 상기 패킷 제어기를 통해 수신된 상기 입력 패킷을 저장하여, 상기 네트워크 프로세서의 요청에 의해 상기 입력 패킷을 전달하는 패킷 버퍼; 상기 패킷 제어기로부터 상기 네트워크 프로세서로, 상기 패킷 버퍼에 저장된 상기 입력 패킷에 대한 정보를 전달하기 위한 패킷 큐; 및 상기 패킷 큐를 통해 전달된 상기 입력 패킷에 대한 정보를 이용해, 상기 패킷 버퍼로부터 패킷을 전달받아 출력 인터페이스로 전달하기 위한 상기 네트워크 프로세서로 이루어지는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 본 발명에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법은 외부의 입력 인터페이스로부터 상기 패킷 제어기를 통해 패킷을 입력받아 저장하는 제 1 단계; 상기 저장된 패킷에 대한 정보를 큐잉하여 상기 네트워크 프로세서로 전달하는 제 2 단계; 상기 네트워크 프로세서가, 상기 제 2 단계에서 전달된 정보로부터 저장된 패킷을 수신하는 제 3 단계; 및 상기 네트워크 프로세서가, 상기 수신한 패킷에 대한 인터페이스 변경 과정을 수행하여 출력 인터페이스로 전달하는 제 4 단계를 포함하여 이루어지는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
도 2는 본 발명의 일실시예에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치에 관한 구성도이다. 도 2를 참조하면, 본 발명에 따른 패킷 전송 장치는 패킷 제어기(21), 패킷 버퍼(22), 네트워크 프로세서(23) 및 패킷 큐(Packet Queue)(24)를 포함한다. 특히, 네트워크 프로세서(23)는 데이터 패킷 처리부(231)를 더 포함한다.
패킷 제어기(21)는 입력 인터페이스로부터 패킷을 읽어 패킷 버퍼(22)에 적재하는 역할을 담당하며, 네트워크 프로세서(23)는 제어 패킷을 처리하는 제어 패킷 처리부와 데이터 패킷을 처리하는 데이터 패킷 처리부(231)로 나뉘는데 본 발명에 있어서는 데이터 패킷 처리부(231)만이 사용된다.
또한, 네트워크 프로세서(23)의 외부 인터페이스는 패킷 처리를 위해 패킷 버퍼(22)와 패킷 제어기(21)와의 통신을 위해 패킷 큐(24)가 존재한다.
도 2 에 도시된 실시예에 따라 본 발명의 동작을 설명한다. 본 발명의 실시예에서 입력단은 이더넷(Ethernet) 인터페이스, 출력단은 POS(Packet over SONET)이다. 그리고, 네트워크 프로세서(23)내 데이터 처리부(231)는 IPv4(Internet Protocol version 4) 패킷 룩업 및 포워딩 기능을 수행한다.
물론, 본 발명에 적용되는 입/출력단 인터페이스는 어떤 데이터 링크 계층도 수용 가능하다. 통상 주로 사용되는 데이터 링크 계층은 ATM, Frame Relay, Ethernet, POS(Packet over SONET), EOS(Ethernet over SONET), RPR(Resilient Packet Ring) 등이다.
도 3 은 본 발명의 일실시예에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 송수신 방법에 관한 흐름도이다.
우선, 도 2 및 도 3 에 도시된 바에 따라, 본 발명에 따른 동작을 설명하면, 우선 패킷 제어기(21)는 데이터 링크 계층의 PDU(Protocol Data Unit)을 수신하여 패킷을 입력받는다(S301). 즉, 본 발명의 실시예에서 Ethernet MAC(Media Access Control) 프레임(패킷)을 수신한다. 입력 패킷에 대해 패킷 제어기(21)는 에러 및 흐름 제어 등의 데이터 링크 계층 관련 동작을 수행한다. 따라서, 본 발명의 실시예에서 패킷 제어기(21)는 이더넷 제어기(ethernet controller)에 해당한다.
그리고, 패킷 제어기(21)는 입력받은 패킷을 패킷버퍼(22)에 저장한다(S302). 여기서, 패킷버퍼(22)는 유지 및 관리의 편리성 때문에 일정한 크기로 분할하여 관리하며, 저장되는 입력 패킷은 이더넷 헤더(ethernet header)와 이더넷 페이로드(ethernet payload)로 구성된다.
그리고, 패킷 제어기(21)와 네트워크 프로세서(23)의 데이터 패킷 처리부(231) 사이에 입력 패킷 정보를 큐잉한다(S303).
좀 더 상세히 S303의 과정을 살펴보면, 패킷 제어기(21)는 입력 패킷 정보를 패킷 큐(24)에 인큐잉(enqueuing)한다(S303). 여기서, 인큐잉하는 입력 패킷 정보로는 입력 포트, 패킷버퍼 주소, 패킷 크기 등을 포함한다. 또한, 본 발명에 적용되는 패킷 큐(24)는 구형 선입 선출(Circular FIFO) 큐 방식으로 동작하며, 따라서 헤드(head), 테일(tail) 포인터로 유지 관리한다.
즉, 테일 포인터가 지정하고 있는 엔트리에 입력 패킷 정보를 인큐잉한다. 이때, 해당 엔트리가 비어있는지(empty) 채워져 있는지(fill)를 확인해야 한다. 비어있는 경우, 해당 엔트리에 삽입하고 해당 엔트리가 채워졌음을 표시(marking)한다.
그리고, 네트워크 프로세서(23) 내의 데이터 패킷 처리부(231)에서 패킷 큐(24)로부터 입력 패킷 정보를 디큐잉(dequeuing)한다.
즉, 데이터 패킷 처리부(231)에서 패킷 큐(24)의 헤드 포인터를 읽어 해당 엔트리의 패킷 정보를 가져온다. 이때, 디큐잉한 후 해당 엔트리를 비어있음으로 표시한다.
그리고, 데이터 패킷 처리부(231)는 입력받은 패킷 정보를 이용하여 해당 패킷에 관련된 동작을 수행한다(S304 내지 S307).
즉, 패킷 정보가 포함하고 있는 입력 패킷의 패킷 버퍼(22)내 위치로부터 패킷을 수신한다(S304).
그리고, 해당 패킷의 헤더 관련 처리를 수행한다. 일반적으로 패킷의 헤더 관련 동작을 수행하는 데 있어서, 입력된 패킷의 프로토콜과 출력하고자 하는 프로토콜의 차이에 따른 해당 패킷의 처리가 중요한데, 그를 위해 본 발명에서는 입력과 출력간의 패킷이 동일한 인터페이스간의 전송인지를 확인한다(S305). 동일한 인터페이스인 경우, 헤더에 대한 변환 없이 패킷을 출력하고(S307), 본 발명의 실시예와 같이 입력 인터페이스는 이더넷(Ethernet)이고 출력 인터페이스는 POS인 경우 이에 대한 패킷의 처리 과정을 거친다(S306).
즉, 본 발명의 실시예를 통해서 S306의 패킷 처리 과정을 살펴보면, 입력 패킷의 이더넷 헤더(Ethernet header) 중 목적지(destination) MAC으로부터 브로드캐스팅(broadcasting)/멀티캐스팅(multicasting)/유니캐스팅(unicating) 처리, 소스(source) MAC으로부터 ARP(Address Resolution Protocol) 학습(learning) 수행, 이더넷 패킷 타입(ethernet packet type)으로부터 패킷 타입에 따른 처리를 각각 수행한다. 그리고, 데이터 패킷 처리부(231)는 해당 패킷을 패킷의 내부 자료구조(도 4a, 도 4b)와 패킷 버퍼(22)내 세부구조(도 4c)를 참조하여 IPv4 룩업을 수행한다. 그 결과 POS 인터페이스로 패킷 포워딩하기 위해 이더넷 헤더를 POS 헤더로 변환한다. 이 시점에서 패킷 헤더 크기가 다르므로 패킷의 시작점이 변경되는데, 이와 관련된 부분은 후술하는 도 4a 내지 도 4c에서 설명하기로 한다.
그리고, 데이터 패킷 처리부(231)의 입력 패킷에 대한 처리(S306)가 완료된 후 출력 포트로 패킷을 포워딩한다(S307).
이상의 패킷 전송 과정에서는 종래의 발명을 도시한 도 1의 패킷 전송 과정에서 패킷제어기(11)에서 네트워크 프로세서(13)내의 제어 패킷 처리부(131)로 인터럽트 발생 및 응답 처리 과정과, 패킷 제어기(11) 영역의 제 1 패킷 버퍼(12)에서 네트워크 프로세서(13) 영역의 제 2 패킷 버퍼(14)로의 복사 과정과, 제어 패킷 처리부(131)에서 데이터 패킷 처리부(132)로의 통지(notification) 과정이 필요치 않다.
한편, 네트워크 프로세서(23)내의 데이터 패킷 처리부(231)에서의 입력 패킷 처리 과정을 상세히 기술하기 위해 도 4a 내지 도 4c에서는 본 발명에 따른 패킷 처리를 위한 데이터 구조도를 도시한다.
우선 도 4a에 도시된 큐 기술자(Queue descriptor)는 패킷 버퍼(22) 내의 패킷 위치를 표시하는 패킷 기술자 인덱스(packet descriptor index) 필드와 패킷 크기 정보를 표시하는 패킷 길이 필드로 구성된다.
그리고, 도 4b에 도시된 패킷 기술자(packet descriptor)는 입력 패킷의 일부 정보를 기록한 저장소로서 데이터 패킷 처리부(231)에서 패킷 처리시 빈번히 접근하는 정보를 저장한다. 본 발명의 실시예에서는 이더넷 헤더(ethernet header)와 IP 헤더(header)를 기록한다. 도 4a에 도시된 큐 기술자(Queue descriptor) 내의 패킷 기술자 인덱스 필드는 본 패킷 기술자를 지시한다.
도 4c는 패킷 메모리를 도시하는데 본 발명의 실시예에서는 이더넷 MTU(maximum transmit unit)인 1518바이트(bytes)를 고려한 2K바이트의 고정된 크기의 패킷 버퍼로 구성된다. 또한, 각각의 패킷 버퍼는 일정 크기(128 바이트)의 패킷 헤더 확장 필드와 수신 패킷 부분(기본 헤더 필드와 실제 데이터인 페이로드로 구성)으로 구성된다.
특히, 본 발명에서 고려하는 입출력 패킷의 헤더 변환을 위해서, 도 4b에 도시된 "Start of Pkt Offset" 필드와 도 4c에 도시된 패킷 헤더 확장 필드를 이용한다.
본 발명의 실시예인 이더넷 입력과 POS 출력을 예로 들면, 입력 패킷에 대한 처리 즉, 이더넷 헤더 및 IP 헤더 내의 목적지 IP를 통한 IPv4 룩업한 결과 출력 인터페이스가 결정된다. 그에 따라 입력 패킷을 출력 인터페이스로 포워딩하기 전에 출력 인터페이스에 맞는 헤더로 변경해야 한다. 본 발명의 실시예에서 출력 인터페이스를 POS라고 했기 때문에 본 설명에서는 POS 프레임 내 PPP패킷을 생성해야 한다. 따라서, 입력 패킷은 이더넷 패킷이고 출력 패킷은 PPP패킷이기 때문에 해당 패킷의 헤더 크기가 틀리다. 따라서, 실제 출력 인터페이스를 통해 전송될 패킷의 실제 시작 위치의 변경이 불가피하다.
이 때문에 도 4b의 패킷 기술자 내에 패킷 헤더가 변경됨으로 인해 패킷의 시작 위치가 바뀌는 것에 대한 고려로 "start of Pkt offset"이란 필드를 두어 그 시작 위치를 표시함으로써 패킷 처리를 쉽게 핸들링한다.
도 4c의 "start of Pkt offset" 필드는 말그대로 패킷 시작 위치에 대한 변위값이 정의되는 필드로서, 입력되는 패킷중 데이터 부분은 변화가 없지만 헤더 부분은 인터페이스의 종류에 따라 그 크기가 달라지게 되므로, 실제로 패킷이 시작되는 위치는 달라진 인터페이스의 헤더 크기 만큼 달라지게 된다.
이하, 다양한 인터페이스 별로 헤더 내용과 그 크기를 예로 들어 "start of Pkt offset" 필드를 설명하기로 한다.
- Ethernet II (14바이트)
Destination_MAC(6바이트), Source_MAC(6바이트), Ethernet_Type(2바이트)
- IEEE 802.3 (20바이트)
Destination_MAC(6바이트), Source_MAC(6바이트), Length(2바이트), DSAP(1바이트), SSAP(1바이트), Control(1바이트), SNAP(5바이트)
- IEEE 802.1q (18바이트)
Destination_MAC(6바이트), Source_MAC(6바이트), VLAN_Tag(4바이트),
Ethernet_Type(2바이트)
- HDLC POS(4바이트)
Address(1바이트), Control(1바이트), Protocol(2바이트)
- RPR(18바이트)
RPR_Header(2바이트), Destination_MAC(6바이트), Source_MAC(6바이트)
Protocol_Type(2바이트), Header_Checksum(2바이트)
- MPLS(4바이트)
Label(20비트), Exp(3비트), Bos(1비트), TTL(8비트)
상기와 같이 인터페이스 별로 그 헤더의 크기들이 다르므로, 입력 패킷이 네트워크 프로세서에서 패킷 처리한 후 출력되는 패킷의 인터페이스가 입력 인터페이스와 다른 경우 패킷의 시작 위치는 달라지게 되므로 "start of Pkt offset"에 달라지게 되는 변위에 대한 값을 기록함으로써 쉽게 패킷의 위치를 찾을 수 있다.
가령, 입력 인터페이스가 Ethernet II(14바이트)이고, 출력 인터페이스가 HDLC POS(4바이트)인 경우, 출력 인터페이스의 헤더 부분이 10바이트 적으므로 "start of Pkt offset"에 10바이트를 기록함으로써, 도 4c에 도시된 패킷 확장 필드 128바이트에 10바이트를 더한 결과값인 138바이트에서 패킷이 시작하게 된다.
반대로, 입력 인터페이스가 Ethernet II(14바이트)이고, 출력 인터페이스가 IEEE 802.3(20바이트)인 경우, 출력 인터페이스의 헤더 부분이 6바이트 많으므로 "start of Pkt offset"에 -6바이트를 기록함으로써, 도 4c에 도시된 패킷 확장 필드 128바이트에 6바이트를 감산한 결과값인 122바이트에서 패킷이 시작하게 된다.
한편, 상기의 예들은 IPv4 망을 예로 든것으로서, IPv4망에서 IPv6망으로 터널링 되는 경우는 IPv4의 패킷 헤더 크기가 20바이트라면, IPv6에서는 40바이트가 되므로 "start of Pkt offset" 필드에 -20바이트를 기록해주므로써 128바이트에 2바이트를 감산한 결과값인, 108바이트에서 패킷이 시작하게 된다.
이때 "start of Pkt offset"에 기록되는 바이트 크기는 출력 인터페이스 종류를 고려한 바이트 크기가 합산 또는 감산되어 기록될 것이다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상 본 발명의 바람직한 실시예에 대해 상세히 기술되었지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
상기와 같은 본 발명은, 패킷 제어기와 네트워크 프로세서 사이의 패킷 처리 시 복사(copy)가 발생하지 않고, 또한 서로 다른 데이터 링크 계층간 패킷 송수신이 발생할 때 입/출력 패킷 헤더가 변경됨으로 인한 패킷헤더 이동/복사 및 패킷 정렬(alignment) 관련 처리를 제거함으로써 패킷 전송에 있어서의 성능을 향상시키는 효과가 있다.
또한, 본 발명은, 입/출력 인터페이스의 변경에 따른 패킷 헤더의 변경을 위한 offset 필드를 두어 패킷 헤더 변경이 용이한 효과가 있다.
도 1은 종래의 기술에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치에 관한 구성도,
도 2는 본 발명의 일실시예에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치에 관한 구성도,
도 3 은 본 발명의 일실시예에 따른 패킷 제어기와 네트워크 프로세서간의 패킷 송수신 방법에 관한 흐름도,
도 4a 내지 도 4c 는 본 발명에 따른 패킷 처리를 위한 데이터 구조도.
<도면의 주요 부분에 대한 부호 설명>
21 : 패킷 제어기 22 : 패킷 버퍼
23 : 네트워크 프로세서 231 : 데이터 패킷 처리부
24 : 큐

Claims (14)

  1. 입력 인터페이스로부터 입력 패킷을 수신하는 패킷 제어기;
    상기 패킷 제어기를 통해 수신된 상기 입력 패킷을 저장하여, 네트워크 프로세서의 요청에 의해 상기 입력 패킷을 전달하는 패킷 버퍼;
    상기 패킷 제어기로부터 상기 네트워크 프로세서로, 상기 패킷 버퍼에 저장된 상기 입력 패킷에 대한 정보를 전달하기 위한 패킷 큐; 및
    상기 패킷 큐를 통해 전달된 상기 입력 패킷에 대한 정보를 이용해, 상기 패킷 버퍼로부터 패킷을 전달받아 출력 인터페이스로 전달하기 위한 상기 네트워크 프로세서를 포함하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  2. 제 1 항에 있어서, 상기 패킷 큐는,
    구형 선입선출(Circular First In First Out) 타입인 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  3. 제 1 항에 있어서, 상기 패킷 버퍼는,
    하나의 입력 패킷을 저장함에 있어서, 패킷 헤더 확장 필드를 더 포함하여 저장하도록 함을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  4. 제 1 항 또는 제 3 항에 있어서, 상기 입력 패킷에 대한 정보는,
    상기 패킷 버퍼 내의 패킷 위치를 표시하는 패킷 기술자 인덱스(packet descriptor index) 필드와 패킷 크기 정보를 표시하는 패킷 길이 필드로 구성된 정보인 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  5. 제 4 항에 있어서, 상기 패킷 기술자 인덱스 필드가 표시하는 패킷 기술자(packet descriptor)는,
    상기 입력 패킷의 일부 정보를 기록한 상기 패킷 버퍼의 저장소로서, 상기 네트워크 프로세서에서 패킷 처리시 빈번히 접근하는 정보를 저장하는 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  6. 제 5 항에 있어서, 상기 패킷 기술자(packet descriptor)는,
    상기 입력 인터페이스와 상기 출력 인터페이스의 차이에 따른 헤더 변경을 고려한 "Startofpktoffset" 필드를 포함하여, 입출력 인터페이스간의 헤더 변경시의 헤더의 크기 변화에 따라 바뀌는 시작 위치에 대한 변위값을 표시하도록 하는 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  7. 제 6 항에 있어서, 상기 "Startofpktoffset"필드에 기록되는 변위값은.
    IPv4 망에서 IPv6망으로 터널링되는 경우, IPv4의 헤더(20바이트)와 IPv6의 헤더(40바이트) 크기의 차이인 20바이트 만큼을 합산하여 기록되는 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 장치.
  8. 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법에 있어서,
    외부의 입력 인터페이스로부터 상기 패킷 제어기를 통해 패킷을 입력받아 저장하는 제 1 단계;
    상기 저장된 패킷에 대한 정보를 큐잉하여 상기 네트워크 프로세서로 전달하는 제 2 단계;
    상기 네트워크 프로세서가, 상기 제 2 단계에서 전달된 정보로부터 저장된 패킷을 수신하는 제 3 단계; 및
    상기 네트워크 프로세서가, 상기 수신한 패킷에 대한 인터페이스 변경 과정을 수행하여 출력 인터페이스로 전달하는 제 4 단계를 포함하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
  9. 제 8 항에 있어서, 제 4 단계는,
    상기 네트워크 프로세서가, 상기 수신한 패킷의 인터페이스와 출력하고자하는 출력 인터페이스간의 동일 여부를 확인하는 제 5 단계;
    상기 제 5 단계의 확인 결과, 상기 입출력 인터페이스가 동일하면 해당 패킷을 출력하는 제 6 단계; 및
    상기 제 5 단계의 확인 결과, 상기 입출력 인터페이스가 동일하지 않으면, 상기 패킷의 헤더를 출력 인터페이스에 맞도록 변경하여 출력하는 제 7 단계를 포함하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
  10. 제 8 항에 있어서, 상기 제 1 단계의 패킷을 저장하는데 있어서,
    패킷 헤더 확장 필드를 더 포함하여 저장하도록 함을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
  11. 제 8 항 내지 제 10 항 중 어느 한 항에 있어서, 상기 제 2 단계의 저장된 패킷에 대한 정보는,
    상기 패킷이 저장된 위치를 표시하는 패킷 기술자 인덱스(packet descriptor index) 필드와 상기 패킷의 크기 정보를 표시하는 패킷 길이 필드로 구성된 정보인 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
  12. 제 11 항에 있어서, 상기 패킷 기술자 인덱스 필드가 표시하는 패킷 기술자(packet descriptor)는,
    상기 입력 패킷의 일부 정보를 기록한 상기 패킷 버퍼의 저장소로서, 상기 네트워크 프로세서에서 패킷 처리시 빈번히 접근하는 정보를 저장하는 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
  13. 제 12 항에 있어서, 상기 패킷 기술자(packet descriptor)는,
    상기 입력 인터페이스와 상기 출력 인터페이스의 차이에 따른 헤더 변경을 고려한 "Startofpktoffset" 필드를 포함하여, 입출력 인터페이스간의 헤더 변경시의 헤더의 크기 변화에 따라 바뀌는 시작 위치에 대한 변위값을 표시하도록 하는 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
  14. 제 13 항에 있어서, 상기 "Startofpktoffset"필드에 기록되는 변위값은.
    IPv4 망에서 IPv6망으로 터널링되는 경우, IPv4의 헤더(20바이트)와 IPv6의 헤더(40바이트) 크기의 차이인 20바이트 만큼을 합산하여 기록되는 것을 특징으로 하는 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한 패킷 송수신 방법.
KR10-2003-0010824A 2003-02-20 2003-02-20 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법 KR100489685B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2003-0010824A KR100489685B1 (ko) 2003-02-20 2003-02-20 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법
US10/778,363 US8208482B2 (en) 2003-02-20 2004-02-17 Transmitting packets between packet controller and network processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0010824A KR100489685B1 (ko) 2003-02-20 2003-02-20 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법

Publications (2)

Publication Number Publication Date
KR20040075381A KR20040075381A (ko) 2004-08-30
KR100489685B1 true KR100489685B1 (ko) 2005-05-17

Family

ID=32866917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0010824A KR100489685B1 (ko) 2003-02-20 2003-02-20 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법

Country Status (2)

Country Link
US (1) US8208482B2 (ko)
KR (1) KR100489685B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020013510A1 (en) * 2018-07-13 2020-01-16 Samsung Electronics Co., Ltd. Apparatus and method for processing data packet of electronic device

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003025766A1 (en) * 2001-09-14 2003-03-27 Nokia Inc. System and method for packet forwarding
KR100518813B1 (ko) * 2003-02-15 2005-10-05 삼성전자주식회사 패킷 메모리 관리 장치를 가지는 패킷 포워딩 시스템 및 그의 동작방법
US7697671B1 (en) 2004-11-15 2010-04-13 At&T Intellectual Property Ii, L.P. Enhanced-software defined data network
US20060168287A1 (en) * 2004-12-07 2006-07-27 Glauert Timothy H Rotating event buffer
KR101047427B1 (ko) * 2010-12-30 2011-07-08 국방과학연구소 버퍼 관리 장치 및 그 방법
US9276851B1 (en) * 2011-12-20 2016-03-01 Marvell Israel (M.I.S.L.) Ltd. Parser and modifier for processing network packets
US8751650B2 (en) * 2012-05-10 2014-06-10 Cisco Technology, Inc. Method and apparatus for supporting access control lists in a multi-tenant environment
WO2016018042A1 (en) * 2014-07-31 2016-02-04 Lg Electronics Inc. Apparatus and method for transmitting/receiving processes of a broadcast signal

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4488289A (en) 1982-06-25 1984-12-11 At&T Bell Laboratories Interface facility for a packet switching system
US5313582A (en) * 1991-04-30 1994-05-17 Standard Microsystems Corporation Method and apparatus for buffering data within stations of a communication network
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5886701A (en) * 1995-08-04 1999-03-23 Microsoft Corporation Graphics rendering device and method for operating same
US5832236A (en) * 1996-05-20 1998-11-03 Compaq Computer Corporation High speed frame translation for computer networks
US6580717B1 (en) * 1996-07-04 2003-06-17 Hitachi, Ltd. Packet communication method and apparatus and a recording medium storing a packet communication program
US6046999A (en) * 1996-09-03 2000-04-04 Hitachi, Ltd. Router apparatus using ATM switch
JPH10285173A (ja) * 1997-04-08 1998-10-23 Hitachi Ltd Atmセル処理装置
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
JPH11298488A (ja) 1998-04-13 1999-10-29 Oki Electric Ind Co Ltd パケット伝送方法及び装置、並びにネットワーク
US6434115B1 (en) * 1998-07-02 2002-08-13 Pluris, Inc. System and method for switching packets in a network
JP2000134218A (ja) * 1998-10-28 2000-05-12 Fujitsu Ltd パケット多重処理方式
JP3365340B2 (ja) * 1999-04-28 2003-01-08 日本電気株式会社 データ転送システム及びその転送方法
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
JP3482997B2 (ja) * 2000-03-02 2004-01-06 日本電気株式会社 ネットワーク相互接続システム
JP3589149B2 (ja) * 2000-04-12 2004-11-17 日本電気株式会社 Atm交換機の回線切替え用ヘッダ変換回路及びそれに用いるヘッダ変換方法
US6724759B1 (en) * 2000-08-11 2004-04-20 Paion Company, Limited System, method and article of manufacture for transferring a packet from a port controller to a switch fabric in a switch fabric chipset system
US6947970B2 (en) * 2000-12-19 2005-09-20 Intel Corporation Method and apparatus for multilevel translation and protection table
US20020126673A1 (en) * 2001-01-12 2002-09-12 Nirav Dagli Shared memory
US7342942B1 (en) * 2001-02-07 2008-03-11 Cortina Systems, Inc. Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port
US7006526B1 (en) * 2001-07-31 2006-02-28 Cisco Technology, Inc. Mechanisms for avoiding problems associated with network address protocol translation
US7227841B2 (en) * 2001-07-31 2007-06-05 Nishan Systems, Inc. Packet input thresholding for resource distribution in a network switch
WO2003025766A1 (en) * 2001-09-14 2003-03-27 Nokia Inc. System and method for packet forwarding
US7586914B2 (en) * 2001-09-27 2009-09-08 Broadcom Corporation Apparatus and method for hardware creation of a DOCSIS header
US7716330B2 (en) 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
US7468985B2 (en) * 2001-12-31 2008-12-23 Stmicroelectronics, Inc. System independent and scalable packet buffer management architecture for network processors
US7349398B1 (en) * 2001-12-31 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US7339943B1 (en) * 2002-05-10 2008-03-04 Altera Corporation Apparatus and method for queuing flow management between input, intermediate and output queues
US7336660B2 (en) 2002-05-31 2008-02-26 Cisco Technology, Inc. Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics
US7076569B1 (en) * 2002-10-18 2006-07-11 Advanced Micro Devices, Inc. Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities
US8392579B2 (en) * 2003-02-08 2013-03-05 Hewlett-Packard Development Company, L.P. Apparatus and method for transmitting data through a network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020013510A1 (en) * 2018-07-13 2020-01-16 Samsung Electronics Co., Ltd. Apparatus and method for processing data packet of electronic device
US11102137B2 (en) 2018-07-13 2021-08-24 Samsung Electronics Co., Ltd Apparatus and method for processing data packet of electronic device

Also Published As

Publication number Publication date
US20040165613A1 (en) 2004-08-26
KR20040075381A (ko) 2004-08-30
US8208482B2 (en) 2012-06-26

Similar Documents

Publication Publication Date Title
JP3682082B2 (ja) パケットスイッチングネットワークにおけるパケット処理のための装置および方法ならびにフレームリレーネットワークのためのフレーム処理システム
US8831024B2 (en) Dynamic header creation and flow control for a programmable communications processor, and applications thereof
US6907042B1 (en) Packet processing device
US10432556B1 (en) Enhanced audio video bridging (AVB) methods and apparatus
US6728213B1 (en) Selective admission control in a network device
US10601713B1 (en) Methods and network device for performing cut-through
US7990857B2 (en) Priority aware MAC flow control
US9030936B2 (en) Flow control with reduced buffer usage for network devices
JP4640128B2 (ja) 応答通信機器及びarp応答通信機器
US20050195821A1 (en) Method and apparatus for dynamically controlling traffic in wireless station
CN109218222B (zh) 一种实现发送端调速的方法、装置和系统
US7321557B1 (en) Dynamic latency assignment methodology for bandwidth optimization of packet flows
US6810424B2 (en) Link layer device and method of translating packets between transport protocols
KR100489685B1 (ko) 패킷 제어기와 네트워크 프로세서간의 패킷 전송을 위한패킷 송수신 장치와 그 방법
US7295564B2 (en) Virtual output queue (VoQ) management method and apparatus
KR20140048815A (ko) Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열
US7606151B2 (en) Power reduction in switch architectures
US6603759B1 (en) Adaptive buffer management for voice over packet network
US7554908B2 (en) Techniques to manage flow control
JPH10271163A (ja) パケット通信網接続装置
JP2000078188A (ja) 優先経路制御方法及びルータ装置
KR100502270B1 (ko) 패킷 통신장치
WO2010082042A1 (en) Method and apparatus for transceiving data
KR100534599B1 (ko) 라우터 시스템에서의 패킷 전달 방법
WO2022057706A1 (zh) 一种数据传输方法及相关设备

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20030220

PA0201 Request for examination
PG1501 Laying open of application
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: 20050427

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20050504

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20050506

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20080404

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20090429

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20100429

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20110428

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20120427

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20130429

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20130429

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20140429

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20140429

Start annual number: 10

End annual number: 10

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20160409