KR102502758B1 - 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치 - Google Patents

멀티코어 환경의 운영체제에 적합한 패킷 전송 장치 Download PDF

Info

Publication number
KR102502758B1
KR102502758B1 KR1020220159775A KR20220159775A KR102502758B1 KR 102502758 B1 KR102502758 B1 KR 102502758B1 KR 1020220159775 A KR1020220159775 A KR 1020220159775A KR 20220159775 A KR20220159775 A KR 20220159775A KR 102502758 B1 KR102502758 B1 KR 102502758B1
Authority
KR
South Korea
Prior art keywords
packet
data structure
packet data
interface
transmission
Prior art date
Application number
KR1020220159775A
Other languages
English (en)
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 KR1020220159775A priority Critical patent/KR102502758B1/ko
Application granted granted Critical
Publication of KR102502758B1 publication Critical patent/KR102502758B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • 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
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

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

Abstract

멀티코어상에서 코어의 개수만큼의 인터페이스에 종속되지 않는 패킷 재사용 목록를 만들어 패킷 자료구조를 저장하고, 저장한 패킷 자료구조의 재사용을 통해 패킷 생성과 파기 과정을 줄이며, 패킷 재사용 목록을 차지하기 위한 경합(lock)을 제거하여 패킷 처리 성능을 개선할 수 있도록 한 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치에 관한 것으로서, 패킷 전송 시 전송 패킷을 수신하여 인터페이스하는 제1 인터페이스, 재사용할 패킷 자료구조를 저장하는 패킷 자료구조 재사용 목록, 송신할 패킷을 메모리에 할당하기 위한 패킷 자료 구조를 생성하거나, 패킷 자료구조 재사용 목록에 저장된 패킷 자료 구조를 재활용하는 패킷 자료구조 생성/재활용부, 생성된 패킷 자료 구조 또는 재활용된 패킷 자료 구조를 통해 패킷의 목적지를 확인하고, 패킷의 목적지를 설정한 후 패킷 자료구조를 전달하는 패킷 전달 처리부, 수신한 패킷을 송신하는 제2 인터페이스, 패킷의 전송이 완료되면 패킷 자료 구조를 파기하거나 패킷 자료구조 재사용 목록에 저장하는 패킷 자료구조 파기/저장부를 포함하여, 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치를 구현한다.

Description

멀티코어 환경의 운영체제에 적합한 패킷 전송 장치{Packet transmission device suitable for multi-core operating system}
본 발명은 멀티코어 환경의 운영체제에 적합한 패킷 전송장치에 관한 것으로, 특히 멀티코어상에서 코어의 개수만큼의 인터페이스에 종속되지 않는 패킷 재사용 목록를 만들어 패킷자료구조를 저장하고, 저장한 패킷자료구조의 재사용을 통해 패킷 생성과 파기 과정을 줄이며, 패킷 재사용 목록을 차지하기 위한 경합(lock)을 제거하여 패킷 처리 성능을 개선할 수 있도록 한 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치에 관한 것이다.
패킷 데이터 통신에서, 디지털 데이터는 패킷으로 불리는 작은 패키지에 수용되어 네트워크상에서 전송된다. 패킷은, 전송되는 데이터 본체와, 네트워크상의 전송 제어에 사용되는 정보를 수용한 헤더를 포함한다. 계층화 네트워크에서는, 상위 계층의 헤더는 하위 계층에서 데이터 본체에 포함된다. 패킷 데이터 통신을 하는 망 내의 각 노드에는, 입력되는 각 패킷의 헤더를 해독, 필요에 따라서 편집하여 같은 데이터를 다음 노드로 송신하는, 전송 프로토콜 기능이 실장된다.
패킷 전송 시스템에서 패킷 전달은 패킷을 이송하는 과정이며, 일반적으로 OSI7 레이어에서 네트워크 스위치인 L2와 L3를 통해 패킷을 전달하는 라우팅(Routing), 브리징(Bridging) 등을 의미한다.
여기서 라우팅은 IP 주소를 기반으로 서로 다른 네트워크 간의 연결을 통해서 목적지를 찾는 통신 프로토콜로서 패킷에 대한 목적지(IP 주소)와 일치하는 경로를 검색하여, 해당 패킷을 다른 네트워크의 포트로 보낼 수 있도록 하는 기능이다.
아울러 브리징은 MAC 주소를 기반으로 동일한 네트워크상에 목적지(MAC) 주소와 일치하는 노드를 찾아 패킷을 전달하는 기능이다.
네트워크에서 패킷 전달 과정은, 패킷 수신, 패킷 처리, 패킷 송신 과정을 통해 이루어진다.
도 1에 일반적인 패킷 전송 시스템에 도시되어 있다.
패킷 전송 시 수신측 인터페이스(10)는 전송 패킷(1)을 수신하여 인터페이스하는 역할을 한다.
패킷 자료구조 생성/재활용부(20)는 상기 수신측 인터페이스(10)를 통해 수신한 패킷을 메모리에 할당(저장)하기 위한 패킷 자료 구조를 생성하거나, 재사용 목록에 있는 패킷 자료 구조를 꺼내 수신한 패킷을 처리하는 역할을 한다.
여기서 패킷 자료 구조는 운영체제(O/S) 내에서 패킷을 메모리에 저장하는 자료구조로서, 패킷 내에서는 출발지, 목적지 주소, 프로토콜 관련 각종 필드와 전달하고자 하는 데이터를 포함한다. 패킷 자료구조는 단순하게 메모리 영역만을 확보하여 사용하는 것이 아니라, 헤더의 파싱(Parsing)과 데이터의 처리 및 상관관계를 빠르게 처리할 수 있는 구조를 가지기 때문에 생성과정이 상대적으로 복잡하다.
상기 수신측 인터페이스(10) 및 송신측 인터페이스(50)는 한 개 또는 다수의 패킷 송수신을 위한 인터페이스 큐(Network Interface Queue)를 가진다. 인터페이스에서 패킷을 수신 또는 송신할 수 있도록 하드웨어적으로 만들어진 큐이다. 각 큐는 가상의 인터페이스처럼 패킷을 송수신하는 기능을 가지고 있다. 운영체제를 통해 각 큐는 멀티 코어 CPU에서 각 코어 단위로 임의 할당 또는 자동으로 할당할 수 있다. 최근 시중에 판매되는 인터페이스는 대부분 다수의 큐를 가지고 있다.
수신측 인터페이스 패킷 재사용 목록(30)은 패킷 자료 재사용 목록의 사용이 끝난 패킷 자료구조를 보관하는 역할을 수행하며, 상기 패킷자료구조 생성/재활용부(20)에 의해 꺼내어 지며, 패킷 자료구조 파기/저장부(60)를 통해 패킷 자료구조가 추가될 수 있다.
수신측 인터페이스(10)는 수신 큐(인터페이스 큐)로 링버퍼 형태로 구현이 되며, 상기 링버퍼는 패킷자료구조들로 구성된다. 패킷이 인터페이스를 통해 수신되면 링버퍼내의 패킷 자료구조들을 실제 패킷의 내용으로 채우게 되며, 상기 패킷자료구조는 패킷의 전달 처리부(40)로 옮겨져 패킷을 송신한다. 상기 비워진 링버퍼의 공간은 패킷 자료구조 생성/재활용부(20)를 통해 수신측 인터페이스 패킷 재사용 목록(30)에 재활용 가능한 패킷 자료구조가 있을 경우 상기 패킷 자료구조를 상기 비워진 링버퍼에 채우는 과정을 수행하거나, 그렇지 않은 경우 새로운 패킷 자료구조를 메모리 상에서 생성하여 링버퍼에 채우는 과정을 수행하여 지속적으로 패킷을 수신할 수 있도록 한다.
패킷 전달 처리부(40)는 상기 수신측 인터페이스(10)에 저장된 패킷 자료 구조를 통해 패킷의 목적지를 확인하고, 패킷의 목적지를 결정한 후 패킷 자료구조를 송신측 인터페이스(50)내의 송신 큐(인터페이스 큐)로 전달하여, 패킷(2)의 송신이 이루어지도록 한다.
패킷의 전송이 완료되면 패킷 자료구조 파기/저장부(60)는 관련된 패킷 자료구조를 파기하거나, 송신측 인터페이스 패킷 재사용 목록(70)에 저장한다.
이러한 과정을 통해 네트워크에서 패킷 전달이 이루어진다.
그러나 상기와 같은 일반적인 OSI7 레이어에서 패킷 전송 방식은 수신측에서 패킷 자료구조를 생성만하고 이를 재사용하지 않아, 패킷 전송 효율이 낮은 단점이 있다. 실제 패킷 자료구조를 생성하는 시간에 비하여 생성된 패킷 자료구조를 재사용하는 시간이 훨씬 짧아, 패킷 자료구조를 생성하는 것보다 생성된 패킷 자료구조를 재사용하는 것이 전체적인 패킷 전송 성능(시간, 패킷 전달량) 향상을 도모할 수 있다.
한 개의 인터페이스에 한 개의 재사용 목록를 사용하는 멀티코어 시스템에서 다수의 코어가 재사용 목록를 점유하기 위해 경합(lock)을 사용하여 패킷 전달 효율성이 저하되는 문제점을 가질 수 있다.
또한, 송수신 인터페이스가 상이하며, 송수신 비율이 다른 경우 상대적으로 수신량이 많은 인터페이스의 패킷 재사용 목록은 재사용할 수 있는 패킷 자료구조가 부족하여 패킷 재사용의 이점을 얻지 못하는 경우가 발생할 수 있으며, 반대로 송신 비율이 많은 인터페이스의 패킷 재사용 목록은 패킷 자료구조가 쌓이는 현상이 발생하여 불필요한 메모리가 소모되는 단점을 가질 수 있다.
대한민국 공개특허 10-2008-0079335(2008.08.29. 공개)(통신 방법, 통신 시스템, 노드 및 프로그램) 대한민국 등록특허 10-1215208(2012.12.17. 등록)(패킷 목적지 주소 및 발신 인터페이스로부터 구성된 라우팅 검색 키에 기초하는 패킷의 발신송신) 대한민국 공개특허 10-2022-0121093(2022.08.31. 공개)(상용 이더넷 장비 기반의 GPU 내부 패킷 입출력방법 및 장치)
따라서 본 발명은 상기와 같은 일반적인 OSI7 레이어에서 패킷 전송시 발생하는 제반 문제점을 해결하기 위해서 제안된 것으로서, 멀티코어상에서 코어의 개수만큼의 인터페이스에 종속되지 않는 패킷 재사용 목록을 만들어 패킷 자료구조를 저장하고, 저장한 패킷 자료구조의 재사용을 통해 패킷 생성과 파기 과정을 줄이며, 패킷 재사용 목록을 차지하기 위한 경합(lock)을 제거하여 패킷 처리 성능을 개선할 수 있도록 한 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치를 제공하는 데 그 목적이 있다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명에 따른 "멀티코어 환경의 운영체제에 적합한 패킷 전송 장치"는,
패킷 전송 시 전송 패킷을 수신하여 인터페이스하는 제1 인터페이스;
재사용할 패킷 자료구조를 저장하는 패킷 자료구조 재사용 목록;
상기 제1 인터페이스를 통해 수신한 패킷을 메모리에 할당하기 위한 패킷 자료 구조를 생성하거나, 상기 패킷 자료구조 재사용 목록에 저장된 패킷 자료 구조를 재활용하는 패킷 자료구조 생성/재활용부;
상기 패킷 자료구조 생성/재활용부에서 생성된 패킷 자료 구조 또는 상기 패킷 자료구조 재사용 목록에서 재활용된 패킷 자료 구조를 통해 수신한 패킷의 목적지를 확인하고, 패킷의 목적지를 설정한 후 패킷 자료구조를 전달하는 패킷 전달 처리부;
상기 패킷 전달 처리부를 통해 수신한 패킷을 송신하는 제2 인터페이스; 및
상기 제2 인터페이스와 연동하여 패킷의 전송이 완료되면 패킷 자료 구조를 파기하거나 상기 패킷 자료구조 재사용 목록에 저장하는 패킷 자료구조 파기/저장부를 포함하는 것을 특징으로 한다.
상기에서 패킷 자료구조 재사용 목록은 수신측 인터페이스 및 송신측 인터페이스가 공유하는 것을 특징으로 한다.
상기에서 제1 인터페이스는 복수의 패킷 수신 큐를 포함하며, 상기 제2 인터페이스는 복수의 패킷 송신 큐를 포함하는 것을 특징으로 한다.
상기에서 복수의 패킷 수신 큐 또는 복수의 패킷 송신 큐는 중앙처리장치(CPU) 내의 코어와 일대일 대응하는 개수로 구현되는 것을 특징으로 한다.
상기에서 제1 인터페이스는 수신된 패킷을 복수의 패킷 수신 큐에 분산하여 처리하며, 상기 제2 인터페이스는 전송할 패킷 자료구조를 복수의 패킷 송신 큐에 분산하여 송신하는 것을 특징으로 한다.
상기에서 패킷 자료구조 재사용 목록는 멀티코어시스템내의 코어의 개수에 일대일 대응하게 할당되는 것을 특징으로 한다.
본 발명에 따르면 멀티코어시스템상에서 코어단위의 인터페이스에 종속되지 않는 무관한 패킷 재사용 목록을 만들어 패킷 자료구조를 저장하고, 저장한 패킷 자료구조의 재사용을 통해 패킷 자료구조의 생성과 파기 과정을 줄이며, 코어간 패킷 재사용 목록을 사용하기 위한 경합(lock)을 제거하여 패킷 처리 성능(처리속도)을 향상할 수 있는 효과가 있다.
도 1은 일반적인 패킷 전송 시스템의 구성도이고,
도 2는 본 발명에 따른 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치의 구성도이며,
도 3은 본 발명을 멀티코어에 적용한 경우의 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치의 구성도이며,
도 4는 본 발명에서 패킷 수신처리 과정을 보인 흐름도이며,
도 5는 본 발명에서 패킷 송신처리 과정을 보인 흐름도이다.
이하 본 발명의 바람직한 실시 예에 따른 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치의 구성도를 첨부된 도면을 참조하여 상세하게 설명한다.
이하에서 설명되는 본 발명에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 안 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 바람직한 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원 시점에서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
도 2는 본 발명의 바람직한 실시 예에 따른 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치의 구성도로서, 제1 인터페이스(110), 패킷 자료구조 생성/재활용부(120), 패킷 자료구조 재사용 목록(130), 패킷 전달 처리부(140), 제2 인터페이스(150) 및 패킷 자료구조 파기/저장부(160)를 포함할 수 있다.
제1 인터페이스(110)는 패킷 전송 시 전송 패킷을 수신하여 인터페이스하는 역할을 한다. 상기 제1 인터페이스(110)는 패킷 수신측 인터페이스일 수 있다.
이러한 제1 인터페이스(110)는 복수의 패킷 수신 큐(Queue)를 포함할 수 있으며, 복수의 패킷 수신 큐는 중앙처리장치(CPU) 내의 코어와 일대일 대응하는 개수로 구현될 수 있다. 아울러 상기 제1 인터페이스(110)는 수신된 패킷을 복수의 패킷 수신 큐에 분산 저장할 수 있다.
패킷 자료구조 재사용 목록(130)은 재사용할 패킷 자료구조를 저장하는 역할을 한다. 이러한 패킷 자료구조 재사용 목록(130)는 수신측 인터페이스 및 송신측 인터페이스가 공유할 수 있으며, 록(lock) 경합을 회피하기 위해 멀티코어시스템의 코어의 개수와 동일하게 생성하여 록-프리(lock-free) 형태로 구현될 수 있다.
패킷 자료구조 생성/재활용부(120)는 상기 제1 인터페이스(110)를 통해 수신한 패킷을 메모리에 할당하기 위한 패킷 자료 구조를 생성하거나, 상기 패킷 자료구조 재사용 목록(130)에 저장된 패킷 자료 구조를 재활용하는 역할을 한다.
패킷 전달 처리부(140)는 상기 패킷 자료구조 생성/재활용부(120)에서 생성된 패킷 자료 구조 또는 상기 패킷 자료구조 재사용 목록(130)에서 재활용된 패킷 자료 구조를 통해 수신된 패킷의 목적지를 확인하고, 패킷의 목적지를 설정한 후 패킷 자료구조를 전달하는 역할을 한다.
제2 인터페이스(150)는 상기 패킷 전달 처리부(140)를 통해 수신한 패킷을 송신하는 역할을 한다. 상기 제2 인터페이스(150)는 패킷 송신측 인터페이스일 수 있다.
이러한 제2 인터페이스(150)는 복수의 패킷 송신 큐를 포함할 수 있으며, 상기 복수의 패킷 송신 큐는 중앙처리장치(CPU) 내의 코어와 일대일 대응하는 개수로 구현될 수 있고, 수신된 송신 패킷을 복수의 패킷 송신 큐를 통해 패킷을 송신할 수 있다.
패킷 자료구조 파기/저장부(160)는 상기 제2 인터페이스(150)와 연동하여 패킷의 전송이 완료되면 패킷 자료 구조를 파기하거나 상기 패킷 자료구조 재사용 목록(130)에 재사용 패킷 자료구조로 저장하는 역할을 한다.
이와 같이 구성된 본 발명의 바람직한 실시 예에 따른 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치의 동작을 구체적으로 설명하면 다음과 같다.
먼저, 송신할 패킷이 제1 인터페이스(110)에 수신되면, 제1 인터페이스(110)는 이를 패킷 수신 큐에 저장한다(S11).
이때, 제1 인터페이스(110)는 복수의 패킷 수신 큐(Queue)(인터페이스 큐)가 미리 생성되어 사용될 수 있다. 패킷 수신 큐는 NIC에서 패킷을 수신 또는 송신할 수 있도록 하드웨어적으로 만들어진 큐이다. 각 인터페이스는 한 개 이상의 큐를 가지고 있다. 각 큐는 가상의 인터페이스처럼 패킷을 송수신하는 기능을 가지고 있다. 운영체제를 통해 각 큐는 멀티코어 CPU에서 각 코어 단위로 임의 할당 또는 자동으로 할당할 수 있다. 최근 시중에 판매되는 인터페이스는 대부분 다수의 큐를 가지고 있다. 따라서 복수의 패킷 수신 큐는 도 3에 도시한 바와 같이 중앙처리장치(CPU) 내의 코어와 일대일 대응하는 개수로 구현될 수 있다. 여기서 상기 제1 인터페이스(110)는 수신된 패킷을 복수의 패킷 수신 큐에 분산 저장한다. 수신 패킷을 복수의 패킷 수신 큐에 분산 저장함으로써, 패킷 전송 성능을 개선할 수 있다.
제1 인터페이스(110)의 수신 큐(인터페이스 큐)는 주로 링버퍼 형태로 구현이 되며, 상기 링버퍼는 패킷 자료구조들로 구성된다. 패킷이 인터페이스를 통해 수신되면 링버퍼내의 패킷 자료구조들을 실제 패킷의 내용으로 채우게 되며, 상기 패킷 자료구조는 패킷의 전달 처리부(140)로 옮겨져 패킷을 송신한다. 상기 비워진 링버퍼의 공간은 패킷 자료구조 생성/재활용부(120)를 통해 패킷 재사용 사용목록(130)에 재활용 가능한 패킷 자료구조가 있을 경우 상기 패킷 자료구조를 상기 비워진 링버퍼에 채우는 과정을 수행하거나, 그렇지 않은 경우 새로운 패킷 자료구조를 메모리 상에서 생성하여 링버퍼에 채우는 과정을 수행하여 지속적으로 패킷을 수신할 수 있도록 한다.
다음으로, 패킷 자료구조 생성/재활용부(120)는 상기 제1 인터페이스(110)를 통해 수신한 패킷을 메모리에 할당하기 위한 패킷 자료 구조를 생성하거나, 상기 패킷 자료구조 재사용 목록(130)에 저장된 패킷 자료 구조를 재활용한다.
즉, 현재 처리하고 있는 코어의 패킷 재사용 목록를 선택하고(S11), 패킷 자료구조 재사용 목록(130)에서 수신할 패킷을 저장할 재사용 가능한 패킷 자료 구조가 존재하는지를 확인하여, 재사용 가능한 패킷 자료구조가 존재하면 이를 꺼내어 패킷 자료 구조로 활용한다(S12 - S13). 이로써 패킷 자료구조 생성시간을 단축할 수 있으며, 이는 결과적으로 패킷 전송 시간의 단축을 도모할 수 있어, 패킷 처리성능 개선을 도모한다.
아울러 패킷 자료구조 재사용 목록(130)에 수신한 패킷을 메모리에 저장하기 위한 재사용 가능한 패킷 자료 구조가 존재하지 않으면, 패킷 전송을 위한 패킷 자료구조를 생성한다. 여기서 패킷 자료구조의 생성은 기존 방식과 동일하므로, 그에 대한 구체적인 설명은 생략하기로 한다(S14 - S15).
상기 패킷 자료구조 재사용 목록(130)은 재사용할 패킷 자료구조를 저장하는 기능을 수행하는 것으로서, 수신측 인터페이스 및 송신측 인터페이스가 공유한다. 록(lock) 경합을 회피하기 위해 각 코어의 개수만큼의 자료구조 재사용 목록을 사용한다.
이러한 패킷 자료구조 재사용 목록(130)은 도 3에 도시한 바와 같이, 멀티코어에 적용하기 위해서, CPU 내의 코어의 개수에 일대일 대응하게 할당하여, 록(lock) 경합을 회피할 수 있도록 구성할 수 있다.
따라서 코어는 자신에게 할당된 패킷 자료구조 재사용 목록에 패킷 자료구조를 저장하거나 인출할 수 있어, 코어간 간섭없이 패킷 자료구조를 활용할 수 있으며, 이는 결과적으로 패킷 전송 성능의 향상에 기여한다.
다음으로, 패킷 전달 처리부(140)는 상기 패킷 자료구조 생성/재활용부(120)에서 생성된 패킷 자료 구조 또는 상기 패킷 자료구조 재사용 목록(130)에서 재활용된 패킷 자료 구조를 통해 패킷의 목적지를 확인하고, 패킷의 목적지를 설정한 후 패킷 자료구조를 제2 인터페이스(150)에 전달한다.
상기 제2 인터페이스(150)는 상기 패킷 전달 처리부(140)를 통해 수신한 패킷을 송신한다(S21). 이러한 제2 인터페이스(150)는 도 3에 도시한 바와 같이, 복수의 패킷 송신 큐(인터페이스 큐)를 포함할 수 있으며, 상기 복수의 패킷 송신 큐는 중앙처리장치(CPU) 내의 코어와 일대일 대응하는 개수로 구현될 수 있고, 전송할 패킷을 패킷 송신 큐에 저장하여 전송한다. 이 경우에 상기 과정을 처리한 코어에 연결된 인터페이스 큐(151)를 사용하면 효율을 더 높일 수 있다.
상기 패킷의 전송이 완료되면, 패킷 자료구조 파기/저장부(160)는 상기 제2 인터페이스(150)와 연동하여 패킷 자료 구조를 파기하거나 상기 패킷 자료구조 재사용 목록(130)에 재사용 패킷 자료구조로 저장한다(S22 - S24).
여기서 패킷 자료구조 파기/저장부(160)는 재사용할 패킷 자료 구조를 코어에 대응하는 재사용 목록에 저장한다.
이상 상술한 본 발명에 따르면 인터페이스에 종속되지 않는 패킷 재사용 목록을 만들어 패킷(패킷 자료구조)을 저장하고, 저장한 패킷의 재사용을 통해 패킷 생성과 파기 과정을 줄여 패킷 처리 성능(처리속도)을 향상할 수 있다.
특히, 멀티코어에 대응하게 인터페이스 큐 및 패킷 자료구조 재사용 목록의 개수를 할당하고, 각각의 패킷을 분산 처리함으로써, 전체적인 패킷 전송 효율성을 높일 수 있으며, 멀티코어 시스템에도 최적으로 적용할 수 있다.
이상 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 이 기술분야에서 통상의 지식을 가진 자에게 자명하다.
110: 제1 인터페이스
120: 패킷 자료구조 생성/재활용부
130: 패킷 자료구조 재사용 목록
140: 패킷 전달 처리부
150: 제2 인터페이스
160: 패킷 자료구조 파기/저장부

Claims (7)

  1. 패킷 전송 시 전송 패킷을 수신하여 인터페이스하는 제1 인터페이스;
    운영체제 내에서 패킷을 메모리에 저장하기 위해, 재사용할 패킷 자료구조를 저장하며, 수신측 인터페이스 및 송신측 인터페이스가 공유하는 패킷 자료구조 재사용 목록;
    상기 제1 인터페이스를 통해 수신한 패킷을 메모리에 할당하기 위한 패킷 자료 구조를 생성하거나, 상기 패킷 자료구조 재사용 목록에 저장된 패킷 자료 구조를 재활용하는 패킷 자료구조 생성/재활용부;
    상기 패킷 자료구조 생성/재활용부에서 생성된 패킷 자료 구조 또는 상기 패킷 자료구조 재사용 목록에서 재활용된 패킷 자료 구조를 통해 패킷의 목적지를 확인하고, 패킷의 목적지를 설정한 후 패킷 자료구조를 전달하는 패킷 전달 처리부;
    상기 패킷 전달 처리부를 통해 수신한 패킷을 송신하는 제2 인터페이스; 및
    상기 제2 인터페이스와 연동하여 패킷의 전송이 완료되면 패킷 자료 구조를 파기하거나 상기 패킷 자료구조 재사용 목록에 저장하는 패킷 자료구조 파기/저장부를 포함하는 것을 특징으로 하는 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치.
  2. 청구항 1에서, 상기 제1 및 제2 인터페이스는 동일한 인터페이스로 구현하거나, 서로 독립된 인터페이스로 구현될 수 있는 것을 특징으로 하는 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치.
  3. 삭제
  4. 청구항 1에서, 상기 제1 인터페이스는 복수의 패킷 수신 큐를 포함하며, 상기 제2 인터페이스는 복수의 패킷 송신 큐를 포함하는 것을 특징으로 하는 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치.
  5. 청구항 4에서, 상기 복수의 패킷 수신 큐 또는 복수의 패킷 송신 큐는 중앙처리장치(CPU) 내의 코어와 일대일 대응하는 개수로 구현되는 것을 특징으로 하는 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치.
  6. 청구항 1에서, 상기 제1 인터페이스는 수신된 패킷을 복수의 패킷 수신 큐에 분산하여 처리하며, 상기 제2 인터페이스는 전송할 패킷 자료구조를 복수의 패킷 송신 큐에 분산하여 처리하는 것을 특징으로 하는 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치.
  7. 청구항 1에서, 상기 패킷 자료구조 재사용 목록은 멀티코어시스템 내의 코어의 개수에 일대일 대응하게 할당되는 것을 특징으로 하는 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치.




KR1020220159775A 2022-11-24 2022-11-24 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치 KR102502758B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220159775A KR102502758B1 (ko) 2022-11-24 2022-11-24 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220159775A KR102502758B1 (ko) 2022-11-24 2022-11-24 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Publications (1)

Publication Number Publication Date
KR102502758B1 true KR102502758B1 (ko) 2023-02-23

Family

ID=85329754

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220159775A KR102502758B1 (ko) 2022-11-24 2022-11-24 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Country Status (1)

Country Link
KR (1) KR102502758B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080079335A (ko) 2006-01-23 2008-08-29 닛본 덴끼 가부시끼가이샤 통신 방법, 통신 시스템, 노드 및 프로그램
KR20120062174A (ko) * 2010-12-06 2012-06-14 한국전자통신연구원 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법
KR101215208B1 (ko) 2008-06-08 2012-12-24 애플 인크. 패킷 목적지 주소 및 발신 인터페이스로부터 구성된 라우팅 검색 키에 기초하는 패킷의 발신 송신
KR20220121093A (ko) 2021-02-24 2022-08-31 성균관대학교산학협력단 상용 이더넷 장비 기반의 gpu 내부 패킷 입출력 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080079335A (ko) 2006-01-23 2008-08-29 닛본 덴끼 가부시끼가이샤 통신 방법, 통신 시스템, 노드 및 프로그램
KR101215208B1 (ko) 2008-06-08 2012-12-24 애플 인크. 패킷 목적지 주소 및 발신 인터페이스로부터 구성된 라우팅 검색 키에 기초하는 패킷의 발신 송신
KR20120062174A (ko) * 2010-12-06 2012-06-14 한국전자통신연구원 다양한 특성의 패킷을 동적으로 처리하는 패킷 처리장치 및 방법
KR20220121093A (ko) 2021-02-24 2022-08-31 성균관대학교산학협력단 상용 이더넷 장비 기반의 gpu 내부 패킷 입출력 방법 및 장치

Similar Documents

Publication Publication Date Title
US8902897B2 (en) Distributed routing architecture
US9282032B2 (en) Distributed routing architecture
US9207979B1 (en) Explicit barrier scheduling mechanism for pipelining of stream processing algorithms
US5924112A (en) Bridge device
US7924708B2 (en) Method and apparatus for flow control initialization
EP1774726B1 (en) Port aggregation across stack of devices
US7096277B2 (en) Distributed lookup based on packet contents
US8325730B2 (en) Distributed routing architecture
CN107171980A (zh) 网络交换机中的灵活的缓冲区分配
US20120027029A1 (en) System and method for offloading packet protocol encapsulation from software
JPH06350648A (ja) データ・パケットを貯蔵する方法及び装置
KR20040010707A (ko) 공유된 속성들에 근거하여 압축된 큐 쌍으로부터 다중의가상 큐 쌍들을 생성하는 장치
US9979643B2 (en) Communication apparatus, communication method, and computer-readable recording medium
CN113891396A (zh) 数据包的处理方法、装置、计算机设备和存储介质
KR102502758B1 (ko) 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치
US20050198362A1 (en) Exception packet forwarding
CN109040323B (zh) 负载均衡装置
US20120201242A1 (en) Packet forwarding
US7532644B1 (en) Method and system for associating multiple payload buffers with multidata message
KR100585931B1 (ko) 라우터의 라인 카드에서의 부하 분산 장치
EP0792544B1 (en) Data storage system
CN112019645B (zh) 基于toe的网络地址管理方法及装置
US10084624B2 (en) Repeater
KR100226430B1 (ko) 다중 포트 이더넷-비동기 전송모드 라우터의 동적 버퍼 할당및 관리 방법
JP3168254B2 (ja) 分散処理におけるメッセージ処理方式

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant