KR101545704B1 - Apparatus and Method for Shaping Traffic using Virtual Buffering Time - Google Patents

Apparatus and Method for Shaping Traffic using Virtual Buffering Time Download PDF

Info

Publication number
KR101545704B1
KR101545704B1 KR1020140037141A KR20140037141A KR101545704B1 KR 101545704 B1 KR101545704 B1 KR 101545704B1 KR 1020140037141 A KR1020140037141 A KR 1020140037141A KR 20140037141 A KR20140037141 A KR 20140037141A KR 101545704 B1 KR101545704 B1 KR 101545704B1
Authority
KR
South Korea
Prior art keywords
delta
packet
delay time
queue
dqn
Prior art date
Application number
KR1020140037141A
Other languages
Korean (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 KR1020140037141A priority Critical patent/KR101545704B1/en
Application granted granted Critical
Publication of KR101545704B1 publication Critical patent/KR101545704B1/en

Links

Images

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/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/562Attaching a time tag to queues

Landscapes

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

Abstract

The present invention relates to a traffic shaping apparatus using virtual buffering time comprising: a delta-Q for delaying a packet; a virtual buffering time calculation portion for calculating buffering time to buffer the inputted packet in the delta-Q; a delta-Q input control portion for determining a storage location in the delta-Q in accordance with the calculated buffering time, and inputting the packet in the storage location; and a delta-Q output control portion for forwarding the packet from the delta-Q as the calculated buffering time is exceeded.

Description

가상 지연 시간을 이용한 트래픽 쉐이핑 장치 및 방법{Apparatus and Method for Shaping Traffic using Virtual Buffering Time}TECHNICAL FIELD [0001] The present invention relates to a traffic shaping apparatus and method using virtual delay time,

본 발명은 네트워크 트래픽의 제어 기술에 관한 것으로, 특히 보다 정확하게 트래픽을 제어할 수 있는 쉐이핑 방법 및 장치에 관한 것이다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to control technology of network traffic, and more particularly, to a shaping method and apparatus capable of more accurately controlling traffic.

오늘날 네트워크 가입자들이 주로 사용하는 P2P(Peer to Peer), 웹하드, 미디어 스트리밍, VoIP(Voice over IP) 등의 어플리케이션은 다량의 트래픽을 유발시시킨다. 망을 관리하는 네트워크 사업자들은 이러한 트래픽 부하를 발생시키는 서비스들을 제어함으로써 망의 부하를 경감하고 품질 좋은 서비스를 제공하기를 희망한다. 따라서, 네트워크 사업자들은 네트워크 트래픽을 실시간으로 관리하기 위한 제어 기술들을 제공하는 DPI(Deep Packet Inspection) 제품들을 도입하고 있다. Applications such as peer to peer (P2P), web hard, media streaming, and Voice over IP (VoIP), which are mainly used by network subscribers, cause a lot of traffic. Network operators who manage networks want to reduce network load and provide quality services by controlling the services that generate such traffic load. Therefore, network operators are introducing Deep Packet Inspection (DPI) products that provide control technologies to manage network traffic in real time.

트래픽 제어 기법은 대역폭 제어 기법과 TCP 세션을 차단하는 세션 제어 기술로 대표된다. 그런데, 최근에는 트래픽을 차단(drop)하는 기술보다는 버퍼링을 사용하여 패킷을 지연시켜 트래픽의 양을 제어하는 대역폭 제어 기술이 네트워크 사업자들의 주요 관심사항으로 부각되고 있다. Traffic control techniques are represented by bandwidth control techniques and session control techniques that block TCP sessions. Recently, bandwidth control technology that controls the amount of traffic by delaying packets using buffering rather than a technique of dropping traffic is becoming a main concern of network operators.

이러한 대역폭 제어 기술로는 대표적으로 폴리싱 기법과 쉐이핑 기법이 있다. 그런데, 폴리싱 기법은 일정 시간 동안 소정 크기만큼의 트래픽을 전송한 후, 남은 시간 동안 모든 트래픽을 차단하는 방법이다. 이는 일시적으로 연속된 트래픽이 차단됨으로써 다수의 서비스에서 TCP 윈도우 사이즈가 감소되고 플로우 컨트롤 현상이 발생하게 된다. 이러한 플로우 컨트롤 현상에 의한 네트워크 트래픽 속도는 네트워크 관리자가 원하는 수준 이하의 과제어를 발생시키게 되어 서비스 품질 저하의 원인이 된다.Such bandwidth control techniques are typically a polishing technique and a shaping technique. However, the policing method is a method of transmitting a predetermined amount of traffic for a predetermined time, and then blocking all traffic for the remaining time. In this case, the TCP window size is reduced and the flow control phenomenon occurs in a plurality of services by temporarily blocking the continuous traffic. The network traffic speed caused by the flow control phenomenon causes a problem in the quality of service because the network administrator generates a problem word below the desired level.

반면, 한국 공개 특허 1998-081363의 '네트워크 노드에 대한 트래픽 쉐이핑 장치 및 방법'에서 기재된 쉐이핑 기법은 버퍼링을 사용하여 전송시간을 지연시키는 방식으로 트래픽을 제어한다.
On the other hand, the shaping technique described in Korean Patent Laid-Open Publication No. 1998-081363 'Traffic shaping device and method for network node' uses traffic buffering to delay the transmission time.

본 발명은 폴리싱과 같은 제어 기술에서 발생하는 TCP 윈도우 사이즈의 감소와 그로 인해 발생하는 과제어 현상을 방지하면서 트래픽의 대역폭을 제어하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치 및 방법을 제공하고자 한다.
An object of the present invention is to provide a traffic shaping apparatus and method using a virtual delay time for controlling a bandwidth of a traffic while preventing a TCP window size from being reduced due to a control technique such as policing and thereby preventing a problem to occur.

본 발명은 가상 지연 시간을 이용한 트래픽 쉐이핑 장치로, 패킷을 지연시키는 델타큐와, 입력되는 패킷을 상기 델타큐에서 지연시킬 지연 시간을 계산하는 가상 지연 시간 계산부와, 상기 계산된 지연 시간에 따라 상기 델타큐에서의 저장 위치를 결정하고, 상기 패킷을 상기 저장 위치에 입력시키는 델타큐 입력 제어부와, 상기 계산된 지연 시간이 경과됨에 따라, 상기 델타큐로부터 상기 패킷을 포워딩하는 델타큐 출력 제어부를 포함한다. There is provided a traffic shaping apparatus using a virtual delay time, comprising: a delta queue for delaying a packet; a virtual delay time calculator for calculating a delay time for delaying an input packet in the delta queue; A delta queue input control unit for determining a storage location in the delta queue and inputting the packet to the storage location; and a delta queue output control unit for forwarding the packet from the delta queue as the calculated delay time elapses .

본 발명은 패킷을 지연시키는 델타큐를 포함하는 장치에서의 가상 지연 시간을 이용한 트래픽 쉐이핑 방법으로, 입력되는 패킷을 상기 델타큐에서 지연시킬 지연 시간을 계산하는 단계와, 상기 계산된 지연 시간에 따라 상기 델타큐에서의 저장 위치를 결정하고, 상기 패킷을 상기 저장 위치에 입력시키는 단계와, 상기 계산된 지연 시간이 경과됨에 따라, 상기 델타큐로부터 상기 패킷을 포워딩하는 단계를 포함한다.
The present invention provides a traffic shaping method using a virtual delay time in a device including a delta queue for delaying a packet, the method comprising: calculating a delay time for delaying an input packet in the delta queue; Determining a storage location in the delta queue, inputting the packet to the storage location, and forwarding the packet from the delta queue as the calculated delay time elapses.

본 발명은 지연시간을 계산하여 델타큐에 패킷을 계산된 지연 시간 동안 버퍼링함시킴으로써, 윈도우 사이즈의 감소로 발생하는 플로우 컨트롤로 인한 과제어 현상을 방지하면서 트래픽 대역폭을 제어할 수 있다.
The present invention can control the traffic bandwidth while preventing the problem of the assignment due to the flow control caused by the decrease of the window size by buffering the packet in the delta queue for the calculated delay time by calculating the delay time.

도 1은 본 발명의 일 실시 예에 따른 가상 지연 시간을 이용한 트래픽 쉐이핑 장치를 도시하는 개략도이다.
도 2는 본 발명의 일 실시 예에 따른 가상 지연 시간을 이용한 트래픽 쉐이핑 과정을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시 예에 따른 델타 큐의 테이블 구조도이다.
도 4는 본 발명의 일 실시 예에 따른 가상 지연 시간을 이용한 트래픽 쉐이핑 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 일 실시 예에 따른 가상 지연 시간 계산 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 델타큐에 패킷을 입력하는 과정을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시 예에 따라 패킷을 포워딩하는 과정을 설명하기 위한 순서도이다.
1 is a schematic diagram showing a traffic shaping apparatus using a virtual delay time according to an embodiment of the present invention.
2 is a conceptual diagram illustrating a traffic shaping process using a virtual delay time according to an embodiment of the present invention.
3 is a table structure diagram of a delta queue according to an embodiment of the present invention.
4 is a flowchart illustrating a traffic shaping method using a virtual delay time according to an embodiment of the present invention.
5 is a flowchart illustrating a process of calculating a virtual delay time according to an embodiment of the present invention.
6 is a flowchart illustrating a process of inputting a packet to a delta queue according to an embodiment of the present invention.
7 is a flowchart illustrating a process of forwarding a packet according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.

본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
The terms used throughout the specification are defined in consideration of the functions in the embodiments of the present invention and can be sufficiently modified according to the intentions and customs of the user or the operator. It should be based on the contents of.

도 1은 본 발명의 일 실시 예에 따른 가상 지연 시간을 이용한 트래픽 쉐이핑 장치를 도시하는 개략도이다. 1 is a schematic diagram showing a traffic shaping apparatus using a virtual delay time according to an embodiment of the present invention.

도 1을 참조하면, 가상 지연 시간을 이용한 트래픽 쉐이핑 장치(이하 '장치'라 기재함)는 델타큐(10)와, 가상 지연 시간 계산부(110)와, 델타큐 입력 제어부(120) 및 델타큐 출력 제어부(130)를 포함한다. 1, a traffic shaping apparatus using a virtual delay time (hereinafter referred to as a "device") includes a delta queue 10, a virtual delay time calculation unit 110, a delta queue input control unit 120, And a queue output control unit 130.

델타큐(10)는 다수의 노드들을 구성되어, 각 노드들에 저장된 패킷을 소정 지연 시간 동안 버퍼링시킨다. 이러한 델타큐(10)의 테이블 구조에 대해서는 하기의 도 3을 참조하여 살펴보기로 한다. The delta queue 10 comprises a plurality of nodes, and buffers the packets stored in each node for a predetermined delay time. The table structure of the delta queue 10 will be described with reference to FIG.

가상 지연 시간 계산부(110)는 트래픽 제어 대상이 되는 패킷이 입력됨에 따라, 델타큐(10)에서의 상기 패킷의 지연 시간을 계산한다. 상세하게는, 가상 지연 시간 계산부(110)는 이전 패킷의 델타큐(10)에서의 출력 시각(lastTime)이 현재 수신된 패킷의 수신 시각(currTime) 이후일 경우, lastTime에서 currTime을 감한 시간으로 현재 수신된 패킷의 지연 시간을 계산한다. 또한, lastTime에서 현재 수신된 패킷의 제어 설정에 따른 전송시간(bps)을 더한 값으로 lastTime을 업데이트한다. 그런데, 이와 같이 계산된 현재 수신된 패킷의 지연 시간이 소정 크기 이상일 경우, 현재 수신된 패킷을 드롭시킨다. 가상 지연 시간 계산부(110)의 상세 동작에 대해서는 하기에서 도 5를 참조하여 설명하기로 한다.The virtual delay time calculation unit 110 calculates a delay time of the packet in the delta queue 10 as a packet to be a traffic control target is input. Specifically, when the output time (lastTime) of the previous packet in the delta queue 10 is equal to or greater than the reception time (currTime) of the currently received packet, the virtual delay time calculation unit 110 calculates the delay time by subtracting currTime from lastTime The delay time of the currently received packet is calculated. Also, lastTime is updated with the transmission time (bps) according to the control setting of the packet currently received in lastTime. However, if the delay time of the currently received packet calculated above is equal to or larger than a predetermined size, the currently received packet is dropped. Detailed operation of the virtual delay time calculation unit 110 will be described below with reference to FIG.

델타큐 입력 제어부(120)는 트래픽 제어 대상이 되는 패킷을 델타큐(10)에 입력시키는데, 가상 지연시간 계산부(110)에서 계산된 지연 시간에 따라 델타큐(10)에 입력되는 저장 위치를 결정한다. 상세하게는, 델타큐 입력 제어부(120)는 델타큐(10)에 존재하는 기존 노드(np)의 패킷 지연 시간(np.delta)과 델타큐(10)에 입력시킬 신규 노드(dqn)의 패킷 지연 시간(dqn.delta)을 비교하고, np.delta가 dqn.delta보다 클 경우, np.delta에서 상기 dqn.delta을 감한 시간으로 상기 np.delta를 업데이트한 후, dqn을 상기 np앞에 삽입하고, np.delta가 dqn.delta보다 크지 않을 경우, dqn.delta에서 np.delta을 감한 시간으로 dqn.delta를 업데이트한 후, 다음 np가 존재하지 않으면 dqn을 np다음에 입력시킨다. 델타큐 입력 제어부(120)의 상세 동작에 대해서는 하기에서 도 6을 참조하여 설명하기로 한다.The delta queue input control unit 120 inputs a packet to be subjected to traffic control to the delta queue 10. The delta queue input control unit 120 determines a storage position to be input to the delta queue 10 according to the delay time calculated by the virtual delay time calculation unit 110 . The delta queue input control unit 120 receives the packet delay time np.delta of the existing node np existing in the delta queue 10 and the packet delay time np.delta of the new node dqn to be input to the delta queue 10. [ If the np.delta is larger than dqn.delta, the np.delta is updated by subtracting the dqn.delta from the np.delta, and then dqn is inserted before the np. If np.delta is not greater than dqn.delta, update dqn.delta with dpn.delta subtracting np.delta, and if np does not exist, enter dqn after np. The detailed operation of the delta queue input control unit 120 will be described below with reference to FIG.

델타큐 출력 제어부(130)는 델타큐(10)에 저장된 패킷을 포워딩하는데, 가상 지연 시간 계산부(110)에 의해 계산된 해당 패킷의 지연 시간을 주기적으로 모니터링하여, 지연 시간이 경과되면 해당 패킷을 포워딩하고, 해당 패킷이 저장되어 있던 노드를 제거한다. 델타큐 출력 제어부(130)의 상세 동작에 대해서는 하기에서 도 7을 참조하여 설명하기로 한다.The delta queue output control unit 130 periodically monitors the delay time of the corresponding packet calculated by the virtual delay time calculation unit 110 in order to forward the packet stored in the delta queue 10. If the delay time elapses, And removes the node where the packet was stored. The detailed operation of the delta queue output control unit 130 will be described below with reference to FIG.

도 2는 본 발명의 일 실시 예에 따른 가상 지연 시간을 이용한 트래픽 쉐이핑 과정을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a traffic shaping process using a virtual delay time according to an embodiment of the present invention.

도 2를 참조하면, 세 개의 패킷 P1, P2, P3가 순차적으로 입력되는데, 각각 수신되는 시각은 t1, t2, t3이다. 그러면, 가상 지연 시간 계산부(110)는 패킷들 각각에 대한 지연 시간(a1, a2, a3)를 계산한다. 여기서, 지연 시간(a1, a2, a3)은 미리 설정된 제어 bps에 따라 결정된다. 그러면, 패킷 P1, P2, P3 각각은 델타큐(10)에서 지연 시간(a1, a2, a3) 동안 버퍼링된 후, 각각 T1(t1 + a1), T2(t2 + a2), T3(t3 + a3) 시각에 델타큐(10)로부터 출력되어 포워딩된다.Referring to FIG. 2, three packets P1, P2, and P3 are sequentially input, and the received times are t1, t2, and t3, respectively. Then, the virtual delay time calculation unit 110 calculates the delay times a1, a2 and a3 for the respective packets. Here, the delay times a1, a2 and a3 are determined according to a preset control bps. Each of the packets P1, P2 and P3 is buffered for the delay times a1, a2 and a3 in the delta queue 10 and then transmitted to T1 (t1 + a1), T2 (t2 + a2) ) Delta queue 10 and forwarded.

도 3은 본 발명의 일 실시 예에 따른 델타큐의 테이블 구조도이다. 3 is a table structure diagram of a delta queue according to an embodiment of the present invention.

도 3을 참조하면, 델타큐(10)는 연결 리스트 자료 구조를 사용하며, 테이블의 필드는 next, delta, pktLen, dir, packet으로 구성된다. next는 다음 노드를 가리키는 포인터이며, delta는 노드에 저장된 패킷의 지연 시간을 나타낸다. pktLen은 해당 패킷의 길이를 나타내며, dir은 패킷의 방향성을 나타낸다. 여기서, 방향성이란 서버로부터 패킷을 수신하였는지(인바운드), 클라이언트로부터 패킷을 수신하였는지를(아웃바운드) 의미한다. 즉, 수신된 패킷의 방향성에 맞게 패킷을 포워드하기 위한 것이다. 마지막으로 packet은 델타큐(10)에 버퍼링된 패킷을 가리킨다.Referring to FIG. 3, the delta queue 10 uses a connection list data structure, and fields of the table are composed of next, delta, pktLen, dir, and packet. next is a pointer to the next node, and delta is the delay time of the packet stored in the node. pktLen represents the length of the packet, and dir represents the directionality of the packet. Here, directionality means whether a packet has been received from the server (inbound) or whether the packet has been received from the client (outbound). That is, the packet is forwarded in accordance with the direction of the received packet. Finally, the packet indicates a packet buffered in the delta queue (10).

도 4는 본 발명의 일 실시 예에 따른 가상 지연 시간을 이용한 트래픽 쉐이핑 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a traffic shaping method using a virtual delay time according to an embodiment of the present invention.

도 4를 참조하면, 장치(100)는 제어 대상 패킷이 입력됨에 따라, S410에서 해당 패킷의 델타큐(10)에서의 지연 시간을 계산한다. 이에 대해서는 하기의 도 5를 참조하여 상세히 설명하기로 한다. Referring to FIG. 4, as the packet to be controlled is input, the apparatus 100 calculates a delay time in the delta queue 10 of the packet in S410. This will be described in detail with reference to FIG. 5 below.

그런 후, 장치(100)는 지연 시간이 계산된 해당 패킷을 델타큐(10)에 버퍼링시키기 이전에 해당 패킷이 버퍼링될 수 있는 가용 노드가 델타큐(10)에 있는지를 확인한다. 즉, S420에서 델타큐(10)가 풀(FULL) 상태인지를 확인한다. The device 100 then verifies that the delta queue 10 has an available node to which the packet can be buffered before buffering the corresponding packet for which the delay time is calculated in the delta queue 10. [ That is, it is confirmed in step S420 whether the delta queue 10 is in a full state.

S420의 확인 결과 델타큐(10)가 풀(FULL) 상태일 경우, 장치(100)는 S430에서 해당 패킷을 드롭시킨다. If the delta queue 10 is in the FULL state as a result of the check in S420, the device 100 drops the corresponding packet in S430.

반면, S420의 확인 결과 델타큐(10)가 풀(FULL) 상태가 아닐 경우, 장치(100)는 S440에서 계산된 지연 시간에 따라 델타큐(10)에서의 저장 위치를 결정하고, 해당 패킷을 결정된 저장 위치에 입력시킨다. 이에 대해서는 하기의 도 6을 참조하여 상세히 설명하기로 한다.If the delta queue 10 is not in the full state, the device 100 determines the storage location in the delta queue 10 according to the delay time calculated in S440, And inputs it to the determined storage location. This will be described in detail with reference to FIG. 6 below.

그런 후, 장치(100)는 S450에서 주기적으로 델타큐(10)서 버퍼링되는 패킷의 지연 시간을 확인하여, 해당 패킷의 지연 시간 경과 여부를 확인한다. S450의 확인 결과 해당 패킷의 지연 시간이 경과되면, 장치(100)는 S460에서 해당 패킷을 출력시키고, 해당 패킷이 버퍼링되던 델타큐(10)의 노드를 제거한다. 이에 대해서는 하기의 도 7을 참조하여 상세히 설명하기로 한다. Then, the device 100 periodically checks the delay time of the packet buffered in the delta queue 10 in step S450, and checks whether the delay time of the packet has passed. As a result of S450, when the delay time of the packet has elapsed, the device 100 outputs the packet in S460 and removes the node of the delta queue 10 from which the packet is buffered. This will be described in detail with reference to FIG. 7 below.

도 5는 본 발명의 일 실시 예에 따른 가상 지연 시간 계산 과정을 설명하기 위한 순서도이다. 5 is a flowchart illustrating a process of calculating a virtual delay time according to an embodiment of the present invention.

도 5를 참조하면, 가상 지연 시간 계산부(110)는 제어 대상인 패킷이 입력됨에 따라, S510에서 현재 입력된 패킷의 수신 시각(currTime)과 이전 패킷이 델타큐(10)에서 출력되는 시각(lastTime)을 비교한다. 예컨대, P1이 이전 패킷이고, P2가 현재 수신된 패킷일 경우, currTime은 P2의 수신 시각(t2)가 되고, lastTime는 P1이 델타큐(10)에서 출력되는 시각(T1=t1+a1)일 수 있다. Referring to FIG. 5, the virtual delay time calculation unit 110 calculates the delay time (currTime) of the packet currently input in S510 and the time (lastTime) of the previous packet outputted from the delta queue 10, ). For example, when P1 is the previous packet and P2 is the currently received packet, currTime is the reception time t2 of P2 and lastTime is the time when T1 is output from the delta queue 10 (T1 = t1 + a1) .

S510의 판단 결과 currTime이 lastTime 이후일 경우, 즉, 현재 패킷이 수신되었을 때, 이전 수신된 패킷이 델타큐(10)에서 출력된 상태일 경우, 가상 지연 시간 계산부(110)는 S520에서 lastTime을 갱신한다. 즉, lastTime이 현재 수신된 패킷의 입력 시각(currTime)에 현재 패킷의 bps 시간을 더한 시각으로 업데이트된다. 여기서, 패킷의 bps 시간은 현재 패킷에 대한 제어 설정에 따른 전송 시간으로, 다음의 <수학식 1>과 같이 정의된다.
If it is determined in step S510 that currTime is equal to or greater than lastTime, that is, when the current packet is received, if the previously received packet is output from the delta queue 10, the virtual delay time calculation unit 110 determines that the lastTime Update. That is, lastTime is updated to the time of input of the currently received packet (currTime) plus the bps time of the current packet. Here, the bps time of the packet is a transmission time according to the control setting for the current packet, and is defined as the following Equation (1).

<수학식 1>&Quot; (1) &quot;

패킷 bps 시간={(패킷사이즈 + 24(프레임 프리엠블))*8*cpu 클럭}/제어 bps
Packet bps time = {(packet size + 24 (frame preamble)) * 8 * cpu clock} / control bps

예컨대, 1000비트의 패킷을 10Kbps로 제어를 한다고 가정하면, 해당 패킷의 bps 시간은 0.1초가 된다.For example, assuming that a 1000-bit packet is controlled at 10 Kbps, the bps time of the packet is 0.1 second.

그런 후, 가상 지연 시간 계산부(110)는 S530에서 현재 패킷의 가상 지연 시간(delta)를 0으로 결정한다. Then, the virtual delay time calculation unit 110 determines the virtual delay time (delta) of the current packet to be 0 in step S530.

반면, S510의 판단 결과 currTime이 lastTime보다 이전일 경우, 가상 지연 시간 계산부(110)는 S540에서 현재 패킷의 지연 시간(delta)을 lastTime에서 currTime을 뺀 시간으로 계산한다.On the other hand, if it is determined in step S510 that currTime is earlier than lastTime, the virtual delay time calculation unit 110 calculates the delay time delta of the current packet by subtracting currTime from lastTime in step S540.

그런데, 이러한 가상 지연 시간(delta)이 소정 기준 시간 이상일 정도로 길어지면, 델타큐(10)로부터 포워드되는 시간이 길어져서 델타큐의 노드 개수가 남아 있지 않아 과제어 현상이 일어날 것이다.However, if the virtual delay time (delta) becomes longer than the predetermined reference time, the time to be forwarded from the delta queue 10 becomes longer, so that the number of nodes of the delta queue will not remain, resulting in a problem of assignment.

따라서, 가상 지연 시간 계산부(110)는 S550에서 지연 시간(delta)이 소정 기준 시간 이상인지를 판단한다. 예컨대, 가상 지연시간(delta)이 100ms 이상인지를 판단한다. Accordingly, the virtual delay time calculation unit 110 determines whether the delay time delta is equal to or greater than a predetermined reference time at S550. For example, it is determined whether the virtual delay time delta is 100 ms or more.

S550의 판단 결과 지연 시간(delta)이 소정 기준 시간을 초과할 경우, 가상 지연 시간 계산부(110)는 S560에서 현재 패킷을 드롭시킨다. 반면, S550의 판단 결과 지연 시간(delta)이 소정 기준 시간 이하일 경우, 가상 지연 시간 계산부(110)는 S570에서 lastTime에 현재 패킷의 bps 시간을 더한 시각으로 lastTime을 업데이트시킨다.If it is determined in step S550 that the delay time delta exceeds the predetermined reference time, the virtual delay time calculation unit 110 drops the current packet in step S560. On the other hand, if it is determined in step S550 that the delay time delta is less than the predetermined reference time, the virtual delay time calculation unit 110 updates the lastTime to the lastTime plus the bps time of the current packet in step S570.

도 6은 본 발명의 일 실시 예에 따른 델타큐에 패킷을 입력하는 과정을 설명하기 위한 순서도이다. 여기서, np는 델타큐(10)에 존재하는 기존 노드를 의미하고, dqn은 델타큐(10)에 새롭게 입력될 신규 노드를 의미한다. 또한, np.delta는 델타큐(10)에 존재하는 기존 노드(np)의 패킷 지연 시간이고, dqn.delta는 델타큐(10)에 입력시킬 신규 노드(dqn)의 패킷 지연 시간을 의미한다.6 is a flowchart illustrating a process of inputting a packet to a delta queue according to an embodiment of the present invention. Here, np denotes an existing node existing in the delta queue 10, and dqn denotes a new node to be newly input into the delta queue 10. [ Also, np.delta is the packet delay time of the existing node np in the delta queue 10, and dqn.delta is the packet delay time of the new node dqn to be input to the delta queue 10.

도 6을 참조하면, 델타큐 입력 제어부(120)는 패킷이 입력됨에 따라, S610에서 델타큐(10)에 np가 존재하는지를 확인한다.Referring to FIG. 6, as the packet is input, the delta queue input control unit 120 determines whether np exists in the delta queue 10 in step S610.

S610의 확인 결과 np가 존재하지 않으면, 델타큐 입력 제어부(120)는 S620에서 입력된 패킷의 정보를 dqn에 할당하여 델타큐(10)에 입력한다. 반면, S610의 확인 결과 np가 존재하면, 델타큐 입력 제어부(120)는 S630에서 np.delta와 dqn.delta을 비교한다. If it is determined in step S610 that np does not exist, the delta queue input control unit 120 assigns the information of the packet input in step S620 to dqn and inputs the information to the delta queue 10. [ On the other hand, if it is determined in step S610 that np exists, the delta queue input control unit 120 compares np.delta and dqn.delta in step S630.

S630의 확인 결과 np.delta이 dqn.delta을 초과할 경우, 델타큐 입력 제어부(120)는 S640에서 np.delta에서 dqn.delta를 감한 시간으로 np.delta를 업데이트한다. 그런 후, S650에서 dqn를 np 앞에 삽입시킨다.If it is determined in step S630 that np.delta exceeds dqn.delta, the delta queue input control unit 120 updates the np.delta by subtracting dqn.delta from np.delta in step S640. Then insert dqn in front of np in S650.

반면, S630의 확인 결과 np.delta이 dqn.delta 이하일 경우, 델타큐 입력 제어부(120)는 S660에서 dqn.delta에서 np.delta을 감한 시간으로 dqn.delta을 업데이트한다. On the other hand, if it is determined in step S630 that np.delta is equal to or less than dqn.delta, the delta queue input control unit 120 updates dqn.delta by subtracting np.delta from dqn.delta in step S660.

그런 후, 델타큐 입력 제어부(120)는 S670에서 다음 np의 존재 여부를 확인한다. S670의 확인 결과 다음 np가 존재하면, 델타큐 입력 제어부(120)는 S630 단계로 진행한다. 그러나, S670의 확인 결과 다음 np가 존재하지 않으면, 델타큐 입력 제어부(120)는 S680에서 dqn을 np 다음에 삽입시킨다.Then, in step S670, the delta queue input control unit 120 checks whether or not the next np exists. If it is determined in step S670 that the next np exists, the delta queue input control unit 120 proceeds to step S630. However, if it is determined in step S670 that the next np does not exist, the delta queue input control unit 120 inserts dqn after np in step S680.

도 7은 본 발명의 일 실시 예에 따라 패킷을 포워딩하는 과정을 설명하기 위한 순서도이다. 여기서, np는 델타큐에 존재하는 노드를 의미하고, np.delta는 np에 설정된 패킷 지연 시간이고, delta.timer는 np가 입력된 후 경과된 시간을 의미한다.7 is a flowchart illustrating a process of forwarding a packet according to an embodiment of the present invention. Here, np denotes a node existing in a delta queue, np.delta denotes a packet delay time set in np, and delta.timer denotes a time elapsed since np is input.

도 7을 참조하면, 델타큐 출력 제어부(130)는 S710에서 델타큐(10)의 첫 번째 np를 체크하고, S720에서 np의 존재 여부를 확인한다. Referring to FIG. 7, the delta queue output control unit 130 checks the first np of the delta queue 10 in step S710 and checks whether np exists in step S720.

S720의 확인 결과 델타큐(10)에 np가 존재할 경우, 델타큐 출력 제어부(130)는 S730에서 np가 델타큐(10)의 입력된 후의 경과 시간인 delta.timer를 모니터링하여, np.delta와 비교한다. If it is determined in step S720 that np exists in the delta queue 10, the delta queue output control unit 130 monitors delta.timer, which is the elapsed time after np has entered the delta queue 10 in step S730, Compare.

S730의 비교 결과 np.delta가 delta.timer 이상인 경우, 델타큐 출력 제어부(130)는 S740에서 np.delta에서 delta.timer를 감한 시간으로 np.delta를 업데이트하고, S710으로 진행한다. If it is determined in step S730 that np.delta is equal to or greater than delta.timer, the delta queue output control unit 130 updates np.delta by the time delta.timer is subtracted from np.delta in step S740, and proceeds to step S710.

반면, S730의 비교 결과, np.delta가 delta.timer 이상이 아닌 경우, 델타큐 출력 제어부(130)는 S750에서 delta.timer에서 np.delta를 감한 시간으로 delta.timer를 업데이트한다. On the other hand, if it is determined in step S730 that np.delta is not equal to or greater than delta.timer, the delta queue output control unit 130 updates delta.timer by subtracting np.delta from delta.timer in step S750.

그런 후, 델타큐 출력 제어부(130)는 S760에서 np에 저장된 패킷을 포워드하고, S770에서 np를 제거한다. 그리고, 다시 S720 단계로 진행한다. Then, the delta queue output control unit 130 forwards the packet stored in np in S760, and removes np in S770. Then, the process proceeds to step S720.

Claims (10)

패킷을 지연시키는 델타큐와,
입력되는 패킷을 상기 델타큐에서 지연시킬 지연 시간을 계산하는 가상 지연 시간 계산부와,
상기 계산된 지연 시간에 따라 상기 델타큐에서의 저장 위치를 결정하고, 상기 패킷을 상기 저장 위치에 입력시키는 델타큐 입력 제어부와,
상기 계산된 지연 시간이 경과됨에 따라, 상기 델타큐로부터 상기 패킷을 포워딩하는 델타큐 출력 제어부를 포함함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치.
A delta queue for delaying packets,
A virtual delay time calculator for calculating a delay time for delaying an input packet in the delta queue;
A delta queue input control unit for determining a storage location in the delta queue according to the calculated delay time and inputting the packet to the storage location,
And a delta queue output control unit for forwarding the packet from the delta queue as the calculated delay time elapses.
제 1항에 있어서, 상기 델타큐는
다음 노드를 표시하는 포인터 필드(next)와, 패킷의 지연 시간을 기록하는 필드(delta)와, 패킷 길이를 기록하는 필드(pktLen)와, 패킷의 방향성을 나타내는 필드(dir)과, 버퍼링되는 패킷을 나타내는 필드(packet)를 포함함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치.
The method of claim 1, wherein the delta queue
A field (del) for recording the delay time of the packet, a field (pktLen) for recording the packet length, a field (dir) indicating the direction of the packet, and a field And a field indicating a packet delay time of the traffic shaping device.
제 1항에 있어서, 상기 가상 지연 시간 계산부는
이전 패킷의 상기 델타큐에서의 출력 시각(lastTime)이 상기 패킷의 수신 시각(currTime) 이후일 경우, 상기 lastTime에서 상기 currTime을 감한 시간으로 지연 시간을 계산함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치.
The apparatus of claim 1, wherein the virtual delay time calculation unit
Wherein when the output time (lastTime) of the previous packet in the delta queue is after the reception time (currTime) of the packet, the delay time is calculated by subtracting the currTime from the lastTime. Shaping device.
제 3항에 있어서, 상기 가상 지연 시간 계산부는
상기 지연 시간이 소정 크기 이상일 경우, 상기 패킷을 드롭시킴을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치.
4. The apparatus of claim 3, wherein the virtual delay time calculation unit
And drops the packet if the delay time is greater than or equal to a predetermined size.
제 3항에 있어서, 상기 가상 지연 시간 계산부는
상기 lastTime에 상기 패킷의 제어 설정에 따른 전송시간(bps)을 더한 값으로 업데이트함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치.
4. The apparatus of claim 3, wherein the virtual delay time calculation unit
And updates the lastTime to a value obtained by adding the transmission time (bps) according to the control setting of the packet to the lastTime.
제 1항에 있어서, 상기 델타큐 입력 제어부는
상기 델타큐에 존재하는 기존 노드(np)의 패킷 지연 시간(np.delta)과 상기 델타큐에 입력시킬 신규 노드(dqn)의 패킷 지연 시간(dqn.delta)을 비교하고,
상기 np.delta가 상기 dqn.delta보다 클 경우, 상기 np.delta에서 상기 dqn.delta을 감한 시간으로 상기 np.delta를 업데이트한 후, 상기 dqn을 상기 np앞에 삽입하고,
상기 np.delta가 상기 dqn.delta보다 크지 않을 경우, 상기 dqn.delta에서 상기 np.delta을 감한 시간으로 상기 dqn.delta를 업데이트한 후, 다음 np가 존재하지 않으면 상기 dqn을 상기 np다음에 입력함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 장치.
The apparatus of claim 1, wherein the delta queue input control unit
Compares the packet delay time (np.delta) of the existing node (np) existing in the delta queue with the packet delay time (dqn.delta) of the new node (dqn) to be input to the delta queue,
If the np.delta is greater than the dqn.delta, the np.delta is updated with the time taken by subtracting the dqn.delta from the np.delta, the dqn is inserted before the np,
If the np.delta is not greater than the dqn.delta, the dqn.delta is updated with a time obtained by subtracting the np.delta from the dqn.delta, and if there is no next np, the dqn is input after the np Wherein the traffic shaping device uses the virtual delay time.
패킷을 지연시키는 델타큐를 포함하는 장치에서의 가상 지연 시간을 이용한 트래픽 쉐이핑 방법에 있어서,
입력되는 패킷을 상기 델타큐에서 지연시킬 지연 시간을 계산하는 단계와,
상기 계산된 지연 시간에 따라 상기 델타큐에서의 저장 위치를 결정하고, 상기 패킷을 상기 저장 위치에 입력시키는 단계와,
상기 계산된 지연 시간이 경과됨에 따라, 상기 델타큐로부터 상기 패킷을 포워딩하는 단계를 포함함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 방법.
A traffic shaping method using a virtual delay time in a device including a delta queue for delaying packets,
Calculating a delay time for delaying an incoming packet in the delta queue;
Determining a storage location in the delta queue according to the calculated delay time and inputting the packet to the storage location;
And forwarding the packet from the delta queue as the calculated delay time elapses. &Lt; Desc / Clms Page number 20 &gt;
제 7항에 있어서, 상기 지연 시간을 계산하는 단계는
이전 패킷의 상기 델타큐에서의 출력 시각(lastTime)이 상기 패킷의 수신 시각(currTime) 이후일 경우, 상기 lastTime에서 상기 currTime을 감한 시간으로 지연 시간을 계산하는 단계를 포함함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 방법.
8. The method of claim 7, wherein calculating the delay time comprises:
And calculating a delay time from the lastTime by subtracting the currTime when the output time (lastTime) of the previous packet in the delta queue is after the reception time (currTime) of the packet. A method of traffic shaping using time.
제 8항에 있어서, 상기 지연 시간을 계산하는 단계는
상기 지연 시간이 소정 크기 이상일 경우, 상기 패킷을 드롭시키는 단계를 포함함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 방법.
9. The method of claim 8, wherein calculating the delay time comprises:
And dropping the packet if the delay time is greater than or equal to a predetermined size.
제 8항에 있어서, 상기 입력시키는 단계는
상기 델타큐에 존재하는 기존 노드(np)의 패킷 지연 시간(np.delta)과 상기 델타큐에 입력시킬 신규 노드(dqn)의 패킷 지연 시간(dqn.delta)을 비교하는 단계와,
상기 비교 결과 상기 np.delta가 상기 dqn.delta보다 클 경우, 상기 np.delta에서 상기 dqn.delta을 감한 시간으로 상기 np.delta를 업데이트한 후, 상기 dqn을 상기 np앞에 삽입시키는 단계와,
상기 비교 결과 상기 np.delta가 상기 dqn.delta보다 크지 않을 경우, 상기 dqn.delta에서 상기 np.delta을 감한 시간으로 상기 dqn.delta를 업데이트한 후, 다음 np가 존재하지 않으면 상기 dqn을 상기 np다음에 입력하는 단계를 포함함을 특징으로 하는 가상 지연 시간을 이용한 트래픽 쉐이핑 방법.
9. The method of claim 8,
Comparing a packet delay time (np.delta) of an existing node (np) existing in the delta queue with a packet delay time (dqn.delta) of a new node (dqn) to be input to the delta queue;
If the np.delta is greater than the dqn.delta as a result of the comparison, updating the np.delta by the time taken to subtract the dqn.delta from the np.delta and inserting the dqn before the np;
If the np.delta is not greater than the dqn.delta as a result of the comparison, the dqn.delta is updated with a time obtained by subtracting the np.delta from the dqn.delta, and if the next np does not exist, The method of claim 1, further comprising the step of:
KR1020140037141A 2014-03-28 2014-03-28 Apparatus and Method for Shaping Traffic using Virtual Buffering Time KR101545704B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140037141A KR101545704B1 (en) 2014-03-28 2014-03-28 Apparatus and Method for Shaping Traffic using Virtual Buffering Time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140037141A KR101545704B1 (en) 2014-03-28 2014-03-28 Apparatus and Method for Shaping Traffic using Virtual Buffering Time

Publications (1)

Publication Number Publication Date
KR101545704B1 true KR101545704B1 (en) 2015-08-19

Family

ID=54061448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140037141A KR101545704B1 (en) 2014-03-28 2014-03-28 Apparatus and Method for Shaping Traffic using Virtual Buffering Time

Country Status (1)

Country Link
KR (1) KR101545704B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101945717B1 (en) * 2017-04-18 2019-02-08 (주)시스메이트 shaping control overhead reducing apparatus using scheduled time selection cue method and method therefor
KR102322454B1 (en) * 2020-04-28 2021-11-05 고려대학교 산학협력단 Network monitoring apparatus and method thereof in programmable network virtualization
KR102322451B1 (en) * 2020-05-19 2021-11-05 고려대학교 산학협력단 Network hypervisor and method of allocating control channel bandwidth
CN114338555A (en) * 2021-11-16 2022-04-12 北京邮电大学 Method and device for realizing whole-network periodic label planning of wide-area deterministic network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013172156A (en) 2012-02-17 2013-09-02 Mitsubishi Electric Corp Media data transmitter and synchronous reproduction system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013172156A (en) 2012-02-17 2013-09-02 Mitsubishi Electric Corp Media data transmitter and synchronous reproduction system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101945717B1 (en) * 2017-04-18 2019-02-08 (주)시스메이트 shaping control overhead reducing apparatus using scheduled time selection cue method and method therefor
KR102322454B1 (en) * 2020-04-28 2021-11-05 고려대학교 산학협력단 Network monitoring apparatus and method thereof in programmable network virtualization
KR102322451B1 (en) * 2020-05-19 2021-11-05 고려대학교 산학협력단 Network hypervisor and method of allocating control channel bandwidth
CN114338555A (en) * 2021-11-16 2022-04-12 北京邮电大学 Method and device for realizing whole-network periodic label planning of wide-area deterministic network
CN114338555B (en) * 2021-11-16 2024-02-06 北京邮电大学 Method and device for realizing full-network periodic label planning of wide area deterministic network

Similar Documents

Publication Publication Date Title
US8190750B2 (en) Content rate selection for media servers with proxy-feedback-controlled frame transmission
TWI543568B (en) Reducing headroom
KR101286830B1 (en) Fast channel change handling of late multicast join
KR102187810B1 (en) Apparatus and method for controlling data flow in a communication system
KR101545704B1 (en) Apparatus and Method for Shaping Traffic using Virtual Buffering Time
US20100008224A1 (en) Method for Optimizing the Transfer of Information in a Telecommunication Network
US9054988B2 (en) Method and apparatus for providing queue delay overload control
WO2017114231A1 (en) Packet sending method, tcp proxy, and tcp client
US9013999B1 (en) Method and apparatus for egress jitter pacer
JPWO2010041469A1 (en) Content distribution system, content distribution method, and computer program
CN109347674B (en) Data transmission method and device and electronic equipment
US8611223B2 (en) Method and apparatus for providing processor occupancy overload control
TWI758680B (en) Data relay device, method, transmission system and program
US9407386B2 (en) Data processing
US9060205B2 (en) Optimizing streaming of a group of videos
Lee et al. SDN-assisted HTTP adaptive streaming over Wi-Fi network
KR20210077841A (en) Method and apparatus for providing high quality real time media streaming service with low latency
Kua Understanding the achieved rate multiplication effect in FlowQueue-based AQM bottleneck
CN115914106B (en) Self-adaptive buffer method for network traffic forwarding
US20230066060A1 (en) Routing of bursty data flows
KR101365496B1 (en) Adaptive Traffic Buffering Method and System in IP Networks
Oida Propagation of low variability in video traffic
KADHUM et al. A new congestion management mechanism for next generation routers
EP1950922A1 (en) Method and device for adjusting a jitter buffer and communication system comprising such device
Sreeraj et al. Optimizing the jitter losses using adaptive jitter buffer at the receiver

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 5