KR20040047088A - 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법 - Google Patents

이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법 Download PDF

Info

Publication number
KR20040047088A
KR20040047088A KR1020020075166A KR20020075166A KR20040047088A KR 20040047088 A KR20040047088 A KR 20040047088A KR 1020020075166 A KR1020020075166 A KR 1020020075166A KR 20020075166 A KR20020075166 A KR 20020075166A KR 20040047088 A KR20040047088 A KR 20040047088A
Authority
KR
South Korea
Prior art keywords
buffer
frame
pause
flow control
time
Prior art date
Application number
KR1020020075166A
Other languages
English (en)
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 KR1020020075166A priority Critical patent/KR20040047088A/ko
Publication of KR20040047088A publication Critical patent/KR20040047088A/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/12Avoiding congestion; Recovering from congestion
    • 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
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

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

Abstract

본 발명은 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법에 관한 것으로서,
본 발명에 따른 흐름제어 방법은, 프레임을 수신하여 버퍼에 저장하는 제 1단계; 버퍼의 현재 사용가능한 용량인 현재 가용용량을 체크하는 제 2단계; 버퍼의 현재 가용용량이, 프레임이 수신되는 입력포트의 수신률과 전송시스템과 수신시스템 간에 프레임이 전송되는데 소요되는 시간인 전파지연시간을 승산하여 산출된 최소 버퍼사이즈 이하이면 흐름제어 신호를 발생하는 제 3단계; 전송시스템으로 프레임의 전송중단 시간인 포즈 타임이 기록된 포즈 프레임을 전송하는 제 4단계; 및 소정의 설정된 시간동안 동작하는 포즈 타이머에 포즈 타임을 설정하는 제 5단계를 포함하고, 제 4단계 및 제 5단계는 동시에 수행되는 것을 특징으로 한다.

Description

이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법{TRAFFIC SHAPER FOR FLOW CONTROL OF ETHERNET AND METHOD FOR FLOW CONTROL}
본 발명은 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법에 관한 것으로서, 특히 OSI(Open Systems Interconnection) 7계층 중 2계층 및 3계층의 스위치에 적용되며 하나의 입력포트와 하나의 출력포트를 구비하는 트래픽 쉐이퍼(Traffic Shaper)에 있어서, 응답시간을 보장하면서 버스트 트래픽(Burst Traffic)을 수용하기 위한 적절한 크기의 버퍼를 구비하고 혼잡상태(congestion) 발생시점을 판단하여 포즈 프레임을 전송함으로써 전송되는 이더넷 프레임의 손실을 방지하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법에 관한 것이다.
종래의 스위치 칩에서 사용되고 있는 트래픽 쉐이핑(Traffic Shaping) 방법은 트래픽이 여러 개의 입력포트에서 들어와서 여러 개의 출력포트 중 하나로 나가는 경우에 있어 입력단에서 사용할 수 있는 트래픽 제어방법에 관한 것이 대부분이었다. 따라서, 하나의 입력포트와 하나의 출력포트를 구비하는 경우에는 비효율적이어서 적용이 곤란하였다.
또한, 종래의 하드웨어 포트 전송률 제어방법에서는 전송률과 허용할 버스트 (Burst)의 크기를 운용자가 직접 설정하도록 되어 있었는데, 이 경우 운용자가 허용할 버스트 크기를 설정하는데 곤란함이 있었다.
또한, 입력포트와 출력포트 사이의 전송률 차이와 버퍼의 용량 등으로 인하여 트래픽의 전송 도중 시스템 내에 혼잡상태(Congestion)가 발생하곤 하는데, 이 경우 혼잡상태의 발생 여부와 발생 시점을 정확히 판단하여 흐름제어를 해주어야 한다.
종래에 혼잡상태의 발생시점을 판단하는 방법으로는, 큐에 더 이상 큐잉을 시도하는 프레임을 위한 공간이 없는 시점에서 임의의 프레임이 큐잉을 시도하는 경우 시스템에 혼잡상태가 발생했다고 판단하는 방법과, RED(Random EarlyDiscard) 또는 WRED(Weighted RED) 기법에 의해서 트래픽이 버려지는 순간에 시스템에 혼잡상태가 발생했다고 판단하는 방법이 사용되었다. 상기 방법들은, 입력포트의 전송률과 출력포트의 전송률 차이로 인하여 버퍼에 더 이상의 공간이 없을 때 임의로 초기에 수신된 프레임을 드롭(drop)시키거나 각 프레임에 가중치를 부가하여 드롭시키는 시점에 혼잡상태가 발생했다고 판단하는 방법이다.
그러나, 종래의 방법과 같이 큐잉할 공간이 없거나 프레임이 드롭된 시점에 혼잡상태가 발생했다고 판단하여 포즈 프레임(PAUSE Frame)을 입력포트로 전송할 경우, 입력포트에 연결된 시스템이 포즈 프레임을 수신하기 전에는 혼잡상태가 발생한 것을 알 수 없으므로 계속해서 트래픽을 전송하게 되고, 이때 전송된 트래픽은 큐잉이 되지 못하여 드롭되는 문제점이 있었다.
한편, TCP의 경우 드롭되는 프레임이 발생하면 퍼포먼스(performance)가 급격히 저하되는 현상이 발생하는데, 종래의 방법에 의하여 프레임의 드롭이 자주 발생할 경우 시스템의 퍼포먼스는 급격하게 떨어지게 되어 안정적인 데이터의 전송이나 서비스의 품질을 확보하는데 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하고자 제시된 것으로서, 본 발명의 목적은 트래픽의 손실을 방지하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼를 제공하는 것이다.
또한, 본 발명의 또 다른 목적은 포즈 프레임을 전송하여 흐름제어를 함에있어서 전송시스템으로부터 전송되는 프레임의 손실을 방지하는 흐름제어 방법을 제공하는 것이다.
즉, 본 발명은 응답 시간을 보장하면서 버스트 트래픽을 수용할 수 있는 트래픽 버퍼 크기를 선정하여 망 내에서만 트래픽이 쉐이핑되는 것이 아니라 현재 시스템 이전의 시스템도 어느 정도의 고른 트래픽을 보낼 수 있도록 하며, 적절한 시기에 포즈 프레임을 전송하여 해당 시스템 내에서 트래픽이 드롭되는 것을 방지하는 것을 목적으로 한다.
도 1은 본 발명에 따른 트래픽 쉐이퍼가 적용된 시스템의 구현 예시도.
도 2는 포즈 프레임 전송을 통한 흐름제어 과정을 도시한 흐름도.
*** 도면의 주요 부분에 대한 부호 설명 ***
10 : 입력포트 20 : 버퍼 컨트롤러
30 : 버퍼 40 : 패킷 쉐이퍼
50 : 중앙처리장치 60 : 출력포트
70 : 맥 컨트롤러(MAC Controller) 72 : 포즈 타이머
74 : 흐름제어 모듈
상기의 목적을 달성하기 위하여, 본 발명에 따른 이더넷의 흐름제어를 위한 트래픽 쉐이퍼는, 전송시스템으로부터 전송되는 프레임을 수신하는 수신시스템에 구비되어 흐름제어를 수행하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼에 있어서, 프레임이 소정의 수신률로 수신되는 입력포트; 처리된 프레임이 소정의 전송률로 전송되어 나가는 출력포트; 입력포트에 의해 수신된 프레임을 중앙처리장치 또는 소정의 처리모듈에 의해 처리되기 전에 임시 저장하며, 입력포트로 수신된 프레임이 출력포트로 전송되는데 걸리는 시간인 최대 허용 지연시간과 출력포트의 전송률을 승산하여 산출되는 최대 버퍼사이즈로 용량이 설정된 버퍼; 입력포트로 수신된 프레임을 버퍼로 전송하여 저장하고, 버퍼의 사용가능한 용량인 현재 가용용량을 체크하여 현재 가용용량이 소정의 기준값 이하이면 흐름제어 신호를 전송하는 버퍼 컨트롤러; 및 버퍼 컨트롤러로부터 흐름제어 신호를 수신하여 흐름제어를 수행하는맥 컨트롤러를 구비하는 것을 특징으로 한다.
버퍼의 최대 용량은 수신시스템에서 버퍼의 크기로 할당된 전체 버퍼사이즈 이하가 되도록 한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명에 따른 이더넷의 흐름제어를 위한 트래픽 쉐이퍼의 또 다른 실시례는, 프레임이 소정의 수신률로 수신되는 입력포트; 처리된 프레임이 소정의 전송률로 전송되어 나가는 출력포트; 입력포트에 의해 수신된 프레임을 중앙처리장치 또는 소정의 처리모듈에 의해 처리되기 전에 임시 저장하는 버퍼; 입력포트로 수신된 프레임을 버퍼로 전송하여 저장하고, 버퍼의 사용가능한 용량인 현재 가용용량을 체크하여, 현재 가용용량이 전송시스템과 수신시스템 중 일방에서 전송된 프레임이 다른 일방에 수신되는데 소요되는 시간인 전파 지연시간과 입력포트의 수신률을 승산하여 산출되는 최소 버퍼사이즈 이하인 경우 흐름제어 신호를 전송하는 버퍼 컨트롤러; 및 버퍼 컨트롤러로부터 흐름제어 신호를 수신하여 흐름제어를 수행하는 맥 컨트롤러를 구비하는 것을 특징으로 한다.
바람직하게는, 맥 컨트롤러는, 소정의 설정된 시간동안 작동하는 포즈 타이머; 및 흐름제어 신호를 수신하여, 프레임의 전송 중단시간인 포즈 타임이 기록된 포즈 프레임을 전송시스템에 전송하고, 포즈 타임을 포즈 타이머에 설정하는 흐름제어 모듈을 구비하도록 하며,
흐름제어 모듈은 포즈 타이머에 설정된 포즈 타임이 종료되면 버퍼 컨트롤러에 포즈타임 종료신호를 전송하고, 버퍼 컨트롤러는 포즈타임 종료신호를 수신하여, 버퍼의 현재 가용용량을 체크하도록 한다.
또한, 상기의 또 다른 목적을 달성하기 위하여, 본 발명에 따른 흐름제어 방법은, 전송시스템으로부터 전송되는 프레임을 수신하는 수신시스템에서 혼잡상태 발생으로 인한 프레임의 손실을 방지하는 흐름제어 방법으로서, 프레임을 수신하여 버퍼에 저장하는 제 1단계; 버퍼의 현재 사용가능한 용량인 현재 가용용량을 체크하는 제 2단계; 버퍼의 현재 가용용량이, 프레임이 수신되는 입력포트의 수신률과 전송시스템과 수신시스템 간에 프레임이 전송되는데 소요되는 시간인 전파지연시간을 승산하여 산출된 최소 버퍼사이즈 이하이면 흐름제어 신호를 발생하는 제 3단계; 전송시스템으로 프레임의 전송중단 시간인 포즈 타임이 기록된 포즈 프레임을 전송하는 제 4단계; 및 소정의 설정된 시간동안 동작하는 포즈 타이머에 포즈 타임을 설정하는 제 5단계를 포함하고, 제 4단계 및 제 5단계는 동시에 수행되는 것을 특징으로 한다.
바람직하게는, 포즈 타이머에 설정된 포즈 타임이 종료되면 포즈타임 종료신호를 발생하는 제 6단계; 버퍼의 현재 가용용량을 다시 체크하고, 현재 가용용량이 최소 버퍼사이즈 이하이면 흐름제어 신호를 다시 발생하는 제 7단계; 및 전송시스템으로 포즈 프레임을 다시 전송하고, 포즈 타이머에 포즈 타임을 설정하는 제 8단계를 더 포함하도록 한다.
이하에서는, 첨부한 도면을 참조하여 본 발명의 장점, 특징 및 바람직한 실시례에 대해 상세히 설명한다.
도 1은 본 발명에 따른 트래픽 쉐이퍼가 적용된 시스템의 구현 예시도이다. 도 1에는 제 1 전송시스템(200a)으로부터 전송된 트래픽이 수신시스템인 현재 시스템(100)에 수신되어 처리되고 현재 시스템에서 전송된 트래픽이 제 2 전송시스템 (200b)으로 전송되는 경우와, 반대로 제 2 전송시스템으로부터 현재 시스템을 거쳐 제 1 전송시스템으로 트래픽이 전송되는 경우를 모두 도시하였다. 제 1 전송시스템(200a), 현재 시스템(100) 및 제 2 전송시스템(200b)은 동일한 구성을 가지며, 상호간에 트래픽을 전송 및 수신한다.
도 1에 도시된 바와 같이, 현재 시스템(100)에는 전송되는 트래픽을 수신 처리하고 흐름제어를 하기 위하여, 입력포트(10a, 10b), 버퍼 컨트롤러(20), 버퍼 (30), 패킷 쉐이퍼(40), 중앙처리장치(50), 출력포트(60a, 60b) 및 맥 컨트롤러 (70)가 구비된다. 도 1 에서 굵은 실선으로 이루어진 화살표는 전송시스템(200a, 200b)으로부터 전송된 트래픽이 이동되는 경로를 나타내고, 점선은 중앙처리장치의 제어경로를 나타내며, 일점쇄선은 흐름제어경로를 나타낸다.
전송시스템(200a, 200b)으로부터 전송된 트래픽은 현재 시스템(100)의 입력포트(10a, 10b)로 수신되어 버퍼(30)에 임시 저장된 뒤 중앙처리장치(50) 또는 별도의 처리모듈을 거쳐 처리된 뒤, 출력포트(60a, 60b)를 통해 타 시스템 또는 출력장치로 전송된다.
통상적으로, 입력포트로 수신되어 들어오는 트래픽의 전송률(이하 '수신률'이라 한다.)은 전송시스템의 전송률에 의해 좌우되며, 출력포트로부터 전송되어 나가는 트래픽의 전송률(이하 '전송률'이라 한다.)은 데이터의 처리속도 등의 영향을 받는다. 통상적으로 수신률과 전송률은 상호 동일하지 아니하고 차이가 나게 되는데, 수신률보다 전송률이 같거나 클 경우에는 트래픽을 수신하여 처리하는데 별다른 문제가 발생하지 않는다. 그러나, 수신률보다 전송률이 작을 경우에는 수신된 트래픽 중 손실되는 프레임이 발생하거나 응답시간이 길어지는 문제가 발생된다. 따라서, 수신된 트래픽을 일시적으로 버퍼에 저장한 뒤 중앙처리장치 또는 처리모듈에 의하여 처리하도록 하는데, 수신률과 전송률을 고려하여 적절하게 버퍼사이즈를 결정하여야 한다. 또한, 버퍼의 사용가능한 용량인 가용용량이 부족하여 수신되는 프레임이 손실될 여지가 있을 때에는 전송시스템에 포즈 프레임을 전송하여 트래픽의 전송을 중단시킴으로써 전송률을 조절하여 프레임의 손실을 방지하도록 한다.
본 발명에 따른 버퍼 컨트롤러(20)는 버퍼(30)의 현재 가용용량을 체크하여 흐름제어 여부를 판단하기 위한 임계치가 되는 최소 버퍼사이즈 이하일 경우에 맥 컨트롤러(70)에 포즈 프레임을 전송할 것을 지시한다. 최소 버퍼사이즈란 맥 컨트롤러로부터 전송된 포즈 프레임이 전송시스템(200a, 200b)에 도착할 동안에 전송시스템으로부터 전송되는 트래픽을 수용할 수 있는 버퍼의 용량을 의미한다. 이는 포즈 프레임이 전송되는 동안에 수신된 트래픽의 손실을 방지하기 위함이다.
본 발명에 따른 맥 컨트롤러(70)의 흐름제어 모듈(74)은 전송될 포즈 프레임에 기록된 시간과 동일한 시간을 포즈 타이머(72)에 설정한 뒤 포즈 타이머를 시작시키고 포즈 프레임을 전송시스템(200a, 200b)로 전송하며, 전송시스템은 포즈 프레임을 수신하면 트래픽의 전송을 중단시킨다. 여기서, 트래픽의 전송은 포즈 프레임에 기록된 시간만큼 중단된다.
포즈 타이머(72)는 기록된 시간이 종료되면 흐름제어 모듈(74)을 통해 이를 버퍼 컨트롤러(20)에 알리고, 버퍼 컨트롤러는 이 시점에서 버퍼(30)의 현재 가용용량을 다시 체크하여 포즈 프레임 전송여부를 결정한다.
이하에서는, 버퍼사이즈를 산출하는 방법과 포즈 프레임의 전송시기를 결정하는 방법에 대하여 상세히 설명한다.
1. 버퍼사이즈 결정
응답 시간을 보장하면서 버스트 트래픽(Burst Traffic)을 수용하는 방법은 망 사용자의 입장에서 응답시간을 보장해 주어 쉐이핑(shaping)에 의한 전송로의 효율적인 사용이 이루지도록 하면서 큐잉, 즉 버퍼링 지연 시간에 의해 응답 시간이 지나치게 느려져 클레임(claim)이 걸리는 것을 방지할 수 있다. 여러가지 프로토콜에서도 응답 시간이 지나치게 느려지면 응답으로 수신된 프레임을 드롭시키거나 응용 프로그램 자체에서 망에 문제가 발생하였다고 판단하여 클로즈(close)하곤 한다. 예를 들어, NTP(Network Time Protocol)와 같은 경우 NTP 서버로부터 전송받은 프레임의 시간이 자신의 시간과 비교하여 정해진 범위를 벗어나면 NTP 데몬 자체가 동작을 멈추도록 설정되어 있다.
사용자나 현재 동작하는 프로토콜에 의해서 허용할 수 있는 최대 지연시간을 LRTT(Longest Round Trip Time)라고 하고, 프레임의 전송 중 거칠 수 있는 최대의 홉(hop) 수를 H 라고 한다. 또한, 모든 홉에서 동일한 시간의 큐잉 지연시간을 가진다고 가정할 때, 입력포트(10a, 10b)로 수신된 프레임이 출력포트(60a, 60b)를 통해 전송되어 나가는데 소요될 수 있는 최대 허용 지연시간(Maximum Allowed Delay)은 수학식 1에 의해 산출될 수 있다.
여기서, 홉 당 최대 지연시간을 다시 2로 나눈 것은 최대 지연시간이 프레임이 전송되는데 걸리는 시간과 응답이 돌아오는데 걸리는 시간을 모두 포함하기 때문이다.
수학식 1에 의해 한 방향으로 전송되는 프레임이 현재의 시스템에서 소요할 수 있는 최대의 시간이 산출되는데, 결국 라인 속도로 서비스가 이루어지고 있는 시스템에서는 최대 허용 지연시간 자체가 해당 프레임이 서비스받을 순서가 될 때까지 소요되는 큐잉 지연시간이 된다.
또한, 현재 시스템(100)에서는 입력포트(10a, 10b)로 수신된 프레임이 출력포트(60a, 60b)로 전송되어 나가기 위해서 큐잉이 이루어질 때, 큐잉을 위한 버퍼크기와 출력포트로 서비스를 받고 있는 전송률에 따라 버퍼에 마지막 공간에 채워진 프레임이 서비스를 받는 데까지 걸리는 지연시간이 결정된다. 예를 들어, 버퍼의 크기를 비트 단위로 10M 비트라고 하고 서비스되고 있는 전송률을 1Mbps라고 한다면 맨 마지막에 큐잉된 프레임이 서비스 받을 때까지 걸리는 시간은 10초가 된다. 이와 같은 포트에서의 최대 지연시간(Maximum Queuing Delay)을 수식으로 표현하면 수학식 2와 같다.
이때, 포트에서의 최대 지연시간(Maximum Queuing Delay)이 최대 허용 지연시간보다는 크지 않아야 하므로 수학식 3 과 수학식 4 가 도출된다.
따라서, 이로부터 버퍼 사이즈는 수학식 5와 같이 산출된다.
따라서, 프레임의 큐잉을 위하여 버퍼의 크기를 설정할 때, (전송률×LRTT) /(2×H)를 넘지 않도록 하여야 한다.
실제로, 현재 시스템(100)에 트래픽이 수신되어 전송되기까지 걸리는 최대 허용 지연시간과 서비스하고자 하는 전송률을 망 운용자가 직접 설정하면 자동으로 최대 버퍼크기를 시스템 내에서 계산하여 사용하게 된다. 구체적으로, 망 운용자가 최대 허용 지연시간과 전송률을 제어하는 알고리즘인 토큰버켓 알고리즘(Token Bucket Algorithm)의 전송률(Transmit Rate)과 버켓 사이즈(Bucket Size)를 설정하도록 한다.
현재 시스템(100)에서 외부 램 영역이나 칩 내부 메모리에서 트래픽을 위한 버퍼로 할당한 메모리 크기를 전체 버퍼사이즈(Total Buffer Memory Size)라고 하면, 최대 버퍼사이즈는 전체 버퍼사이즈를 넘지 않는 범위 내에서 최대값으로 잡는 것이 최상의 전송률을 보장할 수 있으며 수학식 6과 같이 산출된다.
수학식 6에 의해 산출된 값은 최대 버퍼사이즈의 레지스터 값으로 설정한다.
2. 포즈 프레임(PAUSE Frame) 전송
802.3x를 이용하여 흐름제어를 함에 있어서 혼잡상태가 발생하였다고 판단하는 시점에 따라 프레임이 드롭될 수 있다. 종래의 흐름제어를 위한 큐잉과 스케줄링에 관련된 여러가지 방법들은 M개의 입력포트와 N개의 출력포트를 가진 일반적인 환경을 위해서 제안된 방법으로 하나의 입력 포트와 하나의 출력 포트를 가진 시스템에서는 여러가지 문제점이 있어 적용이 곤란하다. 실제로 포즈 프레임이 목적지에 도달하기 위해서 전송로에 지나가고 있는 동안에도 트래픽은 계속해서 전송되고 있으며, 이렇게 계속 전송되고 있는 트래픽을 하나도 드롭시키지 않기 위하여는 버퍼에 이들을 위한 여분의 공간이 있는 시점에 혼잡상태가 발생할 것을 판단하여 흐름제어를 해야 한다. 도 1에서는 포즈 프레임 전송을 통한 흐름제어 경로를 일점쇄선으로 표시하였다.
802.3x에 의한 흐름제어는 두 시스템 간에 이루어지며, 도 1의 경우에는 현재 시스템(100)과 전송시스템 (200a 또는 200b) 간에 이루어진다. 이때, 현재 시스템에서 전송한 데이터를 전송시스템에서 수신할 때까지 걸리는 시간을 전파 지연시간(Propagation Delay)이라 하고, 현재 시스템의 입력포트(10a, 10b)로 트래픽이 전송되어 들어올 수 있는 최대 속도를 수신률(Receive Rate), 현재 시스템의 츨력포트(60a, 60b)로 트래픽이 전송되어 나가는 속도를 전송률(Transmit Rate)이라 한다. 이때, 흐름제어가 필요한 경우는 수신시스템의 수신률이 전송률보다 큰 경우이다.
포즈 프레임의 전송시기를 결정함에 있어서, 전송시스템으로부터 전송되는 프레임을 하나도 손실시키지 않기 위해서는 포즈 프레임이 전송시스템까지 전송되는데 걸리는 시간, 즉 전파 지연시간(Propagation Delay) 동안 전송시스템으로부터 전송되어 들어오는 트래픽을 수용할 수 있는 여분의 공간이 버퍼(30)에 있는 시점에 포즈 프레임을 전송하여야 한다. 이를 위해 상기 트래픽의 양을 파악하여야 하는데, 이는 수학식 7에 의해 산출된다.
트래픽은 포즈 프레임의 전송시점을 판단하기 위한 최소 버퍼사이즈가 되며 그 값을 레지스터에 기록한다. 최소 버퍼사이즈는 흐름제어가 일어나지 않는 임계치의 버퍼 크기가 된다. 일반적으로, 전파 지연시간은 이더넷에서 거의 차이가 없으므로, 포즈 프레임이 전송되는 동안 수신되는 트래픽을 위해 여분으로 남겨 놓아야 하는 버퍼의 크기인 버퍼 가용용량(Current Available Buffer Size)은 입력포트(10a, 10b)의 수신률에 의해 영향을 받는다. 여기서 수신률과 전송률은 망 운용자에 의해 설정되며 수신률을 특별히 설정하지 않으면 전송로 속도로 간주한다. 또한, 전파 지연시간도 망 운용자에 의해 설정된다.
포즈 프레임을 전송하는 시점에 전송로 상에 존재하는 트래픽을 모두 수용하기 위하여는 버퍼 가용용량이 최소 버퍼사이즈(Minumum Buffer Size) 이하의 값이 되었을 때, 즉 현재 버퍼 가용용량의 레지스터 값이 최소 버퍼사이즈 레지스터 값 이하가 되었을 때 포즈 프레임을 전송하여 흐름제어를 하도록 한다.
포즈 프레임 전송을 통한 흐름제어 과정은 도 2를 통해 상세히 설명한다.
도 2는 포즈 프레임 전송을 통한 흐름제어 과정을 도시한 흐름도이다. 도 2를 참조하여 포즈 프레임 전송에 의한 흐름제어 과정을 설명하면 이하와 같다.
전송시스템(200a, 200b)으로부터 수신시스템인 현재 시스템(100)의 입력포트 (10a, 10b)로 프레임이 전송되고(ST100), 수신된 프레임은 현재 시스템의 버퍼(30)에 저장되어 중앙처리장치(50) 또는 별도의 처리모듈에 의해 처리된다(ST110). 버퍼 컨트롤러(20)는 버퍼의 현재 가용용량을 체크하여(ST120) 현재 가용용량을 최소 버퍼사이즈와 비교한다(ST130). 버퍼 컨트롤러는 트래픽을 버퍼로 보낼 때 항상 현재 버퍼 가용용량을 검사하여 흐름제어를 할 것인지 여부를 판단한다.
만일, 버퍼(30)의 현재 가용용량이 최소 버퍼사이즈 이하일 경우 버퍼의 용량 부족으로 인한 프레임의 손실이 발생할 수 있으므로 포즈 프레임을 전송하도록 한다.
버퍼 컨트롤러(20)는 맥 컨트롤러(70)의 흐름제어 모듈(74)에 포즈 프레임을 전송할 것을 요청한다. 흐름제어 모듈은 포즈 프레임에 기록한 포즈 타임을 포즈 타이머(72)에 설정한 뒤(ST140), 포즈 타이머를 시작하고 포즈 프레임을 전송한다 (ST150).
전송된 포즈 프레임은 전송시스템(200a, 200b)에 의해 수신되며 전송시스템은 포즈 프레임에 기록된 포즈 타임동안 프레임의 전송을 중단한다(ST160). 맥 컨트롤러(70)로부터 전송된 포즈 프레임이 전송시스템에 수신되는 사이에 이미 전송된 프레임은 버퍼(30)의 현재 가용용량이 수용할 수 있는 범위이므로 프레임의 손실이 발생되지 않는다.
현재 시스템(100)은 포즈 프레임의 전송 중 전송시스템(200a, 200b)으로부터 이미 전송된 프레임을 수신하고 버퍼(30)에 저장하고 처리하여 출력포트(60a, 60b)를 통하여 전송한다(ST170).
포즈 타이머(72)에 설정된 포즈 타임이 종료(ST180)되면 흐름제어 모듈(74)은 버퍼 컨트롤러(20)로 이벤트를 전송하여 포즈 타임이 종료되었음을 알린다 (ST190). 버퍼 컨트롤러(20)는 다시 버퍼(30)의 가용용량을 체크하고 가용용량이 부족할 경우 포즈 프레임을 전송하여 상기의 흐름제어 과정을 반복한다. 따라서, 전송시스템(200a, 200b)과 현재 시스템(100) 간의 전파 지연속도(Propagation Delay)에 의한 프레임 손실을 방지할 수 있다. 또한, 포즈 타이머가 0이 아닌 동안에는 혼잡상태가 일어나더라도 포즈 프레임을 전송하지 않는다.
이때, 전송시스템(200a, 200b)은 포즈 프레임에 기록된 포즈 타임이 경과되면 다시 프레임을 전송하게 된다. 한편, 전송시스템은 포즈 타이머(72)의 시작 시점보다 포즈 프레임이 전송되는데 소요된 전파 지연시간(Propagation Delay) 만큼 경과된 시점부터 포즈 타임을 체크하게 되므로, 포즈 타이머의 종료시점보다 전파 지연시간 만큼의 시간 뒤에 프레임의 전송을 재개하게 된다. 즉, 전파 지연시간을 T라고 하고 포즈 타임을 P라고 할 때, 전송시스템은 맥 컨트롤러에서 최초의 포즈 프레임이 전송된 시점으로부터 T+P의 시간이 경과된 때에 프레임의 전송을 재개하게 된다. 그러나, 현재 시스템(100)에서는 P의 시간이 경과된 시점에서 버퍼 (30)의 용량를 체크하므로, 다시 포즈 프레임을 전송한다 하여도 최초 포즈 프레임의 전송시점으로부터 P+T의 시간, 즉 전송시스템이 프레임의 전송을 재개하는 시점에 두번째 포즈 프레임이 수신되도록 할 수 있다. 따라서, 현재 시스템의 버퍼에 가용용량이 부족하여 포즈 프레임을 재전송하더라도, 전송시스템이 프레임의 전송을 재개하는 시점에 포즈 프레임이 전송시스템에 수신되므로 프레임의 전송을 다시 중단시킬 수 있다. 따라서, 전송시스템으로부터 전송되는 프레임을 전혀 손실하지 않을 수 있다.
상기 일련의 과정을 반복함으로써 버퍼가 확보되지 않는 동안에는 전송시스템에 대하여 프레임 전송을 중지하라는 요청이 반복적으로 이루어지게 되고, 이에 따라 전송률을 제한할 수 있다. 따라서, 제한된 전송률을 인지하지 못하는 시스템에서도 프레임의 드롭으로 인한 실제 전송률의 저하현상을 방지할 수 있다.
이상 설명한 바대로, 본 발명은 버스트 트래픽을 위한 적절한 크기의 버퍼를 잡아주고 포즈 프레임의 나갈 수 있는 최적의 시간을 선택하여 흐름 제어를 함으로써, 응답 시간을 보장해 주어 응답 시간을 중요시하는 여러 프로토콜이나 응용 프로그램에 응답시간 지연으로 인한 영향을 줄일 수 있고 프레임의 손실을 방지할 수있는 현저한 효과가 있다.
특히, 프레임의 드롭에 의해 아주 큰 성능저하가 발생되는 TCP에 대한 성능 저하를 방지할 수 있어 종래의 방법으로는 제대로 된 흐름제어를 못하여 서비스를 제공할 수 없었던 메트로 이더넷 환경에서 기업망에 대한 서비스를 가능하게 할 수 있다.
또한, 망 사업자들의 입장에서는 저렴한 메트로 환경을 많은 기업들에게 제공할 수 있다.
본 발명의 바람직한 실시례가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이해되어져야 한다.

Claims (7)

  1. 전송시스템으로부터 전송되는 프레임을 수신하는 수신시스템에 구비되어 흐름제어를 수행하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼에 있어서,
    상기 프레임이 소정의 수신률로 수신되는 입력포트;
    처리된 프레임이 소정의 전송률로 전송되어 나가는 출력포트;
    상기 입력포트에 의해 수신된 프레임을 중앙처리장치 또는 소정의 처리모듈에 의해 처리되기 전에 임시 저장하며, 상기 입력포트로 수신된 프레임이 상기 출력포트로 전송되는데 걸리는 시간인 최대 허용 지연시간과 상기 출력포트의 전송률을 승산하여 산출되는 최대 버퍼사이즈로 용량이 설정된 버퍼;
    상기 입력포트로 수신된 프레임을 상기 버퍼로 전송하여 저장하고, 상기 버퍼의 사용가능한 용량인 현재 가용용량을 체크하여 상기 현재 가용용량이 소정의 기준값 이하이면 흐름제어 신호를 전송하는 버퍼 컨트롤러; 및
    상기 버퍼 컨트롤러로부터 상기 흐름제어 신호를 수신하여 흐름제어를 수행하는 맥 컨트롤러를 구비하는 것을 특징으로 하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼.
  2. 제 1 항에 있어서,
    상기 버퍼의 최대사이즈가,
    상기 수신시스템에서 버퍼의 크기로 할당된 전체 버퍼사이즈 이하인 것을 특징으로 하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼.
  3. 전송시스템으로부터 전송되는 프레임을 수신하는 수신시스템에 구비되어 흐름제어를 수행하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼에 있어서,
    상기 프레임이 소정의 수신률로 수신되는 입력포트;
    처리된 프레임이 소정의 전송률로 전송되어 나가는 출력포트;
    상기 입력포트에 의해 수신된 프레임을 중앙처리장치 또는 소정의 처리모듈에 의해 처리되기 전에 임시 저장하는 버퍼;
    상기 입력포트로 수신된 프레임을 상기 버퍼로 전송하여 저장하고, 상기 버퍼의 사용가능한 용량인 현재 가용용량을 체크하여, 상기 현재 가용용량이 상기 전송시스템과 상기 수신시스템 중 일방에서 전송된 프레임이 다른 일방에 수신되는데 소요되는 시간인 전파 지연시간과 상기 입력포트의 수신률을 승산하여 산출되는 최소 버퍼사이즈 이하인 경우 흐름제어 신호를 전송하는 버퍼 컨트롤러; 및
    상기 버퍼 컨트롤러로부터 상기 흐름제어 신호를 수신하여 흐름제어를 수행하는 맥 컨트롤러를 구비하는 것을 특징으로 하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼.
  4. 제 3 항에 있어서,
    상기 맥 컨트롤러가,
    소정의 설정된 시간동안 작동하는 포즈 타이머; 및
    상기 흐름제어 신호를 수신하여, 상기 프레임의 전송 중단시간인 포즈 타임이 기록된 포즈 프레임을 상기 전송시스템에 전송하고, 상기 포즈 타임을 상기 포즈 타이머에 설정하는 흐름제어 모듈을 구비하는 것을 특징으로 하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼.
  5. 제 4 항에 있어서,
    상기 흐름제어 모듈이,
    상기 포즈 타이머에 설정된 상기 포즈 타임이 종료되면 상기 버퍼 컨트롤러에 포즈타임 종료신호를 전송하고,
    상기 버퍼 컨트롤러가,
    상기 포즈타임 종료신호를 수신하여, 상기 버퍼의 현재 가용용량을 체크하는 것을 특징으로 하는 이더넷의 흐름제어를 위한 트래픽 쉐이퍼.
  6. 전송시스템으로부터 전송되는 프레임을 수신하는 수신시스템에서 혼잡상태 발생으로 인한 상기 프레임의 손실을 방지하는 흐름제어 방법으로서,
    상기 프레임을 수신하여 버퍼에 저장하는 제 1단계;
    상기 버퍼의 현재 사용가능한 용량인 현재 가용용량을 체크하는 제 2단계;
    상기 버퍼의 현재 가용용량이, 상기 프레임이 수신되는 입력포트의 수신률과 상기 전송시스템과 상기 수신시스템 간에 프레임이 전송되는데 소요되는 시간인 전파지연시간을 승산하여 산출된 최소 버퍼사이즈 이하이면 흐름제어 신호를 발생하는 제 3단계;
    상기 전송시스템으로 상기 프레임의 전송중단 시간인 포즈 타임이 기록된 포즈 프레임을 전송하는 제 4단계; 및
    소정의 설정된 시간동안 동작하는 포즈 타이머에 상기 포즈 타임을 설정하는 제 5단계를 포함하고,
    상기 제 4단계 및 상기 제 5단계는 동시에 수행되는 것을 특징으로 하는 흐름제어 방법.
  7. 제 6항에 있어서,
    상기 포즈 타이머에 설정된 상기 포즈 타임이 종료되면 포즈타임 종료신호를 발생하는 제 6단계;
    상기 버퍼의 현재 가용용량을 다시 체크하고, 상기 현재 가용용량이 상기 최소 버퍼사이즈 이하이면 상기 흐름제어 신호를 다시 발생하는 제 7단계; 및
    상기 전송시스템으로 상기 포즈 프레임을 다시 전송하고, 상기 포즈 타이머에 상기 포즈 타임을 설정하는 제 8단계를 더 포함하는 것을 특징으로 하는 흐름제어 방법.
KR1020020075166A 2002-11-29 2002-11-29 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법 KR20040047088A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020075166A KR20040047088A (ko) 2002-11-29 2002-11-29 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020075166A KR20040047088A (ko) 2002-11-29 2002-11-29 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법

Publications (1)

Publication Number Publication Date
KR20040047088A true KR20040047088A (ko) 2004-06-05

Family

ID=37342535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020075166A KR20040047088A (ko) 2002-11-29 2002-11-29 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법

Country Status (1)

Country Link
KR (1) KR20040047088A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724667B2 (en) 2005-12-08 2010-05-25 Electronics And Telecommunications Research Institute Ethernet line card and method of providing various services using the same
KR101106697B1 (ko) * 2005-08-23 2012-01-18 삼성전자주식회사 이더넷에서 흐름 제어 장치 및 방법
US11494118B2 (en) 2019-08-29 2022-11-08 SK Hynix Inc. Storage device and operating method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101106697B1 (ko) * 2005-08-23 2012-01-18 삼성전자주식회사 이더넷에서 흐름 제어 장치 및 방법
US7724667B2 (en) 2005-12-08 2010-05-25 Electronics And Telecommunications Research Institute Ethernet line card and method of providing various services using the same
US11494118B2 (en) 2019-08-29 2022-11-08 SK Hynix Inc. Storage device and operating method thereof

Similar Documents

Publication Publication Date Title
US5404353A (en) Dynamic defer technique for traffic congestion control in a communication network bridge device
US7616573B2 (en) Fair WRED for TCP UDP traffic mix
US10218620B2 (en) Methods and nodes for congestion control
US6684273B2 (en) Auto-adaptive jitter buffer method for data stream involves comparing delay of packet with predefined value and using comparison result to set buffer size
EP0920235B1 (en) Congestion management in a multi-port shared memory switch
KR101451150B1 (ko) 헤드룸 감소
EP2563034B1 (en) Dynamic Bandwidth Re-Allocation
CN108989235B (zh) 一种报文转发控制方法及装置
CN112104562B (zh) 拥塞控制方法及装置、通信网络、计算机存储介质
JP2009207208A (ja) Tcp接続の性能改善方法
JPH06244843A (ja) 通信回路網ブリッジ装置における交通混雑制御の方法及び装置
JP2002319968A (ja) フロー制御システムおよび方法
JP2008518552A (ja) 粗細試験期間を使用したネットワーク・パケットの経験的スケジューリング法
US8472316B2 (en) Utilization of data links
US6771601B1 (en) Network switch having source port queuing and methods, systems and computer program products for flow level congestion control suitable for use with a network switch having source port queuing
Lautenschlaeger et al. Global synchronization protection for bandwidth sharing TCP flows in high-speed links
JP2007506364A (ja) ネットワーク・パケットの経験的スケジュール設定方法
US20060209687A1 (en) Communication rate control method and device
EP1931068A1 (en) Method of adaptively dejittering packetized signals buffered at the receiver of a communication network node
US6912224B1 (en) Adaptive playout buffer and method for improved data communication
US7203171B1 (en) Ingress discard in output buffered switching devices
KR20040047088A (ko) 이더넷의 흐름제어를 위한 트래픽 쉐이퍼 및 흐름제어 방법
CA2427633C (en) Latency management for a network
JP3963321B2 (ja) データ単位を処理する装置及びデータ単位処理装置を制御する方法
KR100772192B1 (ko) 대역과 지연의 곱이 큰 네트워크에서 혼잡 제어 방법 및장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application