KR20090042985A - 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 기억한 컴퓨터 판독 가능한 기억 매체 - Google Patents

데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 기억한 컴퓨터 판독 가능한 기억 매체 Download PDF

Info

Publication number
KR20090042985A
KR20090042985A KR1020097005806A KR20097005806A KR20090042985A KR 20090042985 A KR20090042985 A KR 20090042985A KR 1020097005806 A KR1020097005806 A KR 1020097005806A KR 20097005806 A KR20097005806 A KR 20097005806A KR 20090042985 A KR20090042985 A KR 20090042985A
Authority
KR
South Korea
Prior art keywords
credit
data packet
capacity
transmission
stored
Prior art date
Application number
KR1020097005806A
Other languages
English (en)
Other versions
KR101227770B1 (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 후지쯔 가부시끼가이샤
Publication of KR20090042985A publication Critical patent/KR20090042985A/ko
Application granted granted Critical
Publication of KR101227770B1 publication Critical patent/KR101227770B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

송신 버퍼와 수신 버퍼를 구비하여, 데이터 패킷을 송수신하는 데이터 패킷 송수신 시스템에 있어서, 수신 버퍼의 용량이 되도록 미사용 영역을 생기게 하는 일없이 수신 버퍼의 자원을 유효하게 활용하기 위해서, 송수신되는 데이터 패킷의 용량에 따라서, 수신 버퍼가 수신할 수 있는 데이터 패킷의 수를 동적으로 변화시킨다. 이로써, 수신 버퍼의 오버플로에 의한 데이터 패킷의 폐기를 방지하면서, 종래 제어하는 경우보다도 적은 자원으로 종래와 같은 성능을 내는 것이 가능하게 된다.

Description

데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램{DATA PACKET TRANSMITTING/RECEIVING SYSTEM, DATA PACKET TRANSMITTING/RECEIVING METHOD AND DATA PACKET TRANSMITTING/RECEIVING PROGRAM}
본 발명은 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램에 관한 것이다.
종래부터, 송신측의 송신 버퍼에서 수신측의 수신 버퍼로 데이터 패킷을 송신하는 시스템에 있어서는, 수신 버퍼가 오버플로하여 데이터 패킷이 폐기되어 버리지 않도록, 수신 버퍼에 있어서의 데이터 패킷의 독출 상황을 수신측에서 송신측으로 전하여, 송신측에서 데이터 패킷의 송신을 제어하는 것이 일반적으로 이루어지고 있다.
예컨대, 특허문헌 1(일본 특허 공개 평9-135270호 공보)에서는, 수신 버퍼에서 저장할 수 있는 큐 단수(패킷 수)를 데이터 패킷의 최장 사이즈(최대 용량)로부터 미리 고정적으로 결정하여, 이 고정적으로 결정된 큐 단수를 이용하여 데이터 패킷의 송신을 제어하는 기술이 개시되어 있다. 이하에, 도 22를 이용하여, 이 종래 기술을 구체적으로 설명한다. 도 22는 종래 기술에 따른 데이터 패킷 송신 제어 시스템의 개요와 특징을 설명하기 위한 도면이다. 한편, 여기서는, 도 22에 도시하 는 바와 같이, 수신측에 있어서의 수신 버퍼의 사이즈가 16 바이트이고, 송신측으로부터 송신되는 데이터 패킷의 최장 사이즈가 4 바이트이며, 수신 버퍼로 저장할 수 있는 큐 단수(패킷 수)로서 4개가 미리 고정적으로 결정되어 있는 예를 설명한다.
도 22에 도시하는 바와 같이, 송신측에서는, 크레디트 제어 카운터를 구비하여, 송신 버퍼로부터 데이터 패킷을 독출하여 수신측에 데이터 패킷을 송신할 때마다, 송신되는 데이터 패킷의 사이즈(데이터 용량)에 관계없이, 크레디트 제어 카운터의 값을 하나 가산한다(도 22의 (1) 참조). 한편, 수신측에서는, 송신측으로부터 데이터 패킷을 수신하면, 수신한 데이터 패킷을 수신 버퍼의 선두에서부터 채워 기록한다(도 22의 (2) 참조). 또한, 수신측에서는, 수신 버퍼로부터 데이터 패킷이 독출될 때마다, 독출되는 데이터 패킷의 사이즈에 관계없이, 송신측에 크레디트를 하나 회신한다(도 22의 (3) 참조). 그리고, 송신측에서는, 수신측으로부터 크레디트를 수신할 때마다, 크레디트의 수만큼 크레디트 제어 카운터의 값을 감산한다(도 22의 (4) 참조).
이와 같이 하여, 송신측에서는, 크레디트 제어 카운터의 값을 가감산하지만, 이 크레디트 제어 카운터에는 상기한 것과 같이, 수신 버퍼에서 저장할 수 있는 큐 단수(패킷 수)로서 4개가 미리 고정적으로 설정되어 있다. 따라서, 송신측에서는, 송신 버퍼로부터 데이터 패킷을 독출하여 수신측에 데이터 패킷을 송신하는 타이밍이 되면, 크레디트 제어 카운터의 현재 값이 고정치(4개)에 달하고 있는지 여부를 판정한다. 그리고, 송신측에서는, 크레디트 제어 카운터의 현재 값이 고정치(4개) 에 달하고 있지 않은 경우에는, 송신 버퍼로부터 데이터 패킷을 독출하여 수신측에 데이터 패킷을 송신하고, 한편, 크레디트 제어 카운터의 현재 값이 고정치(4개)에 달하고 있는 경우에는, 수신 버퍼가 데이터 패킷으로 가득 차 있을 우려가 있다고 판단하여, 데이터 패킷의 송신을 정지한다(도 22의 (5) 참조). 이러한 일련의 처리를 통하여, 특허문헌 1에서는, 수신 버퍼의 오버플로에 의한 데이터 패킷의 폐기를 방지하고 있다.
한편, 상기한 것과 같은 종래의 기술 외에, 크레디트에 의한 제어에 있어서, 수신 버퍼의 빈 용량에 따라서 크레디트를 추가로 발행함으로써, 버퍼를 링 버퍼로서 사용하는 기술도 알려져 있다(예컨대, 특허문헌 2 참조). 또한, 버퍼의 제어에 있어서, 송신 버퍼의 사용 상태에 관해서, 관리 테이블을 이용함으로써, 송신 데이터를 간단하게 관리할 수 있도록 하는 기술도 알려져 있다(예컨대, 특허문헌 3 참조).
<특허문헌 1> 일본 특허 공개 평9-135270호 공보(제2∼4페이지, 도 1∼3)
<특허문헌 2> 일본 특허 공개 2001-94613호 공보(제3∼5페이지, 도 1)
<특허문헌 3> 일본 특허 공개 평11-110315호 공보(제6∼10페이지, 도 1∼2)
(발명의 개시)
(발명이 해결하고자 하는 과제)
그러나, 상기한 종래 기술에서는, 이하에 설명하는 것과 같이, 수신 버퍼에 미사용 영역이 생기기 쉬워, 수신 버퍼로서의 자원을 유효하게 이용하지 못한다고 하는 과제가 있었다.
즉, 상기한 종래 기술에서는, 수신 버퍼에서 저장할 수 있는 큐 단수를 데이터 패킷의 최장 사이즈로부터 미리 고정적으로 결정하고 있다(상기한 예에서는 4개). 이 때문에, 도 22에 도시하는 바와 같이, 사이즈가 「4 바이트, 2 바이트, 2 바이트, 2 바이트」인 4개의 패킷이 수신 버퍼에 저장되어 있는 경우와 같이, 데이터 패킷의 최장 사이즈에 차지 않는 짧은 사이즈의 데이터 패킷이 수신 버퍼에 저장되어 있는 경우라도, 송신측의 크레디트 제어 카운터의 값이 고정치(4개)에 달하는 결과, 데이터 패킷의 송신은 정지되어 버린다. 그리고, 이러한 경우에는 수신 버퍼에 미사용 영역이 크게 생겨(상기한 예에서는 6 바이트의 미사용 영역이 생겨), 수신 버퍼로서의 자원을 유효하게 이용할 수 없다고 하는 과제가 있었다.
한편, 상기한 것과 같은 과제는, 네트워크를 통해 통신 장치 간에서 데이터 패킷을 송신하는 경우에 한정된 과제가 아니라, 예컨대, 컴퓨터 시스템 내부에 있어서 회로 간에서 데이터 패킷을 송신하는 경우 등, 송신측의 송신 버퍼에서 수신측의 수신 버퍼로 데이터 패킷을 송신하는 모든 시스템에서 마찬가지로 생기는 과제이다.
그래서, 본 발명은 상술한 종래 기술의 과제를 해결하기 위해서 이루어진 것으로, 수신 버퍼로서의 자원을 유효하게 이용할 수 있는 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 제공하는 것을 목적으로 한다.
(과제를 해결하기 위한 수단)
상술한 과제를 해결하여, 목적을 달성하기 위해서, 청구항 1에 따른 발명은, 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 데이터 패킷 송수신 시스템으로서, 상기 수신 장치는, 상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 상기 송신 장치에 있어서 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하고, 상기 송신 장치는, 상기 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하고, 상기 송신 버퍼에서 상기 수신 장치로 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고, 상기 수신 장치로부터 상기 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정한 용량에 따른 값의 크레디트를 상기 크레디트 기억 수단에 기억되어 있는 크레디트로부터 감산하여 저장하여, 상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 기초하여 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 것을 구비한 것을 특징으로 한다.
또한, 청구항 2에 따른 발명은, 상기한 발명에 있어서, 용량 특정 정보 송신 수단은, 상기 용량 특정 정보로서 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 송신 장치에 송신하고, 크레디트 가산 수단은, 상기 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고, 크레디트 감산 수단은, 상기 수신 장치로부터 수신한 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트로부터 감산하여 저장하는 것을 구비한 것을 특징으로 한다.
또한, 청구항 3에 따른 발명은, 상기한 발명에 있어서, 상기 용량 특정 정보 송신 수단은, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 상기 용량 특정 정보를 상기 송신 장치에 송신하고, 상기 크레디트 가산 수단은, 상기 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 데이터 패킷마다 구분하여 송신 순으로 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고, 상기 크레디트 감산 수단은, 상기 데이터 패킷마다 구분하여 송신 순으로 상기 크레디트 기억 수단에 기억되어 있는 크레디트 중에서 가장 오래전에 송신된 데이터 패킷의 크레디트를 감산하여 저장하는 것을 구비하는 것을 특징으로 한다.
또한, 청구항 4에 따른 발명은, 상기한 발명에 있어서, 송신 제어 수단은, 상기 데이터 패킷의 송신을 허가하는 경우에, 그 송신되는 데이터 패킷을 일의적으로 식별하는 식별 정보를 그 데이터 패킷에 부가하여 상기 수신 장치에 송신하고, 상기 용량 특정 정보 송신 수단은, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 그 데이터 패킷에 부가되어 있는 식별 정보를 상기 송신 장치에 송신하고, 상기 크레디트 가산 수단은, 상기 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 데이터 패킷마다 구분하고 상기 식별 정보를 부가하여, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고, 상기 크레디트 감산 수단은, 상기 데이터 패킷마다 구분되고 상기 식별 정보가 부가되어 상기 크레디트 기억 수단에 기억되어 있는 크레디트 중에서, 상기 수신 장치로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 감산하여 저장하는 것을 구비하는 것을 특징으로 한다.
또한, 청구항 5에 따른 발명은, 상기한 발명에 있어서, 상기 송신 제어 수단은, 상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 대하여, 상기 송신 장치로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 가산치가, 상기 수신 버퍼의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 상기 가산치가 상기 소정의 값에 달하고 있지 않은 경우에는 상기 데이터 패킷의 송신을 허가하고, 상기 가산치가 상기 소정의 값에 달하고 있는 경우에는 상기 데이터 패킷의 송신을 정지하도록 제어하는 것을 구비하는 것을 특징으로 한다.
또한, 청구항 6에 따른 발명은, 상기한 발명에 있어서, 상기 송신 제어 수단은, 상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값이, 상기 수신 버퍼의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 상기 크레디트의 값이 상기 소정의 값에 달하고 있지 않은 경우에는 상기 데이터 패킷의 송신을 허가하고, 상기 크레디트의 값이 상기 소정의 값에 달하고 있는 경우에는 상기 데이터 패킷의 송신을 정지하도록 제어하는 것을 구비하는 것을 특징으로 한다.
또한, 청구항 7에 따른 발명은, 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 데이터 패킷 송수신 방법으로서, 상기 수신 장치는, 상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 상기 송신 장치에 있어서 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 용량 특정 정보 송신 공정과, 상기 송신 장치는, 상기 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 크레디트 카운터에 기억하는 크레디트 기억 공정과, 상기 송신 버퍼로부터 상기 수신 장치에 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 크레디트 카운터에 기억되어 있는 크레디트에 가산하여 저장하는 크레디트 가산 공정과, 상기 수신 장치로부터 상기 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하여, 그 특정한 용량에 따른 값의 크레디트를 상기 크레디트 카운터에 기억되어 있는 크레디트로부터 감산하여 저장하는 크레디트 감산 공정과, 상기 크레디트 카운터에 기억되어 있는 크레디트의 값에 기초하여 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 송신 제어 공정을 포함한 것을 특징으로 한다.
또한, 청구항 8에 따른 발명은, 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 방법을 컴퓨터에 실행시키는 데이터 패킷 송수신 프로그램으로서, 상기 수신 장치로서의 컴퓨터는, 상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 상기 송신 장치에 있어서 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 용량 특정 정보 송신 순서와, 상기 송신 장치로서의 컴퓨터는, 상기 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 크레디트 카운터에 기억하는 크레디트 기억 순서와, 상기 송신 버퍼에서 상기 수신 장치로 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 크레디트 카운터에 기억되어 있는 크레디트에 가산하여 저장하는 크레디트 가산 순서와, 상기 수신 장치로부터 상기 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정한 용량에 따른 값의 크레디트를 상기 크레디트 카운터에 기억되어 있는 크레디트로부터 감산하여 저장하는 크레디트 감산 순서와, 상기 크레디트 카운터에 기억되어 있는 크레디트의 값에 기초하여 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 송신 제어 순서를 컴퓨터에 실행시키는 것을 특징으로 한다.
또한, 청구항 9에 따른 발명은, 송신 장치로부터 송신되는 데이터 패킷을 수신하는 수신 장치로서, 상기 데이터 패킷을 저장하는 수신 버퍼를 구비하여, 상기 수신 버퍼에 저장된 데이터 패킷을 독출하고, 상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 것을 구비하는 것을 특징으로 한다.
또한, 청구항 10에 따른 발명은, 상기한 발명에 있어서, 용량 특정 정보 송신 수단은, 상기 용량 특정 정보로서, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 송신 장치에 송신하는 것을 특징으로 한다.
또한, 청구항 11에 따른 발명은, 수신 버퍼를 구비하는 수신 장치에 데이터 패킷을 송신하는 송신 장치로서, 상기 수신 버퍼에 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하고, 상기 수신 장치에 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하고, 상기 수신 장치로부터 수신한, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하는 용량 특정 정보에 기초하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 크레디트 기억 수단에 기억되어 있는 크레디트로부터 감산하고, 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 기초하여 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 것을 구비하는 것을 특징으로 한다.
(발명의 효과)
청구항 1, 7 또는 8의 발명에 따르면, 수신 장치는, 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 용량 특정 정보를 송신 장치에 송신하고, 송신 장치는, 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하여, 송신 버퍼로부터 수신 장치에 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 현재의 크레디트에 가산하여 저장하고, 수신 장치로부터 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정한 용량에 따른 값의 크레디트를 현재의 크레디트로부터 감산하여 저장하여, 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 기초하여 데이터 패킷의 송신을 허가 또는 정지하도록 제어하기 때문에, 송신 장치가 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 데이터 패킷수가 아니라 데이터 용량으로 파악하여, 수신 버퍼에 저장되는 데이터 패킷 수(큐 단수)를 데이터 패킷이 오버플로하지 않는 범위에서 동적으로 조정하면서 데이터 패킷을 송신함으로써, 수신 버퍼의 미사용 영역을 줄일 수 있는 결과, 수신 버퍼로서의 자원을 유효하게 이용하는 것이 가능하다.
또한, 청구항 2의 발명에 따르면, 수신 장치는, 용량 특정 정보로서, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 송신 장치에 송신하고, 송신 장치는, 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 현재의 크레디트에 가산하여 저장하고, 송신 장치는, 수신 장치로부터 수신한 값의 크레디트를 현재의 크레디트로부터 감산하여 저장하기 때문에, 송신 장치에는, 수신 장치로부터 수신한 크레디트를 그대로 감산하는 것만으로, 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 송신 장치에 있어서의 크레디트의 증가감 처리를 간이화하는 것도 가능하다.
또한, 청구항 3의 발명에 따르면, 수신 장치는, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 용량 특정 정보를 송신 장치에 송신하고, 송신 장치는, 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 데이터 패킷마다 구분하여 송신 순으로 현재의 크레디트에 가산하여 저장하고, 송신 장치는, 데이터 패킷마다 구분하여 송신 순으로 크레디트 기억 수단에 기억되어 있는 크레디트 중에서, 가장 오래전에 송신된 데이터 패킷의 크레디트를 감산하여 저장하기 때문에, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 항상 동량의 크레디트를 수신 장치로부터 송신 장치에 송신하는 것만으로, 수신 장치에서는, 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 수신 장치에서 송신 장치로의 회신 처리를 간이화하는 것도 가능하다.
또한, 청구항 4의 발명에 따르면, 송신 장치는, 데이터 패킷의 송신을 허가하는 경우에, 그 송신되는 데이터 패킷을 일의적으로 식별하는 식별 정보를 그 데이터 패킷에 부가하여 수신 장치에 송신하고, 수신 장치는, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 그 데이터 패킷에 부가되어 있는 식별 정보를 송신 장치에 송신하고, 송신 장치는, 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 데이터 패킷마다 구분하고 식별 정보를 부가하여, 현재의 크레디트에 가산하여 저장하고, 송신 장치는, 데이터 패킷마다 구분되고 식별 정보가 부가되어 크레디트 기억 수단에 기억되어 있는 크레디트 중에서, 수신 장치로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 감산하여 저장하기 때문에, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 패킷의 식별 정보를 수신 장치에서 송신 장치로 송신하는 것만으로, 수신 장치에서는, 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 수신 장치에서 송신 장치로의 회신 처리를 간이화하는 것도 가능하다. 또한, 패킷의 식별 정보를 수신 장치에서 송신 장치로 송신하는 것만으로, 수신 버퍼로부터 독출된 데이터 패킷의 용량을 확실하게 특정할 수 있는 결과, 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 확실하게 파악하는 것도 가능하게 된다.
또한, 청구항 5의 발명에 따르면, 송신 장치는, 현재의 크레디트의 값에 대하여, 송신 장치로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 가산치가, 수신 버퍼의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 가산치가 소정의 값에 달하고 있지 않은 경우에는 데이터 패킷의 송신을 허가하고, 가산치가 소정의 값에 달하고 있는 경우에는 데이터 패킷의 송신을 정지하도록 제어하기 때문에, 이제부터 송신하고자 하고 있는 데이터 패킷이 송신된 후에 있어서의 수신 버퍼의 혼잡 상황을 추정할 수 있는 결과, 수신 버퍼에 있어서의 오버플로를 확실하게 방지하는 것도 가능하다.
또한, 청구항 6의 발명에 따르면, 송신 장치는, 현재의 크레디트의 값이 수신 버퍼의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 크레디트의 값이 소정의 값에 달하고 있지 않은 경우에는 데이터 패킷의 송신을 허가하고, 크레디트의 값이 소정의 값에 달하고 있는 경우에는 데이터 패킷의 송신을 정지하도록 제어하기 때문에, 예컨대, 수신 버퍼의 용량에서 데이터 패킷의 최장 사이즈를 뺀 값을 크레디트 카운터의 상한치로서 설정해 두고서, 이 상한치를 크레디트가 초과하는지 여부만을 판정하면서 데이터 패킷의 송신을 제어할 수 있는 결과, 패킷의 송신을 허가 또는 정지하는 처리를 간이화하는 것도 가능하다.
또한, 청구항 9의 발명에 따르면, 수신 장치는, 데이터 패킷을 저장하는 수신 버퍼를 구비하여, 수신 버퍼에 저장된 데이터 패킷을 독출하며, 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 특정할 때에 이용되는 용량 특정 정보를 송신 장치에 송신하기 때문에, 송신 장치가, 현재의 크레디트에 기초하여 데이터 패킷의 송신을 허가 또는 정지하도록 제어함으로써, 송신 장치가 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 데이터 패킷수가 아니라 데이터 용량으로 파악하여, 수신 버퍼에 저장되는 데이터 패킷 수(큐 단수)를 데이터 패킷이 오버플로하지 않는 범위에서 동적으로 조정하면서 데이터 패킷을 송신함으로써, 수신 버퍼의 미사용 영역을 줄일 수 있는 결과, 수신 버퍼로서의 자원을 유효하게 이용하는 것이 가능하다.
또한, 청구항 10의 발명에 따르면, 수신 장치는, 용량 특정 정보로서, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 송신 장치에 송신하기 때문에, 송신 장치가, 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 현재의 크레디트에 가산하여 저장하고, 송신 장치가, 수신 장치로부터 수신한 값의 크레디트를 현재의 크레디트로부터 감산하여 저장함으로써, 송신 장치에서는, 수신 장치로부터 수신한 크레디트를 그대로 감산하는 것만으로, 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 송신 장치에 있어서의 크레디트의 증가감 처리를 간이화하는 것도 가능하다.
또한, 청구항 11의 발명에 따르면, 송신 장치는, 수신 버퍼에 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하여, 수신 장치에 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 현재의 크레디트에 가산하고, 수신 장치로부터 수신한, 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하는 용량 특정 정보에 기초하여, 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 현재의 크레디트로부터 감산하여, 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 기초하여, 데이터 패킷의 송신을 허가 또는 정지하도록 제어하기 때문에, 수신 장치가, 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 용량 특정 정보를 송신 장치에 송신함으로써, 송신 장치가 수신 버퍼에 있어서의 데이터 패킷의 혼잡 상황을 데이터 패킷수가 아니라 데이터 용량으로 파악하여, 수신 버퍼에 저장되는 데이터 패킷 수(큐 단수)를 데이터 패킷이 오버플로하지 않는 범위에서 동적으로 조정하면서 데이터 패킷을 송신함으로써, 수신 버퍼의 미사용 영역을 줄일 수 있는 결과, 수신 버퍼로서의 자원을 유효하게 이용하는 것이 가능하다.
도 1은 실시예 1에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명하기 위한 도면이다.
도 2는 실시예 1에 있어서의 데이터 패킷 송수신 시스템의 구성을 도시하는 블록도이다.
도 3은 실시예 1에 있어서의 패킷 송신시의 처리를 도시하는 흐름도이다.
도 4는 실시예 1에 있어서의 크레디트 수신시의 처리를 도시하는 흐름도이다.
도 5는 실시예 1에 있어서의 크레디트 송신시의 처리를 도시하는 흐름도이다.
도 6은 실시예 2에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명하기 위한 도면이다.
도 7은 실시예 2에 있어서의 패킷 송수신 시스템의 구성을 도시하는 블록도 이다.
도 8은 실시예 2에 있어서의 크레디트 가산시의 처리를 도시하는 개념도이다.
도 9는 실시예 2에 있어서의 크레디트 감산시의 처리를 도시하는 개념도이다.
도 10은 실시예 2에 있어서의 패킷 송신시의 처리를 도시하는 흐름도이다.
도 11은 실시예 2에 있어서의 크레디트 수신시의 처리를 도시하는 흐름도이다.
도 12는 실시예 2에 있어서의 크레디트 송신시의 처리를 도시하는 흐름도이다.
도 13은 실시예 3에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명하기 위한 도면이다.
도 14는 실시예 3에 있어서의 패킷 송수신 시스템의 구성을 도시하는 블록도이다.
도 15는 실시예 3에 있어서의 크레디트 가산시의 처리를 도시하는 개념도이다.
도 16은 실시예 3에 있어서의 크레디트 감산시의 처리를 도시하는 개념도이다.
도 17은 실시예 3에 있어서의 패킷 송신시의 처리를 도시하는 흐름도이다.
도 18은 실시예 3에 있어서의 크레디트 수신시의 처리를 도시하는 흐름도이 다.
도 19는 실시예 3에 있어서의 식별 정보 송신시의 처리를 도시하는 흐름도이다.
도 20은 본 발명을 이용한 컴퓨터 시스템의 예를 도시하는 도면이다.
도 21은 실시예 1에 있어서의 데이터 패킷 송수신 시스템의 프로그램을 도시하는 도면이다.
도 22는 종래 기술에 따른 데이터 패킷 송신 제어 시스템의 개요와 특징을 설명하기 위한 도면이다.
<부호의 설명>
100 : 송신 장치 110 : 데이터 입력부
120 : 송신 버퍼 130 : 송신 버퍼 제어부
131 : 패킷 송신 제어부 132 : 크레디트 가산부
133 : 크레디트 카운터부 134 : 크레디트 감산부
200 : 수신 장치 210 : 수신 버퍼
220 : 데이터 출력부 230 : 수신 버퍼 제어부
231 : 크레디트 송신부
(발명을 실시하기 위한 최선의 형태)
이하에 첨부 도면을 참조하여, 본 발명에 따른 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램의 실시예를 상세히 설명 한다. 한편, 이하의 실시예 1에서는, 실시예 1에 따른 데이터 패킷 송수신 시스템의 개요 및 특징, 데이터 패킷 송수신 시스템의 구성 및 처리 흐름과 효과를 순차 설명한다.
<실시예 1>
[데이터 패킷 송수신 시스템의 개요 및 특징]
우선 맨 처음에, 도 1을 이용하여 실시예 1에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명한다. 도 1은 실시예 1에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명하기 위한 도면이다.
도 1에 도시하는 바와 같이, 실시예 1에 따른 데이터 패킷 송수신 시스템은, 송신 버퍼(120)를 구비하는 송신 장치(100)에서 수신 버퍼(210)를 구비하는 수신 장치(200)로 데이터 패킷을 송신하는 데이터 패킷 송수신 시스템이다. 그리고 이러한 개요를 갖는 데이터 패킷 송수신 시스템은 이하에 설명하는 것과 같이, 수신 버퍼(210)로서의 자원을 유효하게 이용하는 것이 가능하다는 점에 주된 특징이 있다.
도 1에 예시하는 것과 같이, 송신 장치(100)는, 수신 버퍼(210)의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하는 크레디트 카운터부(133)를 갖고 있다. 여기서, 송신 장치(100)는, 크레디트 카운터부(133)의 크레디트치의 상한치로서, 수신 장치(200)의 수신 버퍼(210)의 용량에 대응하는 크레디트의 값(예컨대 「16」)을 설정한다. 이 때문에, 송신 장치(100)는 크레디트 카운터부(133)의 나머지 크레디트치로부터 수신 버퍼(210)의 빈 용량을 얻을 수 있다.
여기서, 송신 장치(100)는, 송신 버퍼(120)로부터 데이터 패킷을 수신 장치(200)의 수신 버퍼(210)에 송신하면, 송신된 데이터 패킷의 용량에 따른 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트에 가산하여 저장한다(도 1의 (1) 참조). 예컨대, 도 1에 도시하는 바와 같이, 송신 장치(100)가 2 바이트의 데이터 패킷을 송신하면, 크레디트「2」를 크레디트 카운터부(133)의 크레디트치에 가산하고, 1 바이트의 데이터 패킷을 송신하면, 크레디트「1」을 크레디트 카운터부(133)의 크레디트치에 가산한다.
한편, 수신 장치(200)는, 송신 장치(100)로부터 송신된 데이터 패킷을 수신 버퍼(210)로 수신한다(도 1의 (2) 참조). 그 후, 수신 장치(200)는, 상기 수신한 데이터 패킷을 데이터 패킷이 수신 버퍼(210)에 저장된 순서로 오래된 데이터 패킷부터 독출하면, 수신 버퍼(210)로부터 독출된 데이터의 용량에 대응하는 크레디트를 송신 장치(100)에 송신한다(도 1의 (3) 참조). 예컨대, 수신 장치(200)는, 수신 버퍼(210)로부터 1 바이트의 데이터 패킷을 독출하면, 크레디트「1」을 송신 장치(100)에 송신하고, 2 바이트의 데이터 패킷을 독출하면, 크레디트「2」를 송신 장치(100)에 송신하고, 3 바이트의 데이터 패킷을 독출하면, 크레디트「3」을 송신 장치(100)에 송신한다.
또한, 송신 장치(100)는, 상기한 수신 장치(200)가 송신한 크레디트를 수신하면, 수신한 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트치로부터 감산하여 저장한다(도 1의 (4) 참조). 예컨대, 송신 장치(100)가, 크레디트「1」을 수신하면, 크레디트「1」을 크레디트 카운터부(133)의 크레디트치로부터 감산 하고, 크레디트「2」를 수신하면, 크레디트「2」를 크레디트 카운터부(133)의 크레디트치로부터 감산하고, 크레디트「3」을 수신하면, 크레디트「3」을 크레디트 카운터부(133)의 크레디트치로부터 감산한다.
그리고 송신 장치(100)는, 크레디트 카운터부(133)에 기억되어 있는 크레디트치에 기초하여 데이터 패킷의 송신을 허가 또는 정지하도록 제어한다. 구체적으로는, 크레디트 카운터부(133)에 기억되어 있는 크레디트치에 대하여, 송신 장치(100)로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 크레디트치의 가산치가, 수신 버퍼(210)의 용량으로부터 정해지는 소정의 값(상한치)에 달하고 있는지 여부를 판정하여, 상기한 크레디트치의 가산치가 상한치에 달하고 있지 않은 경우에는 데이터 패킷의 송신을 허가하고, 크레디트치의 가산치가 상한치에 달하고 있는 경우에는 데이터 패킷의 송신을 정지하도록 제어한다.
예컨대, 크레디트 카운터부(133)의 상한치가 16인 경우, 현재의 크레디트치가 「10」이고, 송신하는 데이터 패킷의 용량에 따른 크레디트치가 「2」라면, 크레디트치의 가산치는 「12」가 되어, 상한치인 「16」에 달하고 있지 않기 때문에, 송신 장치(100)는 송신을 허가한다. 또한, 현재의 크레디트치가 「12」이고, 송신하는 데이터 패킷의 용량에 따른 크레디트치가 「1」이라면, 크레디트의 가산치는 「13」이 되어, 송신 장치(100)는 송신을 허가한다. 한편, 현재의 크레디트치가 「13」이고, 송신하는 데이터 패킷의 용량에 따른 크레디트치가 「4」라면, 크레디트의 가산치는 「17」이 되어, 상한치인 「16」에 달해 버리기 때문에, 송신 장 치(100)는 송신을 정지한다(도 1의 (5) 참조).
이와 같은 점에서, 데이터 패킷 송수신 시스템은, 송신 장치(100)가 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 데이터 패킷수가 아니라 데이터 용량으로 파악하여, 수신 버퍼(210)에 저장되는 데이터 패킷 수(큐 단수)를 데이터 패킷이 오버플로하지 않는 범위에서 동적으로 조정하면서 데이터 패킷을 송신 함으로써, 수신 버퍼(210)의 미사용 영역을 줄일 수 있는 결과, 수신 버퍼(210)로서의 자원을 유효하게 이용하는 것이 가능하다.
한편, 상기한 송신 장치(100) 및 수신 장치(200)로서는, 휴대전화, PDA, 퍼스널 컴퓨터 등, 네트워크나 유선, 무선(적외선 통신, 블루투스 등)을 통해 정보를 패킷으로 송신 또는 수신하는 전자기기 또는 동일한 전자기기 내의 회로나 칩 등, 전자기기 내의 버스나 배선을 통해 정보를 패킷으로 송신 또는 수신하는 전자 회로이다.
[데이터 패킷 송수신 시스템의 구성]
이어서, 도 2를 이용하여, 실시예 1에 따른 데이터 패킷 송수신 시스템의 구성을 설명한다. 도 2는 실시예 1에 있어서의 데이터 패킷 송수신 시스템의 구성을 도시하는 블록도이다. 도 2에 도시하는 바와 같이, 이 데이터 패킷 송수신 시스템은 송신 장치(100)와 수신 장치(200)로 구성되며, 송신 장치(100)는 데이터 입력부(110)와 송신 버퍼(120)와 송신 버퍼 제어부(130)를 구비하고, 수신 장치(200)는 수신 버퍼(210)와 데이터 출력부(220)와 수신 버퍼 제어부(230)를 구비하고 있다. 또한, 송신 장치(100)와 수신 장치(200)는 네트워크나 유선, 무선(적외선 통신, 블 루투스 등), 혹은 전자기기 내의 버스나 배선을 통해 접속하고 있다.
데이터 입력부(110)는 각종 정보를 송신 버퍼(120)에 입력한다. 구체적으로는, 송신 장치(100)에서 수신 장치(200)로 송신하는 데이터 패킷을 송신 버퍼(120) 선두에서부터 채워 기록한다.
송신 버퍼(120)는 송신 장치(100)에서 수신 장치(200)로 송신하는 데이터 패킷을 기억하며, 메모리 등에 의해서 구성된다. 구체적으로는, 송신 버퍼(120)는 데이터 입력부(110)로부터 입력된 데이터 패킷을 송신 버퍼(120)의 선두에서부터 채워 기억한다. 한편, 송신 버퍼(120)에서는, 데이터 패킷이 독출될 때마다, 독출된 데이터 패킷은 소거되고, 새로운 데이터 패킷이 덮어쓰기된다.
송신 버퍼 제어부(130)는 데이터 패킷의 송수신을 제어하며, 본 발명에 밀접하게 관련되는 것으로서는, 도 2에 도시하는 바와 같이, 패킷 송신 제어부(131)와 크레디트 가산부(132)와 크레디트 카운터부(133)와 크레디트 감산부(134)를 구비한다. 한편, 패킷 송신 제어부(131)는 특허청구범위에 기재된 「송신 제어 수단」에 대응하고, 크레디트 가산부(132)는 마찬가지로 「크레디트 가산 수단」에 대응하고, 크레디트 카운터부(133)는 마찬가지로 「크레디트 기억 수단」에 대응하고, 크레디트 감산부(134)는 마찬가지로 「크레디트 감산 수단」에 대응한다.
크레디트 카운터부(133)는 수신 버퍼(210)의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억한다. 구체적으로는, 후술하는 크레디트 가산부(132) 및 크레디트 감산부(134)에 의해서, 기억하고 있는 크레디트치가 증가감됨에 따라, 수신 버퍼(210)의 용량에 대하여 실제로 저장 되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억한다.
한편, 크레디트 카운터부(133)는, 수신 버퍼(210)의 용량의 최대치에 따른 크레디트를 소정의 값(상한치)으로서 기억하고 있다. 예컨대, 수신 버퍼(210)의 용량의 최대치가 16 바이트라면, 16 바이트에 대응한 크레디트「16」을 크레디트 카운터부(133)의 크레디트의 상한치로서 기억하고, 수신 버퍼(210)의 용량의 최대치가 32 바이트라면, 32 바이트에 대응한 크레디트「32」를 크레디트 카운터부(133)의 크레디트의 상한치로서 기억한다.
크레디트 가산부(132)는 송신 버퍼(120)에서 수신 장치(200)로 데이터 패킷이 송신되면, 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트치에 가산하여 저장한다.
예컨대, 송신 버퍼(120)로부터 2 바이트의 데이터 패킷을 송신하면, 크레디트 가산부(132)는 2 바이트에 대응하는 크레디트인 크레디트「2」를 크레디트 카운터부(133)의 크레디트치에 가산하여 저장하고, 송신 장치(100)가 송신 버퍼(120)로부터 1 바이트의 데이터 패킷을 송신하면, 크레디트 가산부(132)는 1 바이트에 대응하는 크레디트인 크레디트「1」을 크레디트 카운터부(133)의 크레디트치에 가산하여 저장한다.
크레디트 감산부(134)는, 수신 장치(200)로부터 후술하는 용량 특정 정보를 수신하면, 용량 특정 정보를 이용하여 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량을 특정하고, 상기한 특정한 용량에 따른 값의 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트치로부터 감산하여 저장한다. 구체적으로는, 크 레디트 감산부(134)는 수신 장치(200)로부터 수신한 크레디트의 값을, 크레디트 카운터부(133)에 기억되어 있는 크레디트치로부터 감산하여 저장한다.
예컨대, 크레디트 감산부(134)가 크레디트「1」을 수신하면, 크레디트 감산부(134)는 크레디트「1」을 크레디트 카운터부(133)의 크레디트치로부터 감산하고, 크레디트 감산부(134)가 크레디트「2」를 수신하면, 크레디트 감산부(134)가 크레디트「2」를 크레디트 카운터부(133)의 크레디트치로부터 감산하고, 크레디트 감산부(134)가 크레디트「3」을 수신하면, 크레디트 감산부(134)가 크레디트「3」을 크레디트 카운터부(133)의 크레디트치로부터 감산한다.
패킷 송신 제어부(131)는, 크레디트 카운터부에 기억되어 있는 크레디트의 값에 기초하여 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 제어부이다. 구체적으로는, 데이터 패킷을 송신하는 타이밍이 되면, 크레디트 카운터부(133)에 기억되어 있는 크레디트의 값에 대하여, 송신 장치(100)로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 가산치가, 수신 버퍼(210)의 용량으로부터 정해지는 소정의 값(상한치)에 달하고 있는지 여부를 판정하여, 상기한 가산치가 상기한 상한치에 달하고 있지 않은 경우에는, 데이터 패킷의 송신을 허가하고, 상기한 가산치가 상기한 상한치에 달하고 있는 경우에는, 상기한 데이터 패킷의 송신을 정지하도록 제어한다.
예컨대, 크레디트 카운터부(133)에 설정된 상한치가 「16」인 경우, 현재의 크레디트치가 「10」이고, 송신하는 데이터 패킷의 용량에 따른 크레디트치가 「2」라면, 크레디트치의 가산치는 「12」가 되어, 상한치인 「16」에 달하고 있지 않 기 때문에, 패킷 송신 제어부(131)는 송신을 허가한다. 또한, 현재의 크레디트치가 「12」이고, 송신하는 데이터 패킷의 용량에 따른 크레디트치가 「1」이라면, 크레디트의 가산치는 「13」이 되어, 패킷 송신 제어부(131)는 송신을 허가한다. 한편, 현재의 크레디트치가 「13」이고, 송신하는 데이터 패킷의 용량에 따른 크레디트치가 「4」라면, 크레디트의 가산치는 「17」이 되어, 상한치인 「16」에 달해 버리기 때문에, 패킷 송신 제어부(131)는 송신을 정지한다.
이어서, 수신 장치(200) 중에서, 수신 버퍼(210)는 송신 장치(100)로부터 송신된 데이터 패킷을 기억하며, 메모리 등에 의해서 구성된다. 구체적으로는, 수신 버퍼(210)는 송신 장치(100)로부터 송신된 데이터 패킷을 수신 버퍼(210)의 선두에서부터 채워 기억한다. 한편, 수신 버퍼(210)에서는, 후술하는 데이터 출력부(220)에 의해서, 데이터 패킷이 독출되면, 독출된 데이터 패킷은 소거되고 새로운 데이터 패킷이 덮어쓰기된다.
데이터 출력부(220)는 수신 버퍼(210)에 기억된 데이터를 독출한다. 구체적으로는, 데이터 출력부(220)는 수신 버퍼(210)에 기억된 데이터 중에서, 수신한 순서가 오래된 순으로 데이터를 독출한다.
수신 버퍼 제어부(230)는 데이터 패킷의 송수신을 제어하며, 도 2에 도시하는 바와 같이, 본 발명에 밀접하게 관련되는 것으로서는, 크레디트 송신부(231)를 구비하고 있다. 한편, 크레디트 송신부(231)는 특허청구범위에 기재된 「용량 특정 정보 송신 수단」에 대응한다. 크레디트 송신부(231)는, 수신 버퍼(210)에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 송신 장 치(100)에 있어서 특정할 때에 이용되는 용량 특정 정보를 송신 장치(100)에 송신한다. 구체적으로는, 크레디트 송신부(231)는, 상기한 용량 특정 정보로서, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 송신 장치(100)에 송신한다.
예컨대, 수신 장치(200)가 수신 버퍼(210)로부터 1 바이트의 데이터 패킷을 독출하면, 크레디트 송신부(231)는, 1 바이트에 대응하는 크레디트「1」을 송신 장치(100)에 송신하고, 2 바이트의 데이터 패킷을 독출하면, 크레디트「2」를 송신 장치(100)에 송신하고, 3 바이트의 데이터 패킷을 독출하면, 크레디트「3」을 송신 장치(100)에 송신한다.
[패킷 송신시의 처리]
이어서, 도 3을 이용하여, 실시예 1에 있어서의 패킷 송신시의 처리 순서를 설명한다. 도 3은 실시예 1에 있어서의 패킷 송신시의 처리를 도시하는 흐름도이다.
도 3에 도시하는 바와 같이, 패킷 송신 제어부(131)는, 데이터 패킷의 송신타이밍이 되면(단계 S301 긍정), 송신 데이터 패킷의 용량에 있어서, 충분한 크레디트가 있는지(즉, 크레디트 카운터부(133)의 크레디트치에, 송신하는 데이터 패킷의 용량에 대응하는 크레디트의 값을 가산하면, 이러한 가산치가 수신 버퍼(210)의 용량에 대응하는 상한치에 달하는지)를 판정한다(단계 S302).
그리고, 송신하는 데이터 패킷의 용량에 있어서, 크레디트 카운터부(133)에 충분한 크레디트가 있는 경우(상기한 가산치가 상한치에 달하지 않는 경우)에는(단 계 S302 긍정), 패킷 송신 제어부(131)는 송신 버퍼(120)로부터 데이터 패킷을 송신한다(단계 S303). 즉, 패킷 송신 제어부(131)는 이러한 데이터 패킷의 송신을 허가한다.
그리고, 송신 장치(100)가, 송신 버퍼(120)로부터 데이터 패킷을 송신하면, 크레디트 가산부(132)는 송신된 데이터 패킷의 용량에 따른 크레디트를, 크레디트 카운터부(133)에 기억되어 있는 크레디트에 가산하여 저장한다(단계 S304).
한편, 상기한 단계 S302에 있어서, 송신하는 데이터 패킷의 용량에 있어서, 크레디트 카운터부(133)에 충분한 크레디트가 없는 경우(상기한 가산치가 상한치에 달하는 경우)에는(단계 S302 부정), 패킷 송신 제어부(131)는 송신 버퍼(120)로부터 데이터 패킷의 송신을 정지한다(단계 S305).
[크레디트 수신시의 처리]
이어서, 도 4를 이용하여, 실시예 1에 있어서의 크레디트 수신시의 처리 순서를 설명한다. 도 4는 실시예 1에 있어서의 크레디트 수신시의 처리를 도시하는 흐름도이다.
도 4에 도시하는 바와 같이, 송신 장치(100)가 수신 장치(200)로부터 크레디트를 수신하면(단계 S401 긍정), 크레디트 감산부(134)는 수신한 크레디트의 값을 크레디트 카운터부(133)에 기억된 크레디트치로부터 감산하여 저장한다(단계 S402). 예컨대, 송신 장치(100)가 크레디트「1」을 수신하면, 크레디트「1」을 크레디트 카운터부(133)의 크레디트치로부터 감산하고, 크레디트「2」를 수신하면, 크레디트「2」를 크레디트 카운터부(133)의 크레디트치로부터 감산하고, 크레디트 「3」을 수신하면, 크레디트「3」을 크레디트 카운터부(133)의 크레디트치로부터 감산한다.
[크레디트 송신시의 처리]
이어서, 도 5를 이용하여, 실시예 1에 있어서의 크레디트 송신시의 처리 순서를 설명한다. 도 5는 실시예 1에 있어서의 크레디트 송신시의 처리를 도시하는 흐름도이다.
도 5에 도시하는 바와 같이, 데이터 출력부(220)가 수신 장치(200)의 수신 버퍼(210)에 기억된 데이터를 독출하면(단계 S501 긍정), 독출된 데이터의 용량에 대응하는 크레디트를 크레디트 카운터부(133)에 송신한다(단계 S502). 예컨대, 수신 장치(200)가 수신 버퍼(210)로부터 1 바이트의 데이터 패킷을 독출하면, 크레디트 송신부(231)는, 1 바이트에 대응하는 크레디트「1」을 송신 장치(100)에 송신하고, 2 바이트의 데이터 패킷을 독출하면, 크레디트「2」를 송신 장치(100)에 송신하고, 3 바이트의 데이터 패킷을 독출하면, 크레디트「3」을 송신 장치(100)에 송신한다.
[실시예 1에 의한 효과]
전술한 것과 같이, 실시예 1에 따르면, 수신 장치(200)는, 수신 버퍼(210)에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 송신 장치(100)에 있어서 특정할 때에 이용되는 용량 특정 정보를 송신 장치(100)에 송신하고, 송신 장치(100)는, 수신 버퍼(210)의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하여, 송신 버 퍼(120)로부터 수신 장치(200)에 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트에 가산하여 저장하고, 수신 장치(200)로부터 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정된 용량에 따른 값의 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트로부터 감산하여 저장하여, 크레디트 카운터부(133)에 기억되어 있는 크레디트의 값에 기초하여 데이터 패킷의 송신을 허가 또는 정지하도록 제어하기 때문에, 송신 장치(100)가 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 데이터 패킷의 수가 아니라 데이터 용량으로 파악하여, 수신 버퍼(210)에 저장되는 데이터 패킷 수(큐 단수)를 데이터 패킷이 오버플로하지 않는 범위에서 동적으로 조정하면서 데이터 패킷을 송신함으로써, 수신 버퍼(210)의 미사용 영역을 줄일 수 있는 결과, 수신 버퍼(210)로서의 자원을 유효하게 이용하는 것이 가능하다.
또한, 실시예 1에 따르면, 크레디트 송신부(231)는, 용량 특정 정보로서, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 송신 장치(100)에 송신하고, 크레디트 가산부(132)는, 수신 장치(200)에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트에 가산하여 저장하고, 크레디트 감산부(134)는, 수신 장치(200)로부터 수신한 값의 크레디트를 크레디트 카운터부(133)에 기억되어 있는 크레디트로부터 감산하여 저장하기 때문에, 송신 장치(100)에서는, 수신 장치(200)로부터 수신한 크레디 트를 그대로 감산하는 것만으로, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 송신 장치(100)에 있어서의 크레디트의 증가감 처리를 간이화하는 것도 가능하다.
또한, 실시예 1에 따르면, 패킷 송신 제어부(131)는, 크레디트 카운터부(133)에 기억되어 있는 크레디트의 값에 대하여, 송신 장치(100)로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 가산치가, 수신 버퍼(210)의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 가산치가 소정의 값(상한치)에 달하고 있지 않은 경우에는 데이터 패킷의 송신을 허가하고, 가산치가 상한치에 달하고 있는 경우에는 데이터 패킷의 송신을 정지하도록 제어하기 때문에, 지금부터 송신하고자 하고 있는 데이터 패킷이 송신된 후의 수신 버퍼(210)의 혼잡 상황을 추정할 수 있는 결과, 수신 버퍼(210)에 있어서의 오버플로를 확실하게 방지하는 것도 가능하다.
<실시예 2>
상기한 실시예 1에서는, 수신 버퍼로부터의 독출 용량에 따른 크레디트를 송신하는 경우를 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 독출 용량에 관계없이 항상 동량의 크레디트를 송신하더라도 좋다. 그래서, 이 실시예 2에서는, 수신 버퍼가 독출한 데이터 패킷의 용량에 관계없이 항상 동량의 크레디트를 송신하는 경우에 관해서 설명한다.
[데이터 패킷 송수신 시스템의 개요 및 특징]
맨 처음에, 도 6을 이용하여, 실시예 2에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명한다. 도 6은 실시예 2에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명하기 위한 도면이다. 한편, 이하에서는, 실시예 1에 따른 데이터 패킷 송수신 시스템과 같은 점에 대해서는 간단하게 설명하기로 한다.
도 6에 예시하는 것과 같이, 송신 장치(100)는, 송신한 데이터 패킷마다 구분하여 송신 순으로, 수신 버퍼(210)의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하는 패킷 구분 크레디트 카운터부(133b)를 갖고 있다.
여기서, 송신 장치(100)는, 송신 버퍼(120)로부터 데이터 패킷을 수신 장치(200)의 수신 버퍼(210)에 송신하면, 송신된 데이터 패킷의 용량에 따른 크레디트를, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트에, 패킷마다 구분하여 송신한 순서로 가산하여 저장한다(도 6의 (1) 참조).
예컨대, 도 6에 도시하는 바와 같이, 송신 장치(100)가 2 바이트의 데이터 패킷을 송신하면, 크레디트「2」를 가장 새롭게 송신된 데이터 패킷으로서 패킷 구분 크레디트 카운터부(133b)의 크레디트치에 가산(추가)하고, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「7」에서 「9」로 한다. 계속해서, 1 바이트의 데이터 패킷을 송신하면, 크레디트「1」을 가장 새롭게 송신된 데이터 패킷으로서(예컨대 패킷 5의 다음에) 패킷 구분 크레디트 카운터부(133b)의 크레디트치에 가산(추가)하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「9」에서 「10」으로 한다(도 8 참조).
한편, 수신 장치(200)는 송신 장치(100)로부터 송신된 데이터 패킷을 수신 버퍼(210)로 수신한다(도 6의 (2) 참조). 그 후, 수신 장치(200)는, 상기 수신한 데이터 패킷을, 데이터 패킷이 수신 버퍼(210)에 저장된 순서로 오래된 데이터 패킷부터 독출하면, 수신 버퍼(210)로부터, 독출된 데이터의 용량에 관계없이, 크레디트「1」을 송신 장치(100)에 송신한다(도 6의 (3) 참조). 예컨대, 수신 장치(200)는, 수신 버퍼(210)로부터 1 바이트의 데이터 패킷을 독출하면, 크레디트「1」을 송신 장치(100)에 송신하고, 2 바이트의 데이터 패킷을 독출하면, 크레디트「1」을 송신 장치(100)에 송신하고, 3 바이트의 데이터 패킷을 독출하면, 크레디트「1」을 송신 장치(100)에 송신한다.
또한, 송신 장치(100)는, 상기한 수신 장치(200)가 송신한 크레디트를 수신하면, 데이터 패킷마다 구분하여 송신 순으로 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트 중에서, 가장 오래전에 송신된 데이터 패킷의 크레디트치를, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트치로부터 감산하여 저장한다(도 6의 (4) 참조).
예컨대, 송신 장치(100)가, 크레디트「1」을 수신하면, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트 중에서 가장 오래된 크레디트치인 크레디트「1」을 패킷 구분 크레디트 카운터부(133b)의 크레디트치로부터 감산(삭제)하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「10」에서 「9」로 한다(도 9 참조). 이어서, 송신 장치(100)가, 크레디트「1」을 수신하면, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트 중에서 가장 오래된 크레디트치인 크레디트「2」를 패킷 구분 크레디트 카운터부(133b)의 크레디트치로부터 감산하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치를 「9」에서 「7」로 한다.
그리고, 송신 장치(100)는, 실시예 1에 따른 송신 장치(100)와 마찬가지로, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트치에 기초하여, 데이터 패킷의 송신을 허가 또는 정지하도록 제어한다(도 6의 (5) 참조).
이와 같은 점에서, 실시예 2에 따른 데이터 패킷 송수신 시스템에 따르면, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 항상 동량의 크레디트를 수신 장치(200)로부터 송신 장치(100)에 송신하는 것만으로, 송신 장치(100)에서는, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 수신 장치(200)에서 송신 장치(100)로의 회신 처리를 간이화하는 것도 가능하다.
[데이터 패킷 송수신 시스템의 구성]
이어서, 도 7을 이용하여, 실시예 2에 따른 데이터 패킷 송수신 시스템의 구성을 설명한다. 도 7은 실시예 2에 있어서의 데이터 패킷 송수신 시스템의 구성을 도시하는 블록도이다. 도 7에 도시하는 바와 같이, 이 데이터 패킷 송수신 시스템은 송신 장치(100)와 수신 장치(200)로 구성되며, 송신 장치(100)는 데이터 입력부(110)와 송신 버퍼(120)와 송신 버퍼 제어부(130)를 구비하고, 수신 장치(200)는 수신 버퍼(210)와 데이터 출력부(220)와 수신 버퍼 제어부(230)를 구비하고 있다.
여기서, 실시예 1과 같은 동작을 하는 것에 대해서는 동일한 번호를 붙여 설명을 생략하고, 이하에서는, 패킷 구분 크레디트 카운터부(133b)와, 크레디트 가산 부(132b)와, 크레디트 감산부(134b)와, 크레디트 송신부(231b)에 관해서만 설명한다.
패킷 구분 크레디트 카운터부(133b)는, 수신 버퍼(210)의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억한다. 구체적으로는, 패킷 구분 크레디트 카운터부(133b)는, 기억하고 있는 크레디트를 후술하는 바와 같이, 패킷마다 구분하여 송신 장치(100)로부터 송신된 송신 순으로 기억한다.
크레디트 가산부(132b)는, 송신 버퍼(120)에서 수신 장치(200)로 데이터 패킷이 송신되면, 수신 장치(200)에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 데이터 패킷마다 구분하여 송신 순으로 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트치에 가산하여 저장한다.
구체적으로는, 도 8에 도시하는 바와 같이, 송신 장치(100)가 1 바이트의 데이터 패킷을 송신하면, 크레디트「1」을 가장 새롭게 송신한 데이터 패킷에 대응한 크레디트로서 가장 뒤에(예컨대 패킷 5의 뒤에), 패킷 구분 크레디트 카운터부(133b)의 크레디트치에 가산(추가)하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「9」에서 「10」으로 한다. 한편, 도 8은 실시예 2에 있어서의 크레디트 가산시의 처리를 도시하는 개념도이다.
크레디트 감산부(134b)는, 수신 장치(200)로부터 후술하는 용량 특정 정보를 수신하면, 데이터 패킷마다 구분하여 송신 순으로 패킷 구분 크레디트 카운터(133b)에 기억되어 있는 크레디트 중에서, 가장 오래전에 송신된 데이터 패킷의 크레디트를 감산하여 저장한다.
예컨대, 도 9에 도시하는 바와 같이, 송신 장치(100)가 크레디트「1」을 수신하면, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트 중에서 가장 오래된 크레디트치인 크레디트「1」을 패킷 구분 크레디트 카운터부(133b)의 크레디트치로부터 감산(삭제)하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「10」에서 「9」로 한다. 한편, 도 9는 실시예 2에 있어서의 크레디트 감산시의 처리를 도시하는 개념도이다.
크레디트 송신부(231b)는 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 상기한 용량 특정 정보를 송신 장치(100)에 송신한다. 구체적으로는, 크레디트 송신부(231b)는, 상기한 용량 특정 정보로서, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 크레디트「1」을 송신 장치(100)에 송신한다.
[패킷 송신시의 처리]
이어서, 도 10을 이용하여, 실시예 2에 있어서의 패킷 송신시의 처리 순서를 설명한다. 도 10은 실시예 2에 있어서의 패킷 송신시의 처리를 도시하는 흐름도이다. 한편, 이하에서는, 실시예 1에 따른 데이터 패킷 송수신 시스템과 같은 점에 대해서는 간단하게 설명하는 것으로 한다.
도 10에 도시하는 바와 같이, 송신 타이밍이 되어, 송신 버퍼(120)로부터 데이터 패킷을 송신하면(단계 S1001∼단계 S1003), 크레디트 가산부(132b)는, 송신된 데이터 패킷의 용량에 따른 크레디트를, 패킷마다 구분하여, 송신한 순서대로 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트에 가산하여 저장한다(단 계 S1004).
예컨대, 도 8에 도시하는 바와 같이, 송신 장치(100)가 1 바이트의 데이터 패킷을 송신하면, 크레디트「1」을 패킷 구분 크레디트 카운터부(133b)의 크레디트치에 가산(추가)하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「9」에서 「10」으로 한다.
[크레디트 수신시의 처리]
이어서, 도 11을 이용하여, 실시예 2에 있어서의 크레디트 수신시의 처리 순서를 설명한다. 도 11은 실시예 2에 있어서의 크레디트 수신시의 처리를 도시하는 흐름도이다.
도 11에 도시하는 바와 같이, 송신 장치(100)가 수신 장치(200)로부터 크레디트를 수신하면(단계 S1101 긍정), 크레디트 감산부(134b)는, 패킷마다 구분되어 송신 순으로 기억된, 패킷 구분 크레디트 카운터부(133b)에 기억된 크레디트 중에서, 가장 오래전에 송신된 데이터 패킷의 크레디트를 얻는다(단계 S1102).
그리고, 상기에서 얻어진 크레디트를 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트치로부터 감산하여 저장한다(단계 S1103). 구체적으로는, 도 9에 도시하는 바와 같이, 송신 장치(100)가 크레디트「1」을 수신하면, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트 중에서 가장 오래된 크레디트치인 크레디트「1」을 패킷 구분 크레디트 카운터부(133b)의 크레디트치로부터 감산(삭제)하여, 패킷 구분 크레디트 카운터부(133b)의 크레디트치(총수)를 「10」에서 「9」로 한다.
[크레디트 송신시의 처리]
이어서, 도 12를 이용하여, 실시예 2에 있어서의 크레디트 송신시의 처리 순서를 설명한다. 도 12는 실시예 2에 있어서의 크레디트 송신시의 처리를 도시하는 흐름도이다.
도 12에 도시하는 바와 같이, 데이터 출력부(220)가 수신 장치(200)의 수신 버퍼(210)에 기억된 데이터를 독출하면(단계 S1211 긍정), 독출한 데이터의 용량에 상관없이, 크레디트를 패킷 구분 크레디트 카운터부(133b)에 송신한다(단계 S1212). 구체적으로는, 수신 장치(200)가 수신 버퍼(210)로부터 1 바이트의 데이터 패킷을 독출하면, 크레디트 송신부(231b)는, 수신 버퍼(210)로부터 독출한 1 바이트에 관계없이, 크레디트「1」을 송신 장치(100)에 송신하고, 2 바이트의 데이터 패킷을 독출하면, 독출한 2 바이트에 관계없이, 크레디트「1」을 송신 장치(100)에 송신하고, 3 바이트의 데이터 패킷을 독출하면, 독출한 3 바이트에 관계없이, 크레디트「1」을 송신 장치(100)에 송신한다.
[실시예 2에 의한 효과]
상술한 바와 같이, 실시예 2에 따른 데이터 패킷 송수신 시스템에 의하면, 크레디트 송신부(231b)는, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이 용량 특정 정보를 송신 장치(100)에 송신하고, 크레디트 가산부(132b)는, 수신 장치(200)에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 데이터 패킷마다 구분하여 송신 순으로, 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트에 가산하여 저장하고, 크레디트 감산부(134b)는, 데이터 패킷마다 구 분하여 송신 순으로 패킷 구분 크레디트 카운터부(133b)에 기억되어 있는 크레디트 중에서 가장 오래전에 송신된 데이터 패킷의 크레디트를 감산하여 저장하기 때문에, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 항상 동량의 크레디트를 수신 장치(200)에서 송신 장치(100)로 송신하는 것만으로, 송신 장치(100)에서는, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 수신 장치(200)에서 송신 장치(100)로의 회신 처리를 간이화하는 것도 가능하다.
<실시예 3>
상기한 실시예 2에서는, 데이터 패킷의 송신 순으로 크레디트를 감산하는 경우에 관해서 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 데이터 패킷을 특정하여 크레디트를 감산하더라도 좋다. 그래서, 이 실시예 3에서는, 데이터 패킷을 특정하여 크레디트를 감산하는 경우에 관해서 설명한다.
[데이터 패킷 송수신 시스템의 개요 및 특징]
맨 처음에, 도 13을 이용하여, 실시예 3에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명한다. 도 13은 실시예 3에 따른 데이터 패킷 송수신 시스템의 개요 및 특징을 설명하기 위한 도면이다. 한편, 이하에서는, 실시예 1이나 실시예 2에 따른 데이터 패킷 송수신 시스템과 같은 점에 대해서는 간단하게 설명하는 것으로 한다.
여기서, 송신 장치(100)는, 송신 버퍼(120)로부터, 데이터 패킷을, 송신되는 데이터 패킷을 일의적으로 식별하는 식별 정보를 그 데이터 패킷에 부가하여, 수신 장치(200)에 송신하면, 이러한 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 데이터 패킷마다 구분하고 식별 정보를 부가하여, 패킷 구분 크레디트 카운터부(133c)에 가산하여 저장한다(도 13의 (1) 참조). 구체적으로는, 도 13에 도시하는 바와 같이, 송신 장치(100)가, 식별 정보「x007」이 부가된 1 바이트의 데이터 패킷을 송신하면, 식별 정보「x007」과 1 바이트의 데이터 용량에 대응하는 크레디트「1」을 대응시켜, 가산하여 저장한다.
한편, 수신 장치(200)는, 송신 장치(100)로부터 송신된 데이터 패킷을 수신 버퍼(210)로 수신한다(도 13의 (2) 참조). 그 후, 수신 장치(200)는, 상기 수신한 데이터 패킷을 수신 버퍼(210)로부터 독출하면, 수신 버퍼(210)로부터 독출된 패킷에 부가된 식별 정보를 송신 장치(100)에 송신한다(도 13의 (3) 참조). 구체적으로는, 수신 장치(200)는, 수신 버퍼(210)로부터 식별 정보「x002」가 부가된 1 바이트의 데이터 패킷을 독출하면, 이러한 1 바이트의 데이터에 부가되어 있는 식별 정보「x002」를 송신 장치(100)에 송신한다.
또한, 송신 장치(100)는, 상기한 수신 장치(200)가 송신한 식별 정보를 수신하면, 데이터 패킷마다 구분되고 식별 정보가 부가되어 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트 중에서, 수신 장치(200)로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 감산하여 저장한다(도 1의 (4) 참조). 구체적으로는, 도 13에 도시하는 바와 같이, 송신 장치(100)가 식별 정보「x002」를 수신하면, 식별 정보「x002」에 대응하는 크레디트「1」을 패킷 구분 크레디트 카운터부(133c)의 크레디트치로부터 감산하여 저장한다.
그리고, 송신 장치(100)는, 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트치에 기초하여, 데이터 패킷의 송신을 허가 또는 정지하도록 제어한다(도 13의 (5) 참조).
이와 같은 점에서, 실시예 3에 따른 데이터 패킷 송수신 시스템은, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 패킷의 식별 정보를 수신 장치(200)에서 송신 장치(100)로 송신하는 것만으로, 송신 장치(100)에서는, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 수신 장치(200)에서 송신 장치(100)로의 회신 처리를 간이화하는 것도 가능하다. 또한, 패킷의 식별 정보를 수신 장치(200)에서 송신 장치(100)로 송신하는 것만으로, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량을 확실하게 특정할 수 있는 결과, 송신 장치(100)에서는, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 확실하게 파악하는 것도 가능하게 된다.
[데이터 패킷 송수신 시스템의 구성]
이어서, 도 14를 이용하여, 실시예 3에 따른 데이터 패킷 송수신 시스템의 구성을 설명한다. 도 14는 실시예 3에 있어서의 데이터 패킷 송수신 시스템의 구성을 도시하는 블록도이다. 도 14에 도시하는 바와 같이, 이 데이터 패킷 송수신 시스템은 송신 장치(100)와 수신 장치(200)로 구성되며, 송신 장치(100)는 데이터 입력부(110)와 송신 버퍼(120)와 송신 버퍼 제어부(130)를 구비하고, 수신 장치(200)는 수신 버퍼(210)와 데이터 출력부(220)와 수신 버퍼 제어부(230)를 구비하고 있다.
여기서, 실시예 1이나 실시예 2와 같은 동작을 하는 것에 대해서는 동일한 번호를 붙여 설명을 생략하고, 이하에서는, 패킷 구분 크레디트 카운터부(133c)와, 식별 정보 부가부(135c)와, 크레디트 가산부(132c)와, 크레디트 감산부(134c)와, 식별 정보 송신부(231c)에 관해서만 설명을 한다.
패킷 구분 크레디트 카운터부(133c)는, 수신 버퍼(210)의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억한다. 구체적으로는, 패킷 구분 크레디트 카운터부(133c)는, 기억하고 있는 크레디트를 후술하는 바와 같이, 식별 정보를 부가하여, 패킷마다 구분하여 기억한다(도 15 참조).
또한, 식별 정보 부가부(135c)는, 패킷 송신 제어부(131)가 데이터 패킷의 송신을 허가하면, 송신되는 데이터 패킷을 일의적으로 식별하는 식별 정보를 그 데이터 패킷에 부가한다. 구체적으로는, [x006][x007] 등의 식별 정보를 송신하는 데이터 패킷의 내부에 부가한다.
크레디트 가산부(132c)는, 송신 버퍼(120)에서 수신 장치(200)로 데이터 패킷이 송신되면, 수신 장치(200)에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 데이터 패킷마다 구분하고, 식별 정보 부가부(135c)가 이러한 데이터 패킷에 부가한 식별 정보를 대응시켜, 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트에 가산하여 저장한다.
예컨대, 도 15에 도시하는 바와 같이, 송신 장치(100)가 송신 타이밍이 되어 송신 버퍼(120)로부터 식별 정보「x006」이 부가된 2 바이트의 데이터 패킷을 송신 하면, 크레디트 가산부(132c)는 2 바이트에 대응하는 크레디트인 크레디트「2」에 식별 정보인「x006」을 부가하여, 패킷 구분 크레디트 카운터부(133c)의 크레디트치에 가산하여 저장하고, 송신 장치(100)가 송신 버퍼(120)로부터 식별 정보「007」이 부가된 1 바이트의 데이터 패킷을 송신하면, 크레디트 가산부(132c)는 1 바이트에 대응하는 크레디트인 크레디트「1」에 식별 정보인 「x007」을 부가하여, 패킷 구분 크레디트 카운터부(133c)의 크레디트치에 가산하여 저장한다. 한편, 도 15는 실시예 3에 있어서의 크레디트 가산시의 처리를 도시하는 개념도이다.
크레디트 감산부(134c)는, 수신 장치(200)로부터 식별 정보를 수신하면, 데이터 패킷마다 구분되고 식별 정보가 부가되어 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트 중에서, 수신 장치(200)로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 감산하여 저장한다.
예컨대, 도 16에 도시하는 바와 같이, 크레디트 감산부(134c)는, 식별 정보「x002」를 수신하면, 식별 정보「x002」에 대응하는 크레디트「1」을 패킷 구분 크레디트 카운터부(133c)의 크레디트치로부터 감산하고, 크레디트 감산부(134c)가 식별 정보「x001」을 수신하면, 식별 정보「x001」에 대응하는 크레디트「2」를 패킷 구분 크레디트 카운터부(133c)의 크레디트치로부터 감산하며, 크레디트 감산부(134c)는, 식별 정보「x003」을 수신하면, 식별 정보「x003」에 대응하는 크레디트「3」을 패킷 구분 크레디트 카운터부(133c)의 크레디트치로부터 감산한다. 한편, 도 16은 실시예 3에 있어서의 크레디트 감산시의 처리를 도시하는 개념도이다.
식별 정보 송신부(231c)는, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용 량에 관계없이, 이러한 데이터 패킷에 부가되어 있는 식별 정보를 송신 장치(100)에 송신한다.
[패킷 송신시의 처리]
이어서, 도 17을 이용하여, 실시예 3에 있어서의 패킷 송신시의 처리 순서를 설명한다. 도 17은 실시예 3에 있어서의 패킷 송신시의 처리를 도시하는 흐름도이다. 한편, 이하에서는, 실시예 1이나 실시예 2에 따른 데이터 패킷 송수신 시스템과 같은 점에 대해서는 간단하게 설명하는 것으로 한다.
도 17에 도시하는 바와 같이, 송신 타이밍이 되어, 송신하는 데이터 패킷의 용량에 있어서, 패킷 구분 크레디트 카운터부(133c)에 충분한 크레디트가 있는 경우(상기한 가산치가 상한치에 달하지 않는 경우)(단계 S701∼단계 S702 긍정), 송신 정보 부가부(135c)는 송신하는 데이터 패킷을 일의적으로 구별할 수 있는 식별 정보를 부가하고, 패킷 송신 제어부(131)는 송신 버퍼(120)로부터 식별 정보가 부가된 데이터 패킷을 송신한다(단계 S703).
그리고, 송신 장치(100)가 송신 버퍼(120)로부터 데이터 패킷을 송신하면, 크레디트 가산부(132c)는 송신된 데이터 패킷의 용량에 따른 크레디트를, 송신 데이터 패킷마다 구분하고, 식별 정보와 대응시켜, 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트에 가산하여 저장한다(단계 S704). 즉, 수신 장치(200)에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 데이터 패킷마다 구분하고 식별 정보를 부가하여, 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트에 가산하여 저장한다.
[크레디트 수신시의 처리]
이어서, 도 18을 이용하여, 실시예 3에 있어서의 크레디트 수신시의 처리 순서를 설명한다. 도 18은 실시예 3에 있어서의 크레디트 수신시의 처리를 도시하는 흐름도이다.
도 18에 도시하는 바와 같이, 송신 장치(100)가 수신 장치(200)로부터 식별 정보를 수신하면(단계 S1801 긍정), 크레디트 감산부(134c)는, 패킷 구분 크레디트 카운터부(133c)에 기억된 패킷마다 구분된 크레디트에서, 수신한 식별 정보에 대응하는 크레디트를 얻는다(단계 S1802). 즉, 데이터 패킷마다 구분되고 식별 정보가 부가되어 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트 중에서, 수신 장치(200)로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 얻는다.
예컨대, 송신 장치(100)가 식별 정보「x002」를 수신하면, 식별 정보「x002」에 대응하는 크레디트「1」을 얻고, 식별 정보「x001」을 수신하면, 식별 정보「x001」에 대응하는 크레디트「2」를 얻고, 식별 정보「x003」을 수신하면, 식별 정보「x003」에 대응하는 크레디트「3」을 얻는다(도 16 참조).
그리고, 상기에서 얻어진 크레디트를, 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트치로부터 감산하여 저장한다(단계 S1803). 구체적으로는, 도 16에 도시하는 바와 같이, 송신 장치(100)가 식별 정보「x002」를 수신하면, 식별 정보「x002」에 대응하는 크레디트「1」을 패킷 구분 크레디트 카운터부(133c)의 크레디트치로부터 감산하여 저장한다.
[크레디트 송신시의 처리]
이어서, 도 19를 이용하여, 실시예 3에 있어서의 크레디트 송신시의 처리 순서를 설명한다. 도 19는 실시예 3에 있어서의 크레디트 송신시의 처리를 도시하는 흐름도이다.
도 19에 도시하는 바와 같이, 데이터 출력부(220)가 수신 장치(200)의 수신 버퍼(210)에 기억된 데이터를 독출하면(단계 S1901 긍정), 독출된 데이터 패킷에 부가된 식별 정보를 패킷 구분 크레디트 카운터부(133c)에 송신한다(단계 S1902).
[실시예 3에 의한 효과]
전술한 것과 같이, 실시예 3에 따르면, 패킷 송신 제어부(131)는, 데이터 패킷의 송신을 허가하는 경우에, 그 송신되는 데이터 패킷을 일의적으로 식별하는 식별 정보를 그 데이터 패킷에 부가하여 수신 장치(200)에 송신하고, 식별 정보 송신부(231c)는, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 그 데이터 패킷에 부가되어 있는 식별 정보를 송신 장치(100)에 송신하고, 크레디트 가산부(132c)는, 수신 장치(200)에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 데이터 패킷마다 구분하고 식별 정보를 부가하여, 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트에 가산하여 저장하고, 크레디트 감산부(134c)는, 데이터 패킷마다 구분되고 식별 정보가 부가되어 패킷 구분 크레디트 카운터부(133c)에 기억되어 있는 크레디트 중에서, 수신 장치(200)로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 감산하여 저장하기 때문에, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량에 관계없이, 패킷의 식별 정보를 수신 장치(200)에서 송신 장치(100)로 송신하는 것만으로, 송신 장치(100)에서는, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 파악할 수 있는 결과, 수신 장치(200)에서 송신 장치(100)로의 회신 처리를 간이화하는 것도 가능하다. 또한, 패킷의 식별 정보를 수신 장치(200)에서 송신 장치(100)로 송신하는 것만으로, 수신 버퍼(210)로부터 독출된 데이터 패킷의 용량을 확실하게 특정할 수 있는 결과, 수신 버퍼(210)에 있어서의 데이터 패킷의 혼잡 상황을 확실하게 파악하는 것도 가능하게 된다.
<실시예 4>
그런데, 지금까지 실시예 1∼3에 따른 데이터 패킷 송수신 시스템에 관해서 설명하여 왔지만, 본 발명은 상기한 실시예 이외에도 여러 가지의 다른 형태로 실시되어도 좋다. 그래서, 이하에서는, 실시예 4에 따른 데이터 패킷 송수신 시스템으로서 다른 실시예를 설명한다.
[송신 판정 방법]
상기한 실시예에서는, 송신 장치로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 크레디트치의 가산치가, 수신 버퍼의 용량으로부터 정해지는 소정의 값(상한치)에 달하고 있는지 여부를 판정하여, 데이터 패킷의 송신을 제어하는 경우에 관해서 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 수신 버퍼의 용량으로부터 정해지는 소정의 값(상한치)에 달하고 있는지 여부를 판정하여, 데이터 패킷의 송신을 제어하는 경우 등에도 본 발명을 마찬가지로 적용할 수 있다.
구체적으로는, 패킷 송신 제어부는, 크레디트 카운터부에 기억되어 있는 크레디트의 값이, 수신 버퍼의 용량으로부터 정해지는 소정의 값(상한치)에 달하고 있는지를 판정하여, 크레디트의 값이 상한치에 달하고 있지 않은 경우에는 데이터 패킷의 송신을 허가하고, 크레디트의 값이 상한치에 달하고 있는 경우에는 데이터 패킷의 송신을 정지하도록 제어한다.
이로써, 예컨대, 수신 버퍼의 용량에서 데이터 패킷의 최장 사이즈를 뺀 값을 크레디트 카운터의 상한치로서 설정해 두고서, 이 상한치를 크레디트가 넘는지 여부만을 판정하면서 데이터 패킷의 송신을 제어할 수 있는 결과, 패킷의 송신을 허가 또는 정지하는 처리를 간이화하는 것도 가능하다.
[컴퓨터 시스템에의 적용]
또한, 상기한 실시예에서는, 데이터 패킷 송수신 시스템의 구성으로서 송신 장치와 수신 장치를 따로따로 구비하는 경우에 관해서 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 컴퓨터 시스템 내부에 있어서 회로 간에서 데이터 패킷을 송신하는 경우 등에도 본 발명을 마찬가지로 적용할 수 있다. 예컨대, 도 20은 본 발명을 이용한 컴퓨터 시스템의 예를 도시하는 도면이며, 도 20에 도시하는 바와 같이, 칩세트(2113)와 칩세트(2121)와 칩세트(2133)는 본 발명의 제어를 사용하여, 시스템 보드(2110)와 메모리 시스템 인터커넥트(2120) 간에서의 데이터 패킷 송수신이나, 메모리 시스템 인터커넥트(2120)와 IO 유닛(2130) 간에서의 데이터 패킷 송수신에 있어서 본 발명을 적용할 수 있다.
[용량 특정 정보]
또한, 상기한 실시예에서는, 새롭게 패킷 데이터의 식별 정보를 부가하는 시스템에 관해서 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 송신하는 데이터 패킷에 미리 포함되어 있는 임의의 정보를 이용하는 방법이나, 이러한 임의의 정보와 데이터 패킷의 식별 정보의 양방을 이용하는 방법 등에도 본 발명을 마찬가지로 적용할 수 있다.
[시스템 구성 등]
또한, 상기한 실시예에서는, 데이터 패킷 송수신 시스템의 구성으로서, 송신 장치와 수신 장치가 1대1로 구성되는 시스템에 관해서 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 하나의 송신 장치에 대하여 수신 장치가 복수있는 시스템이나, 송신 장치가 복수있고 수신 장치가 하나인 시스템 등에도 본 발명을 마찬가지로 적용할 수 있다.
또한, 상기한 실시예에서는, 송신 장치와 수신 장치가 상이한 단말인 경우를 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 송신 장치와 수신 장치를 동일한 단말에서 실현하는(하나의 단말이 송신 장치의 기능 및 수신 장치의 기능 쌍방을 갖춘) 경우에도 본 발명을 마찬가지로 적용할 수 있다.
또한, 도시한 각 장치의 각 구성 요소는 기능 개념적인 것이며, 반드시 물리적으로 도시한 것과 같이 구성되어 있을 필요는 없다. 즉, 각 장치의 분산·통합의 구체적인 형태는 도시한 것에 한정되지 않고, 예컨대, 송신 장치나 수신 장치로부터 송신 버퍼 제어부나 수신 버퍼 제어부를 빼내고, 별도로 데이터 패킷의 송수신 제어를 실행하는 장치를 설치하더라도 좋다. 또한, 그 전부 또는 일부를 각종 부하 나 사용 상황 등에 따라서 임의의 단위로 기능적 또는 물리적으로 분산·통합하여 구성할 수 있다. 예컨대, 크레디트 가산부와 크레디트 감산부를 통합하여 구성할 수 있다. 또한, 각 장치에서 이루어지는 각 처리 기능은 그 전부 또는 임의의 일부가, CPU 및 이 CPU에서 해석 실행되는 프로그램으로 실현되거나, 혹은 와이어드 로직에 의한 하드웨어로서 실현될 수 있다. 이 밖에, 상기 문서나 도면 중에서 나타낸 처리 순서, 제어 순서, 구체적 명칭, 각종 데이터나 파라미터를 포함하는 정보(예컨대 도 8이나 도 9에 도시하는 정보)에 대해서는, 특기하는 경우를 제외하고 임의로 변경할 수 있다.
[데이터 패킷 송수신 프로그램]
그런데, 상기 실시예 1에서는, 하드웨어 로직에 의해서 각종 처리를 실현하는 경우를 설명했지만, 본 발명은 이것에 한정되는 것이 아니라, 미리 준비된 프로그램을 컴퓨터로 실행함으로써 실현하도록 하더라도 좋다. 그래서, 이하에서는, 도 21을 이용하여, 상기한 실시예 1에 나타낸 데이터 패킷 송수신 시스템과 같은 기능을 갖는 데이터 패킷 송수신 프로그램을 실행하는 컴퓨터의 일례를 설명한다. 도 21은 실시예 1에 있어서의 데이터 패킷 송수신 시스템의 프로그램을 도시한 도면이다.
도 21에 도시한 바와 같이, 송신 장치(2100)는 마우스(2101), 키보드(2102), CPU(2103), ROM(2104), HDD(2105), RAM(2106), 통신 제어 인터페이스(2107)를 버스(2109) 등으로 접속하여 구성되어 있다. 수신 장치(2200)는 마우스(2201), 키보드(2202), CPU(2203), ROM(2204), RAM(2206), HDD(2205), 통신 제어 인터페이 스(2207)를 버스(2209) 등으로 접속하여 구성되어 있다. 송신 장치(2100)와 수신 장치(2200)는 네트워크나 유선, 무선(적외선 통신, 블루투스 등) 등을 통해, 통신 제어 인터페이스(2107) 및 통신 제어 인터페이스(2207)에 의해서 접속되어 있다.
ROM(2104)에는 상기한 실시예 1에서 나타낸 송신 버퍼 제어부(130) 및 데이터 입력부(110)와 같은 기능을 발휘하는 송신 버퍼 제어 프로그램, 즉, 도 21에 도시하는 바와 같이, 크레디트 카운터 프로그램(2104a)과, 크레디트 가산 프로그램(2104b)과, 크레디트 감산 프로그램(2104c)과, 패킷 송신 제어 프로그램(2104d)과, 데이터 입력 프로그램(2104e)이 미리 기억되어 있다. 한편, 이들 프로그램(2104a∼2104e)은, 도 2에 도시한 송신 장치(100)의 각 구성 요소와 마찬가지로, 적절하게 통합 또는 분리하더라도 좋다.
그리고, CPU(2103)가 이들 프로그램(2104a∼2104e)을 ROM(2104)으로부터 독출하여 실행함으로써, 도 21에 도시하는 바와 같이, 각 프로그램(2104a∼2104e)은 크레디트 카운터 프로세스(2103a)와, 크레디트 가산 프로세스(2103b)와, 크레디트 감산 프로세스(2103c)와, 패킷 송신 제어 프로세스(2103d)와, 데이터 입력 프로세스(2103e)로서 기능하게 된다. 한편, 각 프로세스(2103a∼2103e)는 도 2에 도시한, 크레디트 카운터부(133)와, 크레디트 가산부(132)와, 크레디트 감산부(134)와, 패킷 송신 제어부(131)와, 데이터 입력부(110)에 각각 대응한다.
그리고, CPU(2103)는 RAM(2106)에 저장된 패킷 카운터 데이터(2106a)와 송신 버퍼 데이터(2106b)에 기초하여 송신 버퍼 제어 프로그램을 실행한다.
또한, ROM(2204)에는 상기한 실시예 1에서 나타낸 수신 버퍼 제어부(230) 및 데이터 출력부(220)와 같은 기능을 발휘하는 수신 버퍼 제어 프로그램, 즉, 도 21에 도시하는 바와 같이, 크레디트 송신 프로그램(2204a)과 데이터 출력 프로그램(2204b)이 미리 기억되어 있다. 한편, 프로그램(2204a와 2204b)은, 도 2에 도시한 수신 장치(200)의 각 구성 요소와 마찬가지로, 적절하게 통합 또는 분리하더라도 좋다.
그리고, CPU(2203)가 프로그램(2204a와 2204b)을 ROM(2204)로부터 독출하여 실행함으로써, 도 21에 도시하는 바와 같이, 프로그램(2204a와 2204b)은 크레디트 송신 프로세스(2203a)와 데이터 출력 프로세스(2203b)로서 기능하게 된다. 한편, 각 프로세스(2203a∼2203b)는 도 2에 도시한, 크레디트 송신부(231)와 데이터 출력부(220)에 각각 대응한다.
그리고, CPU(2203)는 RAM(2206)에 저장된 수신 버퍼 데이터(2206a)에 기초하여 수신 버퍼 제어 프로그램을 실행한다.
한편, 본 실시예에서 설명한 각 프로그램(2104a∼2104e나 2204a∼2204b)에 대해서는, 반드시 처음부터 ROM에 기억시켜 놓을 필요는 없으며, 예컨대 송신 장치(2100) 또는 수신 장치(2200)에 삽입되는 플렉서블 디스크, CD-ROM, MO 디스크, DVD 디스크, 광자기 디스크, IC 카드 등의 「가반용 물리 매체」 또는 송신 장치(2100) 또는 수신 장치(2200)의 안팎에 구비되는 HDD 등의 「고정용 물리 매체」, 나아가서는 공중회선, 인터넷, LAN, WAN 등을 통해 송신 장치(2100) 또는 수신 장치(2200)에 접속되는 「다른 컴퓨터(또는 서버)」 등에 각 프로그램을 기억시켜 놓고서, 송신 장치(2100) 또는 수신 장치(2200)가 이들로부터 각 프로그램을 읽어 내어 실행하도록 하더라도 좋다.
이상과 같이, 본 발명에 따른 데이터 패킷 송수신 시스템은, 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 데이터 패킷 송수신 시스템에 유용하며, 특히 수신 버퍼로서의 자원을 유효하게 이용할 수 있는 데이터 패킷을 송신하는 데이터 패킷 송수신 시스템을 실현하는 데에 적합하다.

Claims (11)

  1. 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 데이터 패킷 송수신 시스템으로서,
    상기 수신 장치는,
    상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 상기 송신 장치에 있어서 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 용량 특정 정보 송신 수단
    을 구비하고,
    상기 송신 장치는,
    상기 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하는 크레디트 기억 수단과,
    상기 송신 버퍼로부터 상기 수신 장치에 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하는 크레디트 가산 수단과,
    상기 수신 장치로부터 상기 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정된 용량에 따른 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트로부터 감산하여 저장하는 크레디트 감산 수단과,
    상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 기초하여, 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 송신 제어 수단
    을 구비한 것을 특징으로 하는 데이터 패킷 송수신 시스템.
  2. 제1항에 있어서,
    상기 용량 특정 정보 송신 수단은, 상기 용량 특정 정보로서, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 송신 장치에 송신하고,
    상기 크레디트 가산 수단은, 상기 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고,
    상기 크레디트 감산 수단은, 상기 수신 장치로부터 수신한 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트로부터 감산하여 저장하는 것을 특징으로 하는 데이터 패킷 송수신 시스템.
  3. 제1항에 있어서,
    상기 용량 특정 정보 송신 수단은, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 상기 용량 특정 정보를 상기 송신 장치에 송신하고,
    상기 크레디트 가산 수단은, 상기 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 데이터 패킷마다 구분하여 송신 순으로, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고,
    상기 크레디트 감산 수단은, 상기 데이터 패킷마다 구분하여 송신 순으로 상기 크레디트 기억 수단에 기억되어 있는 크레디트 중에서, 가장 오래전에 송신된 데이터 패킷의 크레디트를 감산하여 저장하는 것을 특징으로 하는 데이터 패킷 송수신 시스템.
  4. 제1항에 있어서,
    상기 송신 제어 수단은, 상기 데이터 패킷의 송신을 허가하는 경우에, 그 송신되는 데이터 패킷을 일의적으로 식별하는 식별 정보를 그 데이터 패킷에 부가하여 상기 수신 장치에 송신하고,
    상기 용량 특정 정보 송신 수단은, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 관계없이, 그 데이터 패킷에 부가되어 있는 식별 정보를 상기 송신 장치에 송신하고,
    상기 크레디트 가산 수단은, 상기 수신 장치에 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 데이터 패킷마다 구분하고 상기 식별 정보를 부가하여, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하여 저장하고,
    상기 크레디트 감산 수단은, 상기 데이터 패킷마다 구분되고 상기 식별 정보가 부가되어 상기 크레디트 기억 수단에 기억되어 있는 크레디트 중에서, 상기 수신 장치로부터 수신한 식별 정보에 대응하는 데이터 패킷의 크레디트를 감산하여 저장하는 것을 특징으로 하는 데이터 패킷 송수신 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 송신 제어 수단은, 상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 대하여, 상기 송신 장치로부터 송신하고자 하고 있는 데이터 패킷의 용량에 따른 크레디트의 값을 가산한 가산치가, 상기 수신 버퍼의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 상기 가산치가 상기 소정의 값에 달하고 있지 않은 경우에는 상기 데이터 패킷의 송신을 허가하고, 상기 가산치가 상기 소정의 값에 달하고 있는 경우에는 상기 데이터 패킷의 송신을 정지하도록 제어하는 것을 특징으로 하는 데이터 패킷 송수신 시스템.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 송신 제어 수단은, 상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값이, 상기 수신 버퍼의 용량으로부터 정해지는 소정의 값에 달하고 있는지 여부를 판정하여, 상기 크레디트의 값이 상기 소정의 값에 달하고 있지 않은 경우에는 상기 데이터 패킷의 송신을 허가하고, 상기 크레디트의 값이 상기 소정의 값에 달하고 있는 경우에는 상기 데이터 패킷의 송신을 정지하도록 제어하는 것을 특징으로 하는 데이터 패킷 송수신 시스템.
  7. 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 데이터 패킷 송수신 방법으로서,
    상기 수신 장치는,
    상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 상기 송신 장치에 있어서 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 용량 특정 정보 송신 공정
    을 포함하고,
    상기 송신 장치는,
    상기 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 크레디트 카운터에 기억하는 크레디트 기억 공정과,
    상기 송신 버퍼로부터 상기 수신 장치에 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 카운터에 기억되어 있는 크레디트에 가산하여 저장하는 크레디트 가산 공정과,
    상기 수신 장치로부터 상기 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정된 용량에 따른 값의 크레디트를, 상기 크레디트 카운터에 기억되어 있는 크레디트로부터 감산하여 저장하는 크레디트 감산 공정과,
    상기 크레디트 카운터에 기억되어 있는 크레디트의 값에 기초하여, 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 송신 제어 공정
    을 포함한 것을 특징으로 하는 데이터 패킷 송수신 방법.
  8. 송신 버퍼를 구비하는 송신 장치에서 수신 버퍼를 구비하는 수신 장치로 데이터 패킷을 송신하는 방법을 컴퓨터에 실행시키는 데이터 패킷 송수신 프로그램으 로서,
    상기 수신 장치로서의 컴퓨터는,
    상기 수신 버퍼에 저장되어 있는 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 상기 송신 장치에 있어서 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 용량 특정 정보 송신 단계
    를 컴퓨터에 실행시키고,
    상기 송신 장치로서의 컴퓨터는,
    상기 수신 버퍼의 용량에 대하여 실제로 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 크레디트 카운터에 기억하는 크레디트 기억 단계와,
    상기 송신 버퍼로부터 상기 수신 장치에 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 카운터에 기억되어 있는 크레디트에 가산하여 저장하는 크레디트 가산 단계와,
    상기 수신 장치로부터 상기 용량 특정 정보를 수신한 경우에, 그 용량 특정 정보를 이용하여 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하고, 그 특정된 용량에 따른 값의 크레디트를, 상기 크레디트 카운터에 기억되어 있는 크레디트로부터 감산하여 저장하는 크레디트 감산 단계와,
    상기 크레디트 카운터에 기억되어 있는 크레디트의 값에 기초하여, 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 송신 제어 단계
    를 컴퓨터에 실행시키는 것을 특징으로 하는 데이터 패킷 송수신 프로그램.
  9. 송신 장치로부터 송신되는 데이터 패킷을 수신하는 수신 장치로서,
    상기 데이터 패킷을 저장하는 수신 버퍼와,
    상기 수신 버퍼에 저장된 데이터 패킷을 독출하는 출력 수단과,
    상기 수신 버퍼에 저장되어 있는 상기 데이터 패킷이 독출된 경우에, 그 독출된 데이터 패킷의 용량을 특정할 때에 이용되는 용량 특정 정보를 상기 송신 장치에 송신하는 용량 특정 정보 송신 수단
    을 구비한 것을 특징으로 하는 수신 장치.
  10. 제9항에 있어서,
    상기 용량 특정 정보 송신 수단은, 상기 용량 특정 정보로서, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를 상기 송신 장치에 송신하는 것을 특징으로 하는 수신 장치.
  11. 수신 버퍼를 구비하는 수신 장치에 데이터 패킷을 송신하는 송신 장치로서,
    상기 수신 버퍼에 저장되어 있는 전체 데이터 패킷의 총용량에 따른 값을 크레디트로서 기억하는 크레디트 기억 수단과,
    상기 수신 장치에 상기 데이터 패킷이 송신된 경우에, 그 송신된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트에 가산하는 크레디트 가산 수단과,
    상기 수신 장치로부터 수신한, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량을 특정하는 용량 특정 정보에 기초하여, 상기 수신 버퍼로부터 독출된 데이터 패킷의 용량에 따른 값의 크레디트를, 상기 크레디트 기억 수단에 기억되어 있는 크레디트로부터 감산하는 크레디트 감산 수단과,
    상기 크레디트 기억 수단에 기억되어 있는 크레디트의 값에 기초하여, 상기 데이터 패킷의 송신을 허가 또는 정지하도록 제어하는 송신 제어 수단
    을 구비한 것을 특징으로 하는 송신 장치.
KR1020097005806A 2006-10-24 2006-10-24 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 기억한 컴퓨터 판독 가능한 기억 매체 KR101227770B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/321114 WO2008050394A1 (fr) 2006-10-24 2006-10-24 Système de transmission/réception de paquets de données, procédé de transmission/réception de paquets de données et programme de transmission/réception de paquets de données

Publications (2)

Publication Number Publication Date
KR20090042985A true KR20090042985A (ko) 2009-05-04
KR101227770B1 KR101227770B1 (ko) 2013-01-29

Family

ID=39324209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097005806A KR101227770B1 (ko) 2006-10-24 2006-10-24 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 기억한 컴퓨터 판독 가능한 기억 매체

Country Status (6)

Country Link
US (1) US8631152B2 (ko)
EP (1) EP2077504B1 (ko)
JP (1) JP5056762B2 (ko)
KR (1) KR101227770B1 (ko)
CN (1) CN101535970B (ko)
WO (1) WO2008050394A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5318875B2 (ja) * 2007-09-13 2013-10-16 アクセディアン・ネットワークス・インコーポレーテッド 非試験トラフィックに影響を与えることなくイーサネット(登録商標)経路およびリンクを試験するためのシステム
US9137160B2 (en) 2009-01-29 2015-09-15 Qualcomm Incorporated Method and apparatus for accomodating a receiver buffer to prevent data overflow
US8472437B2 (en) * 2010-02-15 2013-06-25 Texas Instruments Incorporated Wireless chip-to-chip switching
CN102566515B (zh) * 2010-12-09 2013-07-24 沈阳高精数控技术有限公司 一种用于总线式数控系统的数据互操作方法
BR112015019459B1 (pt) * 2013-03-15 2021-10-19 Intel Corporation Dispositivo para uso em um módulo de memória e método realizado em um módulo de memória
US9166918B1 (en) * 2013-09-30 2015-10-20 Juniper Networks, Inc. Methods and apparatus for scheduling transmission of data in a network
JP6331787B2 (ja) * 2014-07-08 2018-05-30 富士通株式会社 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法
CN104503935B (zh) * 2014-12-02 2018-07-24 天津国芯科技有限公司 一种可精确控制时序的iic控制装置和控制方法
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
US11381509B2 (en) 2017-03-17 2022-07-05 Citrix Systems, Inc. Increased packet scheduling throughput and efficiency using úber batching
US10567285B2 (en) 2017-03-17 2020-02-18 Citrix Systems, Inc. Increasing QoS throughput and efficiency through lazy byte batching

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821969B2 (ja) * 1988-09-13 1996-03-04 日本電気株式会社 伝送制御方法
JP3438442B2 (ja) 1995-11-08 2003-08-18 日本電信電話株式会社 通信システム
US5748613A (en) * 1996-03-29 1998-05-05 Hewlett-Packard Company Communication pacing method
US5825748A (en) * 1997-04-08 1998-10-20 International Business Machines Corporation Credit-based flow control checking and correction system
JPH11110315A (ja) 1997-07-31 1999-04-23 Matsushita Electric Ind Co Ltd 通信装置
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
US6337865B1 (en) * 1998-09-23 2002-01-08 Maxtor Corporation Fair buffer credit distribution flow control
JP2001094613A (ja) 1999-09-21 2001-04-06 Canon Inc 通信制御装置、方法および記録媒体
US7165094B2 (en) 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
JP3626697B2 (ja) * 2001-04-25 2005-03-09 エヌイーシーコンピュータテクノ株式会社 データ転送方法およびデータ転送システム
JP2004102378A (ja) * 2002-09-05 2004-04-02 Seiko Epson Corp 印刷効率を高くしたプリンタ
JP4111974B2 (ja) * 2003-07-18 2008-07-02 富士通株式会社 送信主導型フロー制御装置
US20050063308A1 (en) * 2003-09-24 2005-03-24 Wise Jeffrey L. Method of transmitter oriented link flow control
US7480730B2 (en) * 2004-04-08 2009-01-20 Nortel Networks Limited Credit recovery in a credit based flow control system
JP4106564B2 (ja) * 2004-08-13 2008-06-25 日本電気株式会社 フロー制御方式
US20060050639A1 (en) * 2004-09-03 2006-03-09 David Stuart Credit-based method and apparatus for controlling data communications
JP2006189937A (ja) * 2004-12-28 2006-07-20 Toshiba Corp 受信装置、送受信装置、受信方法及び送受信方法

Also Published As

Publication number Publication date
WO2008050394A1 (fr) 2008-05-02
CN101535970A (zh) 2009-09-16
EP2077504B1 (en) 2013-03-13
CN101535970B (zh) 2011-05-04
EP2077504A4 (en) 2010-03-24
EP2077504A1 (en) 2009-07-08
US20090207850A1 (en) 2009-08-20
KR101227770B1 (ko) 2013-01-29
US8631152B2 (en) 2014-01-14
JP5056762B2 (ja) 2012-10-24
JPWO2008050394A1 (ja) 2010-02-25

Similar Documents

Publication Publication Date Title
KR101227770B1 (ko) 데이터 패킷 송수신 시스템, 데이터 패킷 송수신 방법 및 데이터 패킷 송수신 프로그램을 기억한 컴퓨터 판독 가능한 기억 매체
JP4852194B2 (ja) デジタルデータネットワークにおけるメッセージフローを調整するシステムおよび方法
JP4358437B2 (ja) デジタルデータネットワークにおいてメッセージ伝送をスケジューリングし、処理を行うシステムおよび方法
US6721796B1 (en) Hierarchical dynamic buffer management system and method
JP2003531517A (ja) 切断/再接続フロー・キューを使用して出力をスケジューリングするネットワーク・プロセッサのための方法およびシステム
CN111355673A (zh) 一种数据处理方法、装置、设备及存储介质
TWI717373B (zh) 用於通用序列匯流排2.0頻寬保留之方法及系統
EP1591907B1 (en) Resource management
CN111966736B (zh) 一种高吞吐低延时大容量Flume通道及其传输方法
CN112073325B (zh) 数据拥塞控制及带宽预估方法
US8073999B2 (en) Data input-output control apparatus
CN108111406A (zh) 中继装置及通信系统
JP4228850B2 (ja) パケット中継装置
JP3699681B2 (ja) 優先クラスの割り当て変更を伴う呼受付制御方法およびノード装置
JP3719166B2 (ja) パケット廃棄優先度を付加する優先制御方法および装置
JP6793143B2 (ja) デバイス割り当て制御方法、システムおよびプログラム
JP2005086438A (ja) パケット送信端末
JPH1013463A (ja) キュー制御方法
US20080181105A1 (en) Bandwidth control system, method, and program storage medium storing program thereof
CN117743239A (zh) 一种读请求发送装置、芯片及电子设备
CN116185922A (zh) 一种数据传输方法、控制设备及计算设备
CN117228461A (zh) 一种电梯直放站调控方法、装置、电子设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20111125

Effective date: 20121231

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee