KR100427803B1 - 음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법 - Google Patents

음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법 Download PDF

Info

Publication number
KR100427803B1
KR100427803B1 KR10-2001-0031305A KR20010031305A KR100427803B1 KR 100427803 B1 KR100427803 B1 KR 100427803B1 KR 20010031305 A KR20010031305 A KR 20010031305A KR 100427803 B1 KR100427803 B1 KR 100427803B1
Authority
KR
South Korea
Prior art keywords
packet
fragmentation
voice
data
ref
Prior art date
Application number
KR10-2001-0031305A
Other languages
English (en)
Other versions
KR20010070750A (ko
Inventor
선민규
정재원
Original Assignee
(주)다보링크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)다보링크 filed Critical (주)다보링크
Priority to KR10-2001-0031305A priority Critical patent/KR100427803B1/ko
Publication of KR20010070750A publication Critical patent/KR20010070750A/ko
Application granted granted Critical
Publication of KR100427803B1 publication Critical patent/KR100427803B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5087Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to voice services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4535Network directories; Name-to-address mapping using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 음성 인터넷 프로토콜용 큐오에스(QoS) 제어장치 및 방법에 관한 것으로, 특히 본 발명은 수신된 패킷의 목적지 주소를 판독하고, 목적지 주소가 QoS 제어장치의 하드웨어 주소, 브로드캐스트 주소 및 라우터 주소인지를 판별하여 목적지 주소에 따라 Ref(Reference) ID와 Ref(Reference) 카운트를 결정하고, 결정된 Ref ID 및 Ref 카운트에 따라 패킷을 분류하는 패킷 분류 단계와; 분류된 패킷을 계층(레이어)에 따라 프로토콜로 분류하는 프로토콜 분석 단계와; 분류된 패킷의 프로토콜에 따라 패킷이 데이터 패킷인지 음성 패킷인지를 판별하고, 데이터 패킷의 길이와 프래그먼테이션 크기를 정의하고, 데이터 패킷의 길이와 프래그먼테이션 크기를 비교하여 프래그먼테이션 수를 결정하고, 결정된 프래그먼테이션 수를 Ref 카운트에 저장하는 패킷 분할 단계와; 패킷의 진행 방향에 따라 특정 큐잉 전달 파라미터를 지정된 경로로 전송하고, 패킷의 종류에 따라 각각의 패킷을 별도의 큐로 전송하는 큐잉 단계와; 패킷의 프래그먼테이션 프레임에 대한 프래그먼테이션 수를 계산하여 프래그먼테이션 프레임의 순위를 식별하고, 식별된 프래그먼테이션 프레임의 순위에 따라 프로그먼테이션 프레임의 길이, 프래그 및 오프셋을 산출하여 패킷의 IP 헤더에 저장하여 전송할 패킷을 생성하는 패킷 생성 단계; 및 생성된 패킷을 지정된 큐로부터 수신하여 패킷의 진행 방향에 따라 해당 큐잉 파라미터를 부가하여 지정된 경로로 전송하는 트래픽 쉐이핑 단계를 포함한다. 따라서, 본 발명에 의하면 음성/데이터 통합 네트워크 상에서 음성 트래픽과 데이터 트래픽을 구분하여 QoS를 제어함으로써, 음성의 통화 품질을 극대화시킬 수 있는 효과가 있다.

Description

음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법{Method and Apparatus for Controlling QoS for Voice over Internet Protocol}
본 발명은 음성 인터넷 프로토콜(Voice over Internet Protocol)(이하에서는, 'VoIP'라 칭한다)용 QoS(Quality of Service) 제어장치 및 방법에 관한 것으로, 보다 상세하게는 음성/데이터 통합 네트워크 상에서 음성 트래픽과 데이터 트래픽을 구분하여 VoIP 음성 통화 품질을 극대화시킬 수 있는 VoIP용 QoS 제어장치 및 방법에 관한 것이다.
VoIP는 인터넷 프로토콜(IP)을 사용하여 음성정보를 전달하는 일련의 설비들을 위한 IP 전화기술을 지칭하는 용어이나, 일반적으로 VoIP는 공중교환전화망인 PSTN처럼 회선에 근거한 전통적인 프로토콜이 아니라 불연속적인 패킷들 내에 디지털 형태로 음성정보를 전송한다는 것을 의미한다. VoIP와 인터넷 전화기술의 주요 장점은 기존 IP 네트워크를 그대로 활용해 전화 서비스를 통합 구현함으로써, 전화 사용자들이 시내전화 요금만으로 인터넷, 인트라넷 환경에서 시외 및 국제전화 서비스를 받을 수 있게 된다는 것이다.
VoIP는 공중 인터넷 또는 기업 내부의 인트라넷상에서 IP를 이용하여 음성과 영상을 전송하기 위한 표준인 ITU-T H.323의 사용을 장려하기 위해 VoIP 포럼을 통해 시스코, 보컬텍, 3Com, 넷스피크 등 주요 장비제작회사들에 의해 규정된 것이다. VoIP 포럼은 서비스 표준을 장려함으로써, 일반 사용자들이 다른 사용자들의 위치를 찾아낼 수 있고 자동 전화분배와 음성메일을 위한 터치폰 신호의 사용을 가능하게 하였다. VoIP는 원래의 IP 기능을 수행하고, 또한 패킷들이 적시에 도착하도록 지원하기 위해 RTP(Real-time Transport Protocol)를 사용한다. 공중 네트워크를 사용하면 현재 서비스 품질(QoS)을 보장하기가 어렵기 때문에 독자적인 기업이나 인터넷 전화 서비스 공급자에 의해 관리되는 사설 네트워크를 사용하여 고품질의 서비스를 제공받고 있다. VoIP를 사용하기 위해서는 게이트웨이에 시스코의 AS5300 액세스 서버와 같은 VoIP 장비를 설치하여야 한다. 게이트웨이는 사용자들로부터 패킷으로 분할되어 전송되는 음성 데이터를 전달받아 인트라넷 등의 네트워크를 통해 목적지로 전달하거나 T1 또는 E1 인터페이스를 사용하여 PSTN으로 전송하는 역할을 수행한다.
이러한 VoIP의 고품질 서비스를 구현하기 위해 전송율, 에러율 및 이들의 측정 및 개선이 가능한 QoS 메카니즘의 효과적인 설계가 요망된다. QoS 메카니즘은높은 대역의 음성, 영상 및 멀티미디어 정보를 지속적으로 전송하는 경우에 특히 유용하다. 공중 네트워크를 통해 이러한 종류의 컨텐츠를 신뢰할 수 있을 정도로 전송한다는 것은 매우 어려운 문제이다. 이를 위해 인터넷의 RSVP(Resource reSerVation Protocol)를 사용하여 게이트웨이 호스트를 통화하는 패킷들을 사전에 설정된 정책과 예약기준에 따라 신속히 처리할 수 있다. 또한, 회사나 일반 사용자가 서비스의 품질을 사전에 선택할 수 있도록 하는 ATM(Asynchronous Transfer Mode)을 사용하면, QoS는 게이트웨이에서 평균지연, 셀 그룹 내에서의 지체 변화량, 셀 손실 및 전송 에러율 등의 형태로 측정할 수 있다.
도 1은 종래의 음성 트래픽 처리과정을 설명하는 흐름도이다.
사용자의 음성 데이터가 입력되면, 그 아날로그 음성 신호를 샘플링 및 양자화 과정을 거쳐 PCM(Pulse Code Modulation) 비트 스트림 데이터로 코딩한다(S110). 코딩된 비트 스트림의 잡음 성분을 제거하기 위해 소정의 필터링 알고리즘을 적용한다(S120). 여기에서, 잡음 성분은 단순 잡음뿐만 아니라 정상 음성 신호에 왜곡을 줄 수 있는 모든 신호를 포함한다. 또한, 묵음 기간을 찾기 위해 비트 스트림에 VAD(Voice Activity Detection) 알고리즘을 적용한다. 묵음 데이터에 관하여 압축을 시행하면 전송 대역폭을 절약할 수 있다.
필터링된 비트 스트림은 ITU(International Telecommunication Union) 표준화 형식으로 압축되어 프레임화 된다(S130). 다음에, 압축된 음성 프레임을 IP 패킷으로 변환한다(S140). 보다 상세하게는, 압축된 음성 프레임에 RTP 관련 헤더를 첨가하여 RTP 패킷을 생성하고, RTP 패킷에 UDP(User Datagram Protocol) 관련 헤더가 송신과 수신 소켓 번호와 같이 첨가되어 UDP 패킷을 생성하고, UDP 패킷에 송신측 및 수신측 게이트웨이의 IP 주소를 포함한 IP 헤더를 첨가하여 IP 패킷을 생성한다. 생성된 IP 패킷이 인터넷 등으로 전송되며, 수신측의 VoIP 시스템이 IP 패킷, UDP 패킷, RTP 패킷을 추출하고 압축된 음성 프레임을 아날로그 음성 신호로 디코딩한 후, 원래의 음성 신호로 재생한다(S150).
그러나, 이와 같은 종래의 음성 트래픽 처리과정에 의해 생성된 IP 패킷은 송신측의 디바이스 드라이버에 의해 구동되는 NIC(Network Interface Card)와 라우터를 거쳐 인터넷망 등을 통해 수신측으로 전달되며, 인터넷망에서는 RTP를 사용한 UDP로 전송되는데 UDP/IP를 이용한 VoIP 음성 패킷 데이터는 신뢰성 있는 전송을 보장할 수 없으며 패킷의 지연과 패킷의 손실이 발생할 때 음성의 지연 및 왜곡 현상이 발생한다는 문제가 있다. UDP는 TCP와는 달리 네트워크 내의 회선들을 많은 사용자들이 공유하기 때문에 여러 종류의 패킷이 전송 회선 상에 혼재될 가능성이 높다는 것이다. 즉, 특정 사용자의 음성 데이터 패킷은 하나의 개체를 이루어 전송되는 것이 아니라 분할되어 다른 데이터 패킷(예컨대, 다른 사용자의 음성 데이터 패킷, 음성이외의 다른 데이터 패킷 등)과 혼재되어 전송된다. 이로 인해, 수신된 음성 데이터 패킷을 디코딩할 때 음성의 왜곡 현상이 발생할 확률이 높아 수신측에서는 부자연스러운 음성을 듣게 된다. 특정 사용자의 음성 데이터 패킷의 전송 과정에서 패킷과 패킷 사이의 간격이 너무 길면 실시간 처리가 요구되는 디코딩 과정상에서 음성의 끊김 현상이 발생할 수 있기 때문이다.
또한, 음성의 지연 및 왜곡 현상을 방지하기 위해 QoS 제어장치가 사용되는데, QoS 제어장치는 LAN망과의 연동이 10/100Mbps, WAN망과의 연동이 10Mbps로 구성되어 있다. 그러나, WAN망의 링크 속도가 56Kbps, 64Kbps, 128Kbps, 256Kbps, 512Kbps, 768Kbps, 2Mbps 등으로 다양하게 구성되므로 저속망과의 연동시에는 QoS 제어장치의 WAN망에서 패킷 적체 현상으로 전송 지연이 발생한다는 문제가 있다.
따라서, 본 발명은 상기한 바와 같은 종래의 제반 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 음성과 데이터를 구분하여 큐잉하고 우선 순위를 부여하여 음성 패킷을 일정한 간격으로 전송하고 망 속도에 따른 지연 전송을 포함하여 많은 대역폭을 차지하는 데이터를 분할 전송함으로써, 음성 신호의 지연과 왜곡이 없는 고품질의 음성 통화를 구현할 수 있는 VoIP용 QoS 제어장치 및 방법을 제공하는 데 있다.
도 1은 종래의 음성 트래픽 처리과정을 설명하는 흐름도이고,
도 2는 본 발명에 따른 QoS 제어장치의 결합 상태를 보여주는 음성/데이터 통합 네트워크 시스템의 전체 구성도이고,
도 3은 본 발명에 따른 QoS 제어장치의 내부 구성을 보여주는 블록도이고,
도 3a는 본 발명에 따른 하드웨어 패킷 제어기의 결합 상태도이고,
도 4는 레퍼런스(Reference) ID의 정의를 나타내는 도면이고,
도 5는 버퍼 디스크립터(Buffer Descriptor)의 구조를 나타내는 도면이고,
도 6은 본 발명에 따른 QoS 제어장치에 수신된 패킷의 처리과정을 설명하는 흐름도이고,
도 7은 본 발명에 따른 패킷 분류과정을 설명하는 흐름도이고,
도 8은 본 발명에 따른 프로토콜 분석과정을 나타내는 구성도이고,
도 9는 본 발명에 따른 패킷 분할과정을 설명하는 흐름도이고,
도 10은 본 발명에 따른 RTP 메시지 포맷의 구성도이고,
도 11은 본 발명에 따른 큐잉과정을 설명하는 흐름도이고,
도 12는 본 발명에 따른 큐잉 전달 파라미터의 구조를 나타내는 도면이고,
도 13은 본 발명에 따른 버퍼 프리과정을 설명하는 흐름도이고,
도 14는 본 발명에 따른 WAN 트래픽 쉐이핑과정을 설명하는 흐름도이고,
도 15는 본 발명에 따른 IP 프래그먼테이션의 전송과정을 설명하는 흐름도이다.
♣ 도면의 주요 부분에 대한 부호의 설명 ♣
220, 270: QoS 제어장치 305: 메인 프로세서
322: 하드웨어 패킷 제어기 325: WAN
330: 이더넷 2 335: 이더넷 1
240: 콘솔
이와 같은 목적을 달성하기 위한 본 발명은 음성/데이터 통합 네트워크 상에서 음성 트래픽과 데이터 트래픽을 구분하여 VoIP 음성 통화 품질을 보증하는 VoIP용 QoS 제어장치에 있어서, SCC2 인터페이스(Source Code Control interface), SCC1 인터페이스, FEC 인터페이스(Forward Error Correction interface) 및 SMC 인터페이스(Smart Memory Card interface)를 포함하고, 수신된 패킷의 분류, 프로토콜 분석, 패킷 분할, 큐잉, 버퍼 프리, WAN 트래픽 쉐이핑, 패킷 전송의 동작을 수행하도록 각 구성부를 제어하는 메인 프로세서와; 메인 프로세서에 연결되어 있으며, 리셋 후 가장 먼저 실행되는 기본 프로그램을 저장하여 시스템을 초기화하고 외부로부터 다운로드된 프로그램을 저장하도록 지원하는 부트 플래시 메모리와; 메인 프로세서에 연결되어 있으며, QoS 제어 기능을 수행하기 위한 구동 프로그램을 저장하고 부트 플래시 메모리로부터 지원된 업데이트된 데이터를 저장하는 코드 플래시 메모리와; 메인 프로세서에 연결되어 있으며, 메인 프로세서와 동기 방식으로 동작하여 저장된 데이터에 고속으로 접근할 수 있도록 지원하는 SDRAM과; 메인 프로세서에 연결되어 있으며, 메인 프로세서가 정상적인 QoS 기능을 수행할 수 없는 경우, 네트워크망의 인터페이스를 루프백하여 바이패스 모드로 운용하기 위한 하드웨어 패킷 제어기와; 동작에 필요한 전원을 공급하는 파워 서플라이와; 메인 프로세서에 연결되어 있으며, 데이터 비트를 전송하기 위해 주기적으로 일정한 클럭 신호를 발생시키는 시스템 클럭과; 메인 프로세서에 연결되어 있으며, 시스템을 초기화시키는 리셋신호를 발생시키는 리셋 로직과; 메인 프로세서에 연결되어 있으며, 디버깅 기능을 수행하기 위한 BDM 포트(Background Debug Mode Port)와; 메인 프로세서에 연결되어 있으며, 현재 상태를 외부에서 확인할 수 있도록 지원하는 표시수단; 및 메인 프로세서에 연결되어 있으며, 프로그램 가능한 제어 로직으로 이루어진 PLD(Programmable Logic Device)를 포함하고, SCC2 인터페이스는 WAN과 연결되고, SCC1 인터페이스는 이더넷 2와 연결되고, FEC 인터페이스는 이더넷 1과 연결되고, SMC 인터페이스는 콘솔과 연결되도록 구성된 것을 특징으로 한다.
또한, 본 발명은 음성/데이터 통합 네트워크 상에서 음성 트래픽과 데이터 트래픽을 구분하여 VoIP 음성 통화 품질을 보증하는 VoIP용 QoS 제어방법에 있어서, 수신된 패킷의 목적지 주소를 판독하고, 목적지 주소가 QoS 제어장치의 하드웨어 주소, 브로드캐스트 주소 및 라우터 주소인지를 판별하여 목적지 주소에 따라 Ref(Reference) ID와 Ref(Reference) 카운트를 결정하고, 결정된 Ref ID 및 Ref 카운트에 따라 패킷을 분류하는 패킷 분류 단계와; 분류된 패킷을 계층(레이어)에 따라 프로토콜로 분류하는 프로토콜 분석 단계와; 분류된 패킷의 프로토콜에 따라 패킷이 데이터 패킷인지 음성 패킷인지를 판별하고, 데이터 패킷의 길이와 프래그먼테이션 크기를 정의하고, 데이터 패킷의 길이와 프래그먼테이션 크기를 비교하여 프래그먼테이션 수를 결정하고, 결정된 프래그먼테이션 수를 Ref 카운트에 저장하는 패킷 분할 단계와; 패킷의 진행 방향에 따라 특정 큐잉 전달 파라미터를 지정된 경로로 전송하고, 패킷의 종류에 따라 각각의 패킷을 별도의 큐로 전송하는 큐잉 단계와; 패킷의 프래그먼테이션 프레임에 대한 프래그먼테이션 수를 계산하여 프래그먼테이션 프레임의 순위를 식별하고, 식별된 프래그먼테이션 프레임의 순위에 따라 프로그먼테이션 프레임의 길이, 프래그 및 오프셋을 산출하여 패킷의 IP 헤더에 저장하여 전송할 패킷을 생성하는 패킷 생성 단계; 및 생성된 패킷을 지정된 큐로부터 수신하여 패킷의 진행 방향에 따라 해당 큐잉 파라미터를 부가하여 지정된 경로로 전송하는 트래픽 쉐이핑 단계를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 VoIP용 QoS 제어장치 및 방법에 대한 바람직한 실시예를 첨부된 도면에 의거하여 상세하게 설명하면 다음과 같다.
도 2는 본 발명에 따른 QoS 제어장치(220)의 결합 상태를 보여주는 음성/데이터 통합 네트워크 시스템의 전체 구성도로서, 음성/데이터 통합 네트워크 시스템은 크게 송신측과 수신측으로 구분되며, 송신측은 허브(210), QoS 제어장치(220), 라우터(230) 및 WAN 전송장비(240)로 구성되어 있다. 수신측은 송신측과 구성이 동일하고, 각 구성부의 연결 관계가 송신측의 역순으로 결합되어 있다. 송신측과 수신측의 구성이 동일하기 때문에 송신측의 구성에 대해서만 설명하며, 송신측과 수신측은 데이터 전송 주체에 따라 전환될 수 있기 때문에 각각의 구성부는 송신측 처리기능과 수신측 처리기능을 모두 포함하여야 한다.
본 QoS 제어장치(220)는 각각의 네트워크 장치(예컨대, VoIP 게이트웨이, 다수개의 PC 등)로부터 전송되는 데이터를 통합 관리하는 허브(210)와 동일한 전송 프로토콜을 사용하는 분리된 네트워크 상호간을 연결하는 라우터(230) 사이에 위치한다. QoS 제어장치(220)가 라우터(230) 앞단에 위치하는 이유는 QoS 제어장치(220)에서 음성과 데이터를 구분하고 WAN 대역폭에 따라 패킷을 분할 전송함으로써, 음성 전송시 통화 품질을 보장하기 위함이다. 즉, QoS 제어장치(220)는 라우터(230)와 라우터(260)간의 WAN망과 QoS 제어장치(220) 하단부의 LAN망간의 음성 및 데이터 패킷을 지연 및 왜곡 없이 정확하게 전송하는 역할을 수행한다.
도 3은 본 발명에 따른 QoS 제어장치(220)의 내부 구성을 보여주는 블록도로서, QoS 제어장치(220)는 각종 인터페이스[예컨대, SCC2(Source Code Control 2), SCC1, FEC(Forward Error Correction), SMC(Smart Memory Card)]를 포함하고, 본 QoS 제어장치(220)를 구성하는 각 구성부의 원활한 동작을 제어하는 메인 프로세서(305), 리셋 후 가장 먼저 실행되는 기본 프로그램을 저장하여 시스템을 초기화하고 외부로부터 다운로드된 프로그램을 저장하도록 지원하는 부트 플래시 메모리(310), 본 QoS 제어장치(220)를 구동시키기 위한 구동 프로그램을 저장하고 부트 플래시 메모리(310)로부터 지원된 업데이트된 데이터를 저장하는 코드 플래시 메모리(315), 메인 프로세서(305)와 동기 방식으로 동작하여 저장된 데이터에 고속으로 접근할 수 있도록 지원하는 SDRAM(Synchronous Dynamic RAM)(320), WAN망과 LAN망의 인터페이스를 루프백하여 바이패스 모드로 운용하기 위한 하드웨어 패킷 제어기(322), 동작에 필요한 전원을 공급하는 파워 서플라이(Power Supply)(345), 데이터 비트를 전송하기 위해 주기적으로 일정한 클럭 신호를 발생시키는 시스템 클럭(System Clock)(350), 시스템을 초기화시키는 리셋신호를 발생시키는 리셋 로직(355), 잘못된 코딩부분을 검색하여 디버깅하기 위한 BDM 포트(Background Debug Mode Port)(360), 현재 상태를 외부로 표시하기 위한 LED(365) 및 프로그램 가능한 제어 로직으로 이루어진 PLD(Programmable Logic Device)를 포함하여 구성되어 있다. 또한, 메인 프로세서(305)의 SCC2 인터페이스는 WAN과 연결되고, SCC1 인터페이스는 이더넷 2와 연결되고, FEC 인터페이스는 이더넷 1과 연결되고, SMC 인터페이스는 콘솔과 연결되도록 구성되어 있다.
도 3a는 본 발명에 따른 하드웨어 패킷 제어기(322)의 결합 상태도로서, 하드웨어 패킷 제어기(322)는 네트워크망(예컨대, LAN, WAN)과 메인 프로세서(305)의 사이에 위치하여 QoS 파워 페일러(Power Failure)를 검사하여 바이패스 모드로 운용하는 역할을 수행한다. 즉, 파워-업(Power-Up), OS 레벨 디버깅, 시스템 알람 상태, 프로그램 업그레이드 시에는 정상적인 QoS 기능을 수행할 수 없으므로 LAN과 WAN 인터페이스를 루프백하여 바이패스 기능을 수행한다. 따라서, 평상시에는 LAN 또는 WAN으로부터 전송되는 패킷을 메인 프로세서(305)로 인가하고 반대로 메인 프로세서(305)로부터 전송되는 패킷을 해당 네트워크망으로 인가하며, 전술한 특별 이벤트가 발생하면 메인 프로세서(305)를 대신하여 백업 기능을 수행한다.
도 4는 레퍼런스(Reference) ID의 정의를 나타내는 도면으로서, QoS 제어장치(220)의 WAN 포트, LAN 포트 및 OS 커널에서 전송 가능한 데이터 흐름 방향에 대하여 정의한 것이다. 각 방향(예컨대, 9가지 방향)에 대하여 Reference ID를 정의하는 것은 패킷의 분류, 큐잉, 트래픽 쉐이핑(Traffic Shaping), 분할(Fragmentation), 버퍼 프리(Buffer Free) 시에 유용하게 사용되는 정의이기 때문이다.
도 5는 버퍼 디스크립터(Buffer Descriptor)(이하에서는, 'BD'라 약칭한다)의 구조를 나타내는 도면으로서, 패킷의 송수신시에 사용되는 송신측 BD와 수신측 BD에 대한 구조를 나타낸다. 송신측 및 수신측 BD는 6바이트 수신자 하드웨어 주소를 지정하는 목적지 주소(Destination Address) 영역, 6바이트 송신자 하드웨어 주소를 지정하는 소스 주소(Source Address) 영역, 전송된 패킷[예컨대, IP(Internet Protocol), ARP(Address Resolution Protocol), RARP(Reverse ARP), IPX(Internetwork Packet Exchange) 패킷 등]을 구분하기 위한 타입(Type) 영역, 최대전송단위(MTU: Maximum Transmission Unit) 크기만큼의 이더넷 프레임을 제외한 IP 헤더와 페이로드 데이터(Payload Data)의 저장 장소인 메시지 포인터(송신측 BD)와 버퍼(수신측 BD) 영역, 수신한 패킷을 메모리에 복사하지 않고 전송시에 이용할 수 있도록 디스크립터를 일치시키기 위한 임시 영역인 Reserved 영역, 데이터 길이를 나타내는 Size 영역, 패킷 내의 에러를 검출하기 위한 CRC 영역, 수신 버퍼를 프리하기 위해 사용되는 변수를 나타내는 레퍼런스 카운트(Reference Count), 도 4에 정의된 9가지 방향에 대한 구분자를 나타내는 레퍼런스 아이디(Reference ID) 영역, 분할된 패킷의 수를 나타내는 Fragmentation No 영역, 분할된 패킷을 어셈블하기 위한 플래그와 오프셋을 나타내는 플래그오프셋(FlagOffset) 영역으로 이루어져 있다. 도 5에 도시된 바와 같이, 송신측 BD에는 Message Pointer 영역 및 Reserved 영역이 있는 반면, 수신측 BD에는 Buffer 영역 및 CRC 영역이 있다는 것만 다르고 그 이외의 구조는 동일하다. 여기에서, ARP는 IP 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이고, RARP는 근거리통신망 내에 물리적으로 존재하는 장치가 게이트웨이의 ARP 목록이나 캐시로부터 자신의 IP 주소를 알아내기 위해 확인 요청을 하는데 사용되는 프로토콜이고, IPX는 네트워크를 상호 연결하는 네트워킹 프로토콜이다.
도 6은 본 발명에 따른 QoS 제어장치에 수신된 패킷의 처리과정을 설명하는 흐름도로서, QoS 제어장치에 수신된 패킷의 처리과정은 QoS 제어장치의 하드웨어 주소, 브로드캐스트 주소 및 라우터 주소에 따라 Reference ID(이하에서는, 'Ref ID'라 약칭한다)와 Reference Count(이하에서는, 'Ref count'라 약칭한다)를 결정하는 패킷 분류과정(S610), 분류된 패킷을 레이어에 따라 프로토콜로 분류하는 프로토콜 분석과정(S620), 수신된 패킷이 데이터 패킷인지 음성 패킷인지를 판별하여 음성 패킷은 스킵하고 데이터 패킷만을 분할하여 패킷의 크기를 조절하는 패킷 분할과정(S630) 및 음성 패킷과 데이터 패킷을 구분하여 처리할 수 있도록 음성과 데이터를 별도의 큐로 전송하는 큐잉과정(S640)을 순차적으로 진행하여 수신된 패킷을 처리한다. 각각의 처리과정(S610, S620, S630, S640)은 도면을 참조하여 상세하게 후술한다.
도 7은 본 발명에 따른 패킷 분류과정을 설명하는 흐름도이다.
먼저, QoS 제어장치는 수신된 패킷의 이더넷 프레임 헤더에 위치한 목적지 주소를 판독하여 패킷의 목적지가 어디인가를 판별한다. 이더넷 프레임 헤더에는 목적지 주소, 소스 주소, 길이, 타입 필드에 관한 정보가 포함되어 있다. 목적지 주소가 자신의 QoS 제어장치에 대한 하드웨어 주소인가를 판단(S710)하여 자신의 하드웨어 주소이면 수신된 패킷이 LAN망을 통해 자신의 QoS 제어장치로 전송되는 것이므로 Ref ID를 'LAN to OS'로 정의하고, Ref count를 '1'로 정의한다(S720). Ref count는 Ref ID에 따라 그 값이 정해지며, 목적지가 한 곳일 때는 '1'로, 목적지가 두 곳일 때는 '2'로 세팅된다. 그러나, 분할될 때의 Ref count는 분할수가 되어야 한다.
다음에, QoS 제어장치는 상기 단계(S710)에서 자신의 하드웨어 주소가 아닌 경우, 목적지 주소가 브로드캐스트 주소인가를 판단한다(S730). 판단 결과, 브로드캐스트 주소이면, 수신된 패킷이 LAN망을 통해 자신의 QoS 제어장치와 WAN망으로 전송되는 것이므로 Ref ID를 'LAN to WAN, OS'로 정의하고, Ref count를 '2'로 정의한다(S740). 브로드캐스트 주소는 하나의 송신측에서 네트워크 상의 모든 수신측에 데이터를 전송하고자할 때 사용된다.
다음에, QoS 제어장치는 상기 단계(S730)에서 브로드캐스트 주소가 아닌 경우, 목적지 주소가 라우터 하드웨어 주소인가를 판단한다(S750). 판단 결과, 라우터 하드웨어 주소이면, 수신된 패킷이 LAN망을 통해 WAN망으로 전송되는 것이므로 Ref ID를 'LAN to WAN'로 정의하고, Ref count를 '1'로 정의한다(S760). 상기 단계(S750)에서 라우터 하드웨어 주소가 아니면, Ref count를 '1'로 정의하고 버퍼를 프리 시킨다(S770).
도 8은 본 발명에 따른 프로토콜 분석과정을 나타내는 구성도이다.
레이어 1에서는 이더넷 프레임의 타입 필드로 ARP, RARP, IP, IPX 등으로 구분하고, 레이어 2에서는 IP 헤더의 8비트 프로토콜 필드로 TCP, UDP, ICMP(Internet Control Message Protoc) 등으로 구분하며, 레이어 3에서는 TCP, UDP 헤더의 포트 번호로 HTTP(Hypertext Transfer Protocol), SMTP(Simple Mail Transfer Protocol), FTP(File Transfer Protocol), TELNET, SNMP(Simple Network Management Protocol), RTP(Real-time Transport Protocol)와 RTCP(Real-time Transport control protocol) 등으로 구분한다. 여기에서, RTP와 RTCP는 디폴트 포트(Default Port)를 사용하지 않으므로 본 발명에서는 포트 번호로 구분 가능한 프로토콜을 먼저 선별한 다음 RTCP는 버전 필드(Version field)와 RTCP 패킷 타입을 확인함으로써 구분한다. 또한, RTP는 버전 필드, 페이로드 타입 필드로 구분한다.
도 9는 본 발명에 따른 패킷 분할과정을 설명하는 흐름도이다.
먼저, IP 프래그먼테이션(Fragmentation)의 결정은 프래그먼테이션 옵션을 검사하여 프래그먼테이션을 하지 말라는 플래그(즉, No Fragmentation Flag)에 대하여 프래그먼테이션을 할 것인가를 검사한다(S905). 본 발명에서는 고품질의 QoS를 제공하기 위해 노 프래그먼테이션 플래그의 경우에도 프래그먼테이션을 수행한다. 다음에, 전송된 패킷이 데이터 패킷인가를 판단(S910)하여 음성 패킷은 스킵하고(S915), 데이터 패킷만 프래그먼테이션 되도록 설정한다. 전송된 패킷이 데이터 패킷인가를 판단하기 위해서는 전송된 패킷이 RTP 패킷인가를 조사하여 RTP 패킷이면 음성 패킷이고 RTP 패킷이 아니면 데이터 패킷으로 간주한다.
프래그먼테이션 수를 결정하기 위해 전송된 데이터 패킷은 이더넷 프레임 길이에서 이더넷 헤더 크기를 뺀 값을 'LEN'으로 정의하고(S920), 데이터 프래그먼트 크기에서 IP 헤더 크기를 뺀 값을 'FSIZE'로 정의한다(S925). 버퍼에 데이터를 전달할 때는 이더넷 및 IP 헤더 크기가 불필요함으로 이 부분을 뺀 값으로 정의하는 것이다. LEN값이 FSIZE값보다 큰 값인가를 판단(S930)하여 크지 않으면 스킵하고(S935), LEN값이 FSIZE값보다 크면 프래그먼테이션 크기를 일정 주기의 블록 크기로 결정하기 위해 LEN값을 FSIZE값으로 나누어 나머지가 있는가를 판단한다(S940). 나머지가 있으면 여분의 길이가 있는 것이므로 나눈 몫에 '1'을 증가하여 수신 BD의 프래그먼테이션 수로 결정하고(S945), 나머지가 없으면 여분의 길이가 없는 것이므로 나눈 몫에 해당하는 값을 수신 BD의 프래그먼테이션의 수로 결정한다(S950). 결정된 수신 BD의 프래그먼테이션 수를 수신 BD의 Ref count에 저장시킨다(S955).
현재 수신된 패킷의 길이는 WAN 링크 속도, VoIP 회선 수에 따라 결정된 프래그먼테이션 크기와 비교하여 프래그먼테이션 수를 결정하고, 해당 버퍼가 완전히 처리되고 프리될 수 있도록 수신 버퍼의 Ref count에 프래그먼테이션 수를 저장한다. 프래그먼테이션 크기를 결정하는 방법은 WAN 링크 속도와 음성 포트 수에 따라 가변적이다. 음성 패킷의 크기는 RTP 메시지 포맷(도 10 참조)과 같이 페이로드 크기에 따라 약간 상이하지만 100 Byte 내외로 크기가 작은 반면, 상대적으로 크기가 큰 데이터 트래픽은 MTU 크기까지 이용하므로 저속의 WAN 구간에서는 데이터와 음성 데이터가 혼재할 경우 음성 패킷의 전송 지연에 따른 음질의 저하가 발생하게 된다. 따라서, IP 패킷에 대한 프래그먼테이션을 통하여 음성 패킷의 지연을 막을 수 있다. 본 발명에서의 프래그먼테이션 크기는 일정 주기의 블록 크기를 기준으로 8의 배수가 되도록 결정한다. 여기에서, 일정 주기의 블록 크기는 각 링크 속도에서 일정 주기 내에 전송 가능한 바이트 수를 의미하고, 8의 배수로 결정하는 이유는 프래그먼테이션이 되었을 때 IP 헤더의 오프셋 필드에 8로 나눈 몫을 입력하여야 하기 때문이다.
예를 들어, 음성 패킷의 크기가 66 Byte(예컨대, IP 헤더가 20 Byte, UDP 헤더가 8 Byte, RTP 헤더가 12 Byte, 페이로드 데이터가 20 Byte, 하드웨어 주소가 6 Byte)인 경우, 음성 전송 시간은 각 WAN 구간에서 전송되는 음성 패킷 처리 시간으로 128 Kbps에서 4.12ms가 소요된다. 만일, 데이터는 제외하고 음성 패킷만을 처리하는 경우의 최대 포트 수는 7.28이고, 이는 128 Kbps에서 최대로 수용 가능한 VoIP 회선 수를 나타낸다. 데이터와 음성을 1:1의 비율로 대역폭을 사용한다고 가정했을 때 수용할 수 있는 최대 VoIP 회선 수는 128 Kbps 대역폭에서 3.64가 된다.
도 10은 본 발명에 따른 RTP 메시지 포맷의 구성도로서, RTP 메시지 포맷은 32 비트로 이루어져 있다. 여기에서, 'V'는 Version 번호, 'P'는 Padding 플래그, 'E'는 Extension, 'CC'는 Contributor Count, 'M'은 Marker, 'PT'는 Payload Type, 'SSRC'는 Synchronization Source Identifier, 'CSRC'는 Contributing Source Identifier를 의미하고, CSRC와 데이터의 길이는 가변적이다. 그 외의 RTP 메시지 포맷을 구성하는 각각의 필드 및 각 필드의 비트 수는 도 10에 도시된 바와 같다.
도 11은 본 발명에 따른 큐잉과정을 설명하는 흐름도이다.
먼저, Ref ID를 이용하여 패킷의 진행 방향을 판독하여 그 진행 방향이 OS인가를 판단(S1110)하여 방향이 OS이면 수신 버퍼 포인터를 OS 커널로 전송하고(S1120), 진행 방향이 OS가 아니면 그 진행 방향이 WAN인가를 다시 판단한다(S1130). 판단 결과, 진행 방향이 WAN이 아니면 스킵하고(S1140), 진행 방향이 WAN이면 큐로 진행 방향, 수신 버퍼 포인터, 패킷 길이를 전송한다(S1150). 다음에, 큐로 전송된 패킷이 음성 패킷인가를 판단(S1160)하여 음성 패킷이면 음성 큐로 전송하고(S1170), 음성 패킷이 아니면 전송된 패킷은 데이터 패킷이므로 해당 데이터 패킷이 프래그먼테이션 되었는가를 판단한다(S1180). 판단 결과, 프래그먼테이션이 되었으면 프래그먼테이션된 수만큼 데이터 큐로 전송하고(S1190), 프래그먼테이션이 되지 않았으면 데이터 큐로 전송한다(S1200). 즉, 본 발명의 큐잉 방법은 음성과 데이터 패킷을 구분하여 처리할 수 있도록 음성과 데이터를 별도의 큐로 관리한다. 패킷의 진행 방향에 따라 OS와 WAN으로 구분이 가능하므로 OS로의 패킷은 수신 버퍼 포인터를 OS 커널로 전송하고, WAN으로의 패킷은 데이터와 음성을 구분하여 음성의 경우 음성 큐에 삽입(Insertion)하고, 데이터의 경우 프래그먼테이션 수를 확인하여 데이터 큐에 삽입한다.
도 12는 본 발명에 따른 큐잉 전달 파라미터의 구조를 나타내는 도면이다. 'Direction'은 전송 가능한 데이터 방향이고, 'HWA'는 목적지 하드웨어 주소이고, 'Receive Buffer Ptr'는 수신한 버퍼 포인터이고, 'Packet Length'는 실제 수신한 패킷의 길이이며, 'Type'은 ARP, RARP, IP, IPX 등을 구분하는 필드이다.
도 13은 본 발명에 따른 버퍼 프리과정을 설명하는 흐름도로서, 일반적인 이더넷 디바이스에서 패킷을 수신하면 해당 버퍼를 프리하는 것이 일반적이지만, 본 발명에서는 제로 카피(Zero Copy) 방법을 사용함으로써 수신한 패킷을 그대로 유지하여 전송 시에도 이용할 수 있도록 한다. 즉, 패킷의 복사를 방지하여 신속한 전송 처리를 할 수 있다.
먼저, QoS 제어장치는 수신된 패킷을 외부로 전송한 다음에 버퍼를 프리하기 위해 인터럽트를 통해 본 버퍼 프리과정으로 진입한다(S1310). 따라서, 수신된 패킷의 버퍼 프리 시점은 패킷 전송 후 인터럽트 발생 시이다. 버퍼 프리과정으로 진행하면, 버퍼 사용 유무를 저장된 Ref count로 비교한다(S1320). 비교 결과, Ref count가 '0'이 아니면 스킵하고(S1330), Ref count가 '0'이면 버퍼 포인터를 버퍼 풀에 재삽입하여 버퍼를 프리 시킨다(S1340). Ref count는 버퍼 프리과정에 진입할 때마다 '1'씩 감소하고, 그 값이 '0'일 때 해당 버퍼는 프리 된다.
도 14는 본 발명에 따른 WAN 트래픽 쉐이핑과정을 설명하는 흐름도로서, 트래픽 쉐이핑 모듈은 수신한 패킷을 큐잉한 후, 큐에 저장된 버퍼 포인터를 이용하여 패킷을 전송할 수 있도록 동작하고, 음성 큐와 데이터 큐를 동시에 검사할 수 없으므로 하나의 제어 큐를 두어 이벤트를 확인한다.
먼저, 트래픽 쉐이핑 모듈은 데이터가 제어 큐로부터 수신되었는가를 판단(S1410)하여 제어 큐로부터 수신되지 않으면 대기하고, 제어 큐로부터 수신되면 해당 데이터가 음성 큐로부터 수신되었는가를 판단한다(S1420). 데이터가 음성 큐로부터 수신되지 않았다면 데이터 큐로부터 수신되었는가를 판단(S1430)하여 데이터 큐로부터 수신되지 않았다면 상기 단계(S1410)로 복귀하여 제어 큐로부터 데이터가 수신될 때까지 대기한다. 상기 단계(S1420)에서 데이터가 음성 큐로부터 수신되거나 상기 단계(S1430)에서 데이터가 데이터 큐로부터 수신되면 타이머 세마포어(Timer Semaphore)로부터 이벤트(종료신호)를 수신하였는가를 판단(S1440)하여 세마포어로부터 수신하지 않았으면 대기하고, 세마포어로부터 수신하였으면 패킷의 진행 방향이 LAN으로부터 왔는가를 판단한다(S1450). 패킷이 LAN으로부터 전달되었으면 큐잉 전달 파라미터에 수신 버퍼 포인터와 패킷 길이의 인자를 포함하여 WAN으로 전송하고, 상기 단계(S1450)에서 패킷의 진행 방향이 LAN으로부터 오지 않았거나 상기 단계(S1460) 이후에 패킷의 진행 방향이 OS로부터 왔는가를 판단한다(S1470). 판단 결과, OS로부터 전달되지 않았으면 스킵하고(S1480), OS로부터 전달되었으면 큐잉 전달 파라미터에 Ref ID, 하드웨어 주소, 보내고자 하는 버퍼의 시작 포인터, 패킷 크기 및 타입의 인자를 포함하여 WAN으로 전송(S1490)한 후, 소정의 임의 시간동안 타이머를 구동한다(S1500).
전술한 과정과 같이, 큐로 데이터가 수신되면 음성과 데이터 큐를 검사하는데, 이 때는 한 번의 큐 검사로 패킷의 지연 처리를 미연에 방지할 수 있으며, 음성 큐를 데이터 큐보다 먼저 검사하여 음성 큐를 데이터 큐보다 우선 순위를 부여한다. 큐에 데이터가 존재하면 타이머 인터럽트와 세마포어를 사용하여 세마포어에 대기시키고, 타이머가 종료된 뒤에 본 처리과정을 수행할 수 있도록 구현한다. 이는 패킷의 진행 방향에 따라 물리적으로 전송할 수 있는 모듈을 구분하여 사용하고, 데이터를 전송한 뒤에 타이머를 구동시켜 저속 회선에서 패킷간 지연이 유지될 수 있도록 하기 위함이다. 즉, QoS 제어장치가 고속으로 데이터를 전송한 경우에도 WAN망의 링크 속도가 저속이면 라우터에 데이터가 적체되고 음성에 대한 품질을 보증할 수 없기 때문에 전송하는 부분에서 WAN망의 링크 속도에 부합되도록 데이터를 일정 간격으로 전송하기 위함이다. 본 처리과정을 수행할 때는 세마포어 카운트를 '1' 증가시키고, 소정의 시간동안 타이머가 구동되면 세마포어 카운트를 '1' 감소시켜 타이머 세마포어가 소정치(예컨대, 'O')가 될 경우에만 본 처리과정을 수행할 수 있도록 구현한다. 타이머는 저속회선에서 보다 세밀한 간격을 유지시키기 위해 10ms RTC(Real Time Clock)를 사용하지 않고 PIT(Programmable Interval Timer)를 사용하여 별도로 1ms 주기의 타이머를 구동시키고, 타이머 모듈에서는 전송되어 온 시간동안 구동한 후, 세마포에 대기하고 있는 패킷을 해제하는 역할을 수행한다.
도 15는 본 발명에 따른 IP 프래그먼테이션의 전송과정을 설명하는 흐름도이다.
먼저, 해당 패킷이 프래그먼테이션 프레임인가를 판단(S1510)하여 프래그먼테이션 프레임이 아니면 스킵하고(S1520), 프래그먼테이션 프레임이면 해당 데이터 패킷은 이더넷 프레임 길이에서 이더넷 헤더 크기를 뺀 값을 'LEN'으로 정의하고, 데이터 프래그먼트 크기에서 IP 헤더 크기를 뺀 값을 'FSIZE'로 정의한다(S1540). 다음에, 프래그먼테이션 크기를 일정 주기의 블록 크기로 결정하기 위해 LEN값을 FSIZE값으로 나누어 나머지가 있는가를 판단한다(S1540). 나머지가 있으면 여분의 길이가 있는 것이므로 나눈 몫에 '1'을 증가하고(S1560), 나머지가 없으면 여분의 길이가 없는 것이므로 나눈 몫에 해당하는 값을 프래그먼테이션의 수로 결정한다(S1550). 도 9에서 패킷 길이와 프래그먼트 크기로 산출된 프래그먼테이션 수를 전송구간에서 다시 계산하는 이유는 현재의 프래그먼테이션 프레임이 몇 번째 프레임인가를 식별하기 위함이다.
다음에, 현재의 프레임이 마지막 프래그먼테이션된 프레임인가를 판단(S1570)하여 마지막 프레임이면 저장된 버퍼 포인터의 f오프셋으로부터 플래그와 오프셋값을 구하고(S1580), 첫 번째 프레임이면(S1590) IP 헤더의 플래그, 오프셋 필드값을 읽어 버퍼 포인터의 f오프셋에 저장한다(S1600). 상기 단계(S1590)에서 현재의 프레임이 첫 번째 프레임이 아니면(즉, 중간 프레임이면), 해당 프레임이 몇 번째 프래그먼테이션된 프레임인지 계산하여 오프셋 필드에 저장한다(S1610). 상기 단계(S1600) 및 상기 단계(S1610) 다음에, 해당 프레임의 패킷 길이와 플래그를 계산하고, 상기 단계(S1580) 및 상기 단계(S1620) 다음에, 계산 또는 저장된 패킷 길이, 플래그, 오프셋을 IP 헤더에 저장한다(S1630). 그 후, 패킷 내의 에러를 검출하기 위한 체크 섬 필드를 클리어하고, 16비트 1의 보수값(1's Complement값)을 구하여 체크 섬 필드에 저장(S1640)한 후, 프래그먼테이션 수를 '1' 감소시킨다(S1650).
이상의 설명은 하나의 실시예를 설명한 것에 불과하고, 본 발명은 상술한 실시예에 한정되지 않으며 첨부한 특허청구범위 내에서 다양하게 변경 가능한 것이다. 예를 들어 본 발명의 실시예에 구체적으로 나타난 각 구성 요소의 형상 및 구조는 변형하여 실시할 수 있는 것이다.
이상에서 설명한 바와 같이 본 발명에 따른 VoIP용 QoS 제어장치 및 방법에 의하면, 음성/데이터 통합 네트워크 상에서 음성 트래픽과 데이터 트래픽을 구분하여 QoS를 제어함으로써, 음성의 통화 품질을 극대화시킬 수 있는 효과가 있다.
또한, 음성과 데이터를 구분하여 큐잉하고, 음성 패킷을 일정한 간격으로 전송할 수 있도록 우선 순위를 부여하고, 망 속도에 따른 지연 전송을 포함하여 많은 대역폭을 차지하는 데이터를 분할 전송함으로써, 음성 신호의 지연과 왜곡을 현저하게 감소시킬 수 있는 효과가 있다.
또한, 별도의 하드웨어 장치를 구비하지 않고 패킷 분석과 전달과정에서 메모리 복사를 방지함으로써, 패킷의 효율적인 전달이 가능한 QoS 제어장치를 구현할 수 있는 효과가 있다.

Claims (9)

  1. 삭제
  2. 삭제
  3. 음성/데이터 통합 네트워크 상에서 음성 트래픽과 데이터 트래픽을 구분하여 VoIP 음성 통화 품질을 보증하는 VoIP용 QoS 제어방법에 있어서,
    수신된 패킷의 목적지 주소를 판독하고, 상기 목적지 주소가 QoS 제어장치의 하드웨어 주소, 브로드캐스트 주소 및 라우터 주소인지를 판별하여 상기 목적지 주소에 따라 Ref(Reference) ID와 Ref 카운트를 결정하고, 결정된 상기 Ref ID 및 Ref 카운트에 따라 상기 패킷을 분류하는 패킷 분류 단계;
    분류된 상기 패킷을 계층에 따라 프로토콜로 분류하는 프로토콜 분석 단계;
    분류된 상기 패킷의 프로토콜에 따라 상기 패킷이 데이터 패킷인지 음성 패킷인지를 판별하고, 상기 데이터 패킷의 길이와 프래그먼테이션 크기를 정의하고, 상기 데이터 패킷의 길이와 프래그먼테이션 크기를 비교하여 프래그먼테이션 수를 결정하고, 결정된 상기 프래그먼테이션 수를 상기 Ref 카운트에 저장하는 패킷 분할 단계;
    상기 패킷의 진행 방향에 따라 특정 큐잉 전달 파라미터를 지정된 경로로 전송하고, 상기 패킷의 종류에 따라 각각의 패킷을 별도의 큐로 전송하는 큐잉 단계;
    상기 패킷의 프래그먼테이션 프레임에 대한 프래그먼테이션 수를 계산하여 상기 프래그먼테이션 프레임의 순위를 식별하고, 식별된 상기 프래그먼테이션 프레임의 순위에 따라 상기 프래그먼테이션 프레임의 길이, 플래그 및 오프셋을 산출하여 상기 패킷의 IP 헤더에 저장하여 전송할 패킷을 생성하는 패킷 생성 단계;
    상기 생성된 패킷을 지정된 큐로부터 수신하여 상기 패킷의 진행 방향에 따라 해당 큐잉 전달 파라미터를 부가하여 지정된 경로로 전송하는 트래픽 쉐이핑 단계; 및
    상기 패킷을 전송한 후 버퍼를 프리하기 위한 인터럽트가 발생하면, 버퍼 사용 유무를 상기 Ref 카운트로 비교하여 상기 Ref 카운트가 버퍼 프리 지정값이 아니면 스킵하고, 상기 Ref 카운트가 버퍼 프리 지정값이면 버퍼 포인터를 버퍼풀에 재삽입하여 상기 버퍼를 프리시키는 버퍼 프리 단계를 포함하는 것을 특징으로 하는 VoIP용 QoS 제어방법.
  4. 삭제
  5. 제3항에 있어서, 상기 패킷 분류 단계는
    수신된 패킷의 이더넷 프레임 헤더에 위치한 목적지 주소를 판독하는 단계;
    상기 목적지 주소가 상기 QoS 제어장치의 하드웨어 주소이면, Ref ID를 'LAN to OS'로 정의하고, Ref 카운트를 '1'로 정의하는 단계;
    상기 목적지 주소가 브로드캐스트 주소이면, Ref ID를 'LAN to WAN, OS'로 정의하고, Ref 카운트를 '2'로 정의하는 단계;
    상기 목적지 주소가 라우터 하드웨어 주소이면, Ref ID를 'LAN to WAN'로 정의하고, Ref 카운트를 '1'로 정의하는 단계; 및
    목적지 주소가 상기 QoS 제어장치의 하드웨어 주소, 상기 브로드캐스트 주소 및 상기 라우터 하드웨어 주소가 아니면, Ref 카운트를 '1'로 정의하고 버퍼를 프리 시키는 단계를 포함하는 것을 특징으로 하는 VoIP용 QoS 제어방법.
  6. 삭제
  7. 제3항에 있어서, 상기 큐잉 단계는
    상기 패킷의 진행 방향이 OS이면, 수신 버퍼 포인터를 OS 커널로 전송하는 단계;
    상기 패킷의 진행 방향이 WAN이면, 큐로 진행 방향, 수신 버퍼 포인터, 패킷 길이를 전송하는 단계; 및
    상기 패킷이 음성 패킷이면 음성 큐로 전송하고, 상기 패킷이 데이터 패킷이면 데이터 큐로 전송하는 단계를 포함하는 것을 특징으로 하는 VoIP용 QoS 제어방법.
  8. 제3항에 있어서, 상기 패킷 생성 단계는
    현재의 프래그먼테이션 프레임에 대한 프래그먼테이션 수를 계산하는 단계;
    상기 프래그먼테이션 프레임이 마지막 프래그먼테이션 프레임이면, 저장된 버퍼 포인터로부터 플래그와 오프셋값을 산출하는 단계;
    상기 프래그먼테이션 프레임이 첫 번째 프래그먼테이션 프레임이면, IP 헤더의 플래그, 오프셋 필드값을 리드하여 상기 버퍼 포인터에 저장하는 단계;
    상기 프래그먼테이션 프레임이 중간 프래그먼테이션 프레임이면, 상기 중간 프래그먼테이션 프레임의 순위에 따라 오프셋을 산출하는 단계;
    현재 프레임의 길이, 플래그, 오프셋을 상기 IP 헤더에 저장하는 단계;
    패킷 내의 오류를 검출하기 위한 체크 섬 필드를 형성하는 단계; 및
    수신 버퍼의 상기 프래그먼테이션 수를 감소시키는 단계를 포함하는 것을 특징으로 하는 VoIP용 QoS 제어방법.
  9. 제3항에 있어서, 상기 트래픽 쉐이핑 단계는
    전송할 상기 패킷을 특정 제어 큐의 음성 큐 및 데이터 큐에 보관하고, 상기 음성 큐 또는 상기 데이터 큐로부터 패킷이 수신되면, 타이머 인터럽트와 타이머 세마포어를 사용하여 상기 패킷을 상기 타이머 세마포어에 대기시키는 단계;
    소정의 타이머 구동 시간이 경과하면 상기 수신 버퍼를 해제하고, 상기 패킷이 LAN으로부터 전달되었으면 수신 버퍼 포인터와 패킷 길의 인자를 포함하는 큐잉 전달 파라미터를 부가하여 상기 WAN으로 전송하고, 상기 패킷이 OS로부터 전달되었으면 Ref ID, 하드웨어 주소, 보내고자 하는 버퍼의 시작 포인터, 패킷 크기 및 타입의 인자를 포함하는 큐잉 전달 파라미터를 부가하여 상기 WAN으로 전송하는 단계; 및
    타이머를 구동시켜 소정의 타이머 구동 시간을 계수하고, 일정 시간 경과 후 상기 패킷을 전송하여 상기 패킷간 전송을 일정 간격으로 유지하는 단계를 포함하는 것을 특징으로 하는 VoIP용 QoS 제어방법.
KR10-2001-0031305A 2001-06-05 2001-06-05 음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법 KR100427803B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0031305A KR100427803B1 (ko) 2001-06-05 2001-06-05 음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0031305A KR100427803B1 (ko) 2001-06-05 2001-06-05 음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법

Publications (2)

Publication Number Publication Date
KR20010070750A KR20010070750A (ko) 2001-07-27
KR100427803B1 true KR100427803B1 (ko) 2004-04-27

Family

ID=19710395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0031305A KR100427803B1 (ko) 2001-06-05 2001-06-05 음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법

Country Status (1)

Country Link
KR (1) KR100427803B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100728039B1 (ko) * 2006-01-05 2007-06-14 삼성전자주식회사 무선랜에서 히든노드에게 제어 프레임을 전달하는 방법 및장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100454502B1 (ko) * 2002-06-08 2004-10-28 한국전자통신연구원 아이피 라우터에서 VoIP 트래픽에 대한 QoS를제공하는 장치 및 포워딩방법
KR100462891B1 (ko) * 2002-11-26 2004-12-17 삼성전자주식회사 고정 아이피 주소를 이용한 패킷 신호 처리 방법 및 그액세스 포인트
KR100693035B1 (ko) * 2003-06-25 2007-03-12 삼성전자주식회사 패킷 처리 장치 및 그 방법
KR100601043B1 (ko) 2003-11-13 2006-07-14 한국전자통신연구원 패킷을 스케줄링하는 라우터 및 그 방법
KR101058729B1 (ko) * 2004-05-19 2011-08-22 삼성전자주식회사 패킷 망을 이용하여 음성 서비스를 제공하는이동통신시스템에서 음성 패킷 데이터를 효율적으로처리하는 장치 및 방법
CN116956164A (zh) * 2023-09-18 2023-10-27 中国科学院精密测量科学与技术创新研究院 基于wasm技术的全高层大气激光雷达数据处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0998169A (ja) * 1995-09-29 1997-04-08 Nec Corp 音声中継交換システム
KR20000072520A (ko) * 2000-09-07 2000-12-05 오기호 큐오에스 메커니즘을 이용한 음성 데이터 우선 전송 방법
KR20010009794A (ko) * 1999-07-14 2001-02-05 김성식 인공 여울을 이용한 쏘가리 양식법 및 그 장치
KR20010025453A (ko) * 2000-12-28 2001-04-06 이창열 네트워크를 이용하여 무선 음성 신호를 전송하는 무선사설 교환기
WO2001026289A1 (en) * 1999-10-04 2001-04-12 Nokia Corporation Method and apparatus for quality of service (qos) measurement
KR20020069578A (ko) * 2001-02-26 2002-09-05 (주)한내테크놀러지 인터넷 프로토콜을 사용하는 네트워크에서 서비스 품질우선순위를 지원하는 전송 시스템 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0998169A (ja) * 1995-09-29 1997-04-08 Nec Corp 音声中継交換システム
KR20010009794A (ko) * 1999-07-14 2001-02-05 김성식 인공 여울을 이용한 쏘가리 양식법 및 그 장치
WO2001026289A1 (en) * 1999-10-04 2001-04-12 Nokia Corporation Method and apparatus for quality of service (qos) measurement
KR20000072520A (ko) * 2000-09-07 2000-12-05 오기호 큐오에스 메커니즘을 이용한 음성 데이터 우선 전송 방법
KR20010025453A (ko) * 2000-12-28 2001-04-06 이창열 네트워크를 이용하여 무선 음성 신호를 전송하는 무선사설 교환기
KR20020069578A (ko) * 2001-02-26 2002-09-05 (주)한내테크놀러지 인터넷 프로토콜을 사용하는 네트워크에서 서비스 품질우선순위를 지원하는 전송 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100728039B1 (ko) * 2006-01-05 2007-06-14 삼성전자주식회사 무선랜에서 히든노드에게 제어 프레임을 전달하는 방법 및장치

Also Published As

Publication number Publication date
KR20010070750A (ko) 2001-07-27

Similar Documents

Publication Publication Date Title
US8514871B2 (en) Methods, systems, and computer program products for marking data packets based on content thereof
US6633540B1 (en) Real-time traffic shaper with keep-alive property for best-effort traffic
Jha et al. Engineering Internet QoS
US8451723B2 (en) Soft packet dropping during digital audio packet-switched communications
US6650652B1 (en) Optimizing queuing of voice packet flows in a network
US6434606B1 (en) System for real time communication buffer management
US6977942B2 (en) Method and a device for timing the processing of data packets
EP1234428B1 (en) Method and apparatus for packet delay reduction using scheduling and header compression
EP1341345B1 (en) System and method for collecting statistics within a packet network
US7848237B2 (en) System and method for selective packet discard for the transport of multiple transportation streams of streaming media in packet-based networks
US6952407B2 (en) Minimizing latency with content-based adaptive buffering
US20060250962A1 (en) Edge switch
US20030107994A1 (en) Communications network
US20050232309A1 (en) In band signal detection and presentation for IP phone
KR20070075693A (ko) 이동통신 기지국 시스템에서 하향 음성 패킷망 패킷스케줄링 장치 및 방법
JP2011160485A (ja) データ・パケットのストリーミングを行う装置および方法
US20090135834A1 (en) Technique For Identifying RTP Based Traffic In Core Routing Switches
KR102107514B1 (ko) 방송 시스템에서 동적 큐 관리 방법 및 장치
KR100427803B1 (ko) 음성 인터넷 프로토콜용 큐오에스 제어장치 및 방법
EP3692696A1 (fr) Signalisation d'une requête d'adaptation d'une session de communication en voix sur ip
US8416786B2 (en) Data transport container for transferring data in a high speed internet protocol network
US6922396B1 (en) System and method for managing time sensitive data streams across a communication network
Schulzrinne et al. An evaluation of scheduling mechanisms for providing best-effort real-time communications in wide-area networks
EP2348730A1 (en) Method, device and system for video stream transmission
KR20000072520A (ko) 큐오에스 메커니즘을 이용한 음성 데이터 우선 전송 방법

Legal Events

Date Code Title Description
A201 Request for examination
G15R Request for early publication
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee