KR20130076881A - 전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법 - Google Patents

전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법 Download PDF

Info

Publication number
KR20130076881A
KR20130076881A KR1020137011036A KR20137011036A KR20130076881A KR 20130076881 A KR20130076881 A KR 20130076881A KR 1020137011036 A KR1020137011036 A KR 1020137011036A KR 20137011036 A KR20137011036 A KR 20137011036A KR 20130076881 A KR20130076881 A KR 20130076881A
Authority
KR
South Korea
Prior art keywords
tcp
url
host
rto
condition
Prior art date
Application number
KR1020137011036A
Other languages
English (en)
Other versions
KR101436956B1 (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 KR20130076881A publication Critical patent/KR20130076881A/ko
Application granted granted Critical
Publication of KR101436956B1 publication Critical patent/KR101436956B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

TCP(transmission control protocol) 접속들을 설정하는 방법이 개시되고, 상기 방법은 HTTP(hyper text transfer protocol) 요청의 부분으로서 URL(uniform resource locator)을 수신하는 단계를 포함할 수 있다. 또한, 상기 방법은 URL을 갖는 호스트 데이터베이스를 탐색하는 단계 및 URL에 대한 호스트 데이터가 이용 가능한지를 결정하는 단계를 포함할 수 있다. 상기 방법은 또한 URL 호스트에 대해 및 하나 이상의 서브-자원 호스트들에 대해 DNS(domain name service) 룩업을 수행하는 단계를 포함할 수 있고, 여기서 URL에 대한 호스트 데이터가 이용 가능할 때, 모든 DNS 룩업들은 실질적으로 동일한 시간에 동시에 수행된다.

Description

전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법{SYSTEM AND METHOD OF ESTABLISHING TRANSMISSION CONTROL PROTOCOL CONNECTIONS}
본 발명은 전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법에 관한 것이다.
휴대용 컴퓨팅 디바이스들(PCD들)은 유비쿼터스(ubiquitous)이다. 이러한 디바이스들은 셀룰러 텔레폰들, PDA들(portable digital assistants), 휴대용 게임 콘솔들, 팜탑 컴퓨터들 및 다른 휴대용 전자 디바이스들을 포함할 수 있다. 이러한 휴대용 컴퓨팅 디바이스들 중 많은 것은, 콘텐츠, 뷰 콘텐츠 등을 다운로딩하기 위해 사용자가 인터넷에 액세스하도록 허용할 수 있는 웹 브라우저를 포함한다. 통상적으로, 사용자가 URL(uniform resource locator)을 웹 브라우저에 입력할 때, URL에 대해 DNS 룩업이 수행되고, TCP(transmission control protocol) 접속이 설정될 수 있다. 이후에, 메인 HTML 파일 또는 메인 자원이 그 URL에 대해 호스트 서버로부터 수신될 수 있다. 메인 HTML 파일은 하나 이상의 서브-자원들을 요청 및 획득하기 위해 웹 브라우저를 하나 이상의 부가적인 호스트 서버들로 지향시킬 수 있다. 부가적인 호스트 서버들에 대해 DNS 룩업들을 수행하고 TCP 접속들을 설정하기 위한 프로세스는 실질적으로 느릴 수 있고, 상당한 양의 오버헤드를 요구할 수 있다.
따라서, 필요로 되는 것은 전송 제어 프로토콜 접속들을 설정하는 개선된 시스템 및 방법이다.
도면들에서, 동일한 참조 번호들은 달리 표시되지 않는다면 다양한 도면들에 걸쳐 동일한 부분들을 지칭한다.
도 1은 폐쇄 상태의 휴대용 컴퓨팅 디바이스(PCD)의 제 1 양상의 전방 평면도.
도 2는 개방 상태의 PCD의 제 1 양상의 전방 평면도.
도 3은 PCD의 제 2 양상의 블록도.
도 4는 무선 휴대용 컴퓨팅 디바이스에 대한 TCP 접속들을 설정하는 시스템에 대한 소프트웨어 아키텍처의 제 1 양상의 도면.
도 5는 TCP 접속들을 설정하는 방법의 제 1 양상을 예시하는 흐름도의 제 1 부분의 도면.
도 6은 TCP 접속들을 설정하는 방법의 제 1 양상을 예시하는 흐름도의 제 2 부분의 도면.
도 7은 TCP 접속들을 설정하는 방법의 제 2 양상을 예시하는 흐름도.
도 8은 TCP 접속들을 설정하는 방법의 제 2 양상을 예시하는 흐름도의 제 1 부분의 도면.
도 9는 TCP 접속들을 설정하는 방법의 제 3 양상을 예시하는 흐름도의 제 2 부분의 도면.
도 10은 전송 제어 프로토콜(TCP) 접속들을 설정하는 방법의 제 4 양상을 예시하는 흐름도.
도 11은 TCP 접속들을 설정하는 방법의 제 5 양상을 예시하는 흐름도.
도 12는 TCP 접속들을 설정하는 방법의 제 6 양상을 예시하는 흐름도.
단어 "예시적인"은 "예, 실례 또는 예시로서 기능하는 것"을 의미하도록 본원에 사용된다. "예시적인" 것으로서 본원에 기재된 임의의 양상이 반드시 다른 양상들에 비해 바람직하거나 유리한 것으로 해석되지는 않는다.
이러한 설명에서, 용어 "애플리케이션"은 또한 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 랭귀지 파일들, 및 패치들과 같은 실행 가능 콘텐츠를 갖는 파일들을 포함할 수 있다. 또한, 본원에 언급된 "애플리케이션"은 또한 개방될 필요가 있을 수 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이, 사실상 실행 불가한 파일들을 포함할 수 있다.
용어 "콘텐츠"는 또한 오브젝트 코드, 스크립트들, 바이트 코드, 마크업 랭귀지 파일들 및 패치들과 같이 실행 가능한 콘텐츠를 갖는 파일들을 포함할 수 있다. 또한, 본원에 언급된 "콘텐츠"는 또한 개방될 필요가 있을 수 있는 문서들 또는 액세스될 필요가 있는 다른 데이터 파일들과 같이, 사실상 실행 불가한 파일들을 포함할 수 있다.
이러한 설명에서 사용되는 바와 같이, 용어들 "컴포넌트", "데이터베이스", "모듈", "시스템" 등은, 하드웨어, 펌웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어 중 어느 하나와 같은 컴퓨터-관련 엔티티를 지칭하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 객체, 실행가능한 것, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 컴퓨팅 디바이스 상에서 실행되는 애플리케이션 및 컴퓨팅 디바이스 모두 컴포넌트일 수 있다. 하나 또는 그 초과의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 일 컴포넌트는 하나의 컴퓨터에 로컬화될 수 있고, 그리고/또는 둘 또는 그 초과의 컴퓨터들 사이에 분산될 수 있다. 또한, 이러한 컴포넌트들은 다양한 데이터 구조들이 저장된 다양한 컴퓨터 판독가능 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 또는 그 초과의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템에서, 분산 시스템에서 및/또는 신호에 의한 다른 시스템들과의 네트워크(예를 들어, 인터넷)를 통해 다른 컴포넌트와 상호 작용하는 하나의 컴포넌트로부터의 데이터)에 따라 로컬 및/또는 원격 프로세스들을 통해 통신할 수 있다.
처음에 도 1 및 도 2를 참조하면, 예시적인 휴대용 컴퓨팅 디바이스(PCD)가 도시되고, 일반적으로 (100)으로 지정된다. 도시된 바와 같이, PCD(100)는 하우징(102)을 포함할 수 있다. 하우징(102)은 상부 하우징 부분(104) 및 하부 하우징 부분(106)을 포함할 수 있다. 도 1은, 상부 하우징 부분(104)이 디스플레이(108)를 포함하는 것을 도시한다. 특정 양상에서, 디스플레이(108)는 터치 스크린 디스플레이일 수 있다. 상부 하우징 부분(104)은 또한 트랙볼 입력 디바이스(110)를 포함할 수 있다. 또한, 도 1에 도시된 바와 같이, 상부 하우징 부분(104)은 파워 온 버튼(112) 및 파워 오프 버튼(114)을 포함할 수 있다. 도 1에 도시된 바와 같이, PCD(100)의 상부 하우징 부분(104)은 복수의 지시등들(indicator lights)(116) 및 스피커(118)를 포함할 수 있다. 각각의 지시등(116)은 LED(light emitting diode)일 수 있다.
특정 양상에서, 도 2에 도시된 바와 같이, 상부 하우징 부분(104)은 하부 하우징 부분(106)에 대해 이동 가능하다. 구체적으로, 상부 하우징 부분(104)은 하부 하우징 부분(106)에 대해 슬라이딩 가능할 수 있다. 도 2에 도시된 바와 같이, 하부 하우징 부분(106)은 다중-버튼 키보드(120)를 포함할 수 있다. 특정 양상에서, 다중-버튼 키보드(120)는 표준 QWERTY 키보드일 수 있다. 다중-버튼 키보드(120)는 상부 하우징 부분(104)이 하부 하우징 부분(106)에 대해 이동될 때 드러날 수 있다. 도 2는 또한, PCD(100)가 하부 하우징 부분(106) 상에 리셋 버튼(122)을 포함할 수 있다는 것을 예시한다.
도 3을 참조하면, 휴대용 컴퓨팅 디바이스(PCD)의 예시적인 비제한적인 양상이 도시되고, 일반적으로 (100)으로 지정된다. 도시된 바와 같이, PCD(100)는, 함께 연결된 디지털 신호 프로세서(324) 및 아날로그 신호 프로세서(326)를 포함하는 온-칩 시스템(322)을 포함한다. 온-칩 시스템(322)은 2 개 초과의 프로세서들을 포함할 수 있다. 예를 들면, 온-칩 시스템(322)은 당업자에 의해 이해되는 바와 같이, 다수의 코어 프로세서들 및 ARM 11 프로세서를 포함할 수 있다.
도 3에 예시된 바와 같이, 디스플레이 제어기(328) 및 터치 스크린 제어기(330)는 디지털 신호 프로세서(324)에 연결된다. 결국, 온-칩 시스템(322) 외부에 있는 터치 스크린 디스플레이(108)는 디스플레이 제어기(328) 및 터치 스크린 제어기(330)에 연결된다.
도 3은 또한, 비디오 인코더(334), 예를 들면, PAL(phase alternating line) 인코더, SECAM(sequential couleur a memoire) 인코더, 또는 NTSC(national television system(s) committee) 인코더가 디지털 신호 프로세서(324)에 연결되는 것을 예시한다. 또한, 비디오 증폭기(336)는 비디오 인코더(334) 및 터치 스크린 디스플레이(108)에 연결된다. 또한, 비디오 포트(338)는 비디오 증폭기(336)에 연결된다. 도 3에 도시된 바와 같이, USB(universal serial bus) 제어기(340)는 디지털 신호 프로세서(324)에 연결된다. 또한, USB 포트(342)는 USB 제어기(340)에 연결된다. 메모리(344) 및 SIM(subscriber identity module) 카드(346)는 또한 디지털 신호 프로세서(324)에 연결된다. 또한, 도 3에 도시된 바와 같이, 디지털 카메라(348)는 디지털 신호 프로세서(324)에 연결될 수 있다. 예시적인 양상에서, 디지털 카메라(348)는 CCD(charge-coupled device) 카메라 또는 CMOS(complementary metal-oxide semiconductor) 카메라이다.
도 3에 추가로 예시된 바와 같이, 스테레오 오디오 CODEC(305)는 아날로그 신호 프로세서(326)에 연결될 수 있다. 또한, 오디오 증폭기(352)는 스테레오 오디오 CODEC(350)에 연결될 수 있다. 예시적인 양상에서, 제 1 스테레오 스피커(354) 및 제 2 스테레오 스피커(356)는 오디오 증폭기(352)에 연결된다. 도 3은, 마이크로폰 증폭기(358)가 스테레오 오디오 CODEC(350)에 또한 연결될 수 있다는 것을 도시한다. 부가적으로, 마이크로폰(360)은 마이크로폰 증폭기(358)에 연결될 수 있다. 특정 양상에서, 주파수 변조(FM) 라디오 튜너(362)는 스테레오 오디오 CODEC(350)에 연결될 수 있다. 또한, FM 안테나(364)는 FM 라디오 튜너(362)에 연결된다. 또한, 스테레오 헤드폰들(366)은 스테레오 오디오 CODEC(350)에 연결될 수 있다.
도 3은 또한, RF(radio frequency) 트랜시버(368)가 아날로그 신호 프로세서(326)에 연결될 수 있다는 것을 예시한다. RF 스위치(370)는 RF 트랜시버(368) 및 RF 안테나(372)에 연결될 수 있다. 도 3에 도시된 바와 같이, 키패드(374)는 아날로그 신호 프로세서(326)에 연결될 수 있다. 또한, 마이크로폰(376)을 갖는 모노 헤드셋(376)은 아날로그 신호 프로세서(326)에 연결될 수 있다. 또한, 진동기 디바이스(378)는 아날로그 신호 프로세서(326)에 연결될 수 있다. 도 3은 또한, 파워 서플라이(380)가 온-칩 시스템(322)에 연결될 수 있다는 것을 도시한다. 특정 양상에서, 파워 서플라이(380)는, 전력을 요구하는 PCD(100)의 다양한 컴포넌트들에 전력을 제공하는 직류 전류(DC) 파워 서플라이이다. 또한, 특정 양상에서, 파워 서플라이는, 교류 전류(AC) 파워 소스에 접속된 AC-DC 변환기로부터 유도되는 재충전 가능 DC 배터리 또는 DC 파워 서플라이이다.
도 3은 또한, PCD(100)가 데이터 네트워크, 예를 들면, 로컬 영역 네트워크, 개인 영역 네트워크 또는 임의의 다른 네트워크를 액세스하는데 사용될 수 있는 네트워크 카드(388)를 또한 포함할 수 있다는 것을 예시한다. 네트워크 카드(388)는 블루투쓰 네트워크 카드, WiFi 네트워크 카드, PAN(personal area network) 카드, PeANUT(personal area network ultra-low-power technology) 네트워크 카드, 또는 당분야 잘 알려진 임의의 다른 네트워크 카드일 수 있다. 또한, 네트워크 카드(388)는 칩에 통합될 수 있고, 즉, 네트워크 카드(388)는 칩에서 완전한 솔루션일 수 있고, 별개의 네트워크 카드(388)가 아닐 수 있다.
도 3은, PCD(100)가 또한 메모리(344) 내에 저장될 수 있는 웹 브라우저(382)를 포함할 수 있다는 것을 도시한다. 웹 브라우저(382)는 인터넷을 탐색하고, 온라인 콘텐츠를 액세스하고, 영화들을 다운로딩하고, 음악을 다운로딩하고, 영화들을 보거나 이들의 조합을 하는데 사용될 수 있다.
도 3에 도시된 바와 같이, 터치 스크린 디스플레이(108), 비디오 포트(338), USB 포트(342), 카메라(348), 제 1 스테레오 스피커(354), 제 2 스테레오 스피커(356), 마이크로폰(360), FM 안테나(364), 스테레오 헤드폰들(366), RF 스위치(370), RF 안테나(372), 키패드(374), 모노 헤드셋(376), 진동기(378) 및 파워 서플라이(380)가 온-칩 시스템(322) 외부에 있다.
특정 양상에서, 본원에 기재된 방법 단계들 중 하나 이상의 단계는 컴퓨터 프로그램 명령들, 예를 들면, 웹 브라우저(382)의 부분으로서 메모리(344)에 저장될 수 있다. 이러한 명령들은 본원에 기재된 방법들을 수행하기 위해 프로세서(324, 326)에 의해 실행될 수 있다. 또한, 프로세서(324, 326), 메모리(344), 웹 브라우저(382), 또는 이들의 조합은 하나 이상의 TCP 접속들을 설정하기 위해 본원에 기재된 방법 단계들 중 하나 이상의 단계를 실행하기 위한 수단으로서 기능할 수 있다.
도 4는, 무선 휴대용 컴퓨팅 디바이스(100)에 대한 TCP 접속들을 설정하는 애플리케이션 서브시스템(402)의 소프트웨어 아키텍처의 제 1 양상의 도면이다. 애플리케이션 서브시스템(402)은, 디지털 신호 프로세서 또는 중앙 프로세싱 유닛(324)(도 3 참조)에 의해 실행되고 하나 이상의 TCP 접속들을 요구하는 웹페이지들을 지원할 수 있는 모바일 웹 브라우저(382)를 포함할 수 있다.
모바일 웹 브라우저 애플리케이션 또는 모듈(382)은, 당업자에게 이해되고 아래에 기재된 바와 같이, 인터넷 프로토콜("IP") 계층(422) 상에 상주하는 전송 통신 프로토콜("TCP") 모듈들(416A-C)과 통신할 수 있다.
IP 계층(422)은 당업자에게 이해되는 바와 같이 네트워크 버퍼 계층(424)과 통신한다. IP 계층(422)은, 제 2 중앙 프로세싱 유닛 또는 아날로그 신호 프로세서(326)(도 3 참조)에 의해 실행되는 모뎀 서브시스템(404)과 통신한다.
모바일 웹 브라우저 모듈(382)은 HTTP 스택(412) 및 도메인 네임 서버 모듈(414)을 포함한다. 웹 브라우저 모듈(382)은, 그가 애플리케이션 서브시스템(402)뿐만 아니라 모뎀 서브시스템(404)의 엘리먼트들을 계속해서 모니터링할 수 있다는 점에서 동적일 수 있다.
웹 브라우저(382)의 DNS 모듈(414)은, 당업자에게 이해되는 바와 같이, 텍스트 기반 도메인 네임들을 수치적인 인터넷 프로토콜(IP) 어드레스로 변환하는 것을 담당할 수 있다. DNS 모듈(414)은 IP 어드레스를 다시 HTTP 스택(412)으로 통신할 수 있고, HTTP 스택(412)은 이어서 IP 어드레스를 TCP 접속 모듈들(416A-C) 중 하나로 중계한다.
HTTP 스택(412)이 TCP 접속 모듈들(416A-C) 중 하나로부터 웹 페이지와 같은 메타-오브젝트를 반환할 때, HTTP 스택 모듈(412)은 또한 특정 상태 정보를 클라이언트 웹 브라우저 모듈(382)에 제공할 수 있다. 상태 정보는: HS-SCCH(high speed-schedule control channel) 유효 상태; HS-TBS(high speed transport block size); L1 BLER(layer one block error rates); RLC PDU(radio link control protocol data unit) 크기; RLC DL SDU(radio link control down link service data unit) Rx(Byte received); HSDPA(high speed downlink packet access) UE(user equipment) 카테고리; MAC UL BSR(media access control uplink buffer status report); EUL TTI(enhanced uplink transmission time interval); ETFCI(enhanced transport format combination index) 테이블 인덱스; ETCFI; 새로운 전송("Tx")의 수; RLC UL SDU(radio link control uplink service data unit) 바이트 전송("Tx"); DTX/DRX(diversity transmission/diversity reception) 모드; EUL UE(enhanced uplink user equipment) 카테고리; MAC TL TBS(media access control transmission layer transport block size); PDCP DL SDU(packet data convergence protocol downlink service data unit) 바이트 수신("Rx"); MAC UL TBS(media access control uplink transport block size); PDCP UL SDU(packet data convergence protocol uplink service data unit) 바이트 전송("Tx"); 및 UE 카테고리(user equipment category)를 포함할 수 있지만, 이에 제한되지 않는다.
TCP(Transport Control Protocol) 접속 모듈들(416A-C)은 당업자에게 이해되는 바와 같이 일반적인 네트워킹의 OSI(Open Systems Interconnection) 모델의 전송 계층에서 동작한다. TCP 접속 모듈(416)은 목적지 호스트로의 전송을 위한 네트워크 인프라구조로의 전송에 적합한 데이터 유닛들(데이터그램들, 세그먼트들)로 애플리케이션 데이터 블록들을 캡슐화하거나, 네트워크 데이터그램들을 추출하고 그들의 페이로드를 모바일 웹 브라우저(382)로 전달함으로써 역방향 트랜잭션을 관리하는 것을 담당한다.
TCP 접속 모듈들(416)은 RTO(re-transmission time out); 광고된 RX 윈도우(Rx Window); Tx/Rx 스루풋(transmission-receiver throughput); 패킷 통계(packet statistics); TCP 접속들의 총수; 추정된 RTT(round-trip time); 수신된 바이트들의 수; 시퀀스 내 패킷들의 수; 및 TCP 전송 윈도우 크기(그러나 이에 제한되지 않음)를 포함하는 정보를 제공할 수 있다.
IP(Internet Protocol) 모듈(422)은 TCP 접속 모듈들(416) 및 네트워크 버퍼 계층(424)과 통신한다. IP 모듈(422)은 구별된 프로토콜 데이터그램들(패킷들)의 어드레스들에 기초하여 이들을 모바일 웹 브라우저로부터 서버로 전달하는 태스크를 갖는다. IP 모듈(422)은 데이터그램 캡슐화를 위한 어드레싱 방법들 및 구조들을 규정한다. IP 모듈(422)은 이러한 글을 쓰고 있는 지금에도 활발하게 전개되고 있는 IPv4(Internet Protocol Version 4)뿐만 아니라 IPv6(Internet Protocol Version 6)을 활용할 수 있다. 그러나, 아직 전개되지 않은 미래의 버전들을 포함하여 다른 버전들의 인터넷 프로토콜은 본 발명의 범위 내에 포함된다.
네트워크 버퍼 계층(424)은 IP 모듈(422) 및 모뎀 서브시스템(404)과 통신한다. 네트워크 버퍼 계층(424)은 이더넷 및 다른 IEEE 802 캡슐화 방식들 방식들과 같은 모든 하드웨어 특정 인터페이스 방법들을 포함할 수 있다. 네트워크 버퍼 계층(424)은 로컬 네트워크의 토폴로지를 조사할 수 있다. 이것은 라우터들 및 이웃 호스트들을 발견할 수 있고, 이것은 링크 상의 다른 노드들의 발견을 담당할 수 있다. 네트워크 버퍼 계층(424)은 다른 노드들의 링크 계층 어드레스들을 결정하고, 이용 가능한 라우터들을 발견하고, 다른 활성 이웃 노드들로의 경로들에 관한 도달 가능성 정보를 유지할 수 있다.
웹 브라우저 모듈(382)은 http 스택(412) 및 TCP 모듈들(416)과 통신할 수 있다. 웹 브라우저 모듈(382)은 또한 GPS(Global Positioning System) 모듈(438)과 같은 위성 내비게이션 시스템 모듈과 같이, 하나 이상의 센서들과 통신할 수 있다.
모뎀 서브시스템(404)은 RLC(radio link control) 계층(434), MAC(media access control) 계층(432), PHY(physical) 계층(430), RRC(radio relay control) 모듈(456) 및 GPS(global positioning system)(143)과 같은 위성 내비게이션 시스템을 포함할 수 있다. 모뎀 서브시스템(404)의 이러한 엘리먼트들은 도 3에 예시된 바와 같이 RF 트랜시버(368)와 같은 통신 하드웨어와 통신하는 것을 담당할 수 있다.
모뎀 서브시스템(404)의 엘리먼트들 각각은 메시지들을 전송하거나 웹 브라우저 모듈(382)로부터 질의들을 수신할 수 있다. 예를 들면, RRC 모듈(436)은, 이에 제한되지 않지만, HSDPA(high speed downlink packet access) 카테고리 정보, EUL(enhanced uplink layer) 카테고리 정보, 및 DRX/DTX(discontinuous reception/transmission) Config(configuration) 정보와 같은 정보를 통신할 수 있다.
RLC 모듈(434)은 스루풋 및 RLC(radio link control) PDU(protocol data unit) 크기를 통신할 수 있다. MAC 계층(432)은, 이에 제한되지 않지만, BSR(buffer status report) 정보 및 EDCH(enhanced dedicated channel) TF(transport format) 정보와 같은 UL(uplink) 정보를 통신할 수 있다. 물리적 계층(430)은, 이에 제한되지 않지만, HS-TBS(high speed transport block size), 변조, CQI(channel quality indication), BLER(block error rate) 측정, MIMO(multi-input/multi-output), Rx(receiver) AGC(automatic gain control), 및 EQ/IC(equalizer integrated circuit) Rx(receiver) D(diversity)와 같은 DL(downlink) 정보를 통신할 수 있다. 물리적 계층(430)은 또한, 이에 제한되지 않지만, BLER, 변조 및 Tx(transmitter) AGC(automatic gain control)와 같은 UL(uplink) 정보를 통신할 수 있다.
RRC 모듈(436), RLC 모듈(434), MAC 모듈(432) 및 PHY 모듈(430)은 당업자에게 이해되는 바와 같이 이벌브드 HSPA(high-speed packet access system)(816)(아래의 도 8 참조)를 형성할 수 있다. 한편, GPS 모듈(438)은, 이에 제한되지 않지만, 휴대용 컴퓨팅 디바이스(100)의 위치 및 속도 또는 속력과 같은 정보를 웹 브라우저 모듈(382)에 제공할 수 있다.
애플리케이션 서브시스템(402) 및 모뎀 서브시스템(404)의 엘리먼트들을 모니터링함으로써, 웹 브라우저 모듈(382)은 무선 휴대용 컴퓨팅 디바이스(100)가 무선 네트워크 조건들 및 휴대용 컴퓨팅 디바이스(100) 자신의 조건들을 모니터링함으로써 PCD(100)의 운영자에 의해 보여질 가능성이 있는 웹 페이지들을 지능적으로 선택하도록 허용할 수 있다. 웹 브라우저 모듈(382)은, 서버로부터 다운로딩될 웹 페이지에 대한 적절한 비트 레이트가 무엇인지를 결정하기 위해 모니터링된 조건들을 사용함으로써 자신이 로딩해야 할 웹 페이지들의 크기 및 형태를 결정할 수 있다.
애플리케이션 서브시스템(402) 및 모뎀 서브시스템(404)에 의해 제공되는 데이터에 기초하여 모니터링된 조건들 중 일부는, 이에 제한되지 않지만, 현재 버퍼의 크기 및 버퍼의 증가가 휴대용 컴퓨팅 디바이스(100)에 의해 소모되는 레이트를 포함하는 메모리 조건들; 현재 및 이력 WWAN 대역폭; 현재 및 이력 WWAN 신호 세기; 이용 가능한 IP 소켓 데이터 접속들의 수; 전체 비디오 클립 길이의 추정 및 이어서 신호-잡음 비 이력/히스토그램 및 위치 기반 서비스("LBS")에 기초하여 웹 페이지에 대한 각각의 파일 세그먼트에 대한 각각의 URL(uniform resource locator) 다운로드 시간을 추정하는 것; GPS 모듈(143)과 같은 위치-기반 기술들의 사용을 통해 셀 타워 식별 삼각 측량법 또는 정밀한 위도 경도 중 어느 하나에 의해 계산된 휴대용 컴퓨팅 디바이스(100)의 속도의 레이트; 및 가속도계 및/또는 LBS를 사용한 휴대용 컴퓨팅 디바이스(100)의 이동의 방향을 포함한다.
웹 브라우저 모듈(382)은 유지되어야 하는 미리 결정된 시간 기간을 계산하거나, 신호 대 잡음비가 높게 유지되거나 및/또는 BLER이 계속해서 낮게 유지될 때까지 더 낮은 비트 레이트를 사용할 수 있다. 웹 브라우저 모듈(382)은 또한, 가령 휴대용 컴퓨팅 디바이스(100)가 고정식일 때, 또는 사용자가 휴대용 컴퓨팅 디바이스(100)를 갖고 걸을 때와 같이 휴대용 컴퓨팅 디바이스(100)가 비교적 낮은 속도의 조건들 아래에서 동작할 때인, 이상적인 네트워크 상황들 동안에 전력을 최소화하기 위해 모뎀 서브시스템(404) 내의 임의의 형태의 수신 다이버시티 기능(들)을 턴 "온" 또는 턴 "오프"할 수 있다.
동작 동안에, TCP 접속 모듈들(416A-C)은 접속 정보를 웹 브라우저(382)에 제공할 수 있고, 웹 브라우저(382)는 다른 TCP 접속들의 효율적인 설정, 기존의 TCP 접속들의 사용, 또는 이들의 조합을 용이하게 하기 위해 접속 정보를 사용할 수 있다. 접속 정보는 TCP 재전송 타임아웃(RTO) 추정, TCP 수신 윈도우 크기, 최종 비순서적인 패킷 또는 이들의 조합을 포함할 수 있다.
PHY 모듈(430), MAC 모듈(432), RLC 모듈(434), RRC 모듈(436), GPS(438) 또는 이들의 조합은 모뎀 서브시스템 정보를 웹 브라우저(382)에 제공할 수 있다. 웹 브라우저(382)는 또한 다른 TCP 접속들의 효율적인 설정, 기존의 TCP 접속들의 사용 또는 이들의 조합을 용이하게 하기 위해 모뎀 서브시스템(4040) 정보를 사용할 수 있다. 모뎀 서브시스템 정보는 GPS 수직 속도, GPS 수평 속도, HSPA 다운링크(DL)에 대한 최대 달성 가능 스루풋(TP), HSPA DL에 대한 현재 TP 또는 이들의 조합을 포함할 수 있다.
웹 브라우저(382)가 새로운 TCP 접속들을 설정하거나 기존의 TCP 접속들을 재사용하기 위해, 본원에 기재된 바와 같이 접속 정보, 모뎀 서브시스템 정보 또는 이들의 조합을 사용할 수 있다는 것이 인식될 수 있다.
통상적인 휴대용 컴퓨팅 디바이스, 예를 들면, 모바일 텔레폰에서, 웹 브라우저(382)는 1차 호스트 서버로부터의 메인 자원, 즉, 메인 HTML 파일을 로딩할 수 있다. 메인 자원은 일반적으로, 사용자가 링크 위를 클릭하거나 URL(universal resource locator)을 입력할 때 인터넷 웹 브라우저가 다운로딩하는 제 1 자원을 포함한다. 웹 페이지들에 대해, 이것은 일반적으로 HTML(hypertext mark-up language) 파일이다. 사용자가 이미지에 대한 링크 위를 클릭하면, 이것은 이미지 파일일 수 있지만, 일반적으로 웹 페이지에 대한 메인 또는 1차 자원은 항상 HTML 파일이다. HTML 파일들은 일반적으로 단지 서브-자원들을 가질 수 있는 자원들의 형태이다. 또한, 용어 "HTML"은 XHTML 또는 HTML5를 포함하는 것으로 당업자에 의해 이해된다.
한편, 서브-자원은 일반적으로 메인 자원 내에서 참조되거나 지정되는 부가적인 파일이다. 서브-자원은 일반적으로 웹 페이지를 완전하게 및 정확하게 디스플레이하는데 필요로 된다. 서브-자원들은, 이에 제한되지 않지만, 다른 제 2 HTML 파일들(제 1 HTML 파일에 의해 참조되는 메인 또는 제 1 HTML 파일(메인 자원)에 관한 파일들), CCS 파일들, 자바스크립트 파일들, 플래시 파일들 및 이미지 파일들을 포함하는 다양한 형태들의 파일들일 수 있다.
1차 호스트는 상이한 도메인 네임을 각각 갖는 하나 이상의 2차 호스트 서버들로 웹 브라우저를 지향시킬 수 있다. 각각의 상이한 도메인 네임에 대해, TCP 접속을 설정하기 전에 DNS 룩업이 수행된다. 연속하여 수행되는 증가된 DNS 룩업들은 웹 브라우저에 의한 TCP 접속들의 설정 및 자원들 및 서브-자원들의 리트리블(retrieval)을 실질적으로 늦출 수 있다. 본원에 개시된 방법 및 시스템은 DNS 룩업들 및 TCP 접속들의 설정의 속도를 실질적으로 높일 수 있다.
도 5 및 도 6을 참조하면, TCP 접속들을 설정하는 방법의 제 1 양상이 도시되고, 일반적으로 (500)으로 지정된다. 방법(500)은, URL(uniform resource locator)이 웹 브라우저에 입력될 때, 다음의 단계들이 수행되는 do 루프를 갖는 블록(502)에서 시작될 수 있다. URL은 HTTP(hyper text transfer protocol) 요청의 부분일 수 있다. 블록(504)에서, 웹 브라우저(382)는 현재 URL을 통해 메모리 자원(334) 내에서 유지되는 호스트 데이터베이스(403)를 탐색할 수 있다. 호스트 데이터베이스(403)는 호스트들의 URL들에 의해 인덱싱된, 서버들과 같은 호스트들의 리스트들을 포함할 수 있다. 호스트들의 이러한 리스트들은, URL과 연관된 콘텐츠가 디바이스들 상에서 로딩된 최종 시간에 특정 URL에 대해 로딩된 자원들 및 서브-자원들을 포함하는 서버들이다. PCD(100)의 사용자가 특정 URL로 내비게이팅할 때, 데이터베이스(403)가 컨설팅될 수 있고, 엔트리가 발견되면, (임의의 GET 명령들의 발행 전에) 데이터베이스 엔트리 내에 리스팅된 각각의 호스트에 대해 및 메인 자원 로드와 동시에 DNS 룩업 및 TCP 접속이 수행된다.
결정 블록(506)으로 이동하면, 웹 브라우저(382)는 호스트 데이터가 현재 URL에 대해 이용 가능한지를 결정할 수 있다. 호스트 데이터가 현재 URL에 대해 이용 가능하지 않다면, 방법(500)은 도 6의 블록(602)으로 진행될 수 있다. 호스트 데이터는, 예를 들면, 특정 URL이 제 1 시간 동안에 액세스될 때 이용 가능하지 않을 수 있다.
결정 블록(506)으로 복귀하면, 호스트 데이터가 현재 URL에 대해 이용 가능하면, 방법(500)은 블록(508)으로 진행될 수 있고, 웹 브라우저(382)는 URL 호스트에 대해 및 호스트 데이터에 기록된 각각의 서브-자원 호스트에 대해 DNS 룩업을 수행할 수 있다. 다양한 룩업들이 실질적으로 동시에, 즉, 실질적으로 동일한 시간에 수행될 수 있다. 블록(510)으로 이동하면, 웹 브라우저(382)는 도 4의 TCP 모듈들(416) 중 하나를 사용하여 URL 호스트에 대해 및 호스트 데이터에 기록된 각각의 서브-자원 호스트에 대해 TCP 접속을 설정할 수 있다. TCP 접속들은 실질적으로 동시에 설정될 수 있고, 즉, TCP 접속들은 실질적으로 동일한 시간에 설정될 수 있다. 블록(512)에서, 웹 브라우저(382)는 URL 호스트로부터의 모든 자원들 및 모든 서브 자원 호스트들로부터의 모든 서브 자원들을 메모리 자원(344)에 로딩할 수 있다.
결정 블록(514)으로 진행하면, 웹 브라우저(382)는 URL과 연관된 웹 페이지가 완전히 로딩되는지를 결정할 수 있다. 그렇지 않다면, 방법(500)은 블록(512)으로 복귀하고, 본원에 기재된 바와 같이 계속될 수 있다. 달리, URL과 연관된 웹 페이지가 완전히 로딩되면, 방법(500)은 블록(516)으로 진행될 수 있고, 웹 브라우저(382)는, 현재 URL과 연관된 가장 최근의 페이지 로드에 대해 접촉된 호스트들의 실제 세트로 호스트 데이터베이스(403)를 업데이트할 수 있다.
결정 블록(518)에서, 웹 브라우저(382)는 또 다른 URL이 입력되는지를 결정할 수 있다. 그렇다면, 방법(500)은 블록(504)으로 복귀할 수 있고, 방법(500)은 본원에 기재된 바와 같이 계속될 수 있다. 반대로, 또 다른 URL이 입력되지 않는다면, 방법(500)은 블록(520)으로 계속될 수 있고, 웹 브라우저(382)는 호스트 데이터베이스(403)를 유지할 수 있다. 특정 양상에서, 호스트 데이터베이스(403)는 URL 네임에 의해 인덱싱될 수 있다. 이후에, 방법(500)이 종료될 수 있다.
결정 블록(506)으로 복귀하여, 호스트 데이터가 현재 URL에 대해 이용 불가하면, 방법(500)은 도 6의 블록(602)으로 이동할 수 있다. 블록(602)에서, 웹 브라우저(382)는 URL 호스트에 대해 DNS 룩업을 수행할 수 있다. 블록(604)에서, 웹 브라우저(382)는 도 4의 TCP 모듈들(416) 중 하나를 사용하여 URL 호스트에 대한 TCP 접속을 설정할 수 있다. 또한, 블록(606)에서, 웹 브라우저(382)는 URL 호스트에 대한 HTTP GET 명령을 수행할 수 있다. 블록(608)에서, 웹 브라우저(382)는 URL 호스트로부터 자원을 수신할 수 있다. 블록(610)에서, 웹 브라우저(382)는 URL 호스트로부터의 자원을 메모리 자원(344)에 로딩할 수 있다.
블록(612)으로 이동하면, 웹 브라우저(382)는 서브-자원 호스트에 대한 DNS 룩업을 수행할 수 있다. 이어서, 블록(614)에서, 웹 브라우저(382)는 서브-자원 호스트에 대한 TCP 접속을 설정할 수 있다. 블록(616)에서, 웹 브라우저(382)는 서브-자원 호스트에 대한 HTTP GET 명령을 수행할 수 있다. 블록(618)에서, 웹 브라우저(382)는 서브-자원 호스트로부터 서브-자원을 수신할 수 있다. 또한, 블록(620)에서, 웹 브라우저(382)는 서브-자원 호스트로부터 수신된 서브-자원을 로딩할 수 있다.
결정 블록(622)으로 계속되면, 웹 브라우저(382)는 또 다른 서브-자원이 현재 URL에 대해 존재하는지를 결정할 수 있다. 그렇다면, 방법(500)은 블록(612)으로 복귀할 수 있고, 방법(500)은 기재된 바와 같이 계속될 수 있다. 결정 블록(622)에서, 현재 URL에 대한 또 다른 서브-자원이 존재하지 않는다면, 방법(500)은 블록(624)으로 진행될 수 있고, 웹 브라우저(382)는 모든 서브-자원 호스트들을 기록할 수 있고, 그 서즈-자원 호스트들로부터 현재 URL에 대한 서브-자원들이 로딩된다. 이후에, 블록(626)에서, 웹 브라우저(382)는 호스트 데이터베이스 내에 현재 호스트 데이터를 저장할 수 있다. 블록(628)에서, 웹 브라우저(382)는 현재 서브-자원 호스트와 현재 URL을 연관시킬 수 있다. 이어서, 방법(500)은 도 5의 결정 블록(518)으로 복귀할 수 있고, 방법(500)은 본원에 기재된 바와 같이 결정 블록(518)으로부터 계속될 수 있다.
이제 도 7을 참조하면, TCP 접속들을 설정하는 방법의 제 2 양상이 도시되고, 일반적으로 (700)으로 지정된다. 명확히 하기 위해, 방법(700)은 PCD(100), DNS 서버(704), 제 1 호스트 서버(706A) 및 제 2 호스트 서버(706B)의 맥락에서 기재된다.
단계들(710 및 712)에서 시작하면, PCD(100)는 제 1 질의 및 제 2 질의를 DNS 서버(704)로 전송할 수 있다. 제 1 질의(711A) 및 제 2 질의(711B)는 동시에, 즉, 실질적으로 동일한 시간에 전송될 수 있다. 단계들(714A 및 714B)에서, PCD(100)는 DNS 서버(704)로부터 제 1 응답 및 제 2 응답을 수신할 수 있다. 제 1 응답(714A)은 PCD(100)를 제 1 호스트(706A)로 지향시킬 수 있고, 제 2 응답(714B)은 PCD(100)를 제 2 호스트(706B)로 지향시킬 수 있다. 제 1 호스트(706A)는 PCD(100), 예를 들면, 웹 브라우저(382)에서 로딩될 하나 이상의 1차 자원들을 제공할 수 있고, 제 2 호스트(706B)는 하나 이상의 서브-자원들을 제공할 수 있다.
단계(718)에서, PCD(100)는 제 1 HTTP GET 명령(715A)을 제 1 호스트(706)로 전송할 수 있다. 또한, 단계(720)에서, PCD(100)는 제 2 HTTP GET 명령(715B)을 제 2 호스트(708)로 전송할 수 있다. HTTP GET 명령들(715A, 715B)은 동시에, 즉, 실질적으로 동일한 시간에 전송될 수 있다. 단계(722)에서, PCD(100)는 제 1 호스트(706A)로부터 하나 이상의 메인 자원들(717A-C)을 수신할 수 있다. 또한, 단계(724)에서, PCD(100)는 제 2 호스트(708)로부터 하나 이상의 서브-자원들(719A, 719B)을 수신할 수 있다.
특정 양상에서, PCD(100)에 있는 웹 브라우저(382)는 메인 자원, 즉, 메인 HTML 파일을 로딩할 수 있고, 이어서, PCD(100)에 있는 웹 브라우저(382)는 서브-자원들을 로딩할 수 있다. 일단 로딩되면, 메인 자원 및 서브-자원들은 PCD(100)의 디스플레이를 통해 보기 위한 웹 페이지를 설정할 수 있다.
이제 도 8 및 도 9를 참조하면, 하나 이상의 전송 제어 프로토콜(TCP) 접속들을 설정하는 방법의 제 3 양상이 도시되고, 일반적으로 (800)으로 지정된다. 단계(802)에서 시작하여, GPS 모니터(804)는 휴대용 컴퓨팅 디바이스(PCD)와 연관된 GPS 수직 속도를 모니터링 또는 그렇지 않다면 결정할 수 있다. 단계(806)에서, GPS 모니터(804)는 PCD와 연관된 GPS 수평 속도를 결정할 수 있다. 이후에, 단계(808)에서, GPS 모니터(804)는 GPS 수직 속도를 웹 브라우저(382)로 출력할 수 있다. 또한, 단계(812)에서, GPS 모니터(802)는 GPS 수평 속도를 웹 브라우저(382)로 출력할 수 있다.
단계(814)로 이동하면, HSPA(high speed packet access) 시스템(816)(상술됨)은 HSPA 다운링크(DL)에 대한 최대 달성 가능 스루풋(TP)을 결정할 수 있다. 또한, 단계(818)에서, HSPA 시스템(816)은 HSPA DL에 대한 현재 TP를 결정할 수 있다. 단계(820)에서, HSPA 시스템(816)은 HSPA DL에 대한 최대 달성 가능 TP를 웹 브라우저(382)로 출력할 수 있다. 또한, 단계(822)에서, HSPA 시스템(816)은 HSPA DL에 대한 현재 TP를 웹 브라우저(382)로 출력할 수 있다.
단계(824)에서, 전송 제어 프로토콜(TCP) 모듈(416)은 TCP 재전송 타임아웃(RTO)에 대한 추정치를 결정할 수 있다. 부가적으로, 단계(828)에서, TCP 모듈(416)은 TCP 수신 윈도우 크기를 결정할 수 있다. 단계(830)에서, TCP 모듈(416)은 최종 비순서적인 패킷을 결정할 수 있다(830). 단계(832)로 이동하면, TCP 모듈(416)은 TCP RTO 추정치를 웹 브라우저(382)로 출력할 수 있다. 또한, 단계(834)에서, TCP 모듈(416)은 TCP 수신 윈도우 크기를 웹 브라우저(382)로 출력할 수 있다.
블록(836)으로 계속하면, 웹 브라우저(382)는 모바일 속도를 결정할 수 있다. 모바일 속도는 다음과 같은 수학식을 사용하여 결정될 수 있다.
Figure pct00001
여기서,
vertspeed는 단계(802)에서 결정된 GPS 수직 속도이고,
horzspeed는 단계(804)에서 결정된 GPS 수평 속도이다.
블록(838)에서, 웹 브라우저(382)는 다음과 같은 수학식으로부터 HSPA TP 헤드룸을 결정할 수 있다.
Figure pct00002
여기서,
max TP는 단계(814)에서 결정된 최대 달성 가능 HSPA TP이고,
현재 TP는 단계(818)에서 결정된 현재 HSPA DL TP이다.
블록(840)에서, 웹 브라우저(382)는 추정된 TP 헤드룸을 컴퓨팅할 수 있다. 예를 들면, 모바일 속도가 모바일 속도 조건을 만족시키면, TP 헤드룸은 제로로서 컴퓨팅될 수 있다. 달리, 모바일 속도가 모바일 속도 조건을 만족시키지 않는다면, TP 헤드룸은 위의 단계(838)에서 결정된 TP HSPA 헤드룸과 동일하게 설정될 수 있다. 모바일 속도 조건은 모바일 속도 임계치일 수 있고, 모바일 속도가 임계치보다 크면, 모바일 속도 조건은 만족되는 것으로 고려될 수 있다. 예를 들면, 임계치는 시간 당 1 마일, 시간 당 2 마일, 시간 당 3 마일 등일 수 있다. 블록(840)으로부터, 방법(800)은 도 9의 블록(902)으로 진행될 수 있고, 이어서, 방법(800)은 아래에 기재된 바와 같이 계속될 수 있다.
블록(842)으로 진행되면, 웹 브라우저(382)는 다음과 같은 수학식으로부터 TCP 윈도우 활용 크기를 결정할 수 있다.
Figure pct00003
여기서,
HSPA DL TP는 단계(818)에서 결정된 현재 HSPA DL TP이고,
TCP RTO는 단계(824)에서 결정된 TCP RTO 추정치이고,
TCP 수신 윈도우 크기는 단계(828)에서 결정된 TCP 수신 윈도우 크기이다.
블록(842)으로부터, 방법(800)은 도 9의 블록(902)으로 진행될 수 있고, 이어서, 방법(800)은 아래에 기재된 바와 같이 계속될 수 있다.
도 9의 블록(902)에서, HTTP 요청은 웹 브라우저(382)에 의해 개시될 수 있다. 결정 블록(904)으로 이동하면, 웹 브라우저(382)는 TCP 접속이 현재 개방인지를 결정할 수 있다. TCP 접속이 현재 개방이 아니면, 방법(800)은 블록(918)으로 계속될 수 있고, 웹 브라우저(382)는 새로운 TCP 접속을 개방할 수 있다. 이후에, 방법(800)이 종료될 수 있다.
결정 블록(904)으로 복귀하여, 웹 브라우저(382)가 TCP 접속이 개방이라고 결정하면, 방법(800)은 결정 블록(908)으로 진행될 수 있다. 결정 블록(908)에서, 웹 브라우저(382)는 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하는지를 결정할 수 있다. 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하지 않는다면, 방법(800)은 아래에 기재된 블록(918)으로 진행될 수 있다. 이후에, 방법(800)이 종료될 수 있다.
결정 블록(908)으로 복귀하여, 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하면, 방법(800)은 결정 블록(912)으로 진행될 수 있다. 결정 블록(912)에서, 웹 브라우저(382)는 블록(840)에서 결정된 TP 헤드룸이 TP 헤드룸 조건을 만족시키는지를 결정할 수 있다. 예를 들면, TP 헤드룸 조건은 TP 헤드룸 임계치일 수 있고, TP 헤드룸이 TP 헤드룸 임계치보다 큰 경우에 TP 헤드룸은 TP 헤드룸 조건을 만족시킬 수 있다. 특정 양상에서, TP 헤드룸 임계치는, 이에 제한되지 않지만, 250Kbps, 500Kbps 및 1Mbps 등과 같은 예시적인 값들을 포함할 수 있다.
결정 블록(912)에서, TP 헤드룸이 TP 헤드룸 임계치보다 크지 않으면, 방법(800)은 블록(910)으로 진행될 수 있고, 웹 브라우저(382)는 HTTP 요청을 기존의 TCP 접속에 제출할 수 있다. 이후에, 방법(800)이 종료될 수 있다. 결정 블록(912)으로 복귀하여, TP 헤드룸이 TP 헤드룸 임계치보다 크면, 방법(800)은 결정 블록(914)으로 진행될 수 있다.
결정 블록(914)에서, 웹 브라우저(382)는 단계(824)에서 결정된 TCP RTO가 TCP RTO 조건을 만족시키는지를 결정할 수 있다. 예를 들면, TCP RTO 조건은 TCP RTT 임계치일 수 있고, TCP RTO가 TCP RTT 임계치보다 작다면, TCP RTO는 TCP RTO 조건을 만족시킬 수 있다. 특정 양상에서, TCP RTT 임계치 값들은, 이에 제한되지 않지만, 50ms, 200ms 등의 값들을 포함할 수 있다.
결정 블록(914)에서, TCP RTO가 TCP RTT 임계치보다 작다면, 방법(800)은 블록(918)으로 진행될 수 있고, 웹 브라우저(382)는 새로운 TCP 접속을 개방할 수 있다. 이후에, 방법(800)이 종료될 수 있다. 결정 블록(914)으로 복귀하여, TCP RTO가 TCP RTT 임계치보다 크면(보다 작지 않다면), 방법(800)은 상술된 단계(910)로 다시 진행될 수 있고, 웹 브라우저(382)는 HTTP 요청을 기존의 TCP 접속에 제출할 수 있다.
도 10을 참조하면, 하나 이상의 전송 제어 프로토콜(TCP) 접속들을 설정하는 방법의 제 4 양상이 도시되고, 일반적으로 (1000)으로 지정된다. 블록(1002)에서 시작하여, 웹 브라우저(382)는 하나 이상의 네트워크 자원들의 가까운 미래의 성능을 추정할 수 있다. 블록(1004)에서, 웹 브라우저(382)는 다운로딩될 아이템들의 수를 예상할 수 있다. 또한, 블록(1006)에서, 웹 브라우저(382)는 다운로딩될 아이템들의 크기를 예상할 수 있다. 블록(1008)에서, 네트워크 자원의 가까운 미래의 성능, 다운로딩될 아이템들의 수, 다운로딩될 아이템들의 크기, 또는 이들의 조합에 적어도 부분적으로 기초하여, 웹 브라우저(382)는 기존의 TCP 접속을 활용하거나 새로운 TCP 접속을 개방할 수 있다. 이어서, 방법(1000)이 종료될 수 있다.
하나 이상의 네트워크 자원들의 가까운 미래의 성능을 추정하기 위해, 다음의 요인들: 무선 링크 메트릭들, 이동성 메트릭들, TCP 메트릭들, 또는 이들의 조합이 고려될 수 있다. 무선 링크 메트릭들은 블록 에러 레이트(BLER), 신호 대 잡음비(SNR), 달성되는 스루풋(TP), RTT 또는 이들의 조합을 포함할 수 있다.
BLER이 전송된 패킷들의 수에 의해 나누어진 부정확하게 전송된 데이터 패킷들의 수일 수 있다는 것이 인식될 수 있다. SNR은 신호를 변질시킬 수 있는 신호 전력 대 잡음 전력의 비율일 수 있다. 스루풋은 통신 채널을 통한 성공적인 메시지 전달의 평균 레이트일 수 있다. 스루풋은 초 당 비트들(bit/s 또는 bps)로 측정될 수 있다. RTT는 신호 펄스 또는 패킷이 특정 소스로부터 특정 목적지로 그리고 다시 반대로 이동하는데 요구된 시간일 수 있다.
이동성 메트릭들은 디바이스가 고정식인지, 디바이스가 이동중인지, 디바이스의 수직 속도, 디바이스의 수평 속도, 디바이스의 속도, 이들의 조합을 포함할 수 있다. TCP 메트릭들은 드롭되고 비순서적인 패킷들에 대한 통계, 현재 접속 스루풋, 현재 혼잡도 및 수신기 윈도 크기들, RTO 추정치들 또는 이들의 조합을 포함할 수 있다.
특정 양상에서, 다운로딩될 남아있는 오브젝트들을 예상하는 것은, HTML이 파싱(parsed)되고, DOM 트리가 생성되고, 어떤 요구된 오브젝트들이 캐시 내에 있지 않은지에 관한 결정이 이루어진 후에 발생할 수 있다. 비-캐싱된 자원들의 크기를 추정하는 것은 하나 이상의 HTTP 메트릭들, 마임(mime) 형태의 임의의 두드러진 요청들, 자원 매니페스트(manifest) 파일, 캐시 내의 기존의 만료된 콘텐츠 또는 이들의 조합에 기초하여 결정될 수 있다.
HTTP 메트릭들은, 헤더들이 이미 수신된 경우에, 두드러진 요청들에 대한 콘텐츠-길이 정보; 서버가 HTTP 1.1을 지원하는지를 나타낼 수 있는, 서버로부터 수신된 HTTP 버전 정보, 또는 이들의 조합을 포함할 수 있다. 마임-형태의 두드러진 요청들은 예상된 마임-형태의 새로운 요청을 포함할 수 있다. 예상된 마임-형태의 새로운 요청은 URL 및 파일네임 확장자로부터 추론될 수 있다. 대안적으로, 예상된 마임-형태는 <img> 또는 <script>와 같은 인클로징 태그 덕분에 브라우저에 의해 개별적으로 제공될 수 있다.
자원 매니페스트 파일은 gzip 파일에서 획득될 수 있는 것과 같이 페이지 상의 콘텐츠의 인덱스를 포함할 수 있다. 웹 페이지에 의해 지원되거나 클라이언트 브라우저에 의해 생성되든지 아니든지, 자원 매니페스트들의 캐싱은 자원 매니페스트 파일에 대해 우선 순위화될 수 있다. 캐시 내의 기존의 만료된 콘텐츠는 콘텐츠의 크기를 추정하는데 사용될 수 있고, 예를 들면, 만료된 스크립트가 12kB인 캐시에 존재하면, 업데이트된 스크립트가 유사한 크기일 것이라고 추정하는 것이 타당하다.
위의 메트릭들 중 일부 또는 모두는, 새로운 소켓을 개방하거나, 기존의 유휴 소켓을 재사용하거나, 요청을 기존의 비지(busy) 소켓으로 파이프라이닝하거나, 나중을 위해 요청을 인큐잉하도록 결정할 결정 블록 메이킹(making) 엔진에 대한 입력들로서 기능할 것이다. 결정 블록 메이킹 엔진은 웹 브라우저(382), 웹 브라우저 애플리케이션(즉, 플러그-인)(382)의 부분, 별개의 애플리케이션 또는 이들의 조합일 수 있다.
도 11은, 일반적으로 (1100)으로 지정되는, 하나 이상의 전송 제어 프로토콜(TCP) 접속들을 설정하는 방법의 제 5 양상을 도시한다. 블록(1102)에서 시작하여, HTTP 요청은 웹 브라우저(382)에 의해 개시될 수 있다. 결정 블록(1104)으로 이동하면, 웹 브라우저(382)는 TCP 접속이 현재 개방인지를 결정할 수 있다. TCP 접속이 현재 개방이 아니면, 방법(1100)은 블록(1106)으로 계속될 수 있고, 웹 브라우저(382)는 새로운 TCP 접속을 개방할 수 있다. 이후에, 방법(1100)이 종료될 수 있다.
결정 블록(1104)으로 복귀하여, 웹 브라우저(382)가 TCP 접속이 개방이라고 결정하면, 방법(1100)은 결정 블록(1108)으로 진행될 수 있다. 결정 블록(1108)에서, 웹 브라우저(382)는 개방 TCP 접속 또는 소켓을 통해 현재 수신되는 자원 또는 서브-자원의 비트 단위의 총 크기가 알려져 있는지를 결정할 수 있다. 그렇다면, 방법(1100)은 블록(1110)으로 진행될 수 있고, 웹 브라우저(382)는 다운로드 완료 시간을 결정할 수 있다. 다운로드 완료 시간은 다음과 같은 수학식을 사용하여 결정될 수 있다.
Figure pct00004
여기서,
DLT = 다운로드 완료 시간;
STOT = 비트 단위의 현재 자원의 총 크기;
SRx = 이미 수신된 비트들의 수; 및
T = 초 당 비트 단위의 현재 다운링크 TCP 스루풋.
블록(1110)으로부터, 방법(1100)은 결정 블록(1112)으로 진행될 수 있다. 결정 블록(1112)에서, 웹 브라우저(382)는 다운로드 완료 시간이 다운로드 완료 시간 조건을 만족시키는지를 결정할 수 있다. 예를 들면, 다운로드 완료 시간 조건은 RTT일 수 있고, 다운로드 완료 시간이 RTT보다 큰 경우에, 즉, 현재 자원의 다운로딩을 완료하는데 걸리는 예상된 시간의 양이 새로운 소켓 접속을 설정하는데 필요한 예상된 시간의 양보다 큰 경우에, 다운로드 완료 시간은 다운로드 완료 시간 조건을 만족시킬 수 있다.
결정 블록(1112)에서, 다운로드 완료 시간이 RTT보다 큰 경우에, 방법(1100)은 블록(1106)으로 진행될 수 있고, 웹 브라우저(382)는 새로운 TCP 접속을 개방할 수 있다. 이어서, 방법(1100)이 종료될 수 있다.
결정 블록(1112)으로 복귀하여, 다운로드 완료 시간이 RTT보다 크지 않으면, 방법(1100)은 블록(1114)으로 진행될 수 있고, 웹 브라우저(382)는 HTTP 요청을 기존의 TCP 접속에 제출할 수 있다. 이후에, 방법(1100)이 종료될 수 있다.
결정 블록(1108)으로 복귀하여, STot가 알려지지 않는다면, 방법(1100)은 블록(1116)으로 진행될 수 있다. 블록(1116)에서, 웹 브라우저는 평균 오브젝트 크기 SAVG를 결정할 수 있다. SAVG는 마임 형태의 두드러진 요청에 기초한 자원 오브젝트의 평균 크기일 수 있다. SAVG는 현재 호스트로부터 이미 수신된 오브젝트들의 크기들, 이력 정보 또는 이들의 조합 중 어느 하나에 기초하여 호스트마다 기초하여 동적으로 결정될 수 있다. 또 다른 양상에서, SAVG는 복수의 다른 웹 사이트들로부터 수신된 유사한 자원들의 크기를 평균화함으로써 계산된 미리 결정된 상수에 기초하여 결정될 수 있다.
블록(1116)으로부터, 방법(1100)은 블록(1118)으로 진행될 수 있고, 웹 브라우저(382)는 추정된 다운로드 완료 시간, DLEST를 결정할 수 있다. 추정된 다운로드 완료 시간은 다음과 같은 수학식으로부터 결정될 수 있다.
Figure pct00005
여기서,
DLEST = 추정된 다운로드 완료 시간;
SAVG = 비트 단위의 평균 오브젝트 크기;
SRX = 이미 수신된 비트들의 수; 및
T = 초 당 비트 단위의 현재 다운링크 TCP 스루풋.
블록(1118)으로부터, 방법(1100)은 결정 블록(1120)으로 진행될 수 있다. 결정 블록(1120)에서, 웹 브라우저(382)는 추정된 다운로드 완료 시간이 추정 다운로드 완료 시간 조건을 만족하는지를 결정할 수 있다. 예를 들면, 추정된 다운로드 완료 시간 조건은 RTT일 수 있고, 추정된 다운로드 완료 시간이 RTT보다 큰 경우에, 추정된 다운로드 완료 시간은 상기 조건을 만족시킬 수 있다. 결정 블록(1120)에서, 추정된 다운로드 완료 시간이 RTT보다 크면, 방법(1100)은 블록(1106)으로 진행될 수 있고, 웹 브라우저(382)는 새로운 TCP 접속을 개방할 수 있다. 이어서, 방법(1100)이 종료될 수 있다.
결정 블록(1112)으로 복귀하여, 추정된 다운로드 완료 시간이 RTT보다 크지 않다면, 방법(1100)은 블록(1114)으로 진행될 수 있고, 웹 브라우저(382)는 HTTP 요청을 기존의 TCP 접속에 제출할 수 있다. 이후에, 방법(1100)이 종료될 수 있다.
도 12는 하나 이상의 전송 제어 프로토콜(TCP) 접속들을 설정하는 방법의 제 6 양상을 도시하고, 상기 방법은 일반적으로 (1200)으로 지정된다. 블록(1202)에서 개시하여, HTTP 요청은 웹 브라우저(382)에 의해 개시될 수 있다. 결정 블록(1204)으로 이동하면, 웹 브라우저(382)는 TCP 접속이 현재 개방인지를 결정할 수 있다. TCP 접속이 현재 개방이 아니면, 방법(1200)은 블록(1206)으로 계속될 수 있고, 웹 브라우저(382)는 새로운 TCP 접속을 개방할 수 있다. 이후에, 방법(1200)이 종료될 수 있다.
결정 블록(1204)으로 복귀하여, 웹 브라우저(382)가 TCP 접속이 개방이라고 결정하면, 방법(1200)은 결정 블록(1208)으로 진행될 수 있다. 결정 블록(1208)에서, 웹 브라우저(382)는 TCP 접속이 혼잡을 회피하기 위해 제한된 전송 윈도우 크기를 사용하는지를 결정할 수 있다.
TCP 접속이 혼잡을 회피하기 위해 제한된 전송 윈도우 크기를 사용하지 않으면, 방법(1200)은 블록(1210)으로 진행될 수 있다. 블록(1210)에서, 웹 브라우저(382)는 HTTP 요청을 기존의 TCP 접속에 제출할 수 있다. 이후에, 방법(1200)이 종료될 수 있다.
결정 블록(1208)으로 복귀하여, TCP 접속이 혼잡을 회피하기 위해 제한된 전송 윈도우 크기를 사용하면, 방법(1200)은 블록(1206)으로 진행될 수 있다. 블록(1206)에서, 윈도우 브라우저 애플리케이션은 새로운 TCP 접속을 개방할 수 있다. 이후에, 방법(1200)이 종료될 수 있다.
본원에 기재된 방법 단계들이 기재된 바와 같은 순서로 반드시 수행될 필요는 없다는 것이 이해되어야 한다. 또한, "이후에", "이어서", " 다음에" 등과 같은 단어들은 단계들의 순서를 제한하도록 의도되지 않는다. 이러한 단어들은 방법 단계들의 설명을 통해 독자를 안내하는데 단순히 사용된다. 또한, 본원에 기재된 방법들은 휴대용 컴퓨팅 디바이스(PCD) 상에서 실행 가능한 것으로 기재된다. PCD는 모바일 텔레폰 디바이스, 휴대용 디지털 보조 디바이스, 스마트북 컴퓨팅 디바이스, 넷북 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 데스크톱 컴퓨팅 디바이스, 또는 이들의 조합일 수 있다. 또한, 다양한 방법 단계들은 새로운 방법들을 생성하기 위해 임의의 순서로 조합될 수 있다.
본원에 기재된 구성을 통해, 본원의 시스템들 및 방법들은 DNS 룩업들의 속도를 실질적으로 높이는데 사용될 수 있다. 또한, 본원의 시스템들 및 방법들은 새로운 TCP 접속들의 효율적인 설정, TCP 접속들의 재사용 또는 이들의 조합을 위해 사용될 수 있다.
일 양상에서, 디바이스, 예를 들면, 디바이스 상에 저장된 웹 브라우저(382)는 모든 호스트들의, URL에 의해 인덱싱된 메모리(344) 내의 데이터베이스를 유지할 수 있는데, 도 5에 예시된 바와 같이 디바이스 상에 특정 URL과 연관된 콘텐츠가 로딩된 최종 시간에 그 URL에 대한 서브-자원들이 그 호스트로부터 로딩된다. 사용자가 특정 URL로 내비게이팅할 때, 데이터베이스(403)가 컨설팅될 수 있고, 엔트리가 발견되면, 메인 자원 로드와 동시에, 데이터베이스 엔트리에 리스팅된 각각의 호스트에 대해 DNS 룩업 및 TCP 접속 설정이 수행된다. 또한, 페이지가 완전히 로딩된 후에, 데이터베이스(403)는 가장 최근의 로드에 대해 접촉된 호스트들의 실제 세트로 업데이트될 수 있다. 브라우저는 가장 최근의 로드에 접촉되지 않은 임의의 호스트들을 삭제하거나, 오래된 리스트와 새로운 리스트를 합병하도록 선택할 수 있다.
이러한 접근법은 셀룰러 커버리지 구역들의 에지들 상에서 유용할 수 있다. 그러한 영역들에서, 다운링크 성능이 여전히 충분할지라도(예를 들면, 300kbps), 업링크 성능은 간신히 이용 가능한 상태, 예를 들면, 4kbps로 악화될 수 있다. 종래의 컴퓨팅 디바이스들에서 DNS 룩업 다음에 HTTP GET 명령이 오는 현재 및 종래의 접근법은 적어도 HTTP 오브젝트를 반환하기 위한 시간만큼 지연되는 및 단지 메인 자원이 로딩된 후의 업링크 액세스들과 동일시한다. 제안된 접근법이 궁극적으로 요구되지 않을 수 있는 일부 DNS 룩업들을 수행할 수 있지만, 메인 자원이 로딩되기 전에 DNS 룩업들을 시작하는 것 및 후속 HTTP GET 명령 태스크들에 의해 DNS 룩업들을 스페이싱하는 것보다는 DNS 룩업들의 큐잉하는 것은 더 양호한 업링크 성능을 발생시킨다.
하나 이상의 예시적인 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되면, 상기 기능들은, 머신 판독 가능 매체, 즉, 컴퓨터-판독 가능 매체와 같은 컴퓨터 프로그램 물건 상에 하나 이상의 명령들 또는 코드로서 저장되거나 이를 통해 송신될 수 있다. 컴퓨터-판독 가능 매체들은 컴퓨터 저장 매체들, 및 일 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 둘 모두를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 비제한적인 예로서, 이러한 컴퓨터-판독 가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장 또는 전달하는데 이용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결 수단(connection)이 컴퓨터-판독 가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 라인(DSL), 또는 적외선, 라디오, 및 마이크로웨이브와 같은 무선 기술들을 이용하여 송신되는 경우, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오, 및 마이크로웨이브와 같은 무선 기술들이 매체의 정의에 포함된다. 여기서 사용되는 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(disc)(CD), 레이저 디스크(disc), 광 디스크(disc), 디지털 다기능 디스크(disc)(DVD), 플로피 디스크(disk), 및 블루-레이 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기한 것의 조합들이 또한 컴퓨터-판독 가능 매체들의 범위 내에 포함되어야 한다.
선택된 양상들이 상세히 예시 및 기재되었지만, 다음의 청구항들에 의해 정의된 바와 같은, 본 발명의 사상 및 범위로부터 벗어나지 않고 그 양상들에서 다양한 대체들 및 변경들이 이루어질 수 있다는 것이 이해될 것이다.

Claims (39)

  1. TCP(transmission control protocol) 접속들을 설정하는 방법으로서,
    HTTP(hyper text transfer protocol) 요청의 부분으로서 URL(uniform resource locator)을 수신하는 단계;
    상기 URL을 갖는 호스트 데이터베이스를 탐색하는 단계;
    상기 URL에 대한 호스트 데이터가 이용 가능한지를 결정하는 단계; 및
    URL 호스트에 대해 및 하나 이상의 서브-자원 호스트들에 대해 DNS(domain name service) 룩업을 수행하는 단계 ― 상기 URL에 대한 호스트 데이터가 이용 가능할 때, 모든 DNS 룩업들은 실질적으로 동일한 시간에 동시에 수행됨 ― 를 포함하는,
    TCP 접속들을 설정하는 방법.
  2. 제 1 항에 있어서,
    상기 URL 호스트에 대해 및 상기 하나 이상의 서브-자원 호스트들 각각에 대해 적어도 하나의 TCP 접속을 설정하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  3. 제 2 항에 있어서,
    메인 자원을 로딩하는 단계; 및
    하나 이상의 서브-자원들을 로딩하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  4. 제 2 항에 있어서,
    상기 URL에 대한 웹 페이지가 완전히 로딩될 때, 상기 호스트 데이터베이스를 업데이트하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  5. 제 3 항에 있어서,
    상기 방법은, HTML 파일이 파싱(parsed)된 후에 다운로딩될 남아있는 오브젝트들을 예상하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  6. 제 1 항에 있어서,
    TCP(transmission control protocol) 접속이 개방인지를 결정하는 단계; 및
    상기 TCP 접속이 개방일 때, 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하는지를 결정하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  7. 제 6 항에 있어서,
    TP(throughput) 헤드룸이 TP 헤드룸 조건을 만족시키는지를 결정하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  8. 제 7 항에 있어서,
    TCP RTO(retransmission timeout)가 TCP RTO 조건을 만족시키는지를 결정하는 단계; 및
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  9. 제 8 항에 있어서,
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시킬 때, 새로운 TCP 접속을 개방하는 단계; 및
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, TCP 윈도우 활용이 TCP 윈도우 활용 조건을 만족시키는지를 결정하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  10. 제 9 항에 있어서,
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시킬 때, 새로운 TCP 접속을 개방하는 단계; 및
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하는 단계를 더 포함하는,
    TCP 접속들을 설정하는 방법.
  11. 디바이스로서,
    HTTP(hyper text transfer protocol) 요청의 부분으로서 URL(uniform resource locator)을 수신하기 위한 수단;
    상기 URL을 갖는 호스트 데이터베이스를 탐색하기 위한 수단;
    상기 URL에 대한 호스트 데이터가 이용 가능한지를 결정하기 위한 수단; 및
    URL 호스트에 대해 및 하나 이상의 서브-자원 호스트들에 대해 DNS(domain name service) 룩업을 수행하기 위한 수단 ― 상기 URL에 대한 호스트 데이터가 이용 가능할 때, 모든 DNS 룩업들은 실질적으로 동일한 시간에 동시에 수행됨 ― 을 포함하는,
    디바이스.
  12. 제 11 항에 있어서,
    상기 URL 호스트에 대해 및 상기 하나 이상의 서브-자원 호스트들 각각에 대해 적어도 하나의 TCP 접속을 설정하기 위한 수단을 더 포함하는,
    디바이스.
  13. 제 12 항에 있어서,
    메인 자원을 로딩하기 위한 수단; 및
    하나 이상의 서브-자원들을 로딩하기 위한 수단을 더 포함하는,
    디바이스.
  14. 제 13 항에 있어서,
    HTML 파일이 파싱(parsed)된 후에 다운로딩될 남아있는 오브젝트들을 예상하기 위한 수단을 더 포함하는,
    디바이스.
  15. 제 11 항에 있어서,
    상기 URL에 대한 웹 페이지가 완전히 로딩될 때, 상기 호스트 데이터베이스를 업데이트하기 위한 수단을 더 포함하는,
    디바이스.
  16. 제 11 항에 있어서,
    TCP(transmission control protocol) 접속이 개방인지를 결정하기 위한 수단; 및
    상기 TCP 접속이 개방일 때, 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하는지를 결정하기 위한 수단을 더 포함하는,
    디바이스.
  17. 제 16 항에 있어서,
    TP(throughput) 헤드룸이 TP 헤드룸 조건을 만족시키는지를 결정하기 위한 수단을 더 포함하는,
    디바이스.
  18. 제 17 항에 있어서,
    TCP RTO(retransmission timeout)가 TCP RTO 조건을 만족시키는지를 결정하기 위한 수단; 및
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하기 위한 수단을 더 포함하는,
    디바이스.
  19. 제 18 항에 있어서,
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시킬 때, 새로운 TCP 접속을 개방하기 위한 수단; 및
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, TCP 윈도우 활용이 TCP 윈도우 활용 조건을 만족시키는지를 결정하기 위한 수단을 더 포함하는,
    디바이스.
  20. 제 19 항에 있어서,
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시킬 때, 새로운 TCP 접속을 개방하기 위한 수단; 및
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하기 위한 수단을 더 포함하는,
    디바이스.
  21. 디바이스로서,
    메모리;
    상기 메모리에 액세스 가능한 프로세서를 포함하고,
    상기 프로세서는:
    HTTP(hyper text transfer protocol) 요청의 부분으로서 URL(uniform resource locator)을 수신하고;
    상기 URL을 갖는 호스트 데이터베이스를 탐색하고;
    상기 URL에 대한 호스트 데이터가 이용 가능한지를 결정하고; 그리고
    URL 호스트에 대해 및 하나 이상의 서브-자원 호스트들에 대해 DNS(domain name service) 룩업을 수행하도록 동작 가능하고,
    상기 URL에 대한 호스트 데이터가 이용 가능할 때, 모든 DNS 룩업들은 실질적으로 동일한 시간에 동시에 수행되는,
    디바이스.
  22. 제 21 항에 있어서,
    상기 프로세서는 상기 URL 호스트에 대해 및 상기 하나 이상의 서브-자원 호스트들 각각에 대해 TCP 접속을 설정하도록 추가로 동작 가능한,
    디바이스.
  23. 제 22 항에 있어서,
    상기 프로세서는,
    메인 자원을 로딩하고; 그리고
    하나 이상의 서브-자원들을 로딩하도록 추가로 동작 가능한,
    디바이스.
  24. 제 23 항에 있어서,
    상기 프로세서는, HTML 파일이 파싱(parsed)된 후에 다운로딩될 남아있는 오브젝트들을 예상하도록 추가로 동작 가능한,
    디바이스.
  25. 제 23 항에 있어서,
    상기 프로세서는, 상기 URL에 대한 웹 페이지가 완전히 로딩될 때, 상기 호스트 데이터베이스를 업데이트하도록 추가로 동작 가능한,
    디바이스.
  26. 제 25 항에 있어서,
    상기 프로세서는,
    TCP(transmission control protocol) 접속이 개방인지를 결정하고; 그리고
    상기 TCP 접속이 개방일 때, 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하는지를 결정하도록 추가로 동작 가능한,
    디바이스.
  27. 제 26 항에 있어서,
    상기 프로세서는 TP(throughput) 헤드룸이 TP 헤드룸 조건을 만족시키는지를 결정하도록 추가로 동작 가능한,
    디바이스.
  28. 제 27 항에 있어서,
    상기 프로세서는,
    TCP RTO(retransmission timeout)가 TCP RTO 조건을 만족시키는지를 결정하고; 그리고
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하도록 추가로 동작 가능한,
    디바이스.
  29. 제 28 항에 있어서,
    상기 프로세서는,
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시킬 때, 새로운 TCP 접속을 개방하고; 그리고
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, TCP 윈도우 활용이 TCP 윈도우 활용 조건을 만족시키는지를 결정하도록 추가로 동작 가능한,
    디바이스.
  30. 제 29 항에 있어서,
    상기 프로세서는,
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시킬 때, 새로운 TCP 접속을 개방하고; 그리고
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하도록 추가로 동작 가능한,
    디바이스.
  31. 무선 휴대용 컴퓨팅 디바이스에 대한 TCP(transmission control protocol) 접속들을 설정하기 위한 컴퓨터 프로그램 물건으로서,
    HTTP(hyper text transfer protocol) 요청의 부분으로서 URL(uniform resource locator)을 수신하기 위한 적어도 하나의 명령;
    상기 URL을 갖는 호스트 데이터베이스를 탐색하기 위한 적어도 하나의 명령;
    상기 URL에 대한 호스트 데이터가 이용 가능한지를 결정하기 위한 적어도 하나의 명령; 및
    URL 호스트에 대해 및 하나 이상의 서브-자원 호스트들에 대해 DNS(domain name service) 룩업을 수행하기 위한 적어도 하나의 명령 ― 상기 URL에 대한 호스트 데이터가 이용 가능할 때, 모든 DNS 룩업들은 실질적으로 동일한 시간에 동시에 수행됨 ― 을 포함하는,
    컴퓨터 프로그램 물건.
  32. 제 31 항에 있어서,
    상기 URL 호스트에 대해 및 상기 하나 이상의 서브-자원 호스트들 각각에 대해 적어도 하나의 TCP 접속을 설정하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  33. 제 32 항에 있어서,
    메인 자원을 로딩하기 위한 적어도 하나의 명령; 및
    하나 이상의 서브-자원들을 로딩하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  34. 제 33 항에 있어서,
    상기 URL에 대한 웹 페이지가 완전히 로딩될 때, 상기 호스트 데이터베이스를 업데이트하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  35. 제 34 항에 있어서,
    TCP(transmission control protocol) 접속이 개방인지를 결정하기 위한 적어도 하나의 명령; 및
    상기 TCP 접속이 개방일 때, 호스트가 HTTP 버전 1.1 또는 그 이상에서 동작하는지를 결정하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  36. 제 35 항에 있어서,
    TP(throughput) 헤드룸이 TP 헤드룸 조건을 만족시키는지를 결정하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  37. 제 36 항에 있어서,
    TCP RTO(retransmission timeout)가 TCP RTO 조건을 만족시키는지를 결정하기 위한 적어도 하나의 명령; 및
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  38. 제 37 항에 있어서,
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시킬 때, 새로운 TCP 접속을 개방하기 위한 적어도 하나의 명령; 및
    상기 TCP RTO가 상기 TCP RTO 조건을 만족시키지 않을 때, TCP 윈도우 활용이 TCP 윈도우 활용 조건을 만족시키는지를 결정하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
  39. 제 38 항에 있어서,
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시킬 때, 새로운 TCP 접속을 개방하기 위한 적어도 하나의 명령; 및
    상기 TCP 윈도우 활용이 상기 TCP 윈도우 활용 조건을 만족시키지 않을 때, 상기 HTTP 요청을 기존의 TCP 접속에 제출하기 위한 적어도 하나의 명령을 더 포함하는,
    컴퓨터 프로그램 물건.
KR1020137011036A 2010-09-28 2011-07-26 전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법 KR101436956B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/892,214 US8909732B2 (en) 2010-09-28 2010-09-28 System and method of establishing transmission control protocol connections
US12/892,214 2010-09-28
PCT/US2011/045301 WO2012044393A1 (en) 2010-09-28 2011-07-26 System and method of establishing transmission control protocol connections

Publications (2)

Publication Number Publication Date
KR20130076881A true KR20130076881A (ko) 2013-07-08
KR101436956B1 KR101436956B1 (ko) 2014-09-02

Family

ID=44511517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137011036A KR101436956B1 (ko) 2010-09-28 2011-07-26 전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US8909732B2 (ko)
EP (1) EP2622823B1 (ko)
JP (1) JP5662582B2 (ko)
KR (1) KR101436956B1 (ko)
CN (1) CN103125108B (ko)
WO (1) WO2012044393A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8577961B2 (en) * 2010-01-28 2013-11-05 Qualcomm Innovation Center, Inc. Methods and apparatus for obtaining content with reduced access times
WO2014130807A1 (en) * 2013-02-21 2014-08-28 Fastly Inc. Dynamic secure packet block sizing
CN105488175B (zh) * 2015-12-01 2019-02-12 福建天晴数码有限公司 一种提高页面内容显示速度的方法及系统
CN105550338B (zh) * 2015-12-23 2018-11-23 北京大学 一种基于HTML5应用缓存的移动Web缓存优化方法
CN108476244A (zh) * 2016-01-13 2018-08-31 三星电子株式会社 通过利用网络延迟来缩短页面加载时间的方法和系统
CN106131907B (zh) * 2016-08-23 2019-07-30 广州慧睿思通信息科技有限公司 一种基于软件切换多制式小区搜索方法
EP3381158B1 (en) * 2016-10-17 2021-03-10 Google LLC Machine learning based identification of broken network connections
US10826870B2 (en) * 2019-03-21 2020-11-03 Wangsu Science & Technology Co., Ltd. Method, device and server for processing access request

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4004A (en) * 1845-04-16 Wooden bbidge
US8022A (en) * 1851-04-08 Sawing-machine
US6751777B2 (en) * 1998-10-19 2004-06-15 International Business Machines Corporation Multi-target links for navigating between hypertext documents and the like
US6928471B2 (en) 2001-05-07 2005-08-09 Quest Software, Inc. Method and apparatus for measurement, analysis, and optimization of content delivery
US20020198962A1 (en) * 2001-06-21 2002-12-26 Horn Frederic A. Method, system, and computer program product for distributing a stored URL and web document set
US7206932B1 (en) * 2003-02-14 2007-04-17 Crystalvoice Communications Firewall-tolerant voice-over-internet-protocol (VoIP) emulating SSL or HTTP sessions embedding voice data in cookies
US8015259B2 (en) * 2002-09-10 2011-09-06 Alan Earl Swahn Multi-window internet search with webpage preload
US7953820B2 (en) * 2002-09-11 2011-05-31 Hughes Network Systems, Llc Method and system for providing enhanced performance of web browsing
US8233392B2 (en) * 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US20050015434A1 (en) * 2003-04-29 2005-01-20 Yu He Mobile device with surrogate access to the internet and other networks
CN1957579A (zh) * 2004-03-22 2007-05-02 高通股份有限公司 网络链路上的http加速
US20050210122A1 (en) 2004-03-22 2005-09-22 Qualcomm Incorporated HTTP acceleration over a network link
JP2007006214A (ja) 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> リソース情報検索システム、リゾルバ及びプログラム
US7730187B2 (en) 2006-10-05 2010-06-01 Limelight Networks, Inc. Remote domain name service
US20070204223A1 (en) * 2006-02-27 2007-08-30 Jay Bartels Methods of and systems for personalizing and publishing online content
JP2008022157A (ja) 2006-07-11 2008-01-31 Murata Mach Ltd ネットワーク端末及びネットワーク複合機
US20080208961A1 (en) 2007-02-23 2008-08-28 Hostway Corporation Parallel retrieval system
AU2008225151B2 (en) * 2007-03-12 2012-06-28 Citrix Systems, Inc. Systems and methods for cache operations
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US8412767B2 (en) * 2007-07-18 2013-04-02 Network Solutions Inc. Mobile content service
CA2734774C (en) * 2008-08-26 2015-03-24 Ringleader Digital, Inc. A user-transparent system for uniquely identifying network-distributed devices without explicitly provided device or user identifying information
US8725727B2 (en) * 2008-09-24 2014-05-13 Sony Corporation System and method for determining website popularity by location
US9268871B2 (en) 2008-10-16 2016-02-23 Qualcomm Incorporated Methods and apparatus for obtaining content with reduced access times
US8359402B2 (en) * 2008-11-19 2013-01-22 Seachange International, Inc. Intercept device for providing content
US8577961B2 (en) 2010-01-28 2013-11-05 Qualcomm Innovation Center, Inc. Methods and apparatus for obtaining content with reduced access times

Also Published As

Publication number Publication date
CN103125108B (zh) 2015-10-07
CN103125108A (zh) 2013-05-29
WO2012044393A1 (en) 2012-04-05
JP5662582B2 (ja) 2015-02-04
US20120079060A1 (en) 2012-03-29
US8909732B2 (en) 2014-12-09
KR101436956B1 (ko) 2014-09-02
EP2622823A1 (en) 2013-08-07
JP2013546041A (ja) 2013-12-26
EP2622823B1 (en) 2014-07-16

Similar Documents

Publication Publication Date Title
KR101448976B1 (ko) 무선 핸드헬드 컴퓨팅 디바이스에 대하여 미디어 재생 품질을 최적화시키기 위한 시스템 및 방법
KR101436956B1 (ko) 전송 제어 프로토콜 접속들을 설정하는 시스템 및 방법
US9465777B2 (en) System and method of performing domain name server pre-fetching
US10499314B2 (en) Method and system for facilitating wireless communication via alternate communication pathway
US8634348B2 (en) Method and system for facilitating wireless communication via alternate wireless pathway
CN111937364A (zh) 无线网络系统中处理数据路径创建的方法和系统
WO2016169053A1 (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
FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5