KR101341668B1 - 데이터 통신 링크를 통한 데이터 흐름 제어 - Google Patents
데이터 통신 링크를 통한 데이터 흐름 제어 Download PDFInfo
- Publication number
- KR101341668B1 KR101341668B1 KR1020117004951A KR20117004951A KR101341668B1 KR 101341668 B1 KR101341668 B1 KR 101341668B1 KR 1020117004951 A KR1020117004951 A KR 1020117004951A KR 20117004951 A KR20117004951 A KR 20117004951A KR 101341668 B1 KR101341668 B1 KR 101341668B1
- Authority
- KR
- South Korea
- Prior art keywords
- flow control
- communication
- corrupted
- transmitter
- receiver
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
- H04L47/323—Discarding or blocking control packets, e.g. ACK packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
데이터 통신 링크 - 이 링크는, 링크 상에서의 데이터 통신의 수신기가 자신에 의해 결정되는 기간 동안 링크 상에서의 데이터 통신을 일시 정지할 수 있는 데이터 통신 프로토콜에 따라 동작함 - 를 이용하여 데이터 흐름을 제어하는 것은, 송신기를 위해 흐름 제어 기간의 지속 기간을 특정하는 것과, 송신기를 위해 흐름 제어 기간 동안 송신기로부터 수신기로 송신되는 손상 통신 제어 패킷들의 개수를 특정하는 것과, 송신기에 의해, 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되는지를 결정하는 것과, 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되는지 여부에 따라, 손상 통신 제어 패킷들의 개수를 변경하는 것과, 후속하는 흐름 제어 기간 동안 정상 데이터 통신 중 송신기로부터 수신기로 변경된 개수의 손상 통신 제어 패킷들을 송신하는 것을 포함한다.
Description
본 발명은 데이터 처리에 관한 것으로서, 보다 상세하게는, 데이터 통신 링크를 통한 데이터를 제어하기 위한 방법, 장치 및 제품에 관한 것이다.
1948년의 EDVAC 컴퓨터 시스템 개발을 흔히 컴퓨터 시대의 서막이라고 인용한다. 그 이후로, 컴퓨터 시스템은 매우 복잡한 장치로 발달되어 왔다. 오늘날의 컴퓨터는 EDVAC과 같은 초기 시스템보다 훨씬 복잡하다. 컴퓨터 시스템은 통상적으로 하드웨어 컴포넌트와 소프트웨어 컴포넌트, 애플리케이션 프로그램, 운영 체제, 프로세서, 버스, 메모리, 입력/출력 장치 등의 조합을 포함한다. 반도체 처리와 컴퓨터 아키텍처에서의 발달에 따라 컴퓨터 성능이 더욱 향상되므로, 보다 높은 하드웨어 성능을 이용하도록 보다 복잡한 컴퓨터 소프트웨어를 개발하게 되었으며, 그 결과 불과 몇 년 전보다 매우 강력한 오늘날의 컴퓨터 시스템에 이르게 되었다.
상당한 진전을 보인 분야들 중 하나는 그 분야에서 여전히 개선할 필요성이 있음에도 불구하고, 데이터 통신 분야이다. 예를 들어, IEEE 802.1x 프로토콜들을 포함한 일부 데이터 통신 프로토콜들은 가장 기본적인 흐름 제어 메커니즘들을 정의한다. 이러한 기본적인 흐름 제어 메커니즘들은, 통상적으로, 수신기가 정체를 겪으면, 수신기가 발신기에 흐름 제어 메시지에서 정의된 기간 동안 모든 통신을 중단할 수 있는 그 흐름 제어 메시지를 한 프레임 뒤돌려 송신할 수 있고, 송신할 수 있는 "x-on" 및 "x-off" 스킴(scheme)에 기초한다. 이 스킴의 단점은, 흐름 제어를 제공하기 위해 소정의 데이터 통신 링크 상에서 동작하고 있는 모든 세션들이 인터럽트된다는 점이다. 높은 레이턴시 요건 및 낮은 레이턴시 요건 모두를 갖는 세션들은 모두 인터럽트된다. 비디오/오디오 정보를 스트리밍하는 세션들에서는 유해한 인터럽션이 발생할 위험성이 있어서, 비디오/오디오 스트림에서의 가시적인 손실(dropout)이 발생할 수 있다. 이러한 x-on/x-off 기술은, 네트워크 혼잡성을 완화하지만, 임의의 특정한 통신 세션이 가질 수 있는 특정한 데이터 통신 요건이나 우선순위에 상관없이 링크 상의 모든 통신 세션을 인터럽트하는 매우 값비싼 대가를 치른다. 이는 흐름 제어가 가능한 드물게 호출되는 것을 확실히 하기 위해 네트워크가 추가 대역폭을 많이 갖도록 과설계(over-design)되어야 함을 의미한다.
본 발명은 데이터 통신 흐름 제어 이벤트들을 최소화하며 또한 네트워크가 원활하게 동작하도록 흐름 제어를 제공하는 방법, 장치 및 제품을 설명한다. 본 발명은 높은 우선순위 세션을 위한 흐름 제어를 제공하며 또한 보다 낮은 우선순위 통신 세션의 흐름을 여전히 유지하는 선택사항인 추가 해결책을 설명한다. 보다 상세하게, 본 발명은, 데이터 통신 링크 - 이 링크는, 링크 상에서의 데이터 통신의 수신기가 데이터 통신의 현재 레벨의 대역폭의 부족을 검출하면 송신기에 흐름 제어 메시지를 송신함으로써 수신기에 의해 결정되는 기간 동안 그 링크 상의 데이터 통신을 일시 정지(suspend)하는 데이터 통신 프로토콜에 따라 동작함 - 를 통해 데이터 흐름을 제어하기 위한 방법, 장치 및 컴퓨터 프로그램 제품을 설명하며, 송신기를 위해 흐름 제어 기간의 지속 기간을 특정하는 것과, 송신기를 위해 흐름 제어 기간 동안 송신기로부터 수신기로 송신되는 손상(corrupt) 통신 제어 패킷들의 개수를 특정하는 것과, 송신기에 의해, 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되는지를 결정하는 것과, 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되는지 여부에 따라, 손상 통신 제어 패킷들의 개수를 변경하는 것과, 후속하는 흐름 제어 기간 동안 정상 데이터 통신 중에서 송신기로부터 수신기로 그 변경된 개수의 손상 통신 제어 패킷들을 송신하는 것을 포함한다.
본 발명의 전술한 특징과 이점 및 다른 특징과 이점은, 유사한 참조 번호들이 전체적으로 본 발명의 예시적인 실시예들의 유사한 부분들을 나타내는 첨부 도면에 도시된 바와 같이 이하의 본 발명의 예시적인 실시예들의 보다 상세한 설명으로부터 명백할 것이다.
도 1은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 시스템의 네트워크 도이다.
도 2는 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하는 방법의 일례를 도시하는 흐름도이다.
도 3은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 방법의 예시적인 다른 일례를 도시하는 흐름도이다.
도 4는 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 방법의 예시적인 또 다른 일례를 도시하는 흐름도이다.
도 1은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 시스템의 네트워크 도이다.
도 2는 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하는 방법의 일례를 도시하는 흐름도이다.
도 3은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 방법의 예시적인 다른 일례를 도시하는 흐름도이다.
도 4는 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 방법의 예시적인 또 다른 일례를 도시하는 흐름도이다.
본 발명에 따라 데이터 통신 링크를 통해 데이터 흐름을 제어하기 위한 예시적인 방법, 장치 및 제품을 첨부 도면을 참조하여 먼저 도 1로 설명한다. 도 1은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 시스템의 네트워크 도이다. 도 1의 시스템은, 데이터 통신의 송신기, 데이터 통신의 여러 수신기들(194), 및 송신기(152)로부터 수신기들(194) 중 하나 이상으로 데이터 통신이 송신되는 두 개의 데이터 통신 네트워크(100, 101)를 포함한다. 네트워크들(100, 101)은 로컬 에어리어 네트워크(100)와 와이드 에어리어 네트워크(101)로서 표현된다. 수신기들(194)은 로컬 에어리어 네트워크(100)를 통한 데이터 통신을 위해 송신기(152)에 연결된 퍼스널 컴퓨터(108), 로컬 에어리어 네트워크(100)를 통한 데이터 통신을 위해 송신기(152)에 또한 연결된 랩탑 컴퓨터(126), 로컬 에어리어 네트워크(100)와 와이드 에어리어 네트워크(101)를 통한 데이터 통신을 위해 송신기(152)에 연결된 개인 휴대 정보 단말기(112), 및 로컬 에어리어 네트워크(100)와 와이드 에어리어 네트워크(101)를 통한 데이터 통신을 위해 송신기(152)에 또한 연결된 서버(106)를 포함한다.
설명의 편의상, 이하에서 더욱 상세히 설명하는 바와 같이, 이 예에서의 송신기(152)는 송신기의 동작을 제어하는 컴퓨터 프로그램 명령어들이 저장되는 컴퓨터 메모리(168)에 동작가능하게 연결된 컴퓨터 프로세서(156)를 구비하는 자동화 장치로서 표현된다. 그러나, 실제로는 송신기가 데이터 통신이 가능한 거의 임의의 자동화 장치, 예를 들어, 당업자에게 자명하듯이, 퍼스널 컴퓨터, 랩탑 컴퓨터, 이동 전화, 개인 휴대 정보 단말기, 모바일 인터넷 장치 등으로서 구현될 수 있다는 점을 당업자라면 인식할 것이다.
도 1의 예에서 모든 자동화 장치들이 데이터 통신을 송신 및 수신할 수 있다는 것을 당업자라면 인식할 것이다. 그러나, 본 명세서에서 사용되는 바와 같은 '송신기' 및 '수신기'라는 용어들은 특정한 데이터 통신 메시지에 대한 특정한 장치의 특정한 식별 정보라기보다는 일반적인 역할을 나타낸다. 본 명세서에서 사용되는 바와 같은 '송신기'라는 용어는, 일반적으로 메시지 정보를 수신기에 송신하는, 엔티티, 컴퓨터, 다른 자동화 장치, 또는 통신 어댑터이다. 본 명세서에서 사용되는 바와 같은 '수신기'라는 용어는, 일반적으로 송신기로부터 메시지 정보를 수신하는, 엔티티, 컴퓨터, 일부 다른 자동화 장치, 또는 통신 어댑터이다. 따라서, 본 명세서에서 송신기와 수신기를 특징짓는 것은, 임의의 특정한 데이터 통신 메시지의 방향이라기보다는 메시지 트래픽 흐름의 전체적인 방향이다.
도 1의 예에서, 송신기(152)는 데이터 통신을 위해 '링크'라 칭하는 데이터 통신 경로들을 통해 수신기들(194)과 연결되어 있으며, 송신기와 수신기 간의 이러한 데이터 통신은 그 링크가 동작되는 적어도 하나의 데이터 통신 프로토콜(133)에 따라 실행된다. 이러한 링크들은 도 1의 예에서 송신기(152)로부터 수신측 서버(106)로 로컬 에어리어 네트워크(100)와 와이드 에어리어 네트워크(101)를 통한 데이터 통신 경로(140, 144, 146)뿐만 아니라 송신기(152)로부터 수신측 랩탑 컴퓨터(126)로 로컬 에어리어 네트워크(100)를 통한 데이터 통신 경로(140, 142)에 의해서도 표현되어 있다.
도 1의 예에서는, 이러한 데이터 통신이 하드웨어층, 링크층, 네트워크층, 송신 제어층 등의 스택에서 수직 접속을 형성하는 인터페이스를 이용하여 스택으로 구성된 프로토콜들을 갖는 통상적으로 하나보다 많은 데이터 통신 프로토콜을 구현한다는 점을 당업자라면 인식하겠지만, 설명의 편의상, 하나의 데이터 통신 프로토콜(133)만이 도시되어 있다. 예를 들어, 수신기가 데이터를 처리할 수 있는 것보다 빠르게 데이터가 수신기에 도달할 때, 이러한 프로토콜들이 송신기에 대하여 소정의 기간 동안 일시 정지할 것을 알리도록 수신기를 활성화하는 것은 흔하며, 이는 통신의 수신측에서의 처리 대역폭이 부족함을 입증하는 것이다. 송신기의 관점에서 볼 때, 수신기에 의해 결정되는 기간 동안 수신기에 의해 영향을 받는 이러한 통신 일시 정지는 송신기가 전혀 제어하지 못하는 대규모 중단(massive disruption)인 통신 재난으로서 보일 수 있다.
본 명세서에서, '링크'라는 용어는 수신기가 자신에 의해 결정되는 기간 동안 송신기로부터의 통신을 일시 정지할 수 있게 하는 흐름 제어를 지원하는 임의의 데이터 통신 프로토콜 스택의 임의의 층에서의 임의의 데이터 통신 경로 또는 연결을 가리킨다. 이러한 수신기는, 예를 들어, 수신 애플리케이션의 각 인입 메시지를 처리하도록 대기하는 동안 인입 메시지들을 저장하는 고정된 크기의 수신 큐(132)를 유지하고, 큐의 관련된 충만성(fullness)을 추적하고, 일부 소정의 임계값을 초과하는 큐의 채움성(fullness)을 대역폭 부족으로서 해석함으로써, 대역폭의 부족을 검출할 수 있다. 이러한 프로토콜의 예로는, 이더넷 프로토콜, 802.1x 프로토콜 등이 있으며, 이러한 프로토콜들의 각각은, 송신기가 메시지 트래픽을 수신기에 송신하는 것이 허용되지 않는, 그 수신기에 의해 결정되는 기간을 메시지 내용의 일부로서 포함할 수 있는 'XOFF' 메시지 유형 등의 메시지 유형을 지원한다.
본 발명에 따라 데이터 통신 링크를 통한 데이터 흐름 제어는 일반적으로 컴퓨터를 이용하여, 즉, 자동화된 계산 기계를 이용하여 구현된다. 도 1의 시스템에서, 예를 들어, 송신기(152), 모든 수신기들(194) 및 두 개의 네트워크(100, 101)는 컴퓨터로서 적어도 어느 정도 구현된다. 따라서, 부연 설명하자면, 도 1은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름 제어에 있어서 유용한 예시적인 송신기(152)를 포함하는 자동화된 기계의 블록도를 도시한다. 도 1의 송신기(152)는 고속 메모리 버스(166)와 버스 어댑터(158)를 통해 프로세서(156) 및 송신기(152)의 기타 컴포넌트들에 접속된 RAM(168) 뿐만 아니라 적어도 하나의 컴퓨터 프로세서(156), 즉, 'CPU'도 포함한다.
RAM(168)에 저장된 것은, 사용자 레벨 데이터 처리를 실시하고 메시지들을 하나 이상의 수신기에 송신함으로써 데이터 통신을 활용하는 컴퓨터 프로그램 명령어들의 모듈인 애플리케이션 프로그램(151)이다. 또한, RAM(168)에 저장된 것은 운영 체제(154)이다. 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하는 데 유용하는 운영 체제로는, 당업자에게 자명하듯이, UNIX™, Linux™, Microsoft XP™, AIX™, IBM's i5/OS™ 등이 있다. 또한, 운영 체제의 일부로서 RAM에 저장된 것은, 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하도록 애플리케이션 프로그램을 대신하여 서비스를 제공하는 컴퓨터 프로그램 명령어들의 모듈인 통신 서브시스템(126)이다. 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하도록 개선될 수 있는 통신 서브시스템의 예로는, TCP/IP 엔진, 이더넷 드라이버, 802.1x 드라이버 등이 있다. 도 1의 예에서는, 애플리케이션 프로그램(151), 운영 체제(154) 및 통신 서브시스템(126)이 RAM(168) 내에 있는 것으로 도시되어 있지만, 이러한 소프트웨어의 많은 컴포넌트들은 통상적으로 예를 들어 디스크 드라이브(170)와 같은 비휘발성 메모리 또는 플래시 메모리(134) 내의 펌웨어(136)에도 저장된다.
도 1의 컴퓨터(152)는 확장 버스(160)와 버스 어댑터(158)를 통해 프로세서(156) 및 송신기(152)의 기타 컴포넌트들에 연결된 디스크 드라이브 어댑터(172)를 포함한다. 디스크 드라이브 어댑터(172)는 디스크 드라이브(170)의 형태인 비휘발성 데이터 저장 장치를 컴퓨터(152)에 접속한다. 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하도록 컴퓨터에서 유용한 디스크 드라이브 어댑터로는, 당업자에게 자명하듯이, IDE(Integrated Drive Electronics), SCSI(Small Computer System Interface) 등이 있다. 또한, 비휘발성 컴퓨터 메모리는, 당업자에게 자명하듯이, 광 디스크 드라이브, 전기적으로 소거가능하고 프로그래밍가능한 판독 전용 메모리(소위 EEPROM 또는 플래시 메모리라 함), RAM 드라이브 등으로서 구현될 수도 있다.
도 1의 컴퓨터(152)는 하나 이상의 입력/출력(I/O) 어댑터(178)를 포함한다. I/O 어댑터는, 예를 들어, 키보드와 마우스와 같은 사용자 입력 장치(181)로부터의 사용자 입력뿐만 아니라 컴퓨터 디스플레이 스크린과 같은 표시 장치에 대한 출력을 제어하기 위한 소프트웨어 드라이버 및 컴퓨터 하드웨어를 통해, 사용자 지향 입력/출력을 구현한다. 도 1의 컴퓨터(152)는, 디스플레이 스크린이나 컴퓨터 모니터와 같은 표시 장치(180)에 대한 그래픽 출력을 위해 특정하게 설계된 I/O 어댑터의 일례인 비디오 어댑터(209)를 포함한다. 비디오 어댑터(209)는 고속 비디오 버스(164), 버스 어댑터(158) 및 고속 버스라고도 칭하는 프론트 사이드 버스(162)를 통해 프로세서(156)에 접속된다.
도 1의 예시적인 컴퓨터(152)는 다른 컴퓨터들(182)과의 데이터 통신을 위한 그리고 데이터 통신 네트워크(100)와의 데이터 통신을 위한 통신 어댑터(167)를 포함한다. 이러한 데이터 통신은, 당업자에게 자명하듯이, RS-232 접속을 통해, 유니버설 시리얼 버스(USB)와 같은 외부 버스를 통해, IP 데이터 통신 네트워크와 같은 데이터 통신 네트워크를 통해 직렬로 및 기타 방식으로 실행될 수 있다. 통신 어댑터는 하나의 컴퓨터가 데이터 통신을 다른 하나의 컴퓨터에 직접적으로 또는 데이터 통신 네트워크를 통해 송신하는 데이터 통신의 하드웨어 레벨을 구현한다. 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 유용한 통신 어댑터의 예로는, 유선 다이얼업 통신용 모뎀, 유선 데이터 통신 네트워크 통신을 위한 이더넷(IEEE 802.3) 어댑터, 무선 데이터 통신 네트워크 통신용 802.11 어댑터가 있다.
이 예에서, 송신기의 통신 어댑터(102) 자체는 컴퓨터 프로세서(104)와 메모리 버스(167)를 통해 그 컴퓨터 프로세서에 접속된 컴퓨터 메모리(106)를 포함하는 송신기의 자동화된 서브시스템이다. 통신 어댑터의 컴퓨터 메모리 내에 배치된 것은, 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하도록 개선되는 데이터 통신을 위한 컴퓨터 프로그램 명령어들의 모듈인 통신 프로그램(108)이다. 통신 어댑터는, 자신의 컴퓨터 메모리(106) 내에서, 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름 제어를 지원하는 매개변수들, 예를 들어, 흐름 제어 기간 동안 송신할 손상 패킷들의 개수를 특정하는 매개변수(208), 흐름 제어 기간 동안 지속 기간을 특정하는 매개변수(206) 및 흐름 제어 기간들의 소정의 개수를 특정하는 매개변수(212)를 이용하여 구성된다. 통신 어댑터(102), 애플리케이션 프로그램(151) 및 통신 서브시스템(154)은 이하와 같이 데이터 통신 링크를 통한 데이터 흐름을 제어하도록 송신기를 함께 동작시킨다.
송신기(152)는 흐름 제어 기간들을 위한 특정된 지속 기간(106)을 갖고, 각 흐름 제어 기간 동안 송신기로부터 수신기로 송신될 손상 통신 제어 패킷들의 개수의 명세(208)를 갖는다. 송신기(152)와 수신기들(194) 모두는 데이터 통신 링크들을 통해 데이터 통신을 행하고, 이러한 데이터 통신 링크들의 각각은, 링크 상의 데이터 통신의 수신기가 데이터 통신의 현재 레벨을 위한 대역폭의 부족을 검출하면 흐름 제어 메시지(135)를 송신기에 송신함으로써 수신기에 의해 결정되는 기간 동안 링크 상의 데이터 통신을 일시 정지할 수 있는 데이터 통신 프로토콜(133)에 따라 동작한다. 이러한 통신에서, 송신기(152)는 통신을 일시 정지하는 이러한 흐름 제어 메시지(135)가 각 흐름 제어 기간 동안 수신기로부터 수신되는지를 결정한다. 이어서, 송신기는 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되었는지에 따라 흐름 제어 기간 동안 수신기에 송신될 손상 통신 제어 패킷들의 개수를 변경한다. 이어서, 송신기는, 정상 데이터 통신(304) 중에 후속하는 흐름 제어 기간 동안 송신기로부터 수신기로 변경된 개수의 손상 통신 제어 패킷들(236)을 송신한다.
손상 통신 제어 패킷(236)은, 수신기가 그 패킷을 임의의 방식으로 처리하기보다는 그 패킷을 수신시 즉시 폐기하도록 의도적으로 손상된 통신 제어 패킷이다. 이러한 문맥에서 이 패킷을 '제어' 패킷이라 칭하며, 그 이유는 수신측의 애플리케이션 프로그램이 이러한 패킷을 보지 못하기 때문에 페이로드 데이터를 전달하기보다는 수신측의 처리 대역폭에 영향을 끼치지 않으면서 송신 대역폭을 제어하는 것을 목적으로 하기 때문이며, 이러한 손상 패킷들은 통신 프로토콜 스택에서 로우(low) 상태로 폐기된다. 따라서, 이러한 손상 패킷들은 송신기로부터 성공적으로 송신되지만 수신기에 도달시 또는 도달 전에 폐기되도록 충분히 손상될 정도로 충분히 정상적이어야 한다. 이러한 손상은, 당업자에게 자명하듯이, 예를 들어, 패킷 내에 결함 체크섬, 짧은 수명(short time to live), 미지원 버전 번호 등을 포함함으로써 결함 패킷들이 일상적으로 드롭(drop)되는 인터넷 프로토콜과 같은 손실있는 프로토콜에서 구현될 수 있다. 짧은 수명을 이용함으로써 손상 패킷이 수신기에 도달하기 전에 드롭될 수 있지만, 이러한 절차는 수신측의 처리 대역폭의 감소 없이 송신 대역폭을 감소시키는 유익한 효과를 여전히 갖는다. 이렇게 정상 통신 중에 손상 통신 제어 패킷들을 배치함으로써, 송신기는 정상 통신을 위해 이용가능한 송신 대역폭을 효과적으로 감소시키고, 이에 따라 정상 통신의 송신을 느리게 하고, 수신측의 처리 기능에 따라잡은 시간을 제공하고, 송신 대역폭을 수신측의 처리 대역폭과 균형을 맞추고, 흐름 제어 메시지가 송신측으로부터의 데이터 통신을 심각하게 중단시키는 위험을 감소시킨다. 이러한 방안은 흐름 제어 메시지의 심각한 중단 위험을 감소시키기 위해 정상적 송신 대역폭의 일부 감소를 수용한다.
송신기(152)는, 흐름 제어 기간 동안 흐름 제어 메시지가 수신되면 손상 통신 제어 패킷들의 개수를 증분하고 이어서 후속하는 흐름 제어 기간들 동안 그 증분된 개수의 손상 통신 제어 패킷들을 송신함으로써, 손상 통신 제어 패킷들의 개수(208)를 변경할 수 있다. 송신기(152)는, 흐름 제어 기간 동안 흐름 제어 메시지가 수신되지 않으면 손상 통신 제어 패킷들의 개수를 감분하고 이어서 후속하는 흐름 제어 기간들 동안 그 감분된 개수의 손상 통신 제어 패킷들을 송신함으로써, 손상 통신 제어 패킷들의 개수(208)를 변경할 수 있다. 송신기(152)는, 소정의 개수의 흐름 제어 기간들 동안 흐름 제어 메시지가 수신되지 않는 경우에만 손상 통신 제어 패킷들의 개수를 감분하고 후속하는 흐름 제어 기간들 동안 그 감분된 개수의 손상 통신 제어 패킷들을 송신함으로써, 손상 통신 제어 패킷들의 개수(208)를 변경할 수 있다. 또한, 정상 데이터 통신(304)은 통신 우선순위를 특정으로 할 수 있으며, 송신기(152)는 우선순위에 따라 정상 데이터 통신(304)을 데이터 통신 큐(110) 내에 큐잉하고 손상 패킷들(236)을 낮은 우선순위 큐 내에만 큐잉할 수 있으며, 낮은 우선순위 큐로부터만 변경된 개수의 손상 통신 제어 패킷들을 송신할 수 있다.
송신기, 수신기들 및 도 1에 도시한 시스템을 구성하는 네트워크들의 배열은 설명을 위한 것이며 본 발명을 한정하는 것이 아니다. 본 발명의 다양한 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하도록 유용한 데이터 처리 시스템들은, 당업자에게 자명하듯이, 도 1에 도시하지 않은, 추가 컴퓨터, 송신기, 수신기, 네트워크 라우터, 서버, 기타 장치, 클라이언트-서버 및 피어-투-피어 아키텍처를 포함할 수 있다. 이러한 데이터 처리 시스템의 네트워크는, 당업자에게 자명하듯이, 예를 들어, TCP(송신 제어 프로토콜), IP(인터넷 프로토콜), HTTP(하이퍼텍스트 전달 프로토콜), WAP(무선 액세스 프로토콜), HDTP(핸드헬드 장치 전송 프로토콜) 등을 비롯한 많은 데이터 통신 프로토콜들을 지원할 수 있다. 본 발명의 다양한 실시예들은 도 1에 도시한 것 외에도 다양한 하드웨어 플랫폼 상에서 구현될 수 있다.
부연 설명하자면, 도 2는 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하는 방법의 일례를 도시하는 흐름도이다. 이 예에서, 링크는, 링크 상의 데이터 통신의 수신기(도 1의 부재 번호 194)가, 데이터 통신의 현재 레벨의 대역폭 부족을 검출하면, 흐름 제어 메시지를 송신기에 송신함으로써 수신기에 의해 결정되는 기간 동안 링크 상의 데이터 통신을 일시 정지할 수 있는 데이터 통신 프로토콜에 따라 동작한다. '데이터 통신 링크'라는 용어는 통상적으로 ISO 데이터 통신 프로토콜 스택의 링크층에서의 데이터 통신 연결을 가리키는 데 사용된다는 것을 당업자라면 인식할 것이다.
'데이터 통신 링크'라는 용어는 본 명세서에서 다소 넓은 의미로 사용되지만, 수신기가 자신에 의해 결정되는 기간 동안 송신기로부터의 통신을 일시 정지하게 할 수 있는 흐름 제어를 지원하는 임의의 데이터 통신 프로토콜 스택의 임의의 층에서의 임의의 데이터 통신 경로 또는 연결을 가리키도록 사용된다. 이러한 수신기는, 예를 들어, 수신 애플리케이션이 각 인입 메시지를 처리하도록 대기하는 동안 인입 메시지들을 저장하는 고정된 크기의 수신 큐를 유지하고, 큐의 관련된 충만성을 추적하고, 일부 소정의 임계값을 초과하는 큐의 채움성을 대역폭 부족으로서 해석함으로써, 대역폭의 부족을 검출할 수 있다. 이러한 프로토콜들의 예로는, 이더넷 프로토콜, 802.1x 프로토콜 등이 있으며, 이러한 예들의 각각은, 송신기가 메시지 트래픽을 수신기에 송신하지 못하는 동안인 그 수신기에 의해 결정되는 기간을 메시지 내용의 일부로서 포함할 수 있는 'XOFF' 메시지 유형 등의 메시지 유형을 지원한다. 송신기의 관점에서 볼 때, 수신기에 의해 결정되는 기간 동안 수신기에 의해 영향을 받는 이러한 통신의 일시 정지는 송신기가 제어를 전혀 갖지 못하는 중단인 통신 재난으로서 보일 수 있다.
전술한 바와 같이, '송신기'와 '수신기'라는 용어들은 특정한 메시지에 관한 특정한 액터(actor)의 특정 식별 정보라기보다는 일반적인 역할을 가리킨다. 본 명세서에서 사용되는 용어인 '송신기'는, 일반적으로 메시지 정보를 수신기에 송신하는, 엔티티, 컴퓨터, 기타 자동화 장치 또는 통신 어댑터이다. 본 명세서에서 사용되는 용어인 '수신기'는, 일반적으로 송신기로부터 메시지 정보를 수신하는, 엔티티, 컴퓨터 또는 통신 어댑터이다. 즉, '송신기'와 '수신기'라는 역할은 메시지 트래픽 흐름 방향의 일반적인 표시이며, 이에 따라, 예를 들어, 흐름 제어 메시지를 '송신기'에 송신하는 것이 수신기일 수 있으며, 그 이유는 메시지 트래픽 흐름의 전체적인 방향이 송신기로부터 수신기로 향하기 때문이다. 수신기로부터 송신기로 흐름 제어 메시지의 송신은 송신기와 수신기를 특징짓는 메시지 트래픽 흐름의 전체적 방향에 대하여 예외이다.
도 2의 방법은, 송신기를 위해, 흐름 제어 기간을 위한 지속 기간(206)을 특정하는 단계(202)를 포함한다. 지속 기간을 특정하는 단계는, 지속 기간을, 예를 들어, 통신 어댑터의 제조시 비휘발성 메모리에 저장된 펌웨어 매개변수와 같은 통신 어댑터를 위한 동작 매개변수로서 특정함으로써 실시될 수 있다. 대안으로, 흐름 제어 기간을 위한 지속 기간은 사용자 인터페이스를 통해 어느 때라도 입력되며 통신 어댑터의 펌웨어에 저장되는 사용자 정의 통신 매개변수로서 구현될 수 있다. 또한, 흐름 제어 기간들을 위한 지속 기간의 명세는, 당업자에게 자명하듯이, 다른 방식으로 구현될 수 있으며, 이러한 모든 방식들은 충분히 본 발명의 범위 내에 있다. 본 발명의 실시예들에 따른 흐름 제어 기간들을 위한 지속 기간은, 본 발명의 실시예들에 따라 흐름 제어 메시지들이 검출되고 손상 통신 제어 패킷들이 송신되는 특정된 기간이다.
도 2의 방법은, 송신기를 위해, 하나 이상의 흐름 제어 기간 동안 송신기로부터 수신기로 송신될 손상 통신 제어 패킷들의 개수(208)를 특정하는 단계(204)를 포함한다. 도 2의 방법에서, 손상 통신 제어 패킷(236)은, 수신기가 의도적으로 손상된 통신 제어 패킷을 임의의 방식으로 처리하기보다는 그 패킷을 수신 즉시 폐기하도록 의도적으로 손상된 그 통신 제어 패킷을 포함한다. 데이터 통신을 수신기에 송신하는 궁극적은 목적은 통신 내용인 메시지의 내용을, 수신기 내의 수신기 상의, 또는 수신기에 연관된 애플리케이션 프로그램에 의해 처리하기 위해서이다. 정상 통신 패킷들은 송신기로부터 소정의 속도로 송신되며 수신측 애플리케이션에 의해 소정의 속도로 소모된다. 수신측의 처리 대역폭이 송신 대역폭보다 작으면, 메시지 트래픽은 수신 큐에 누적되고, 수신기 상의 통신 어댑터는 결국 흐름 제어 메시지를 송신하여, 송신기의 통신 동작을 중단시킨다. 손상 패킷들을 송신함으로써, 수신측의 처리 대역폭을 감소시키지 않고 정상 통신을 위한 송신 대역폭을 감소시킨다. 손상 패킷들은 무용 통신 패킷들로 손상 대역폭의 일부를 차지하기 때문에 정상 통신을 위한 정상 송신 대역폭을 감소시킨다. 손상 패킷들은 수신측의 처리 대역폭에 영향을 끼치지 않으며, 그 이유는 그러한 처리 대역폭이 손상 패킷들을 검출하고 드롭하여 처리를 위해 수신측 애플리케이션에 제시하지 않는 통신 어댑터나 저 레벨 프로토콜 엔진 내에서의 처리와 같은 저 레벨 처리이기 때문이다.
도 2의 방법은 흐름 제어 기간 동안 흐름 제어 메시지가 수신기로부터 수신되는지를 송신기에 의해 결정하는 단계(210)를 포함한다. 본 발명의 실시예들에 따라, 흐름 제어 메시지는, 예를 들어, 포트 기반 네트워크 액세스 제어를 위한 IEEE 802.1x 규격에 따라 XOFF 패킷을 포함할 수 있다. 전술한 바와 같이, 이러한 흐름 제어 메시지를 수신함으로써, 송신기의 관점에서 볼 때, 데이터 통신을 중단하게 된다. 송신기는, 예를 들어, 흐름 제어 기간의 지속 기간을 추적하고, 흐름 제어 기간 동안 수신되는 흐름 제어 메시지들을 카운팅하고, 흐름 제어 기간의 종료시 흐름 제어 메시지들의 카운트가 제로(0)보다 큰지를 관측하고, 카운트가 제로보다 크면 다음 흐름 제어 기간 동안의 사용을 위해 그 카운트를 제로로 리셋함으로써, 흐름 제어 기간 동안 이러한 흐름 제어 메시지가 수신되는지를 결정할 수 있다.
또한, 도 2의 방법은, 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되는지에 따라, 손상 통신 제어 패킷들의 개수를 변경하는 단계(220) 및 후속하는 흐름 제어 기간 동안 정상 데이터 통신 중에 그 변경된 개수의 손상 통신 제어 패킷들을 송신기로부터 수신기로 송신하는 단계(230)를 포함한다. 도 2의 방법에서, 손상 통신 제어 패킷들의 개수를 변경하는 단계는 흐름 제어 기간 동안 흐름 제어 메시지가 수신되었다면 손상 통신 제어 패킷들의 개수를 증분하는 단계(226)를 포함하고, 이에 따라 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계(230)가 그 증분된 개수의 손상 통신 제어 패킷들을 송신하는 단계(232)에 의해 실시된다. 도 2의 방법에서, 손상 통신 제어 패킷들의 개수를 변경하는 단계는 흐름 제어 기간 동안 흐름 제어 메시지가 수신되지 않았다면 손상 통신 제어 패킷들의 개수를 감분하는 단계(228)를 또한 포함하고, 이에 따라 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계(230)가 그 감분된 개수의 손상 통신 제어 패킷들을 송신하는 단계(234)에 의해 실시된다. 흐름 제어 기간 동안 송신될 손상 통신 패킷들의 개수를 변경하는 이러한 단계는 흐름 제어 기간 동안 하나 이상의 흐름 제어 메시지의 수신을 부정적 피드백으로서 이용하여 정상 통신을 위한 송신 대역폭을 제어하는 폐루프 제어 기능을 구현한다는 것을 당업자라면 인식할 것이다. 흐름 제어 메시지가 수신되지 않으면, 손상 패킷들을 덜 송신함으로써 송신 대역폭을 넓힌다. 흐름 제어 메시지가 수신되면, 손상 패킷들을 더 송신함으로써 송신 대역폭을 좁힌다. 이러한 폐루프 제어는 정상 통신을 위한 송신측 대역폭을 수신측의 처리 대역폭과 효과적으로 일치시킨다.
부연 설명하자면, 도 3은 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 또 다른 예시적인 방법을 도시하는 흐름도이다. 도 3의 방법은, 송신기를 위해 흐름 제어 기간들을 위한 지속 기간(206)을 특정하는 단계(202), 송신기를 위해 하나 이상의 흐름 제어 기간 동안 송신기로부터 수신기로 송신될 손상 통신 제어 패킷들의 개수(208)를 특정하는 단계(204), 흐름 제어 기간 동안 흐름 제어 메시지가 수신기로부터 수신되는지를 송신기에 의해 결정하는 단계(210), 흐름 제어 기간 동안 흐름 제어 메시지가 수신기로부터 수신되는지에 따라, 손상 통신 제어 패킷들의 개수를 변경하는 단계(220), 후속하는 흐름 제어 기간 동안 정상 데이터 통신 중에 송신기로부터 수신기로 그 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계(230)를 포함하므로, 도 2의 방법과 유사하고, 이러한 단계들 모두는 도 2의 방법에 관하여 전술한 바와 유사한 방식으로 동작한다.
그러나, 도 3의 방법에서는, 흐름 제어 기간 동안 송신될 손상 통신 제어 패킷들의 개수는 흐름 제어 기간 동안 흐름 제어 메시지가 수신되지 않을 때마다 감분되지 않는다. 반면에, 도 3의 방법은 소정의 개수의 흐름 제어 기간들(212)에 대하여 동작하며, 소정의 개수의 흐름 제어 기간들 동안 흐름 제어 메시지들이 수신되지 않았는지를 결정하는 단계(218)와, 소정의 개수의 흐름 제어 기간들 동안 흐름 제어 메시지가 수신되지 않을 때에만 손상 통신 제어 패킷들의 개수를 감분하는 단계(228)를 포함한다. 도 3의 방법에서는, 도 2의 방법과 같이, 다음 흐름 제어 기간에 송신(234)되는 것은 감분된 개수의 손상 패킷들이다.
도 3의 방법에서는, 도 2의 방법과 같이, 흐름 제어 기간 동안 송신될 흐름 제어 패킷들의 개수는 흐름 제어 기간 동안 흐름 제어 메시지가 수신(216)될 때마다 증분(226)된다. 송신기의 관점에서 실질적인 통신 중단을 나타내는 것은 흐름 제어 메시지의 수신이라는 것을 당업자라면 인식할 것이다. 따라서, 도 3의 방법은, 정상적 메시지 트래픽을 위한 송신 대역폭을 감소시켜 수신측 상의 처리 대역폭과 일치하게 함으로써, 흐름 제어 메시지가 수신될 때마다 이러한 흐름 제어 메시지를 수신하는 위험을 줄이도록 항상 조치를 취하고 이에 따라 흐름 제어 메시지의 위험을 감소시킨다.
반면에, 하나 이상의 흐름 제어 기간 동안 어떠한 흐름 제어 메시지도 수신되지 않는다는 사실은, 단순히 송신기 및 수신기 대역폭들이 성공적으로 일치되었으며 이러한 특정한 시점에서 대역폭을 추가 조절하는 데 손상 패킷들의 개수의 추가 조절이 필요하지 않음을 의미할 수 있다. 이를 확인해 본다면, 흐름 제어 메시지가 수신되지 않으면, 도 3의 방법은, 소정의 개수의 흐름 제어 기간들(212)에 걸쳐 시간 경과에 따라, 결국 다른 하나의 흐름 제어 패킷이 수신(216)되고 흐름 제어 기간들 동안 손상 패킷들의 개수를 증분(226)함으로써 정상 트래픽을 위한 대역폭이 다시 감소될 때까지 손상 패킷들의 개수를 감분(228)하여 정상 패킷들을 위한 송신 대역폭을 증가시킨다. 폐루프 제어 내에 비활동(inertia)을 삽입함으로써 손상 패킷들의 개수를 감분하기 전에 흐름 제어 메시지 없이 다수의 흐름 제어 기간에 대한 요건을 포함함으로써, 사실상, 루프 게인의 방향적 감소가 발생하고 이에 따라 그 루프가 흐름 제어 메시지의 수신에는 여전히 빠르게 응답하지만 흐름 제어 메시지의 부족에는 느리게 응답한다는 것을 당업자라면 인식할 것이다. 흐름 제어 기간들의 소정의 개수가 1로 설정되는 간단한 경우에는, 도 3의 방법이 도 2의 방법과 같이 동일하게 기능한다. 1보다 큰 임의의 소정의 개수의 흐름 제어 기간(212) 동안, 도 3의 방법의 루프 게인은 전술한 바와 같이 감소된다.
부연 설명하자면, 도 4는 본 발명의 실시예들에 따라 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 또 다른 예시적인 방법을 도시하는 흐름도이다. 도 4의 방법은, 송신기를 위해 흐름 제어 기간 동안 지속 기간(206)을 특정하는 단계(202)와, 송신기를 위해 하나 이상의 흐름 제어 기간 동안 송신기로부터 수신기로 송신될 손상 통신 제어 패킷들의 개수를 특정하는 단계(204)와, 흐름 제어 기간 동안 흐름 제어 메시지가 수신기로부터 수신되는지를 송신기에 의해 결정하는 단계(210)와, 흐름 제어 기간 동안 수신기로부터 흐름 제어 메시지가 수신되는지에 따라, 손상 통신 제어 패킷들의 개수를 변경하는 단계(220)와, 후속하는 흐름 제어 기간 동안 정상 데이터 통신 중에서, 변경된 개수의 손상 통신 제어 패킷들을 송신기로부터 수신기로 송신하는 단계(230)를 포함하는 도 2의 방법과 유사하며, 이들 모두는 도 2의 방법에 관하여 전술한 바와 유사한 방식으로 동작한다.
그러나, 도 4의 방법에서는, 도 2의 방법의 기능에 더하여, 정상 데이터 통신(304)은 통신 우선순위(306)를 특징으로 하고, 그 방법은 우선순위에 따라 정상 데이터 통신을 복수의 데이터 통신 큐(308, 310) 내에 큐잉하는 단계(302) 및 손상 패킷들을 낮은 우선순위 큐(310) 내에만 큐잉하는 단계(312)를 포함한다. 또한, 도 2의 방법의 기능에 더하여, 도 4의 방법에서는, 변경된 개수의 손상 통신 제어 패킷들을 송신기로부터 수신기로 송신하는 단계(230)는 낮은 우선순위 큐(236)로부터만 그 변경된 개수의 손상 통신 제어 패킷들(236)을 송신하는 단계(314)를 포함한다. 정상 데이터 통신이 여러 이유로 인해 통신 우선순위를 특징으로 할 수 있다는 것을 당업자라면 인식할 것이다. 일부 높은 우선순위 패킷들은, 예를 들어, 실시간 운영 체제에 의한 사용을 위해 소정의 시간만큼 전달되도록 요구될 수 있다. 다른 높은 우선순위 패킷들은 근 실시간으로 전달되어야 하는 멀티미디어 데이터 또는 비디오의 스트림의 일부일 수 있다. 낮은 우선순위는, 예를 들어, 인터넷 프로토콜 패킷들이나 이더넷 패킷들 등과 같이 손실있는 송신 포맷의 통신 패킷들에 할당될 수 있다. 정상 데이터 통신(304)이 통신 우선순위(306)를 특징으로 하는 환경에서는, 낮은 우선순위 큐(236)로부터 손상 통신 제어 패킷들(236)만을 송신함으로써, [1] 송신 대역폭을 전술한 바와 같은 수신측의 처리 대역폭과 균형을 맞추도록 송신 대역폭을 감소시키고 [2] 높은 우선순위 통신의 임의의 손상 발생을 최소화한다.
전체적으로 데이터 통신 링크를 통한 데이터 흐름을 제어하기 위한 완전한 기능적 컴퓨터 시스템의 문맥으로 본 발명의 예시적인 실시예들을 설명하였다. 그러나, 본 발명은 임의의 적절한 데이터 처리 시스템과 함께 사용하기 위한 컴퓨터 판독가능 신호 전달 매체 상에 배치된 컴퓨터 프로그램 제품에서 구체화될 수도 있다는 점을 당업자라면 인식할 것이다. 이러한 신호 전달 매체는 자기 매체, 광 매체, 또는 기타 적절한 매체를 비롯한 기계 판독가능 정보를 위한 기록가능 매체 또는 송신 매체일 수 있다. 기록가능 매체의 예로는, 당업자에게 자명한 바와 같이 하드 드라이브나 디스켓의 자기 디스크, 광 드라이브용 컴팩트 디스크, 자기 테이프 등이 있다. 송신 매체의 예로는, IEEE 802.11 군의 명세에 따라 구현되는 네트워크와 같은 무선 송신 매체뿐만 아니라 이더넷과 같이 음성 통신과 디지털 데이터 통신을 위한 전화 네트워크 및 인터넷 프로토콜과 월드 와이드 웹과 통신하는 네트워크도 있다. 적절한 프로그래밍 수단을 갖는 임의의 컴퓨터 시스템이 프로그램 제품에서 구체화될 때 본 발명의 방법의 단계들을 실시할 수 있다는 것을 당업자라면 즉시 인식할 것이다. 본 명세서에서 설명한 예시적인 실시예들 중 일부는 컴퓨터 하드웨어 상에 설치되고 실행되는 소프트웨어를 지향하지만, 그럼에도 펌웨어나 하드웨어로서 구현되는 대체 실시예들이 본 발명의 사상 내에 있다는 것을 당업자라면 즉시 인식할 것이다.
전술한 바로부터 본 발명의 진정한 사상으로부터 벗어나지 않고 본 발명의 다양한 실시예들에 수정 및 변경을 행할 수 있다는 점을 이해할 것이다. 본 명세서에서의 설명은 예시를 위한 것일 뿐 한정적인 의미로 해석되어서는 안 된다.
Claims (10)
- 데이터 통신 링크를 통해 데이터 흐름을 제어하기 위한 방법으로서,
상기 링크는, 상기 링크 상에서의 데이터 통신의 수신기가 데이터 통신의 현재 레벨의 대역폭의 부족을 검출하면 송신기에 흐름 제어 메시지를 송신함으로써 상기 수신기에 의해 결정된 기간 동안 상기 링크 상의 데이터 통신을 일시 정지(suspend)하는 데이터 통신 프로토콜에 따라 동작하고,
상기 송신기를 위해 흐름 제어 기간의 지속 기간을 특정하는 단계;
상기 송신기를 위해 흐름 제어 기간 동안 상기 송신기로부터 상기 수신기로 송신되는 손상(corrupt) 통신 제어 패킷들의 개수를 특정하는 단계;
상기 송신기에 의해, 흐름 제어 기간 동안 상기 수신기로부터 흐름 제어 메시지가 수신되는지를 결정하는 단계 -상기 흐름 제어 메시지는 상기 수신기에 의해 결정된 기간 동안 상기 링크 상의 데이터 통신을 중단시키도록 하는, 상기 수신기에 의해 발행된, 요청을 나타냄-;
흐름 제어 기간 동안 상기 수신기로부터 흐름 제어 메시지가 수신되는지 여부에 따라, 상기 손상 통신 제어 패킷들의 개수를 변경하는 단계; 및
후속하는 흐름 제어 기간 동안 정상 데이터 통신 중에, 상기 변경된 개수의 손상 통신 제어 패킷들을 상기 송신기로부터 상기 수신기로 송신하는 단계;
를 포함하는, 데이터 흐름의 제어 방법. - 제1항에 있어서,
손상 통신 제어 패킷은 상기 수신기가 상기 패킷의 수신시 상기 패킷을 폐기하도록 통신 제어 패킷을 의도적으로 포함하는, 데이터 흐름의 제어 방법. - 제1항에 있어서,
상기 손상 통신 제어 패킷들의 개수를 변경하는 단계는 상기 흐름 제어 기간 동안 흐름 제어 메시지가 수신되었다면 상기 손상 통신 제어 패킷들의 개수를 증분하는 단계를 더 포함하고,
상기 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계는 상기 증분된 개수의 손상 통신 제어 패킷들을 송신하는 단계를 더 포함하는, 데이터 흐름의 제어 방법. - 제1항에 있어서,
상기 손상 통신 제어 패킷들의 개수를 변경하는 단계는 상기 흐름 제어 기간 동안 흐름 제어 메시지가 수신되지 않았다면 상기 손상 통신 제어 패킷들의 개수를 감분하는 단계를 더 포함하고,
상기 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계는 상기 감분된 개수의 손상 통신 제어 패킷들을 송신하는 단계를 더 포함하는, 데이터 흐름의 제어 방법. - 제1항에 있어서,
상기 손상 통신 제어 패킷들의 개수를 변경하는 단계는 흐름 제어 기간의 소정의 개수 동안 흐름 제어 메시지가 수신되지 않으면 상기 손상 통신 제어 패킷들의 개수를 감분하는 단계를 더 포함하고,
상기 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계는 상기 감분된 개수의 손상 통신 제어 패킷들을 송신하는 단계를 더 포함하는, 데이터 흐름의 제어 방법. - 제1항에 있어서,
상기 정상 데이터 통신은 통신 우선순위에 연관되며,
상기 방법은 우선순위에 따라 복수의 데이터 통신 큐를 이용하여 상기 정상 데이터 통신을 큐잉(enque)하는 단계 및 상기 손상 통신 제어 패킷들을 낮은 우선순위 큐(low priority queue)에만 큐잉하는 단계를 더 포함하고,
상기 변경된 개수의 손상 통신 제어 패킷들을 상기 송신기로부터 상기 수신기로 송신하는 단계는 상기 낮은 우선순위 큐로부터 상기 변경된 개수의 손상 통신 제어 패킷들을 송신하는 단계를 더 포함하는, 데이터 흐름의 제어 방법. - 데이터 통신 링크를 통해 데이터 흐름을 제어하기 위한 장치로서,
상기 링크는, 상기 링크 상에서의 데이터 통신의 수신기가 데이터 통신의 현재 레벨의 대역폭의 부족을 검출하면 송신기에 흐름 제어 메시지를 송신함으로써 상기 수신기에 의해 결정된 기간 동안 상기 링크 상의 데이터 통신을 일시 정지하도록 동작가능한 데이터 통신 프로토콜에 따라 동작하고,
상기 송신기를 위해 흐름 제어 기간의 지속 기간을 특정하기 위한 수단;
상기 송신기를 위해 흐름 제어 기간 동안 상기 송신기로부터 상기 수신기로 송신되는 손상 통신 제어 패킷들의 개수를 특정하기 위한 수단;
상기 송신기에 의해, 흐름 제어 기간 동안 상기 수신기로부터 흐름 제어 메시지가 수신되는지를 결정하기 위한 수단 -상기 흐름 제어 메시지는 상기 수신기에 의해 결정된 기간 동안 상기 링크 상의 데이터 통신을 중단시키도록 하는, 상기 수신기에 의해 발행된, 요청을 나타냄-;
흐름 제어 기간 동안 상기 수신기로부터 흐름 제어 메시지가 수신되는지 여부에 따라, 상기 손상 통신 제어 패킷들의 개수를 변경하기 위한 수단; 및
후속하는 흐름 제어 기간 동안 정상 데이터 통신 중에, 상기 송신기로부터 상기 수신기로 상기 변경된 개수의 손상 통신 제어 패킷들을 송신하기 위한 수단;
을 포함하는, 데이터 흐름의 제어 장치. - 제7항에 있어서,
상기 수신기가 상기 패킷의 수신시 상기 패킷을 폐기하도록 통신 제어 패킷을 손상시키기 위한 수단을 더 포함하는, 데이터 흐름의 제어 장치. - 제7항에 있어서,
상기 손상 통신 제어 패킷들의 개수를 변경하기 위한 수단은 상기 흐름 제어 기간 동안 흐름 제어 메시지가 수신되었다면 상기 손상 통신 제어 패킷들의 개수를 증분하기 위한 수단을 더 포함하고,
상기 변경된 개수의 손상 통신 제어 패킷들을 송신하기 위한 수단은 상기 증분된 개수의 손상 통신 제어 패킷들을 송신하기 위한 수단을 더 포함하는, 데이터 흐름의 제어 장치. - 컴퓨터 상에서 실행될 때 제1항 내지 제6항 중 어느 한 항의 방법의 모든 단계들을 수행하도록 구성된 프로그램 코드 수단을 포함하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/184,541 US7821942B2 (en) | 2008-08-01 | 2008-08-01 | Controlling data flow through a data communications link |
US12/184,541 | 2008-08-01 | ||
PCT/EP2009/059742 WO2010012730A1 (en) | 2008-08-01 | 2009-07-28 | Controlling data flow through a data communications link |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110055592A KR20110055592A (ko) | 2011-05-25 |
KR101341668B1 true KR101341668B1 (ko) | 2014-01-06 |
Family
ID=41110931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117004951A KR101341668B1 (ko) | 2008-08-01 | 2009-07-28 | 데이터 통신 링크를 통한 데이터 흐름 제어 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7821942B2 (ko) |
EP (1) | EP2311226B1 (ko) |
JP (1) | JP5400881B2 (ko) |
KR (1) | KR101341668B1 (ko) |
CN (1) | CN102113276B (ko) |
CA (1) | CA2732434C (ko) |
TW (1) | TW201014295A (ko) |
WO (1) | WO2010012730A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8953631B2 (en) * | 2010-06-30 | 2015-02-10 | Intel Corporation | Interruption, at least in part, of frame transmission |
US20160080826A1 (en) * | 2014-09-16 | 2016-03-17 | Qualcomm Incorporated | Systems, methods and apparatus for broadcasting pay-per-view video over enhanced multimedia broadcast multicast service |
US11213789B2 (en) | 2015-09-04 | 2022-01-04 | Basf Corporation | Integrated SCR and ammonia oxidation catalyst systems |
KR102371485B1 (ko) * | 2020-07-15 | 2022-03-07 | 고려대학교 산학협력단 | 이더넷 기반 네트워크 내 트래픽 제어 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953318A (en) * | 1996-12-04 | 1999-09-14 | Alcatel Usa Sourcing, L.P. | Distributed telecommunications switching system and method |
US6434118B1 (en) * | 1999-01-11 | 2002-08-13 | 3Com Corporation | Method for determining round trip time utilizing ATM traffic management mechanism |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04278753A (ja) * | 1991-03-07 | 1992-10-05 | Nec Commun Syst Ltd | 固定長パケット整合装置 |
JPH06197150A (ja) * | 1992-09-11 | 1994-07-15 | Nec Corp | フロー制御方式 |
US6091709A (en) * | 1997-11-25 | 2000-07-18 | International Business Machines Corporation | Quality of service management for packet switched networks |
US6947380B1 (en) * | 2000-12-01 | 2005-09-20 | Cisco Technology, Inc. | Guaranteed bandwidth mechanism for a terabit multiservice switch |
US6829667B2 (en) * | 2001-09-14 | 2004-12-07 | Intel Corporation | Method and system for improved processing of CPU intensive communications protocols by disabling per frame interrupts for an interrupt period |
JP4593991B2 (ja) * | 2004-07-21 | 2010-12-08 | ルネサスエレクトロニクス株式会社 | 通信装置及び通信帯域制御方法 |
EP1889410B1 (en) * | 2005-05-30 | 2008-10-01 | Telefonaktiebolaget LM Ericsson (publ) | Data unit relay device and method of controlling the same |
WO2008043390A1 (en) | 2006-10-09 | 2008-04-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for use in a communications network |
-
2008
- 2008-08-01 US US12/184,541 patent/US7821942B2/en not_active Expired - Fee Related
-
2009
- 2009-07-28 WO PCT/EP2009/059742 patent/WO2010012730A1/en active Application Filing
- 2009-07-28 JP JP2011520472A patent/JP5400881B2/ja not_active Expired - Fee Related
- 2009-07-28 EP EP09781190.5A patent/EP2311226B1/en not_active Not-in-force
- 2009-07-28 TW TW098125429A patent/TW201014295A/zh unknown
- 2009-07-28 CN CN200980129859.XA patent/CN102113276B/zh not_active Expired - Fee Related
- 2009-07-28 KR KR1020117004951A patent/KR101341668B1/ko not_active IP Right Cessation
- 2009-07-28 CA CA2732434A patent/CA2732434C/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953318A (en) * | 1996-12-04 | 1999-09-14 | Alcatel Usa Sourcing, L.P. | Distributed telecommunications switching system and method |
US6434118B1 (en) * | 1999-01-11 | 2002-08-13 | 3Com Corporation | Method for determining round trip time utilizing ATM traffic management mechanism |
Also Published As
Publication number | Publication date |
---|---|
JP2011530205A (ja) | 2011-12-15 |
EP2311226B1 (en) | 2017-01-04 |
WO2010012730A1 (en) | 2010-02-04 |
CN102113276B (zh) | 2014-06-11 |
TW201014295A (en) | 2010-04-01 |
CA2732434A1 (en) | 2010-02-04 |
US20100027423A1 (en) | 2010-02-04 |
CN102113276A (zh) | 2011-06-29 |
KR20110055592A (ko) | 2011-05-25 |
US7821942B2 (en) | 2010-10-26 |
JP5400881B2 (ja) | 2014-01-29 |
EP2311226A1 (en) | 2011-04-20 |
CA2732434C (en) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4791322B2 (ja) | 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置 | |
US8619809B2 (en) | Method, system, and program for managing a speed at which data is transmitted between network adaptors | |
JP4491257B2 (ja) | 終端間測定に基づくネットワークへのデータストリームの許容の制御 | |
EP3108639B1 (en) | Transport accelerator implementing extended transmission control functionality | |
KR101046105B1 (ko) | 컴퓨터 프로그램 제조품, 리소스 요구 조정 방법 및 엔드 시스템 | |
US8750109B2 (en) | Inferring TCP initial congestion window | |
US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
EP1701506B1 (en) | Method and system for transmission control protocol (TCP) traffic smoothing | |
US20230139633A1 (en) | Data Packet Sending Method and Apparatus | |
KR101341668B1 (ko) | 데이터 통신 링크를 통한 데이터 흐름 제어 | |
WO2022001291A1 (zh) | 控制网络拥塞的方法和相关装置 | |
US20080291833A1 (en) | Method for buffer control for network device | |
US20130290803A1 (en) | Variable acknowledge rate to reduce bus contention in presence of communication errors | |
JP6232604B2 (ja) | デバイスサーバとその制御方法 | |
US7561523B1 (en) | Method and apparatus for flow control in a reliable multicast communication system | |
US11683250B2 (en) | Managing proxy throughput between paired transport layer connections | |
WO2024152920A1 (zh) | 通信方法及装置 | |
US8817653B2 (en) | Detecting irregular retransmissions | |
CN116032853A (zh) | 流量控制方法、装置、电子设备和存储介质 | |
CN117614908A (zh) | 数据传输控制方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |