KR102291987B1 - 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치 - Google Patents

스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치 Download PDF

Info

Publication number
KR102291987B1
KR102291987B1 KR1020190135566A KR20190135566A KR102291987B1 KR 102291987 B1 KR102291987 B1 KR 102291987B1 KR 1020190135566 A KR1020190135566 A KR 1020190135566A KR 20190135566 A KR20190135566 A KR 20190135566A KR 102291987 B1 KR102291987 B1 KR 102291987B1
Authority
KR
South Korea
Prior art keywords
queue
size
packet
current packet
sum
Prior art date
Application number
KR1020190135566A
Other languages
English (en)
Other versions
KR20210050940A (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 KR1020190135566A priority Critical patent/KR102291987B1/ko
Publication of KR20210050940A publication Critical patent/KR20210050940A/ko
Application granted granted Critical
Publication of KR102291987B1 publication Critical patent/KR102291987B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow

Landscapes

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

Abstract

스위치 포트 내 다중 대기열 관리 방법은, 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우, 포트에 할당된 버퍼 크기를 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합과 비교하는 단계; 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 포트에 할당된 버퍼 크기를 초과하는 경우, 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하는 단계; 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는 단계; 버퍼 공간이 생길 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계; 및 꼬리 패킷을 떨어뜨리는 경우, 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우, 꼬리 패킷을 떨어뜨리는 대신 현재 패킷(Pi)을 떨어뜨리는 단계;를 포함한다. 이에 따라, 작업 보존성(Work conservation)과 서비스 대기열간 균등 공유(Per-queue fair sharing)를 동시에 만족시켜서 스위치 포트 내 서비스 대기열 간의 네트워크 성능을 분리할 수 있다.

Description

스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치{METHOD FOR MANAGING MULTIPLE QUEUES IN SWITCH PORTS, RECORDING MEDIUM AND DEVICE FOR PERFORMING THE METHOD}
본 발명은 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치에 관한 것으로서, 더욱 상세하게는 네트워크 스위치 장치에서 복수의 포트 서비스 대기열을 이용한 데이터 처리 방법에 관한 것이다.
오늘날의 데이터센터 네트워크는 웹 검색, 키-밸류 스토어, 데이터 분석과 같은 다양한 응용들에 의해 공유된다. 스위치 출력 포트에서 각 서비스 트래픽은 네트워크 정책에 따라 트래픽 클래스로 나뉘어 각 서비스 대기열에 매핑된다.
현재는 서비스 대기열 간 포트 버퍼 배분이 단순 선입선출 형태의 최대 노력(Best-Effort) 방식으로 관리되고 있어 다수의 플로우를 가진 서비스 대기열이 포트 버퍼를 독과점 할 수 있다. 이 때문에 네트워크 대역폭은 공평하게 분배될 수 없는 문제가 있다.
도 1은 이러한 문제의 예시를 보여준다. 도 1을 참조하면, 동일한 스케줄링 가중치의 서비스 1과 서비스 2가 경쟁할 경우 서비스 1은 하나의 플로우를, 서비스 2는 8개의 플로우를 가지고 있다.
이 때 서비스 2가 포트 버퍼를 대부분 차지하게 됨으로써 두 서비스가 동일한 가중치를 가지고 있음에도 불구하고 서비스 2가 대다수의 대역폭을 점유하게 되는 문제점이 있다.
KR 10-2006-0081868 A KR 10-0716184 B1 US 2003-0081549 A1
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 작업 보존성 및 서비스 대기열 간 균등 공유를 만족시키는 스위치 포트 내 다중 대기열 관리 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 스위치 포트 내 다중 대기열 관리 방법 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 스위치 포트 내 다중 대기열 관리 방법을 수행하기 위한 장치를 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법은, 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우, 포트에 할당된 버퍼 크기를 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합과 비교하는 단계; 상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기를 초과하는 경우, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하는 단계; 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는 단계; 버퍼 공간이 생길 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계; 및 상기 꼬리 패킷을 떨어뜨리는 경우, 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우, 상기 꼬리 패킷을 떨어뜨리는 대신 상기 현재 패킷(Pi)을 떨어뜨리는 단계;를 포함한다.
본 발명의 실시예에서, 상기 스위치 포트 내 다중 대기열 관리 방법은, 상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하가 될 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계를 반복할 수 있다.
본 발명의 실시예에서, 상기 스위치 포트 내 다중 대기열 관리 방법은, 상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하인 경우, 상기 현재 패킷(Pi)이 버퍼에 들어가는 단계를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 스위치 포트 내 다중 대기열 관리 방법은, 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 이상인 경우, 상기 현재 패킷(Pi)이 버퍼에 들어가는 단계를 더 포함할 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 스위치 포트 내 다중 대기열 관리 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 장치는, 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우, 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 포트에 할당된 버퍼 크기를 초과하는 경우, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하는 버퍼 크기 비교부; 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는 대기열 길이 비교부; 및 버퍼 공간이 생길 때까지 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리고, 상기 꼬리 패킷을 떨어뜨리는 경우 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우, 상기 꼬리 패킷을 떨어뜨리는 대신 상기 현재 패킷(Pi)을 떨어뜨리는 공간 확보부를 포함한다.
본 발명의 실시예에서, 상기 공간 확보부는, 상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하가 될 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계를 반복할 수 있다.
이와 같은 스위치 포트 내 다중 대기열 관리 방법에 따르면, 작업 보존성(Work conservation)과 서비스 대기열간 균등 공유(Per-queue fair sharing)를 동시에 만족시켜서 스위치 포트 내 서비스 대기열 간의 네트워크 성능을 분리할 수 있다.
구체적으로, 평소에는 단일 대기열의 길이가 포트 버퍼 전체를 점유하도록 허용하면서도 남은 포트 버퍼 크기가 없고 보장된 길이 미만의 대기열 길이를 가진 서비스 대기열에 속하는 패킷이 도착할 시, 대기열의 길이가 가장 긴 서비스 대기열의 패킷을 떨어뜨린다. 이에 따라, 도착하는 패킷을 위한 공간을 확보할 수 있으므로, 대역폭 보장과 작업 보존을 달성 할 수 있다.
도 1은 종래의 서비스 대기열 간 포트 버퍼 최대 노력(Best-Effort) 방식으로 관리될 때의 대역폭 점유율을 보여주는 그래프이다.
도 2는 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 장치의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법의 의사코드(pseudocode)의 예시를 보여주는 도면이다.
도 4는 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법의 흐름도이다.
도 5는 본 발명이 종래 기술에 비하여 각 큐가 회선 대역폭을 균등하게 공유하는 것을 보여주는 시뮬레이션 결과이다.
도 6은 본 발명이 종래 기술에 비하여 작업 보존성이 높음을 보여주는 시뮬레이션 결과이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 장치의 블록도이다. 도 3은 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법의 의사코드(pseudocode)의 예시를 보여주는 도면이다.
본 발명에 따른 스위치 포트 내 다중 대기열 관리 장치(10, 이하 장치)는 작업 보존성(Work conservation)과 서비스 대기열간 균등 공유(Per-queue fair sharing)를 동시에 만족시켜서 스위치 포트 내 서비스 대기열 간의 네트워크 성능을 분리시킨다.
도 2를 참조하면, 본 발명에 따른 장치(10)는 버퍼 크기 비교부(110), 대기열 길이 비교부(130) 및 공간 확보부(150)를 포함한다.
본 발명의 상기 장치(10)는 스위치 포트 내 다중 대기열 관리를 수행하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 상기 버퍼 크기 비교부(110), 상기 대기열 길이 비교부(130) 및 상기 공간 확보부(150)의 구성은 상기 장치(10)에서 실행되는 상기 스위치 포트 내 다중 대기열 관리를 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
상기 장치(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 상기 버퍼 크기 비교부(110), 상기 대기열 길이 비교부(130) 및 상기 공간 확보부(150)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
상기 장치(10)는 이동성을 갖거나 고정될 수 있다. 상기 장치(10)는, 서버(server) 또는 엔진(engine) 형태일 수 있으며, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다.
상기 장치(10)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
상기 버퍼 크기 비교부(110)는 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우, 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 포트에 할당된 버퍼 크기를 비교한다.
상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기를 초과하는 경우, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교한다.
상기 버퍼 크기 비교부(110)는 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 그 결과를 상기 대기열 길이 비교부(130)에 통지한다.
상기 대기열 길이 비교부(130)는 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는다.
상기 대기열 길이 비교부(130)는 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 상기 공간 확보부(150)에 통지한다.
상기 공간 확보부(150)는 버퍼 공간이 생길 때까지 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨린다. 다만, 상기 꼬리 패킷을 떨어뜨리는 경우 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우, 상기 꼬리 패킷을 떨어뜨리는 대신 상기 현재 패킷(Pi)을 떨어뜨린다.
이후, 패킷(Pi)를 위한 공간이 버퍼에 존재한다면 패킷(Pi)는 버퍼에 들어간다.
본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 장치는 가중치에 따른 최소 버퍼 크기를 할당하고 서비스 대기열 크기가 포트 크기만큼 커질 수 있도록 허용하되, 포트 버퍼에 남는 공간이 없고 최소 버퍼 크기 미만의 대기열 크기를 가진 서비스 대기열에 속한 패킷이 도착하면 대기열 길이가 가장 긴 서비스 대기열의 꼬리 패킷을 떨어뜨림으로써 도착하는 패킷을 받아들일 수 있는 공간을 확보할 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법의 의사코드(pseudocode)의 예시를 보여준다.
네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하면, 스위치는 포트에 할당된 버퍼 크기(B)를 현재 패킷의 크기(
Figure 112019110667724-pat00001
)와 모든 대기열 크기의 합(
Figure 112019110667724-pat00002
)의 합과 비교한다.
현재 패킷의 크기(
Figure 112019110667724-pat00003
)와 모든 대기열 크기의 합(
Figure 112019110667724-pat00004
)의 합이 버퍼 크기보다 크다면 현재 패킷의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합(
Figure 112019110667724-pat00005
)이 스위치가 할당하는 최소 버퍼 크기(
Figure 112019110667724-pat00006
) 미만인지 확인한다.
이에 해당한다면, 가장 현재 대기열 길이가 긴 서비스 대기열의 인덱스 j를 찾는다. 이후 버퍼에 공간이 생길 때까지 가장 대기열 길이가 긴 서비스 대기열의 꼬리 패킷을 떨어뜨림으로써(
Figure 112019110667724-pat00007
) 공간을 확보한다.
만약 꼬리 패킷을 떨어뜨리는 것이 서비스 대기열 j의 길이가
Figure 112019110667724-pat00008
미만이 되게 한다면 해당 대기열을 보호하기 위해 꼬리 패킷을 삭제하지 않고 패킷(Pi)를 떨어뜨린다(
Figure 112019110667724-pat00009
). 패킷(
Figure 112019110667724-pat00010
)을 위한 공간이 버퍼에 존재한다면 패킷(Pi)은 버퍼에 들어간다(
Figure 112019110667724-pat00011
).
도 4는 본 발명의 일 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법의 흐름도이다.
본 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법은, 도 2의 장치(10)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 2의 장치(10)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
또한, 본 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법은 스위치 포트 내 다중 대기열 관리를 수행하기 위한 소프트웨어(애플리케이션)에 의해 실행될 수 있다.
도 4를 참조하면, 본 실시예에 따른 스위치 포트 내 다중 대기열 관리 방법은, 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우(단계 S11), 포트에 할당된 버퍼 크기를 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합과 비교한다(단계 S12).
상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기를 초과하는 경우, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교한다(단계 S13).
상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는다(단계 S14).
버퍼 공간이 생길 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨린다(단계 S15).
상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하가 될 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계를 반복한다.
상기 꼬리 패킷을 떨어뜨리는 경우, 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는지 판단하여(단계 S16), 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우 상기 꼬리 패킷을 떨어뜨리는 대신 상기 현재 패킷(Pi)을 떨어뜨린다(단계 S17).
상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하가 되는 경우, 상기 현재 패킷(Pi)이 버퍼에 들어간다(단계 S18).
또한, 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 이상인 경우, 상기 현재 패킷(Pi)이 버퍼에 들어간다(단계 S18).
이와 같은 스위치 포트 내 다중 대기열 관리 방법에 따르면, 작업 보존성(Work conservation)과 서비스 대기열간 균등 공유(Per-queue fair sharing)를 동시에 만족시켜서 스위치 포트 내 서비스 대기열간의 네트워크 성능을 분리할 수 있다.
구체적으로, 평소에는 단일 대기열의 길이가 포트 버퍼 전체를 점유하도록 허용하면서도 남은 포트 버퍼 크기가 없고 보장된 길이 미만의 대기열 길이를 가진 서비스 대기열에 속하는 패킷이 도착할 시, 대기열의 길이가 가장 긴 서비스 대기열의 패킷을 떨어뜨린다. 이에 따라, 도착하는 패킷을 위한 공간을 확보할 수 있으므로, 대역폭 보장과 작업 보존을 달성 할 수 있다.
도 5는 본 발명이 종래 기술에 비하여 각 큐가 회선 대역폭을 균등하게 공유하는 것을 보여주는 시뮬레이션 결과이다. 도 6은 본 발명이 종래 기술에 비하여 작업 보존성이 높음을 보여주는 시뮬레이션 결과이다.
도 5와 도 6은 ns-2 시뮬레이터를 이용한 본 발명의 실시예 결과로써, 본 발명(도면에 BarberQ로 표시)를 현재의 최선 노력 방식(Best-Effort), 패킷 스케쥴러가 할당한 가중치에 따라 정적으로 버퍼 크기를 각 서비스 대기열에 할당하는 Strawman과 비교하였다.
최선 노력 방식(Best-Effort)은 널리 알려진 First-in-First-Out(선입선출) 방식으로 버퍼를 관리하는 가장 기본적인 방법이며, Strawman 방식은 정적으로 버퍼를 할당하는 기본적인 버퍼관리 방법으로, 상용 스위치 등에서 제공하고 있는 기능이다.
본 발명에서는 ns-2 시뮬레이터를 이용하여 복수의 서버가 100Gbps 회선을 지원하는 단일 스위치에 연결되는 데이터 센터 내 컴퓨트 랙(Compute Rack)을 모사하였다. 베이스 RTT는 40us이며 각 스위치 포트는 1MB의 버퍼 크기를 가지며 이는 서비스 대기열 간에 공유된다.
전송 프로토콜으로는 TCP를 사용하였다. 패킷 스케줄링을 위해서는 Weighted Round Robin 스케줄러를 사용하였다. 최소 재전송 타이머는 5ms로 설정하였다. 본 실시예에서는 하나의 서비스가 하나의 트래픽 클래스를 이루어 하나의 서비스 대기열을 사용하는 상황을 가정한다. 따라서 서비스와 서비스 대기열을 혼용하여 사용한다.
본 실시예에서 8개의 서비스 트래픽 클래스가 동일한 가중치를 가지는 8개의 서비스 대기열에 매핑되어 있다. 각각의 서비스 I는 2*i개의 플로우를 실험 시작시 발생시킨다. 서비스 2~8은 실험 시작 200ms부터 50ms마다 순서대로 전송을 중단한다. 따라서 500ms에는 서비스 대기열 1이 유일하게 활성화되어 있는 대기열이다.
실험을 위해 매 10ms마다 각 대기열의 처리량을 측정하고 Jain's fairness 지표를 계산하였다. Jain's fairness 지표는 각 큐가 회선 대역폭을 얼마나 균등하게 공유하고 있는지를 수치로 보여준다.
또한, 작업 보존성을 평가하기 위해 각 대기열의 처리량 총 합도 함께 구하였다. 만약 사용된 솔루션이 작업 보존성과 균등 공유를 지원한다면 모든 성능 지표는 항상 수치가 높아야 한다.
도 5는 제안하는 본 발명이 균등 공유를 달성함을 보여준다. 본 발명에서 제안하는 BarberQ는 항상 1에 해당하는 Jain's fairness 지표값을 보여주었다.
Best-Effort는 도 1에서 보여준 바와 같이 서비스 대기열간의 네트워크 성능을 분리하지 못한다. 각 서비스 대기열당 고정된 버퍼 크기를 사용하는 Strawman 역시 BarberQ와 유사한 결과를 보여주었다. 그러나, 다음의 도 6의 결과에서 Strawman의 단점을 확인할 수 있다.
도 6은 본 발명에서 제안하는 기술이 작업 보존성을 달성함을 보여준다. 서비스 대기열 1이 유일하게 활성화된 대기열이 되는 500ms에서 제안하는 발명인 BarberQ만이 유일하게 높은 수치를 보임을 알 수 있다.
비록 Best-Effort의 경우 수치가 시간이 지남에 따라 회복하지만 앞서 도 5의 결과에서 알 수 있듯이 Best-Effort는 균등 공유를 지원하지 못한다. Strawman은 도 5의 결과에서 균등 공유를 지원하지만 도 6의 결과에서 작업 보존성을 달성하지 못함을 알 수 있다.
즉, 도 5와 도 6의 결과를 종합하면 제안하는 본 발명인 BarberQ만이 유일하게 작업보전성과 균등 공유를 달성함을 확인할 수 있다.
본 발명에 따라, 가중치에 따른 최소 버퍼 크기를 할당하고 서비스 대기열 크기가 포트 크기만큼 커질 수 있도록 허용하되 포트 버퍼에 남는 공간이 없고 최소 버퍼 크기 미만의 대기열 크기를 가진 서비스 대기열에 속한 패킷이 도착하면 대기열 길이가 가장 긴 서비스 대기열의 꼬리 패킷을 떨어뜨림으로써 도착하는 패킷을 받아들일 수 있는 공간을 확보할 수 있다.
이와 같은, 스위치 포트 내 다중 대기열 관리 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명은 복수의 서비스 트래픽을 수용하는 네트워크 스위치 장치 설계시 적용 가능하며, 유무선 네트워킹/통신 장비를 활용하는 ICT 시장 전반에 걸쳐 적용이 가능하다.
10: 스위치 포트 내 다중 대기열 관리 장치
110: 버퍼 크기 비교부
130: 대기열 길이 비교부
150: 공간 확보부

Claims (7)

  1. 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우, 포트에 할당된 버퍼 크기를 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합과 비교하는 단계;
    상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기를 초과하는 경우, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하는 단계;
    상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는 단계;
    버퍼 공간이 생길 때까지, 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계; 및
    상기 꼬리 패킷을 떨어뜨리는 경우, 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우, 상기 꼬리 패킷을 떨어뜨리는 대신 상기 현재 패킷(Pi)을 떨어뜨리는 단계;를 포함하고,
    상기 현재 패킷(Pi)의 크기와 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하가 될 때까지, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하여, 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열 j를 찾고, 상기 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 단계를 반복하는, 스위치 포트 내 다중 대기열 관리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하인 경우, 상기 현재 패킷(Pi)이 버퍼에 들어가는 단계를 더 포함하는, 스위치 포트 내 다중 대기열 관리 방법.
  4. 제1항에 있어서,
    상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 이상인 경우, 상기 현재 패킷(Pi)이 버퍼에 들어가는 단계를 더 포함하는, 스위치 포트 내 다중 대기열 관리 방법.
  5. 제1항, 제3항 및 제4항의 어느 하나의 항에 따른,
    상기 스위치 포트 내 다중 대기열 관리 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
  6. 네트워크 스위치에 서비스 대기열 i에 매핑되는 패킷(Pi)이 도착하는 경우, 현재 패킷(Pi)의 크기 및 모든 대기열 크기의 합의 합이 포트에 할당된 버퍼 크기를 초과하는 경우, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하는 버퍼 크기 비교부;
    상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열의 인덱스 j를 찾는 대기열 길이 비교부; 및
    버퍼 공간이 생길 때까지 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리고, 상기 꼬리 패킷을 떨어뜨리는 경우 상기 서비스 대기열 j의 길이가 기 설정된 길이 미만이 되는 경우, 상기 꼬리 패킷을 떨어뜨리는 대신 상기 현재 패킷(Pi)을 떨어뜨리는 공간 확보부를 포함하고,
    상기 현재 패킷(Pi)의 크기와 모든 대기열 크기의 합의 합이 상기 포트에 할당된 버퍼 크기 이하가 될 때까지,
    상기 버퍼 크기 비교부는, 상기 현재 패킷(Pi)의 크기와 현재 패킷(Pi)이 속한 서비스 대기열 i의 크기의 합을 스위치가 할당하는 최소 버퍼 크기와 비교하고,
    상기 대기열 길이 비교부는, 상기 현재 패킷(Pi)의 크기와 현재 패킷이 속한 서비스 대기열 i의 크기의 합이 상기 스위치가 할당하는 최소 버퍼 크기 미만인 경우, 현재 대기열 길이가 가장 긴 서비스 대기열 j를 찾으며,
    상기 공간 확보부는, 상기 대기열 길이가 가장 긴 서비스 대기열 j의 꼬리 패킷(Pj)을 떨어뜨리는 과정을 반복하는, 스위치 포트 내 다중 대기열 관리 장치.
  7. 삭제
KR1020190135566A 2019-10-29 2019-10-29 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치 KR102291987B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190135566A KR102291987B1 (ko) 2019-10-29 2019-10-29 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190135566A KR102291987B1 (ko) 2019-10-29 2019-10-29 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치

Publications (2)

Publication Number Publication Date
KR20210050940A KR20210050940A (ko) 2021-05-10
KR102291987B1 true KR102291987B1 (ko) 2021-08-20

Family

ID=75917308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190135566A KR102291987B1 (ko) 2019-10-29 2019-10-29 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치

Country Status (1)

Country Link
KR (1) KR102291987B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011147033A (ja) * 2010-01-15 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> キュー制御装置とその制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7023864B2 (en) * 2000-05-01 2006-04-04 Riverdelta Networks, Inc Data packet discarding
US7317683B2 (en) 2001-11-01 2008-01-08 International Business Machines Corporation Weighted fair queue serving plural output ports
KR100636272B1 (ko) 2005-01-10 2006-10-19 삼성전자주식회사 포트 스케쥴링 장치 및 그 방법
KR100716184B1 (ko) 2006-01-24 2007-05-10 삼성전자주식회사 네트워크 프로세서에서의 큐 관리 방법 및 그 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011147033A (ja) * 2010-01-15 2011-07-28 Nippon Telegr & Teleph Corp <Ntt> キュー制御装置とその制御方法

Also Published As

Publication number Publication date
KR20210050940A (ko) 2021-05-10

Similar Documents

Publication Publication Date Title
US10892994B2 (en) Quality of service in virtual service networks
US11729108B2 (en) Queue management in a forwarder
Kim et al. Buffer management of virtualized network slices for quality-of-service satisfaction
Ji et al. Performance of low-complexity greedy scheduling policies in multi-channel wireless networks: Optimal throughput and near-optimal delay
CN106850714B (zh) 缓存共享方法和装置
KR101737516B1 (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
CN112968845B (zh) 一种带宽管理方法、装置、设备及机器可读存储介质
CN109922003A (zh) 一种数据发送方法、系统及相关组件
KR102291987B1 (ko) 스위치 포트 내 다중 대기열 관리 방법, 이를 수행하기 위한 기록 매체 및 장치
US8660001B2 (en) Method and apparatus for providing per-subscriber-aware-flow QoS
Ji et al. Achieving optimal throughput and near-optimal asymptotic delay performance in multichannel wireless networks with low complexity: a practical greedy scheduling policy
Lu et al. Weighted fair queuing with differential dropping
Hu et al. Dynamic queuing sharing mechanism for per-flow quality of service control
US11012378B2 (en) Methods and apparatus for shared buffer allocation in a transport node
KR102179769B1 (ko) 다중 큐를 지원하는 네트워크 정책 적용 방법, 이를 수행하기 위한 기록 매체 및 장치
US11516145B2 (en) Packet control method, flow table update method, and node device
CN111756557B (zh) 一种数据传输方法及装置
KR100745679B1 (ko) 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치
Bodas et al. Scheduling for multi-channel wireless networks: Small delay with polynomial complexity
G∤ ąbowski et al. Simulation studies of communication systems with mutual overflows and threshold mechanisms
Liu et al. Queue management algorithm for multi-terminal and multi-service models of priority
CN111277513B (zh) 一种pq队列扩容实现方法、装置、设备及存储介质
CN117793583A (zh) 报文转发方法、装置、电子设备及计算机可读存储介质
US20090201942A1 (en) Method and apparatus for marking and scheduling packets for transmission
CN117278489A (zh) 端口队列容量的动态调整方法、系统、终端及存储介质

Legal Events

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