KR20060121941A - Udp발신지 스로틀링에 의한 네트워크 정체현상 제어시스템 및 방법 - Google Patents

Udp발신지 스로틀링에 의한 네트워크 정체현상 제어시스템 및 방법 Download PDF

Info

Publication number
KR20060121941A
KR20060121941A KR1020067014144A KR20067014144A KR20060121941A KR 20060121941 A KR20060121941 A KR 20060121941A KR 1020067014144 A KR1020067014144 A KR 1020067014144A KR 20067014144 A KR20067014144 A KR 20067014144A KR 20060121941 A KR20060121941 A KR 20060121941A
Authority
KR
South Korea
Prior art keywords
data
host
layer
rate
throttle
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020067014144A
Other languages
English (en)
Other versions
KR100789995B1 (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 KR20060121941A publication Critical patent/KR20060121941A/ko
Application granted granted Critical
Publication of KR100789995B1 publication Critical patent/KR100789995B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/19Flow control; Congestion control at layers above the network layer
    • 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/21Flow control; Congestion control using leaky-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions

Landscapes

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

Abstract

양방향 및 단방향 통신들의 시스템 및 방법이 제공된다. 이 시스템은 다중화된 데이터를 제1 데이터 전송속도로 전송할 수 있는 제1호스트를 구비한다. 다중화된 데이터를 제2 데이터 전송속도로 수신할 수 있는 제2호스트가 제공된다. 이 시스템은 제1 데이터 전송속도를 제1 데이터 전송속도 및 제2 데이터 전송속도 중 작은 것 이하인 스로틀 값으로 제한하는 데이터 스로틀을 더 포함한다. 시스템은 UDP 전송층 및 IP 네트워크층 위에서 동작 가능하고, 소켓층으로의 API 호들에 의해 이행될 수 있다.

Description

UDP발신지 스로틀링에 의한 네트워크 정체현상 제어 시스템 및 방법{System and method of network congestion control by UDP source throttling}
본 발명은 일반적으로 네트워크상에서의 데이터 교환 시스템들 및 방법들에 관한 것으로, 더 상세하게는 사용자 데이터그램 프로토콜(UDP)을 이용하는 두 네트워크 엔티티들 사이에서 그것의 발신지에서 데이터를 스로틀링하는 것에 의한 인터넷 프로토콜(IP) 네트워크상에서의 데이터 교환의 정체현상(congestion) 제어에 관한 것이다.
오늘날, 조직의 컴퓨터 네트워크는 그것의 순환계가 되고 있다. 조직들은 데스크탑 워크스테이션들, 서버들, 및 호스트들을 근거리통신망(LAN) 커뮤니티들에 조합하였다. 이 근거리통신망들은 다른 근거리통신망들에 그리고 광역통신망들(WAN들)에 연결되었다. 게다가, 네트워킹에서의 무선 기술들의 확산으로, 예를 들면 부호분할 다중접속(CDMA) 네트워크 내의 에어-인터페이스(air-interface)와 같은 무선(wireless) 인터페이스는 네트워크에 대역폭 제한을 강요할 수 있다. 시스템들의 쌍들은 그것들이 네트워크에서 위치할 수 있는 곳에 무관하게 그리고 불필요한 지연 또는 데이터 손실 없이 그것들이 필요로 할 때 통신을 할 수 있게 되어야한다는 것은 필연적인 일상 작업이 되고 있다.
네트워크 컴퓨팅의 초년들 동안, 사유 네트워킹 프로토콜들은 고립된 네트워크들 내의 기준(norm)이었다. 그러나, 프로토콜들로 된 인터넷 프로토콜(IP) 패밀리의 발전은 인상적인 정도의 상호연동(interworking)에 기여했고, 그것은 일반적으로 최종사용자 애플리케이션들이 네트워크의 시스템들 사이에서 매우 잘 동작하는 것을 허락한다. 구현물들은 수십 개의 컴퓨터 벤더들, 하드웨어 구성요소 벤더들, 및 독립 소프트웨어 회사들로부터의 지원자들에 의해 이용 가능한 서면 표준들에 기초하고 있다. 이 표준들은 국제 표준화 기구(ISO)에 의해 소개된 개방형 시스템간 상호접속(OSI) 기준모델(Reference Model)의 발전에 의해 용이하게 되었다.
인터넷은 일반적으로 라우터라고 불리는 게이트웨이들에 의해 연결된 한 세트의 네트워크들이다. 라우터들은 브로드캐스트 영역들에서 더 많은 제어를 제공하며, 브로드캐스트 트래픽을 제한하고, 보안을 강화할 필터링 및 방화벽 능력을 추가했다. 라우터는 내장된 지능 때문에 네트워크를 통하여 최선의 경로를 선택할 수 있다. 이 부가된 지능도 라우터들이 수신지들에 대해 예비 경로들을 가능하면 형성하는 것을 허락했다. 그럼에도 불구하고, 내장된 지능에 의해 주어진 최선 경로 선택 능력의 추가된 복잡도는 라우터의 포트 비용을 증가시켰고 실질적인 대기시간 오버헤드의 원인이 되었다. 분산형 클라이언트/서버 데이터 트래픽, 확장된 사용자 모집단들 및 더 복잡한 애플리케이션들을 포함하는 매체공유형(shared-media) 네트워크들은, 새로운 대역폭 병목현상이 탄생하게 하였다. 그런 정체현상은 예측할 수 없는 네트워크 응답시간, 지연 민감성 애플리케이션들을 지원하는 무능함, 및 더 높은 네트워크 고장율을 발생하였다.
모뎀 네트워크들에서의 정체현상 제어는 더욱더 중요한 이슈가 되고 있다. 월드와이드웹(WWW)과 같은 인터넷 애플리케이션들의 폭발적인 성장은 현재 기술을 그 한계까지 밀고 갔고, 더 빠른 전송 및 개선된 정체현상 제어 메커니즘이 필요하다는 것은 명료하다. 그 결과, 많은 장비 벤더들 및 서비스 제공자들은 고급 네트워킹 기술로 선회하여, 관련된 복잡한 서비스품질(QoS) 관리 문제들에 대해 적절한 해들을 제공한다. 예들로는 비동기 전송 모드(ATM) 네트워크들 및 신흥 인터넷 프로토콜(IP) 서비스들을 포함한다. 그럼에도 불구하고, 이러한 새로운 패러다임들 내의 많은 현존하는 유산(legacy) IP 프로토콜, 이를테면, IP네트워크들에서 오랫동안 사역마(workhorse)에 해당하는 전송프로토콜이었고 웹-브라우저, 파일/이메일 전송서비스 등에 의해 폭넓게 사용되던 유비쿼터스 TCP전송층 프로토콜을 지원할 필요는 여전히 있다.
전송제어프로토콜(TCP)은 인터넷의 성공으로 세계에서 최고로 중요한 데이터 통신 프로토콜들 중의 하나로서의 위치를 얻었던 TCP/IP 프로토콜 패밀리의 일부이다. TCP는 TCP/IP 프로토콜들을 이용하는 기기들 사이에서 신뢰성 있는 데이터 접속을 제공한다. TCP는 IP의 상단 위에서 동작하여 데이터를 데이터그램이라고 불리는 데이터 패킷들로 패킹하고 네트워크를 가로질러 전송하기 위해 이용된다.
인터넷 프로토콜(IP)은 인터넷을 가로질러 데이터를 보내는 네트워크층 프로토콜이다. 인터넷 프로토콜은 다른 벤더들에 의해 구축된 호스트들 및 라우터들의 사용을 수용하며, 증대하는 네트워크 유형들의 증대하는 다양성을 포괄하며, 네트워크가 서버들을 인터럽트하는 일없이 성장하게 하고, 더 높은 층의 세션 및 메시 지 지향적 서비스들을 지원하기 위해 디자인되었다. IP 네트워크층은 LAN의 "섬들(islands)"의 통합을 허용한다.
그러나, IP는 어떠한 흐름 제어 또는 재송신 메커니즘들도 담고 있지 않다. 그것이 TCP가 그것의 상단에서 전형적으로 사용되는 이유이다. 더 상세하게는, TCP는 손실된 데이터 패킷들을 검출하기 위해 수신확인(acknowledgments)을 이용한다. TCP/IP 네트워크는 현재로는 아마 모든 네트워크들 중에서 가장 중요한 것이고, 몇 개의 (물리적) 네트워크들, 이를테면 위에 언급된 ATM 네트워크들의 상단에서 동작한다. 이 기초가 되는 네트워크는 네트워크 및 트래픽의 상태에 관해 약간의 정보를 제공할 수 있고, 그것은 정체현상에 관한 피드백을 제공하기 위해 사용될 수 있다.
TCP와 달리, 사용자 데이터그램 프로토콜(UDP)은 비연결 및 신뢰할 수 없는 전송층 프로토콜이다. UDP는 IP주소에 의해 식별되는 네트워크 노드에서 신뢰성 있는 전달, 흐름 및 정체현상 제어 없이 최소의 애플리케이션 다중화를 제공한다. UDP프로토콜은 특성상 극단적으로 단순하다. 응용층으로부터의 데이터는 전송층에 건네어지고, UDP 데이터그램으로 캡슐화된다. 이 데이터그램은 수신지 기기에의 안전한 도착을 보증하는 메커니즘 없이 호스트에 보내어진다. 만일 신뢰성이 요구되면 어떤 체크라도 응용층에 되돌려 보내진다. 그러나, UDP의 간결성은 프로토콜을 사용하는 것으로부터 오버헤드를 감소시키고 서비스들은 많은 경우들에서 적절할 수 있다. 예를 들어, 3G 무선네트워크들의 IP 멀티미디어 시스템(IP Multimedia System; IMS)은 미디어 스트림들을 교환하기 위해 실시간 전송프로토콜(RTP)을 이 용하도록 지정되고 RTP는 전형적으로 UDP상에서 실행된다.
UDP가 어떠한 정체현상 제어도 제공하지 않기 때문에, 발신지부터 수신지까지 송신되는 높은 체적의 데이터 패킷들은 소실될 수 있거나 또는 네트워크에서 정체될 수 있다. 그런 정체현상 지점들의 예들은 라우터들과 다른 패킷처리 플랫폼들 이를테면 부호분할 다중접속(CDMA) 패킷 데이터 시스템의 패킷데이터 서빙 노드(PDSN)를 처리하고 있는 라우터 및 다른 패킷을 포함한다. 이 정체현상은 IP 스택 구현물들이 대역폭 제약들(그것들이 최대전송유닛(MTU)을 알고 있는 경우에도)을 일반적으로 알지 못하기 때문에 발생한다. 그런 구현물들은 통상 어떤 종류의 흐름 제어를 위한 링크층에 의존한다. 그러나, 링크층은 전형적으로는 정체현상 제어 서비스들을 제공하지 않는다.
일반적으로, 이 이슈는 고속 오디오 및 비디오 애플리케이션들이 UDP(RTP가 상위층 프로토콜인) 상에서 데이터를 교환하는 무선 3G 네트워크들에서 더 현저하다. 또한 단말기들이 릴레이 모델(예컨대, 고속 모뎀으로서 개인용 컴퓨터에 연결된 단말)에서 사용될 때, 전형적인 개인용 컴퓨터의 상주 IP스택은 가능한 한 빨리 가능한 한 많은 데이터를 공급하려고 할 것이다. 무선매체의 구속된 대역폭 및 높은 에러율의 고유한 성질은 패킷들이 과도하게 강하되게 할 것이고 네트워크들이 정체할 것이다.
전송/네트워크 층들에 의한 대역폭 지식이 없다고 가정할 때, UDP 정체현상은 아래에 기재된 다음 조건들의 어느 것이라고 발생한다면 더욱 현저하게 될 것이다. 첫째, 만일 발신지 및 수신지가 가장 가까운 라우터들 또는 다른 패킷 플랫폼 들에 대해 다른 총 대역폭들을 가진다면(예컨대, 발신지는 114kbps 접속을 가지고 수신지는 82 kbps 접속을 가진다), 네트워크 정체현상이 가능하다. 다음에, 만일 발신지 및 수신지가 동일한 대역폭 접속들을 가지지만 라우터들 및 다른 패킷 처리 플랫폼들에 의해 정체현상이 발생될 수 있어 발신지 및 수신지 사이의 네트워크가 정체된다면(예컨대, 발신지 및 수신지 둘 다가 114kbps 대역폭으로 접속되지만, 네트워크의 현재 처리량은 발신지 및 수신지 사이에서 약 80kbps만이 됨), 그 네트워크의 정체현상이 가능하다. 게다가, 큰 네트워크층 버퍼들이 발신지에서 발견된다면(대역폭에 관계없이, 이것은 전형적으로 개인용 컴퓨터들이 모뎀들을 연결된 경우임) 상위층들은 네트워크층 버퍼들이 채워지지 않는 한 다량의 데이터를 송신할 것이다. 또한, 유효한 데이터 송신속도는 수신지가 예상했던 것(예컨대, 80kbps)보다 모뎀이 전달할 수 있는 것(예컨대, 256kbps)일 것이다.
UDP 네트워크들에서의 정체현상 제어에 대한 종래의 시도는 네트워크 내에서 정체현상 통지의 신호통지(signaling)의 사용을 포함한다. 그러나, 그런 신호통지는 구현하기가 어렵고 값비쌀 수 있거나 또는 모든 네트워크들과 호환되지 않을 수 있다.
정체현상 도전을 해결하는 다른 시도는 예를 들어 UDP와 유사한 새로운 IP 패밀리 프로토콜인 데이터그램 정체현상 제어 프로토콜(DCCP)과 같은 새로운 프로토콜들의 개발을 포함하고 있다.
본 발명의 실시예들은 위에 기재된 것들의 일부 종래기술의 도전을 극복하기 위해 제공된다.
앞서 말한 배경을 고려하여, 본 발명의 실시예들은 UDP 전송층을 이용하고 있는 IP 네트워크에서 정체 현상을 감소시키는 개선된 시스템 및 방법을 제공한다. 발명의 실시예들은 UDP 데이터를 위해 발신지기반 스로틀링 시스템 및 방법을 제공한다. 실시예들은 발신지의 UDP 트래픽을 미리 알려져 있거나 또는 예를 들면 세션 시작 프로토콜(SIP)을 이용하여 세션 셋업하는 동안 협상된 소정의 대역폭 한계로 스로틀링하는 것을 포함한다. 예를 들면, 발신지는 113kbps의 대역폭 한계 또는 스로틀(throttle) 값을 얻을 수 있었다. 이 대역폭 한계는 미리 정해질 수 있었거나 또는 그것은 예를 들면 SIP 프로세스와 같은 세션 셋업 동안 협상될 수 있었다. 기초가 되는 운영체제(유저 단말 내)는 그것에 협상된 대역폭이 통지되고 어느 주어진 순간에 대역폭이 스로틀 값을 초과하지 않도록 UDP 트래픽을 감시한다.
발명의 한 양태는 다중화된 데이터를 제1 데이터 전송속도로 송신할 수 있는 제1호스트를 가지는 통신 시스템이다. 다중화된 데이터를 제2 데이터 전송속도로 수신할 수 있는 제2호스트가 제공된다. 데이터 스로틀 또한 제공된다. 데이터 스로틀은 제1 데이터 전송 속도를 제1 데이터 전송속도 및 제2 데이터 전송속도 중의 작은 것 이하인 스로틀 값으로 제한한다.
발명의 다른 양태는 다중화된 데이터를 제1 데이터 전송속도로 전송할 수 있는 제1호스트를 가지는 통신 시스템이다. 제1호스트는 데이터 스로틀로 더 구성된다. 시스템은 다중화된 데이터를 제2 데이터 전송속도로 수신할 수 있는 제2호스트로 더 구성된다. 제1호스트 및 제2호스트 사이에 개재하는 것은 다중화된 데이터를 제3 데이터 전송속도로 전송할 수 있는 네트워크이다. 이 실시예의 시스템에서, 데이터 스로틀은 제1 데이터 전송속도를 3개의(제1, 제2 및 제3) 데이터 전송속도들 중의 최소값 이하인 값으로 제한한다.
발명의 한 양태에서, 제2 데이터 전송속도 및 제3 데이터 전송속도는 예를 들면 세션시작프로토콜(SIP)과 같은 세션 셋업 프로세스 동안 얻어진다.
발명의 한 양태에서, 제1호스트는 응용층, 소켓층, 전송층 및 네트워크층으로 더 구성되고, 데이터 스로틀은 응용층부터 소켓층으로의 하나 이상의 응용 프로그램 인터페이스(API) 호들(calls)에 의해 동작한다. API호들은 전송 데이터속도를 제1 데이터 전송속도 및 제2 데이터 전송속도 중의 작은 하나 이하인 값으로 제한한다.
발명의 다른 양태에서, 발신지 호스트의 전송층은 사용자 데이터그램 프로토콜(UDP)로 구성되고 발신지 호스트의 네트워크층은 인터넷 프로토콜(IP)로 구성된다.
발명의 또 다른 양태는 제1호스트 및 제2호스트 사이의 통신 방법이다. 이 방법은 스로틀 값 대역폭을 먼저 얻는 단계와 제1호스트의 최대 데이터 전송속도를 스로틀 값 대역폭으로 설정하는 단계로 구성된다. 이 양태의 마지막 단계는 스로틀 값 대역폭 이하의 데이터 전송속도로 제1호스트부터 제2호스트까지 데이터 패킷을 전송하는 것이다.
발명의 또 다른 양태는 제1호스트의 최대 데이터 전송속도를 스로틀 값 대역폭으로 설정하는 것은 제1호스트 상에서 실행되는 애플리케이션부터 제1호스트의 소켓층까지의 응용 프로그래밍 인터페이스(API) 호들에 의해 달성된다는 것이다.
발명의 또 다른 양태는 스로틀 값 대역폭 이하의 데이터 전송속도로 제1호스트부터 제2호스트까지 데이터 패킷들을 전송하는 것은 사용자 데이터그램 프로토콜(UDP) 전송층 및 인터넷 프로토콜(IP) 네트워크층의 사용에 의해 달성된다는 것이다.
발명의 또 다른 양태는 제1호스트 제2호스트 사이에서 네트워크를 통한 통신 방법이다. 이 방법은 먼저 스로틀 값 대역폭을 얻는 단계와 제1호스트의 최대 데이터 전송속도를 스로틀 값 대역폭으로 설정하는 단계를 포함한다. 이 방법의 이 실시예의 최종단계는 데이터 패킷들을 제1호스트부터 제2호스트까지 네트워크를 통해 스로틀 값 대역폭 이하의 데이터 전송속도로 전송하는 것이다.
본 발명의 이러한 및 추가의 양태들은 여기서의 도면들 및 설명으로 더 상세히 기술된다.
본 발명을 일반적인 용어들로 이렇게 설명하는 것에 대해, 반드시 축척으로 그려지지 않은 다음의 첨부 도면들에 대해 이제 참조가 만들어질 것이다:
도 1a는 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 본 발명의 일 실시예에 따른 두 호스트들 사이의 단방향 또는 양방향 통신을 위한 시스템을 보이며;
도 1b 및 1c는 도 1a의 시스템의 대체 실시예들이며;
도 2는 본 발명의 일 실시예에 따른 호스트의 개략 블록도이며;
도 3은 본 발명의 실시예들에 따른 호스트로서 동작할 수 있는 이동국의 개략 블록도이며;
도 4는 본 발명의 일 실시예에 따라 호스트의 다층 프로토콜 스택을 도시하며, 이 프로토콜 스택은 7개 층들을 구비하는 OSI모델을 포함하며;
도 5는 본 발명의 실시예에 따르는 호스트의 OSI 기능과 일반 OSI모델의 비교를 도시하며;
도 6a는 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 두 호스트들 사이의 양방향 또는 단방향 통신들을 위한 예시적인 시스템을 도시하며;
도 6b는 UDP 스로틀 및 프록시 서버를 더 포함하는 본 발명의 실시예에 따른 도 6a의 일반 시스템을 도시하며;
도 7은 발신지 및 수신지 사이에서 통신 세션을 시작하는 방법을 더 상세히 도시하는 예시적인 제어 흐름도이며;
도 8은 예시적인 SIP 패킷을 도시하며;
도 9a는 발명의 실시예에서 각 호스트가 예시적인 다레벨 프로토콜 스택을 가져 API호들이 호스트 애플리케이션들로부터 소켓층으로 만들어지게 하는 두 호스트애플리케이션들 사이의 예시적인 통신을 도시하며;
도 9b는 발명의 실시예에서 도 9a의 호스트애플리케이션들부터 소켓층까지 만들어지는 예시적인 API호들을 더 상세히 도시하며;
도 10은 본 발명의 일 실시예에 따라 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 두 호스트들 사이의 양방향 또는 단방향 통신 방법을 도시하는 예시적인 흐름도이며; 그리고
도 11은 본 발명의 일 실시예에 따라 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 두 호스트들 사이의 양방향 또는 단방향 통신 방법을 도시하는 다른 예시적인 흐름도이다.
이제 본 발명은 발명의 바람직한 실시예들이 보이는 첨부 도면들을 참조하여 이하에서 더 완전히 기술될 것이다. 그러나, 본 발명은 많은 다른 형태들로 실시될 수 있고 여기에 언급된 실시예들에 한정되는 것으로 해석되지 않아야 하며, 그보다는, 이 실시예들은 이 개시내용이 철저하고 완전해지도록 하기 위해 그리고 이 기술분야의 통상의 지식을 가진자에게 본 발명의 범위를 충분히 전하도록 하기 위해 제공된다. 유사한 번호들은 전체에 걸쳐 유사한 요소들을 언급한다.
본 발명의 실시예들은 발명의 실시예에 따른 방법들, 장치들(즉, 시스템들) 및 컴퓨터 프로그램 생성물들의 블록도들 및 흐름도들을 참조하여 아래에서 설명될 것이다. 블록도들 및 흐름도들의 각 블록과, 블록도들 및 흐름도들의 블록들의 조합은 각각 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다는 것이 이해될 것이다. 이 컴퓨터 프로그램 명령어들은 다목적 컴퓨터, 전용 컴퓨터, 또는 기계를 생성하는 다른 프로그램 가능한 데이터 처리장치에 로드될 수 있어, 컴퓨터 또는 다른 프로그램 가능한 데이터 처리장치 위에서 실행되는 명령어들은 흐름도의 블록 또는 블록들에 지정된 기능들을 수행하기 위한 수단을 만든다. 예를 들면, 본 발명의 데이터 스로틀의 실시예들은 패킷처리 플랫폼들과 같은 컴퓨터 기기상에서 이행 될 수 있거나 또는 발신지의 API호들과 같은 소프트웨어를 통해서 이행될 수 있다.
이 컴퓨터 프로그램 명령어들은 컴퓨터 또는 다른 프로그램 가능한 데이터 처리장치가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 메모리에 저장될 수도 있어, 컴퓨터 판독가능 메모리에 저장된 명령어들은 흐름도 블록 또는 블록들에서 지정된 기능을 이행하는 명령어수단을 구비하는 제조물을 생성한다. 컴퓨터 프로그램 명령어들은 일련의 동작단계들이 컴퓨터 또는 다른 프로그램 가능한 장치 위에서 수행되어 컴퓨터 이행되는 처리를 생성하도록 컴퓨터 또는 다른 프로그램 가능한 데이터 처리장치 위에 로드되어, 컴퓨터 또는 다른 프로그램 가능한 데이터 처리장치 위에서 실행되는 명령어들이 흐름도 블록 또는 블록도들에서 지정된 기능들을 이행하기 위한 단계들을 제공하게 한다.
따라서, 블록도들 및 흐름도들의 블록들은 지정된 기능들을 수행하기 위한 수단들의 조합들, 지정된 기능들을 수행하기 위한 단계들 및 지정된 기능들을 수행하기 위한 프로그램명령어 수단들의 조합들을 지원한다. 블록도들 및 흐름도들의 각 블록과, 블록도들 및 흐름도들의 블록들의 조합들은 지정된 기능들 또는 단계들, 또는 전용 하드웨어 및 컴퓨터 명령어들의 조합들을 수행하는 전용 하드웨어 기반 컴퓨터시스템들에 의해 이행될 수도 있다는 것 또한 이해될 것이다.
이제 도 1a를 참조하면, 양방향 또는 단방향 통신들을 위한 본 발명의 실시예들에 따른 전체 시스템(10)이 보이고 있다. 이 시스템은 일반적으로 두 개의 종점들 또는 호스트들, 즉 발신지 A(12) 및 수신지 B(14)를 구비한다. 발신지 A(12) 및 수신지 B(14)는 호스트들이다. 발신지 A(12) 및 수신지 B(14)를 포함하여 호스 트는 다른 호스트들과 IP통신망을 경유하여 통신할 수 있는 어떠한 기기 또는 엔티티라도 될 수 있다. 호스트들은 사용자 데이터그램 프로토콜(UDP) 및/또는 전송제어프로토콜(TCP)과 같은 다수의 다른 유선 및/또는 무선 기법들 중의 어느 것에 따라 서로 통신할 수 있다. 시스템(10)도 통신망, 이를테면 발신지 A(12) 및 수신지 B(14)가 통신하게 하는 인터넷 프로토콜(IP) 통신망(16)을 구비한다.
발신지 A(12) 및 수신지 B(14)의 각각은 네트워크(16)에 직접 연결될 수 있지만, 일 실시예에서, 호스트들 중의 하나 또는 둘 다는 게이트웨이(GTW) 또는 접근점(AP) 네트워크 엔티티(17)(GTW/AP라 함)를 경유하여 네트워크에 연결되며, 도 1a는 발신지 A(12)가 그런 네트워크 엔티티를 경유하여 네트워크(16)에 연결되어 있음을 도시하고 있다. 도 1b에 도시된 실시예에서, 수신지 B(14)는 네트워크 엔티티(17)를 경유하여 네트워크(16)에 연결된다. 도 1c에 도시된 실시예에서, 발신지 A(12) 및 수신지 B(14)는 둘 다 네트워크 엔티티(17)를 경유하여 네트워크(16)에 연결된다. 다른 실시예들(미도시)에서, 발신지 A(12) 및 수신지 B(14)는 둘 다 네트워크(16)에 직접 연결될 수 있다. GTW/AP(17)을 경유하여 네트워크에 연결된 각 호스트를 위해, 시스템은 또한 전형적으로 호스트(예컨대, 발신지 A(12)) 및 GTW/AP(17) 사이에 전이중(full-duplex) 단일경로 구역(19)을 포함한다. 호스트는 다수의 다른 방식들 중의 무엇으로도 GTW/AP(17)와 통신할 수 있지만, 일 실시예에서, 점-대-점 프로토콜(PPP) 또는 다른 유사한 프로토콜, 이를테면 직렬회선 인터넷 프로토콜(SLIP)에 따라 통신한다. 그러나, 시스템(10)의 하나의 특성은 단일경로 구역이 TCP 라운드트립 시간(RTT)에 현저하게 영향을 준다는 것이다.
이제 도 2를 참조하면, 본 발명의 일 실시예에 따라 호스트(예컨대, 발신지 A(12) 및/또는 수신지 B(14)), 발신측 SIP 클라이언트, 착신측 SIP 클라이언트, 또는 GTW/AP(17)로서 동작할 수 있는 엔티티의 블록도가 보이고 있다. 보인 바와 같이, 이 엔티티는 프로세서(18)와 이 프로세서에 연결된 메모리(20) 및 인터페이스(22)를 일반적으로 포함할 수 있다. 메모리(20)는 본 발명의 실시예들에 따라 호스트의 동작과 관련된 단계들을 수행하는 프로세서를 위한 소프트웨어 애플리케이션들, 명령어들 등을 전형적으로 구비한다. 예를 들면, 호스트로서, 메모리는 사용자 또는 호스트 애플리케이션들, 이를테면 하이퍼텍스트 전송프로토콜(HTTP)에 따라 통신하기 위한 기존의 웹브라우저, 파일 전송(예컨대, FTP)애플리케이션, 텔넷 애플리케이션, 피어-투-피어 접근 애플리케이션 등을 포함할 수 있다.
이제 도 3을 참조하면, 그 도면은 본 발명의 실시예들에 따른 호스트로서 역할을 하는 발신지 A(12) 및/또는 수신지 B(14)와 같은 이동국의 기능블록도를 도시한다. 도시되고 이후에 설명되는 이동국은 본 발명으로 이익을 얻을 한 유형의 단말의 단순한 예시이고, 그러므로, 본 발명의 범위를 제한하기 위해 취해지지 않을 것임이 이해되어야만 한다. 이동국의 몇 개의 실시예들이 도시되고 예를 위해 이하에서 기술될 것이지만, 다른 유형들의 이동국들, 이를테면 개인휴대 정보단말들(PDA들), 페이저, 랩톱 컴퓨터 및 다른 유형들의 음성 및 텍스트 통신시스템들은 본 발명을 쉽게 사용할 수 있다.
이동국은 송신기(26), 수신기(28), 및 송신기(26)에 신호들을 제공하고 수신기(28)로부터 신호들을 받는 제어기(30)를 구비한다. 이 신호들은 적용가능한 셀룰 러 시스템의 무선인터페이스 표준에 따르는 정보, 사용자 담화 및/또는 사용자 발생 데이터를 신호하는 것을 포함한다. 이 점에 관하여, 이동국은 하나 이상의 무선인터페이스 표준, 통신프로토콜, 변조 유형들, 및 접근 유형들로 동작할 수 있다. 더 상세하게는, 이동국은 다수의 제1세대(1G), 제 2세대(2G), 2.5G 및/또는 제3세대(3G) 통신프로토콜들 등 중의 어느 것에 따라서도 동작될 수 있다.
예를 들면, 이동국은 2G 무선통신 프로토콜들인 IS-136(TDMA), GSM 및 IS-95(CDMA)에 따라서, 및/또는 3G 무선통신 프로토콜들 이를테면 CDMA2000 및 광대역 CDMA(WCDMA)에 따라서 동작될 수 있다. 일부 협대역 AMPS(NAMPS)뿐 아니라 TACS 이동단말들은 본 발명의 가르침으로 이익을 얻을 수 있고, 이중 또는 더 높은 모드의 전화기들(예컨대, 디지털/아날로그 또는 TDMA/CDMA/아날로그 전화기들)도 그러하다.
제어기(30)는 이동국의 오디오 및 논리 기능들을 이행하는 데 필요한 회로를 구비한다는 것이 이해된다. 예를 들면, 제어기는 디지털 신호 처리기기, 마이크로프로세서 기기, 및 각종 아날로그-디지털 변환기들, 디지털-아날로그 변환기들, 및 다른 지원 회로들로 구성될 수 있다. 이동국의 제어 및 신호처리 기능들은 이 기기들 간에 그것들의 개별 능력들에 따라 할당된다. 그래서 제어기도 메시지 및 데이터를 길쌈(convolutionally)부호화 및 인터리브한 후 변조 및 전송하는 기능을 구비한다. 제어기는 내부 음성부호기(VC; 30A)를 부가적으로 구비할 수 있고, 내부 데이터모뎀(DM; 30B)을 구비할 수 있다. 게다가, 제어기는 메모리에 저장하게 될 수 있는 하나 이상의 소프트웨어 애플리케이션들을 동작시키는 기능을 구비할 수 있다.
또한 이동국은 기존의 이어폰 또는 스피커(32), 벨(ringer; 34), 마이크로폰(36), 디스플레이(38), 및 사용자 입력 인터페이스를 포함하며, 그것들 모두는 제어기(30)에 연결된다. 사용자 입력 인터페이스는, 이동국이 데이터를 받을 수 있게 하는 것으로, 키패드(40), 터치디스플레이(미도시) 또는 다른 입력기기와 같이 이동국이 데이터를 받을 수 있게 하는 다수의 기기들 중의 어느 것을 포함할 수 있다. 키패드를 포함하는 실시예들에서, 키패드는 이동국을 작동하기 위해 사용되는 기존의 숫자(0-9) 및 관련된 키들(#, *) 및 다른 키들을 구비한다.
이동국은 또한 통상 이동가입자에 관련된 정보 요소들을 저장하는 가입자식별 모듈(SIM; 42), 착탈식 사용자식별 모듈(R-UIM) 등과 같은 메모리를 구비할 수도 있다. SIM 외에, 이동국은 다른 메모리를 구비할 수 있다. 이에 관해, 이동국은 데이터의 임시 저장을 위한 캐시영역을 포함하는 휘발성 임의접근메모리(RAM)와 같은 휘발성 메모리(44)를 구비할 수 있다. 이동국은 또한 내장될 수 있고 및/또는 탈착 가능한 다른 불휘발성 메모리(46)를 구비할 수도 있다. 불휘발성 메모리는 EEPROM, 플래시 메모리 등을 부가적으로 또는 대신에 포함할 수 있다. 메모리들은 이동국의 기능들을 이행하기 위해 이동국에 의해 사용되는 정보 및 데이터의 다수의 조각들 중의 어느 것이나 저장할 수 있다. 예를 들면, 메모리들은 HTTP에 따라서 통신하기 위한 기존의 웹브라우저와 같은 사용자 또는 호스트 애플리케이션들, 파일전송(예컨대, FTP) 애플리케이션, 텔넷 애플리케이션, 피어-투-피어 접근 애플리케이션 등을 저장할 수 있다. 부가적으로, 메모리들은, 아래에서 설명되는 바와 같이, 송신윈도우를 이행하기 위한 버퍼와 수신윈도우를 이행하기 위한 저장소를 저장할 수 있다. 이동국들 중의 하나 이상은 발신측 SIP 클라이언트로서 동작할 수 있고 이동국들 중의 하나 이상은 SIP에 따라 발신측 SIP 클라이언트와 통신할 수 있는 착신측 SIP 클라이언트로서 동작할 수 있다. SIP의 사용은 세션 시동 프로세스 동안 흔한 일이지만, 본 발명의 실시예들은 시동 프로세스 동안 SIP와는 다른 프로토콜들을 이용할 수 있다는 것이 인정된다.
도 4는 본 발명의 실시예들에 따라 호스트(예컨대, 발신지 A(12) 또는 수신지 B(14))의 프로토콜 스택을 도시하는 것으로, 프로토콜 스택은 소프트웨어, 하드웨어, 펌웨어 또는 그것들의 조합들로 구현될 수 있다. 더 상세하게는, 도 4는 응용층(50), 프레젠테이션층(52), 세션층(54), 전송층(56), 네트워크층(58), 데이터링크층(60) 및 물리층(62)을 포함한 7개 층들을 포함하는 개방형 시스템간 상호접속(OSI) 모델(48)을 도시한다. OSI모델은 국제표준화기구(ISO)에 의해 개발되고, ISO 7498에서 "The OSI Reference Model"이란 명칭으로 기술되며, 그 내용은 전체가 참조로써 여기에 통합된다.
OSI모델(48)의 각 층은 특정 데이터 통신 태스크인 그것에 앞서는 층에 관련한 서비스를 수행한다(예컨대, 네트워크층(58)은 전송층(58)에 서비스를 제공한다). 이 프로세스는 일련의 봉투들에 글자를 위치시킨 후 우편시스템을 통해 송신하는 것에 비유될 수 있다. 각각의 후속 봉투(envelope)는 트랜잭션을 처리하는 다른 층 또는 트랜잭션을 처리하는데 필요한 오버헤드정보를 추가한다. 종합하여, 모든 봉투들은 글자가 정당한 주소를 얻는 것과 수신된 메시지가 송신된 메시지와 동일 하게 되는 것을 돕는다. 일단 전체 패키지가 그것의 수신지에 수신된다면, 글자 자체가 정확히 쓰인 것과 같게 나타나기까지 봉투는 하나씩 개봉된다.
하지만, 두 호스트들(예컨대, 발신지 A(12) 및 수신지 B(14)) 사이의 데이터 통신에서, 각 최종 사용자는 자신들의 기능들을 수행하는 봉투들을 투명하게 알지 못한다. 예를 들면, 자동 은행출납(bank teller) 트랜잭션은 다층 OSI모델에 따라서 동작하는 호스트를 통해 추적될 수 있고, 여기서 다층 OSI모델에 따라서 동작하는 호스트는 개방시스템 또는 다층시스템이라고 할 수 있다. 그런 경우, 하나의 다층시스템(예컨대, 개방시스템 A)은 트랜잭션을 시도하는 사용자에 대한 인터페이스인 응용층을 제공할 수 있는 한편, 다른 다층시스템(개방시스템 B)은 은행의 호스트컴퓨터의 응용소프트웨어와 인터페이스하는 응용층을 제공할 수 있다. 개방시스템 A 및 개방시스템 B의 상응하는 층들은 동료(peer)층들이라고 할 수 있고 피어 프로토콜들을 통해 통신할 수 있다. 그런 동료 프로토콜들은 사용자의 응용을 위한 통신지원을 제공하여, 계좌 예금, 현금 지급, 신용 대부와 같은 트랜잭션 관련 태스크들을 수행한다.
그러나, 2개의 개방시스템들(예컨대, 개방시스템 A 및 개방시스템 B) 사이의 실제 데이터 흐름이, 하나의 개방시스템(예컨대, 개방시스템 A, 발신지)의 상단(64)부터 바닥(66)까지 통신선로를 가로지른 후, 개방시스템(예컨대, 개방시스템 B, 수신지)의 바닥(66)부터 상단(64)까지 있다. 사용자 응용데이터가 동일 시스템에서 하나의 층에서부터 다음 층으로 아래쪽으로 통과하는 각 시간에 더 많은 처리 정보가 부가된다. 그 정보가 다른 시스템의 동료층에 의해 제거되고 처리되는 경 우, 그것은 각종 태스크들(오류정정, 흐름제어 등)이 수행되게 한다.
ISO는 데이터가 실제로 발신지를 떠날 때 흐르는 순서로 아래에서 요약되는 모든 7개 층들을 구체적으로 정의하고 있다.
계층 7, 응용층(50), OSI 응용층과 인터페이스하는 사용자 애플리케이션(예컨대, 자동 은행출납기계 등으로부터 돈을 얻음)을 위해 제공된다. 그리고 위에서 지적된 바와 같이, OSI 응용층은 응용층과 통신하는 다른 개방시스템 내에 대응하는 피어층을 가질 수 있다(예컨대, 은행의 호스트컴퓨터).
계층 6, 프레젠테이션층(52), 사용자 정보(예컨대, 결제용 계좌(checking account)로부터 현금으로 50달러를 인출하라는 요구가 수신지 개방시스템이 이해하거나 해석할 수 있는 형식(즉, 1과 영으로 된 구문 또는 시퀀스)임을 확인한다.
계층 5, 세션층(54), 개방시스템들 사이의 데이터의 동기화 제어를 제공한다(즉, 발신지에서 계층 5를 통과하는 비트구성들이 수신지에서 계층 5를 통과하는 것들과 동일함을 확인).
계층 4, 전송층(56), 단-대-단 접속이 2개의 개방시스템들 사이에서 수립되어 있고 대개 신뢰성 있음을 보증한다(즉, 수신지의 계층 4는 말하자면 발신지의 계층 4로부터 수신되는 연결의 요구를 확인한다).
계층 3, 네트워크층(58), 네트워크를 통한 데이터의 라우팅 및 릴레이를 제공한다(무엇보다도, 아웃바운드 측의 계층 3에서 주소는 수신지의 계층 3에 의해 읽힐 봉투(envelope)에 놓인다).
계층 2, 데이터링크층(60), 메시지들이 하나의 개방시스템에서 이 층을 통해 아래로 통과하고 다른 개방시스템에서 동료층을 통해 위로 통과하는 데이터의 흐름 제어를 포함한다.
계층 1, 물리인터페이스층(62), 데이터 통신 장비가 기계적으로 및 전기적으로 접속되는 방식들 및 데이터가 그런 물리접속들을 가로질러 발신지의 계층 1로부터 수신지의 계층 1까지 이동하게 하는 수단을 구비한다.
도 5는 데이터구조(73) 및 일반 OSI모델(70)에 의해 제안된 바에 따라 본 발명의 실시예들에 따르는 발신지 A 및/또는 수신지 B의 OSI기능성의 비교(68)를 도시한다. 더 상세하게는, 도 5는 인터넷프로토콜(IP) 네트워크층(74)이 OSI 7층 모델(70)에 맞는 경우를 도시한다. 보인 바와 같이, 전송층(72)은 데이터 접속 서비스들을 애플리케이션들에 제공하고 데이터가 누락 없이 그리고 순서대로 오류 없이 전달되는 것을 보증하는 메커니즘들을 담고 있을 수 있다. TCP/IP 및 UDP 모델(73)의 전송층은 세그먼트들을 그것들을 IP층으로 보내는 것에 의해 송신하고, IP층은 그것들을 수신지로 라우팅한다. 전송층은 IP층로부터의 착신 세그먼트들을 받아들이며, 어느 애플리케이션이 수신자인지를 결정하고, 그 데이터를 그것이 보내진 순서로 그 애플리케이션에 보낸다.
그래서, IP층(74)은 네트워크층 기능들을 수행하고, 시스템들 간에 데이터를 라우팅한다. 데이터는 단일 링크를 가로지를 수 있거나 인터넷에서 몇 개의 링크들을 가로질러 중계될 수 있다. 데이터는 정보를 다루고 있는 계층 3(78)을 다루는 정보를 담고 있는 IP헤더를 구비하는 데이터그램들이라고 불리는 단위들로 운반된다. 라우터들은 데이터그램들을 그것들의 수신지로 향하게 하기 위해 IP헤더의 수 신지 주소를 검사한다. 모든 데이터그램이 독립적으로 라우팅되고 IP층은 데이터그램들의 신뢰성 있는 또는 순차적인 전달을 보증하지 못하기 때문에 IP층은 비연결성(connectionless)이라고 불린다. IP층은 특정 데이터그램이 어느 애플리케이션-대-애플리케이션 상호작용에 속하는지를 살피지 않고 자신의 트래픽을 보낸다. 전송층(72)은 전송제어프로토콜(TCP) 및 사용자 데이터그램 프로토콜(UDP) 층을 구비한다. TCP의 경우, 신뢰성 있는 데이터 접속은 TCP/IP 프로토콜들을 사용하여 기기들 사이에 제공된다. UDP는 "비신뢰성의" 프로토콜이라고 알려져 있는데 패킷들이 그것들의 수신지에 도달하였음을 검증하지 않고 그것들이 순서대로 도착할 것임을 보증하지 않기 때문이다. 만일 애플리케이션이 이 보증을 필요로 하면, 그것은 그것들을 그 자체로 제공해야만 하거나 TCP를 사용해야만 한다. TCP 및 UDP 층은 IP층(74)의 상단에서 동작하여 데이터를 데이터그램들이라고 불리는 데이터 패킷들로 패킹하기 위해 그리고 물리층(80)을 경유하여 데이터 링크층 및 밑에 있는 네트워크를 가로질러 데이터그램들을 전송하기 위해 사용된다. 데이터 링크층은 라디오링크프로토콜(RLP), 이더넷, 무선이더넷, SLIP, 토큰링, ATM 등과 같은 다수의 다른 프로토콜들 중의 어느 것에 따라 동작할 수 있다.
다수의 다른 데이터 링크층 프로토콜들처럼, 수신기가 데이터를 정확하게 수신하지 않았을 경우에 RLP층(78)은 데이터의 재송신을 제공한다. 인식될 바와 같이, IP 프로토콜은 어떠한 흐름 제어 또는 재송신 메커니즘들도 포함하지 않는다. 그것이 TCP층(72) 및 RLP층(78)이 IP층(74)의 상단에서 통상 사용되는 이유이다. 이 점에 관하여, TCP 프로토콜들은 손실 데이터 패킷을 검출하기 위해 수신확인을 제공한다.
TCP가 재송신 및 재정렬을 위해 요구하는 시간이 이용가능하지 않은 스트리밍 미디어(오디오와 비디오 등)와 같은 애플리케이션들을 위해, 또는 신뢰성 있는 접속을 셋업하는 오버헤드가 어울리지 않게 큰 도메인이름서버(DNS) 검색(lookup)과 같은 단순한 질의/응답 애플리케이션들을 위해 UDP는 통상 사용된다. TCP 및 UDP 둘 는 다수의 더 높은 수준의 애플리케이션들을 운반하기 위해 이용된다. 어떤 주어진 네트워크주소에서의 애플리케이션들은 그것들의 TCP 또는 UDP 포트번호에 의해 구별된다. 협약에 의해 어떤 잘 알려진 포트들은 특정 애플리케이션들과 관련된다. RTP는, 3G 무선 네트워크의 IP 멀티미디어 시스템에서 사용될 수 있는 것으로, TCP 및 로우(raw) UDP 사이에 타협을 제공하기 위한 시도이다. RTP가 UDP 패킷 포맷을 기초로서 이용하지만, 그것은 동일한 프로토콜 층에 있는 기능을 제공한다.
도 6a는 본 발명의 실시예에 따른, 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 두 호스트들 사이의 양방향 또는 단방향 통신들을 위한 전체 시스템을 도시한다. 시스템(600)은 두 개의 종점들 또는 호스트들, 즉 발신지 A(602) 및 수신지 B(604), 그리고 GTW/AP(17)을 포함한다. 도 6a의 예시적인 실시예에서, 발신지 A(602)는 114kbps의 접속을 가지며, 수신지 B(604)는 82kbps의 접속을 가지고, 발신지 A 및 수신지 B 사이의 네트워크(606)는 80kbps의 처리량을 가진다. 예를 들면, UDP와 같은 비연결정 전송층 프로토콜들은 발신지 A(602) 및 수신지 B(604) 사이의 통신들을 정체되게 할 수 있는데 시스템(600)을 구성하는 요소들의 대역폭들이 다르기 때문이다. 도 6b는 도 6a에 보인 바와 동일한 전체 시스템을 도 시하지만, 도 6b에서, UDP 스로틀(608) 및 프록시서버(612)는 시스템(610)에 부가되었고 시스템(610)의 부분을 구성한다.
도 6b의 시스템(610)의 UDP 스로틀(608)은 통신을 위해 대역폭 한계 또는 스로틀 값을 수립하는데 이바지한다. 용어 "대역폭 한계" 및 "스로틀 값"은 여기서 호환되어 사용될 수 있다. 본 발명의 실시예들에 따르면, 이 대역폭 한계는 예를 들면 SIP세션과 같은 세션 셋업 프로세스 동안 전형적으로 수립되지만, 대역폭 한계는 UDP 스로틀(608)에 제공된 소정의 값일 수 있다. SIP는 협상된 대역폭 한계를 이 기술분야에서 알려져 있는 방식으로 제공할 것이지만, 대역폭 한계를 획득하거나 결정하는 다른 방법들이 사용될 수도 있다. 도 6b에서, UDP 스로틀(608)은 발신지 A(602)와 관련되어 있는 것으로 보이고 있지만, 다른 실시예들에서 UDP 스로틀(608)은 발신지(602)와 함께 위치를 공유할 수 있거나 또는 발신지(602)와 통신하는 별개의 요소일 수 있다.
SIP는 하나 이상의 참가자와 함께 세션들을 만들며, 변형하고 종료하기 위한 응용층 제어(신호통지) 프로토콜이다. 이 세션들은 인터넷 멀티미디어 회의, 인터넷 전화 호 및 멀티미디어 배포를 포함한다. 세션의 구성원들은 멀티캐스트를 경유하여 또는 유니캐스트 관계 메시(mesh) 또는 이것들의 조합을 경유하여 통신할 수 있다. 세션들을 만들기 위해 사용되는 SIP 송신권유(invitation)는 참가자들이 한 세트의 호환성 미디어 유형들에 관해 합의에 도달하는 것을 허락하는 세션 기술(descriptions)을 운반한다. SIP는 요구들을 사용자의 현재 위치에 프록싱(proxying) 방향을 바꾸는 것에 의해 사용자 이동성을 지원한다. 이 능력은 사용 자가 그들의 현재 위치를 등록할 수 있는 예를 들면 도 6b의 시스템(610)에 보인 바와 같은 SIP 프록시서버와 같은 프록시서버(612)의 사용에 의해 구현된다. SIP는 어느 특정 회의 제어 프로토콜에 묶이지 않는다. SIP는 하위층 전송프로토클에 무관해지도록 설계될 수 있고 부가적인 능력들로 연장될 수 있다(예컨대, 2002년 6월의 SIP: Session Initiation Protocol이란 명칭의 인터넷 엔지니어링 태스크 포스(IETF) RFC(request for comment) 문서 RFC 3261 참조. 이 문서는 전체가 참조로써 여기에 통합됨).
이제 도 7을 참조하면, 프록시서버(612)는 그러므로 SIP신호통지 메시지들과 같은 SIP신호통지 메시지들을 발신측 SIP클라이언트(602)로서 동작하는 고정 단말을 포함하는 네트워크 노드로부터 수신하고 및/또는 그것에 보내는 능력이 있다. SIP는 그것이 자신 소유의 신뢰성 메커니즘을 제공할 때 패킷층으로부터 독립해 있고 비신뢰성 데이터그램 서비스만을 필요로 한다. 전형적으로 SIP가 UDP 또는 TCP 위에서 사용되지만, 그것은 기술적 변경 없이 IPX, 프레임 릴레이, ATM AAL5 또는 X.25 등에서 대충은 실행될 수 있었다. 본 발명의 실시예들은 다른 대역폭 접속 또는 처리량을 가지는 발신지, 네트워크 및 수신지에 의해 야기되는 정체현상을 최소화하거나 방지하기 위해 발신지(602)의 대역폭이 제한(또는 "억제")되도록 SIP 세션 동안 대역폭 한계가 수립되게 한다.
예시적인 SIP 패킷은 도 8에 도시된다. 이 예시적인 패킷(800)은 메소드 이름(802)(예컨대, "Invite"), 요구 URI(804)(요구(Request)-URI는 균일자원식별자(Uniform Resource Identifier)이고, 요구를 적용할 자원을 식별한다), 헤더 들(806) 및 메시지 페이로드(808)를 포함한다. 발명의 일 실시예에서, 발신지(602), 수신지(604) 또는 발신지(602) 및 수신지(604) 사이의 통신을 다루는 어느 패킷-처리 플랫폼(미도시)의 대역폭 접속에 관한 정보는 헤더(806)에 포함된다. 수신지(604)의 대역폭 접속은 반환 메시지의 헤더(806)에 포함된다. 또한, 네트워크(606)에서 패킷 처리 플랫폼들의 대역폭에 관한 정보는 발신지(602)에 반환된다. 그러므로, 발신지(602)는 그 자체, 수신지(604) 그리고 발신지(602) 및 수신지(604) 사이의 네트워크(606)에 관한 대역폭 정보를 가질 것이다. 그러면 발신지(602)는 발신지(602), 수신지(604) 또는 네트워크(606)의 대역폭 접속 또는 처리량의 최저값인 대역폭 한계("스로틀 값")를 설정할 수 있다. 예를 들면, 만일 발신지(602)가 114kbps의 대역폭 접속을 가지며, 네트워크(606)(하나 이상의 패킷 처리 플랫폼을 포함)는 80kbps의 전체 처리량을 가지고, 수신지(604)는 82kbps의 전체 처리량을 가진다면, 발신지(602)는 대역폭 한계 또는 스로틀 값을 80kbps로 설정할 것이다.
일 실시예에서, UDP 스로틀(608)은 예를 들면 소켓 인터페이스에 대한 API 호들과 같은 발신지(602)의 운영체제에 대한 API 호들에 의해 이행된다. 다른 API들은 윈속(Winsock) TM, 자바 TM, 전송층 인터페이스(TLI), 노벨 TM 넷웨어(Netware) API 등을 포함한다. 도 9a는 발명의 실시예에서 두 개의 애플리케이션들(애플리케이션 A(902) 및 애플리케이션 B(904)) 사이의 예시적인 통신을 도시한다. 이 실시예에서, API 호들은 운영체제(908)의 소켓층(906)에 대한 애플리케이션(예컨대, 애플리케이션 A(902), 애플리케이션 B(904))에 의해 만들어진다.
도 9b는 도 9a의 실시예의 더 상세한 도해이다. 이 실시예에서 보인 것처럼, 표준 API 호들인 "sendto()"(910), "bind()"(912), "recvfrm()"(914), 및 "setsockopt()"(916)은 발명의 실시예에서 운영체제(908)의 예시적인 소켓층(906)에 만들어져 있는 것으로 보이고 있다. 일반적으로, 이 API 호들의 각각은 괄호 "()"로 도시된 바와 같이 그것들이 호출될 때 통과되는 하나 이상의 변수를 가진다. 이 표준 API 호들은 당연히 하나의 예시이고 예시적인 목적으로 제공되며, 부가적인 수의 표준 API 호들이 존재한다.
각종 실시예들에서, UDP 스로틀(608)은 API 호들에 의해 이행된다. 예를 들면, 하나의 실시예에서, "sendto()"(910) API 호는 마지막 구성가능 시간량(예컨대, 마지막 1초)을 위한 대역폭이 SIP 협상 과정 중에 먼저 수립되었거나 또는 다른 수단에 의해 UDP 스로틀(608)에 제공된 대역폭 한계를 초과하지 않을 때에만 데이터를 보내도록 변형될 수 있다. "sendto()"(910) API 시스템 호는 스로틀 값이 초과될 것이라면 데이터의 송신을 차단할 것이다. 이 점에 관하여, "sendto()"(910) API는 대역폭 한계가 초과되지 않도록 또는 대역폭이 한계 미만이 될 시간까지 데이터를 송신하는 것을 지연할 것이다(정상적으로는, "sendto()"(910) API는 송신하려는 패킷을 유지할 버퍼들이 없는 경우에만 차단할 것이다). 다른 실시예에서, 대역폭 한계(스로틀 값)는 데이터를 송신하는데 이용되는 발신지(602)의 소켓을 위해 설정된다. 소켓의 스로틀 값을 설정하기 위한 수단은 "setsocket()"(916) API 호에 의한다. 부가적인 옵션은 그 소켓을 위한 대역폭 한계(즉 스로틀 값)를 초당 비트(bps)로 설정하는 "setsocket()"(916) API 호의 통 과된 변수들에 포함된다.
다른 실시예들에서, 대역폭 한계 및 조절(throttling) 데이터를 유지하는 API 호의 새로운 라이브러리가 개발될 수 있다. 예를 들어, 얻어진 스로틀 값보다 적게 송신되는 데이터를 제한하는 새로운 API 이를테면 "sendto_throttled()"이 개발될 수 있다. 또 다른 실시예에서, 예를 들면 "sendto_bandwidth()"와 같은 예시적인 API가 얻어진 스로틀 값보다 적게 소켓의 대역폭 한계를 설정하는데 이용될 수 있다.
이제 도 10을 참조하면, 이 도면은 본 발명의 일 실시예에 따라 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 두 호스트들 사이의 양방향 또는 단방향 통신 방법을 도시한다. 프로세서는 단계 1000에서 시작된다. 보인 바와 같이, 발신지 A(12) 및 수신지 B(14) 사이의 양방향 또는 단방향 통신 방법은, 블록 1002에 보인 것처럼, 발신지 및 수신지의 데이터 전송속도들 또는 대역폭((BS, BD)을 얻는 발신지 A를 일반적으로 구비한다. 발신지 A는 앞서 설명된 바와 같이 예를 들면 SIP 프로세스와 같은 셋업 프로세스 동안과 같이 다수의 다른 기법들 중의 어느 것에 따라 전송속도들을 결정하거나 또는 데이터 전송속도들은 본 발명의 범위 밖의 수단에 의해 발신지 A에 제공될 수 있다. 다이얼-업 디지털 가입자 회선(DSL) 통신의 맥락에서, 데이터속도들은 발신지 A에서의 통신(예컨대, 모뎀) 설정값들(settings)로부터 얻어질 수 있다. 또한, 예를 들면, CDMA2000 통신의 맥락에서, 개별 속도들은 시스템 능력들로부터 얻어질 수 있다.
단계 1004에서, 스로틀 값 대역폭(BTV)은 BS 및 BD 중의 최저 데이터속도 이하로 설정된다. 스로틀 값 대역폭(BTV)은 발신지에 의해 발신지로부터 수신지까지 전송되는 데이터를 위한 최대 데이터속도 한계로서 설정된다. 단계 1006에서, 데이터 패킷들은 스로틀 값(BTV) 이하인 데이터 전송속도로 발신지로부터 수신지까지 전송된다. 단계 1006에서 전송하려는 더 이상의 데이터가 있는지가 결정된다. 전송하려는 더 이상의 데이터가 있으면, 프로세스는 단계 1004에 돌아오고, 그렇지 않으면 프로세스는 단계 1010으로 가서, 거기서 끝난다.
이제 도 11을 참조하면, 그 도면은, 본 발명의 일 실시예에 따라, 각 호스트가 발신지 호스트와 수신지 호스트일 수 있는 두 호스트들 사이의 네트워크를 통한 양방향 또는 단방향 통신의 다른 방법을 도시한다. 프로세스는 단계 1100에서 시작된다. 보인 바와 같이, 발신지 A(12) 및 수신지 B(14) 사이의 양방향 또는 단방향 통신의 방법은, 블록 1102에 보인 것처럼, 발신지 A 및 수신지 B의 데이터 전송속도들 또는 대역폭(BS, BD)을 얻는 발신지 A를 일반적으로 포함한다. 예를 들면 하나 이상의 라우터와 같은 임의의 개재하는 패킷 처리 플랫폼들의 처리량(throughput) 데이터속도(BN) 역시 결정된다. 발신지 A는 앞서 설명된 바와 같이 SIP에 의한 셋업 프로세서 동안과 같이 다수의 다양한 기법들 중의 어느 것에 따라서 또는 본 발명의 범위 내에 있지 않은 방식으로 소정의 대역폭 한계를 얻음으로써 전송속도들을 결정할 수 있다. 예를 들면, 다이얼-업 디지털 가입자 회선(DSL) 통신의 맥락에서, 데이터속도들은 발신지 A에서의 통신(예컨대, 모뎀) 설정값들로부터 얻어질 수 있다. 또한, 예를 들면, CDMA2000 통신의 맥락에서, 개별 속도들은 시스템 능력들로부터 얻어질 수 있다.
단계 1104에서 스로틀 값 대역폭(BTV)은 BS, BD, 및 BN 중의 최저 데이터속도 이하로 설정된다. 스로틀 값 대역폭(BTV)은 발신지에 의해 발신지로부터 네트워크를 통해 수신지까지 전송되는 속도에 대한 최고 데이터속도 한계로서 설정된다. 단계 1106에서, 데이터 패킷들은 발신지로부터 네트워크를 통해 수신지까지 스로틀 값(BTV) 이하의 데이터속도로 전송된다. 단계 1108에서, 전송하려는 더 이상의 데이터가 있는지가 결정된다. 전송하려는 더 이상의 데이터가 있다면, 프로세서는 단계 1104로 돌아오고, 그렇지 않으면 프로세스는 단계 1110으로 가서, 거기서 끝난다.
그러므로, 본 발명의 실시예들은 UDP 네트워크들의 정체현상과 관련된 많은 문제들을 극복하고 예측할 수 없는 네트워크 응답시간, 지연 민감성 애플리케이션들을 지원하지 못하는 능력 및 더 높은 네트워크 고장율을 포함하여 정체된 UDP 네트워크들에 의해 야기되는 많은 문제를 피할 수 있다.
발명의 많은 변형 및 다른 실시예들은 본 발명이 관련되는 기술분야의 통상의 지식을 가진 자에게 전술한 설명들 및 관련된 도면들에서 제시된 가르침들의 이점을 가지다는 생각이 들 것이다. 우리는 본 발명의 실시예를 SIP와 같은 셋업 프로세스 동안의 협상에 의해 또는 다른 발신지로부터 소정의 대역폭 한계를 수신하고 소프트웨어 호들을 통해 데이터 조절을 이행하는 것에 의해 대역폭 한계를 얻는 것으로 설명하였다. 그러나, 본 발명의 소망된 효과는 여기에 설명되지 않은 소프트웨어 및/또는 하드웨어와 같은 다른 방식들로 이행될 수 있다는 것이 인정될 것이다. 그러므로, 본 발명은 개시된 구체적인 실시예들로 한정되는 것이 아니고 변형들 및 다른 실시예들이 첨부의 청구항들의 범위 내에 포함되도록 의도된다는 것이 이해될 것이다. 비록 구체적인 용어들이 여기서 사용되었지만, 그것들은 일반적이고 기술적인 의미로 사용되고 한정하는 목적으로는 아니다.

Claims (21)

  1. 다중화된 데이터를 제1 데이터 전송속도로 송신할 수 있는 제1호스트;
    다중화된 데이터를 제2 데이터 전송속도로 수신할 수 있는 제2호스트; 및
    데이터 스로틀이 제1 데이터 전송 속도를 제1 데이터 전송속도 및 제2 데이터 전송속도 중의 작은 것 이하인 스로틀 값으로 제한하는 데이터 스로틀을 포함하는 통신시스템.
  2. 제1항에 있어서, 제3 데이터 전송속도를 가지는 네트워크를 더 포함하고 데이터 스로틀은 제1 데이터 전송속도를 제1 데이터 전송속도, 제2 데이터 전송속도 및 제3 데이터 전송속도 중 더 작은 하나 이하인 스로틀 값으로 제한하는 통신시스템.
  3. 제1항에 있어서, 스로틀 값 전송속도는 통신 셋업 기간 동안 얻어지는 통신시스템.
  4. 제1항에 있어서, 스로틀 값은 미리 결정된 값인 통신시스템.
  5. 제1항에 있어서, 제1호스트는 응용층, 소켓층, 전송층 및 네트워크층을 더 포함하는 통신시스템.
  6. 제5항에 있어서, 데이터 스로틀은 응용층에서부터 소켓층까지의 적어도 하나의 응용 프로그램 인터페이스(API) 호(call)에 의해 동작하고, 상기 API 호는 전송 데이터속도를 스로틀 값으로 한정하는 통신시스템.
  7. 제5항에 있어서, 전송층은 사용자 데이터그램 프로토콜(UDP)을 포함하고 네트워크층은 인터넷 프로토콜(IP)을 포함하는 통신시스템.
  8. 다중화된 데이터를 제1 데이터 전송속도로 송신할 수 있는 제1호스트;
    다중화된 데이터를 제2 데이터 전송속도로 수신할 수 있는 제2호스트;
    다중화된 데이터를 제3 데이터 전송속도로 송신할 수 있는 네트워크; 및
    제1호스트로부터 제2호스트로 송신되는 데이터의 대역폭을 스로틀 값으로 제한할 수 있는 데이터 스로틀을 포함하는 통신시스템.
  9. 제8항에 있어서, 데이터 스로틀은 스로틀 값 전송속도를 제1 데이터 전송속도 및 제2 데이터 전송속도 중의 작은 것 이하인 값으로 제한하는 통신시스템.
  10. 제9항에 있어서, 스로틀 값은 미리 결정된 값인 통신시스템.
  11. 제9항에 있어서, 스로틀 값은 통신 시동 프로세스 동안 결정되는 통신시스 템.
  12. 제9항에 있어서, 통신 시동 프로세스은 세션 시작 프로토콜(SIP)인 통신시스템.
  13. 제8항에 있어서, 제1호스트는 응용층, 소켓층, 전송층 및 네트워크층을 더 포함하는 통신시스템.
  14. 제13항에 있어서, 데이터 스로틀은 응용층부터 소켓층까지의 적어도 하나의 응용 프로그램 인터페이스(API) 호에 의해 동작하고 상기 API 호는 전송 데이터속도를 제1 데이터 전송속도 및 제2 데이터 전송속도 중 작은 것 이하인 값으로 제한하는 통신시스템.
  15. 제13항에 있어서, 전송층이 사용자 데이터그램 프로토콜로 구성되는 그 점에서 및 네트워크층의 시스템은 인터넷 프로토콜로 구성된다
  16. 제1호스트와 제2호스트 사이의 통신 방법에 있어서,
    제1호스트의 데이터 전송속도 및 제2호스트가 데이터를 수신하는 제2호스트의 데이터 전송속도를 얻는 단계;
    제1호스트의 데이터 전송속도 및 제2호스트의 데이터 전송속도 중 작은 것과 동일한 스로틀 값을 설정하는 단계; 및
    제1호스트에서부터 제2호스트에 스로틀 값 이하인 데이터 전송속도로 데이터 패킷들을 전송하는 단계를 포함하는 통신방법.
  17. 제16항에 있어서, 제1호스트의 최대 데이터 전송속도를 스로틀 값으로 설정하는 단계는, 제1호스트 상에서 실행되는 애플리케이션로부터 제1호스트의 소켓층으로의 응용 프로그래밍 인터페이스(API) 호들에 의해 달성되는 통신방법.
  18. 제16항에 있어서, 제1호스트에서부터 제2호스트에 스로틀 값 이하인 데이터 전송속도로 데이터 패킷들을 전송하는 단계는 사용자 데이터그램 프로토콜(UDP) 전송층 및 인터넷 프로토콜 네트워크층의 사용에 의해 달성되는 통신방법.
  19. 네트워크를 가로질러 제1호스트 및 제2호스트 사이에서 통신하는 방법에 있어서,
    제1호스트의 데이터 전송속도, 제2호스트의 데이터 전송속도, 및 네트워크의 데이터 전송속도 중 작은 것 이하인 스로틀 값을 수신하는 단계;
    제1호스트의 최대 데이터 전송속도를 스로틀 값으로 설정하는 단계; 및
    제1호스트에서부터 제2호스트에 데이터 패킷들을 스로틀 값 이하인 데이터 전송속도로 전송하는 단계를 포함하는 통신방법.
  20. 제19항에 있어서, 제1호스트의 최대 데이터 전송속도를 스로틀 값으로 설정하는 단계는, 제1호스트 상에서 실행되는 애플리케이션에서부터 제1호스트의 소켓층으로의 응용 프로그래밍 인터페이스(API) 호들에 의해 달성되는 통신방법.
  21. 제19항에 있어서, 제1호스트에서부터 제2호스트에 데이터 패킷들을 스로틀 값 이하인 데이터 전송속도로 전송하는 단계 사용자 데이터그램 프로토콜(UDP) 전송층 및 인터넷 프로토콜 네트워크층의 사용에 의해 달성되는 통신방법.
KR1020067014144A 2004-01-16 2004-12-20 Udp발신지 스로틀링에 의한 네트워크 정체현상 제어시스템 및 방법 Expired - Fee Related KR100789995B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/758,854 2004-01-16
US10/758,854 US20050157646A1 (en) 2004-01-16 2004-01-16 System and method of network congestion control by UDP source throttling

Publications (2)

Publication Number Publication Date
KR20060121941A true KR20060121941A (ko) 2006-11-29
KR100789995B1 KR100789995B1 (ko) 2008-01-02

Family

ID=34749590

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067014144A Expired - Fee Related KR100789995B1 (ko) 2004-01-16 2004-12-20 Udp발신지 스로틀링에 의한 네트워크 정체현상 제어시스템 및 방법

Country Status (5)

Country Link
US (1) US20050157646A1 (ko)
EP (1) EP1771971A4 (ko)
KR (1) KR100789995B1 (ko)
CN (1) CN101023625A (ko)
WO (1) WO2005072107A2 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050060423A1 (en) * 2003-09-15 2005-03-17 Sachin Garg Congestion management in telecommunications networks
US7502322B2 (en) * 2003-09-30 2009-03-10 Nokia Corporation System, method and computer program product for increasing throughput in bi-directional communications
US7522607B2 (en) * 2004-01-26 2009-04-21 Sprint Communications Company Lp Congestion handling in a packet communication system
US20060056379A1 (en) * 2004-09-14 2006-03-16 Motorola, Inc. System and method for network-assisted connection in a wireless environment
JP2006345339A (ja) * 2005-06-10 2006-12-21 Fujitsu Ltd リングネットワークを構成するノード装置およびデータフレーム制御方法
US7916652B1 (en) * 2005-10-25 2011-03-29 Juniper Networks, Inc. Analyzing network traffic to diagnose subscriber network errors
KR100788688B1 (ko) * 2006-02-14 2007-12-26 삼성전자주식회사 Qos를 보장하기 위한 데이터 스트림 송수신 방법 및장치
US7801129B2 (en) * 2006-04-27 2010-09-21 Alcatel-Lucent Usa Inc. Method and apparatus for SIP message prioritization
KR100750177B1 (ko) * 2006-05-25 2007-08-17 삼성전자주식회사 QoS 보장 방법 및 장치
US8000261B2 (en) 2007-03-12 2011-08-16 Espre Solutions, Inc. System and method for multicast transmission
US20090144404A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Load management in a distributed system
US20090150536A1 (en) * 2007-12-05 2009-06-11 Microsoft Corporation Application layer congestion control
US8417296B2 (en) * 2008-06-05 2013-04-09 Apple Inc. Electronic device with proximity-based radio power control
WO2010017308A1 (en) * 2008-08-06 2010-02-11 Movik Networks Content caching in the radio access network (ran)
EP2380320A1 (en) * 2008-12-23 2011-10-26 Movik Networks Transparent interaction with multi-layer protocols via selective bridging and proxying
CN102282550A (zh) * 2009-01-30 2011-12-14 莫维克网络公司 应用和使用以及无线链路感知传输网络调度程序
US9043467B2 (en) * 2009-01-30 2015-05-26 Movik Networks Adaptive chunked and content-aware pacing of multi-media delivery over HTTP transport and network controlled bit rate selection
US8799480B2 (en) 2010-07-19 2014-08-05 Movik Networks Content pre-fetching and CDN assist methods in a wireless mobile network
US8565076B2 (en) 2010-09-24 2013-10-22 Movik Networks Destination learning and mobility detection in transit network device in LTE and UMTS radio access networks
US8707276B2 (en) 2011-01-07 2014-04-22 Mastercard International Incorporated Method and system for managing programmed applications in an open API environment
US9083534B2 (en) 2011-01-07 2015-07-14 Mastercard International Incorporated Method and system for propagating a client identity
US9032204B2 (en) 2011-01-07 2015-05-12 Mastercard International Incorporated Methods and systems for providing a signed digital certificate in real time
US8677308B2 (en) 2011-01-07 2014-03-18 Mastercard International Incorporated Method and system for generating an API request message
US8671385B2 (en) 2011-01-07 2014-03-11 Mastercard International Incorporated Methods and systems for throttling calls to a service application through an open API
US8730806B2 (en) * 2012-04-03 2014-05-20 Telefonaktiebolaget L M Ericsson (Publ) Congestion control and resource allocation in split architecture networks
US9306870B1 (en) * 2012-06-28 2016-04-05 Amazon Technologies, Inc. Emulating circuit switching in cloud networking environments
FI124649B (en) 2012-06-29 2014-11-28 Tellabs Oy Method and system for finding the lowest hop-per-bit rate
WO2014037333A1 (en) * 2012-09-04 2014-03-13 Nokia Siemens Networks Oy Method, apparatus, computer program product and system for identifying, managing and tracking congestion
US8861538B2 (en) * 2012-09-06 2014-10-14 Unisys Corporation Throttling for fast data packet transfer operations
US9300342B2 (en) 2013-04-18 2016-03-29 Apple Inc. Wireless device with dynamically adjusted maximum transmit powers
US9191209B2 (en) * 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US9398456B2 (en) 2014-03-07 2016-07-19 Apple Inc. Electronic device with accessory-based transmit power control
US9791490B2 (en) 2014-06-09 2017-10-17 Apple Inc. Electronic device having coupler for tapping antenna signals
US10608955B2 (en) * 2014-11-25 2020-03-31 Vmware, Inc. Reverse breadth-first search method for optimizing network traffic in a distributed system with a point of convergence
US9641452B2 (en) 2014-11-25 2017-05-02 Vmware, Inc. Resolving a convex optimization problem to optimize network traffic in a distributed system
US10333821B2 (en) 2014-11-25 2019-06-25 Vmware, Inc. Method and system for optimizing network traffic in a distributed system with a point of convergence
US10419170B2 (en) * 2015-02-26 2019-09-17 Qualcomm Incorporated RRC aware TCP retransmissions
US10015209B2 (en) * 2015-07-15 2018-07-03 Oracle International Corporation Rate control for data transmission using a tunnel
US11153215B1 (en) * 2018-11-19 2021-10-19 Cvs Pharmacy, Inc. Asynchronous high throughput inbound messages with throttled outbound messages to safeguard enterprise backend systems
JP2020149588A (ja) * 2019-03-15 2020-09-17 キオクシア株式会社 メモリシステム及びメモリコントローラ
CN111198806B (zh) * 2019-12-17 2024-04-05 航天信息股份有限公司 基于服务开放平台的服务调用数据统计分析方法及系统
CN112019542B (zh) * 2020-08-28 2022-09-30 航天科工网络信息发展有限公司 一种跨网安全电子邮件系统
WO2024242607A1 (en) * 2023-05-21 2024-11-28 Uxstream Ab System and method for real-time applications over wireless networks

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619650A (en) * 1992-12-31 1997-04-08 International Business Machines Corporation Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message
US5604867A (en) * 1994-07-22 1997-02-18 Network Peripherals System for transmitting data between bus and network having device comprising first counter for providing transmitting rate and second counter for limiting frames exceeding rate
US5881240A (en) * 1995-03-29 1999-03-09 Brother Kogyo Kabushiki Kaisha Method and device for setting speed of data transmission
US6356555B1 (en) * 1995-08-25 2002-03-12 Terayon Communications Systems, Inc. Apparatus and method for digital data transmission using orthogonal codes
US5983278A (en) * 1996-04-19 1999-11-09 Lucent Technologies Inc. Low-loss, fair bandwidth allocation flow control in a packet switch
US6047113A (en) * 1996-12-10 2000-04-04 International Business Machines Corporation Network adapters for multi-speed transmissions
US5938731A (en) * 1997-06-23 1999-08-17 International Business Machines Corporation Exchanging synchronous data link control (SDLC) frames to adjust speed of data transfer between a client and server
JP3005501B2 (ja) * 1997-07-02 2000-01-31 日本電気株式会社 レート制御方式
US7171483B2 (en) * 1997-07-23 2007-01-30 International Business Machines Corporation Reducing information transmission time by adapting information delivery to the speed of a given network connection
US5922052A (en) * 1997-08-18 1999-07-13 Conexant Systems, Inc. Fast Ethernet combination chaining of auto-negotiations for multiple physical layer capability
US6343085B1 (en) * 1997-08-28 2002-01-29 Microsoft Corporation Adaptive bandwidth throttling for individual virtual services supported on a network server
US6026494A (en) * 1998-04-21 2000-02-15 Xircom, Inc. Algorithm to reduce power consumption of an auto-negotiating ethernet transceiver
US6349331B1 (en) * 1998-06-05 2002-02-19 Lsi Logic Corporation Multiple channel communication system with shared autonegotiation controller
US6529957B1 (en) * 1998-08-25 2003-03-04 Intel Corporation Method for increasing performance on a dedicated multi-speed Ethernet link segment
JP4091195B2 (ja) * 1999-02-08 2008-05-28 富士通株式会社 インタフェース制御装置及びインタフェース制御方法
US6405256B1 (en) * 1999-03-31 2002-06-11 Lucent Technologies Inc. Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion
US6789130B1 (en) * 1999-08-26 2004-09-07 International Business Machines Corporation Automatic rate adaptation system in a local area network
US7068609B2 (en) * 2000-08-09 2006-06-27 Broadcom Corporation Method and apparatus for performing wire speed auto-negotiation
US7130268B2 (en) * 2000-10-17 2006-10-31 Saverio Mascolo End-to-end bandwidth estimation for congestion control in packet switching networks
KR100389922B1 (ko) * 2001-01-15 2003-07-04 삼성전자주식회사 1000베이스-t 표준을 이용하는 기가비트 이더넷에서의고속 링크를 위한 자동-교섭 방법 및 이를 수행하기 위한장치
US20040003296A1 (en) * 2001-04-16 2004-01-01 Robert Stephen Mc Arrangement for reducing power in a networking device configured for operating at selected network speeds
JP4156817B2 (ja) * 2001-07-27 2008-09-24 株式会社日立製作所 記憶装置システム
US7110396B2 (en) * 2001-08-20 2006-09-19 Ciena Corporation System for transporting sub-rate data over a communication network
KR100408525B1 (ko) * 2001-10-31 2003-12-06 삼성전자주식회사 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법
DE10228597A1 (de) * 2001-11-29 2003-06-12 Nec Europe Ltd Verfahren zum Übertragen von zeitsynchronen Daten
US20030163593A1 (en) * 2002-02-25 2003-08-28 William March Rice University Method and system for implementing a fair, high-performance protocol for resilient packet ring networks
TW546931B (en) * 2002-04-03 2003-08-11 Via Tech Inc Method and relevant device for reducing power consumption of network connecting system
US20030212859A1 (en) * 2002-05-08 2003-11-13 Ellis Robert W. Arrayed data storage architecture with simultaneous command of multiple storage media
US7783035B2 (en) * 2002-08-30 2010-08-24 Adaptec, Inc. Systems and methods for implementing host-based security in a computer network
US7366930B2 (en) * 2002-12-17 2008-04-29 Intel Corporation System and method for successfully negotiating a slowest common link speed between a first and second device
US7257078B2 (en) * 2003-04-17 2007-08-14 Realtek Semiconductor Corp. Multiple antenna OFDM transceiver and method for transceiving
US6970426B1 (en) * 2003-05-14 2005-11-29 Extreme Networks Rate color marker
US20050144309A1 (en) * 2003-12-16 2005-06-30 Intel Corporation, A Delaware Corporation Systems and methods for controlling congestion using a time-stamp
US20090300169A1 (en) * 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity

Also Published As

Publication number Publication date
EP1771971A2 (en) 2007-04-11
CN101023625A (zh) 2007-08-22
EP1771971A4 (en) 2010-06-02
US20050157646A1 (en) 2005-07-21
WO2005072107A3 (en) 2007-02-22
KR100789995B1 (ko) 2008-01-02
WO2005072107A2 (en) 2005-08-11

Similar Documents

Publication Publication Date Title
KR100789995B1 (ko) Udp발신지 스로틀링에 의한 네트워크 정체현상 제어시스템 및 방법
US12126680B2 (en) Optimizing data transmission between a first endpoint and a second endpoint in a computer network
Iren et al. The transport layer: tutorial and survey
Camarillo et al. Evaluation of transport protocols for the session initiation protocol
US6700871B1 (en) Increased throughput across data network interface by dropping redundant packets
US7502322B2 (en) System, method and computer program product for increasing throughput in bi-directional communications
US10911413B2 (en) Encapsulating and tunneling WebRTC traffic
CN114631297A (zh) 用于多路径通信的方法和网络设备
US20050120140A1 (en) Method of and system for multi-patch communication
CN101146100B (zh) 一种基于传输协议sctp和dccp的sip网络电话实现方法
Gurbani et al. Transport protocol considerations for session initiation protocol networks
Wozniak et al. The Need for New Transport Protocols on the INTERNET
Camarillo et al. Signalling transport protocols
Kanpurwala SCTP multi-streaming: Study of transmission of partially reliable and reliable data using dynamic stream priorities
Camarillo et al. A transport protocol for SIP
Rajput et al. Comparing stream control and datagram congestion control with traditional transmission control protocol
Bonaventure Multipath TCP–documentation
Shahdad et al. Multihoming and multistream protocol in computer networks
Jaiswal et al. Improved Multiple File Transfer Protocol using Extended features of SCTP‖
Chodorek Some aspects of rtp-tcp coexistence in universal multiservice networks
O’Neill et al. Internet Technology Considerations
Gulati Connector: the Internet protocol, part one: the foundations
Chapter Protocols–more concepts
Ye et al. TCP-Oriented Restoration Objectives for SONET/SDH Networks
Stoica Prerequisite: CS162 Overview

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

FPAY Annual fee payment

Payment date: 20101208

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20111222

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20111222

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000