KR100654429B1 - 무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치 - Google Patents
무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치 Download PDFInfo
- Publication number
- KR100654429B1 KR100654429B1 KR1020040025413A KR20040025413A KR100654429B1 KR 100654429 B1 KR100654429 B1 KR 100654429B1 KR 1020040025413 A KR1020040025413 A KR 1020040025413A KR 20040025413 A KR20040025413 A KR 20040025413A KR 100654429 B1 KR100654429 B1 KR 100654429B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- buffer
- tcp
- traffic
- udp
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
- H04W28/14—Flow control between communication endpoints using intermediate storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/196—Integration of transport layer protocols, e.g. TCP and UDP
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9005—Buffering arrangements using dynamic buffer space allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/24—Negotiating SLA [Service Level Agreement]; Negotiating QoS [Quality of Service]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
- H04W8/04—Registration at HLR or HSS [Home Subscriber Server]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명은 멀티미디어 스트림과 같이 QoS가 보장되어야 하는 데이터의 트래픽과, 이외의 일반적인 데이터의 트래픽을 가변적인 통신 환경에 따라서 동적으로 제어하는 방법 및 장치에 관한 것이다.
본 발명에 따른 무선 스테이션의 트래픽을 동적으로 제어하는 방법은, 상위층으로부터 수신한 패킷의 헤더 정보를 판독하여 상기 패킷의 타입을 찾아내는 단계와, 상기 찾아낸 패킷의 타입 별로 서로 다른 우선권을 설정하는 단계와, 상기 찾아낸 패킷의 타입에 따라 적합한 동적 버퍼링을 수행함으로써 가변 버퍼의 크기를 조절하는 단계와, 상기 설정된 우선권이 높은 패킷은 고정 버퍼에 인큐잉하고, 상기 설정된 우선권이 낮은 패킷은 상기 가변 버퍼에 인큐잉하는 단계와, 상기 고정 버퍼에 인큐잉된 패킷을 상기 가변 버퍼에 인큐잉된 패킷에 우선하여 목적 스테이션에 전송하는 단계로 이루어진다.
본 발명에 따르면, 보장된 대역폭(Guaranteed Bandwidth)이 필요한 데이터의 트래픽이 발생하면, 동적으로 일반 데이터의 밴드폭을 줄임으로써, 멀티미디어 데이터의 QoS를 보장하는 효과가 있다.
MAC, 트래픽, UDP, TCP, QoS, IEEE 802.11, 백오프
Description
도 1은 OSI 7 계층을 도시한 도면.
도 2는 TCP 및 UDP를 이용하여 통신하는 스테이션이 갖는 계층 구조를 도시한 도면.
도 3은 종래의 MAC 층의 간략화한 구조를 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른 계층 구조를 나타낸 도면.
도 5는 본 발명의 일 실시예에 다른 상위 MAC 모듈의 구성을 도시하는 블록도.
도 6은 본 발명의 일 실시예에 다른 하위 MAC 모듈의 구성을 도시하는 블록도.
도 7은 상위 MAC 모듈에서 수행되는 동작 과정을 도시하는 흐름도.
도 8은 도 7에 이어서 상위 MAC 모듈에서 수행되는 동작 과정을 도시하는 흐름도.
도 9는 UDP 동적 버퍼링 과정을 세부적으로 도시한 흐름도.
도 10은 TCP 동적 버퍼링 과정을 세부적으로 도시한 흐름도.
도 11은 타 스테이션으로부터 ACK 프레임을 수신한 경우에 MPDU를 MacTxQ에 인큐잉하는 과정을 나타낸 흐름도.
도 12는 하위 MAC 모듈에서 이루어지는 QoS의 마지막 과정을 도시한 흐름도.
(도면의 주요부분에 대한 부호 설명)
100 : 상위 MAC 모듈 200 : 하위 MAC 모듈
120 : 우선권 비트 설정부 135 : 동적 버퍼링부
160 : 가변 버퍼 170 : 고정 버퍼
220 : 백오프 결정부
본 발명은 무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치에 관한 것으로, 보다 상세하게는 멀티미디어 스트림과 같이 QoS가 보장되어야 하는 데이터의 트래픽과, 이외의 일반적인 데이터의 트래픽을 가변적인 통신 환경에 따라서 동적으로 제어하는 방법 및 장치에 관한 것이다.
무선 랜(Wireless LAN) 사용의 증가와 홈 네트워킹(Home Networking)의 발달로 멀티미디어 데이터 전송이 중요한 문제로 대두됨에 따라서, 무선 랜의 MAC에서 QoS(Quality of Service)를 보장하기 위한 표준안을 마련하는 작업이 IEEE(Institute of Electrical and Electronics Engineers) 802.11e의 태스크 그룹(Task Group)에서 진행되고 있다. 그러나 계층적 구조(Layered Architecture)라는 제한으로 인하여 MAC(Media Access 제어) 내부에서 QoS(Quality of Service) 를 제공하기 위한 우선권(Priority) 할당에 어려움이 있다.
IEEE 802.11 표준에 따르면 LLC 층(Logical Link Control Layer)에서 페이로드(Payload)를 MAC에 전송할 때 두 가지의 우선권을 결정하여 전송한다. MAC 층에서는 상기 결정된 두 가지의 우선권에 따라 서로 다른 전송 메커니즘으로 전송을 시도한다. 상기 메커니즘은, 비경쟁 방식(Contention Free)으로 전송할 경우에는 PCF(point coordination function) 규칙에 따라서 전송하고, 경쟁 방식(Contention)으로 전송할 경우에는 DCF(Distributed coordination function) 규칙에 따라서 전송한다.
그러나, 실질적으로 LLC 층에서는 전송 층(Transport Layer)으로부터 전송된 페이로드의 우선권 정보를 알 수 없기 때문에 이러한 정보를 MAC 층에 알릴 수 없다. 따라서, MAC 층에서는 자체적으로 우선권을 결정하거나, LLC 층에서 전달되는 모든 페이로드는 동일한 우선권을 갖는 것으로 간주하여 전송한다.
본 발명에서는 QoS를 위한 MAC에서 동적 버퍼 관리(Dynamic Buffer Management)를 이용하여 TCP(Transmission Control Protocol) 정체 제어(TCP Congestion Control)를 수행함으로 UDP(User Datagram Protocol) 패킷(Packet)의 전송을 돕는다. 이것은 상위 층(Upper Layer)에서 전해주는 우선권 정보를 이용하지 않고 MAC 층에서 TCP 정체 제어를 이용하여 UDP 패킷을 통해 전송하는 멀티미디어 데이터에 더 많은 대역폭(Bandwidth)을 할당해 줄 수 있도록 한다.
이러한 LLC 층, MAC 층, 또는 이에 대한 상위 층 등의 계층 구조는 이미 널리 알려져 있는 OSI(Open Systems Interconnection) 7 계층 구조를 이용하여 구현 할 수 있다. 도 1에서 도시한 바와 같이, 하나의 스테이션(1)은 7계층 구조를 구현하는 소프트웨어 모듈 또는 하드웨어 모듈을 포함한다. 최상위 제 7계층인 응용 층(Application Layer; 10)은 사용자에게 OSI 환경에 대한 접근과 분산 정보 서비스를 제공한다. 다음, 제6 계층인 표현 층(Presentation Layer; 20)은 응용 프로그램의 처리와 데이터 표현의 차이점에 대해 독립성을 부여한다.
제5 계층인 세션 층(Session Layer; 30)은 응용 프로그램 사이에 통신 제어 구조를 제공한다. 다시 말해서, 상호 작용하는 응용 프로그램이 통신 성립, 처리 및 데이터 관리, 종료를 어떠한 식으로 할지를 결정한다. 그 하위 제4 계층인 전송 층(Transport Layer; 40)은 두 컴퓨터 사이에 신뢰성 있고 투명한 데이터 전송을 제공한다. 투명한 전송이란 송신측의 데이터가 어떠한 프로그램에 의한 아무런 변형 없이 수신측에 도달하게 된다는 것을 뜻한다. 여기서 데이터란 주소 정보, 크기 정보 등을 제외한 순수한 데이터 프레임에 들어가 있는 데이터를 의미한다. 전송 층(40)은 신뢰성 있는 전송을 위해 에러 복구와 흐름 제어를 담당한다.
제3 계층인 네트워크 층(Network Layer; 50)은 시스템을 연결하는데 사용되는 데이터 전송 및 스위칭(switching) 기술을 이용하여 자신의 상위 계층과 독립성을 유지하도록 한다. 이 층에서는 주로 프로토콜(protocol)이나 펌웨어(firmware)의 통신 성립, 처리 및 데이터 관리, 종료를 담당한다.
제2 계층인 데이터 링크 층(Data Link Layer; 60)은 물리적 연결을 통한 데이터의 신뢰성 있는 전송을 제공한다. 이 층은 동기화(synchronization), 에러 제어, 흐름 제어에 필요한 데이터를 전송한다.
제1 계층인 물리 층(Physical Layer; 70)은 물리적 매체를 통해 비구조화된 비트열이 어떻게 전송되는가를 담당한다. 이 말은 소프트웨어적인 전송 처리에 관여한다는 말이 아니라, 어떤 물리적인 네트워크의 기계적, 전기적, 기능적, 절차상의 특성을 취급한다는 의미이다.
특히, TCP 및 UDP를 이용하여 통신하는 스테이션(1)이 갖는 계층 구조는 도 2에서 도시하는 바와 같다. 여기서, 도 1에서의 응용 층(10), 표현 층(20), 및 세션 층(30)을 하나의 층, 즉 상위 층(15)으로 나타낸다. 여기서, 전송 층(40)은 TCP(Transfer Control Protocol)를 따르는 데이터를 처리하는 TCP 모듈(41)과, UDP(User Datagram Protocol)를 따르는 데이터를 처리하는 UDP 모듈(42)를 포함한다. 전송 층(40)에선 TCP 및 UDP를 사용하므로 네트워크 층(30)에서는 이러한 두 가지 프로토콜과 병용하기에 적합한 IP(Internet Protocol) 층(30)을 사용한다. 이와 같이, TCP/IP, 또는 UDP/IP는 2개의 계층으로 이루어진 프로그램으로서, 상위계층인 TCP 또는 UDP는 파일의 전송방식을 결정하고, 그 하위계층인 IP는 각 패킷의 주소 부분을 처리하여 패킷들이 목적지에 정확하게 도달할 수 있게 한다.
IP 층(30) 아래에는 데이터 링크 층(60)이 있는데, 그 상위에는 LLC 층(Logical Link Control layer; 61)과 그 하위에는 MAC 층(Media Access Control layer; 62)가 각각 존재한다. 그리고, MAC 층(62)의 하위에는 물리 층(Physical Layer; 70)이 존재한다.
도 3은 종래의 MAC 층의 간략화한 구조를 나타낸다. 상위 층인 LLC 층(61)으로부터 MAC 층(62)으로 페이로드(Payload)가 전해지면 MAC 층(62)에서는 이를 데이 터 큐(Data Queue; 64)에 버퍼링(buffering)하고 매체 접근 제어(MAC)를 관리하기 위한 페이로드를 만들어 이를 MAC 관리 큐(MAC Management 큐; 63)에 버퍼링한다.
전체 MAC 데이터의 동기화(Synchronization)와 MAC 레벨에서의 각종 관리를 위해서 MAC 관리 큐(63)에 있는 페이로드가 데이터 큐(64)에 있는 페이로드에 비하여 우선권을 갖지만 데이터 큐(64)에 있는 페이로드들은 서로 같은 우선권을 가지고 큐에 대기한 순서에 따라서 전송된다.
이와 같이, IEEE 802.11 표준을 따르는 종래의 기술에서는, 어플리케이션에서 페이로드를 전송할 때 상기 페이로드에 관한 우선권 정보를 전달하지 않기 때문에 LLC 층과 MAC 층에서는 전달받은 페이로드에 대한 우선권을 인지할 수 있는 방법이 없다. 그 이유는 네트워크가 계층적 구조로 구성되어 있어서 상위 층에서 특별히 전달하지 않는 정보를 하위 층에서 알 수는 없기 때문이다.
만약 어플리케이션에서 페이로드에 해당하는 우선권을 MAC 층에 전달하는 방식으로 문제를 해결하고자 한다면, 이를 전달받은 MAC 층은 전달하는 어플리케이션과 쌍을 이루어 동작해야 한다. 이와 같이 어플리케이션의 다양성을 제약하는 것은 호환성이라는 문제를 고려할 때 바람직하지 못하다. 설령 이와 같은 어플리케이션이 개발되어 있다고 하더라도 사용자가 이를 지원하지 않는 일반 어플리케이션들을 사용한다면, MAC 층은 부적절하게 동작할 것이다.
또한, 기존의 무선 LAN MAC은 TCP전송과 UDP전송이 동일한 우선권에서 전송되기 때문에. TCP 전송 도중에 UDP 트래픽(traffic)이 발생할 경우, 서로의 대역폭을 침범하여 그 어느 하나도 안정된 전송을 보장하지 못하는 문제가 있다.
결론적으로, 종래의 기술은 MAC 층에 맞춘 어플리케이션(MAC-oriented application)을 사용하지 않는 경우에는 데이터 전송에 있어 QoS(Quality of Service)를 제공하기 위한 우선권 할당이 어렵고, 따라서 네트워크 상의 무선 매체를 효율적으로 사용하기 어렵게 된다.
한편, 대한민국 등록특허 312238호는, 전송 링크(link)에 의해 상호 연결된 복수의 데이터 트래픽 소스(data traffic source)를 가지는 데이터 통신 네트워크(network)에서 정체(congestion)을 피하기 위해 데이터 트래픽(data traffic) 흐름 제어에 관한 기술이지만, 이는 노드들간에 이루어지는 트래픽 제어에 관한 것이므로 하나의 노드 안에서 전송 프로토콜의 종류에 따라서 동적으로 트래픽 제어가 이루어지는 본 발명과는 차이가 있다.
본 발명은 상기한 문제점을 고려하여 창안된 것으로, 무선 통신 스테이션에 내장된 MAC 층에서, 실시간 스트리밍을 위한 전송 프로토콜(예컨대, UDP)에 따라서 전송되는 데이터와, 일반 데이터 전송을 위한 전송 프로토콜(예컨대, TCP)에 따라서 전송되는 데이터를 구별하여 각각 다른 우선권을 할당하고 각각 다른 버퍼에 저장하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 MAC 층에서 전송하는 전체 데이터의 양이 증가하면 상기 일반 데이터를 저장하는 버퍼의 크기를 동적으로 조절하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 실시간 스트리밍 데이터가 전송 중인 경우에는 전송 층의 TCP 슬라이딩 윈도우 크기(Sliding Window Size)를 줄여 원활하게 실시간 스트리밍 데이터를 전송할 수 있도록 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
그리고, 본 발명은 실시간 스트리밍 데이터를 전송하는 경우에는 백오프(backoff) 없이 전송함으로써 실시간 스트리밍을 원활히 제공할 수 있도록 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여 본 발명에 따른 무선 스테이션의 트래픽을 동적으로 제어하는 방법은, (a) 상위층으로부터 수신한 패킷의 헤더 정보를 판독하여 상기 패킷의 타입을 찾아내는 단계; (b) 상기 찾아낸 패킷의 타입 별로 서로 다른 우선권을 설정하는 단계; (c) 상기 찾아낸 패킷의 타입에 따라 적합한 동적 버퍼링을 수행함으로써 가변 버퍼의 크기를 조절하는 단계; (d) 상기 설정된 우선권이 높은 패킷은 고정 버퍼에 인큐잉하고, 상기 설정된 우선권이 낮은 패킷은 상기 가변 버퍼에 인큐잉하는 단계; 및 (e) 상기 고정 버퍼에 인큐잉된 패킷을 상기 가변 버퍼에 인큐잉된 패킷에 우선하여 목적 스테이션에 전송하는 단계를 포함한다.
상기 패킷의 타입은 UDP와 TCP를 포함하는데, 이 중에서 UDP에 높은 우선권을 설정하는 것이 바람직하다.
상기 패킷의 타입은 IP 헤더의 프로토콜 번호 필드에 기록된 정보로부터 찾아내는 것이 바람직하다.
상기 패킷의 타입이 UDP인 경우에 상기 (c) 단계는, (c-1) 연속으로 TCP 패킷이 유입되지 않은 횟수와 소정의 제1 문턱값을 비교하는 단계; 및 (c-2) 상기 비 교 결과에 따라서 가변 버퍼의 크기를 조절하는 단계를 포함하는 것이 바람직하다.
상기 (c-2) 단계는, 상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 크거나 같은 경우에는, 상기 가변 버퍼의 크기를 최소 크기로 변경하는 단계; 및 상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 작은 경우에는, 상기 가변 버퍼의 크기를 한 단위만큼 감소시키는 단계를 포함하는 것이 바람직하다.
상기 패킷의 타입이 TCP인 경우에 상기 (c) 단계는, (c-3) 연속으로 UDP 패킷이 유입되지 않은 횟수와 소정의 제2 문턱값을 비교하는 단계; 및 (c-4) 상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 단계를 포함하는 것이 바람직하다.
상기 (c-4) 단계는, 상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 크거나 같은 경우에는, 상기 가변 버퍼의 크기를 한 단위만큼 증가시키는 단계; 및 상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 작은 경우에는, 가변 버퍼가 상기 TCP 패킷을 수용할 수 없으면 상기 TCP 패킷을 버리는 단계를 포함하는 것이 바람직하다.
상기 TCP 패킷을 버림에 의하여 슬라이딩 윈도우의 크기가 감소됨으로써 TCP 트래픽을 감소되는 것이 바람직하다.
상기 무선 스테이션의 트래픽을 동적으로 제어하는 방법은, 상기 목적 스테이션으로부터 상기 전송한 패킷에 대한 ACK 프레임을 수신하는 단계; 및 상기 고정 버퍼에 전송할 패킷이 있으면 이 패킷을 MAC 전송 버퍼에 인큐잉하고, 상기 고정 버퍼에 전송할 패킷이 없으면 상기 가변 버퍼에 있는 패킷을 MAC 전송 버퍼에 인큐잉하는 단계를 더 포함하는 것이 바람직하다.
상기 (e) 단계는, 상기 고정 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 백오프 없이 바로 물리층으로 전달하고, 상기 가변 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 소정의 백오프 기간 동안 대기한 후 상기 패킷을 물리층으로 전달하는 단계; 및 상기 전달된 패킷이 갖는 디지털 데이터를 아날로그 R/F 신호로 변환하고 이 신호를 무선 매체를 통하여 타 스테이션에 전송하는 것이 바람직하다.
상기한 목적을 달성하기 위하여, 본 발명에 따른 동적으로 트래픽을 제어하는 무선 스테이션은, 상위층으로부터 수신한 패킷의 헤더 정보를 판독하여 상기 패킷의 타입을 찾아내고, 상기 찾아낸 패킷의 타입 별로 서로 다른 우선권을 설정하는 우선권 비트 설정부; 상기 찾아낸 패킷의 타입에 따라 적합한 동적 버퍼링을 수행함으로써 가변 버퍼의 크기를 조절하는 동적 버퍼링부; 상기 설정된 우선권이 높은 패킷을 인큐잉하는 고정 버퍼; 상기 설정된 우선권이 낮은 패킷은 상기 가변 버퍼에 인큐잉하는 가변 버퍼; 및 상기 고정 버퍼에 인큐잉된 패킷을 상기 가변 버퍼에 인큐잉된 패킷에 우선하여 목적 스테이션에 전송하는 수단을 포함한다.
상기 패킷의 타입이 UDP인 경우에 상기 동적 버퍼링부는, 연속으로 TCP 패킷이 유입되지 않은 횟수와 소정의 제1 문턱값을 비교하고, 상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 것이 바람직하다.
상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 것은, 상기 비교 결 과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 크거나 같은 경우에는 상기 가변 버퍼의 크기를 최소 크기로 변경하고, 상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 작은 경우에는 상기 가변 버퍼의 크기를 한 단위만큼 감소시키는 것이 바람직하다.
상기 패킷의 타입이 TCP인 경우에 상기 동적 버퍼링부는, 연속으로 UDP 패킷이 유입되지 않은 횟수와 소정의 제2 문턱값을 비교하고, 상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 것이 바람직하다.
상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 것은, 상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 크거나 같은 경우에는 상기 가변 버퍼의 크기를 한 단위만큼 증가시키고, 상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 작은 경우에는, 가변 버퍼가 상기 TCP 패킷을 수용할 수 없으면 상기 TCP 패킷을 버리는 단계를 포함하는 것이 바람직하다.
상기 동적으로 트래픽을 제어하는 무선 스테이션은, 상기 TCP 패킷을 버림에 따라서 슬라이딩 윈도우의 크기를 감소시킴으로써 TCP 트래픽을 감소키는 TCP 모듈을 더 포함하는 것이 바람직하다.
상기 동적으로 트래픽을 제어하는 무선 스테이션은, 상기 목적 스테이션으로부터 상기 전송한 패킷에 대한 ACK 프레임을 수신한 후 상기 고정 버퍼에 전송할 패킷이 있으면 이 패킷을 MAC 전송 버퍼에 인큐잉하고, 상기 고정 버퍼에 전송할 패킷이 없으면 상기 가변 버퍼에 있는 패킷을 MAC 전송 버퍼에 인큐잉하는 백오프 결정부를 더 포함하는 것이 바람직하다.
상기 전송하는 수단은, 상기 고정 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 백오프 없이 바로 물리층으로 전달하고, 상기 가변 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 소정의 백오프 기간 동안 대기한 후 상기 패킷을 물리층으로 전달하는 하위 MAC 모듈; 및 상기 전달된 패킷이 갖는 디지털 데이터를 아날로그 R/F 신호로 변환하고 이 신호를 무선 매체를 통하여 타 스테이션에 전송하는 물리층 모듈을 더 포함하는 것이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 일 실시예에 따른 계층 구조는 도 4와 같이 도시된다. 전송 층(40)은 UDP 모듈(41)과 TCP 모듈(42)을 포함하고, UDP 모듈(41)은 UDP 소켓 버퍼(UDP socket buffer; 43)를 포함한다. 그리고, TCP 모듈(42)은 TCP 소켓 버퍼(TCP socket buffer; 44)를 포함하고, 가변적인 슬라이딩 윈도우(sliding window; 45) 정보를 포함한다.
IP 층(50)은 네트워크를 통해 데이터를 전송할 때 TCP와 UDP라는 주요 인터넷 전송 층(40) 프로토콜을 사용한다. IP 헤더에는 프로토콜 번호 필드(protocol number field)을 포함하는데, 이 프로토콜 번호 항목은 어떤 전송 층(40)이 데이터를 전송하는가 지정할 때 사용한다. 예를 들어, 현재 전송 층(40)에서 보낸 데이터가 UDP 데이터 인지, TCP 데이터인지를 알려준다. 따라서 목적지 스테이션에서 IP는 합당한 전송 프로토콜 소프트웨어로 데이터를 수신할 수 있다.
일단 연결을 확립하면 TCP는 손실이나 중복 없이 데이터를 목적지에 확실히 전달한다. 세그먼트라는 데이터의 각 부분은 데이터가 안전하게 도착하도록 하기 위해 수신 데이터를 점검할 수 있는 체크섬(checksum)도 함께 전송한다. 발신자는 데이터의 각 부분에 대해서 확인 응답을 받고자 한다. 주어진 시간 내에 어떤 확인 응답을 받지 못하면 다시 전송할 것이다.
TCP는 통신 애플리케이션의 바이트 스트림 기반(byte stream based) 보기를 제공한다. 수신 종점(endpoint)에서 TCP 소프트웨어는 세그먼트를 데이터 스트림으로 재결합하고, 애플리케이션 수준의 소프트웨어에 전달한다. 불연속적인 크기로 송수신하는 UDP와 달리 송수신한 데이터에 논리적 경계는 없다.
한편, UDP는 데이터를 불연속적인 크기로 전송할 수 있고, 체크섬이나 프레임 번호지정(numbering) 등을 요하지 않음으로써 데이터의 오버헤드(overhead)가 낮기 때문에, 무선 랜 환경에서 미디어 스트림(media stream)을 전송하기에 적합하다.
UDP는 매우 단순한 형식의 프로토콜로써 IP의 데이터 전송 장치(datagram- delivery facilities)에 고급 인터페이스를 제공한다. 전송을 보증하지 않는 방식으로 데이터를 전송하기 때문에 신뢰성을 요구하는 경우에는 소프트웨어의 상위 단계에서 이를 책임진다. 전송 데이터에 대한 프로토콜 제어 정보라는 측면에서 보면 UDP의 오버헤드는 낮고, 효율성이라는 측면에서는 대체 프로토콜, 즉 TCP보다 훨씬 뛰어난 것으로 인식된다. 따라서, UDP는 랜 환경에 적합한 전송 프로토콜이다. 또한 이러한 이유로 근거리용 어플리케이션에서 UDP를 많이 사용한다.
흔히 사용자들은 애플리케이션 수준의 서비스를 통해 네트워크에 접근하기 때문에 UDP와 TCP 중에서 어느 것을 선택하는가는 자명하다고 볼 수 있다. 서버의 동작 방식은 어떤 유형의 전송 프로토콜을 사용하느냐에 따라 달라진다. UDP를 이용하는 서버는 주로 반복 동작을 수행한다. 즉 이들 서버는 요청이 들어오면 해당 건만 처리하며, 작업을 완료할 때까지 다른 요청에 대한 서비스는 하지 않는다.
결과적으로, 데이터 흐름의 연속성이 보장될 필요가 없는 데이터(예를 들어, 문서 파일, 그림 파일 등)를 수신하는 경우에는 TCP를 사용하는 것이 바람직하고, 미디어 스트림과 같이 데이터 흐름의 연속성이 보장되어야 하는 데이터의 경우에는 UDP를 사용하는 것이 바람직하다. 본 발명에서도, 어플리케이션에서 실시간 스트리밍을 요하는 멀티미디어 데이터는 UDP를 이용하여 전송하고, 그 이외의 일반 데이터는 TCP를 이용하여 전송하는 것으로 한다. 그러나, 이에 한하지 않고 실시간 스트리밍에 적합한 다른 전송 프로토콜과, 일반 데이터 전송에 적합한 다른 전송 프로토콜이 있다면 UDP나 TCP 이외의 다른 전송 프로토콜을 이용할 수도 있음은 당업자라면 쉽게 알 수 있을 것이다.
다시 도 4를 참조하면, TCP 모듈(42)에 포함되는 슬라이딩 윈도우(45)는 인터넷의 TCP에 의해 두 개의 컴퓨터 또는 네트워크 호스트간에 패킷 흐름을 제어하기 위한 방법으로 사용된다. TCP에서는 전송된 모든 데이터가 수신측 호스트에 의해 확인되어야 한다. 그러나 슬라이딩 윈도우(45)는 하나의 확인으로 다수의 패킷 데이터를 확인할 수 있는 방법이다. TCP 소켓 버퍼(44)는 TCP로 하여금 상위의 응용 층(15)과는 독립적으로 데이터를 수신하고 처리할 수 있게 해준다. 다른 말로 말하면, 상위 응용계층이 자신의 속도로 데이터를 처리하는 동안, TCP 모듈(42)은 이 버퍼(44) 공간을 데이터를 미리 읽어오는데 사용할 수 있다.
슬라이딩 윈도우(45)는 데이터가 어떤 이유로든 일정 시간 내에 수신측 호스트로부터 ACK 프레임을 수신하지 못하면, 슬라이딩 윈도우(45) 크기를 줄임으로써 전송량을 감소시키고 전송 실패한 데이터를 재전송한다. 상기 이유는 수신측 호스트에 정상적으로 데이터가 전송되지 않은 경우가 일반적이겠지만, 수신측 호스트가 데이터를 전송 받고도 ACK 프레임을 전송하지 않는다든지, 전송측 호스트가 ACK 프레임을 수신하고도 그것을 상위의 전송 층(40)으로 전달하지 않아서 발생할 수도 있다.
본 발명에서의 핵심 부분인 MAC 층(62)은 상위 MAC 모듈(100)과 하위 MAC 모듈(200)로 이루어진다. 상위 MAC 모듈(100)은 소프트웨어로 구현되기에 적합하며 시간에 임계적(time-critical)이지 않은 MAC 기능들로 구성되어 있고, 하위 MAC 모듈(200)은 하드웨어로 구현되기에 적합하며 시간에 임계적(time-critical)인 기능들로 구성된다.
그리고, 물리층(70)은 MAC 층(62)에서 전달되는 MPDU(MAC Protocol Data Unit)를 수신하여 PPDU(Packet Protocol Data Unit)를 생성하고 이를 담은 무선 신호를 생성하여 전송한다. 물리층(70)은 다시 세분화하여 베이스밴드 프로세서(base band processor; 91)와 RF(radio frequency) 모듈(92)로 이루어질 수 있다.
한편, 이를 소프트웨어와 하드웨어 관점에서 접근하면, 소프트웨어인 디바이스 드라이버(80; 이하 D/D라 함)는 LLC 층(61)에 해당하는 D/D 상위층 모듈(80)과 상위 MAC 모듈(100)로 이루어질 수 있다. D/D 상위층 모듈(81)로서는 예컨대, 네트워크 인터페이스 카드(90; 이하 NIC라 함)의 드라이버들을 위한 표준 인터페이스를 제공하는 NDIS(Network Driver Interface Specification)를 사용할 수 있다. NDIS는 표준은 마이크로 소프트(Microsoft) 사와 3COM 사에서 개발한 것으로, 다수의 NIC(90) 제조업체에서 이를 지원한다. NDIS는 NIC(90)의 드라이버에서 나오는 패킷을 적절한 프로토콜 스택(stack)과 매칭(matching)시키기 위해 스택이 패킷을 요구할 때까지 스택 하나 하나를 폴링(polling)한다.
그리고, 하드웨어인 상기 NIC(90)는 하위 MAC 모듈(200)과, 베이스밴드 프로세서(91)와 RF 모듈(92)로 이루어질 수 있다. 이와 같이, 소프트웨어로 구성되는 모듈과 하드웨어로 구성되는 모듈의 일반적인 예를 들었지만 이에 한정될 필요는 없고 사용자의 필요 내지 산업계 동향의 변화에 따라서 달라질 수 있다. 따라서, 소프트웨어나 하드웨어로 엄격히 구분하는 것은 의미가 없으며 각각의 기능을 구현하는 "모듈"로서 표현되는 것이 타당하다.
D/D 상위층 모듈(81)은 상위 층에서 수신한 데이터를 하위의 MAC 층(62)으로 송신하기 전에 일시적으로 저장하는 버퍼(82; 이하 DuQ라고 함)를 포함한다.
그리고, 상위 MAC 모듈(100)은 D/D 상위층 모듈(81)로부터 수신하는 데이터를 그 종류에 따라서 다른 버퍼에 저장한다. 하나의 버퍼, 즉 AvQ(170)는 멀티미디어 스트림(multimedia stream) 데이터와 같은 실시간 데이터를 일시 저장하기 위한 것이고, 다른 버퍼, 즉 ItQ(160)은 internet, FTP, Telnet과 같은 일반 데이터를 일시 저장하기 위한 것이다. 상위 MAC 모듈(100)에서는 실시간 데이터의 특성을 고려해서 ItQ(160)보다 AvQ(170)에 그 우선 순위를 두어 데이터 전송을 시도한다. 본 발명의 실시예에서는 멀티미디어 데이터는 UDP를 이용하여 전송하고, 이외의 일반 데이터는 TCP를 이용하여 전송하는 것으로 한다.
또한, 하위 MAC 모듈(200)도 상위 MAC 모듈(100)로부터 수신한 MPDU를 하위의 물리층(70)의 요청에 따라 제공할 수 있도록 일시 저장하는 MAC 전송 버퍼(230; 이하 MacTxQ라 함)를 가진다. 상위 MAC 모듈(100)에서 두 개로 나뉘어 있던 버퍼(160, 170)는 하위 MAC 모듈(200)에서는 하나의 버퍼(230)로 통합되며, 상위 MAC 모듈(100)에서 내려오는 프레임을 순서대로 전송을 한다. 다만, 그 프레임의 우선 순위에 따라서 백오프 적용 여부를 판단해서 결정한다.
도 5는 본 발명의 일 실시예에 다른 상위 MAC 모듈(100)의 구성을 도시하는 블록도이다. 상위 MAC 모듈(100)은 상위층 송수신부(110)와, 우선권 비트 설정부(120)와, 동적 버퍼링부(135)와, MPDU 생성부(150)와, MPDU 큐잉부(180)와, 가변 버퍼(160)와, 고정 버퍼(170)와, 하위층 송수신부(190)를 포함하여 구성될 수 있다.
상위층 송수신부(110)는 LLC 층(61)과 데이터를 송수신한다.
우선권 비트 설정부(120)는 상기 수신한 패킷의 IP 헤더에 기록된 프로토콜 번호 필드(protocol number field)를 판독하여 상기 패킷의 타입이 TCP 타입인가 UDP 타입인가를 판단한다. 우선권 비트 설정부(120)는 상기 판단 결과 패킷 타입이 UDP 타입이면 우선권 비트를 'Av_traffic' 으로 설정하고, TCP 타입이면 우선권 비트를 'It_traffic' 으로 설정한다.
동적 버퍼링부(135)는 제1 동적 버퍼링부(130) 및 제2 동적 버퍼링부(140)를 포함하는데, 상기 찾아낸 패킷의 타입에 따라 적절한 동적 버퍼링을 수행함으로써 가변 버퍼의 크기를 조절한다.
제1 동적 버퍼링부(130)는 UDP 패킷을 수신한 경우에, 연속으로 TCP 패킷이 유입되지 않은 횟수와 소정의 제1 문턱값(TcpThreshold)을 비교하고 그 비교 결과에 따라서 가변 버퍼(160)의 크기를 조절하는 'UDP 동적 버퍼링' 과정을 수행한다. UDP 동적 버퍼링 과정에 대한 보다 자세한 설명은 도 9의 설명에서 하기로 한다.
제2 동적 버퍼링부(140)는 TCP 패킷을 수신한 경우에, 연속으로 UDP 패킷이 유입되지 않은 횟수와 소정의 제2 문턱값(UdpThreshold)을 비교하고 그 비교 결과에 따라서 가변 버퍼(160)의 크기를 조절하는 'TCP 동적 버퍼링' 과정을 수행한다. TCP 동적 버퍼링 과정에 대한 보다 자세한 설명은 도 10의 설명에서 하기로 한다.
MPDU 생성부(150)는 상위층 송수신부(110)를 통하여 LLC 층(61)으로부터 수신된 패킷에 MAC 헤더(header)와 테일(tail)을 붙임으로써 MPDU를 생성한다.
MPDU 큐잉부(180)는 상기 설정된 우선권 비트 및 하위 MAC 모듈(200)의 MAC 전송 버퍼(230)가 완전히 차있는가 여부에 따라서 상기 생성된 MPDU를 어느 버퍼에 인큐잉 할 것인가를 결정하고 그 결정에 따라서 해당 버퍼에 인큐잉한다. 이 동작 과정에 대한 보다 자세한 설명은 도 8의 설명에서 하기로 한다. 또한, MPDU 큐잉부(150)는 하위 MAC 모듈(200)로부터 ACK 프레임을 올바르게 수신하였음을 알려주는 TxConfirm 인터럽트(interrupt)를 하위층 송수신부(190)을 통하여 수신하면, 가변 버퍼(160) 또는 고정 버퍼(170)가 완전히 비어 있는가 여부에 따라서 상기 버퍼(160 또는 170)에 일시 저장된 MPDU를 MacTxQ(230)에 인큐잉 할 것인가를 결정하고, 필요시 해당 버퍼에 저장된 MPDU를 디큐잉하여 이를 MacTxQ(230)에 인큐잉한다. 이 동작 과정에 대한 보다 자세한 설명은 도 11의 설명에서 하기로 한다.
가변 버퍼(160)는 TCP 타입의 데이터와 같이 QoS를 요하지 않는 일반 데이터를 담은 MPDU를 일시 저장하며, 제1 동적 버퍼링부(130) 또는 제2 동적 버퍼링부(140)에서 조절한 바에 따라 가변 크기를 갖는다. 그리고, 고정 버퍼(170)는 UDP 타입의 데이터와 같이 QoS를 요하는 멀티미디어 스트림 데이터를 담은 MPDU를 일시 저장한다.
하위층 송수신부(190)는 하위 MAC 모듈(200)과 데이터를 송수신한다.
도 6은 본 발명의 일 실시예에 다른 하위 MAC 모듈(200)의 구성을 도시하는 블록도이다. 하위 MAC 모듈(200)은 상위층 송수신부(210)와, 백오프 결정부(220)와, MAC 전송 버퍼(230)와, 하위층 송수신부(240)를 포함하여 구성될 수 있다.
상위층 송수신부(210)는 상위 MAC 모듈(100)과 데이터를 송수신한다.
백오프 결정부(220)는 상위 MAC 모듈(100)에서 결정되어 전달되는 우선권 비 트를 기준으로 백오프 여부를 결정한다. 자세히 살펴보면, 백오프 결정부(220)는 MAC 전송 버퍼(230)에서 MPDU를 추출하고, 그 우선권 비트를 확인하여 Av_traffic 이면, 상기 추출된 MPDU를 백오프 없이 물리층(70)으로 전달한다. 그리고, 우선권 비트가 It_traffic 이면 소정의 백오프 알고리즘(예컨대, 랜덤 백오프)에 따라 설정된 백오프 시간 동안 대기한 후에 상기 추출된 MPDU를 물리층(70)으로 전달한다.
MAC 전송 버퍼(230)는 MPDU를 물리층(70)으로 전달하기 전까지 MAC 전송 버퍼(230)에 순서대로 저장하였다가 저장된 순서대로 물리층(70)에 MPDU를 제공한다.
하위층 송수신부(240) 물리층(70)과 데이터를 송수신한다.
도 5 및 도 6의 설명에서, 각 구성요소는 모두 "모듈"로서 정의될 수 있다. 모듈은 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 통신 시스템 내의 하나 또 는 그 이상의 컴퓨터들을 실행시키도록 구현될 수도 있다.
본 발명에 따른 방법은 QoS를 지원하기 위해 두 과정을 거친다. 첫 번째 과정은 도 7 내지 도 11에서 도시되는데, 상위 MAC 모듈(100)에서 설계된 동적 버퍼링 알고리즘(dynamic buffering algorithm)에 따라서 상위 층에서 내려오는 트래픽을 필터링하고 필터링 된 결과를 바탕으로 패킷 특성에 따라 두 개의 버퍼(160, 170)에 따로 저장하는 과정이다. 두 번째 과정은 도 12에서 도시되는데, 상위 MAC 모듈(100)에서 전달되는 MPDU를 실질적으로 QoS를 적용해서 전송하는 과정이다.
도 7 및 도 8은 상위 MAC 모듈(100)에서 수행되는 동작 과정을 도시하는 흐름도이다. 상기 동작 과정은 LLC 층(61)에서 내려오는 패킷들을 상위 MAC 모듈(100)에서 설계된 동적 버퍼링 알고리즘(도 9, 도 10 참조)에 따라서 버퍼링을 수행할 것인지, 버퍼링을 한다면 어느 큐에 저장을 할 것인지를 결정하는 과정이다.
먼저, 도 7을 참조한다. 상위 MAC 모듈(100)의 상위층 송수신부(110)는 LLC 층(61)으로부터 패킷을 수신하고(S10), 우선권 비트 설정부(120)는 상기 수신한 패킷의 IP 헤더에 기록된 프로토콜 번호 필드(protocol number field)를 판독하여 상기 패킷의 타입이 TCP 타입인가 UDP 타입인가를 판단한다(S20). 상위 MAC 모듈(100)에 전달된 데이터에는 IP 헤더 앞에 LLC 헤더가 붙어 있지만, 이러한 헤더들은 고정 길이를 가지므로, 프로토콜 번호를 읽으려면 일정한 오프셋(offset) 위치의 값을 읽으면 된다.
우선권 비트 설정부(120)는 상기 판단 결과 패킷 타입이 UDP 타입이면 우선 권 비트를 'Av_traffic' 으로 설정한다(S30). 이러한 우선권 비트는 1 또는 0으로 기록할 수 있는데, 특정 패킷에 수반되는 데이터 스트럭쳐(data structure)에 포함된 파라미터 값으로 메모리에 저장되었다가 이후, 상위 MAC 모듈(100) 또는 하위 MAC 모듈(200)의 동작에서 이용된다.
다음, 제1 동적 버퍼링부(130)는 UDP 동적 버퍼링을 수행하여 가변 버퍼, 즉 ItQ(160)의 크기를 조절한다(S40). 이러한 UDP 동적 버퍼링에 관한 보다 상세한 과정은 도 9의 설명에서 하기로 한다. 그리고, MPDU 생성부(150)는 상기 패킷에 MAC 헤더(header)와 테일(tail)을 붙임으로써 MPDU를 생성한다(S50).
한편, 우선권 비트 설정부(120)는 상기 S20에서의 판단 결과 패킷 타입이 TCP 타입이면, 우선권 비트를 'It_traffic' 으로 설정한다(S60). 상기 ' Av_traffic' 을 1로 정한 경우에는 0으로, 상기 ' Av_traffic' 을 0으로 정한 경우에는 1로 설정하면 될 것이다.
다음, 제2 동적 버퍼링부(140)는 TCP 동적 버퍼링을 수행하여 ItQ(160)의 크기를 조절한다(S70). 이러한 TCP 동적 버퍼링에 관한 보다 상세한 과정은 도 10의 설명에서 하기로 한다. 이 후 마찬가지로 MPDU를 생성한다(S50).
도 8은 도 7에 이어서 상위 MAC 모듈(100) 중 MPDU 큐잉(queuing)부(180)에서 수행되는 동작 과정을 도시하는 흐름도이다.
S50 단계에 이어서, MPDU 큐잉부(180)는 MacTxQ(230)가 완전히 차 있는가를 판단한다(S80). 만약, 완전히 차 있지 않다면 우선권 비트가 Av_traffic인가를 판단한다(S90). 우선권 비트가 Av_traffic인 경우에는 상기 MPDU 생성부(150)에서 생 성된 MPDU를 MacTxQ(230)에 인큐잉(enqueuing)한다(S100).
만약, S90의 판단 결과 우선권 비트가 It_traffic인 경우(S90의 아니오)에는 AvQ(170)가 완전히 비어 있는지를 판단하여(S140), 완전히 비어 있다면 상기 MPDU 생성부(150)에서 생성된 MPDU를 MacTxQ(230)에 인큐잉한다(S100). S140의 판단 결과 AvQ(170)가 완전히 비어 있지 않다면 AvQ(170)에 전송할 MPDU가 존재하는 것을 의미한다. 따라서, 상기 MPDU 생성부(150)에서 생성된 MPDU는 우선권에서 뒤지므로 ItQ(160)에 인큐잉하고(S150), AvQ(170)에 저장된 MPDU를 MacTxQ(230)에 인큐잉한다.
S80에서의 판단 결과 MacTxQ(230)가 완전히 차 있다면, 생성된 MPDU를 MacTxQ(230)에 인큐잉할 수는 없으므로, 우선권 비트가 Av_traffic인지를 판단하여(S110), 우선권 비트가 Av_traffic인 경우에는 상기 생성된 MPDU를 AvQ(170)에 인큐잉한다(S130).
S110에서의 판단 결과, 우선권 비트가 It_traffic 인 경우(S110의 아니오)에는 상기 생성된 MPDU를 ItQ(160)에 인큐잉한다(S120).
도 7에서 나타난 동적 버퍼링 과정(S40, S70)은 유입되는 패킷의 종류에 따라서, UDP 동적 버퍼링(S40)과 TCP 동적 버퍼링(S70)으로 나뉘어 지며, UDP 패킷의 유입의 증가/감소 여부에 따라 ItQ 크기를 동적으로 변화시킨다. 동적 버퍼링 과정은 도 9 및 도 10의 설명을 통하여 자세히 살펴본다.
도 9는 UDP 동적 버퍼링(S40) 과정을 세부적으로 도시한 흐름도이다. 상위 MAC 모듈(100)이 LLC 층(61)으로부터 UDP 패킷을 수신한 경우에는 다음과 같은 UDP 동적 버퍼링 과정(S40)을 수행하게 되는데, 그 과정은 후술할 TCP 동적 버퍼링(S70)에 비하여 상대적으로 간단하다. 왜냐하면 TCP 패킷보다 우선 순위가 높기 때문에 TCP 트래픽으로 인해 자신이 대기하는 상황이 상대적으로 적기 때문이다.
UDP 패킷을 수신하면, TCP 패킷이 연속적으로 수신되지 않은 회수를 나타내는 변수(이하 'TcpOffDuration' 이라고 함)을 1 증가 시키고, UDP 패킷이 연속적으로 수신되지 않은 회수를 나타내는 변수(이하 'UdpOffDuration' 이라고 함)은 0으로 초기화한다(S41). 상기 TcpOffDuration 값이 소정의 임계치인 TcpThreshold 값보다 크거나 같은 경우(S42의 예)에는, 상기 TcpOffDuration 값을 0으로 초기화하고 ItQ(160)의 크기를 나타내는 변수(이하 'ItQSize' 라고 함)를 최소 ItQ의 크기(이하 'MinItQSize' 라고 함)로 설정한다. TcpThreshold 값은 사용자의 필요에 따라서 다르게 정할 수 있다.
TcpOffDuration 값이 TcpThreshold 값을 넘는 경우에는 상당 기간 연속으로 TCP 패킷이 유입되지 않았음을 나타내므로, ItQ(160)를 최소값으로 감소시킴으로써 TCP 트래픽의 감소를 유도할 수 있다. 이와 같이, TCP 패킷을 저장하는 ItQ 크기를 최소로 줄이면, 이후에 TCP 패킷이 일시적으로 유입되어도 TCP 패킷은 저장될 공간이 부족하여 의도적으로 버려지게 된다. 그러면, 전송 층(40)의 TCP 모듈(42)은 TCP 패킷이 송신 중 에러가 발생한 것으로 판단하여 슬라이딩 윈도우(45)의 크기를 줄이게 되므로, 결과적으로 TCP 트래픽량을 감소시키는 효과를 얻을 수 있는 것이다.
ItQ의 최소 크기(MinItQSize) 및 ItQ의 최대 크기(이하 'MaxItQSize' 라고 함)는 무선 통신 단말의 시스템 성능 및 네트워크 환경에 따라서 미리 지정되어 있다. 예를 들어, MinItQSize는 1이고 MaxItQSize는 16과 같이 지정되어 있다면, ItQ(160)의 크기는 1 내지 16 중에서 하나의 값을 가질 수 있다. 하나의 단위는 MPDU 하나를 저장할 수 있는 정도의 크기를 갖는 것으로 할 수 있다. 따라서, 하나의 단위를 올리거나 내림으로써 MPDU 하나를 더 수용하거나 수용하지 못하게 될 수 있다.
S42에서의 판단 결과, TcpOffDuration 값이 소정의 임계치인 TcpThreshold 값보다 작으면(S42의 아니오), ItQSize 값이 MinItQSize 값보다 큰가를 판단하여(S43), 크다면 ItQSize를 1감소시키고(S44), 크지 않다면 ItQSize 값이 MinItQSize 값과 이미 동일하여 더 이상 줄일 수 없으므로 S44 단계를 수행하지 않는다.
도 10은 TCP 동적 버퍼링(S70) 과정을 세부적으로 도시한 흐름도이다.
상위 MAC 모듈(100)이 LLC 층(61)으로부터 TCP 패킷을 수신한 경우에는 다음과 같은 UDP 동적 버퍼링 과정(S40)을 수행하게 된다.
TCP 패킷을 수신하면, UdpOffDuration 값을 1증가 시키고, TcpOffDuration 값은 0으로 초기화한다(S71). 상기 UdpOffDuration 값이 소정의 임계치인 UdpThreshold 값보다 크거나 같은 경우(S72의 예)에는, 상기 UcpOffDuration 값을 0으로 초기화한다(S73). UdpThreshold 값은 사용자의 필요에 따라서 다르게 정할 수 있다.
다음, ItQSize 값이 MaxItQSize 값보다 작은가를 판단하여(S74), 작으면 ItQSize를 하나 증가시키고(S75), 작지 않으면 ItQSize가 이미 MaxItQSize와 같으므로 S75과정을 수행하지 않는다.
이와 같이, UdpOffDuration 값이 UdpThreshold 값을 넘는 경우에는 상당 기간 연속으로 UDP 패킷이 유입되지 않았음을 나타내므로 ItQ 크기를 증가시킴으로써 TCP 트래픽의 증가를 유도할 수 있게 된다.
한편, UdpOffDuration 값이 소정의 임계치인 UdpThreshold 값보다 작은 경우(S72의 아니오)에는 ItQSize 값이 ItQDataSize 값보다 작은가를 판단하여(S76), 작은 경우에는 저장할 새로 유입된 현재 TCP 패킷을 저장할 만큼 ItQ(160)에 여유 공간이 없으므로, 현재 TCP 패킷을 버리고(S77) 종료한다. 이 후 전송 층(40)의 TCP 모듈(42)은 슬라이딩 윈도우(45)의 크기 줄임으로써 TCP 트래픽을 감소시킨다.
그리고, S76의 판단에서, 작지 않은 경우에는 S50 단계로 진행한다. 여기서, ItQDataSize 값은 ItQ(160)에 이미 저장되어 있는 TCP 패킷과 현재 TCP 패킷을 합한 크기를 의미한다.
도 11은 타 스테이션으로부터 ACK 프레임을 수신한 경우에 MPDU를 MacTxQ(230)에 인큐잉하는 과정을 나타낸 흐름도이다.
이와 같이, 이미 송신한 MPDU라 하더라도 타 스테이션으로부터 ACK 프레임을 수신하기 전까지는 MacTxQ(230)에 상기 송신한 MPDU를 그대로 버퍼링하고 있다가, ACK 프레임을 수신하면 상기 송신한 MPDU를 삭제하게 된다. 따라서, 이 경우에는 MacTxQ에 여유 공간이 발생하므로, 상위 MAC 모듈(100)의 AvQ(170)나 ItQ(160)에 일시 저장된 MPDU가 있으면 이를 MacTxQ(230)에 인큐잉하여야 할 것이다. 이 경우에도 ItQ(160)보다 AvQ(170)에 우선권을 주어야 할 것인 바, 이에 대한 알고리즘을 설명한다.
스테이션(1)이 데이터를 송신하고 타 스테이션으로부터 상기 송신한 데이터에 대한 ACK 프레임을 수신하면, 스테이션(1)상위 MAC 모듈(100)은 하위 MAC 모듈(200)로부터 ACK 프레임을 올바르게 수신하였음을 알려주는 TxConfirm 인터럽트(interrupt)를 하위층 송수신부(190)을 통하여 수신하게 된다(S210).
그러면, MDPU 큐잉부(180)는 AvQ(170)가 현재 완전히 비어 있는가를 판단하여(S220), 완전히 비어 있으면, ItQ(160)가 완전히 비어 있는가를 판단한다(S230).
ItQ(160)가 완전히 비어 있으면, 상위 MAC 모듈(100)에서 하위 MAC 모듈(200)로 전송할 MPDU가 전혀 없는 경우이므로 종료한다.
ItQ(160)가 완전히 비어 있지 않고 저장된 MPDU가 있으면(S230의 아니오), ItQ(160)에서 MPDU를 디큐잉하여(S240), 이를 MacTxQ(230)에 인큐잉한다(S250).
한편, S220에서의 판단결과 AvQ(170)가 완전히 비어 있지 않고 대기 중인 MPDU 데이터가 존재하면(S220의 아니오), AvQ(170)에서 MPDU를 디큐잉하여(S270), 이를 MacTxQ(230)에 인큐잉한다(S250).
도 12는 하위 MAC 모듈(200)에서 이루어지는 QoS의 마지막 과정을 도시한 흐름도이다.
상위 MAC 모듈(100)에서 결정되어 내려오는 우선권 비트를 기준으로 백오프 여부를 결정한다. 백오프로 인해 소비되는 시간이 데이터 전송 효율에 가장 크게 영향을 미치는 까닭에 백오프 적용 유무는 아주 중요한 요소이다.
하위 MAC 모듈(200)은 상위 MAC 모듈(100)에서 내려오는 MPDU를 참조하여, MPDU 단위로 백오프의 수행 여부를 결정한다. Av_traffic을 우선권 비트로 갖는 경우이면 백오프 없이 전송을 시도를 함으로써 현재 BSS(Basic Service Set)에 존재하는 다른 스테이션 들에 비해 우선 순위를 가지고 채널을 점유함과 동시에 빠른 전송을 할 수 있고, It_traffic을 우선권 비트로 갖는 경우이면 타 스테이션과 마찬가지로 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance) 규칙을 따라서 전송을 하게 된다.
이러한 과정을 도 12을 참조하여 살펴보면 먼저, MacTxQ(230)에 일시 저장된 MPDU 중에서 인큐잉된 순서에 따라서 하나의 MPDU를 추출한다(S310). 상기 추출된 MPDU의 우선권 비트를 확인하여 그 우선권 비트가 Av_traffic인지를 판단한다(S320). 우선권 비트를 확인하는 것은 상위 MAC 모듈(100)에서 MPDU와 함께 부가적으로 전달되는 데이터 스트럭쳐 내에 우선권 비트를 나타내는 파라미터 값을 읽으면 알 수 있다.
상기 판단 결과 우선권 비트가 Av_traffic이면 백오프 값을 0으로 설정하고(S330), 추출된 MPDU를 바로 물리층(70)으로 전달한다(S340). 만약, 우선권 비트가 It_traffic이면(S320의 아니오) 백오프 값을 백오프 알고리즘(예컨대, 랜덤 백오프 알고리즘을 예로 들 수 있다)에 따라서 설정하고(S350), 설정된 백오프 시간 동안 대기한 이후에(S360) MPDU를 물리층(70)으로 전달한다(S340).
최종적으로, 물리층(70)은 상기 전달받은 MPDU를 이용하여 PPDU를 생성하고, PPDU가 갖는 디지털 데이터를 아날로그 R/F 신호(analogue radio frequency signal)로 변환하고 이 신호를 무선 매체(wireless medium)를 통하여 타 스테이션에 전송한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
본 발명에 따르면, 보장된 대역폭(Guaranteed Bandwidth)이 필요한 데이터의 트래픽이 발생하면, 동적으로 일반 데이터의 밴드폭을 줄임으로써, 멀티미디어 데이터의 QoS를 보장하는 효과가 있다.
또한, 본 발명에 따르면, MAC 층에서의 조작만으로 TCP 트래픽 정체 제어(TCP traffic congestion control)을 가능하게 함으로써, MAC 층의 변경에 따라 상위 어플리케이션을 변경할 필요가 없다. 따라서, 기존에 개발된 어플리케이션과 호환성을 보장하는 효과가 있다.
Claims (21)
- (a) 상위층으로부터 수신한 패킷의 헤더 정보를 판독하여 상기 패킷의 타입을 찾아내는 단계;(b) 상기 찾아낸 패킷의 타입 별로 서로 다른 우선권을 부여하는 단계;(c) 상기 패킷 중 낮은 우선권을 갖는 제1 패킷이 유입되지 않은 횟수와 소정의 제1 문턱값을 비교하여 가변 버퍼의 크기를 조절하는 단계;(d) 상기 패킷 중 높은 우선권을 갖는 제2 패킷은 고정 버퍼에 인큐잉하고, 상기 제1 패킷은 상기 가변 버퍼에 인큐잉하는 단계; 및(e) 상기 고정 버퍼에 인큐잉된 제2 패킷을 상기 가변 버퍼에 인큐잉된 제2 패킷에 우선하여 목적 스테이션에 전송하는 단계를 포함하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제1항에 있어서, 상기 패킷의 타입은 UDP와 TCP를 포함하는데, 이 중에서 UDP에 높은 우선권이 설정되는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제2항에 있어서, 상기 패킷의 타입은IP 헤더의 프로토콜 번호 필드에 기록된 정보로부터 찾아내는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 삭제
- 제2항에 있어서, 상기 (c) 단계는(c1) 상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 크거나 같은 경우에는, 상기 가변 버퍼의 크기를 최소 크기로 변경하는 단계; 및(c2) 상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 작은 경우에는, 상기 가변 버퍼의 크기를 한 단위만큼 감소시키는 단계를 포함하는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제2항에 있어서, 상기 패킷의 타입이 TCP인 경우에 상기 (c) 단계는,(c3) 연속으로 UDP 패킷이 유입되지 않은 횟수와 소정의 제2 문턱값을 비교하는 단계; 및(c4) 상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 단계를 포함하는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제6항에 있어서, 상기 (c4) 단계는,상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 크거나 같은 경우에는, 상기 가변 버퍼의 크기를 한 단위만큼 증가시키는 단계; 및상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 작은 경우에는, 가변 버퍼가 상기 TCP 패킷을 수용할 수 없으면 상기 TCP 패킷을 버리는 단계를 포함하는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제7항에 있어서, 상기 TCP 패킷을 버림에 의하여 슬라이딩 윈도우의 크기가 감소됨으로써 TCP 트래픽이 감소되는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제1항에 있어서,상기 목적 스테이션으로부터 상기 전송한 패킷에 대한 ACK 프레임을 수신하는 단계; 및상기 고정 버퍼에 전송할 패킷이 있으면 이 패킷을 MAC 전송 버퍼에 인큐잉하고, 상기 고정 버퍼에 전송할 패킷이 없으면 상기 가변 버퍼에 있는 패킷을 MAC 전송 버퍼에 인큐잉하는 단계를 더 포함하는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 제1항에 있어서, 상기 (e) 단계는상기 고정 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 백오프 없이 바로 물리층으로 전달하고, 상기 가변 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 소정의 백오프 기간 동안 대기한 후 상기 패킷을 물리층으로 전달하는 단계; 및상기 전달된 패킷이 갖는 디지털 데이터를 아날로그 R/F 신호로 변환하고 이 신호를 무선 매체를 통하여 타 스테이션에 전송하는 단계를 포함하는 것을 특징으로 하는 무선 스테이션의 트래픽을 동적으로 제어하는 방법.
- 상위층으로부터 수신한 패킷의 헤더 정보를 판독하여 상기 패킷의 타입을 찾아내고, 상기 찾아낸 패킷의 타입 별로 서로 다른 우선권을 부여하는 우선권 비트 설정부;상기 패킷 중 낮은 우선권을 갖는 제1 패킷이 유입되지 않은 횟수와 소정의 제1 문턱값을 비교하여 가변 버퍼의 크기를 조절하는 동적 버퍼링부;상기 패킷 중 높은 우선권을 갖는 제2 패킷을 인큐잉하는 고정 버퍼;상기 제1 패킷을 인큐잉하는 가변 버퍼; 및상기 고정 버퍼에 인큐잉된 제2 패킷을 상기 가변 버퍼에 인큐잉된 제1 패킷에 우선하여 목적 스테이션에 전송하는 수단을 포함하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제11항에 있어서, 상기 패킷의 타입은 UDP와 TCP를 포함하는데, 이 중에서 UDP에 높은 우선권이 설정되는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제12항에 있어서, 상기 패킷의 타입은IP 헤더의 프로토콜 번호 필드에 기록된 정보로부터 찾아내는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 삭제
- 제11항에 있어서, 상기 동적 버퍼링부는상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 크거나 같은 경우에는 상기 가변 버퍼의 크기를 최소 크기로 변경하고,상기 비교 결과 상기 연속으로 TCP 패킷이 유입되지 않은 횟수가 상기 소정의 제1 문턱값보다 작은 경우에는 상기 가변 버퍼의 크기를 한 단위만큼 감소시키는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제12항에 있어서, 상기 패킷의 타입이 TCP인 경우에 상기 동적 버퍼링부는,연속으로 UDP 패킷이 유입되지 않은 횟수와 소정의 제2 문턱값을 비교하고, 상기 비교 결과에 따라서 가변 버퍼의 크기를 조절하는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제16항에 있어서, 상기 버퍼링부는,상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 크거나 같은 경우에는 상기 가변 버퍼의 크기를 한 단위만큼 증가시키고,상기 비교 결과 상기 연속으로 UDP 패킷이 유입되지 않은 횟수가 상기 소정의 제2 문턱값보다 작은 경우에는, 가변 버퍼가 상기 TCP 패킷을 수용할 수 없으면 상기 TCP 패킷을 버리는 단계를 포함하는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제17항에 있어서, 상기 TCP 패킷을 버림에 따라서 슬라이딩 윈도우의 크기를 감소시킴으로써 TCP 트래픽을 감소키는 TCP 모듈을 더 포함하는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제11항에 있어서,상기 목적 스테이션으로부터 상기 전송한 패킷에 대한 ACK 프레임을 수신한 후 상기 고정 버퍼에 전송할 패킷이 있으면 이 패킷을 MAC 전송 버퍼에 인큐잉하고, 상기 고정 버퍼에 전송할 패킷이 없으면 상기 가변 버퍼에 있는 패킷을 MAC 전송 버퍼에 인큐잉하는 백오프 결정부를 더 포함하는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제11항에 있어서, 상기 전송하는 수단은상기 고정 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 백오프 없이 바로 물리층으로 전달하고, 상기 가변 버퍼에 인큐잉된 패킷을 전송하는 경우에는 상기 패킷을 소정의 백오프 기간 동안 대기한 후 상기 패킷을 물리층으로 전달하는 하위 MAC 모듈; 및상기 전달된 패킷이 갖는 디지털 데이터를 아날로그 R/F 신호로 변환하고 이 신호를 무선 매체를 통하여 타 스테이션에 전송하는 물리층 모듈을 포함하는 것을 특징으로 하는 동적으로 트래픽을 제어하는 무선 스테이션.
- 제1항 내지 제3항, 제5항 내지 제10항 중 어느 한 항의 방법을 컴퓨터로 판독 가능한 프로그램으로 기록한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/070,230 US20050195821A1 (en) | 2004-03-03 | 2005-03-03 | Method and apparatus for dynamically controlling traffic in wireless station |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54944204P | 2004-03-03 | 2004-03-03 | |
US60/549,442 | 2004-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050088902A KR20050088902A (ko) | 2005-09-07 |
KR100654429B1 true KR100654429B1 (ko) | 2006-12-06 |
Family
ID=37271513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040025413A KR100654429B1 (ko) | 2004-03-03 | 2004-04-13 | 무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050195821A1 (ko) |
KR (1) | KR100654429B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101549794B1 (ko) | 2014-12-01 | 2015-09-03 | 한국과학기술원 | 자동 버퍼 관리 방법 및 장치 |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9325998B2 (en) * | 2003-09-30 | 2016-04-26 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US8018850B2 (en) * | 2004-02-23 | 2011-09-13 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US7784076B2 (en) * | 2004-10-30 | 2010-08-24 | Sharp Laboratories Of America, Inc. | Sender-side bandwidth estimation for video transmission with receiver packet buffer |
US7797723B2 (en) * | 2004-10-30 | 2010-09-14 | Sharp Laboratories Of America, Inc. | Packet scheduling for video transmission with sender queue control |
US8356327B2 (en) * | 2004-10-30 | 2013-01-15 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US7903690B2 (en) * | 2005-04-28 | 2011-03-08 | Hewlett-Packard Development Company, L.P. | Method and system of sending an audio stream and a data stream |
US20070067480A1 (en) * | 2005-09-19 | 2007-03-22 | Sharp Laboratories Of America, Inc. | Adaptive media playout by server media processing for robust streaming |
US9544602B2 (en) * | 2005-12-30 | 2017-01-10 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US7639712B2 (en) * | 2006-01-06 | 2009-12-29 | Fujitsu Limited | Low-level media access layer processors with extension buses to high-level media access layers for network communications |
US7630402B2 (en) * | 2006-01-06 | 2009-12-08 | Fujitsu Limited | Media access layer processors for network communications |
US7652994B2 (en) * | 2006-03-31 | 2010-01-26 | Sharp Laboratories Of America, Inc. | Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels |
KR100758284B1 (ko) | 2006-05-09 | 2007-09-12 | 한국전자통신연구원 | 홈네트워크 서비스 품질 보장을 위한 홈서버 장치 및 그를이용한 서비스 품질 보장 방법 |
US8289965B2 (en) | 2006-10-19 | 2012-10-16 | Embarq Holdings Company, Llc | System and method for establishing a communications session with an end-user based on the state of a network connection |
US8488447B2 (en) | 2006-06-30 | 2013-07-16 | Centurylink Intellectual Property Llc | System and method for adjusting code speed in a transmission path during call set-up due to reduced transmission performance |
US8717911B2 (en) | 2006-06-30 | 2014-05-06 | Centurylink Intellectual Property Llc | System and method for collecting network performance information |
US7765294B2 (en) | 2006-06-30 | 2010-07-27 | Embarq Holdings Company, Llc | System and method for managing subscriber usage of a communications network |
US8194643B2 (en) | 2006-10-19 | 2012-06-05 | Embarq Holdings Company, Llc | System and method for monitoring the connection of an end-user to a remote network |
US9094257B2 (en) | 2006-06-30 | 2015-07-28 | Centurylink Intellectual Property Llc | System and method for selecting a content delivery network |
US8537695B2 (en) | 2006-08-22 | 2013-09-17 | Centurylink Intellectual Property Llc | System and method for establishing a call being received by a trunk on a packet network |
US8238253B2 (en) * | 2006-08-22 | 2012-08-07 | Embarq Holdings Company, Llc | System and method for monitoring interlayer devices and optimizing network performance |
US8743703B2 (en) | 2006-08-22 | 2014-06-03 | Centurylink Intellectual Property Llc | System and method for tracking application resource usage |
US8015294B2 (en) | 2006-08-22 | 2011-09-06 | Embarq Holdings Company, LP | Pin-hole firewall for communicating data packets on a packet network |
US8549405B2 (en) | 2006-08-22 | 2013-10-01 | Centurylink Intellectual Property Llc | System and method for displaying a graphical representation of a network to identify nodes and node segments on the network that are not operating normally |
US8189468B2 (en) | 2006-10-25 | 2012-05-29 | Embarq Holdings, Company, LLC | System and method for regulating messages between networks |
US8750158B2 (en) | 2006-08-22 | 2014-06-10 | Centurylink Intellectual Property Llc | System and method for differentiated billing |
US8228791B2 (en) | 2006-08-22 | 2012-07-24 | Embarq Holdings Company, Llc | System and method for routing communications between packet networks based on intercarrier agreements |
US8064391B2 (en) | 2006-08-22 | 2011-11-22 | Embarq Holdings Company, Llc | System and method for monitoring and optimizing network performance to a wireless device |
US8199653B2 (en) | 2006-08-22 | 2012-06-12 | Embarq Holdings Company, Llc | System and method for communicating network performance information over a packet network |
US8531954B2 (en) | 2006-08-22 | 2013-09-10 | Centurylink Intellectual Property Llc | System and method for handling reservation requests with a connection admission control engine |
US8223655B2 (en) | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | System and method for provisioning resources of a packet network based on collected network performance information |
US9479341B2 (en) | 2006-08-22 | 2016-10-25 | Centurylink Intellectual Property Llc | System and method for initiating diagnostics on a packet network node |
US8144587B2 (en) | 2006-08-22 | 2012-03-27 | Embarq Holdings Company, Llc | System and method for load balancing network resources using a connection admission control engine |
US8274905B2 (en) | 2006-08-22 | 2012-09-25 | Embarq Holdings Company, Llc | System and method for displaying a graph representative of network performance over a time period |
US8619600B2 (en) | 2006-08-22 | 2013-12-31 | Centurylink Intellectual Property Llc | System and method for establishing calls over a call path having best path metrics |
US8307065B2 (en) | 2006-08-22 | 2012-11-06 | Centurylink Intellectual Property Llc | System and method for remotely controlling network operators |
US8130793B2 (en) | 2006-08-22 | 2012-03-06 | Embarq Holdings Company, Llc | System and method for enabling reciprocal billing for different types of communications over a packet network |
US8576722B2 (en) | 2006-08-22 | 2013-11-05 | Centurylink Intellectual Property Llc | System and method for modifying connectivity fault management packets |
US8407765B2 (en) | 2006-08-22 | 2013-03-26 | Centurylink Intellectual Property Llc | System and method for restricting access to network performance information tables |
US7684332B2 (en) | 2006-08-22 | 2010-03-23 | Embarq Holdings Company, Llc | System and method for adjusting the window size of a TCP packet through network elements |
US8224255B2 (en) | 2006-08-22 | 2012-07-17 | Embarq Holdings Company, Llc | System and method for managing radio frequency windows |
US7843831B2 (en) | 2006-08-22 | 2010-11-30 | Embarq Holdings Company Llc | System and method for routing data on a packet network |
US8861597B2 (en) * | 2006-09-18 | 2014-10-14 | Sharp Laboratories Of America, Inc. | Distributed channel time allocation for video streaming over wireless networks |
KR20090088858A (ko) * | 2006-10-12 | 2009-08-20 | 쌘디스크 코포레이션 | 최악의 경우 제어 데이터 관리를 사용하는 비휘발성 메모리 및 관리 방법 |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
US7652993B2 (en) * | 2006-11-03 | 2010-01-26 | Sharp Laboratories Of America, Inc. | Multi-stream pro-active rate adaptation for robust video transmission |
KR20080069524A (ko) * | 2007-01-23 | 2008-07-28 | 삼성전자주식회사 | 무선 네트워크에서 데이터를 송수신하는 방법 및 장치 |
US8068425B2 (en) | 2008-04-09 | 2011-11-29 | Embarq Holdings Company, Llc | System and method for using network performance information to determine improved measures of path states |
US8301792B2 (en) * | 2008-10-28 | 2012-10-30 | Panzura, Inc | Network-attached media plug-in |
US8422463B2 (en) | 2010-12-29 | 2013-04-16 | General Electric Company | System and method for dynamic data management in a wireless network |
US8358590B2 (en) | 2010-12-29 | 2013-01-22 | General Electric Company | System and method for dynamic data management in a wireless network |
US8422464B2 (en) | 2010-12-29 | 2013-04-16 | General Electric Company | System and method for dynamic data management in a wireless network |
US8665895B2 (en) * | 2010-12-30 | 2014-03-04 | Broadcom Corporation | Advanced and dynamic physical layer device capabilities utilizing a link interruption signal |
WO2012148243A2 (ko) * | 2011-04-28 | 2012-11-01 | 엘지전자 주식회사 | 안테나를 구비한 차량을 이용한 통신 성능 향상 방법 |
US20120320751A1 (en) * | 2011-06-17 | 2012-12-20 | Jing Zhu | Method and system for communicating data packets |
EP2784673A1 (en) * | 2013-03-28 | 2014-10-01 | Alcatel Lucent | Scheduling |
US10034179B2 (en) | 2013-10-30 | 2018-07-24 | Sai C. Manapragada | System and method for extending range and coverage of bandwidth intensive wireless data streams |
US9646493B2 (en) | 2015-06-19 | 2017-05-09 | International Business Machines Corporation | Management of moving objects |
US10749734B2 (en) * | 2015-07-07 | 2020-08-18 | International Business Machines Corporation | Management of events and moving objects |
US10600322B2 (en) | 2017-06-21 | 2020-03-24 | International Business Machines Corporation | Management of mobile objects |
US10540895B2 (en) | 2017-06-21 | 2020-01-21 | International Business Machines Corporation | Management of mobile objects |
US10546488B2 (en) | 2017-06-21 | 2020-01-28 | International Business Machines Corporation | Management of mobile objects |
US10535266B2 (en) | 2017-06-21 | 2020-01-14 | International Business Machines Corporation | Management of mobile objects |
US10504368B2 (en) | 2017-06-21 | 2019-12-10 | International Business Machines Corporation | Management of mobile objects |
US10585180B2 (en) | 2017-06-21 | 2020-03-10 | International Business Machines Corporation | Management of mobile objects |
CN107302505B (zh) * | 2017-06-22 | 2019-10-29 | 迈普通信技术股份有限公司 | 管理缓存的方法及装置 |
US11178694B2 (en) * | 2019-09-09 | 2021-11-16 | Sony Group Corporation | RTA queue management in wireless local area network (WLAN) stations |
US11758434B2 (en) * | 2020-10-20 | 2023-09-12 | Harman International Industries, Incorporated | Dynamic buffer allocation for bluetooth low energy isochronous transmissions |
EP3989494A1 (fr) * | 2020-10-21 | 2022-04-27 | Avantix | Procede d'agregation et de regulation de messages via un canal de communication bidirectionnel contraint |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6570876B1 (en) * | 1998-04-01 | 2003-05-27 | Hitachi, Ltd. | Packet switch and switching method for switching variable length packets |
US6633540B1 (en) * | 1999-07-02 | 2003-10-14 | Nokia Internet Communications, Inc. | Real-time traffic shaper with keep-alive property for best-effort traffic |
US7272119B2 (en) * | 2000-11-02 | 2007-09-18 | Sharp Laboratories Of America, Inc. | Methods and systems for quality of service in networks comprising wireless devices |
US20020159418A1 (en) * | 2000-11-02 | 2002-10-31 | Sharp Laboratories Of America, Inc. | Quality of service using wireless lan |
US7164671B2 (en) * | 2001-12-27 | 2007-01-16 | Koninklijke Philips Electronics N.V. | Overlapping network allocation vector (ONAV) for avoiding collision in the IEEE 802.11 WLAN operating under HCF |
US7006511B2 (en) * | 2001-07-17 | 2006-02-28 | Avaya Technology Corp. | Dynamic jitter buffering for voice-over-IP and other packet-based communication systems |
JP3799285B2 (ja) * | 2002-03-29 | 2006-07-19 | Necインフロンティア株式会社 | 無線lan基地局、無線端末およびプログラム |
US20040125815A1 (en) * | 2002-06-24 | 2004-07-01 | Mikio Shimazu | Packet transmission apparatus and method thereof, traffic conditioner, priority control mechanism and packet shaper |
US20060140146A1 (en) * | 2003-07-03 | 2006-06-29 | Johannes Funk | Method for controlling data circuits |
KR100542346B1 (ko) * | 2003-07-30 | 2006-01-11 | 삼성전자주식회사 | 무선 랜 액세스 포인트의 패킷 처리 장치 및 그 방법 |
KR101119784B1 (ko) * | 2003-10-10 | 2012-04-18 | 톰슨 라이센싱 | Tcp 전송 레이트를 감속시킴으로써 tcp 트래픽에대한 udp 우선순위화 |
EP1575224A1 (en) * | 2004-03-09 | 2005-09-14 | Matsushita Electric Industrial Co., Ltd. | Packet output-controlling device |
US7903690B2 (en) * | 2005-04-28 | 2011-03-08 | Hewlett-Packard Development Company, L.P. | Method and system of sending an audio stream and a data stream |
-
2004
- 2004-04-13 KR KR1020040025413A patent/KR100654429B1/ko not_active IP Right Cessation
-
2005
- 2005-03-03 US US11/070,230 patent/US20050195821A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101549794B1 (ko) | 2014-12-01 | 2015-09-03 | 한국과학기술원 | 자동 버퍼 관리 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20050088902A (ko) | 2005-09-07 |
US20050195821A1 (en) | 2005-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100654429B1 (ko) | 무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치 | |
US10237153B2 (en) | Packet retransmission method and apparatus | |
RU2409898C2 (ru) | Гибкая схема сегментации для систем связи | |
US6880017B1 (en) | System and method for providing an adaptive streaming flow control mechanism between the TCP and IP layers of the TCP/IP suite of protocols | |
US6907042B1 (en) | Packet processing device | |
EP2052556B1 (en) | Improved content throughput on wireless mesh networks | |
US6700871B1 (en) | Increased throughput across data network interface by dropping redundant packets | |
US8660137B2 (en) | Method and system for quality of service and congestion management for converged network interface devices | |
JP4829896B2 (ja) | データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品 | |
US9385835B2 (en) | System and method for adaptive frame size management in a wireless multihop network | |
US6091710A (en) | System and method for preventing data slow down over asymmetric data transmission links | |
US20050226239A1 (en) | Optimizing IEEE 802.11 for TCP/IP data transfer | |
US20070153921A1 (en) | QoS control method for transmission data for radio transmitter and radio receiver using the method | |
US6831908B2 (en) | Data communication system and method | |
JP2005533418A (ja) | 異なるQoS属性を有するデータの伝送装置、システム及び方法 | |
US20120079065A1 (en) | Data packet transfer over wide area network in fast and reliable manner | |
JP3814678B2 (ja) | サテライトを介するインターネット | |
CN110943933A (zh) | 一种实现数据传输的方法、装置和系统 | |
EP3522479A1 (en) | Techniques for efficient multipath transmission | |
JP2005537764A (ja) | 優先度及びリザーブ帯域幅プロトコルを利用したネットワークにおけるQoSを提供する機構 | |
JP2002271366A (ja) | パケット伝送方法及びシステム、並びにパケット送信装置、受信装置、及び送受信装置 | |
CN110943935A (zh) | 一种实现数据传输的方法、装置和系统 | |
JP2003078560A (ja) | トランスポートレイヤプロトコルにおけるフロー制御方式 | |
US20060198376A1 (en) | Communication device for IP network | |
US20050122904A1 (en) | Preventative congestion control for application support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121030 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20131030 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20141030 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20151029 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |