KR20140011531A - 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치 - Google Patents
가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치 Download PDFInfo
- Publication number
- KR20140011531A KR20140011531A KR1020120071135A KR20120071135A KR20140011531A KR 20140011531 A KR20140011531 A KR 20140011531A KR 1020120071135 A KR1020120071135 A KR 1020120071135A KR 20120071135 A KR20120071135 A KR 20120071135A KR 20140011531 A KR20140011531 A KR 20140011531A
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- slot
- session
- counter
- stored
- 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/50—Queue scheduling
-
- 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/56—Queue scheduling implementing delay-aware scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
스케줄링 장치는 입력되는 패킷에 대하여 패킷 출발 시각을 산출하고, 복수의 슬롯을 포함하는 스케줄러에서 상기 패킷 출발 시각에 대응하는 슬롯을 선택한다. 그리고 선택된 슬롯에 저장되는 패킷의 개수와 상기 입력된 패킷에 대응하는 가상 포트--상기 가상 포트는 외부에 연결되는 스케줄링 기능을 가지지 않는 스위치 장치의 출력 포트를 나타냄--에 해당하는 패킷의 개수를 고려하여, 상기 선택된 슬롯에 대하여 패킷을 저장할지를 결정하여 스케줄링 수행한다.
Description
본 발명은 패킷 스케줄링 방법 및 그 장치에 관한 것으로, 더욱 상세하게 말하자면, 다른 스위치에 있는 포트를 가상 포트로 보고 이를 고려하여 패킷 스케줄링을 수행하는 방법 및 그 장치에 관한 것이다.
무선 인터넷 서비스가 활성화되면서 무선 인터넷 트래픽이 급증하고 있다. 무선 통신 자원은 공중 주파수의 대역폭에 제한을 받으므로 급증하는 트래픽을 수용하기 위해서는 기지국을 추가로 설치 등의 통신 자원을 확대 및 보충하여야 한다.
기지국의 확대 등을 통한 통신 자원의 보충은 인터넷 트래픽과 같은 저급의 베스트 에포트 (best effort) 서비스 트래픽을 더 수용하는데 적합하였으나, 음성 통신과 같은 고급의 트래픽을 수용하는 데는 문제가 생기고 있다. 즉, 대량의 인터넷 트래픽에 의해 음성 트래픽이 밀려서 음성 통신이 끊기는 등의 문제점이 발생한다. 따라서 무선 인터넷 트래픽과 음성 트래픽이 혼용되어 전달되는 무선 액세스 망에서는 트래픽의 종류에 따라 품질을 구분하고 음성 통신과 같은 고급의 실시간 트래픽을 우선 전달하는 등 트래픽의 스케줄링이 필요하다.
그러나 기존의 기지국에 설치되어 있는 소형 패킷 스위치는 이러한 품질 등급에 따른 스케줄링 기능이 없으므로, 통신 품질의 향상을 위해서는 수많은 기지국의 소형 패킷 스위치를 스케줄링 기능이 있는 패킷 스위치로 모두 교체해야 하는 어려움이 있다.
또한 기존의 스케줄링 장치는 스위치 시스템 내에서 서비스 등급에 따라 패킷을 스케줄링하기 때문에 통신 서비스의 품질을 준수할 수 있으나, 스케줄링 기능이 없는 패킷 스위치와 연동되어 동작되면 전체적으로 통신 품질이 현저하게 떨어지는 문제점이 있다. 따라서 전체적으로 통신 품질을 제어하려면 연결되는 모든 스위치가 서비스 타입에 따라 트래픽을 스케줄링하는 기능을 갖추어야 하므로, 품질 관리가 어려운 문제점이 있었다.
본 발명이 해결하고자 하는 과제는 기지국의 패킷 스위치가 스케줄링 기능이 없어도, 코어망에 있는 패킷 스위치가 기지국의 패킷 스위치 포트를 미리 고려하여, 서비스 품질 등급에 따라 트래픽을 가입자에게 전달하여 트래픽을 손실 없이 실시간으로 통신할 수 있도록 하는 스케줄링 방법 및 그 장치를 제공하는 것이다.
위의 과제를 위한 본 발명의 특징에 따른 스케줄링 방법은, 입력되는 패킷의 헤더로부터 세션 식별자를 획득하고 패킷 메모리에 상기 패킷을 저장하는 단계; 상기 패킷에 대하여 패킷 출발 시각을 산출하는 단계; 복수의 슬롯을 포함하는 스케줄러에서 상기 패킷 출발 시각에 대응하는 슬롯을 선택하는 단계; 상기 선택된 슬롯에 이미 저장되어 있는 세션 식별자의 개수와 상기 입력된 패킷에 대응하는 가상 포트--상기 가상 포트는 외부에 연결되는 스케줄링 기능을 가지지 않는 스위치 장치의 출력 포트를 나타냄--에 해당하는 세션 식별자의 개수를 고려하여, 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장할지를 결정하는 단계; 및 상기 선택된 슬롯에 대하여 상기 세션 식별자를 저장하는 것으로 결정되면, 상기 선택된 슬롯에 세션 식별자를 저장하고, 상기 패킷의 출발 시각이 되면 저장된 상기 세션 식별자를 이용하여 상기 패킷 메모리에 저장된 상기 패킷을 읽어와서 패킷을 출력하는 단계를 포함한다.
여기서 상기 패킷을 저장하는 단계는 상기 입력되는 패킷의 헤더에 있는 해당 세션 식별자를 읽는 단계; 상기 세션 식별자에 대응하는 특성 파라미터를 획득하는 단계; 및 상기 특성 파라미터를 이용하여 상기 패킷을 상기 패킷 메모리에 저장하는 단계를 포함할 수 있다.
상기 특성 파라미터는 세션의 허용 대역폭인 서비스 대역폭, 서비스 타입, 세션에 해당되는 패킷이 통과한 개수를 나타내는 패킷 개수, 패킷이 전달되는 출력 포트 번호, 패킷이 더 전달되어야 하는 다음 출력 포트 번호인 가상 포트 번호, 그리고 세션에 해당되는 패킷들이 링크드 리스트 방식으로 저장되어 있는 패킷 메모리의 세션 시작 주소와 세션 끝 주소를 포함할 수 있다.
한편 상기 패킷 메모리에 저장하는 단계는 상기 입력되는 패킷을 상기 특성 파라미터에 포함된 패킷 메모리의 세션 시작 주소와 세션 끝 주소를 토대로 패킷 메모리에 저장하는 단계를 포함할 수 있다.
또한 상기 패킷 출발 시각을 산출하는 단계는 상기 특성 파라미터에서 상기 세션의 대역폭과 서비스 타입 항목을 토대로 상기 패킷의 출발 시각을 계산하는 단계를 포함할 수 있다.
한편 상기 결정하는 단계는 상기 슬롯에 대하여 저장된 세션 식별자의 개수를 나타내는 제1 패킷 카운터의 카운터값과, 상기 슬롯에 저장되어 있는 세션 식별자들 중에서 상기 입력된 패킷에 대응하는 가상 포트에 해당하는 세션 식별자의 개수를 나타내는 제2 패킷 카운터의 카운터 값을 고려하여 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장할지를 결정할 수 있다.
이 경우 상기 결정하는 단계는 상기 제1 패킷 카운터의 카운터값을 갱신시키는 단계; 상기 갱신된 제1 패킷 카운터의 카운터값을 상기 슬롯에 대하여 미리 설정된 제1 최대치를 비교하는 단계; 및 상기 갱신된 제1 패킷 카운터의 카운터값이 상기 제1 최대치보다 작은 경우에 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장하는 것으로 결정하는 단계를 포함할 수 있다.
또한 상기 결정하는 단계는 상기 갱신된 제1 패킷 카운터의 카운터값이 상기 제1 최대치보다 큰 경우에 상기 갱신된 제1 패킷 카운터의 카운터값을 갱신되기 이전의 값으로 환원하고, 상기 스케줄러의 슬롯들 중에서 다음 순번에 해당하는 슬롯을 선택하는 단계를 더 포함할 수 있다.
상기 저장하는 것으로 결정하는 단계는 상기 제2 패킷 카운터의 카운터값을 갱신시키는 단계; 상기 갱신된 제2 패킷 카운터의 카운터값을 상기 가상 포트에 대하여 미리 설정된 제2 최대치를 비교하는 단계; 및 상기 갱신된 제2 패킷 카운터의 카운터값이 상기 제2 최대치보다 작은 경우에 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장하는 것으로 최종 결정하는 단계를 포함할 수 있다.
또한 상기 저장하는 것으로 결정하는 단계는 상기 갱신된 제2 패킷 카운터의 카운터값이 상기 제2 최대치보다 큰 경우에 상기 갱신된 제2 패킷 카운터의 카운터값을 갱신되기 이전의 값으로 환원하고, 상기 스케줄러의 슬롯들 중에서 다음 순번에 해당하는 슬롯을 선택하는 단계를 더 포함할 수 있다. 여기서 상기 제2 최대치는 상기 가상 포트의 대역폭을 토대로 결정될 수 있다.
한편 상기 패킷을 출력하는 단계는 현재 시각에 출발해야 할 패킷의 상기 세션 식별자가 저장된 슬롯을 출력될 현재 슬롯으로 지정하는 단계; 상기 스케줄에서, 상기 현재 슬롯, 상기 현재 슬롯의 이전 슬롯, 상기 이전 슬롯의 이전 슬롯에 각각 세션 식별자가 저장되어 있는지를 확인하는 단계; 상기 현재 슬롯, 상기 현재 슬롯의 이전 슬롯, 상기 이전 슬롯의 이전 슬롯에 세션 식별자가 있는 경우, 각 슬롯에 포함된 버퍼들에 대하여 부여된 가중치를 토대로 출력할 패킷의 상기 세션 식별자를 선택하고, 선택된 상기 세션 식별자를 출력하는 단계; 및 선택된 상기 세션 식별자를 이용하여 상기 패킷 메모리에 저장된 해당 패킷을 읽어와서 상기 패킷을 출력하는 단계를 포함할 수 있다.
본 발명의 다른 특징에 따른 스케줄링 장치는, 복수의 슬롯을 포함하고, 상기 패킷 출발 시각에 대응하는 슬롯에 대하여, 상기 슬롯에 저장되는 세션 식별자의 개수와 상기 입력된 패킷에 대응하는 가상 포트--상기 가상 포트는 외부에 연결되는 스케줄링 기능을 가지지 않는 스위치 장치의 출력 포트를 나타냄--에 해당하는 세션 식별자의 개수를 고려하여, 상기 슬롯에 대하여 상기 패킷의 세션 식별자를 선택적으로 저장하는 스케줄링을 수행하는 스케줄링부; 및 상기 패킷 출발 시각에 대응하는 슬롯에 저장된 세션 식별자에 해당하는 패킷을 상기 패킷 메모리로부터 읽어와서 출력하는 출력 버퍼부를 포함한다.
여기서 상기 각 슬롯은 상기 슬롯에 대하여 저장된 패킷의 개수를 나타내는 제1 패킷 카운터; 가상 포트별로 해당하는 패킷의 개수를 나타내는 제2 패킷 카운터; 및 서비스 타입별로 해당 세션 식별자를 저장하는 복수의 버퍼를 포함할 수 있으며, 상기 복수의 버퍼들은 서비스 타입에 따라 서로 다른 가중치가 부여되어 있을 수 있다.
상기 스케줄링부는 상기 패킷 출발 시각에 대응하는 슬롯에 해당하는 상기 제1 패킷 카운터의 카운터값을 갱신하고, 상기 갱신된 카운트값이 상기 슬롯에 대하여 미리 설정된 제1 최대치보다 작은 경우에, 상기 슬롯에 상기 패킷의 세션 식별자를 저장할 수 있다.
상기 스케줄링부는 상기 패킷 출발 시각에 대응하는 슬롯에 해당하는 상기 제2 패킷 카운터의 카운터값을 갱신하고, 상기 갱신된 카운트값이 상기 가상 포트의 대역폭을 토대로 미리 설정된 제2 최대치보다 작은 경우에, 상기 슬롯에 상기 패킷의 세션 식별자를 저장할 수 있다.
여기서 상기 스케줄링부는 상기 갱신된 제1 패킷 카운터의 카운터값이 상기 제1 최대치보다 크거나, 상기 갱신된 제2 패킷 카운터의 카운터값이 상기 제2 최대치보다 큰 경우, 갱신된 카운트값을 갱신되기 이전의 값으로 환원하고, 상기 복수의 슬롯들 중에서 다음 순번에 해당하는 슬롯을 선택할 수 있다.
한편 상기 스케줄링부는 현재 시각에 출발해야 할 패킷의 세션 식별자가 저장된 슬롯인 현재 슬롯, 상기 현재 슬롯의 이전 슬롯, 상기 이전 슬롯의 이전 슬롯의, 각각의 버퍼에 각각 세션 식별자가 저장되어 있는 경우에, 각 슬롯에 포함된 버퍼들에 대하여 부여된 가중치를 토대로 출력할 세션 식별자를 선택하고, 선택된 세션 식별자를 출력할 수 있다.
또한 상기 출력 버퍼부는 복수의 버퍼들을 포함할 수 있으며, 상기 복수의 버퍼들은 서비스 타입별로 구분되고 서비스 타입에 따른 가중치가 부여되어 있을 수 있다. 그리고 상기 서비스 타입별 버퍼들은 다시 각각 출력 포트 별 버퍼로 구분되고 출력 포트 별로 같은 가중치가 부여되어 있을 수 있으며, 상기 복수의 버퍼 중에서 하나가 선택되어 저장하고 있던 세션 식별자가 출력되면, 상기 세션 식별자를 이용하여 상기 패킷 메모리에서 해당 패킷을 읽어오고, 상기 패킷을 최종적으로 출력할 수 있다.
본 발명의 실시 예에 따르면, 기지국의 패킷 스위치 대신에 코어망에 있는 패킷 스위치가 기지국의 대역 상황에 맞도록 트래픽을 스케줄링하여 기지국으로 패킷을 전달함으로써, 기지국의 패킷 스위치는 스케줄링 기능이 없어도 트래픽의 혼잡 중에서도 서비스 품질 등급에 따라 트래픽을 가입자에게 전달하여, 가입자는 고급의 트래픽을 손실없이 실시간으로 통신할 수 있다. 또한 기지국에 스케줄링 기능이 없는 스위치를 설치하여도 기지국의 통신 자원을 잘 활용할 수 있으므로, 저비용으로 액세스망을 효율적으로 구축할 수 있다.
도 1은 본 발명의 실시 예에 따른 패킷 스위치 시스템의 구조를 나타낸 도이다.
도 2는 본 발명의 실시 예에 따른 스케줄링 장치의 구조를 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 패킷 메모리의 구조를 나타낸 예시도이다.
도 4는 본 발명의 실시 예에 따른 세션 테이블의 구조를 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른 스케줄링부의 구조를 나타낸 도이다.
도 6은 본 발명의 실시 예에 따른 스케줄링부에서 패킷이 출발되는 과정을 나타낸 예시도이다.
도 7은 본 발명의 실시 예에 따른 출력 버퍼부의 구조를 나타낸 도이다.
도 8 및 도 9는 본 발명의 실시 예에 따른 스케줄링 방법의 흐름도이다.
도 2는 본 발명의 실시 예에 따른 스케줄링 장치의 구조를 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 패킷 메모리의 구조를 나타낸 예시도이다.
도 4는 본 발명의 실시 예에 따른 세션 테이블의 구조를 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른 스케줄링부의 구조를 나타낸 도이다.
도 6은 본 발명의 실시 예에 따른 스케줄링부에서 패킷이 출발되는 과정을 나타낸 예시도이다.
도 7은 본 발명의 실시 예에 따른 출력 버퍼부의 구조를 나타낸 도이다.
도 8 및 도 9는 본 발명의 실시 예에 따른 스케줄링 방법의 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 발명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조하여 본 발명의 실시 예에 따른 스케줄링 방법 및 그 장치에 대하여 설명한다.
본 발명의 실시 예에서는 입력되는 패킷에 대해 스위치 출력 포트는 물론 가상 출력 포트의 대역폭을 고려하여 패킷을 스케줄링한다. 여기에서 가상 출력 포트란, 외부의 다른 스위치의 출력 포트를 제어하고자 할 때 그 출력 포트를 뜻한다.
도 1은 본 발명의 실시 예에 따른 패킷 스위치 시스템의 구조를 나타낸 도이다.
첨부한 도 1에서와 같이, 본 발명의 실시 예에 따른 패킷 스위치 시스템(1)은 스위치부(10)와, 복수의 입력부(20) 그리고 복수의 출력부(30)를 포함한다.
복수의 입력부(20)는 복수의 패킷을 수신하여 스위치부(20)로 제공하며, 스위치부(10)는 각각의 입력부(20)로부터 제공되는 패킷을 처리하여 복수의 출력부(30) 중 적어도 하나의 출력부로 제공한다.
이러한 구조로 이루어지는 패킷 스위치 시스템(1)은 패킷 스케줄링 장치 즉, 스케줄링 장치(100)를 포함한다. 스케줄링 장치(100)는 패킷 스위치 시스템(1)의 입력부(20)에 포함될 수 있으며, 또는 출력부(30)에 포함될 수 있다. 또는 입력부(20)와 출력부(30)에 각각 포함될 수도 있다.
입력부(20)가 스케줄링 장치를 포함하는 경우, 인터페이스 모듈인 입력부(20)는 스위치부(10)에 패킷을 보내기 전에 패킷의 특성에 맞도록 패킷을 스케줄링한다. 또한 출력부(30)가 스케줄링 장치를 포함하고, 물리적인 출력 포트를 복수개 포함하는 경우, 인터페이스 모듈인 출력부(30)는 각 물리적 출력 포트의 대역에 맞도록 패킷 트래픽을 스케줄링한다.
본 발명의 실시 예에 따른 스케줄링 장치(100)는 스케줄링 기능을 가지지 않는 외부의 스위치와 연동되어 서비스 품질에 맞도록 패킷 트래픽을 스케줄링 할 수 있다. 스케줄링 장치(100)는 코어망에 위치된 상태에서 스케줄링 기능을 가지지 않는 외부의 스위치와 연동될 때, 외부 스위치의 출력 포트를 가상 포트로 처리하고 가상 포트의 대역폭을 고려하여 패킷 트래픽을 스케줄링을 수행한다. 이에 따라 스케줄링 기능을 가지지 않는 외부의 스위치와의 연동시 트래픽이 제어되지 않아서 통신 품질이 저하되는 것을 방지할 수 있다.
도 2는 본 발명의 실시 예에 따른 스케줄링 장치의 구조를 나타낸 도이다.
첨부한 도 2에 도시되어 있듯이, 본 발명의 실시 예에 따른 스케줄링 장치(100)는 패킷 세션 제어부(110), 패킷 메모리(120), 세션 테이블(130), 스케줄링부(140), 그리고 출력 버퍼부(150)를 포함한다.
패킷 세션 제어부(110)는 입력되는 패킷이 속하는 세션의 특성 파라미터를 토대로 패킷의 출발 시각을 결정한다. 패킷 세션 제어부(110)는 세션의 식별자 즉, 세션 ID를 토대로 세션 테이블(120)로부터 세션의 특성 파라미터를 획득하고, 획득한 특성 파라미터를 토대로 입력되는 패킷의 출발 시각을 결정한다.
패킷 메모리(120)는 패킷을 저장하며, 특히 패킷을 링크드 리스트(linked list) 방식으로 저장한다. 패킷 메모리(120)는 패킷 세션 제어부(110)로부터 전달되는 패킷을 저장하며, 세션별 패킷들이 순차적으로 저장된다. 저장된 패킷은 출발 시각이 되면 출력 버퍼부(150)가 읽어간다.
도 3은 본 발명의 실시 예에 따른 패킷 메모리의 구조를 나타낸 예시도이다. 도 3에서와 같이, 패킷 메모리(120)에는 패킷과, 링크드 리스트를 위해 앞에 먼저 들어온 패킷이 저장된 주소, 그리고 다음 패킷이 저장된 주소가 저장되어 있다.
세션 테이블(130)는 패킷이 소속된 각 세션의 특성 파라미터를 저장하고 있다. 도 4는 본 발명의 실시 예에 따른 세션 테이블을 구조를 나타낸 예시도이다. 도 4에 예시된 바와 같이, 세션 테이블(130)에는 각 세션의 ID에 대응하여 세션의 특성 파라미터가 저장되어 있다. 특성 파라미터는 세션의 허용 대역폭인 서비스 대역폭, 서비스 타입, 세션에 해당되는 패킷이 통과한 개수를 나타내는 패킷 개수, 패킷이 전달되는 출력 포트 번호, 패킷이 더 전달되어야 하는 다음 출력 포트 번호인 가상 포트 번호, 그리고 패킷 메모리(120)에 그 세션에 해당되는 패킷들이 링크드 리스트 방식으로 저장되어 있는 패킷 시작 주소와 패킷 끝 주소, 등이다.
여기서 스케줄링 장치(100)가 패킷 스위치 시스템(10)의 입력부(20)에 위치하는 경우, 출력 포트 번호는 스위치부(10)의 출력 포트를 나타내며, 가상 출력 포트 번호는 출력부(30)에 연결된 스케줄링 기능이 없는 소형 스위치의 출력 포트를 나타낸다.
스케줄링부(140)는 가상 포트를 고려하여 패킷들을 스케줄링하며, 패킷 세션 제어부(110)에서 결정된 패킷 출발 시각에 패킷이 출력 포트로 전달될 수 있도록 패킷 스케줄링을 수행한다.
스케줄링부(140)는 스케줄링시 통신 품질을 지키기 위해, 통신 서비스의 타입에 따라 트래픽을 고급의 실시간 트래픽, 고급의 비 실시간 트래픽, 저급의 실시간 트래픽, 저급의 비 실시간 트래픽으로 구분하고, 구분된 품질의 수준에 맞추어 패킷을 처리한다. 예를 들면 음성 전화 서비스는 고급의 실시간 트래픽에 해당되고, 인터넷 서비스는 저급의 비 실시간 트래픽에 해당된다.
패킷이 입력되면, 스케줄링부(140)는 패킷의 출발 시각에 따라 해당 패킷이 출발될 수 있도록 스케줄링을 한다. 비실시간 트래픽에 대해서는 해당 패킷이 바로 출발될 수 있도록 처리하며, 이전에 출발하지 못하고 밀려 있는 패킷들이 저장되어 있으면 해당 패킷을 밀려 있는 패킷의 뒤에 저장하여, 밀려 있는 앞의 패킷이 먼저 출발한 뒤에 해당 패킷이 출발할 수 있도록 스케줄링 한다.
이와 같이 패킷의 출발 시각을 제어하는 스케줄링부(140)는 가상 출력 포트의 대역폭을 고려하여 패킷의 출발 시각을 제어하는 캘린더 방식의 스케줄러로 이루어질 수 있다.
도 5는 본 발명의 실시 예에 따른 스케줄링부의 구조를 나타낸 도이다.
스케줄링부(140)는 도 5에 도시된 바와 같이, 갤린더 방식의 스케줄러로 이루어질 수 있다. 스케줄링부(140)는 복수의 타임 슬롯(t1, t2, …, tn)을 포함하며, 각각의 슬롯은 패킷의 세션 ID가 저장되는 복수의 버퍼(B)와 슬롯에 저장된 세션 ID의 양 또는 개수를 나타내는 패킷 카운터(C1)와 가상 포트별 세션 ID의 양 또는 개수를 나타내는 패킷 카운터(C2)를 포함한다.
여기서 슬롯에 저장된 세션 ID의 양 또는 개수를 나타내는 패킷 카운터(C1)는 해당 슬롯에 저장되는 세션 ID들의 개수를 카운트한다. 가상 포트의 패킷 카운터(C2)는 해당 슬롯에 저장된 세션 ID 중에서 해당 가상 포트로 출력되는 패킷의 세션 ID가 저장되는 양 또는 개수(이하, 개수로 총칭함)를 나타낸다. 세션에 대응하는 가상 포트의 번호는 세션 테이블로부터 획득되는 특성 파라미터로부터 알 수 있다. 이러한 카운터의 값을 토대로 슬롯에 소정 가상 포트로 출력될 패킷이 어느 정도 저장되어 있는지를 알 수 있으며, 가상 포트의 허용 가능한 최대치에 맞도록 패킷의 세션 ID를 해당 슬롯에 저장하여 스케줄링할 수 있다.
스케줄링부(140)의 각각의 슬롯은 세션 ID의 출발 시각에 대응하며, 스케줄링부(140)는 패킷 세션 제어부(110)로부터 패킷의 출발 시각 그리고 해당 세션의 ID 를 제공받으며, 패킷의 출발 시각에 해당하는 슬롯에 세션 ID를 저장한다. 즉, 스케줄링부(140)는 입력되는 패킷의 출발 시각에 해당하는 슬롯에 패킷의 세션 ID를 저장한다. 슬롯에 저장된 세션 ID들은 슬롯의 순번에 따라 순차적으로 출발된다. 예를 들어, 현재 시점을 k라 하면 k번째 슬롯에 저장된 세션 ID가 출발하고, 다음 시간에는 k+1번째 타임 슬롯에 저장된 세션 ID가 출발하며, 그 다음 시간에는 k+2번째 타임 슬롯에 저장된 세션 ID가 출발한다.
한편 각 슬롯은 버퍼(B)를 포함하는데, 버퍼(B)는 서비스 타입에 따라 복수개로 이루어지며, FIFO(FirstIn Fist Out)로 동작한다. 여기서는 서비스의 종류를 위에서 살펴본 바와 같이, 고급의 실시간 트래픽, 고급의 비 실시간 트래픽, 저급의 실시간 트래픽, 저급의 비 실시간 트래픽인 4가지 종류로 구분한 것을 예로 든다. 서비스의 종류가 4가지인 경우, 슬롯은 도 5에서와 같이, 각각 4개의 버퍼(B1, B2, B3, B4)를 포함한다. 입력되는 패킷의 세션의 특성 파라미터로부터 획득되는 서비스 타입을 토대로, 해당 세션 ID가 패킷의 출발 시각에 대응하는 슬롯의 복수의 버퍼들 중에서 서비스 타입에 해당하는 버퍼에 저장된다. 서비스 타입별로 그 중요도에 따라 서로 다른 가중치가 부여되어, 각 버퍼(B1, B2, B3, B4)에 서비스의 중요도에 따른 가중치가 각각 부여되고, 각 버퍼에 저장된 세션 ID들은 WRR(weight round robin) 방식으로 출력된다.
도 6은 본 발명의 실시 예에 따른 스케줄링부에서 세션 ID가 출발되는 과정을 나타낸 예시도이다.
입력되는 패킷의 세션 ID는 해당하는 트래픽이 어떠한 서비스 타입에 해당하는지에 따라 출발 시각에 대응하는 슬롯의 복수의 버퍼들 중에서 서비스 타입에 대응하는 버퍼에 FIFO 방식으로 저장된다. 출발할 때에는 첨부한 도 6에 예시되어 있듯이, WRR 방식에 따라 보다 높은 가중치를 가지는 버퍼에 저장된 세션 ID가 먼저 출력된다. 구체적으로 k 번째 , k-1 번째, k -2 번째 슬롯의 버퍼들에 FIFO 방식에 따라 세션 ID들이 각각 저장되어 있는 상태에서, 각 버퍼별로 부여된 가중치를 토대로 WRR 방식으로 현재 시점에서 출발할 세션 ID를 결정한다.
한편 k-1 번째나 k-2번째의 슬롯에 저장된 세션 ID들이 많아서 그 해당 출발 시점인 k-2, k-1 시간에 저장된 세션 ID가 다 출발하지 못하는 경우가 발생할 수 있다. 이 경우를 고려하여, 스케줄링부(140)는 k 시점에서 k번째 슬롯의 세션 ID를 출발시키기 전에 그 이전의 슬롯 예를 들어, k-2번째, k-1번째 슬롯에 남아 있는 세션 ID가 있는지를 확인한다. 그리고 확인 결과 이전 타임 슬롯에 남아 있는 세션 ID가 있으면 남아 있는 세션 ID들도 출발시킨다.
한편, 각 슬롯은 슬롯에 저장되는 세션 ID의 개수를 나타내는 패킷 카운터(C1)와 가상 포트별로 저장되는 세션 ID의 개수를 나타내는 패킷 카운터(C2)를 포함하고 있으므로, 이러한 카운터들을 토대로 슬롯에 저장되는 세션 ID의 양과 가상 포트 별로 저장된 세션 ID 양을 용이하게 알 수 있다. 스케줄링부(140)는 각 슬롯에 세션 ID를 저장하면서 슬롯의 패킷 카운터(C1)와 가상 포트 별 패킷 카운터(C2)를 갱신한다. 스케줄링부(140)는 슬롯의 패킷 카운터(C1)의 카운터값이 미리 설정된 슬롯의 저장 가능한 최대치보다 크면 해당 슬롯에 세션 ID를 저장할 수 없는 것으로 판단하고, 해당 패킷 카운터(C1)의 카운터 값을 원래의 값 즉, 카운터값을 갱신하기 전의 값으로 환원한다. 그리고 세션 ID는 다음 슬롯에 저장한다. 또한 스케줄링부(140)는 가상 포트별 패킷 카운터(C2)의 카운터값이 해당 가상 포트의 대역폭에 따라 미리 설정된 출력 가능한 허용값보다 크면, 해당 슬롯에 세션 ID를 저장할 수 없는 것으로 판단하고, 해당 패킷 카운터(C2)의 카운터 값을 원래의 값으로 환원한다. 그리고 세션 ID는 다음 슬롯에 저장한다.
이러한 구조로 이루어지는 스케줄링부(140)에서 저장된 세션 ID는 해당 출발 시각이 되면 출력된다. 스케줄링부(140)에서 단위 시간마다 슬롯이 하나씩 이동하면서 해당 슬롯이 출발 슬롯으로 지정되며, 그 슬롯에 저장된 세션 ID가 출력된다. 이때, 이전에 출발 슬롯으로 지정되었으나 다음 단의 혼잡으로 출발하지 못한 세션 ID를 가지고 있는 이전의 슬롯이 있을 수 있다. 이러한 슬롯에 있는 세션 ID를 먼저 출력시켜야 하므로, 이런 슬롯의 세션 ID는 현재 출발 슬롯보다 더 우선 순위가 높다고 볼 수 있다. 본 발명의 실시 예에서는 이전 슬롯 및 이전의 이전 슬롯의 각 버퍼와 이번 슬롯의 각 버퍼에 서로 다른 가중치를 두고 WRR 방식으로 출발할 세션 ID를 찾아서 출발시킬 수 있다.
한편, 출력 버퍼부(150)는 스케줄링부(140)로부터 패킷의 세션 ID를 제공받아서, 출력 포트의 특성에 따라 다시 스케듈링하여 출력될 세션 ID를 선택한 다음 그 세션 ID에 해당되는 패킷을 패킷 메모리에서 읽어와서 출력한다. 도 7은 본 발명의 실시 예에 따른 출력 버퍼부의 구조를 나타낸 도이다. 출력 버퍼부(150)는 서비스 타입에 따른 복수의 버퍼를 포함한다. 여기서는 4가지의 서비스 타입이 있으므로 출력 버퍼부(150)가 4개의 버퍼(151, 152, 153, 154)를 포함하는 것을 예로 들었다.
각각의 버퍼((151, 152, 153, 154)에도 서비스 타입에 따른 가중치가 각각 부여되며, 가중치는 서비스 타입의 중요도에 따라 달라진다. 이에 따라 각각의 버퍼(151, 152, 153, 154)에 저장되는 세션 ID들은 WRR 방식에 따라 출력된다.
한편 각 버퍼(151, 152, 153, 154)들은 포트별 버퍼(*1, …, #n)를 포함하는 형태로 이루어질 수 있다. 실질적으로 패킷이 출력되어야 하는 출력 포트별로 구분되는 버퍼들(*1, …, #n)이 각 버퍼(151, 152, 153, 154)에 포함되며, 출력 포트별 버퍼들(*1, …, #n)은 RR(round robin) 방식으로 출력될 수 있다.
여기서 출력 포트들은 가상 포트로서 스위치부(10)의 출력 포트에 대응될 수 있고 출력부(30)의 출력 포트에 대응될 수도 있다. 스케줄링 장치(100)가 패킷 스위치 시스템(10)의 입력부(20)에 위치하는 경우, 출력 포트는 스위치부(10)의 출력에 해당된다. 본 발명의 실시 예에서는 이러한 스위부(10)의 출력 포트를 가상한 가상 포트를 이용하며, 이러한 가상 포트에 대응하는 가상 출력 버퍼(VOQ: virtual output queue)를 사용하여 패킷들을 출력한다. 여기서는 출력 버퍼부(150)의 각 버퍼들이 가상 포트에 대응하는 가상 출력 버퍼로서 기능한다. 가상 출력 버퍼로서 기능하는 출력 버퍼부(150)의 각 버퍼들은 예를 들어, 스위치부(10)에 트래픽이 혼잡하면 패킷을 스위치부(10)로 보내지 않고 보관하며, 혼잡하지 않으면 스위치부(10)의 출력 포트로 패킷을 보낸다.
한편 스케줄링 장치(100)가 패킷 스위치 시스템(1)의 출력부(30)에 위치하고, 출력부(30)가 여러 개의 저속 출력 포트를 갖는 경우, 출력부(30)는 저속의 출력 포트에 속도를 맞추기 위한 버퍼를 포함한다. 이러한 출력부(30)의 버퍼에서 패킷이 나가지 못하고 있으면 버퍼는 계속 채워지게 되고, 더 이상 채울 수 없으면 스케줄링 장치(100)로 패킷을 보내지 않도록 하는 BP(back pressure) 신호를 보낸다. 스케줄링 장치(100)는 BP 신호를 받으면 패킷을 출력 포트로 보내지 않고 스케줄링부(140)의 슬롯에 그냥 저장하며, 다음 슬롯에 해당하는 시간에 출력 포트로 보낸다.
다음에는 이러한 구조를 토대로 본 발명의 실시 예에 따른 패킷 스케줄링 방법에 대하여 설명한다.
도 8 및 도 9는 본 발명의 실시 예에 따른 패킷 스케줄링 방법의 흐름도이다. 특히 도 8은 패킷을 스케줄링 장치에 입력하는 패킷 스케줄링 방법을 나타내며, 도 9는 스케줄링 장치에 저장된 패킷을 출력하는 패킷 스케줄링 방법을 나타낸다.
여기서는 스케줄링 장치(100)가 패킷 스위치 시스템(1)의 입력부(20)에 포함되는 형태로 구현된 것을 예로 들어서 설명한다. 이에 따라 스케줄링 장치(100)의 출력 포트는 스위치부(10)의 출력 포트에 해당하며, 이러한 스위치부(10)의 출력 포트를 가상 포트로 처리하여 패킷 스케줄링을 수행한다.
첨부한 도 8에 도시되어 있듯이, 패킷이 입력되면 스케줄링 장치(100)의 패킷 세션 제어부(110)는 해당 패킷의 출발 시각을 결정한다(S100). 구체적으로 패킷 세션제어부(110)는 입력되는 패킷의 헤더에서 패킷이 소속된 세션 ID를 추출하고, 세센 ID를 이용하여 세션 테이블(130)로부터 세션의 특성 파라미터를 획득한다(S110). 그리고 특성 파라미터에 포함된 패킷 시작 주소와 패킷 끝 주소를 토대로 패킷 메모리(120)에 해당 세션의 패킷을 저장한다.(S120)
패킷 세션 제어부(110)는 패킷이 소속된 세션의 대역폭을 측정하고, 미리 설정된 세션의 허용 대역폭과 비교하여 패킷의 출발 시각을 계산한다. 세션의 대역폭을 측정할 때에는 GCRA (Generic cell rate algorithm) 방법을 사용할 수 있다. 세션의 대역폭 외에도 출력 포트 단위로 대역폭도 측정된다. 측정된 세션의 대역폭 및 출력 포트별 대역폭, 그리고 세션의 특성 파라미터를 토대로, 패킷 세션 제어부(110)는 패킷이 출발해야 할 시간인 출발 시각을 계산한다(S130). GCRA 방법에서 세션이 실시간 서비스인 경우에는 세션의 대역폭을 가입자와 계약시 정해진 값으로 설정하나, 비 실시간 서비스인 경우나 베스트 에포트 서비스(저급의 비실시간 서비스)인 경우에는 대역폭을 운영 정책에 따라 정해진 값을 적용할 수 있다. 예를 들어 측정된 세션의 대역폭 값이 설정된 값보다 크면 초과된 패킷은 운영 정책에 따라 버리거나 그냥 통과시킨다.
패킷 세션 제어부(110)에 의하여 패킷 출발 시각이 결정되면, 스케줄링부(140)는 입력되는 패킷의 출발 시각에 대응하는 슬롯을 체크한다. 이를 위하여 스케줄링부(140)는 패킷의 세션 ID가 저장되는 슬롯의 패킷 카운터(C1)의 카운터값을 갱신한다(S140).
스케줄링부(140)는 갱신된 패킷 카운터(C1)의 카운터값들을 토대로 해당 슬롯에 세션 ID를 저장할 수 있는지를 판단한다. 구체적으로, 스케줄링부(140)는 슬롯에 저장된 세션 ID의 양을 나타내는 패킷 카운터(C1)의 카운터값과 슬롯에 저장가능한 최대치(이 최대치는 슬롯에 대응하는 출력 포트에서 허용 가능한 세션 ID들의 양인 출력 포트 허용값임)을 비교한다(S150). 패킷 카운터(C1)의 카운터값 즉, 현재 슬롯에 저장되어 있는 총 세션 ID의 개수를 나타내는 카운터 값이 최대치보다 큰 경우에는, 해당 슬롯에 세션 ID를 저장할 수 없는 상태인 것으로 판단한다. 그리고 패킷 카운터(C1)의 카운터값을 갱신하기 전의 원래의 값으로 환원하고, 다음 슬롯에 저장가능한지를 체크한다(S160). 이러한 과정을 반복 수행하여 슬롯에 저장된 세션 ID의 총 개수가 해당 슬롯에 대한 최대치보다 적은 슬롯을 선택한다.
한편 단계(S150)에서, 현재 슬롯에 저장되어 있는 총 세션 ID의 개수를 나타내는 카운터 값이 최대치보다 작은 경우에, 스케줄링부(140)는 현재 슬롯의 가상 포트의 패킷 카운터(C2)의 카운터값을 갱신한다(S170). 그리고 가상 포트에 해당하는 패킷 카운터(C2)의 카운터값과 미리 설정된 가상 포트의 최대치 즉, 슬롯에 대응하는 가상 포트에서 처리 가능한 세션 ID의 최대치에 해당하는 가상 포트의 허용값과 비교한다(S180). 비교 결과, 가상 포트의 패킷 카운터(C2)의 카운터값이 가상 포트의 허용값보다 큰 경우에도, 해당 슬롯에 세션 ID를 저장할 수 없는 상태인 것으로 판단한다. 그리고 패킷 카운터(C2)의 카운터값을 갱신하기 전의 원래의 값으로 환원하고, 다음 슬롯에 저장 가능한지를 체크한다(S190). 이러한 과정을 반복 수행하여 가상 포트에 대응하여 저장된 세션 ID의 총 개수가 해당 가상 포트에 대한 최대치보다 적은 슬롯을 선택한다.
위의 단계(S150, S180)을 통하여, 슬롯에 저장된 세션 ID의 총 개수가 해당 슬롯에 대한 최대치보다 적고, 가상 포트에 대응하여 저장된 세션 ID의 총 개수도 해당 가상 포트에 대한 최대치보다 적은 슬롯이 최종적으로 확인되면, 스케줄링부(140)는 최종 확인된 슬롯에 세션 ID를 저장한다. 즉, 해당 슬롯의 서비스 타입에 해당하는 버퍼에 해당 패킷의 세션 ID를 저장한다(S200).
다음에는 스케줄링 장치에 저장된 세션 ID를 출력하는 과정에 대하여 설명한다.
위에 기술된 바와 같이, 스케줄링 장치(100)의 스케줄링부(140)의 슬롯에 세션 ID가 저장되어 있는 상태에서, 현재 시간이 세션 ID의 출발 시각에 해당하면 슬롯에 저장된 세션 ID가 출력된다.
구체적으로, 스케줄링부(140)에서 단위 시간마다 슬롯이 하나씩 이동하면서 해당 슬롯이 출발 슬롯으로 지정되며, 그 슬롯에 저장된 세션 ID가 출력된다. 이때, 이전에 출발 슬롯으로 지정되었으나 다음 단의 혼잡으로 출발하지 못한 세션 ID를 가지고 있는 이전의 슬롯이 있을 수 있다. 이러한 슬롯에 있는 세션 ID를 먼저 출력시켜야 하므로, 이런 슬롯의 세션 ID는 현재 출발 슬롯보다 더 우선 순위가 높다고 볼 수 있다. 따라서 스케줄링부(140)는 도 9에서와 같이, 현재 시각과 이전 시각 그리고 그 이전 시각에 해당하는 슬롯들을 각각 체크하여 출발할 세션 ID가 있는지를 확인한다. 즉, 지금 출발한 슬롯으로 지정된 슬롯과, 지정된 슬롯의 이전 슬롯, 그리고 이전 슬롯의 이전 슬롯에 출발할 패킷의 세션 ID가 저장되어 있으면, 해당 세션 ID를 저장하고 있는 버퍼들(B1, B2, B3, B4) 사이에 WRR 방식으로 출력할 세션 ID를 검색한다. 즉 각 버퍼에 대응하는 가중치를 토대로 어느 버퍼에 저장된 세션 ID를 먼저 출력할지를 결정하고 결정된 순서대로 해당 버퍼에 저장된 세션 ID가 출력되도록 한다.
WRR 방식으로 검색된 버퍼에 저장된 세션 ID가 출력 버퍼부(150)로 출력되며, 출력 버퍼부(150)는 스케줄링부(140)로부터 출력되는 세션 ID를 토대로 패킷 메모리(120)에 저장된 패킷을 읽어와서 출력한다. 즉, 출력 버퍼부(150)를 통하여 최종적으로 스케줄링 장치(100)로부터 출력되는 것은 세션 ID를 이용하여 패킷 메모리(120)에서 읽어온 패킷이다.
이러한 과정을 통하여, 본 발명의 실시 예에 따르면, 스케줄링 장치는 세션의 서비스 품질에 맞도록 패킷 트래픽을 스케줄링 하며, 시스템의 외부에 스케줄링 기능이 없는 장치와 연동할 때 그 장치의 출력 포트를 가상 출력 포트로 고려하여 스케줄링을 할 수 있다. 따라서 전체적으로 스케줄링 기능이 없는 소형 스위치가 있는 무선 액세스 망에서도 본 발명의 실시 예에 따른 스케줄링 장치를 이용하여 통신 자원을 고려한 스케줄링을 할 수 있어 경제적인 무선 액세스 망을 구성할 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
Claims (20)
- 입력되는 패킷의 헤더로부터 세션 식별자를 획득하고 패킷 메모리에 상기 패킷을 저장하는 단계;
상기 패킷에 대하여 패킷 출발 시각을 산출하는 단계;
복수의 슬롯을 포함하는 스케줄러에서 상기 패킷 출발 시각에 대응하는 슬롯을 선택하는 단계;
상기 선택된 슬롯에 이미 저장되어 있는 세션 식별자의 개수와 상기 입력된 패킷에 대응하는 가상 포트--상기 가상 포트는 외부에 연결되는 스케줄링 기능을 가지지 않는 스위치 장치의 출력 포트를 나타냄--에 해당하는 세션 식별자의 개수를 고려하여, 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장할지를 결정하는 단계; 및
상기 선택된 슬롯에 대하여 상기 세션 식별자를 저장하는 것으로 결정되면, 상기 선택된 슬롯에 세션 식별자를 저장하고, 상기 패킷의 출발 시각이 되면 저장된 상기 세션 식별자를 이용하여 상기 패킷 메모리에 저장된 상기 패킷을 읽어와서 패킷을 출력하는 단계
를 포함하는, 스케줄링 방법. - 제1항에 있어서
상기 패킷을 저장하는 단계는
상기 입력되는 패킷의 헤더에 있는 해당 세션 식별자를 읽는 단계;
상기 세션 식별자에 대응하는 특성 파라미터를 획득하는 단계; 및
상기 특성 파라미터를 이용하여 상기 패킷을 상기 패킷 메모리에 저장하는 단계
를 포함하는 스케줄링 방법. - 제2항에 있어서
상기 특성 파라미터는 세션의 허용 대역폭인 서비스 대역폭, 서비스 타입, 세션에 해당되는 패킷이 통과한 개수를 나타내는 패킷 개수, 패킷이 전달되는 출력 포트 번호, 패킷이 더 전달되어야 하는 다음 출력 포트 번호인 가상 포트 번호, 그리고 세션에 해당되는 패킷들이 링크드 리스트 방식으로 저장되어 있는 패킷 메모리의 세션 시작 주소와 세션 끝 주소를 포함하는, 스케줄링 방법. - 제2항에 있어서
상기 패킷 메모리에 저장하는 단계는 상기 입력되는 패킷을 상기 특성 파라미터에 포함된 패킷 메모리의 세션 시작 주소와 세션 끝 주소를 토대로 패킷 메모리에 저장하는 단계를 포함하는, 스케줄링 방법. - 제1항에 있어서
상기 패킷 출발 시각을 산출하는 단계는
상기 특성 파라미터에서 상기 세션의 대역폭과 서비스 타입 항목을 토대로 상기 패킷의 출발 시각을 계산하는 단계
를 포함하는 스케줄링 방법. - 제1항에 있어서
상기 결정하는 단계는
상기 슬롯에 대하여 저장된 세션 식별자의 개수를 나타내는 제1 패킷 카운터의 카운터값과, 상기 슬롯에 저장되어 있는 세션 식별자들 중에서 상기 입력된 패킷에 대응하는 가상 포트에 해당하는 세션 식별자의 개수를 나타내는 제2 패킷 카운터의 카운터 값을 고려하여 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장할지를 결정하는, 스케줄링 방법. - 제6항에 있어서
상기 결정하는 단계는
상기 제1 패킷 카운터의 카운터값을 갱신시키는 단계;
상기 갱신된 제1 패킷 카운터의 카운터값을 상기 슬롯에 대하여 미리 설정된 제1 최대치를 비교하는 단계; 및
상기 갱신된 제1 패킷 카운터의 카운터값이 상기 제1 최대치보다 작은 경우에 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장하는 것으로 결정하는 단계
를 포함하는, 스케줄링 방법. - 제7항에 있어서
상기 결정하는 단계는
상기 갱신된 제1 패킷 카운터의 카운터값이 상기 제1 최대치보다 큰 경우에 상기 갱신된 제1 패킷 카운터의 카운터값을 갱신되기 이전의 값으로 환원하고, 상기 스케줄러의 슬롯들 중에서 다음 순번에 해당하는 슬롯을 선택하는 단계를 더 포함하는, 스케줄링 방법. - 제7항에 있어서
상기 저장하는 것으로 결정하는 단계는
상기 제2 패킷 카운터의 카운터값을 갱신시키는 단계;
상기 갱신된 제2 패킷 카운터의 카운터값을 상기 가상 포트에 대하여 미리 설정된 제2 최대치를 비교하는 단계; 및
상기 갱신된 제2 패킷 카운터의 카운터값이 상기 제2 최대치보다 작은 경우에 상기 선택된 슬롯에 상기 입력되는 패킷의 상기 세션 식별자를 저장하는 것으로 최종 결정하는 단계
를 포함하는, 스케줄링 방법. - 제9항에 있어서
상기 저장하는 것으로 결정하는 단계는
상기 갱신된 제2 패킷 카운터의 카운터값이 상기 제2 최대치보다 큰 경우에 상기 갱신된 제2 패킷 카운터의 카운터값을 갱신되기 이전의 값으로 환원하고, 상기 스케줄러의 슬롯들 중에서 다음 순번에 해당하는 슬롯을 선택하는 단계를 더 포함하는, 스케줄링 방법. - 제9항에 있어서
상기 제2 최대치는 상기 가상 포트의 대역폭을 토대로 결정되는, 스케줄링 방법. - 제1항에 있어서
상기 패킷을 출력하는 단계는
현재 시각에 출발해야 할 패킷의 상기 세션 식별자가 저장된 슬롯을 출력될 현재 슬롯으로 지정하는 단계;
상기 스케줄에서, 상기 현재 슬롯, 상기 현재 슬롯의 이전 슬롯, 상기 이전 슬롯의 이전 슬롯에 각각 세션 식별자가 저장되어 있는지를 확인하는 단계;
상기 현재 슬롯, 상기 현재 슬롯의 이전 슬롯, 상기 이전 슬롯의 이전 슬롯에 세션 식별자가 있는 경우, 각 슬롯에 포함된 버퍼들에 대하여 부여된 가중치를 토대로 출력할 패킷의 상기 세션 식별자를 선택하고, 선택된 상기 세션 식별자를 출력하는 단계; 및
선택된 상기 세션 식별자를 이용하여 상기 패킷 메모리에 저장된 해당 패킷을 읽어와서 상기 패킷을 출력하는 단계
를 포함하는, 스케줄링 방법. - 제12항에 있어서
상기 선택된 상기 세션 식별자를 출력하는 단계는 상기 버퍼들에 대하여 부여된 가중치를 토대로 WRR(weighted round robin) 방식으로 출력할 패킷의 세션 식별자를 선택하는, 스케줄링 방법. - 패킷을 저장하는 패킷 메모리;
입력되는 패킷에 헤더에 포함된 세션 식별자를 이용하여 상기 입력되는 패킷을 상기 패킷 메모리에 저장하고, 패킷의 출발 시각을 산출하는 패킷 세션 제어부;
세션별로 특성 파라미터를 저장하고 있는 세션 테이블;
복수의 슬롯을 포함하고, 상기 패킷 출발 시각에 대응하는 슬롯에 대하여, 상기 슬롯에 저장되는 세션 식별자의 개수와 상기 입력된 패킷에 대응하는 가상 포트--상기 가상 포트는 외부에 연결되는 스케줄링 기능을 가지지 않는 스위치 장치의 출력 포트를 나타냄--에 해당하는 세션 식별자의 개수를 고려하여, 상기 슬롯에 대하여 상기 패킷의 세션 식별자를 선택적으로 저장하는 스케줄링을 수행하는 스케줄링부; 및
상기 패킷 출발 시각에 대응하는 슬롯에 저장된 세션 식별자에 해당하는 패킷을 상기 패킷 메모리로부터 읽어와서 출력하는 출력 버퍼부
를 포함하는, 스케줄링 장치. - 제14항에 있어서
상기 각 슬롯은
상기 슬롯에 대하여 저장된 패킷의 개수를 나타내는 제1 패킷 카운터;
가상 포트별로 해당하는 패킷의 개수를 나타내는 제2 패킷 카운터; 및
서비스 타입별로 해당 세션 식별자를 저장하는 복수의 버퍼
를 포함하고, 상기 복수의 버퍼들은 서비스 타입에 따라 서로 다른 가중치가 부여되어 있는, 스케줄링 장치. - 제14항에 있어서
상기 스케줄링부는
상기 패킷 출발 시각에 대응하는 슬롯에 해당하는 상기 제1 패킷 카운터의 카운터값을 갱신하고, 상기 갱신된 카운트값이 상기 슬롯에 대하여 미리 설정된 제1 최대치보다 작은 경우에, 상기 슬롯에 상기 패킷의 세션 식별자를 저장하는 스케줄링 장치. - 제16항에 있어서
상기 스케줄링부는
상기 패킷 출발 시각에 대응하는 슬롯에 해당하는 상기 제2 패킷 카운터의 카운터값을 갱신하고, 상기 갱신된 카운트값이 상기 가상 포트의 대역폭을 토대로 미리 설정된 제2 최대치보다 작은 경우에, 상기 슬롯에 상기 패킷의 세션 식별자를 저장하는 스케줄링 장치. - 제17항에 있어서
상기 스케줄링부는 상기 갱신된 제1 패킷 카운터의 카운터값이 상기 제1 최대치보다 크거나, 상기 갱신된 제2 패킷 카운터의 카운터값이 상기 제2 최대치보다 큰 경우, 갱신된 카운트값을 갱신되기 이전의 값으로 환원하고, 상기 복수의 슬롯들 중에서 다음 순번에 해당하는 슬롯을 선택하는, 스케줄링 장치. - 제14항에 있어서
상기 스케줄링부는
현재 시각에 출발해야 할 패킷의 세션 식별자가 저장된 슬롯인 현재 슬롯, 상기 현재 슬롯의 이전 슬롯, 상기 이전 슬롯의 이전 슬롯의, 각각의 버퍼에 각각 세션 식별자가 저장되어 있는 경우에, 각 슬롯에 포함된 버퍼들에 대하여 부여된 가중치를 토대로 출력할 세션 식별자를 선택하고, 선택된 세션 식별자를 출력하는 스케줄링 장치. - 제14항에 있어서
상기 출력 버퍼부는
복수의 버퍼들을 포함하며,
상기 복수의 버퍼들은 서비스 타입 별로 구분되고 서비스 타입에 따른 가중치가 부여되어 있으며,
상기 서비스 타입 별 버퍼들은 다시 각각 출력 포트 별 버퍼로 구분되고 출력 포트 별로 같은 가중치가 부여되어 있으며,
상기 복수의 버퍼 중에서 하나가 선택되어 저장하고 있던 세션 식별자가 출력되면, 상기 세션 식별자를 이용하여 상기 패킷 메모리에서 해당 패킷을 읽어오고, 상기 패킷을 최종적으로 출력하는, 스케줄링 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120071135A KR20140011531A (ko) | 2012-06-29 | 2012-06-29 | 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치 |
US13/742,924 US9166924B2 (en) | 2012-06-29 | 2013-01-16 | Packet scheduling method and apparatus considering virtual port |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120071135A KR20140011531A (ko) | 2012-06-29 | 2012-06-29 | 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140011531A true KR20140011531A (ko) | 2014-01-29 |
Family
ID=49778102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120071135A KR20140011531A (ko) | 2012-06-29 | 2012-06-29 | 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9166924B2 (ko) |
KR (1) | KR20140011531A (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10326674B2 (en) * | 2013-08-27 | 2019-06-18 | Purdue Research Foundation | Compressing trace data |
CN104618265B (zh) * | 2014-12-30 | 2018-03-13 | 华为技术有限公司 | 一种报文转发方法和装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862127A (en) | 1994-03-18 | 1999-01-19 | Electronics And Telecommunications Research Institute | Method of controlling the peak cell rate spacing of multiplexed ATM traffic |
US5605113A (en) | 1995-08-22 | 1997-02-25 | Ctb, Inc. | Feed conveyor |
JP3567878B2 (ja) | 2000-10-02 | 2004-09-22 | 日本電気株式会社 | パケット交換装置 |
JP4305004B2 (ja) * | 2003-02-28 | 2009-07-29 | ソニー株式会社 | 情報処理装置、およびコンテンツ情報処理方法、並びにコンピュータ・プログラム |
KR100542433B1 (ko) | 2003-06-10 | 2006-01-11 | 한국전자통신연구원 | 패킷 스케줄링 장치 및 패킷 스케줄링 방법 |
KR100745679B1 (ko) | 2005-12-08 | 2007-08-02 | 한국전자통신연구원 | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 |
US7936289B2 (en) * | 2006-04-04 | 2011-05-03 | Samsung Electronics Co., Ltd. | Method, device, and system for data communication with preamble for reduced switching noise |
US20080056295A1 (en) * | 2006-09-01 | 2008-03-06 | Dne Technologies, Inc. | Internet protocol quality of service apparatus and method |
US20080130592A1 (en) * | 2006-12-04 | 2008-06-05 | Electronics And Telecommunications Research Institute | Apparatus and method for managing medium access slot in wireless personal area network |
JP4673925B2 (ja) * | 2007-05-31 | 2011-04-20 | 富士通株式会社 | 情報取得装置、情報取得方法および情報取得プログラム |
JP4879327B2 (ja) * | 2007-11-21 | 2012-02-22 | 三菱電機株式会社 | 通信装置、子局装置および帯域割当方法 |
KR100959397B1 (ko) | 2007-12-07 | 2010-05-24 | 한국전자통신연구원 | 패킷 스케줄링 장치 |
KR20090076675A (ko) | 2008-01-09 | 2009-07-13 | 삼성전자주식회사 | 통신시스템에서 혼잡제어 방법 및 장치 |
US8638665B2 (en) * | 2008-04-30 | 2014-01-28 | Nec Corporation | Router, information processing device having said router, and packet routing method |
US8737414B2 (en) * | 2009-12-10 | 2014-05-27 | Polytechnic Institute Of New York University | Scheduling, including distributed scheduling, for a buffered crossbar switch |
WO2011102195A1 (ja) * | 2010-02-22 | 2011-08-25 | 日本電気株式会社 | パケット整列装置、パケット整列方法、及び記憶媒体 |
US9281950B2 (en) * | 2011-10-07 | 2016-03-08 | Alcatel Lucent | Method for using intelligent router in charging system and apparatus associated therewith |
-
2012
- 2012-06-29 KR KR1020120071135A patent/KR20140011531A/ko not_active Application Discontinuation
-
2013
- 2013-01-16 US US13/742,924 patent/US9166924B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9166924B2 (en) | 2015-10-20 |
US20140003435A1 (en) | 2014-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100881925B1 (ko) | 이동통신 기지국 시스템에서 하향 음성 패킷망 패킷스케줄링 장치 및 방법 | |
JP3435293B2 (ja) | パケットスケジューリング装置及びパケット転送方法 | |
JP4338285B2 (ja) | パケットスケジューリング方法および装置 | |
US20070237074A1 (en) | Configuration of congestion thresholds for a network traffic management system | |
CN101127711B (zh) | 基于QoS的分组调度的系统和方法 | |
US8467338B2 (en) | Scheduling wireless communication | |
KR102044357B1 (ko) | 셀룰러 네트워크에서 무선 자원을 스케줄링하는 방법 및 시스템 | |
RU2010115366A (ru) | Планирование с учетом приоритетов и управление доступом в сети связи | |
US9515940B2 (en) | Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network | |
CN112585914A (zh) | 报文转发方法、装置以及电子设备 | |
US20110090805A1 (en) | Systems and methods providing a decoupled quality of service architecture for communications | |
CN111213403A (zh) | 无线通信系统中QoS流的调度 | |
EP3981133A1 (en) | Control device, switch device and methods | |
EP3200505A1 (en) | Method and device for estimating uplink service waiting delay | |
CN113329376B (zh) | 一种信息处理方法、装置、设备及计算机可读存储介质 | |
CN116349289A (zh) | 数据处理方法及装置、存储介质 | |
KR20130045860A (ko) | 통신 네트워크들 내 큐들을 핸들링하는 방법 및 장치, 대응 컴퓨터 프로그램 제품 | |
KR20140011531A (ko) | 가상 포트를 고려한 패킷 스케줄링 방법 및 그 장치 | |
JP2005236669A (ja) | 通信品質制御方法およびその通信品質制御装置 | |
CN105099947A (zh) | 空间网络接入方法及装置 | |
JP4973452B2 (ja) | WiMAXスケジューラーの待ち時間カウントを使用した無効データ除去 | |
KR20090057228A (ko) | 데이터 블록 스케줄링 방법, 데이터 블록 스케줄링 장치, 집적 회로 및 통신 시스템 | |
CN112311678B (zh) | 报文分发的实现方法及装置 | |
KR100959397B1 (ko) | 패킷 스케줄링 장치 | |
KR101587379B1 (ko) | 큐 사이즈의 동적 제어 방법 및 이를 수행하는 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |