KR102350444B1 - 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 - Google Patents
메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 Download PDFInfo
- Publication number
- KR102350444B1 KR102350444B1 KR1020217003380A KR20217003380A KR102350444B1 KR 102350444 B1 KR102350444 B1 KR 102350444B1 KR 1020217003380 A KR1020217003380 A KR 1020217003380A KR 20217003380 A KR20217003380 A KR 20217003380A KR 102350444 B1 KR102350444 B1 KR 102350444B1
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- baseband processor
- terminal
- processor
- information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/189—Transmission or retransmission of more than one copy of a message
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1628—List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/187—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1896—ARQ related signaling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0205—Traffic management, e.g. flow control or congestion control at the air interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0273—Traffic management, e.g. flow control or congestion control adapting protocols for flow control or congestion control to wireless environment, e.g. adapting transmission control protocol [TCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/188—Time-out mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 출원은 패킷 송신 방법 및 장치, 및 칩을 제공한다. 이 방법은 단말에 적용되며, 단말은 기저대역 프로세서, 애플리케이션 프로세서, 및 통신 인터페이스를 포함한다. 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다 - 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷임 -. 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송한다 - 제2 패킷은 제1 패킷과 동일함 -. 기저대역 프로세서는 통신 인터페이스를 사용하여 제2 패킷을 네트워크 디바이스에게 송신한다.
Description
본 발명은 통신 분야에 관한 것이며, 보다 구체적으로는, 패킷 송신 방법 및 장치, 칩, 및 단말에 관한 것이다.
모바일 인터넷 액세스가 단말의 주된 특성으로 됨에 따라, 네트워크에 액세스하기 위해 단말에 의해 사용되는 기술적 해결책이 계속적으로 발전한다. 이것은 단말 제품의 정보 획득 속도를 크게 개선시킨다. 모바일 통신 분야에서 흔히 사용되는 전송 제어 프로토콜/인터넷 프로토콜(Transmission Control Protocol/Internet Protocol)(TCP/IP)는 접속 지향이고, 신뢰성 있으며, 바이트 스트림 기반 전송 계층 통신 프로토콜이다.
단말이 TCP/IP 프로토콜을 사용하여 네트워크에 액세스하는 프로세스에서, 패킷이 빈번히 폐기된다(이는 패킷 손실이라고도 지칭됨). 현재 프로세싱 방법은 보통 송신단이 데이터를 재전송하는 것이다. 현재 프로세싱 방법에서, 패킷이 손실되는지는 수신단으로부터의 피드백에 따라 결정된다. 예를 들어, 송신단이 수신단에 의해 송신된 ACK와 같은 피드백 메시지를, 명시된 시간 기간 내에, 수신하지 못한 경우, 패킷이 손실되었다고 결정되고, 손실된 패킷의 데이터를 포함하는 패킷이 재송신된다. 이 해결책에서, 패킷 손실에 응답할 때 단말이 상대적으로 큰 지연을 가지며, 단말과 네트워크 디바이스 사이의 데이터 전송의 지체 시간(stalling time)이 상대적으로 길고, 실시간 통신 품질이 상대적으로 심각하게 영향을 받는다.
이것을 고려하여, 본 출원은, 단말과 네트워크 사이의 데이터 전송이 보다 원활하도록, 기저대역 프로세서에 의해 폐기된 송신될 패킷을, 단말에 의해, 재전송하는 것의 지연을 감소시키고, 단말에 의해 패킷 손실에 응답하는 것의 지연을, 어느 정도, 감소시키기 위해, 패킷 송신 방법 및 장치, 칩, 및 단말을 제공한다.
제1 양태에 따르면, 본 발명의 일 실시예는 패킷 송신 방법을 제공하고, 여기서 이 방법은 단말에 적용되며, 단말은 기저대역 프로세서, 애플리케이션 프로세서, 및 통신 인터페이스를 포함하고, 이 방법은: 기저대역 프로세서에 의해, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 단계 - 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함함 -; 애플리케이션 프로세서에 의해, 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하는 단계 - 제2 패킷은 제1 패킷과 동일함 -; 및 기저대역 프로세서에 의해, 통신 인터페이스를 사용하여 제2 패킷을 네트워크 디바이스에게 송신하는 단계를 포함한다.
기저대역 프로세서에 의해 폐기된 송신될 패킷이 애플리케이션 프로세서에 의해 기저대역 프로세서로 전달되고 기저대역 프로세서에 의해 통신 인터페이스를 사용하여 네트워크 디바이스에게 송신되지 못하는 패킷으로서 또한 이해될 수 있음에 유의해야 한다.
네트워크 디바이스가 기지국 또는 서버와 같은 디바이스일 수 있음에 유의해야 한다.
제2 패킷은 제1 패킷의 사본으로서 이해될 수 있다.
이러한 방식으로, 송신될 패킷을 폐기한 후에, 기저대역 프로세서는 기저대역 프로세서에 의해 폐기된 송신될 패킷에 관한 정보를, 애플리케이션 프로세서에, 보고할 수 있음으로써, 애플리케이션 프로세서가 기저대역 프로세서에 의해 폐기된 패킷의 사본을, 보고된 정보에 따라 기저대역 프로세서로, 재전달할 수 있도록 한다. 패킷의 타임아웃 타이머가 만료되고 확인응답 패킷이 피어 엔드(peer end)로부터 수신되지 않은 것으로 결정되기 전에, 패킷이 폐기되고 패킷이 기저대역 프로세서에게 재송신되는 것으로 결정될 수 있다. 이것은 단말과 네트워크 사이의 데이터 전송이 보다 원활하도록, 기저대역 프로세서에 의해 폐기된 송신될 패킷을, 단말에 의해, 재전송하는 것의 지연을 감소시키고, 단말에 의해 패킷 손실에 응답하는 것의 지연을, 어느 정도, 감소시킬 수 있다. 무선 셀룰러 네트워크의 상태가 종종 변경되기 때문에, 기저대역 프로세서가 송신될 패킷을 폐기하는 경우가 빈번하게 발생한다.
제1 양태를 참조하여, 제1 양태의 제1 구현에서, 기저대역 프로세서에 의해, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 단계는: 단말의 데이터 접속이 이용가능할 때, 기저대역 프로세서에 의해, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 단계를 포함한다.
데이터 접속은 데이터 서비스를 운반하는 데 사용되는 접속이다. 단말의 데이터 접속은 단말과 기지국 사이의 데이터 접속으로서 이해될 수 있다.
제1 양태 또는 제1 양태의 제1 구현을 참조하여, 다른 구현에서, 단말의 데이터 접속이 이용불가능할 때, 기저대역 프로세서는 제1 패킷에 관한 정보를 캐싱하고, 단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다.
단말이, 주기적 검출, 이벤트 트리거, 지시 트리거, 또는 이와 유사한 것에 의해, 단말의 데이터 접속이 이용가능한지 이용불가능한지를 결정할 수 있다는 것이 이해되어야 한다. 단말의 데이터 접속은 하기의 경우들: 단말이 접속해제된 상태에 있음; 단말이 임의의 서빙 셀에 정상적으로 캠프 온하지 못함; 단말의 데이터 서비스가 디스에이블된 상태에 있음; 또는 2G로의 회선 교환 도메인의 폴백(Circuit Switched Fallback, CSFB)의 경우에 단말이 2G 호 시나리오에 있음 중 임의의 것에서 이용불가능하다.
단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 기저대역 프로세서가 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 것에 유의해야 한다. 이것은 단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환된 후에 기저대역 프로세서가 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다는 것을 나타낸다. 동시성(simultaneousness)이 엄격하게 요구되지는 않는데, 그 이유는 명령어를 판독하고, 관련 동작을 수행하며, 그리고 이와 유사한 것을 하는 데 시간이 걸리기 때문이다. 즉, 단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환된 이후 상대적으로 짧은 시간 기간(예를 들어, 수 밀리초 또는 수 초) 내에, 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 액션을 완료한다.
제1 구현 및 제2 구현에서, 재전송 유효성이 개선될 수 있도록, 데이터 접속이 이용가능할 때에만, 기저대역 프로세서는 폐기된 송신될 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다. 데이터 접속이 이용가능할 때에만 폐기된 송신될 패킷에 관한 정보가 애플리케이션 프로세서에 보고되는 경우, 단말의 에너지 소비가 감소될 수 있다.
전술한 구현들 중 임의의 것에 따르면, 다른 구현에서, 애플리케이션 프로세서에 의해, 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하는 단계 이후에, 이 방법은: 애플리케이션 프로세서에 의해, TCP 접속의 혼잡 윈도의 값을 증가시키는 단계를 추가로 포함한다.
애플리케이션 프로세서가 제2 패킷을 기저대역 프로세서에게 전송한 후에, 혼잡 윈도가 감소될 수 있다. 혼잡 윈도가 증가된 후에, 타임아웃 재전송으로 인한 영향이 제거될 수 있고, 단말에 의해 송신되는 패킷들의 수량이 보장될 수 있으며, 단말의 전송 스루풋이 개선될 수 있다.
전술한 구현들 중 임의의 것에 따르면, 다른 구현에서, 제1 패킷의 식별자는 제1 패킷의 시퀀스 번호이고, 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자는 TCP 접속의 소스 포트 번호이며; 애플리케이션 프로세서에 의해, 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하는 단계는: 애플리케이션 프로세서에 의해, 소스 포트 번호에 따라 제1 패킷과 동일한 시퀀스 번호를 가지는 제2 패킷을 기저대역 프로세서에게 전송하는 단계를 포함한다.
제2 양태에 따르면, 본 발명의 일 실시예는 패킷 송신 장치를 제공하며, 이 장치는 기저대역 프로세서, 애플리케이션 프로세서, 및 송신기를 포함한다. 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성되며, 여기서 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함하며; 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하도록 구성되고, 여기서 제2 패킷은 제1 패킷과 동일하며; 기저대역 프로세서는 송신기를 사용하여 제2 패킷을 네트워크 디바이스에게 송신하도록 추가로 구성된다.
제2 양태가 제1 양태에 대응하는 장치이기 때문에, 다양한 구현들, 설명들, 및 기술적 효과들에 대해서는, 제1 양태에서의 설명들을 참조한다.
제3 양태에 따르면, 칩이 제공된다. 이 칩은 라디오 주파수 컴포넌트를 사용하여 네트워크 디바이스에 대한 데이터 접속을 확립하고, 이 칩은 애플리케이션 프로세서 및 기저대역 프로세서를 포함하며; 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성되고, 여기서 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함하며; 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하도록 구성되고, 여기서 제2 패킷은 제1 패킷과 동일하며; 기저대역 프로세서는 라디오 주파수 컴포넌트를 사용하여 제2 패킷을 네트워크 디바이스에게 송신하도록 추가로 구성된다.
제3 양태는 제2 양태의 특정 제품 형태이다. 제3 양태의 다양한 구현들, 설명들, 및 기술적 효과들에 대해서는, 제2 양태를 참조하고, 상세들이 본 명세서에서 또다시 설명되지 않는다.
제4 양태에 따르면, 단말이 제공된다. 이 단말은 애플리케이션 프로세서, 기저대역 프로세서, 메모리, 및 통신 인터페이스를 포함한다. 애플리케이션 프로세서, 기저대역 프로세서, 및 통신 인터페이스는 메모리에 접속되고; 애플리케이션 프로세서, 기저대역 프로세서, 및 통신 인터페이스는 메모리에 저장된 명령어를 호출함으로써 제1 양태의 구현들 중 임의의 것에서의 방법을 수행한다.
제5 양태에 따르면, 스토리지 매체가 제공되고, 제1 양태의 구현들에 따른 어느 하나의 방법을 구현하기 위한 코드를 저장하도록 구성된다.
제4 양태 및 제5 양태의 다양한 구현들, 설명들, 및 기술적 효과들에 대해서는, 제1 양태를 참조하고, 상세들이 본 명세서에서 또다시 설명되지 않는다.
본 출원의 기술적 해결책들을 보다 명확하게 설명하기 위해, 이하는 실시예들을 설명하는 데 요구되는 첨부 도면들을 간략히 설명한다. 분명하게도, 이하의 설명에서의 첨부 도면들은 본 출원의 단지 일부를 나타내고, 본 기술분야의 통상의 기술자는 창조적 노력 없이 이러한 첨부 도면들로부터 다른 도면들을 여전히 도출할 수 있다.
도 1은 본 발명의 일 실시예에 따른 시스템의 네트워킹의 개략 다이어그램이다;
도 2는 본 발명의 일 실시예에 따른 단말의 하드웨어 구조의 개략 다이어그램이다;
도 3은 본 발명의 일 실시예에 따른 단말의 소프트웨어 아키텍처의 개략 다이어그램이다;
도 4는 본 발명의 일 실시예에 따른 TCP 패킷 포맷의 개략 다이어그램이다;
도 5는 본 발명의 일 실시예에 따른 패킷 송신 방법의 개략 다이어그램이다;
도 6은 본 발명의 일 실시예에 따른 패킷 송신 장치의 개략 다이어그램이다;
도 7은 본 발명의 일 실시예에 따른 단말의 개략 다이어그램이다; 그리고
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 송신단과 수신단 사이의 패킷 전송 동안의 캡슐화 프로세스의 개략 다이어그램이다.
도 1은 본 발명의 일 실시예에 따른 시스템의 네트워킹의 개략 다이어그램이다;
도 2는 본 발명의 일 실시예에 따른 단말의 하드웨어 구조의 개략 다이어그램이다;
도 3은 본 발명의 일 실시예에 따른 단말의 소프트웨어 아키텍처의 개략 다이어그램이다;
도 4는 본 발명의 일 실시예에 따른 TCP 패킷 포맷의 개략 다이어그램이다;
도 5는 본 발명의 일 실시예에 따른 패킷 송신 방법의 개략 다이어그램이다;
도 6은 본 발명의 일 실시예에 따른 패킷 송신 장치의 개략 다이어그램이다;
도 7은 본 발명의 일 실시예에 따른 단말의 개략 다이어그램이다; 그리고
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 송신단과 수신단 사이의 패킷 전송 동안의 캡슐화 프로세스의 개략 다이어그램이다.
본 출원은 패킷 송신 방법 및 장치, 칩, 및 단말을 제공한다. 이하는, 본 출원의 기술적 해결책들을 본 출원의 첨부 도면들을 참조하여 명확하게 설명한다. 분명하게도, 설명된 실시예들은 본 출원의 전부가 아닌 일부에 불과하다. 창조적 노력 없이 본 출원에 기초하여 본 기술분야의 통상의 기술자에 의해 획득되는 모든 다른 실시예들은 본 발명의 보호 범위 내에 속한다.
이하는 본 출원의 일부 기술 용어들이다:
혼잡 윈도는 혼잡 제어의 경우에 TCP 데이터 전송 동안 하나의 RTT 시간 기간 내에 데이터의 소스 엔드(source end)에 의해 송신될 수 있는 데이터 패킷들의 최대 수량이다. 혼잡 윈도 백오프는 네트워크가 혼잡할 때 데이터의 소스 엔드가 혼잡 윈도를 감소시킨다는 것을 의미한다.
모바일 통신 서비스들은 데이터 서비스(Data Service)와 음성 서비스로 분류된다. 데이터 서비스는 모바일 통신 CS(Circuit Switched, 회선 교환) 도메인 음성 서비스들 이외의 다른 서비스들을 포함한다. 데이터 접속은 단말과 기지국 사이의 데이터 접속으로서 이해될 수 있으며, 단말과 기지국 사이에 있고 데이터 서비스를 프로세싱하는 데 사용되는 접속을 나타낸다. 단말과 기지국 사이의 데이터 접속이 이용가능하다는 것은 단말이 데이터 서비스를 프로세싱하는 데 셀룰러 네트워크를 사용한다는 것, 즉 단말이 셀룰러 네트워크 내의 기지국으로부터 신호를 수신할 수 있고, 단말이 기지국과 데이터 서비스에서의 데이터 또는 지시를 교환하는 기능을 사용할 수 있다는 것을 나타내며, 데이터 및 지시는 데이터 서비스에 관한 것이다. 단말과 기지국 사이의 데이터 접속이 이용불가능하다는 것은 단말이 데이터 서비스를 프로세싱하는 데 셀룰러 네트워크를 사용할 수 없다는 것, 즉 단말이 셀룰러 네트워크로부터 신호를 수신할 수 없거나, 단말이 음성 서비스를 프로세싱할 필요가 있고 따라서 이와 동시에 셀룰러 네트워크 내의 기지국과 데이터 서비스에서의 데이터 또는 지시를 교환할 수 없다는 것을 나타낸다. 현재, 단말의 데이터 접속이 이용불가능한 기지의 경우는: 단말이 접속해제된 상태에 있음; 단말이 임의의 서빙 셀에 정상적으로 캠프 온하지 못함; 단말의 데이터 서비스가 디스에이블된 상태에 있음; 또는 2G로의 회선 교환 도메인의 폴백(Circuit Switched Fallback, CSFB)의 경우에 단말이 2G 호 시나리오에 있음을 포함한다.
송신될 패킷은 단말에 의해 기지국으로 송신되어야 하는 패킷이며, 보통 단말 상에서 실행 중인 애플리케이션에 의해 생성되어 기지국으로 송신될 필요가 있는 데이터를, 프로토콜 스택을 사용하여, 캡슐화함으로써 획득되는 TCP 패킷이다. 송신될 패킷 내의 데이터는 사용자의 일부 액션들 또는 거동으로 인해 생성될 수 있다. 예를 들어, 애플리케이션은 브라우저이다. 사용자는 브라우저 상에 디스플레이된 링크를 탭핑하거나, 웹 사이트의 계정 또는 패스워드를 입력한다. 링크 상의 데이터 또는 사용자에 의해 입력된 계정 또는 패스워드는 브라우저가 기지국으로 송신할 필요가 있는 데이터이다. 송신될 패킷 내의 데이터는 대안적으로 태스크를 실행하기 위해 애플리케이션에 의해 실행 중인 프로세스에서 생성될 수 있다. 예를 들어, 애플리케이션은 브라우저이다. 홈페이지 상에서 뉴스 윈도를 주기적으로 리프레시하기 위해, 브라우저는 기지국으로 송신될 필요가 있는 요청 데이터를 생성한다. 프로토콜 스택을 사용하여 데이터를 캡슐화함으로써 획득된 패킷은 단말의 라디오 주파수 컴포넌트(예를 들어, 안테나)를 사용하여 단말에 의해 송신되기 전에 송신될 패킷이다. 본 기술분야의 통상의 기술자는 단말이 송신될 패킷을 생성하거나 결정할 수 있다는 것을 이해해야 한다. 송신될 패킷을 생성하는 방식이 본 발명에서 제한되지 않는다.
동일성(sameness): 본 출원에서의 동일성은 정확한 동일성(exact sameness) 또는 본질적 동일성(essential sameness)을 나타낸다. 예를 들어, 제1 패킷과 제2 패킷이 TCP 패킷일 때, 제1 패킷이 제2 패킷과 동일하다는 것은 제1 패킷과 제2 패킷이 적어도 데이터 부분, 소스 포트 번호, 및 목적지 포트 번호와 같은 정보 면에서 동일하다는 것을 나타낸다. 제2 패킷은 제1 패킷의 사본으로서 이해될 수 있으며, 제1 패킷과 제2 패킷의 패킷 헤더들 또는 패킷 트레일러들 사이의 무시할 수 있는 차이들을 허용한다. 이러한 차이들은 일부 이유들, 예를 들어, 타임스탬프들이 상이하거나, 일부 랜덤하게 생성된 값들이 상이한 것으로 인해 패킷의 생성 동안 단말에 의해 생성될 수 있다.
본 출원에서 제공되는 기술적 해결책들은 전형적으로 무선 통신 시스템, 예를 들어, 모바일 통신을 위한 글로벌 시스템(GSM, Global System of Mobile communication) 네트워크, 코드 분할 다중 액세스(CDMA, Code Division Multiple Access) 네트워크, 시분할-동기 코드 분할 다중 액세스(TD-SCDMA, Time Division-Synchronous Code Division Multiple Access) 네트워크, 광대역 코드 분할 다중 액세스(WCDMA, Wideband Code Division Multiple Access Wireless) 네트워크, 일반 패킷 라디오 서비스(GPRS, General Packet Radio Service) 네트워크, 롱텀 에볼루션(LTE, Long Term Evolution) 네트워크, 소프트웨어 정의 네트워크(SDN, Software Defined Network), 또는 무선 센서 네트워크(Wireless Sensor Network)에 적용될 수 있다.
도 2는 본 발명의 일 실시예에 따른 통신 시스템(100)의 단순화된 블록 다이어그램이다. 통신 시스템(100)은 본 발명의 응용 시나리오로서만 사용된다. 이것은 본 발명의 응용 시나리오에 대한 제한으로 해석되어서는 안된다.
본 발명의 명세서, 청구범위, 및 첨부 도면에서, 용어들 "제1", "제2", "제3", "제4", 또는 이와 유사한 것(존재하는 경우)은 유사한 객체들을 구별하도록 의도되어 있지만, 반드시 특별한 순서 또는 시퀀스를 나타내는 것은 아니다.
도 2에 도시된 바와 같이, 통신 시스템(100)은 단말(10), 액세스 포인트(11), 게이트웨이(12), 광역 네트워크(13), 및 서버(20)를 포함한다. 본 발명의 이 실시예에서의 단말(10)은 모바일 단말(Mobile Terminal), 예를 들어, 모바일 폰, 태블릿 컴퓨터, 스포츠 촬영 디바이스, 또는 노트북 컴퓨터와 같은 휴대용, 웨어러블, 또는 차량내 모바일 디바이스일 수 있거나, 셀룰러 네트워크에 액세스할 수 있는 컴퓨터 또는 서버와 같은 디바이스, 또는 심지어 셀룰러 네트워크에 액세스할 수 있는 라우터 또는 게이트웨이와 같은 네트워크 디바이스, 예를 들어, SIM(Subscriber Identification Module, 가입자 식별 모듈) 카드를 사용할 수 있는 라우터 또는 게이트웨이일 수 있다. 모바일 폰이 본 발명의 이 실시예에서 설명을 위한 일 예로서 사용된다. 서버(20)는 애플리케이션 서버, 서버 에이전트, 데이터 센터 서버, 또는 라우터 또는 게이트웨이와 같은 네트워크 디바이스일 수 있다.
본 기술분야의 통상의 기술자는 통신 시스템이 보통 도 2에 도시된 것들보다 적거나 많은 컴포넌트들을 포함하거나, 도 2에 도시된 것들과 상이한 컴포넌트들을 포함할 수 있다는 것을 이해할 수 있다. 도 2는 본 발명의 이 실시예에 개시된 구현에 더 관련된 컴포넌트들만을 도시한다. 예를 들어, 비록 도 2가 하나의 서버(20)를 도시하지만, 본 기술분야의 통상의 기술자는 하나의 통신 시스템이 임의의 수량의 서버들을 포함할 수 있다는 것을 이해할 수 있다.
광역 네트워크(13)는 공중 네트워크, 전용 네트워크, 또는 인터넷의 일부, 및/또는 이들의 임의의 조합을 포함할 수 있다. 액세스 포인트는 기지국, 무선 로컬 영역 네트워크(WLAN) 액세스 포인트, 또는 다른 형태의 액세스 포인트일 수 있다. 게이트웨이(12) 및 액세스 포인트(11)는 무선 네트워크에 포함될 수 있다. 간략함을 위해, 무선 네트워크의 다른 부분들은 설명되지 않는다.
도 2는 단말(10)의 하드웨어 구조를 추가로 도시하고 있다. 도 2에 따르면, 단말(10)은 애플리케이션 프로세서(110), 메모리(120), 통신 서브시스템(130), 및 전력 관리 서브시스템(140)을 포함한다. 메모리(120)는 실행가능 프로그램을 저장하고, 실행가능 프로그램은 운영 체제 및 애플리케이션 프로그램을 포함한다. 애플리케이션 프로세서(Application Processor)(110)는 운영 체제 및 애플리케이션 프로그램을 실행하도록 구성된 프로세서이다.
일 실시예에서, 애플리케이션 프로그램은 웹 브라우저이고, 서버(20)는 웹 콘텐츠 제공자의 서버이다. 다른 실시예에서, 애플리케이션 프로그램은 온라인 비디오 플레이어이고, 서버(20)는 비디오 콘텐츠 제공자의 서버이다. 다른 실시예에서, 애플리케이션 프로그램은 인스턴트 메시징 소프트웨어이고, 서버(20)는 인스턴트 메시징 서비스 제공자의 서버이다.
통신 서브시스템(130)은 주로 기저대역 프로세싱, 변조 및 복조, 신호 증폭 및 필터링, 및 밸런싱과 같은 기능들을 구현한다. 통신 서브시스템(130)은 라디오 주파수 모듈(132), 안테나(133), 및 무선 모뎀(Modem)이라고도 지칭되는 기저대역 프로세서(Baseband Processor, BP)(131)를 포함한다. 기저대역 프로세서(131)와 Wi-Fi 모듈(150)이 하나의 칩에 통합될 수 있음에 유의해야 한다. 그에 부가하여, 기저대역 프로세서(131)와 애플리케이션 프로세서(110)는 하나의 칩에 통합될 수 있거나, 각각이 독립적인 칩일 수 있다. 도 2는 예시적인 표현에 불과하다. 전력 관리 서브시스템(140)은 시스템에 전력을 공급하도록 구성된다.
메모리(120)는 보통 내부 메모리와 외부 스토리지를 포함한다. 내부 메모리는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 캐시(CACHE), 또는 이와 유사한 것일 수 있다. 외부 스토리지는 하드 디스크, 광학 디스크, USB 플래시 드라이브, 플로피 디스크, 테이프 드라이브, 또는 이와 유사한 것일 수 있다. 실행가능 프로그램은 보통 외부 스토리지에 저장되고, 애플리케이션 프로세서(110)는 실행가능 프로그램을 외부 스토리지로부터 내부 메모리로 로딩한 후에 프로그램을 실행한다.
임의로, 단말(10)은 Wi-Fi(Wireless Fidelity, 와이어리스 피델리티) 모듈(150)을 추가로 포함하고, Wi-Fi 모듈(150)은 IEEE 802.11 시리즈의 프로토콜들을 지원하며, 단말(10)은 Wi-Fi 모듈(150)을 사용하여 WLAN에 액세스할 수 있다.
임의로, 단말(10)은 사용자에 의해 입력된 정보 또는 사용자를 위해 제공된 정보, 및 단말(10)의 다양한 메뉴 인터페이스들을 디스플레이하도록 구성되는 디스플레이(160)를 추가로 포함한다. 디스플레이(160)는 액정 디스플레이(Liquid Crystal Display, LED), 유기 발광 다이오드(Organic Light-Emitting Diode, OLED), 또는 이와 유사한 것일 수 있다. 일부 다른 실시예들에서, 터치 패널은 터치 디스플레이 스크린을 형성하기 위해 디스플레이(160)를 커버할 수 있다.
그에 부가하여, 단말(10)은 사진 또는 비디오를 촬영하기 위한 카메라(180), 및 중력 센서, 가속도 센서, 또는 광학 센서와 같은 하나 이상의 센서(170)를 추가로 포함할 수 있다.
그에 부가하여, 본 기술분야의 통상의 기술자는 단말(10)이 도 2에 도시된 것들보다 적거나 많은 컴포넌트들을 포함할 수 있다는 것과, 도 2에 도시된 단말(10)에서, 본 발명의 이 실시예에 개시된 복수의 구현들에 더 관련된 컴포넌트들만이 도시되어 있다는 것을 이해할 수 있다.
이하는 단말(10)의 하드웨어 및 소프트웨어 환경을 추가로 설명한다. 단말(10)은, 로직 레벨들에 따라, 하드웨어 계층, 운영 체제, 및 운영 체제 위에서 실행되는 애플리케이션 계층(사용자 모드라고도 지칭됨)으로 분할될 수 있다. 하드웨어 계층은 도 2에 관련된 실시예에서 설명된 하드웨어, 예를 들어, 애플리케이션 프로세서(110), 메모리(120), 및 Wi-Fi 모듈(150)을 포함한다. 운영 체제는 Android® 운영 체제, Linux® 운영 체제, Windows 운영 체제, 또는 다른 타입의 운영 체제일 수 있다. 이것이 본 발명의 이 실시예에서 제한되지 않는다.
일 실시예에서, 운영 체제는 프레임워크(Framework) 계층, 커널 모드, 및 드라이버 계층을 포함한다. 드라이버 계층은 센서 드라이버, Wi-Fi 드라이버, 및 디스플레이 드라이버와 같은 하드웨어 디바이스의 드라이버를 포함한다. 커널 모드는 TCP 프로토콜 스택, IP 프로토콜 스택, 및 이와 유사한 것을 포함한다. 이하는 본 발명의 이 실시예에서의 방법 절차를 참조하여 커널 모드를 추가로 설명한다. 프레임워크 계층은 사용자 모드와 커널 모드 사이의 통신을 위한 인터페이스들, 및 일부 서비스들, 예를 들어, 그래픽 서비스(Graphic Service)(224), 시스템 서비스(System service)(221), 웹 서비스(Web Service)(222), 및 사용자 서비스(User Service)(223)와 같은 애플리케이션 계층에서 실행 중인 애플리케이션들을 포함한다. 이러한 애플리케이션들은 보통 디스플레이를 사용하여 사용자와 직접 상호작용할 수 있으며, 이러한 애플리케이션들은 갤러리, 미디어 플레이어(media player), 브라우저(browser), 위챗(WeChat), 또는 이와 유사한 것이다. 운영 체제에서의 애플리케이션 프로그램 및 애플리케이션 계층에서의 애플리케이션 프로그램은 실행가능 프로그램들로서 메모리(120)에 저장될 수 있다. 본 발명의 이 실시예에서 사용되는 용어 "프로그램"은 명령어, 명령어 세트, 코드, 코드 세그먼트, 서브루틴, 소프트웨어 모듈, 애플리케이션, 소프트웨어 패키지, 스레드, 프로세스, 함수, 펌웨어, 미들웨어, 및 이와 유사한 것을 포함하지만 이들로 제한되지 않는 것으로 넓게 해석되어야 한다. 도 2에 도시된 바와 같이, 단말(10)은 통신 서브시스템(130)을 사용하여 셀룰러 네트워크에 액세스하고, 이어서 광역 네트워크(13)를 사용하여 서버(20)와 통신할 수 있다. 다른 실시예에서, 단말(10)은 또한 Wi-Fi 모듈(150)을 사용하여 WLAN에 액세스하고, 이어서 광역 네트워크(13)를 사용하여 서버(20)와 통신할 수 있다. 구체적으로는, 네트워크에 액세스한 후에, 단말(10)은 TCP/IP 프로토콜 스택(TCP 프로토콜 스택 및 IP 프로토콜 스택)을 사용하여 서버(20)에 대한 TCP 접속을 확립하고, 이어서 TCP 접속을 사용하여 데이터를 전송할 수 있다. TCP/IP 프로토콜 스택은 TCP/IP 참조 모델에서 정의된 TCP/IP 프로토콜 스위트를 구현하는 데 사용되는 미들웨어이다. TCP 프로토콜 스택은 단말(10) 상의 소프트웨어, 하드웨어, 및/또는 펌웨어의 적절한 조합에 의해 실행될 수 있다. TCP/IP 프로토콜 스위트는 2개의 핵심 프로토콜: TCP(전송 제어 프로토콜) 및 IP(인터넷 프로토콜)를 포함한다. 단말(10)과 서버(20) 사이의 TCP 접속의 확립은 단말(10) 상에서 실행 중인 애플리케이션 프로그램에 의해 개시될 수 있다. 도 3에서의 브라우저(213)가 일 예로서 사용된다. 브라우저(213)는 소켓 오픈(socket open) 커맨드를 생성하고, 이 커맨드는 3-웨이 메시지 교환("3-웨이 핸드셰이크"라고도 지칭됨)에 의해 서버(20)에 대한 TCP 접속을 확립하도록 TCP 프로토콜 스택을 트리거링하기 위해 단말(10)의 TCP 프로토콜 스택으로 전송된다. 이어서, TCP 프로토콜 스택은 접속이 확립되었음을 브라우저(213)에 통지한다.
이어서, TCP 패킷이 확립된 TCP 접속에 기초하여 브라우저(213)와 서버(20) 사이에서 전송될 수 있다. TCP 패킷 포맷이 도 4에 도시되어 있다. 소스 포트 및 목적지 포트는 송신단 및 수신단의 애플리케이션 프로세스들을 결정하도록 구성되고, TCP 접속은 소스 포트, 목적지 포트, 소스 IP 어드레스, 및 목적지 IP 어드레스를 사용하여 고유하게 결정될 수 있다. TCP 패킷 헤더 내의 시퀀스 번호(Sequence Number, 보통 줄여서 seq라고 지칭됨) 필드는 패킷 로드에서의 제1 데이터 바이트의 시퀀스 번호를 운반한다. TCP 패킷을 수신한 후에, 수신단은 확인응답(Acknowledgement, 줄여서 ACK) 패킷을 송신단으로 송신한다. ACK 헤더의 확인응답 번호(Acknowledgement Number, 보통 줄여서 ack라고 지칭됨) 필드 값은 수신단에 의해 수신된 패킷의 "Sequence Number" 필드의 값을 나타내고, 수신단이 "Sequence Number" 값들이 ACK 패킷의 "Acknowledgement Number"의 값보다 작은 모든 패킷들을 수신했음을 또한 의미한다. 윈도 크기는 수신단의 현재 수신 버퍼의 크기를 나타내는 데 사용된다. 그에 부가하여, TCP 패킷 헤더는 6개의 플래그 비트 및 하나의 커스터마이즈가능 옵션(Option) 필드를 가지며, 옵션 필드는 부가 정보를 운반하는 데 사용될 수 있고, 6개의 플래그 비트의 정의들은 다음과 같다:
URG는 긴급 포인터가 유효함을 나타낸다.
ACK는 확인응답 번호가 유효함을 나타낸다.
PSH는 데이터를 프로세싱을 위해 애플리케이션 계층으로 즉시 푸시하는 것을 나타낸다.
RST는 비정상적 재설정을 나타낸다.
SYN은 동기화 플래그이며, SYN이 1로 설정될 때 접속이 확립된다.
FIN은 접속을 해제하도록 요청하는 데 사용되는 종료 플래그(finish flag)이다.
이하는 TCP 재전송 메커니즘 및 혼잡 제어 메커니즘을 간략하게 설명한다. 설명 간소화를 위해, 본 출원의 일부에서 통신 접속이 확립된 2개의 디바이스 중 하나는 송신단이라고 지칭되고, 다른 하나는 수신단이라고 지칭된다. 송신단 및 수신단 각각이 데이터 수신 및 전송 능력을 가지는 임의의 디바이스일 수 있음이 이해될 수 있다. 예를 들어, 송신단은 서버(20)일 수 있고, 수신단은 단말(10)일 수 있다. 그에 부가하여, 송신단과 수신단은 2개의 상대적인 역할이고, 상호교환가능할 수 있으며, 즉, 상이한 시나리오들에서, 동일한 디바이스가 송신단일 수 있거나 수신단일 수 있다.
TCP 재전송 메커니즘은 패킷들의 신뢰성 있는 전송을 보장하며, 재전송 메커니즘은 주로 타임아웃 재전송 및 고속 재전송을 포함한다. 타임아웃 재전송의 기본 프로세스는 다음과 같다: 패킷을 송신한 후에, 송신단은 타임아웃 타이머를 시작하고, 타임아웃 타이머가 만료된 후에, 송신단이 패킷이 올바르게 수신되었음을 나타내는 확인응답 패킷을 여전히 수신하지 않는 경우, 송신단은 패킷을 재송신한다. 타임아웃 타이머의 값은 보통 RTO(Retransmission Timeout)로서 표현된다. RTO는 보통 RTT(Round Trip Time), 즉 패킷을 송신하는 것으로부터 패킷에 대한 확인응답을 수신하는 것까지 소요된 시간으로서 설정된다. RTT는 샘플링에 의해 획득될 수 있다.
그렇지만, 무선 통신 시스템이 단말을 위한 서비스를 제공하고, 기술들의 발전에 따라, 단말이 보통, 2G, 3G, 및 4G 네트워크들과 같은, 복수의 타입들의 통신 프로토콜들을 지원한다는 것이 이해되어야 한다. 단말 위치의 변화와 같은 이유들로, 네트워크가 보통 불안정해지거나 신호 강도가 변한다. 예를 들어, 엘리베이터 또는 지하 주차장과 같은, 약한 신호를 갖는 영역에서, 단말이 초고속 열차(bullet train) 또는 고속 철도와 같은 빠르게 이동하는 교통 수단에 있는 시나리오에서, 네트워크 신호 불안정으로 인해 단말의 네트워크 접속 상태가 변한다. 예를 들어, 단말이 상이한 타입들의 셀룰러 네트워크들에서, 예를 들어, LTE로부터 WCDMA로 핸드오버될 수 있거나, 어떤 시간 기간 내에서, 단말이 네트워크로부터 접속해제되고 네트워크에 재접속될 수 있으며, 이러한 타입의 변화는 심지어 어떤 기간에서 빈번하다. 그러한 시나리오에서, 단말이 송신단으로서 사용될 때, 셀룰러 네트워크로 송신되어야 하는 패킷의 송신 동안, 단말의 모뎀은 패킷을 폐기할 수 있다. 이 경우에 야기되는 패킷 손실은 능동 패킷 폐기(active packet discard)라고도 지칭될 수 있다. 따라서, 능동 패킷 폐기는 셀룰러 네트워크를 사용하는 단말 상에서 종종 발생한다.
능동 패킷 폐기가 패킷이 전송을 위해 네트워크에 진입하기 전에 발생하는 거동이며 네트워크 전송 프로세스에서 데이터가 손실되지 않는다는 것을 알 수 있다. 전술한 설명에 따르면, TCP 재전송 메커니즘에서, 패킷 손실 원인들이 구별되지 않는다. 보통, 네트워크 측으로부터의 피드백이 수신된 후에 재전송이 수행될 필요가 있으며, 따라서 모바일 단말은 능동 패킷 폐기에 응답할 때 상대적으로 큰 지연을 갖는다. 본 발명의 이 실시예에서, 능동 패킷 폐기에 대한 모바일 단말에 의한 응답의 지연을 감소시키기 위해, 애플리케이션 프로세서(110)에서의 TCP 프로토콜 스택이 기저대역 프로세서(131)에서의 송신될 데이터의 패킷 손실을 감지할 수 있도록, 최적화가 주로 수행된다. 본 발명의 이 실시예에서의 방법이 패킷 재전송 메커니즘을 포함하는 다른 신뢰성 있는 전송 프로토콜에 또한 적용가능하다는 것이 이해될 수 있다. 본 발명의 이 실시예에서, TCP 패킷이 설명을 위한 일 예로서 사용된다.
도 3은 본 발명의 이 실시예에서 데이터를 프로세싱하기 위해 도 1에서의 애플리케이션 프로세서(110) 및 기저대역 프로세서(131)가 협력하는 프로세스에서 사용되는 소프트웨어 아키텍처를 추가로 도시한다. 애플리케이션 프로세서(110)는 프로세서 코어로서 간주될 수 있고, 기저대역 프로세서(131)(모뎀이라고도 지칭됨)는 다른 프로세서 코어로서 간주된다. 소프트웨어 아키텍처는 2개의 코어 사이의 데이터 통신을 위한 메커니즘을 지원할 수 있다. 2개의 코어 사이의 통신은 특정 인터-코어 통신 프로토콜을 준수한다. 인터-코어 통신 프로토콜의 타입이 본 발명의 이 실시예에서 제한되지 않는다. 본 발명의 이 실시예에서의 단말이 데이터 패킷을 네트워크 측 디바이스에게 송신하기 위해 데이터의 소스 엔드로서 사용되는 프로세스가 도 3을 참조하여 간단히 설명된다. 애플리케이션 프로세서(110)에서, 애플리케이션 계층에서의 애플리케이션(APP, application)이 TCP 접속의 소스 엔드의 소켓 인터페이스를 사용하여 커널(커널 모드라고도 지칭됨)의 TCP 프로토콜 스택 및 IP 프로토콜 스택을 통해 데이터 패킷을 전송한 후에, 인터-코어 통신을 위해 사용되는 애플리케이션 프로세서(110) 및 모뎀의 각자의 태스크들(스레드들로서 또한 이해될 수 있는 태스크들)은 데이터 패킷을 모뎀에서의 (태스크 또는 스레드라고도 이해될 수 있는) 3GPP(3rd Generation Partnership Project, 제3 세대 파트너십 프로젝트) 프로토콜 스택으로 전송하는 데 사용되고, 이어서 3GPP 프로토콜 스택은 통신 서브시스템(130)에서의 하드웨어를 사용하여 단말로부터 데이터 패킷을 송신한다. 3GPP 프로토콜 스택은 하나 이상의 통신 프로토콜을 데이터 링크 계층 및 물리 계층에서 운반하는 데 사용된다. 통신 프로토콜들은, 주로 다양한 셀룰러 네트워크들에 대해 사용되는 통신 프로토콜들이고 3G 네트워크의 다양한 통신 프로토콜들로 제한되지 않으며, 예를 들어, GSM, CDMA, 또는 LTE일 수 있다. 이것이 본 발명에서 제한되지 않는다. 본 발명의 이 실시예에서, 단말의 커널의 타입은 단말의 운영 체제의 타입에 의해 결정되며, 본 발명에서 제한되지 않는다. 예를 들어, 커널은 Linux 커널(Android 커널) 또는 Windows 커널일 수 있다. 일 구현에서, 애플리케이션 프로세서(110)와 모뎀 사이에서 (데이터 패킷과 같은) 상대적으로 큰 데이터를 전송하는 데 사용되는 인터-코어 통신 태스크들은 애플리케이션 프로세서(110)와 모뎀 사이에서 상대적으로 작은 데이터 볼륨을 갖는 (하트비트 정보 또는 제어 지시와 같은) 정보를 전송하는 데 사용되는 것들과 상이하다. 추가로, 상대적으로 작은 데이터 볼륨을 갖는 정보를 전송하는 데 사용되는 인터-코어 통신 태스크는 다음과 같이 구현될 수 있다: 하나의 태스크가 애플리케이션 프로세서(110) 및 기저대역 프로세서(131) 각각에서 실행되고, 상대적으로 작은 데이터 볼륨을 갖는 정보는 2개의 태스크 사이에서 전송될 수 있으며, 2개의 프로세서 사이의 정보 전송은 2개의 태스크 사이의 통신에 의해 구현될 수 있다.
구체적으로는, 모뎀에서, 애플리케이션 프로세서(110)를 사용하여 데이터 패킷을 전송하는 데 사용되는 태스크 및 3GPP 프로토콜 스택은 각자의 데이터 패킷 캐시 큐들을 가지며, 타이머는 보통 이러한 데이터 패킷 캐시 큐들을 모니터링하도록 구성된다. 구체적으로는, 3GPP 프로토콜 스택에서의 상이한 프로토콜들은 보통 상이한 데이터 패킷 캐시 큐들에 대응한다. 예를 들어, PDCP(Packet Data Convergence Protocol, 패킷 데이터 컨버전스 프로토콜) 큐는 LTE 프로토콜에서 사용되고, PDCP 큐 또는 RLC(Radio Link Control, 라디오 링크 제어) 큐는 WCDMA 또는 TD-SCDMA 프로토콜에서 사용된다. 복수의 경우들에서, 데이터 패킷 캐시 큐 내의 데이터 패킷은 모뎀에 의해 능동적으로 폐기되고, 네트워크 디바이스로 송신될 수 없다. 이하는 일부 전형적인 패킷 폐기 시나리오들을 간략하게 나열한다. 본 발명의 이 실시예에서의 패킷 폐기 시나리오들이 이하의 예들로 제한되지 않음이 이해되어야 한다.
예를 들어, 프로세서(110)를 사용하여 데이터 패킷을 전송하는 데 사용되는 모뎀에서의 태스크에서, 애플리케이션 프로세서(110)로부터 데이터 패킷을 수신한 후에, 보통 RRC 접속이 확립되었는지가 결정된다. RRC 접속이 확립된 경우, 수신된 데이터 패킷은 프로세싱을 위해 3GPP 프로토콜 스택으로 전송된다. RRC 접속이 확립되지 않은 경우, 데이터 패킷은 태스크의 큐에 캐싱되고, RRC 접속이 성공적으로 확립된 후에 전송된다. 태스크에서, 데이터 패킷이 캐시 큐에 저장되지 못할 때 데이터 패킷이 폐기되거나, 태스크의 캐시 큐의 타이머가 만료되고 RRC 접속이 여전히 확립되지 못할 때, 캐시 큐 내의 데이터 패킷이 폐기되거나, 태스크에서, 태스크의 데이터 패킷 캐시 큐를 소거하는 데 사용되는 ERABM(E-UTRAN 라디오 액세스 베어러 관리) 메시지가 수신된 후에 캐시 큐 내의 데이터 패킷이 능동적으로 소거된다.
3GPP 프로토콜 스택은, 단말의 데이터 접속이 이용가능한지를 결정하기 위해, 단말이 데이터 서비스를 프로세싱하는 데 셀룰러 네트워크를 사용할 수 없는 것을 야기하는 이벤트를, 검출에 의해, 발견할 수 있다. 예를 들어, 단말이 접속해제된 상태에 있거나, 단말이 임의의 서빙 셀에 정상적으로 캠프 온하지 못하거나, 단말의 데이터 서비스가 디스에이블된 상태에 있거나, 또는 2G로의 회선 교환 도메인의 폴백(Circuit Switched Fallback, CSFB)의 경우에 단말이 2G 호 시나리오에 있다. 전술한 몇 개의 시나리오에서, 단말의 데이터 접속이 이용불가능하다. 단말의 데이터 접속의 이용불가능을 야기하는 이벤트가 본 발명의 이 실시예에서 제한되지 않는다. 대안적으로, 3GPP 프로토콜 스택은, 단말에 의해 수신된 또는 액세스된 셀룰러 네트워크 신호의 강도, 단말에 의해 액세스된 셀룰러 네트워크의 타입, 및 단말이 음성 서비스를 실행 중인지와 같은, 단말이 데이터 서비스를 프로세싱하는 데 셀룰러 네트워크를 사용할 수 있는지를 나타내는 데 사용되는 일부 파라미터들을 수집할 수 있다. 기저대역 프로세서는, 미리 설정된 알고리즘에 따른 계산에 의해, 단말의 현재 데이터 접속이 이용가능한지를 결정한다. 특정 파라미터 및 특정 알고리즘이 본 발명의 이 실시예에서 제한되지 않는다. 전술한 검출 또는 계산은 3GPP 프로토콜 스택에 의해 주기적으로 수행될 수 있거나, 일부 지시들에 의해 트리거링될 수 있거나, 또는 전술한 이벤트에 의해 트리거링될 수 있다. 3GPP 프로토콜 스택이 단말의 데이터 접속이 이용가능한지를 어떻게 결정하는지가 본 발명의 이 실시예에서 제한되지 않는다. 단말이 데이터 서비스를 프로세싱하는 데 셀룰러 네트워크를 사용하는 프로세스에서, RRC(Radio Resource Control, 라디오 리소스 제어) 링크 확립 및 접속해제가 수반되고, 단말과 기지국 사이의 데이터 서비스 상호작용 프로세스에서 종종 수행되며, 실제로 단말과 기지국 사이의 데이터 접속이 이용가능할 때 TCP 접속을 추가로 확립하는 프로세스, 즉 물리 계층(Physical Layer) 및 매체 액세스 제어(Media Access Control) 계층에서의 접속이라는 것이 이해되어야 한다. 따라서, 본 발명의 이 실시예에서, RRC 링크 확립 및 접속해제 둘 다는 단말의 데이터 접속이 이용가능하다는 전제 하에 발생한다. 단말이 데이터 접속이 이용가능한지를 결정하는 것은 RRC 링크 확립 및 접속해제와 무관하다.
그에 부가하여, 3GPP 프로토콜 스택은 하기의 경우들에서 송신될 패킷을 능동적으로 폐기할 수 있다:
단말은 상이한 무선 셀룰러 네트워크들 사이에서 핸드오버된다. 예를 들어, 단말은 LTE 네트워크로부터 WCDMA 네트워크, TD-SCDMA 네트워크, 또는 GSM 네트워크로 핸드오버된다. 이것이 야기될 수 있는데, 그 이유는 단말이 실제 시나리오에서 불안정한 4G 네트워크로 인해 4G 기지국에 접속될 수 없거나, VoLTE(Voice over LTE) 기술이 현재 사용되지 않는 시나리오에서, 음성 통신이 LTE 네트워크에서 시작되기(예를 들어, CSFB 시나리오) 때문이다. 단말이 3G 네트워크 또는 2G 네트워크로 핸드오버될 때, 이러한 이벤트는 L2 계층(즉, MAC 계층, RLC 계층, 및 PDCP 계층을 포함하는 LTE 계층 2)에서 해제를 유발할 수 있다. 예를 들어, PDCP 큐가 해제되고, 모뎀은 PDCP 큐 내의 송신될 패킷을 소거한다. 다른 예에 대해, 단말은 WCDMA 또는 TD-SCDMA로부터 LTE로 핸드오버된다. 이러한 이벤트는 L2 계층에서의 해제를 또한 야기할 수 있다.
네트워크 파라미터의 구성이 부적절하다. 예를 들어, 단말이 LTE 네트워크를 사용할 때, 부적절한 파라미터는 PDCP 재구성을 야기할 수 있으며, 모뎀은 PDCP 큐 내의 송신될 패킷을 소거한다. 단말이 WCDMA 또는 TD-SCDMA 네트워크를 사용할 때, 부적절한 파라미터는 RLC(Radio Link Control, 라디오 링크 제어) 재구성을 야기할 수 있다. RLC 계층은 MAC(Media Access Control, 매체 액세스 제어) 계층 위에 위치되고, MAC 계층과 함께 L2 계층의 일부이며, 모뎀은 송신될 패킷을 소거한다.
단말이 WCDMA 또는 TD-SCDMA 네트워크를 사용할 때, RNC(Radio Network Controller, 라디오 네트워크 제어기) 핸드오버는 RLC 재확립을 야기할 수 있고, 모뎀은 송신될 패킷을 소거한다.
PDCP 큐가 충만하고, 애플리케이션 프로세서(110)에 의해 전달되는 패킷은 큐에 삽입될 수 없으며 모뎀에 의해 폐기된다. 이러한 경우는 LTE 네트워크 또는 WCDMA 또는 TD-SCDMA 네트워크에서 발생할 수 있다.
셀룰러 네트워크에서, 복수의 라디오 베어러들(즉, 3GPP 프로토콜 스택에서 데이터 링크 계층에 의해 확립된 링크들)은 애플리케이션의 복수의 서비스들을 서빙할 수 있다. 보통, 하나의 서비스는 하나의 베어러를 사용한다. 각각의 베어러는 하나의 PDCP 큐에 캐싱된 송신될 패킷에 대응한다. 네트워크 문제로 인해 베어러 상의 서비스가 비정상적으로 중단될 때, 모뎀은 서비스에 대응하는 PDCP 큐 내의 송신될 패킷들을 능동적으로 소거한다.
이해의 편의를 위해, 도 4는 TCP 패킷 포맷의 개략 다이어그램이다.
도 5를 참조하면, 이하는 본 발명의 일 실시예에서 제공되는 패킷 송신 방법을 설명한다. 이 방법은 단말에 적용되며, 단말은 애플리케이션 프로세서, 기저대역 프로세서, 및 통신 인터페이스를 포함하고, 이 방법은 하기의 단계들을 포함한다.
S502. 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하고, 여기서 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷이다.
제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함한다.
기저대역 프로세서에 의해 폐기된 송신될 패킷이 애플리케이션 프로세서에 의해 기저대역 프로세서로 전달되고 기저대역 프로세서에 의해 통신 인터페이스를 사용하여 네트워크 디바이스에게 송신되지 못하는 패킷으로서 또한 이해될 수 있음에 유의해야 한다.
기저대역 프로세서는 복수의 송신될 패킷들을 폐기할 수 있다. 전술한 설명들로부터, 송신될 패킷이 많은 경우들에서 폐기될 수 있음을 알 수 있다. 구체적으로는, 기저대역 프로세서는 폐기된 송신될 패킷에 관한 정보를 기록할 수 있거나, 기저대역 프로세서가 폐기된 송신될 패킷을 결정하기 위해, 송신될 패킷을 폐기하는 것을 야기하는 이벤트, 예를 들어, 상이한 셀룰러 네트워크들 사이의 핸드오버를 모니터링할 수 있다. 기저대역 프로세서가 폐기된 송신될 패킷에 관한 정보를 어떻게 획득하는지가 본 발명의 이 실시예에서 제한되지 않는다.
기저대역 프로세서는 폐기된 송신될 패킷에 관한 정보를 애플리케이션 프로세서에 보고할 수 있다. 설명의 편의를 위해, 제1 패킷이 TCP 패킷인 일 예로서 제1 패킷을 사용하여 설명들이 제공된다. 제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함한다. 일 구현에서, 제1 패킷의 식별자는 제1 패킷의 시퀀스 번호일 수 있다. 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자는 TCP 접속의 소스 포트 번호일 수 있다. (도 4에 도시된 바와 같은) TCP 패킷 포맷에 따르면, 기저대역 프로세서는 송신될 패킷을 프로세싱하는 프로세스에서 파싱에 의해 시퀀스 번호 및 소스 포트 번호를 획득할 수 있다.
본 기술분야의 통상의 기술자는 기저대역 프로세서가 보고될 필요가 있는 패킷에 관한 정보를 결정할 수 있고, 특정 구현은 본 발명의 이 실시예에서 제한되지 않는다는 것을 이해해야 한다. 특정 전송 프로토콜이 TCP 프로토콜로 제한되지 않는다.
일 구현에서, 기저대역 프로세서는 패킷이 폐기된 직후에 애플리케이션 프로세서에 보고하는 것을 수행하는 대신에 폐기된 송신될 패킷에 관한 정보를 보고하기에 적절한 시기를 선택하고 적절한 시기에 복수의 폐기된 패킷들에 관한 정보를 보고할 수 있다. 구체적으로는, 단말의 데이터 접속이 이용가능할 때, 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다. 대안적으로, 단말의 데이터 접속이 이용불가능할 때, 기저대역 프로세서는 제1 패킷에 관한 정보를 캐싱하고, 단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다. 전술한 2가지 방식이 함께 사용될 수 있다는 것이 이해되어야 한다.
기저대역 프로세서의 캐시 큐는 애플리케이션 프로세서에 보고될 정보를 캐싱할 수 있고, 이 정보는 기저대역 프로세서에 의해 폐기된 송신될 패킷에 관한 정보이다.
데이터 접속은 데이터 서비스를 운반하는 데 사용되는 접속이다. 단말의 데이터 접속은 단말과 기지국 사이의 데이터 접속으로서 이해될 수 있다. 상세들에 대해서는, 전술한 설명들을 참조한다.
단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 기저대역 프로세서가 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 것에 유의해야 한다. 이것은 단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환된 후에 기저대역 프로세서가 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고한다는 것을 나타낸다. 동시성이 엄격하게 요구되지는 않는데, 그 이유는 명령어를 판독하고, 관련 동작을 수행하며, 그리고 이와 유사한 것을 하는 데 시간이 걸리기 때문이다. 즉, 단말의 데이터 접속이 이용불가능으로부터 이용가능으로 전환된 이후 상대적으로 짧은 시간 기간(예를 들어, 수 밀리초 또는 수 초) 내에, 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 액션을 완료한다.
이 구현에서, 기저대역 프로세서가 단말의 데이터 접속이 이용가능한지를 결정할 필요가 있다는 것이 이해될 수 있다.
단말이, 주기적 검출, 이벤트 트리거, 지시 트리거, 또는 이와 유사한 것에 의해, 단말의 데이터 접속이 이용가능한지 이용불가능한지를 결정할 수 있다는 것이 이해될 수 있다. 데이터 접속이 이용가능한지를 결정하는 데 사용되는 이벤트, 분석에서 사용되는 특정 분석 프로세스 및 알고리즘, 및 단말의 데이터 접속이 이용가능한지를 결정하도록 기저대역 프로세서를 어떻게 트리거링할지는 본 발명의 이 실시예로 제한되지 않는다. 추가 설명들에 대해서는, 전술한 관련 설명들을 참조한다.
기저대역 프로세서는 애플리케이션 프로세서가 데이터 패킷을 기저대역 프로세서에게 제시간에 재전송하도록 패킷이 폐기되었음을 알 수 있게 해주기 위해 단계(S502)를 수행하고, 기저대역 프로세서는 재전송된 데이터 패킷을 획득하여 데이터 패킷을 수신단에게 송신한다. 따라서, 단말의 데이터 접속이 이용불가능할 때 재전송이 수행되는 경우, 기저대역 프로세서는 또다시 패킷을 능동적으로 폐기하는데, 그 이유는 데이터 접속이 이용불가능하고, 애플리케이션 프로세서의 이러한 재전송이 유효하지 않기 때문이다. 따라서, 데이터 접속이 이용가능할 때에만, 기저대역 프로세서가 폐기된 송신될 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 경우, 재전송 유효성이 개선될 수 있다. 그에 부가하여, 단계(S502)를 수행할 때, 기저대역 프로세서는 애플리케이션 프로세서를 웨이크 업(wake up)할 필요가 있다. 패킷이 폐기된 직후 기저대역 프로세서가 정보를 보고하는 경우, 애플리케이션 프로세서는 빈번히 웨이크 업되고, 따라서 단말의 에너지 소비가 크게 증가된다. 모바일 단말은 보통 배터리를 사용하며, 가능한 한 적은 전력 소비 및 가능한 한 긴 대기 시간을 요구한다. 따라서, 네트워크가 이용가능할 때에만 폐기된 송신될 패킷에 관한 정보가 애플리케이션 프로세서에 보고되는 경우, 단말의 에너지 소비가 감소될 수 있다.
확실하게도, 다른 구현에서, 기저대역 프로세서는 대안적으로 단말의 데이터 접속이 이용가능한지를 고려하지 않고, 재전송될 필요가 있는 패킷에 관한 정보가 일단 결정되면, 이 정보를 애플리케이션 프로세서에 보고할 수 있다. 이것이 본 발명의 이 실시예에서 제한되지 않는다.
S504: 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하고, 여기서 제2 패킷은 제1 패킷과 동일하다.
일 구현에서, 애플리케이션 프로세서는, 제1 패킷에 관한 수신된 정보에 따라, 제1 패킷 및 제1 패킷이 위치되는 TCP 접속의 소스 포트를 포함하는 정보를 획득하고, 애플리케이션 프로세서는 소스 포트를 사용하여 제1 패킷을 기저대역 프로세서에게 재전송한다.
제2 패킷은 제1 패킷의 사본으로서 이해될 수 있다.
TCP 전송 프로토콜에 따라, 송신단의 TCP 프로토콜 스택이 패킷을 하위 계층으로 송신한 후에, 패킷의 사본이 TCP 접속의 큐에 저장된다는 것이 이해되어야 한다. 패킷이 수신단에 의해 성공적으로 수신되었음을 확인응답하기 위해 TCP 접속의 수신단에 의해 반환되는 ACK(Acknowledgement, 확인응답)가 수신될 때까지 패킷의 사본이 삭제되지 않는다. 그렇지 않고, TCP 접속의 수신단에 의해 반환되는 ACK가 수신되지 않으면, 전송 타임아웃의 경우에 재전송을 위해 패킷의 사본이 저장된다. 따라서, 애플리케이션 프로세서는 기저대역 프로세서에 의해 보고되는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 재전송할 수 있다.
S506. 기저대역 프로세서는 통신 인터페이스를 사용하여 제2 패킷을 네트워크 디바이스에게 송신한다.
네트워크 디바이스는 셀룰러 네트워크 내의 기지국 또는 서버와 같은 네트워크 디바이스일 수 있다. 이것이 본 발명의 이 실시예에서 제한되지 않는다.
결론적으로, 송신될 패킷을 폐기한 후에, 기저대역 프로세서는 기저대역 프로세서에 의해 폐기된 송신될 패킷에 관한 정보를, 애플리케이션 프로세서에, 보고할 수 있음으로써, 애플리케이션 프로세서가 기저대역 프로세서에 의해 폐기된 패킷의 사본을, 보고된 정보에 따라 기저대역 프로세서로, 재전달할 수 있도록 한다. 패킷의 타임아웃 타이머가 만료되고 확인응답 패킷이 피어 엔드로부터 수신되지 않은 것으로 결정되기 전에, 패킷이 폐기되고 패킷이 기저대역 프로세서에게 재송신되는 것으로 결정될 수 있다. 이것은 단말과 네트워크 사이의 데이터 전송이 보다 원활하도록, 기저대역 프로세서에 의해 폐기된 송신될 패킷을, 단말에 의해, 재전송하는 것의 지연을 감소시키고, 단말에 의해 패킷 손실에 응답하는 것의 지연을, 어느 정도, 감소시킬 수 있다. 무선 셀룰러 네트워크의 상태가 종종 변경되기 때문에, 기저대역 프로세서가 송신될 패킷을 폐기하는 경우가 빈번하게 발생한다.
그에 부가하여, 앞서 설명된 바와 같이, 일 구현에서, 전력 소비를 고려하여, 단말에 의해 액세스되는 셀룰러 네트워크의 상태가 이용가능할 때까지, 기저대역 프로세서는 폐기된 송신될 패킷에 관한 정보를 보고하지 않는다. 이 경우에, 일부 폐기된 송신될 패킷들에 관한 정보는 보고되기 전에 특정 시간 동안 기다릴 필요가 있다. 이것은 하기의 2가지 경우를 야기할 수 있다: 하나의 경우에, 폐기된 송신될 패킷의 타임아웃 타이머가, 패킷에 관한 정보가 기저대역 프로세서에 의해 보고되기 전에, 만료된다. 이 경우에, 폐기된 패킷과 동일한 패킷이 TCP 접속 및 타임아웃 재전송 메커니즘을 사용하여 재전송되었을 수 있다. 기저대역 프로세서는 폐기된 패킷에 관한 정보를 애플리케이션 프로세서에 더 이상 보고할 필요가 없다. 기저대역 프로세서는 폐기된 패킷과 동일한 수신된 패킷에 따라 폐기된 패킷에 관한 정보를 필터링 제거할 수 있으며, 따라서 전력 낭비 및 단말 트래픽 낭비가 회피될 수 있다. 다른 경우에, 애플리케이션 프로세서가 폐기된 패킷과 동일한 패킷을 전달할 때, 폐기된 패킷의 타임아웃 타이머가 만료된다. 이 경우는 또한 타임아웃 재전송 요구사항을 동등하게 만족시키며, 따라서 TCP 접속을 위한 혼잡 제어 방법이 트리거링될 수 있다.
TCP 재전송 메커니즘이 신뢰성 있는 패킷 전송을 보장할 수 있지만, 종래 기술의 재전송 메커니즘에서, 패킷 손실이 네트워크 혼잡에 의해 야기되는 것이 디폴트로 고려된다는 점에 유의해야 한다. 보통, 네트워크 전송 동안 패킷 손실의 가장 통상적인 원인은 과도하게 과중한 네트워크 로드이다. 네트워크 디바이스는 현재 순간에 네트워크에서 전송될 필요가 있는 데이터 양을 핸들링할 수 없으며, 네트워크 혼잡이 야기되고, 따라서 네트워크에서 전송되는 일부 패킷들이 폐기된다. 따라서, 재전송된 패킷이 피어 엔드에 도달할 성공률을 개선시키기 위해 네트워크에서의 혼잡을 감소시키는 데 재전송 메커니즘과 함께 혼잡 제어 방법이 사용된다. 혼잡 제어 알고리즘은 주로 슬로우 스타트(Slow Start), 혼잡 회피(Congestion Avoidance), 및 이와 유사한 것을 포함한다. 간단히 말하면, 패킷이 손실되고 재전송될 필요가 있음을 알게 될 때, 애플리케이션 프로세서는 단말에 의해 네트워크로 송신되는 패킷들의 수량을 제한하기 위해, 혼잡 윈도(CWND, congestion window)의 값 및 슬로우 스타트 임계치(ssthresh, slow start threshold)와 같은, 일부 파라미터들의 값들을 감소시킨다. 애플리케이션 프로세서는 보통 재전송된 패킷을 기저대역 프로세서에 전달하는 속도 및 후속하는 송신될 패킷을 기저대역 프로세서에 전달하는 속도를 제어하기 위해 조정된 파라미터들을 사용한다.
예를 들어, 패킷 손실이 타임아웃 재전송을 야기하는 경우, 송신단은 슬로우 스타트 임계치를 CWND/2로 감소시키고, 이어서 CWND를 1로 설정하며, 슬로우 스타트 프로세스에 재진입할 수 있다. 다른 예에 대해, 송신단이, ACK에 따라, 패킷이 손실되었다고 결정하고 고속 재전송을 시작하는 경우, 송신단은 혼잡 윈도를 절반으로 감소시키고, 슬로우 스타트 임계치를 업데이트된 혼잡 윈도 크기로 설정할 수 있다. 상이한 알고리즘들에서, 혼잡 윈도 및 슬로우 스타트 임계치를 감소시키는 크기들 및 방식들이 상이하지만, 대부분의 경우들에서, 패킷 폐기 백오프 규칙이 기초로서 사용되며, 즉 송신단이 네트워크에서 패킷이 손실되었다고 결정할 때, 혼잡 윈도 크기 및 슬로우 스타트 임계치가 능동적으로 감소된다는 것이 이해될 수 있다.
그렇지만, 본 발명의 이 실시예에서의 능동 패킷 폐기가 네트워크 혼잡에 의해 야기되지 않기 때문에, 단말에 의해 무선 네트워크로 송신되는 패킷의 수량이 감소될 필요가 없으며, 패킷이 기저대역 프로세서에 의해 능동적으로 폐기되기 때문에, 패킷을 가능한 한 빨리 피어 엔드에게 전송하기 위해, 송신된 패킷들의 특정 수량이 보장될 필요가 있다. 그렇지만, 본 발명의 이 실시예에서의 방법은 기존의 TCP 메커니즘에서 보통 사용되며, CWND가 감소된다는 전술한 문제점은 불가피하다.
따라서, 본 발명의 이 실시예의 일 구현에서, 애플리케이션 프로세서가 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송한 후에, 애플리케이션 프로세서는 보상으로서 혼잡 윈도를 증가시킨다.
예를 들어, CWND가 명시된 초기 값으로 증가될 수 있거나, 혼잡 윈도의 감소가 재전송에 의해 트리거링되기 전에 사용된, 혼잡 윈도의, 값으로 복원될 수 있다. 본 발명의 이 실시예에서, 애플리케이션 프로세서가 혼잡 윈도를 증가시키는 값, 혼잡 윈도를 증가시키기 위해 애플리케이션 프로세서에 의해 사용되는 정책, 및 이와 유사한 것이 제한되지 않는다. 이러한 방식으로, 타임아웃 재전송으로 인한 영향이 제거될 수 있고, 단말에 의해 송신되는 패킷들의 수량이 보장될 수 있으며, 단말의 전송 스루풋이 개선될 수 있다.
다른 실시예에서, 애플리케이션 프로세서 및 기저대역 프로세서(모뎀이라고도 지칭됨)는 심지어 동일한 칩의 동일한 코어에 통합될 수 있으며, 전술한 방법이 그러한 칩에 또한 적용가능하다. 설명의 편의상, 이 구현에서, 칩은 총칭하여 프로세서라고 지칭되며, TCP 프로토콜 스택 및 3GPP 프로토콜 스택은 프로세서 상에서 실행되는 2개의 태스크(또는 스레드)로서 이해될 수 있고, 2개의 태스크는 상이한 프로세스들 또는 동일한 프로세스에 속할 수 있고, TCP 프로토콜 스택 및 3GPP 프로토콜 스택은 스레드들 또는 프로세스들 사이의 통신 메커니즘을 사용하여 정보를 교환한다. 애플리케이션 프로그램이 애플리케이션 프로세서 상에서 추가로 실행된다. 애플리케이션 프로그램은 패킷, 예를 들어, 애플리케이션에 의해 생성된 데이터 또는 사용자 조작에 의해 트리거링되는 애플리케이션 프로그램의 요청을 TCP 프로토콜 스택 및 3GPP 프로토콜 스택을 사용하여 기지국에게 추가로 송신한다. 3GPP 프로토콜 스택은 애플리케이션 프로그램의 폐기된 패킷에 관한, 패킷의 식별자 및 패킷이 위치되는 TCP 접속의 식별자와 같은, 정보를 스레드들 또는 프로세스들 사이의 통신 메커니즘을 사용하여 TCP 프로토콜 스택에게 전송하며, 따라서 TCP 프로토콜 스택은 폐기된 패킷과 동일한 패킷을, 폐기된 패킷에 관한 수신된 정보에 따라 3GPP 프로토콜 스택으로, 전송한다. 프로세서는 3GPP 프로토콜 스택에 의해 수신되고 폐기된 패킷과 동일한 패킷을, 통신 인터페이스를 사용하여 기지국에게, 송신한다. 이 구현에서의 다른 상세들에 대해서는, 전술한 본 출원을 참조한다. 상세들이 본 명세서에서 또다시 설명되지 않는다. 이러한 방식으로, 기저대역 프로세서에 의해 폐기된 패킷을, 단말에 의해, 재전송하는 것의 지연이 감소될 수 있고, 단말과 네트워크 디바이스 사이의 지연이 어느 정도 감소되며, 단말과 네트워크 사이의 데이터 전송이 보다 원활해진다.
애플리케이션 프로세서가, 일 실시예에서 기저대역 프로세서가 송신될 패킷을 폐기한 후에, 재전송을 완료하기 위해 기저대역 프로세서와 어떻게 협력하는지는 일 예로서 Android 시스템을 갖는 단말을 사용하여 도 3에서의 소프트웨어 아키텍처를 참조하여 이하에서 설명된다. 애플리케이션 프로세서와 기저대역 프로세서는 2개의 코어 또는 2개의 독립적인 칩이다. 이 실시예에서, 앞서 언급된 내용에 대해서는, 전술한 설명들을 참조한다. 상세들이 본 명세서에서 또다시 설명되지 않는다.
이 구현에서, 기저대역 프로세서는 3GPP 프로토콜 스택 및 애플리케이션 프로세서와 데이터 패킷을 전송하는 데 사용되는 태스크(줄여서 인터-코어 데이터 전송 태스크라고 지칭됨)를 포함하고, 상대적으로 적은 양의 데이터를 전송하기 위한 인터-코어 통신 태스크를 추가로 포함한다. 애플리케이션 프로세서는 기저대역 프로세서에서의 인터-코어 통신 태스크에 대응하는 다른 인터-코어 통신 태스크, TCP 프로토콜 스택, IP 프로토콜 스택, 및 애플리케이션 프로세서의 애플리케이션 계층에서 실행되는 애플리케이션을 포함한다.
기저대역 프로세서에서의 3GPP 프로토콜 스택은 기저대역 프로세서에 의해 폐기된 송신될 패킷 및 단말에 의해 현재 액세스된 셀룰러 네트워크의 상태를 모니터링한다. 구체적으로는, 3GPP 프로토콜 스택은 폐기된 송신될 패킷을 결정하기 위해, 기저대역 프로세서가 송신될 패킷을 폐기하는 것을 야기하는 이벤트, 예를 들어, 상이한 셀룰러 네트워크들 사이의 핸드오버를 모니터링할 수 있다.
3GPP 프로토콜 스택은 기저대역 프로세서에 의해 폐기된 송신될 패킷에 관한 정보(폐기된 패킷의 시퀀스 번호 및 폐기된 패킷이 위치되는 TCP 접속의 소스 포트 번호를 포함함)를 생성하고 이 정보를 큐에 저장하며, 단말의 데이터 접속이 이용가능한지를 나타내는 정보(접속이 이용가능한지를 나타내는 데 사용되는 일부 파라미터들일 수 있거나, 직접적으로 불 값일 수 있음, 여기서 상이한 값들은 접속이 이용가능한지 또는 이용불가능한지를 나타냄)를 생성하고, 전술한 2가지 타입의 정보를 기저대역 프로세서에서의 인터-코어 통신 태스크에 전송하고, 예를 들어, 이 정보를 공유 메모리를 사용하여 전송한다.
그에 부가하여, 애플리케이션 프로세서와 데이터 패킷을 전송하는 데 사용되는 기저대역 프로세서에서의 태스크에서, 태스크에서 폐기된 패킷이 또한 검출된다. 3GPP 프로토콜 스택과 유사하게, 태스크는 기저대역 프로세서에 의해 폐기된 송신될 패킷에 관한 생성된 정보(폐기된 패킷의 시퀀스 번호 및 폐기된 패킷이 위치되는 TCP 접속의 소스 포트 번호를 포함함)를, 기저대역 프로세서에서의 인터-코어 통신 태스크에 전송하며, 예를 들어, 이 정보를 공유 메모리를 사용하여 전송한다.
인터-코어 통신 태스크는 폐기된 패킷에 관한 획득된 정보를 태스크의 큐를 사용하여 관리한다. 큐가 충만된 경우, 큐는 큐가 충만된 후에 획득되는 폐기된 패킷에 관한 정보를 폐기하고, 인터-코어 통신 태스크는, 3GPP 프로토콜 스택에 의해 제공되는 단말의 데이터 접속에 관한 정보에 따라, 단말의 데이터 접속이 이용가능한지 이용불가능한지를 결정한다.
단말의 데이터 접속이 이용가능할 때, 인터-코어 통신 태스크는 큐에 있는 폐기된 패킷에 관한 정보를 애플리케이션 프로세서에서의 인터-코어 통신 태스크에게 전송하고, 따라서 애플리케이션 프로세서의 TCP/IP 프로토콜 스택이 폐기된 패킷에 관한 정보를 알게 된다.
단말의 데이터 접속이 이용불가능할 때, 인터-코어 통신 태스크의 큐의 타이머가 시작되고, 타이머가 만료될 때, 또다시 3GPP 프로토콜 스택에 의해 제공되는 정보에 따라, 타이머에 의해 시간 설정된 시간 기간 이후에 단말의 데이터 접속이 이용가능한지가 결정된다. 데이터 접속이 이용가능한 경우, 인터-코어 통신 태스크는 큐 내의 폐기된 패킷에 관한 정보를 애플리케이션 프로세서에서의 인터-코어 통신 태스크에게 전송하고, 타이머는 리셋된다. 데이터 접속이 여전히 이용불가능한 경우, 타이머가 리셋되고, 타이머가 다음번에 만료될 때 결정이 수행된다.
애플리케이션 프로세서는, 폐기된 패킷의 시퀀스 번호 및 폐기된 패킷이 위치되는 TCP 접속의 소스 포트 번호를 획득하기 위해, 기저대역 프로세서에 의해 전송되는 폐기된 송신될 패킷에 관한 정보를 파싱한다.
애플리케이션 프로세서는 소스 포트 번호를 사용하여 Linux 네트워크 프로토콜 스택에서의 대응하는 TCP 접속을 찾고, 폐기된 송신될 패킷의 사본을 찾기 위해 폐기된 송신될 패킷의 시퀀스 번호와 TCP 접속의 송신 큐 내의 패킷의 시퀀스 번호를 비교하며, 폐기된 송신될 패킷의 사본을 TCP/IP 프로토콜 스택을 사용하여 기저대역 프로세서에게 송신한다.
그에 부가하여, 애플리케이션 프로세서에 의해 폐기된 송신될 패킷의 사본을 송신하는 프로세스에서 TCP 혼잡 제어가 트리거링된 경우, 예를 들어, 송신될 패킷의 사본이 재전송된 후에, 단말의 CWND가 1로 감소되고, 애플리케이션 프로세서는 현재 CWND 값을 단말의 초기 CWND 값(TCP_INIT_CWND)과 CWND가 1로 감소되기 이전에 사용된 값 중 보다 작은 값으로 설정한다. 이러한 방식으로, 혼잡 윈도의 불필요한 감소가 회피될 수 있어, 타임아웃 재전송으로 인한 영향을 제거하고, 단말의 스루풋을 개선시킬 수 있으며, 따라서 보다 많은 패킷들이 제시간에 송신될 수 있음으로써, 패킷 손실에 대한 재전송에 의해 야기되는 지연을 감소시킬 수 있다.
기저대역 프로세서는 애플리케이션 프로세서에 의해 전송되는 송신될 패킷의 사본을 수신하고, 사본을 안테나와 같은 라디오 주파수 회로를 사용하여 네트워크 디바이스에게 송신한다.
이러한 방식으로, 송신될 패킷을 폐기한 후에, 기저대역 프로세서는 기저대역 프로세서에 의해 폐기된 송신될 패킷에 관한 정보를, 애플리케이션 프로세서에, 보고할 수 있음으로써, 애플리케이션 프로세서가 기저대역 프로세서에 의해 폐기된 패킷을, 보고된 정보에 따라 기저대역 프로세서로, 재전달할 수 있도록 한다. 패킷의 타임아웃 타이머가 만료되고 확인응답 패킷이 피어 엔드로부터 수신되지 않은 것으로 결정되기 전에, 패킷이 폐기되고 패킷이 기저대역 프로세서에게 재송신되는 것으로 결정될 수 있다. 이것은 단말과 네트워크 사이의 데이터 전송이 보다 원활하도록, 기저대역 프로세서에 의해 폐기된 패킷을, 단말에 의해, 재전송하는 것의 지연을 감소시키고, 단말의 재전송 지연을 어느 정도 감소시킬 수 있다. 무선 셀룰러 네트워크의 상태가 종종 변경되기 때문에, 기저대역 프로세서가 송신될 패킷을 폐기하는 경우가 빈번하게 발생한다.
이하는 테스트 결과를 사용하여 전술한 실시예에서의 방법의 효과를 설명한다. 단말의 재전송 메커니즘이 전술한 실시예에서의 방법을 사용하여 개선되고, 따라서 재전송 지연이 상대적으로 크게 감소될 수 있고, 업링크 전송의 데이터 스루풋이 개선된다. 셀룰러 네트워크의 약한 필드 시나리오 및 고속 이동 시나리오를 시연하기 위해, 광저우로부터 선전까지의 고속 철도 상에서 China Unicom의 무선 셀룰러 네트워크를 사용하는 것이 테스팅을 수행하기 위해 선택된다.
전송 지연에 대해, 테스트 툴 iPerf가 사용되고, 샘플링 방식은 애플리케이션 프로세서와 데이터 패킷을 전송하기 위한 태스크에서 야기되는 3GPP 프로토콜 스택에서의 패킷 손실에 대해 능동적으로 보고되는 패킷 전송 지연을 계산하는 것이다. 소스 엔드는 피어 엔드가 서버인 모바일 폰이다. 최적화 이전에, 평균 전송 지연은 대략 75초이다. 최적화 이후에, 평균 전송 지연은 대략 45초이다. 폐기된 패킷에 대한 평균 재전송 지연은 40%만큼 최적화된다.
업링크 전송 스루풋(업링크 전송 방향은 모바일 폰 단말로부터 서버로임)에 대해, 테스트 툴 iPerf가 사용된다. 샘플링 방식은 각각의 iPerf 테스트 동안 카운트되는 평균 스루풋(라운드당 100초 또는 200초이며, 서버 측에서 카운트됨)을 계산하는 것이다. 최적화 이전에, 평균 스루풋은 대략 1.5 Mbps이다. 최적화 이후에, 평균 스루풋은 대략 3.3 Mbps이다. 평균 스루풋은 약 2.2배 증가된다.
본 발명의 일 실시예는 패킷 송신 장치(600)를 추가로 제공하고, 패킷 송신 장치(600)의 개략 구조 다이어그램이 도 6이다. 이 장치는 기저대역 프로세서, 애플리케이션 프로세서, 및 송신기를 포함한다. 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성된다. 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함한다. 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하도록 구성되고, 제2 패킷은 제1 패킷과 동일하다. 기저대역 프로세서는 송신기를 사용하여 제2 패킷을 네트워크 디바이스에게 송신하도록 추가로 구성된다.
일 구현에서, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 것의 관점에서, 기저대역 프로세서는: 장치의 데이터 접속이 이용가능할 때, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성된다.
이 실시예의 전술한 다양한 구현들을 참조하여, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 것의 관점에서, 기저대역 프로세서는: 장치의 데이터 접속이 이용불가능할 때, 제1 패킷에 관한 정보를 캐싱하고, 장치의 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성된다.
이 실시예의 전술한 다양한 구현들을 참조하여, 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송한 후에 RRC하도록 추가로 구성된다.
이 실시예의 전술한 다양한 구현들을 참조하여, 제1 패킷의 식별자는 제1 패킷의 시퀀스 번호이고, 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자는 TCP 접속의 소스 포트 번호이며; 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하는 것의 관점에서, 애플리케이션 프로세서는 소스 포트 번호에 따라 제1 패킷과 동일한 시퀀스 번호를 가지는 제2 패킷을 기저대역 프로세서에게 전송하도록 구성된다.
본 실시예에서의 명사들 및 단계들의 특정 설명들 및 관련된 유익한 효과들에 대해서는, 전술한 설명들을 참조하고, 상세들이 본 명세서에서 또다시 설명되지 않는다는 점에 유의해야 한다.
전술한 방법 실시예들에서 설명된 장치가 셀룰러 네트워크에 의해 제공되는 데이터 서비스를 사용하여 데이터 서비스를 전송하거나 수행하는 임의의 디바이스에 의해 구현될 수 있음이 이해될 수 있다. 본 발명은 전술한 방법 실시예들에서의 방법을 구현하기 위한 단말을 추가로 제공한다. 단말의 개략 구조 다이어그램이 도 7에 단말(300)로서 도시되어 있다. 단말(300)은 프로세싱 회로(302), 및 프로세싱 회로(302)에 접속된 통신 인터페이스(304) 및 스토리지 매체(306)를 포함한다. 도 6의 실시예에서의 송신기가 통신 인터페이스(304)에서의 송신기 회로(318)와 동등하다는 것을 알 수 있다.
프로세싱 회로(302)는: 데이터를 프로세싱하고, 데이터 액세스 및 저장을 제어하며, 커맨드를 송신하고, 동작을 수행하도록 다른 디바이스를 제어하도록 구성된다. 프로세싱 회로(302)는 하나 이상의 프로세서, 하나 이상의 제어기, 및/또는 프로그램을 실행하는 데 사용될 수 있는 다른 구조체로서 구현될 수 있다. 프로세싱 회로(302)는 범용 프로세서, 디지털 신호 프로세서(DSP), 애플리케이션 특정 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그래머블 로직 컴포넌트 중 적어도 하나를 구체적으로 포함할 수 있다. 범용 프로세서는 마이크로프로세서, 및 임의의 종래의 프로세서, 제어기, 마이크로컨트롤러, 또는 상태 머신을 포함할 수 있다. 프로세싱 회로(302)는 대안적으로, DSP 및 마이크로프로세서의 조합과 같은, 컴퓨팅 컴포넌트로서 구현될 수 있다.
본 발명의 이 실시예에서, 프로세싱 회로는 애플리케이션 프로세서(309) 및 기저대역 프로세서(310)를 포함한다.
스토리지 매체(306)는, (하드 디스크, 플로피 디스크, 또는 자기 스트라이프와 같은) 자기 스토리지 디바이스, (DVD(digital versatile disc)와 같은) 광학 스토리지 매체, 스마트 카드, 플래시 메모리 디바이스, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 프로그래밍가능 ROM(PROM), 소거가능 PROM(EPROM), 레지스터, 또는 이들의 임의의 조합과 같은, 컴퓨터-판독가능 스토리지 매체를 포함할 수 있다. 프로세싱 회로(302)가 정보를 판독하고 정보를 스토리지 매체(306)에 기입할 수 있도록, 스토리지 매체(306)는 프로세싱 회로(302)에 커플링될 수 있다. 구체적으로는, 스토리지 매체(306)가 프로세싱 회로(302)에 통합될 수 있거나, 스토리지 매체(306)와 프로세싱 회로(302)가 분리될 수 있다.
통신 인터페이스(304)는 단말(300)과 하나 이상의 무선 네트워크 디바이스(예를 들어, 기지국 또는 서버) 사이의 양방향 통신을 구현하기 위한 회로들 및/또는 프로그램들을 포함할 수 있다. 통신 인터페이스(304)는 하나 이상의 안테나(도 7에 도시되지 않음)에 커플링될 수 있고, 적어도 하나의 수신기 회로(316) 및/또는 적어도 하나의 송신기 회로(318)를 포함한다.
일 실시예에서, 스토리지 매체(306)는 프로토콜 스택 프로그램(320)을 저장하고, 프로세싱 회로(302)는 프로토콜 스택의 기능을 구현하기 위한 프로토콜 스택 프로그램(320)을 실행한다. 프로토콜 스택과 애플리케이션 프로세서(309) 및 기저대역 프로세서(310) 각각 사이의 관계에 대해서는, 도 3에서의 관련된 설명들을 참조한다.
프로토콜 스택은: 애플리케이션 프로그램의 데이터를 TCP/IP 프로토콜 규격에 따라 특정 데이터 포맷의 복수의 패킷들로 캡슐화하고, 복수의 패킷들을 송신기 회로(318)를 사용하여 애플리케이션 서버로 송신하는 데 사용된다. 그에 부가하여, 프로토콜 스택은 애플리케이션 프로그램의 데이터를 최종적으로 획득하기 위해 수신기 회로(316)에 의해 수신된 패킷을 추가로 역캡슐화한다. 프로토콜 스택에 의해 패킷들을 캡슐화하고 역캡슐화하는 프로세스들은 도 8a 및 도 8b에 도시되어 있다. 패킷 캡슐화 프로세스가 본질적으로 프로토콜 스택이 헤더 및/또는 프레임 트레일러를 패킷에 추가하는 프로세스이고, 패킷 역캡슐화 프로세스가 본질적으로 패킷으로부터 헤더 및/또는 프레임 트레일러를 제거하는 프로세스라는 것을 알 수 있다. 통신 인터페이스(304)에 의해 수신된 데이터를 디코딩하고 그리고/또는 역캡슐화한 후에, 프로토콜 스택은 데이터를 상위 계층에서의 애플리케이션 프로그램으로 전송할 수 있거나, 애플리케이션 프로그램의 데이터를 캡슐화하고 이어서 데이터를 통신 인터페이스를 사용하여 다른 디바이스로 송신할 수 있다.
일 실시예에서, 프로토콜 스택은 계층들의 프로토콜들을 구현하기 위해 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 및 애플리케이션 계층을 포함할 수 있다. 예를 들어, 물리 계층은 물리 디바이스 인터페이스 특징, 전송 매체 타입, 전송 속도, 전송 모드, 및 이와 유사한 것을 정의하고, 물리 계층에서의 신호 프로세싱을 구현하는 데 사용된다. 이와 유사하게, 데이터 링크 계층은 데이터 링크 계층의 기능을 구현하는 데 사용되며, 예를 들어, 네트워크 계층에서 생성된 시그널링을 분배하는 것 및 물리 계층에서 생성된 정보를 프로세싱하는 것을 책임지고 있다. 데이터 링크 계층은 MAC 계층, RLC 계층, 및 LLC 계층의 기능들을 구현하도록 제각기 구성된 매체 액세스 제어(Media Access Control, MAC) 계층 모듈, 라디오 링크 제어(RLC) 계층 모듈, 및 논리 링크 제어(LLC) 계층 모듈과 같은, 하나 이상의 서브모듈을 포함할 수 있다. 예를 들어, MAC 계층 모듈은 물리 계층에 의해 제공되는 서비스를 사용하여 상위 계층 프로토콜 데이터를 전송하고 상위 계층과 에어 인터페이스 사이의 데이터 액세스를 관리하도록 구성된다. RLC 계층 모듈은 데이터 세그먼트화 및 재구성을 위해 사용된다. LLC 계층 모듈은 흐름 제어, 시퀀스 제어, 및 에러 제어 기능들을 제공하도록 구성된다. 추가로, 네트워크 계층은 논리 어드레싱 및 라우팅 선택과 같은 기능들을 구현하도록 구성된다. 전송 계층은 포트 어드레싱, 세그먼트화 및 재구성, 접속 제어, 흐름 제어, 및 에러 제어와 같은 기능들을 구현하도록 구성된다. 애플리케이션 계층은 상위 계층에서의 애플리케이션 프로그램을 위한 인터페이스를 제공하도록 구성된다.
본 발명의 이 실시예의 하나 이상의 양태에 따르면, 프로세싱 회로(302)는 프로토콜 스택의 기능을 구현하기 위해, 스토리지 매체(306)에 저장된 프로토콜 스택 프로그램(320)을 실행하도록 구성된다. 애플리케이션 프로세서(309)에서의 프로토콜 스택 및 기저대역 프로세서(310)에서의 프로토콜 스택은 전술한 방법 실시예들에서 단계들 중 일부 또는 전부를 구체적으로 구현한다.
본 발명의 일 실시예는 칩을 추가로 제공한다. 칩은 라디오 주파수 컴포넌트를 사용하여 네트워크 디바이스에 대한 데이터 접속을 확립하고, 칩은 애플리케이션 프로세서 및 기저대역 프로세서를 포함한다. 기저대역 프로세서는 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성된다. 제1 패킷은 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 제1 패킷에 관한 정보는 제1 패킷의 식별자 및 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자를 포함한다. 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하도록 구성되고, 제2 패킷은 제1 패킷과 동일하다. 기저대역 프로세서는 라디오 주파수 컴포넌트를 사용하여 제2 패킷을 네트워크 디바이스에게 송신하도록 추가로 구성된다.
즉, 본 발명의 이 실시예에서 설명된 칩은 실제로 도 7에 도시된 단말에 배치되어 사용되는 프로세싱 회로(302)이다.
일 구현에서, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 것의 관점에서, 기저대역 프로세서는: 칩의 데이터 접속이 이용가능할 때, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성된다.
본 발명의 이 실시예의 전술한 구현을 참조하여, 다른 구현에서, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하는 것의 관점에서, 기저대역 프로세서는: 칩의 데이터 접속이 이용불가능할 때, 제1 패킷에 관한 정보를 캐싱하고, 칩의 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 제1 패킷에 관한 정보를 애플리케이션 프로세서에 보고하도록 구성된다.
본 발명의 이 실시예의 전술한 구현들을 참조하여, 다른 구현에서, 애플리케이션 프로세서는 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송한 후에 혼잡 윈도를 증가시키도록 추가로 구성된다.
본 발명의 이 실시예의 전술한 구현들을 참조하여, 다른 구현에서, 제1 패킷의 식별자는 제1 패킷의 시퀀스 번호이고, 제1 패킷이 전송되는 데 사용되는 TCP 접속의 식별자는 TCP 접속의 소스 포트 번호이며; 제1 패킷에 관한 정보에 따라 제2 패킷을 기저대역 프로세서에게 전송하는 것의 관점에서, 애플리케이션 프로세서는 소스 포트 번호에 따라 제1 패킷과 동일한 시퀀스 번호를 가지는 제2 패킷을 기저대역 프로세서에게 전송하도록 구성된다.
이 실시예에서 설명된 칩의 추가 상세들에 대해서는, 도 8a 및 도 8b에 도시된 단말 및 전술한 칩에 대해 구현될 수 있는 방법의 실시예의 설명들을 참조하며, 상세들이 본 명세서에서 또다시 설명되지 않는다.
본 발명의 일 실시예는 스토리지 매체를 추가로 제공하며, 매체는 본 발명에서 설명된 패킷 송신 방법을 구현하기 위한 코드를 저장하도록 구성된다.
본 출원에서 제공되는 패킷 송신 방법 및 장치가 앞서 상세히 설명되어 있다. 본 명세서에서, 본 발명의 원리 및 구현들을 설명하기 위해 특정 예들이 적용되고, 전술한 실시예들의 설명은 본 발명의 방법 및 핵심 사상을 이해하는 데 도움을 주려고 의도되어 있는 것에 불과하다. 그에 부가하여, 본 기술분야의 통상의 기술자는 본 발명의 사상에 따라 구체적 구현들 및 응용 범위들을 수정할 수 있다. 결론적으로, 본 명세서의 내용이 본 발명에 대한 제한으로서 해석되어서는 안된다.
Claims (20)
- 패킷 송신 방법으로서, 상기 방법은 단말에 적용되고, 상기 단말은 기저대역 프로세서, 애플리케이션 프로세서, 및 통신 인터페이스를 포함하며, 상기 방법은:
상기 기저대역 프로세서에 의해, 제1 패킷에 관한 정보를 상기 애플리케이션 프로세서에 보고하는 단계 - 상기 제1 패킷은 상기 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 상기 제1 패킷에 관한 상기 정보는 상기 제1 패킷의 식별자를 포함함 -;
상기 애플리케이션 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보에 따라 제2 패킷을 상기 기저대역 프로세서에게 전송하는 단계 - 상기 제2 패킷은 상기 제1 패킷과 동일함 -; 및
상기 기저대역 프로세서에 의해, 상기 통신 인터페이스를 사용하여 상기 제2 패킷을 네트워크 디바이스에게 송신하는 단계
를 포함하는, 방법. - 제1항에 있어서, 상기 보고하는 단계는:
상기 단말의 데이터 접속이 이용가능할 때, 상기 기저대역 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보를 상기 애플리케이션 프로세서에 보고하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 보고하는 단계는:
상기 단말의 데이터 접속이 이용불가능할 때, 상기 기저대역 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보를 캐싱하는 단계, 및 상기 단말의 상기 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 상기 기저대역 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보를 상기 애플리케이션 프로세서에 보고하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 애플리케이션 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보에 따라 제2 패킷을 상기 기저대역 프로세서에게 전송하는 상기 단계 이후에, 상기 방법은:
상기 애플리케이션 프로세서에 의해, 상기 제1 패킷에 대응하는 TCP 접속의 혼잡 윈도의 값을 증가시키는 단계
를 추가로 포함하는, 방법. - 제1항에 있어서, 상기 제1 패킷의 상기 식별자는 상기 제1 패킷의 시퀀스 번호이고;
상기 전송 단계는:
상기 애플리케이션 프로세서에 의해, 상기 제1 패킷에 대응하는 TCP 접속의 소스 포트 번호에 따라 상기 제1 패킷과 동일한 시퀀스 번호를 가지는 상기 제2 패킷을 상기 기저대역 프로세서에게 전송하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 방법은:
상기 기저대역 프로세서가 상기 제1 패킷을 폐기하기 전에,
상기 기저대역 프로세서에 의해, 패킷 폐기의 이유들에 기초하여 상기 제1 패킷을 결정하는 단계
를 추가로 포함하며, 상기 패킷 폐기의 이유들은 하기의 이유들:
라디오 리소스 제어(RRC) 링크 확립이 상기 단말에 의해 확립되지 않았음; E-UTRAN 라디오 액세스 베어러 관리(ERABM) 메시지가 상기 기저대역 프로세서에 의해 수신됨; 상기 단말이 상이한 유형들의 셀룰러 네트워크들에서 핸드오버함; 패킷 데이터 컨버전스 프로토콜(PDCP) 재구성; 라디오 링크 제어(RLC) 재구성; RLC 재확립; PDCP 큐가 충만됨 또는 서비스 중단 중 적어도 하나를 포함하고;
상기 제1 패킷은 캐시 큐 내의 패킷, PDCP 큐 내의 송신될 패킷, 캐시 큐에 저장되지 못하는 패킷 또는 PDCP 큐에 삽입되지 못하는 패킷인, 방법. - 제1항에 있어서, 상기 방법은:
상기 기저대역 프로세서가 제1 패킷에 관한 정보를 상기 애플리케이션 프로세서에 보고하는 단계 이전에,
상기 기저대역 프로세서에 의해, 상기 단말의 데이터 접속이 이용가능한지 이용불가능한지를 결정하는 단계
를 추가로 포함하고, 상기 단말의 상기 데이터 접속은 하기의 경우들: 상기 단말이 접속해제된 상태에 있음; 상기 단말이 임의의 서빙 셀에 정상적으로 캠프 온하지 못함; 상기 단말의 데이터 서비스가 디스에이블된 상태에 있음; 또는 회선 교환 도메인이 2G로 폴백하는 경우에 상기 단말이 2G 호 시나리오에 있음 중 임의의 것에서 이용불가능한, 방법. - 패킷 송신 장치로서, 상기 장치는 기저대역 프로세서, 애플리케이션 프로세서, 및 송신기를 포함하며,
상기 기저대역 프로세서는 제1 패킷에 관한 정보를 상기 애플리케이션 프로세서에 보고하도록 구성되고, 상기 제1 패킷은 상기 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 상기 제1 패킷에 관한 상기 정보는 상기 제1 패킷의 식별자를 포함하며;
상기 애플리케이션 프로세서는 상기 제1 패킷에 관한 상기 정보에 따라 제2 패킷을 상기 기저대역 프로세서에게 전송하도록 구성되고, 상기 제2 패킷은 상기 제1 패킷과 동일하며;
상기 기저대역 프로세서는 상기 송신기를 사용하여 상기 제2 패킷을 네트워크 디바이스에게 송신하도록 추가로 구성되는, 장치. - 제8항에 있어서, 상기 기저대역 프로세서는: 상기 장치의 데이터 접속이 이용가능할 때, 상기 제1 패킷에 관한 상기 정보를 상기 애플리케이션 프로세서에 보고하도록 추가로 구성되는, 장치.
- 제8항에 있어서, 상기 기저대역 프로세서는: 상기 장치의 데이터 접속이 이용불가능할 때, 상기 제1 패킷에 관한 상기 정보를 캐싱하고, 상기 장치의 상기 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 상기 제1 패킷에 관한 상기 정보를 상기 애플리케이션 프로세서에 보고하도록 추가로 구성되는, 장치.
- 제8항에 있어서, 상기 애플리케이션 프로세서는 상기 제1 패킷에 관한 상기 정보에 따라 상기 제2 패킷을 상기 기저대역 프로세서에게 전송한 후에 상기 제1 패킷에 대응하는 TCP 접속의 혼잡 윈도의 값을 증가시키도록 추가로 구성되는, 장치.
- 제8항에 있어서, 상기 기저대역 프로세서는 패킷 폐기의 이유들에 기초하여 상기 제1 패킷을 결정하도록 추가로 구성되고, 상기 패킷 폐기의 이유들은 하기의 이유들:
라디오 리소스 제어(RRC) 링크 확립이 상기 장치에 의해 확립되지 않았음; E-UTRAN 라디오 액세스 베어러 관리(ERABM) 메시지가 상기 기저대역 프로세서에 의해 수신됨; 상기 장치가 상이한 유형들의 셀룰러 네트워크들에서 핸드오버함; 패킷 데이터 컨버전스 프로토콜(PDCP) 재구성; 라디오 링크 제어(RLC) 재구성; RLC 재확립; PDCP 큐가 충만됨 또는 서비스 중단 중 적어도 하나를 포함하고;
상기 제1 패킷은 캐시 큐 내의 패킷, PDCP 큐 내의 송신될 패킷, 캐시 큐에 저장되지 못하는 패킷 또는 PDCP 큐에 삽입되지 못하는 패킷인, 장치. - 제8항에 있어서, 상기 기저대역 프로세서는 상기 장치의 데이터 접속이 이용가능한지 이용불가능한지를 결정하도록 추가로 구성되고, 상기 장치의 상기 데이터 접속은 하기의 경우들: 상기 장치가 접속해제된 상태에 있음; 상기 장치가 임의의 서빙 셀에 정상적으로 캠프 온하지 못함; 상기 장치의 데이터 서비스가 디스에이블된 상태에 있음; 또는 회선 교환 도메인이 2G로 폴백하는 경우에 상기 장치가 2G 호 시나리오에 있음 중 임의의 것에서 이용불가능한, 장치.
- 기저대역 프로세서 및 애플리케이션 프로세서에 의해 실행될 때, 상기 기저대역 프로세서 및 상기 애플리케이션 프로세서로 하여금 방법을 수행하게 하는, 패킷을 송신하기 위한 컴퓨터 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 방법은:
상기 기저대역 프로세서에 의해, 제1 패킷에 관한 정보를 상기 애플리케이션 프로세서에 보고하는 단계 - 상기 제1 패킷은 상기 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 상기 제1 패킷에 관한 상기 정보는 상기 제1 패킷의 식별자를 포함함 -;
상기 애플리케이션 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보에 따라 제2 패킷을 상기 기저대역 프로세서에게 전송하는 단계 - 상기 제2 패킷은 상기 제1 패킷과 동일함 -; 및
상기 기저대역 프로세서에 의해, 통신 인터페이스를 사용하여 상기 제2 패킷을 네트워크 디바이스에게 송신하는 단계
를 포함하는, 매체. - 제14항에 있어서,
상기 매체, 상기 기저대역 프로세서, 및 상기 애플리케이션 프로세서가 패킷 전송 장치 내에 있고,
상기 보고하는 단계는:
상기 장치의 데이터 접속이 이용가능할 때, 상기 기저대역 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보를 상기 애플리케이션 프로세서에 보고하는 단계를 포함하는, 매체. - 제14항에 있어서,
상기 매체, 상기 기저대역 프로세서, 및 상기 애플리케이션 프로세서가 패킷 전송 장치 내에 있고,
상기 보고하는 단계는:
상기 장치의 데이터 접속이 이용불가능할 때, 상기 기저대역 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보를 캐싱하는 단계, 및 상기 장치의 상기 데이터 접속이 이용불가능으로부터 이용가능으로 전환될 때, 상기 기저대역 프로세서에 의해, 상기 제1 패킷에 관한 상기 정보를 상기 애플리케이션 프로세서에 보고하는 단계를 포함하는, 매체. - 제14항에 있어서,
상기 매체, 상기 기저대역 프로세서, 및 상기 애플리케이션 프로세서가 패킷 전송 장치 내에 있고,
상기 방법은:
상기 기저대역 프로세서에 의해, 패킷 폐기의 이유들에 기초하여 상기 제1 패킷을 결정하는 단계
를 추가로 포함하며, 상기 패킷 폐기의 이유들은 하기의 이유들:
라디오 리소스 제어(RRC) 링크 확립이 상기 장치에 의해 확립되지 않았음; E-UTRAN 라디오 액세스 베어러 관리(ERABM) 메시지가 상기 기저대역 프로세서에 의해 수신됨; 상기 장치가 상이한 유형들의 셀룰러 네트워크들에서 핸드오버함; 패킷 데이터 컨버전스 프로토콜(PDCP) 재구성; 라디오 링크 제어(RLC) 재구성; RLC 재확립; PDCP 큐가 충만됨 또는 서비스 중단 중 적어도 하나를 포함하고;
상기 제1 패킷은 캐시 큐 내의 패킷, PDCP 큐 내의 송신될 패킷, 캐시 큐에 저장되지 못하는 패킷 또는 PDCP 큐에 삽입되지 못하는 패킷인, 매체. - 제14항에 있어서,
상기 매체, 상기 기저대역 프로세서, 및 상기 애플리케이션 프로세서가 패킷 전송 장치 내에 있고,
상기 방법은:
상기 기저대역 프로세서에 의해, 상기 장치의 데이터 접속이 이용가능한지 이용불가능한지를 결정하는 단계를 추가로 포함하고, 상기 장치의 상기 데이터 접속은 하기의 경우들: 상기 장치가 접속해제된 상태에 있음; 상기 장치가 임의의 서빙 셀에 정상적으로 캠프 온하지 못함; 상기 장치의 데이터 서비스가 디스에이블된 상태에 있음; 또는 회선 교환 도메인이 2G로 폴백하는 경우에 상기 장치가 2G 호 시나리오에 있음 중 임의의 것에서 이용불가능한, 매체. - 칩으로서, 상기 칩은 라디오 주파수 컴포넌트를 사용하여 네트워크 디바이스에 대한 데이터 접속을 확립하고, 상기 칩은 애플리케이션 프로세서 및 기저대역 프로세서를 포함하며, 상기 기저대역 프로세서는 제1 패킷에 관한 정보를 상기 애플리케이션 프로세서에 보고하도록 구성되고, 상기 제1 패킷은 상기 기저대역 프로세서에 의해 폐기된 송신될 패킷이고, 상기 제1 패킷에 관한 상기 정보는 상기 제1 패킷의 식별자를 포함하며; 상기 애플리케이션 프로세서는 상기 제1 패킷에 관한 상기 정보에 따라 제2 패킷을 상기 기저대역 프로세서에게 전송하도록 구성되고, 상기 제2 패킷은 상기 제1 패킷과 동일하며; 상기 기저대역 프로세서는 상기 라디오 주파수 컴포넌트를 사용하여 상기 제2 패킷을 상기 네트워크 디바이스에게 송신하도록 추가로 구성되는, 칩.
- 제19항에 있어서,
상기 칩은 패킷 전송 장치 내에 있고,
상기 기저대역 프로세서는 패킷 폐기의 이유들에 기초하여 상기 제1 패킷을 결정하도록 추가로 구성되고, 상기 패킷 폐기의 이유들은 하기의 이유들:
라디오 리소스 제어(RRC) 링크 확립이 상기 장치에 의해 확립되지 않았음; E-UTRAN 라디오 액세스 베어러 관리(ERABM) 메시지가 상기 기저대역 프로세서에 의해 수신됨; 상기 장치가 상이한 유형들의 셀룰러 네트워크들에서 핸드오버함; 패킷 데이터 컨버전스 프로토콜(PDCP) 재구성; 라디오 링크 제어(RLC) 재구성; RLC 재확립; PDCP 큐가 충만됨 또는 서비스 중단 중 적어도 하나를 포함하고;
상기 제1 패킷은 캐시 큐 내의 패킷, PDCP 큐 내의 송신될 패킷, 캐시 큐에 저장되지 못하는 패킷 또는 PDCP 큐에 삽입되지 못하는 패킷인, 칩.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610946705.1 | 2016-11-02 | ||
CN201610946705.1A CN108023683B (zh) | 2016-11-02 | 2016-11-02 | 一种发送报文的方法、装置、芯片及终端 |
PCT/CN2017/109133 WO2018082615A1 (zh) | 2016-11-02 | 2017-11-02 | 一种发送报文的方法、装置、芯片及终端 |
KR1020197014851A KR102397347B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197014851A Division KR102397347B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210016084A KR20210016084A (ko) | 2021-02-10 |
KR102350444B1 true KR102350444B1 (ko) | 2022-01-14 |
Family
ID=62070043
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217003380A KR102350444B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
KR1020197014851A KR102397347B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197014851A KR102397347B1 (ko) | 2016-11-02 | 2017-11-02 | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10771595B2 (ko) |
EP (1) | EP3522417A4 (ko) |
JP (1) | JP6924830B2 (ko) |
KR (2) | KR102350444B1 (ko) |
CN (2) | CN112713970B (ko) |
BR (1) | BR112019008916A2 (ko) |
CA (1) | CA3042605C (ko) |
RU (1) | RU2752652C2 (ko) |
WO (1) | WO2018082615A1 (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011834A (zh) * | 2016-10-28 | 2018-05-08 | 华为技术有限公司 | Tcp拥塞窗口的确定方法和装置 |
CN112713970B (zh) * | 2016-11-02 | 2022-05-13 | 华为技术有限公司 | 一种发送报文的方法、装置、芯片及终端 |
CN108289007B (zh) * | 2017-01-10 | 2022-04-15 | 中兴通讯股份有限公司 | 数据包传输方法及装置 |
CN108667560B (zh) | 2017-03-31 | 2020-12-04 | 华为技术有限公司 | 一种调整终端发送数据的速率的方法及装置 |
US10931587B2 (en) * | 2017-12-08 | 2021-02-23 | Reniac, Inc. | Systems and methods for congestion control in a network |
CN109302575A (zh) * | 2018-08-21 | 2019-02-01 | 广州市保伦电子有限公司 | 一种基于IOT模块的wifi会议*** |
CN109743142A (zh) * | 2018-09-30 | 2019-05-10 | 比亚迪股份有限公司 | 消息通信方法及装置 |
CN110049050B (zh) * | 2019-04-22 | 2021-03-19 | 中国科学院计算机网络信息中心 | 一种通信的方法及装置 |
US10880211B2 (en) | 2019-05-06 | 2020-12-29 | Seth Gregory Friedman | Transaction encoding and verification by way of data-link layer fields |
CN110391956B (zh) * | 2019-07-23 | 2021-08-13 | 中国工商银行股份有限公司 | 网络服务进程状态的识别监控方法及装置 |
CN112311725B (zh) * | 2019-07-26 | 2022-01-11 | 华为技术有限公司 | 一种数据处理方法、装置及终端 |
US10868707B1 (en) | 2019-09-16 | 2020-12-15 | Liquid-Markets-Holdings, Incorporated | Zero-latency message processing with validity checks |
US20230120832A1 (en) * | 2020-03-30 | 2023-04-20 | Nippon Telegraph And Telephone Corporation | Monitoring device, communication system, communication control method, and monitoring program |
JPWO2021199161A1 (ko) * | 2020-03-30 | 2021-10-07 | ||
EP4144048A4 (en) | 2020-06-08 | 2024-06-26 | Liquid-Markets GmbH | HARDWARE-BASED TRANSACTION EXCHANGE |
CN114765690B (zh) * | 2020-12-31 | 2023-09-12 | 华为技术有限公司 | 数据包传输方法、通信装置及存储介质 |
CN115085890B (zh) * | 2022-06-23 | 2024-06-25 | 云合智网(上海)技术有限公司 | 数据中心网络芯片优化tcp rto重传等待时间的方法 |
CN117856985A (zh) * | 2024-03-08 | 2024-04-09 | 珠海星云智联科技有限公司 | 用于报文重传的方法、计算机设备、介质及程序 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160056927A1 (en) * | 2013-03-29 | 2016-02-25 | Vid Scale, Inc. | Early packet loss detection and feedback |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1200368C (zh) | 2000-08-18 | 2005-05-04 | 清华大学 | 一种将tcp用于不可靠传输网络的局域重传方法 |
SE0103853D0 (sv) * | 2001-11-15 | 2001-11-15 | Ericsson Telefon Ab L M | Method and system of retransmission |
US7551561B2 (en) * | 2003-05-15 | 2009-06-23 | Panasonic Corporation | Packet communication terminal |
CN1520104B (zh) * | 2003-09-02 | 2010-04-28 | 中国科学院计算技术研究所 | 提高tcp在异构网络中传输性能的方法 |
JP4580770B2 (ja) * | 2005-02-01 | 2010-11-17 | 株式会社エヌ・ティ・ティ・ドコモ | 通信システム及び受信装置 |
US20090019460A1 (en) * | 2007-05-03 | 2009-01-15 | Qualcomm Incorporated | Application programming interface (api) for handling errors in packets received by a wireless communications receiver |
CN101052006B (zh) * | 2007-05-14 | 2010-06-09 | 华为技术有限公司 | 报文上送的方法及实现该方法的接口板及路由器 |
US20090168723A1 (en) * | 2007-11-27 | 2009-07-02 | Qualcomm Incorporated | Method and apparatus for handling out-of-order packets during handover in a wireless communication system |
JP4843090B2 (ja) * | 2007-12-20 | 2011-12-21 | 株式会社エヌ・ティ・ティ・ドコモ | 移動局、基地局装置、通信制御方法及び移動通信システム |
CN101232446A (zh) * | 2008-02-01 | 2008-07-30 | 华为技术有限公司 | 报文处理方法及装置 |
US20100122134A1 (en) | 2008-11-10 | 2010-05-13 | Qualcomm Incorporated | Application-configured, content-based retransmission scheme for dropped media access control frames |
CN101860435B (zh) * | 2009-04-13 | 2012-10-31 | ***通信集团公司 | 报文发送、接收以及确定网络节点的方法及装置 |
US9100459B2 (en) * | 2010-04-30 | 2015-08-04 | Qualcomm Incorporated | Exchanging data associated with a communication session within a communications system |
US8780965B2 (en) * | 2010-07-30 | 2014-07-15 | Qualcomm Incorporated | Coordinating data calls on a mobile device with multiple modems |
WO2012095904A1 (en) | 2011-01-12 | 2012-07-19 | Nec Corporation | Communication device, packet retransmission control method and packet retransmission control program |
WO2012132283A1 (ja) * | 2011-03-28 | 2012-10-04 | 日本電気株式会社 | 通信装置およびその通信制御方法 |
CN102833783B (zh) * | 2012-07-02 | 2015-04-08 | 北京邮电大学 | 一种优化无线环境下tcp协议的方法 |
CN103001885B (zh) * | 2012-12-25 | 2015-08-26 | 中国科学院深圳先进技术研究院 | 数据报文传输方法和*** |
CN103986548B (zh) | 2013-02-07 | 2018-02-23 | 华为技术有限公司 | 一种确定丢包原因的方法和终端 |
US9510242B2 (en) * | 2013-05-17 | 2016-11-29 | Nvidia Corporation | Reducing superfluous traffic in a network |
WO2015032048A1 (zh) * | 2013-09-05 | 2015-03-12 | 展讯通信(上海)有限公司 | 一种移动终端内部通信方法 |
CN112713970B (zh) * | 2016-11-02 | 2022-05-13 | 华为技术有限公司 | 一种发送报文的方法、装置、芯片及终端 |
-
2016
- 2016-11-02 CN CN202011545975.4A patent/CN112713970B/zh active Active
- 2016-11-02 CN CN201610946705.1A patent/CN108023683B/zh active Active
-
2017
- 2017-11-02 KR KR1020217003380A patent/KR102350444B1/ko active IP Right Grant
- 2017-11-02 WO PCT/CN2017/109133 patent/WO2018082615A1/zh unknown
- 2017-11-02 JP JP2019522717A patent/JP6924830B2/ja active Active
- 2017-11-02 RU RU2019116616A patent/RU2752652C2/ru active
- 2017-11-02 EP EP17868269.6A patent/EP3522417A4/en active Pending
- 2017-11-02 CA CA3042605A patent/CA3042605C/en active Active
- 2017-11-02 BR BR112019008916A patent/BR112019008916A2/pt unknown
- 2017-11-02 KR KR1020197014851A patent/KR102397347B1/ko active IP Right Grant
-
2019
- 2019-04-29 US US16/398,078 patent/US10771595B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160056927A1 (en) * | 2013-03-29 | 2016-02-25 | Vid Scale, Inc. | Early packet loss detection and feedback |
Also Published As
Publication number | Publication date |
---|---|
RU2019116616A (ru) | 2020-12-03 |
JP6924830B2 (ja) | 2021-08-25 |
EP3522417A1 (en) | 2019-08-07 |
CA3042605C (en) | 2023-07-18 |
CN112713970A (zh) | 2021-04-27 |
CN108023683B (zh) | 2020-12-25 |
CA3042605A1 (en) | 2018-05-11 |
WO2018082615A1 (zh) | 2018-05-11 |
KR20210016084A (ko) | 2021-02-10 |
KR102397347B1 (ko) | 2022-05-13 |
EP3522417A4 (en) | 2019-10-16 |
JP2020502873A (ja) | 2020-01-23 |
US10771595B2 (en) | 2020-09-08 |
RU2752652C2 (ru) | 2021-07-29 |
US20190268445A1 (en) | 2019-08-29 |
RU2019116616A3 (ko) | 2021-02-01 |
BR112019008916A2 (pt) | 2019-12-24 |
CN112713970B (zh) | 2022-05-13 |
CN108023683A (zh) | 2018-05-11 |
KR20190073479A (ko) | 2019-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102350444B1 (ko) | 메시지들을 송신하기 위한 방법 및 디바이스, 칩 및 단말 | |
US10924421B2 (en) | Packet transmission method, terminal, network device, and communications system | |
US11153041B2 (en) | Packet transmission method and user equipment | |
US11044630B2 (en) | Method and apparatus for adjusting data sending rate of terminal | |
US20170311371A1 (en) | Method and nodes for handling connections in a communications system | |
US20090175163A1 (en) | Method and apparatus of performing packet data convergence protocol re-establishment | |
US11729686B2 (en) | Transmission control method, apparatus, and system | |
US10425868B2 (en) | Apparatus, system, and method for preventing TCP connection interruption | |
US20230421642A1 (en) | Packet transmission method, communication apparatus, and communication system | |
US20140204918A1 (en) | Tcp recovery method and apparatus | |
US12052749B2 (en) | Methods and arrangements for managing round trip time associated with provision of a data flow via a multi-access communication network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |