[go: up one dir, main page]

JP2015154320A - Portable terminal and communication control method thereof - Google Patents

Portable terminal and communication control method thereof Download PDF

Info

Publication number
JP2015154320A
JP2015154320A JP2014027445A JP2014027445A JP2015154320A JP 2015154320 A JP2015154320 A JP 2015154320A JP 2014027445 A JP2014027445 A JP 2014027445A JP 2014027445 A JP2014027445 A JP 2014027445A JP 2015154320 A JP2015154320 A JP 2015154320A
Authority
JP
Japan
Prior art keywords
data
communication
priority
throughput
data flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014027445A
Other languages
Japanese (ja)
Inventor
義三 佐藤
Yoshizo Sato
義三 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Corp
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 Kyocera Corp filed Critical Kyocera Corp
Priority to JP2014027445A priority Critical patent/JP2015154320A/en
Publication of JP2015154320A publication Critical patent/JP2015154320A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】データ通信において、実際のスループットが、スループットの理論的な上限値と同程度の通信速度になっているデータフローのスループットを改善し得る携帯端末を提供すること。【解決手段】携帯端末は、複数のデータフローそれぞれに係る通信パケットを一時的に蓄えるバッファを有し、一のデータフローについて、送信先の機器からの受信確認なしに送信できる最大の送信可能データ量を示す情報と、該データフローにおけるRTT(Round Trip Time)とを用いて、単位時間当たりのデータ転送量の理論的な上限値を示す理論スループットを算出し、実際に送信した単位時間当たりのデータ転送量を示す実スループットを、算出した理論スループットと比較し、同程度のスループットに達していると判断した場合には、該データフローに係る通信パケットをバッファから優先的に送出する。【選択図】図8PROBLEM TO BE SOLVED: To provide a mobile terminal capable of improving the throughput of a data flow in which the actual throughput is about the same as the theoretical upper limit of the throughput in data communication. SOLUTION: A mobile terminal has a buffer for temporarily storing communication packets related to each of a plurality of data flows, and is the maximum transmissible data that can be transmitted for one data flow without confirmation of reception from a destination device. Using the information indicating the amount and the RTT (Round Trip Time) in the data flow, the theoretical throughput indicating the theoretical upper limit of the data transfer amount per unit time is calculated, and the actual transmission per unit time is calculated. When the actual throughput indicating the amount of data transfer is compared with the calculated theoretical throughput and it is determined that the throughput has reached the same level, the communication packet related to the data flow is preferentially transmitted from the buffer. [Selection diagram] FIG. 8

Description

本発明は、携帯端末におけるネットワーク通信技術に関し、特にデータ転送に係る技術に関する。   The present invention relates to a network communication technique in a mobile terminal, and more particularly to a technique related to data transfer.

近年、LTE(Long Term Evolution)などの高速なデータ通信を行い得る無線通信ネットワークが構築されつつあることに伴い、スマートフォンやタブレットのような携帯端末を用いた無線データ通信が広く利用されるようになってきた。このような高速なデータ通信を用いてネットワークに接続し、携帯端末単体でインターネット等を利用するだけではなく、1以上のPC(Personal Computer)等の機器を、携帯端末の持つテザリング機能を用いて携帯端末と接続し、これら機器から携帯端末を介してインターネット等を利用することも行われている。   In recent years, wireless data communication using mobile terminals such as smartphones and tablets has been widely used as wireless communication networks capable of performing high-speed data communication such as LTE (Long Term Evolution) are being constructed. It has become. In addition to connecting to a network using such high-speed data communication and using the Internet or the like with a single mobile terminal, one or more devices such as a PC (Personal Computer) can be used using the tethering function of the mobile terminal. It is also possible to connect to a portable terminal and use the Internet or the like from these devices via the portable terminal.

ところで、一般的に、無線通信を介したデータ通信では、有線通信のみで行うデータ通信に比べてデータの転送遅延が大きい。このため、従来、単位時間当たりのデータ転送量(以下、「スループット」と呼ぶ。)を改善させるための様々な工夫がなされている。
例えば、特許文献1には、TCP/IP(Transmission Control Protocol/Internet Protocol)で通信する際のTCPウィンドウサイズに対して、送信パケットサイズを最適化する技術が開示されている。特許文献1に開示の技術では、複数の送信パケットの累積パケットサイズが、TCPウィンドウサイズに余りなく収まるように送信パケットサイズを決定する。これにより、受信確認のACK(Acknowledgement)を送信先の機器から受信するまでに送信できるデータ量を最大化することができ、データ送信のスループットを改善することができる。
Incidentally, in general, data communication via wireless communication has a larger data transfer delay than data communication performed only by wired communication. For this reason, various devices have been conventionally used to improve the data transfer amount per unit time (hereinafter referred to as “throughput”).
For example, Patent Document 1 discloses a technique for optimizing a transmission packet size with respect to a TCP window size when communicating with TCP / IP (Transmission Control Protocol / Internet Protocol). In the technique disclosed in Patent Document 1, the transmission packet size is determined so that the accumulated packet size of a plurality of transmission packets is not too much within the TCP window size. As a result, the amount of data that can be transmitted before receiving an acknowledgment ACK (Acknowledgement) from the destination device can be maximized, and the throughput of data transmission can be improved.

特開2001−237882号公報JP 2001-237882 A

ところで、TCP/IPにおけるスループットの理論的な上限値(以下、「理論スループット」と呼ぶ。)は、TCPウィンドウサイズと、RTT(Round Trip Time)とによって決まり、TCPウィンドウサイズに比例し、RTTに反比例する。
実際のスループット(以下、「実スループット」と呼ぶ。)は、機器の処理能力、ネットワークの帯域や利用状態等様々な要因によって変動するが、これら機器の処理能力やネットワークの帯域等が十分に確保されているにも関わらず、実スループットが速くならない場合がある。実スループットが、理論スループットと同程度のスループットに達している場合がこれに相当する(以下、このような状態を「頭打ちの状態」と呼ぶ。)。実スループットは、理論スループットよりも速くなり得ないので、このような場合に送信パケットサイズを最適化しても、実スループットを改善させることができないという問題がある。
By the way, the theoretical upper limit value of throughput in TCP / IP (hereinafter referred to as “theoretical throughput”) is determined by the TCP window size and RTT (Round Trip Time), and is proportional to the TCP window size. Inversely proportional.
The actual throughput (hereinafter referred to as “actual throughput”) varies depending on various factors such as the processing capacity of the device, the network bandwidth and the usage state, but the processing capability of these devices and the network bandwidth are sufficiently secured. In spite of this, the actual throughput may not increase. This corresponds to the case where the actual throughput reaches the same throughput as the theoretical throughput (hereinafter, such a state is referred to as a “bottom state”). Since the actual throughput cannot be faster than the theoretical throughput, there is a problem that even if the transmission packet size is optimized in such a case, the actual throughput cannot be improved.

本発明は、係る問題に鑑みてなされたものであり、頭打ちになっているデータ通信のスループットを改善し得る携帯端末を提供することを目的とする。   The present invention has been made in view of such problems, and an object of the present invention is to provide a portable terminal capable of improving the throughput of data communication that has reached its peak.

上記課題を解決するために、本発明の一態様に係る携帯端末は、ネットワークを介して、少なくとも一以上の機器との間で、複数のデータフローを含むデータ通信を行う携帯端末であって、前記複数のデータフローそれぞれに係る通信パケットを一時的に蓄えるバッファと、複数のデータフローのうちの、一のデータフローにおけるRTTを計測する計測部と、前記RTTと、送信先の機器からの受信確認なしに送信できる最大の送信可能データ量を示す情報とを用いて、前記ネットワークを介してデータを送信する際の単位時間当たりのデータ転送量の理論的な上限値を示す理論スループットを算出する算出部と、前記一のデータフローにおいて、実際に送信した単位時間当たりのデータ転送量を示す実スループットを測定する測定部と、前記実スループットが、前記理論スループットと同程度のスループットに達していることを示す予め定められた基準を満たす場合に、前記一のデータフローの優先度が他のデータフローの優先度よりも高くなるように設定する優先度設定部と、前記優先度が設定された通信パケットを生成して前記バッファに出力する出力部と、前記バッファに蓄えられた通信パケットのうち、優先度の高い通信パケットを優先的に送出する送出部とを備えることを特徴とする。   In order to solve the above problems, a mobile terminal according to an aspect of the present invention is a mobile terminal that performs data communication including a plurality of data flows with at least one or more devices via a network. A buffer that temporarily stores communication packets related to each of the plurality of data flows, a measurement unit that measures RTT in one data flow of the plurality of data flows, the RTT, and reception from a destination device Using the information indicating the maximum transmittable data amount that can be transmitted without confirmation, the theoretical throughput indicating the theoretical upper limit value of the data transfer amount per unit time when transmitting data via the network is calculated. A calculation unit, and a measurement unit that measures an actual throughput indicating a data transfer amount per unit time actually transmitted in the one data flow; The priority of the one data flow is higher than the priority of the other data flow when the actual throughput satisfies a predetermined standard indicating that the throughput reaches the same level as the theoretical throughput. A priority setting unit that sets the priority, an output unit that generates a communication packet in which the priority is set and outputs the communication packet, and a communication packet having a higher priority among the communication packets stored in the buffer. And a sending unit that sends the data preferentially.

上述の構成の携帯端末によると、RTTを短くすることができるので、理論スループットを大きくすることができ、その結果、頭打ちになっているデータ通信のスループットを改善し得る。   According to the portable terminal having the above-described configuration, the RTT can be shortened, so that the theoretical throughput can be increased. As a result, the throughput of data communication that has reached its peak can be improved.

本発明に係る携帯端末10を用いた通信システム1の概念図。The conceptual diagram of the communication system 1 using the portable terminal 10 which concerns on this invention. 携帯端末10の外観の概略図。Schematic of the external appearance of the portable terminal 10. 携帯端末10の主要部の機能ブロック図。FIG. 3 is a functional block diagram of main parts of the mobile terminal 10. TCPパケットのデータ構造。TCP packet data structure. IPパケットのデータ構造。IP packet data structure. PC20とサーバ装置50とのデータの送受信の概略を示すシーケンス図。FIG. 5 is a sequence diagram showing an outline of data transmission / reception between the PC 20 and the server device 50. PC20とサーバ装置50とのTCPウィンドウサイズを用いたデータの送受信の概略を示すシーケンス図。The sequence diagram which shows the outline of transmission / reception of the data using TCP window size of PC20 and the server apparatus 50. FIG. 携帯端末10における処理のフローチャート。10 is a flowchart of processing in the mobile terminal 10. 携帯端末10におけるスループットの算出及び比較処理のフローチャート。6 is a flowchart of throughput calculation and comparison processing in the mobile terminal 10. 実施の形態2の携帯端末10における処理のフローチャート。10 is a flowchart of processing in the mobile terminal 10 according to the second embodiment. 変形例の携帯端末10における処理のフローチャート。The flowchart of the process in the portable terminal 10 of a modification. 優先度設定ためのユーザ入力を求める際に提示するUI(ユーザインタフェース)の一例。An example of UI (user interface) presented when requesting user input for priority setting. 優先度設定ためのユーザ入力を求める際に提示するUIのその他の一例。Another example of UI presented when requesting user input for priority setting.

<1.実施の形態1>
<1.1 概要>
本発明に係る携帯端末10の一実施形態について説明する。
図1は、携帯端末10を含む通信システム1の概略図である。
通信システム1は、携帯端末10、PC(Personal Computer)20、基地局30、ネットワーク40、及び、サーバ装置50を含む構成である。
<1. Embodiment 1>
<1.1 Overview>
An embodiment of the mobile terminal 10 according to the present invention will be described.
FIG. 1 is a schematic diagram of a communication system 1 including a mobile terminal 10.
The communication system 1 includes a mobile terminal 10, a PC (Personal Computer) 20, a base station 30, a network 40, and a server device 50.

PC20は、携帯端末10の持つテザリング機能を利用することで、携帯端末10と接続し、携帯端末10を介してサーバ装置50とのデータ通信を行う。
携帯端末10は、無線通信回線を介して基地局30と接続し、PC20から受け取ったデータを、ネットワーク40を介してサーバ装置50に送信する。また、サーバ装置50からのデータは、ネットワーク40、基地局30、携帯端末10を介してPC20に送信される。なお、データ通信は、TCP/IPによる通信プロトコルによって行われる。
The PC 20 uses the tethering function of the mobile terminal 10 to connect to the mobile terminal 10 and perform data communication with the server device 50 via the mobile terminal 10.
The mobile terminal 10 is connected to the base station 30 via a wireless communication line, and transmits data received from the PC 20 to the server device 50 via the network 40. Data from the server device 50 is transmitted to the PC 20 via the network 40, the base station 30, and the mobile terminal 10. Data communication is performed by a communication protocol based on TCP / IP.

携帯端末10は、PC20から受信した通信パケットを一旦バッファに蓄え、通信パケットごとに定められた優先順位に従って出力する。また、携帯端末10は、基地局30から受信した通信パケットをPC20に出力する。
ところで、TCP/IPにおけるデータ通信において、PC20からサーバ装置50へ通信パケットを送信してから、その受信確認を示す応答をサーバ装置50から受信するまでの時間はRTT(Round Trip Time)と呼ばれ、ネットワークの応答速度の指標となる。
The mobile terminal 10 temporarily stores the communication packet received from the PC 20 in a buffer, and outputs it according to the priority order determined for each communication packet. Further, the mobile terminal 10 outputs the communication packet received from the base station 30 to the PC 20.
By the way, in data communication in TCP / IP, the time from when the communication packet is transmitted from the PC 20 to the server device 50 until the response indicating the reception confirmation is received from the server device 50 is called RTT (Round Trip Time). It becomes an index of network response speed.

スループットの理論的な最大値Smaxは、TCPウィンドウサイズをW、RTTをRとすると、Smax=W/Rで算出することができる。実際の単位時間当たりのデータ転送量、すなわち、実スループットは、PC20とサーバ装置50とのネットワーク経路上の距離、経路上で中継・転送する装置などの数、サーバ装置50の処理能力、ネットワークの帯域、及びネットワークの利用状況等様々な要因に左右され、一般的に、実スループットが理論スループットと同程度に達することはまれである。   The theoretical maximum value Smax of the throughput can be calculated by Smax = W / R where W is the TCP window size and R is the RTT. The actual data transfer amount per unit time, that is, the actual throughput is the distance between the PC 20 and the server device 50 on the network route, the number of devices relaying / transferring on the route, the processing capability of the server device 50, the network Depending on various factors such as bandwidth and network usage, the actual throughput rarely reaches the same level as the theoretical throughput.

逆に、ネットワークの帯域が十分確保されているにも関わらず、実スループットが理論スループットと同程度に達している場合には、実スループットは、理論スループット以上には速くなり得ないため、これ以上の通信速度の向上は望めず、頭打ちの状態となる。このような状態になるのは、ネットワーク経路上において、通信パケットの送出に時間を要しており、そのためにRTTが長くなっていることが考えられる。上述の式からも分かるように、TCPウィンドウサイズが同じ場合、RTTを短くすることができれば、理論スループットは大きくなり、頭打ちの状態は解消され、実スループットが向上し得る。   Conversely, if the actual throughput has reached the same level as the theoretical throughput even though the network bandwidth is sufficiently secured, the actual throughput cannot be faster than the theoretical throughput. The improvement in communication speed cannot be expected, and it will be in a state of peaking. Such a state can be considered because it takes time to transmit a communication packet on the network path, and therefore, the RTT is long. As can be seen from the above formula, when the TCP window size is the same, if the RTT can be shortened, the theoretical throughput increases, the peak state is eliminated, and the actual throughput can be improved.

上記のように携帯端末10は、通信パケットをバッファに一旦蓄え、既定の優先順に従って出力するが、このような頭打ちの状態のデータ通信に係る通信パケットをバッファから優先的に出力する。この処理により、通信パケットが携帯端末10のバッファに留まっている時間を短縮でき、その結果、RTTを短くできる。従って、理論スループットが大きくなり、頭打ちの状態が改善され、実スループットが向上する。   As described above, the mobile terminal 10 temporarily stores communication packets in a buffer and outputs them according to a predetermined priority order, but outputs communication packets related to data communication in such a peak state from the buffer with priority. By this process, the time during which the communication packet remains in the buffer of the mobile terminal 10 can be shortened, and as a result, the RTT can be shortened. Therefore, the theoretical throughput is increased, the state of peaking is improved, and the actual throughput is improved.

<1.2 構成>
図2は、携帯端末10の外観の概略図である。
携帯端末10は、いわゆるスマートフォン型携帯通信端末である。
同図に示すように、携帯端末10は、その筐体の主表面に、レシーバ(不図示)から出力される音声を筐体外部に伝えるためのレシーバ孔151と、筐体外部の音声をマイク(不図示)に伝えるためのマイク孔152とが形成され、更に、タッチパネル150の主表面が配置されている。また、筐体の主表面には、ユーザが携帯端末10の操作の際に、タッチパネル150に表示されているカーソルを移動したり、表示物を選択したりするための操作ボタン群153が配置されている。
<1.2 Configuration>
FIG. 2 is a schematic view of the appearance of the mobile terminal 10.
The mobile terminal 10 is a so-called smartphone type mobile communication terminal.
As shown in the figure, the mobile terminal 10 has a receiver hole 151 for transmitting sound output from a receiver (not shown) to the outside of the housing on the main surface of the housing, and a microphone for sound outside the housing. A microphone hole 152 for transmitting to (not shown) is formed, and the main surface of the touch panel 150 is further arranged. Further, on the main surface of the housing, an operation button group 153 for moving a cursor displayed on the touch panel 150 or selecting a display object when the user operates the mobile terminal 10 is arranged. ing.

図3は、携帯端末10の主要部の機能ブロック図である。
同図に示すように、携帯端末10は、制御部101、取得部102、RTT計測部103、算出部104、測定部105、タイマー106、出力部107、バッファ108、送出部109、通信部110、アンテナ111、受信部112、比較部113、優先度設定部114、テザリング部115、テザリング用アンテナ116、音声処理部117、表示部118、操作部119、記憶部120、及び、電源部121を含む構成である。
FIG. 3 is a functional block diagram of the main part of the mobile terminal 10.
As shown in the figure, the mobile terminal 10 includes a control unit 101, an acquisition unit 102, an RTT measurement unit 103, a calculation unit 104, a measurement unit 105, a timer 106, an output unit 107, a buffer 108, a transmission unit 109, and a communication unit 110. , Antenna 111, receiving unit 112, comparing unit 113, priority setting unit 114, tethering unit 115, tethering antenna 116, audio processing unit 117, display unit 118, operation unit 119, storage unit 120, and power supply unit 121. It is the composition which includes.

以下、携帯端末10を構成するこれら構成要素について説明する。
(制御部101、記憶部120)
制御部101は、取得部102、RTT計測部103、算出部104、測定部105、タイマー106、比較部113、優先度設定部114、出力部107、送出部109、通信部110、受信部112、テザリング部115、音声処理部117、表示部118、操作部119、及び電源部121を制御して、携帯端末10に、主として、携帯端末制御機能、テザリング機能、スループット算出機能、スループット比較機能、優先順位設定機能、及び、送信パケット送出機能を実現させる機能を有する。
Hereinafter, these components constituting the mobile terminal 10 will be described.
(Control unit 101, storage unit 120)
The control unit 101 includes an acquisition unit 102, an RTT measurement unit 103, a calculation unit 104, a measurement unit 105, a timer 106, a comparison unit 113, a priority setting unit 114, an output unit 107, a transmission unit 109, a communication unit 110, and a reception unit 112. , The tethering unit 115, the sound processing unit 117, the display unit 118, the operation unit 119, and the power supply unit 121 to control the mobile terminal 10 mainly with a mobile terminal control function, a tethering function, a throughput calculation function, a throughput comparison function, A function for realizing a priority setting function and a transmission packet transmission function;

携帯端末制御機能は、従来の携帯端末が有する一般的な機能と同等な機能、例えば、通話機能、インターネットサイト閲覧機能、メール送受信機能、待ち受け機能、ユーザインタフェース制御機能、アプリケーション実行機能等を実現させる機能である。
テザリング機能は、PC20との間で無線によるデータ通信を行い、携帯端末10の無線通信機能を利用して、PC20からのデータをネットワーク上のサーバ装置50に送信し、サーバ装置50からのデータをPC20に送信する機能である。テザリング機能は、テザリング部115、送出部109、受信部112、通信部110を制御して、テザリング部115で受信したPC20からのデータを、送出部109に通信部110を介して基地局30に送信させ、通信部110を介して受信部112で受け取ったサーバ装置50からのデータをテザリング部115に出力し、PC20に送信する機能である。
The mobile terminal control function realizes a function equivalent to a general function of a conventional mobile terminal, for example, a call function, an Internet site browsing function, a mail transmission / reception function, a standby function, a user interface control function, an application execution function, etc. It is a function.
The tethering function performs wireless data communication with the PC 20, transmits data from the PC 20 to the server device 50 on the network using the wireless communication function of the mobile terminal 10, and transmits data from the server device 50. This is a function for transmitting to the PC 20. The tethering function controls the tethering unit 115, the sending unit 109, the receiving unit 112, and the communication unit 110, and the data received from the PC 20 by the tethering unit 115 is transferred to the sending unit 109 via the communication unit 110 to the base station 30. This is a function of transmitting data from the server device 50 received by the receiving unit 112 via the communication unit 110 to the tethering unit 115 and transmitting it to the PC 20.

スループット算出機能は、理論スループット算出機能と実スループット測定機能を含む機能である。理論スループット算出機能は、取得部102、RTT計測部103、算出部104及びタイマー106を制御して、算出部104に、取得部102で取得したTCPウィンドウサイズと、RTT計測部103で計測したRTTとを用いて理論スループットを算出させる機能である。実スループット測定機能は、測定部105とタイマー106とを制御して、測定部105に、PC20からサーバ装置50へ送信するデータの実スループットを測定させる機能である。   The throughput calculation function includes a theoretical throughput calculation function and an actual throughput measurement function. The theoretical throughput calculation function controls the acquisition unit 102, the RTT measurement unit 103, the calculation unit 104, and the timer 106, and causes the calculation unit 104 to acquire the TCP window size acquired by the acquisition unit 102 and the RTT measured by the RTT measurement unit 103. This is a function for calculating theoretical throughput using The actual throughput measurement function is a function that controls the measurement unit 105 and the timer 106 to cause the measurement unit 105 to measure the actual throughput of data transmitted from the PC 20 to the server device 50.

スループット比較機能は、比較部113を制御し、比較部113に、算出部104で算出した理論スループットと測定部105で測定した実スループットとを比較させて、実スループットが頭打ちになっているか否かを判定させる機能である。
優先順位設定機能は、優先度設定部114を制御し、優先度設定部114に、比較部113での比較結果に基づいてPC20からサーバ装置50へ送信される通信パケットの優先度を決定させ、出力部107に出力させる機能である。
The throughput comparison function controls the comparison unit 113 and causes the comparison unit 113 to compare the theoretical throughput calculated by the calculation unit 104 with the actual throughput measured by the measurement unit 105 to determine whether or not the actual throughput has reached its peak. This is a function for determining
The priority order setting function controls the priority setting unit 114 and causes the priority setting unit 114 to determine the priority of the communication packet transmitted from the PC 20 to the server device 50 based on the comparison result in the comparison unit 113. This is a function for causing the output unit 107 to output.

送信パケット送出機能は、送出部109を制御し、送出部109に、バッファ108に記憶されている通信パケットをその通信パケットの持つ優先度の高い順に通信部110に出力させる機能である。
なお、制御部101の機能は、例えば、携帯端末10のCPU(Central Processing Unit)が、記憶部120に記憶されているプログラムを実行することで実現される。
The transmission packet transmission function is a function for controlling the transmission unit 109 to cause the transmission unit 109 to output the communication packets stored in the buffer 108 to the communication unit 110 in descending order of priority of the communication packet.
Note that the function of the control unit 101 is realized by, for example, a CPU (Central Processing Unit) of the mobile terminal 10 executing a program stored in the storage unit 120.

記憶部120は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等で構成される。記憶部120は、制御部101の動作を規定するプログラムと、通信パケットの実スループットが頭打ちになっているか否かの判断に用いる閾値とを記憶する。
(テザリング部115、テザリング用アンテナ116)
テザリング部115は、PC20との間で無線によるデータ通信を行い、携帯端末10の無線通信機能を利用して、PC20からのデータをネットワーク上のサーバ装置50に送信し、サーバ装置50からのデータをPC20に送信する機能を有する。
The storage unit 120 includes, for example, a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, and the like. The storage unit 120 stores a program that defines the operation of the control unit 101 and a threshold value used to determine whether or not the actual throughput of the communication packet has reached its peak.
(Tethering unit 115, tethering antenna 116)
The tethering unit 115 performs wireless data communication with the PC 20, transmits data from the PC 20 to the server device 50 on the network using the wireless communication function of the mobile terminal 10, and receives data from the server device 50. Is transmitted to the PC 20.

テザリング用アンテナ116は、例えば、金属製のモノポールアンテナであり、携帯端末10が、PC20との間でテザリング機能による無線通信を行うために用いられる。
なお、テザリング部115の機能は、例えば、携帯端末10のCPU(Central Processing Unit)が、記憶部120に記憶されているプログラムを実行することで実現される。
(出力部107、バッファ108、送出部109)
出力部107は、PC20から出力されたサーバ装置50に送信する通信パケットに対して、優先度設定部114が設定した優先度を付与してバッファ108に出力する機能を有する。
The tethering antenna 116 is, for example, a metal monopole antenna, and is used for the mobile terminal 10 to perform wireless communication with the PC 20 using the tethering function.
Note that the function of the tethering unit 115 is realized by, for example, a CPU (Central Processing Unit) of the mobile terminal 10 executing a program stored in the storage unit 120.
(Output unit 107, buffer 108, sending unit 109)
The output unit 107 has a function of giving the priority set by the priority setting unit 114 to the communication packet transmitted to the server device 50 output from the PC 20 and outputting it to the buffer 108.

バッファ108は、例えばRAM等のメモリであり、PC20から携帯端末10に送信された通信パケットを一時的に記憶する機能を有する。
送出部109は、バッファ108に記憶されている通信パケットを、通信パケットに設定されている優先度に従って、優先度の高いものから順に通信部110に出力する機能を有する。
The buffer 108 is a memory such as a RAM, and has a function of temporarily storing communication packets transmitted from the PC 20 to the mobile terminal 10.
The sending unit 109 has a function of outputting communication packets stored in the buffer 108 to the communication unit 110 in descending order of priority according to the priority set in the communication packet.

なお、出力部107、送出部109の機能は、携帯端末10が有するCPUが記憶部120に記憶するプログラムを実行することによって実現される。
(通信部110、アンテナ111)
通信部110は、通信用LSI(Large Scale Integration)を含み、制御部101によって制御される。なお、この通信用LSIは、例えば、TCP/IPプロトコルでインターネット網を用いて外部のサーバとデータの送受信を行う機能を備えている。
Note that the functions of the output unit 107 and the sending unit 109 are realized by executing a program stored in the storage unit 120 by the CPU of the mobile terminal 10.
(Communication unit 110, antenna 111)
The communication unit 110 includes a communication LSI (Large Scale Integration) and is controlled by the control unit 101. The communication LSI has a function of transmitting / receiving data to / from an external server using the Internet network using the TCP / IP protocol, for example.

通信部110は、アンテナ111を介して基地局30と接続して、送出部109から出力された通信パケットをサーバ装置50へ送信する機能を有する。また、PC20から送信された通信パケットに対して、サーバ装置50から送信された受信確認を示す通信パケットを受信部112に出力する機能を有する。
なお、通信部110の機能は、携帯端末10が有するCPUが記憶部120に記憶するプログラムを実行することによって実現される。
The communication unit 110 has a function of connecting to the base station 30 via the antenna 111 and transmitting the communication packet output from the transmission unit 109 to the server device 50. Further, the communication packet transmitted from the PC 20 has a function of outputting a communication packet indicating reception confirmation transmitted from the server device 50 to the receiving unit 112.
Note that the function of the communication unit 110 is realized by the CPU of the mobile terminal 10 executing a program stored in the storage unit 120.

アンテナ111は、例えば、金属製のモノポールアンテナであり、通信用LSIに接続され、通信用LSIが行う通信に利用される。
(受信部112)
受信部112は、サーバ装置50から通信パケットを受け取る機能を有する。
受信部112は、具体的には、例えば、通信部110が送出した、PC20からサーバ装置50宛ての通信パケットに対する受信確認を含む応答としての通信パケットをサーバ装置50から受け取り、取得部102とRTT計測部103とに出力する。
The antenna 111 is, for example, a metal monopole antenna, is connected to a communication LSI, and is used for communication performed by the communication LSI.
(Receiver 112)
The receiving unit 112 has a function of receiving a communication packet from the server device 50.
Specifically, the receiving unit 112 receives, for example, a communication packet sent from the communication unit 110 as a response including a reception confirmation for the communication packet addressed to the server device 50 from the PC 20, and receives the communication packet from the acquisition unit 102 and the RTT. Output to the measurement unit 103.

なお、受信部112の機能は、携帯端末10が有するCPUが記憶部120に記憶するプログラムを実行することによって実現される。
(取得部102、RTT計測部103、算出部104、タイマー106)
取得部102は、受信部112が受信したサーバ装置50からの通信パケットのヘッダ部の情報からTCPウィンドウサイズを抽出して、制御部101と算出部104に出力する機能を有する。
Note that the function of the receiving unit 112 is realized by the CPU of the mobile terminal 10 executing a program stored in the storage unit 120.
(Acquisition unit 102, RTT measurement unit 103, calculation unit 104, timer 106)
The acquisition unit 102 has a function of extracting the TCP window size from the information of the header part of the communication packet from the server device 50 received by the reception unit 112 and outputting the TCP window size to the control unit 101 and the calculation unit 104.

RTT計測部103は、タイマー106を制御し、PC20がサーバ装置50宛てに転送するデータに係る通信パケットを送信し、その通信パケットの受領確認の通信パケットを受信部112が受信するまでの時間を計測する機能を有する。そして、計測した時間から得たRTTを算出部104に出力する機能を有する。
算出部104は、取得部102からのTCPウィンドウサイズの値とRTT計測部からのRTTの値とを用いて、理論スループットを算出する機能を有する。具体的には、TCPウィンドウサイズの値をW、RTTの値をTRTTとすると、理論スループットSmaxは、Smax=W/TRTTで算出することができる。
The RTT measuring unit 103 controls the timer 106 to transmit a communication packet related to data transferred by the PC 20 to the server device 50, and to determine the time until the receiving unit 112 receives the communication packet for confirming the receipt of the communication packet. Has the function to measure. Then, it has a function of outputting the RTT obtained from the measured time to the calculation unit 104.
The calculation unit 104 has a function of calculating the theoretical throughput using the TCP window size value from the acquisition unit 102 and the RTT value from the RTT measurement unit. Specifically, when the TCP window size value is W and the RTT value is T RTT , the theoretical throughput Smax can be calculated by Smax = W / T RTT .

なお、取得部102、RTT計測部103、算出部104の機能は、携帯端末10が有するCPUが記憶部120に記憶するプログラムを実行することによって実現される。
タイマー106は、RTT計測部103の指示を受けて、PC20が通信パケットをサーバ装置50宛てに送信してから、その通信パケットに対する受領確認の通信パケットを、受信部112がサーバ装置50から受信するまでの時間を計測する機能を有する。また、タイマー106は、測定部105の指示を受けて、出力部107がある一定量の通信パケットを出力するのにかかった時間を測定し、測定部105に出力する機能を有する。
(測定部105、比較部113、優先度設定部114)
測定部105は、タイマー106を制御して、時間を計測させるとともに、タイマー106が計測している時間内に、出力部107が、サーバ装置50宛てに送信した通信パケットのデータ量を測定する機能を有する。また、測定部105は、タイマー106が出力した時間とその間に送信したデータ量とから実スループットを算出する機能を有する。具体的には、タイマー106から得られた時間をTd、その時間Td内に送信したデータ量をDとすると、実スループットStは、St=D/Tdで算出することができる。
Note that the functions of the acquisition unit 102, the RTT measurement unit 103, and the calculation unit 104 are realized by executing a program stored in the storage unit 120 by the CPU of the mobile terminal 10.
Upon receiving an instruction from the RTT measurement unit 103, the timer 106 transmits a communication packet to the server device 50, and the reception unit 112 receives a reception confirmation communication packet for the communication packet from the server device 50. It has a function to measure the time until. In addition, the timer 106 has a function of receiving the instruction from the measurement unit 105, measuring the time taken for the output unit 107 to output a certain amount of communication packets, and outputting the measured time to the measurement unit 105.
(Measurement unit 105, comparison unit 113, priority setting unit 114)
The measurement unit 105 controls the timer 106 to measure the time, and the function of measuring the data amount of the communication packet transmitted from the output unit 107 to the server device 50 within the time measured by the timer 106. Have The measuring unit 105 has a function of calculating actual throughput from the time output by the timer 106 and the amount of data transmitted during that time. Specifically, assuming that the time obtained from the timer 106 is Td and the amount of data transmitted within the time Td is D, the actual throughput St can be calculated as St = D / Td.

比較部113は、算出部104で算出した理論スループットと測定部105で測定した実スループットとを比較し、実スループットが頭打ちになっているか否かを判定し、判定結果を優先度設定部114に出力する。具体的には、比較部113は、実スループットの理論スループットに対する比を求め、その比が予め定められた閾値(例えば、0.95)を超えるか否かによって実スループットが頭打ちになっているか否かを判定する。比較部113は、比が閾値を超える場合には、実スループットが頭打ちになっていると判定する。   The comparison unit 113 compares the theoretical throughput calculated by the calculation unit 104 with the actual throughput measured by the measurement unit 105, determines whether or not the actual throughput has reached its peak, and sends the determination result to the priority setting unit 114. Output. Specifically, the comparison unit 113 obtains a ratio of the actual throughput to the theoretical throughput, and whether or not the actual throughput has reached a peak depending on whether or not the ratio exceeds a predetermined threshold (for example, 0.95). Determine whether. When the ratio exceeds the threshold, the comparison unit 113 determines that the actual throughput has reached its peak.

優先度設定部114は、比較部113が出力した比較結果に基づいて、PC20から出力された通信パケットに設定する優先度を決定し、決定した優先度の情報を出力部107に出力する機能を有する。具体的には、優先度設定部114は、比較部113での比較結果が、実スループットが頭打ちであることを示す場合には、サーバ装置50宛ての通信パケットの優先度を他の通信パケットの優先度より高くすることを示す情報を出力部107に出力する。そうでない場合には、通信パケットの優先度を変更しないことを示す情報を出力部107に出力する。   The priority setting unit 114 has a function of determining a priority to be set for the communication packet output from the PC 20 based on the comparison result output from the comparison unit 113 and outputting information on the determined priority to the output unit 107. Have. Specifically, the priority setting unit 114 sets the priority of the communication packet addressed to the server device 50 to another communication packet when the comparison result in the comparison unit 113 indicates that the actual throughput has reached the peak. Information indicating that the priority is higher than the priority is output to the output unit 107. Otherwise, information indicating that the priority of the communication packet is not changed is output to the output unit 107.

なお、測定部105、比較部113、優先度設定部114の機能は、携帯端末10が有するCPUが記憶部120に記憶するプログラムを実行することによって実現される。
(音声処理部117)
音声処理部117は、例えば、レシーバとマイクとによって構成される。音声処理部117は、制御部101によって制御され、携帯端末10の行う通話における音声の入出力処理を行う機能を有する。
Note that the functions of the measurement unit 105, the comparison unit 113, and the priority setting unit 114 are realized by executing a program stored in the storage unit 120 by the CPU of the mobile terminal 10.
(Audio processor 117)
The audio processing unit 117 is configured by, for example, a receiver and a microphone. The voice processing unit 117 is controlled by the control unit 101 and has a function of performing voice input / output processing in a call performed by the mobile terminal 10.

レシーバは、制御部101によって制御され、制御部101から送られる電気信号を音声に変換して出力する機能を有する。
マイクは、音声を電気信号に変換して、変換した電気信号を制御部101へ送る機能を有する。
(表示部118、操作部119)
表示部118は、例えば、タッチパネル150が有する液晶ディスプレイである。
The receiver is controlled by the control unit 101 and has a function of converting an electrical signal sent from the control unit 101 into sound and outputting the sound.
The microphone has a function of converting sound into an electric signal and sending the converted electric signal to the control unit 101.
(Display unit 118, operation unit 119)
The display unit 118 is a liquid crystal display included in the touch panel 150, for example.

表示部118は、制御部101によって制御され、携帯端末10を利用するユーザに提示する画像を生成して表示する機能を有する。
操作部119は、例えば、タッチパネル150が有するタッチパッド及び操作ボタン群153である。
操作部119は、制御部101によって制御され、携帯端末10を利用するユーザからの接触操作やボタンの押下操作を受け付ける機能を有する。
The display unit 118 is controlled by the control unit 101 and has a function of generating and displaying an image to be presented to a user who uses the mobile terminal 10.
The operation unit 119 is, for example, a touch pad and operation button group 153 included in the touch panel 150.
The operation unit 119 is controlled by the control unit 101 and has a function of accepting a contact operation or a button pressing operation from a user using the mobile terminal 10.

具体的には、操作部119のタッチパッドは、タッチパネルの液晶ディスプレイに表示されたアイコン等の表示物に対するユーザからの接触操作を電気信号に変換して出力する機能を有する。また、操作部119は、ユーザのボタンの押下操作を電気信号に変換して、液晶ディスプレイに表示されたカーソルを移動させたり、アイコン等の表示物を選択する機能を有する。
(電源部121)
電源部121は、例えば、繰り返し充電され得る二次電池パックである。
Specifically, the touch pad of the operation unit 119 has a function of converting a contact operation from the user to a display object such as an icon displayed on the liquid crystal display of the touch panel into an electrical signal and outputting the electrical signal. Further, the operation unit 119 has a function of converting a user's button pressing operation into an electric signal, moving a cursor displayed on the liquid crystal display, and selecting a display object such as an icon.
(Power supply unit 121)
The power supply unit 121 is, for example, a secondary battery pack that can be repeatedly charged.

電源部121は、制御部101の指示により携帯端末10の各機能部を駆動するための電力を供給する機能を有する。
<1.3 データ構造>
(TCPパケット)
図4は、TCP/IPによる通信に用いられるTCPパケットのデータ構造を示す図である。図4では、TCPパケットのデータ構造を、32ビットごとに複数行で図示しているが、実際にはシーケンシャルなビット列のデータである。
The power supply unit 121 has a function of supplying power for driving each functional unit of the mobile terminal 10 according to an instruction from the control unit 101.
<1.3 Data structure>
(TCP packet)
FIG. 4 is a diagram illustrating a data structure of a TCP packet used for TCP / IP communication. In FIG. 4, the data structure of the TCP packet is illustrated by a plurality of lines every 32 bits, but in actuality, it is data of a sequential bit string.

TCPパケットは、ヘッダ部とデータ部312とで構成される。
ヘッダ部は、送信元ポート番号301、宛先ポート番号302、シーケンス番号303、ACK番号304、データオフセット305、予約領域306、制御ビット307、ウィンドウサイズ308、チェックサム309、緊急(Urgent)ポインタ310、及びオプション311から構成される。なお、オプション311がない(サイズが0)場合もあり得る。TCPパケットは、このヘッダ部の後に、データ部312が続く構造である。
The TCP packet is composed of a header part and a data part 312.
The header part includes a source port number 301, a destination port number 302, a sequence number 303, an ACK number 304, a data offset 305, a reserved area 306, a control bit 307, a window size 308, a checksum 309, an urgent pointer 310, And option 311. There may be a case where the option 311 is not provided (the size is 0). The TCP packet has a structure in which a data portion 312 follows this header portion.

送信元ポート番号301は、16ビットのデータ長を持ち、TCPパケットの送信元が送信に用いるポート番号を識別するための番号である。
宛先ポート番号302は、16ビットのデータ長を持ち、宛先となる機器において、通信パケットの受け取りに用いる待ち受けのポート番号を表す。
シーケンス番号303は、32ビットのデータ長を持ち、送信するデータに対して、順序付けを行うためのシーケンス番号を指定するフィールドである。送信するデータ1バイトごとに、シーケンス番号を1つずつ昇順に割り当て、どこまでデータを送信したかを指定する。具体的には、シーケンス番号は、通信データの送信側で管理し、データを送信するたびに、送信したデータのバイト数分だけシーケンス番号が加算され、TCPパケットに含めて送信される。
The transmission source port number 301 has a data length of 16 bits and is a number for identifying the port number used for transmission by the transmission source of the TCP packet.
The destination port number 302 has a data length of 16 bits and represents a standby port number used for receiving a communication packet in the destination device.
The sequence number 303 has a 32-bit data length and is a field for designating a sequence number for ordering the data to be transmitted. For each byte of data to be transmitted, a sequence number is assigned in ascending order one by one to specify how far the data has been transmitted. Specifically, the sequence number is managed on the transmission side of the communication data, and each time data is transmitted, the sequence number is added by the number of bytes of the transmitted data, and transmitted in a TCP packet.

ACK番号304は、32ビットのデータ長を持ち、受信したデータに対して、どこのバイト位置までを受信したかを表すフィールドである。ACK番号304は、データを受信した側が、どこまで受信したかを示すために、応答のTCPパケットにセットして送信する。受信が完了したデータ位置のシーケンス番号+1の値がセットされる。なお、後述するACKフラグがオンの場合にのみ、このACK番号フィールドが有効となる。   The ACK number 304 has a data length of 32 bits, and is a field that indicates to which byte position the received data has been received. The ACK number 304 is set in a response TCP packet and transmitted to indicate how far the data receiving side has received. The value of sequence number +1 of the data position where reception has been completed is set. Note that this ACK number field is valid only when an ACK flag described later is on.

データオフセット305は、4ビットのデータ長を持ち、データ部312が始まる位置を表す。なお、ヘッダ部の直後にデータ部が続いているため、データオフセット305の値は、ヘッダのサイズを表していることになる。データオフセット305の値は、32ビット(4バイト)を1単位として設定される。すなわち、オプション311がなければ、ヘッダ部は、20バイトであるので、データオフセット305の値は「5(2進数で表すと「0101」)」が設定される。   The data offset 305 has a data length of 4 bits and represents a position where the data portion 312 starts. Since the data part immediately follows the header part, the value of the data offset 305 represents the size of the header. The value of the data offset 305 is set with 32 bits (4 bytes) as one unit. That is, if the option 311 is not provided, the header portion is 20 bytes, so the value of the data offset 305 is set to “5 (“ 0101 ”in binary number)”.

データオフセット305に続く6ビットのデータ長は、予約領域306として確保されており、現在は、「0」が設定される。
制御ビット307は、6ビットのデータ長を持ち、それぞれ1ビットのURG(urgent)フラグ、ACKフラグ、PSH(push)フラグ、RST(reset)フラグ、SYN(synchronize)フラグ、及びFIN(finish)フラグで構成される。
The 6-bit data length following the data offset 305 is reserved as a reserved area 306, and currently “0” is set.
The control bit 307 has a data length of 6 bits, each of which is a 1-bit URG (urgent) flag, ACK flag, PSH (push) flag, RST (reset) flag, SYN (synchronize) flag, and FIN (finish) flag. Consists of.

URGフラグからFINフラグまでは、デフォルトでは、初期値が「0」である。それぞれに対応するフラグを有効にする場合に「1」に設定する。
なお、以降、ACKフラグを有効に設定されたTCPパケットを送信、又は、受信することを、それぞれ「ACKを送信する」、「ACKを受信する」と表現する場合がある。他のフラグについても同様の表現を行う場合がある。
From the URG flag to the FIN flag, the initial value is “0” by default. Set to "1" to enable the corresponding flag.
Hereinafter, transmission or reception of a TCP packet in which the ACK flag is set to be valid may be expressed as “transmit ACK” and “receive ACK”, respectively. The same expression may be used for other flags.

URGフラグは、このTCPパケット中に「緊急データ」が含まれていることを表す。
ACKフラグが「1」ならば、TCPヘッダ中に有効なACK番号が含まれていることを表す。実際には、TCP接続確立時の最初に送信されるTCPパケットを除き、全てのTCPパケットのACKフラグに「1」が設定される。一方、最初に送信されるTCPパケットは、ACK番号304の内容は意味を持たないので、ACKフラグに「0」が設定される。
The URG flag indicates that “emergency data” is included in the TCP packet.
If the ACK flag is “1”, it indicates that a valid ACK number is included in the TCP header. Actually, “1” is set in the ACK flag of all TCP packets except the first TCP packet transmitted at the time of establishing the TCP connection. On the other hand, since the contents of the ACK number 304 have no meaning in the first TCP packet transmitted, “0” is set in the ACK flag.

PSHフラグは、受信したデータをすみやかに上位の機器に引き渡すように要求するためのフラグである。
RSTフラグは、TCP接続を中断又は拒否したい場合に設定される。このRSTフラグが設定されていると、受信した側では、接続要求が拒否されたとみなし、現在のTCP接続を破棄又は強制終了をしなければならない。
The PSH flag is a flag for requesting that received data be immediately delivered to a higher-level device.
The RST flag is set when it is desired to interrupt or reject the TCP connection. If this RST flag is set, the receiving side considers that the connection request has been rejected and must discard or forcibly terminate the current TCP connection.

TCP接続がエラーなどで長く中断して、シーケンス番号とACK番号の整合性が取れなくなった場合、ACKを送信する代わりにこのRSTを送信し、現在のTCP接続を強制終了させる。また、TCP接続要求に対して、ACKではなく、RSTを送信すると、接続を拒否していることを表す。例えば、サーバ側のリソースが不足していてオープン要求に応えられない場合や、許可されていないIPアドレスからの接続要求に対して拒否したい場合に、RSTを送信する。   When the TCP connection is interrupted for a long time due to an error or the like and the consistency between the sequence number and the ACK number cannot be obtained, this RST is transmitted instead of ACK, and the current TCP connection is forcibly terminated. In addition, if an RST is transmitted instead of an ACK in response to a TCP connection request, this indicates that the connection is rejected. For example, RST is transmitted when resources on the server side are insufficient to respond to an open request or when it is desired to reject a connection request from an unauthorized IP address.

TCP接続を要求する場合に、SYNフラグに、「1」を設定したTCPパケットを送信する。これによって、TCP接続のオープン処理が開始される。TCP接続は、双方向通信路なので、双方から送信されるそれぞれの最初の接続要求パケットには、このSYNフラグが有効に設定されるが、2番目以降のTCPパケットのSYNフラグは「0」が設定される。SYNを受信した場合、受信側は、自身のACK番号を受信したシーケンス番号に同期させる。これにより、以後の通信ための準備が整う。   When a TCP connection is requested, a TCP packet in which “1” is set in the SYN flag is transmitted. Thereby, the TCP connection open process is started. Since the TCP connection is a two-way communication path, the SYN flag is set to be valid for the first connection request packets transmitted from both sides, but the SYN flag of the second and subsequent TCP packets is “0”. Is set. When receiving SYN, the receiving side synchronizes its own ACK number with the received sequence number. This prepares for subsequent communications.

FINフラグは、TCP接続を終了させるために利用される。FINフラグを有効に設定したTCPパケットは、もうこれ以上データの受信が必要ないことを意味し、FINを受信すると、終了処理を開始する。双方からFINが送られるとTCP接続が終了し、TCP接続のために用意されていた内部バッファなどのリソースが解放される。
ウィンドウサイズ308は、16ビットのデータ長を持ち、受信側のTCPウィンドウサイズを送信側に伝えるために利用される。送信側では、受信側から通知されたTCPウィンドウサイズに従って、受信側からACK受信するまでに送信可能な最大のデータ量を判断する。ウィンドウサイズ308の値が「0」である場合は、データを受信することができないことを意味し、送信側に対してデータの送信を一時的に停止することを要求するために用いる。ウィンドウサイズ308は、16ビット長なので、最大で65,535バイトまでのTCPウィンドウサイズを設定することができる。
The FIN flag is used for terminating the TCP connection. A TCP packet in which the FIN flag is set to be effective means that it is not necessary to receive any more data. When the FIN is received, a termination process is started. When FIN is sent from both sides, the TCP connection is terminated, and resources such as an internal buffer prepared for the TCP connection are released.
The window size 308 has a data length of 16 bits and is used to transmit the TCP window size on the receiving side to the transmitting side. The transmitting side determines the maximum amount of data that can be transmitted before receiving an ACK from the receiving side, according to the TCP window size notified from the receiving side. When the value of the window size 308 is “0”, it means that data cannot be received, and is used to request the transmission side to temporarily stop data transmission. Since the window size 308 is 16 bits long, a TCP window size of up to 65,535 bytes can be set.

本実施の形態の携帯端末10の取得部102は、サーバ装置50から送られる通信パケットに含まれるウィンドウサイズ308を読み出して、TCPウィンドウサイズを取得する。
チェックサム309は、16ビットのデータ長を持ち、TCPパケットの整合性を検査するための検査用データを格納するフィールドである。チェックサムの値は、「1の補数演算」を利用して計算される。
The acquisition unit 102 of the mobile terminal 10 according to the present embodiment reads the window size 308 included in the communication packet sent from the server device 50 and acquires the TCP window size.
The checksum 309 has a 16-bit data length and is a field for storing inspection data for checking the consistency of the TCP packet. The checksum value is calculated using “1's complement arithmetic”.

緊急ポインタ310は、16ビットのデータ長を持ち、緊急データがTCPパケット中に存在する場合に、その緊急データの位置が設定される。このとき、設定される値は、シーケンス番号303からのオフセットで表した値である。なお、緊急データがTCPパケットに存在する場合には、上述のURGフラグに「1」を設定する。
オプション311は、32ビット単位の可変長のデータ長を持ち、TCP接続における各種の特性を設定するために利用される。例えば、MSSやウィンドウサイズのスケーリングオプションなどを、個々のTCP接続ごとに設定するために利用される。
The urgent pointer 310 has a data length of 16 bits, and when urgent data exists in the TCP packet, the position of the urgent data is set. At this time, the set value is a value represented by an offset from the sequence number 303. If urgent data exists in the TCP packet, “1” is set in the URG flag.
The option 311 has a variable data length of 32 bits and is used for setting various characteristics in the TCP connection. For example, MSS and window size scaling options are used to set each TCP connection.

データ部312は、可変長のデータ長を持ち、ヘッダ部の直後に続く。緊急データが存在する場合には、緊急データが直後に続き、その後に、通常のデータが続く。なお、データ部にデータが存在しない単なるTCPヘッダだけのパケットもある。例えば、単にTCPウィンドウサイズを通知したり、キープアライブ(keep-alive)を通知したりするために送信されるTCPパケットは、データ部を必要としない。キープアライブとは、データ通信が何も行われない場合でも、一定時間間隔で空のTCPパケットを送受信することにより、TCP接続がアクティブであることをお互いに通知、確認するための通信機能である。何も通信を行わないでいると、無通信と判断され、通信回線が切断されてしまったり、TCP接続がタイムアウトして切断されてしまったりするので、これを防ぐ目的で利用される。   The data part 312 has a variable data length and follows immediately after the header part. If urgent data is present, the urgent data follows immediately, followed by normal data. There is also a packet having only a TCP header in which no data exists in the data portion. For example, a TCP packet transmitted to simply notify the TCP window size or notify keep-alive does not require a data part. Keep alive is a communication function for notifying and confirming that a TCP connection is active by sending and receiving empty TCP packets at regular time intervals even when no data communication is performed. . If no communication is performed, it is determined that there is no communication, and the communication line is disconnected or the TCP connection is timed out and disconnected. This is used to prevent this.

(IPパケット)
次に、IPパケットのデータ構造について説明する。
図5は、TCP/IPによる通信に用いられるIPパケットのデータ構造を示す図である。図5では、IPパケットのデータ構造を、32ビットごとに複数行で図示しているが、実際にはシーケンシャルなビット列のデータである。
(IP packet)
Next, the data structure of the IP packet will be described.
FIG. 5 is a diagram illustrating a data structure of an IP packet used for TCP / IP communication. In FIG. 5, the data structure of the IP packet is illustrated by a plurality of lines every 32 bits, but in actuality, it is data of a sequential bit string.

IPパケットは、ヘッダ部とデータ部414とで構成される。
ヘッダ部は、バージョン401、ヘッダ長(IHL:Internet Header Length)402、サービスタイプ(TOS:Type Of Service)403、データグラム長404、ID405、フラグ406、フラグメントオフセット407、TTL(Time To Live)408、プロトコル番号409、ヘッダチェックサム410、送信元IPアドレス411、宛先IPアドレス412、及びオプション413から構成される、なお、オプション413がない(サイズが0)場合もあり得る。IPパケットは、このヘッダ部の後に、データ部414が続く構造である。
The IP packet is composed of a header part and a data part 414.
The header part includes a version 401, a header length (IHL: Internet Header Length) 402, a service type (TOS: Type Of Service) 403, a datagram length 404, an ID 405, a flag 406, a fragment offset 407, and a TTL (Time To Live) 408. , Protocol number 409, header checksum 410, source IP address 411, destination IP address 412, and option 413. Note that there may be no option 413 (size is 0). The IP packet has a structure in which a data portion 414 follows this header portion.

バージョン401は、4ビットのデータ長を持ち、IPプロトコルのバージョンを示す。
本実施の形態の通信システム1では、IPv4(Internet Protocol version 4)による通信を用いるので、値は常に「4(2進数で表すと「0100」)」である。
ヘッダ長402は、4ビットのデータ長を持ち、ヘッダ部のサイズを示す。
Version 401 has a data length of 4 bits and indicates the version of the IP protocol.
In the communication system 1 of the present embodiment, since communication using IPv4 (Internet Protocol version 4) is used, the value is always “4 (“ 0100 ”in binary number)”.
The header length 402 has a 4-bit data length and indicates the size of the header part.

ヘッダ長402の値は、32ビット(4バイト)を1単位として設定される。すなわち、オプション413がなければ、ヘッダ部は、20バイトであるので、ヘッダ長402の値は「5(2進数で表すと「0101」)」が設定される。
サービスタイプ403は、8ビットのデータ長を持ち、IPパケットの優先度などを指定するために使われる。
The value of the header length 402 is set with 32 bits (4 bytes) as one unit. That is, if the option 413 is not provided, the header portion is 20 bytes, so the value of the header length 402 is set to “5 (“ 0101 ”in binary number)”.
The service type 403 has a data length of 8 bits and is used to specify the priority of the IP packet.

サービスタイプ403の8ビットのうちの先頭から3ビットは、IP Precedenceと呼ばれ、優先順位を設定するために用いられる。すなわち、IP Precedenceを用いてIPパケットに8段階の優先順位を設定することができ、値の大きい方が優先度が高い。例えば、PCから送信されるIPパケットには、IP Precedenceに「0」が設定され、IP電話など音声機器からのIPパケットには、「5」が設定されるのが一般的である。   Of the 8 bits of the service type 403, 3 bits from the head are called IP Precedence and are used to set priority. That is, IP priority can be set to eight levels using IP precedence, and the higher the value, the higher the priority. For example, “0” is generally set in IP precedence for IP packets transmitted from a PC, and “5” is generally set for IP packets from voice devices such as IP phones.

本実施の形態の携帯端末10は、PC20からサーバ装置50への送信の際の実スループットが頭打ちと判断した場合には、その送信に係る通信パケットにおけるIP Precedenceの値を「0」より大きい値に設定することで、優先度を高く設定する。
なお、IP Precedenceの設定において、その値が「6」及び「7」は、ルーティングなどのネットワーク制御用に用いられ、ユーザが優先度を設定できる値の範囲は、「0」〜「5」である。
When the mobile terminal 10 according to the present embodiment determines that the actual throughput at the time of transmission from the PC 20 to the server device 50 has reached its peak, the IP Precedence value in the communication packet related to the transmission is a value greater than “0”. By setting to, the priority is set high.
In the IP Precedence setting, the values “6” and “7” are used for network control such as routing, and the range of values for which the user can set the priority is “0” to “5”. is there.

データグラム長404は、16ビットのデータ長を持ち、IPパケット全体のサイズをバイト単位で表した値を示す。データ長が16ビットであるので、1つのIPパケットで送信可能な最大のデータ量は、65,535バイト(=64Kバイト)である。また、ヘッダ部の最小サイズは、20バイトであるのでデータグラム長404の最小値は、20バイト+データ部414のバイトサイズである。   The datagram length 404 has a data length of 16 bits and indicates a value representing the size of the entire IP packet in bytes. Since the data length is 16 bits, the maximum amount of data that can be transmitted in one IP packet is 65,535 bytes (= 64 Kbytes). Further, since the minimum size of the header portion is 20 bytes, the minimum value of the datagram length 404 is 20 bytes + the byte size of the data portion 414.

なお、IPパケットがフラグメント化されている場合は、データグラム長は、元のIPパケット全体のサイズではなく、個々のIPフラグメントのサイズを示す。
ID405は、16ビット長のデータ長を持ち、フラグメント化されたIPパケットを識別するために用いられる。IPパケットのフラグメント化(以下、「フラグメンテーション」と呼ぶ。)とは、IPパケットをいくつかに分割して送信するという機能である。上述したように、IPパケットの最大サイズは64Kバイトであるが、このサイズのデータを1回で送信することのできるネットワーク媒体はまれである。そのため、送信可能なサイズにまでIPパケットを分割してから送信を行う。そして、送信先の機器で分割されて届いたIPパケットを合成し、元のサイズのIPパケットに再構成する。送信元の機器は、IPパケットを送信するたびにランダムな16ビットの数値をID405に設定する。1つのIPパケットから分割されてフラグメント化されたパケットは、全て同じIDが設定されているので、送信先の機器で1つのIPパケットに再構成する場合の識別子の役目を果たす。
When an IP packet is fragmented, the datagram length indicates the size of each IP fragment, not the size of the entire original IP packet.
The ID 405 has a data length of 16 bits and is used to identify a fragmented IP packet. Fragmentation of an IP packet (hereinafter referred to as “fragmentation”) is a function of transmitting an IP packet by dividing it into several parts. As described above, the maximum size of an IP packet is 64 Kbytes, but a network medium that can transmit data of this size at one time is rare. Therefore, transmission is performed after the IP packet is divided to a size that can be transmitted. Then, the IP packets received after being divided by the destination device are combined and reconfigured into the original size IP packet. The transmission source device sets a random 16-bit numerical value in the ID 405 every time an IP packet is transmitted. Since all packets that are fragmented from one IP packet are set to the same ID, they serve as identifiers when the destination device reconfigures them into one IP packet.

フラグ406は、3ビットのデータ長を持ち、フラグメンテーションの際に利用される特別なフラグ情報である。3ビットのうち、先頭の1ビットは、リザーブであり、常に「0」が設定される。残りの2ビットは、それぞれ、MF(More Fragment)ビットとDF(Don't Fragment)ビットとである。
MFビットは、フラグメント化されたIPパケットが更に続くかどうかを示すフラグである。1つのIPパケットを複数に分割した場合、最後部のパケットではこのMFビットを「0」にし、そのほかのパケットではMFビットを「1」に設定する。MFビットが「1」である間は、フラグメント化されたIPパケットが更に後ろに続くということを示す。
The flag 406 is special flag information having a data length of 3 bits and used for fragmentation. Of the 3 bits, the first 1 bit is reserved and is always set to “0”. The remaining two bits are an MF (More Fragment) bit and a DF (Don't Fragment) bit, respectively.
The MF bit is a flag indicating whether or not a fragmented IP packet continues. When one IP packet is divided into a plurality of packets, the MF bit is set to “0” in the last packet, and the MF bit is set to “1” in the other packets. While the MF bit is “1”, it indicates that a fragmented IP packet follows further.

DFビットは、IPパケットのフラグメント化を禁止するか否かを示すフラグである。通信経路上にあるルータ等は、必要ならばIPパケットのフラグメント化を行うが、このDFビットが「1」に設定されていると、フラグメント化を行わない。
フラグメントオフセット407は、13ビットのデータ長を持ち、フラグメント化されたIPパケットにおいて、元のIPパケット中のどの部分に相当するかを示すためのオフセットの値を示す。なお、フラグメントオフセット407は13ビット長しかないが、フラグメントは、8バイト単位で行われるので、元のIPパケットの位置を8で割った値を、フラグメントオフセット407に設定することで、64Kバイトの範囲を表すことができる。
The DF bit is a flag indicating whether or not fragmentation of the IP packet is prohibited. A router or the like on the communication path performs fragmentation of the IP packet if necessary, but does not perform fragmentation when the DF bit is set to “1”.
The fragment offset 407 has a data length of 13 bits, and indicates an offset value for indicating which part in the original IP packet corresponds to the fragmented IP packet. Although the fragment offset 407 is only 13 bits long, fragmentation is performed in units of 8 bytes. Therefore, by setting the value obtained by dividing the position of the original IP packet by 8 to the fragment offset 407, 64 Kbytes. A range can be represented.

TTL408は、8ビットのデータ長を持ち、IPパケットがネットワーク上で有効である時間を表す。TTL408の値は、通信経路上のIPパケット中継する機器において、ヘッダ処理を行う際に更新される。TTL408の値が「0」の場合、そのIPパケットは破棄される。ここで設定される値は、秒単位の値である。
プロトコル番号409は、8ビットのデータ長を持ち、IPプロトコルより上位に当たるネットワーク・プロトコルの種類を表す。プロトコル番号409で設定される具体的なプロトコルとしては、例えば、ICMP、TCP、UDP、GRE等がある。ICMP、TCP、UDP、GREのそれぞれのプロトコルを示す場合には、プロトコル番号409には、それぞれ「1」、「6」、「17」、「47」が設定される。
The TTL 408 has a data length of 8 bits and represents the time when the IP packet is valid on the network. The value of TTL 408 is updated when header processing is performed in a device that relays IP packets on a communication path. When the value of TTL 408 is “0”, the IP packet is discarded. The value set here is a value in seconds.
The protocol number 409 has a data length of 8 bits and represents the type of network protocol corresponding to a higher rank than the IP protocol. Specific protocols set by the protocol number 409 include ICMP, TCP, UDP, GRE, and the like. When indicating each protocol of ICMP, TCP, UDP, and GRE, “1”, “6”, “17”, and “47” are set in the protocol number 409, respectively.

ヘッダチェックサム410は、16ビットのデータ長を持ち、ヘッダ部のチェックサムが設定される。なお、データ部414は、チェックサムの対象ではない。これは、IPパケットが、フラグメント化されている場合には、データ部の全てのデータがないのでチェックサムが計算できないからである。チェックサムの値は「1の補数演算」を利用して計算される。   The header checksum 410 has a data length of 16 bits, and the checksum of the header part is set. The data portion 414 is not a checksum target. This is because if the IP packet is fragmented, the checksum cannot be calculated because there is no data in the data part. The checksum value is calculated using “1's complement arithmetic”.

送信元IPアドレス411は、32ビットのデータ長を持ち、送信元の機器のIPアドレスを示す。送信先のIPアドレスがあれば、IPパケットは、送信先に届けることができるが、送信先から送信元に応答のパケットを返信する場合に、この送信元IPアドレス411で示されたIPアドレスを宛先IPアドレス412に設定して、IPパケットを送信する。   The transmission source IP address 411 has a data length of 32 bits and indicates the IP address of the transmission source device. If there is an IP address of the transmission destination, the IP packet can be delivered to the transmission destination. However, when a response packet is returned from the transmission destination to the transmission source, the IP address indicated by the transmission source IP address 411 is changed. An IP packet is transmitted with the destination IP address 412 set.

宛先IPアドレスは、32ビットのデータ長を持ち、送信先の機器のIPアドレスを示す。通信ネットワーク上におけるルーティング処理では、この宛先IPアドレス412を元にしてルーティング処理が行われ、目的の機器へとIPパケットが届けられる。
本実施の形態では、PC20がサーバ装置50にデータを送信する場合には、自機のIPアドレスを送信元IPアドレス411に設定し、サーバ装置50のIPアドレスを宛先IPアドレスに設定したIPパケットを生成して送信する。
The destination IP address has a data length of 32 bits and indicates the IP address of the destination device. In routing processing on the communication network, routing processing is performed based on the destination IP address 412 and an IP packet is delivered to the target device.
In the present embodiment, when the PC 20 transmits data to the server device 50, the IP packet in which the IP address of the own device is set as the transmission source IP address 411 and the IP address of the server device 50 is set as the destination IP address. Generate and send.

オプション413は、32ビット単位の可変長のデータ長を持ち、IPパケットの送信に伴い、付加的な機能を実現するために利用される。なお、オプション413のデータ長は0でもよい。
オプション413は、通常は利用されないが、例えば、IPパケットの通過のログ(時間の記録)やルーティング処理に利用することができる。具体的には、ルーティングの経路を強制的に指定したり、IPパケットが通過したルート(ルータのIPアドレス等)を記録させたりするために用いることができる。
The option 413 has a variable data length of 32 bits, and is used to realize an additional function along with transmission of an IP packet. Note that the data length of the option 413 may be zero.
The option 413 is not normally used, but can be used for, for example, an IP packet passage log (time recording) or a routing process. Specifically, it can be used to forcibly specify a routing route or to record a route (IP address of a router, etc.) through which an IP packet has passed.

データ部414は、可変長のデータ長を持ち、ヘッダ部の直後に続く。通常はTCP、UDP、ICMP等のパケットが含まれる。データ部414にTCPパケットが含まれる場合、IPパケットのデータ部414には、最小でも20バイトのデータが含まれる。
このように、TCPパケットで得られる送信元と宛先とのポート番号、及びIPパケットから得られる送信元と宛先とのIPアドレスの4つの組によってデータフローを区別することができる。
The data part 414 has a variable data length and immediately follows the header part. Usually, packets such as TCP, UDP, and ICMP are included. When the data portion 414 includes a TCP packet, the data portion 414 of the IP packet includes at least 20 bytes of data.
As described above, the data flow can be distinguished by four sets of the source and destination port numbers obtained from the TCP packet and the source and destination IP addresses obtained from the IP packet.

<1.4 動作>
図6は、通信システム1での、PC20とサーバ装置50とのデータの送受信の概略を示すシーケンス図である。
なお、図6のシーケンス図では、PC20とサーバ装置50とのTCP/IPによる通信は確立しているものとし、通信の確立のためのパケットの送受信の手順は省略している。
<1.4 Operation>
FIG. 6 is a sequence diagram illustrating an outline of data transmission / reception between the PC 20 and the server device 50 in the communication system 1.
In the sequence diagram of FIG. 6, it is assumed that TCP / IP communication between the PC 20 and the server device 50 is established, and a packet transmission / reception procedure for establishing communication is omitted.

PC20は、サーバ装置50にデータを送信する場合、TCP/IPのプロトコルに従って送信するデータに係る通信パケットを生成し、通信パケットの送信を開始する(ステップS101)。
PC20が出力したTCPデータ#1の通信パケットは、携帯端末10を介して、基地局30に送信され、ネットワーク40に接続されているサーバ装置50に届けられる(ステップS102)。
When transmitting data to the server device 50, the PC 20 generates a communication packet related to the data to be transmitted in accordance with the TCP / IP protocol, and starts transmitting the communication packet (step S101).
The communication packet of TCP data # 1 output from the PC 20 is transmitted to the base station 30 via the portable terminal 10 and delivered to the server device 50 connected to the network 40 (step S102).

サーバ装置50は、TCPデータ#1の通信パケットを受信すると、受信確認の応答として、TCP ACK#1を生成して、PC20宛てに送信する(ステップS104)。
サーバ装置50が出力したTCP ACK#1の通信パケットは、基地局30を介して携帯端末10に送られ、テザリングによって携帯端末10に接続しているPC20に届けられる(ステップS105)。
When receiving the communication packet of TCP data # 1, the server device 50 generates TCP ACK # 1 as a response to the reception confirmation and transmits it to the PC 20 (step S104).
The TCP ACK # 1 communication packet output by the server device 50 is sent to the mobile terminal 10 via the base station 30, and is delivered to the PC 20 connected to the mobile terminal 10 by tethering (step S105).

PC20は、TCP ACK#1を受信する(ステップS106)と、TCPデータ#1が正常に送信できたと判断し、TCPデータ#1の送信を完了する(ステップS107)。
PC20は、引き続きデータを送信するために、TCPデータ#2を生成して、通信パケットを送信する(ステップS108)。そして、ステップS102と同様にTCPデータ#2を送信する(ステップS109)。
When receiving the TCP ACK # 1 (step S106), the PC 20 determines that the TCP data # 1 has been transmitted normally, and completes the transmission of the TCP data # 1 (step S107).
In order to continue transmitting data, the PC 20 generates TCP data # 2 and transmits a communication packet (step S108). Then, TCP data # 2 is transmitted as in step S102 (step S109).

サーバ装置50は、TCPデータ#2を受信し(ステップS110)、TCPデータ#2の受信確認の応答としてTCP ACK#2を返信する(ステップS111、ステップS112)。なお、ステップS110、ステップS111、ステップS112の処理は、それぞれ、ステップS103、ステップS104、ステップS105の処理と同様である。   The server device 50 receives the TCP data # 2 (step S110), and returns a TCP ACK # 2 as a response to the reception confirmation of the TCP data # 2 (steps S111 and S112). Note that the processes of step S110, step S111, and step S112 are the same as the processes of step S103, step S104, and step S105, respectively.

PC20はTCP ACK#2を受信すると(ステップS113)、TCP ACK#2が正常に送信できたと判断し、TCPデータ#2の送信が完了する(ステップS114)。
以降、PC20は、所望のデータ全てを送信するまで、通信パケットを送信し、その受信確認を受け取る処理を繰り返す。同様にサーバ装置50は、通信パケットを受信するごとにACKを送信する。このようにして、PC20とサーバ装置50との間で、携帯端末10を介してデータ通信に係る通信パケットの送受信が行われる。
When the PC 20 receives the TCP ACK # 2 (step S113), the PC 20 determines that the TCP ACK # 2 has been transmitted normally and completes the transmission of the TCP data # 2 (step S114).
Thereafter, the PC 20 repeats the process of transmitting the communication packet and receiving the reception confirmation until all the desired data is transmitted. Similarly, the server device 50 transmits ACK every time a communication packet is received. In this manner, communication packets related to data communication are transmitted / received between the PC 20 and the server device 50 via the portable terminal 10.

ところで、TCPパケットを1つ送るたびに、ACKの受信を待っているのは、データの送受信に係るオーバヘッドが大きく効率が悪い。そこで、実際には、TCPウィンドウサイズに基づいて、図7で示すようなデータの送受信が行われる。
なお、図7のシーケンス図では、図6と同様にPC20とサーバ装置50とのTCP/IPによる通信は確立しているものとし、通信の確立のためのパケットの送受信の手順は省略している。また、データ通信の確立時にサーバ装置50から送られるデータフローに係る通信パケットによってPC20及び携帯端末10は、TCPウィンドウサイズを取得しているものとする。
By the way, each time one TCP packet is sent, waiting for reception of an ACK has a large overhead related to data transmission and reception and is inefficient. Therefore, actually, data transmission / reception as shown in FIG. 7 is performed based on the TCP window size.
In the sequence diagram of FIG. 7, it is assumed that TCP / IP communication between the PC 20 and the server device 50 is established as in FIG. 6, and a packet transmission / reception procedure for establishing communication is omitted. . Further, it is assumed that the PC 20 and the mobile terminal 10 have acquired the TCP window size by the communication packet related to the data flow sent from the server device 50 when establishing the data communication.

PC20は、サーバ装置50にデータを送信する場合、データをTCP/IPのプロトコルに従ってTCPウィンドウサイズで示されるデータ量を超えないサイズの通信パケットを生成し、通信パケットの送信を開始する(ステップS201)。図7の例では、TCPデータ#1〜#4までの4つの通信パケットを生成して送信している(ステップS202〜S205)。   When transmitting data to the server device 50, the PC 20 generates a communication packet having a size not exceeding the data amount indicated by the TCP window size in accordance with the TCP / IP protocol, and starts transmitting the communication packet (step S201). ). In the example of FIG. 7, four communication packets of TCP data # 1 to # 4 are generated and transmitted (steps S202 to S205).

サーバ装置50は、TCPデータ#1〜#4を受信する(ステップS206〜S209)と、TCPデータ#1〜#4それぞれに対してTCP ACK#1〜#4を返信する(ステップS202a〜S205a)。同図のように、サーバ装置50は、TCP ACK#1〜#3の受信を確認する前にTCPデータ#2〜#4を送信することができる。
なお、図7では、TCPデータ#1〜#4を番号順に受信するようになっているが、サーバ装置50は、TCPデータ#1〜#4をどの順番で受信しても構わない。携帯端末10からサーバ装置50へ到達するまでに、これらの通信パケットがたどるネットワークの経路によって、到達順序が変わることがあり得るからである。また、PC20が受信するTCP ACK#1〜#4の順番もどの順番でも構わない。
When the server device 50 receives the TCP data # 1 to # 4 (steps S206 to S209), it returns TCP ACKs # 1 to # 4 to the TCP data # 1 to # 4, respectively (steps S202a to S205a). . As shown in the figure, the server device 50 can transmit the TCP data # 2 to # 4 before confirming the reception of the TCP ACKs # 1 to # 3.
In FIG. 7, the TCP data # 1 to # 4 are received in numerical order, but the server device 50 may receive the TCP data # 1 to # 4 in any order. This is because the arrival order may change depending on the network route that these communication packets follow before reaching the server device 50 from the mobile terminal 10. Further, the order of TCP ACKs # 1 to # 4 received by the PC 20 may be any order.

サーバ装置50が出力したTCP ACK#1〜#4の通信パケットは、基地局30を介して携帯端末10に送られ、テザリングによって携帯端末10に接続しているPC20に届けられる。
PC20は、TCP ACK#1〜#4を受信すると、TCPデータ#1〜#4が正常に送信できたと判断し、TCPデータ#1〜#4の送信を完了する(ステップS210)。
なお、TCPデータの送信から、TCP ACKの受信までの時間がRTTである。例えば、ステップS202のTCPデータ#1の送信から、ステップS202aのTCP ACK#1の受信までの時間がRTT#1である。同様にして、TCPデータ#2〜#4それぞれの送信に対するTCP ACK#2〜#4の受信までの時間が、それぞれRTT#2〜#4である。なお、本実施の形態では、ある一定期間内のRTTの平均値を用いて、理論スループット算出を行う。
The TCP ACK # 1 to # 4 communication packets output by the server device 50 are sent to the mobile terminal 10 via the base station 30 and delivered to the PC 20 connected to the mobile terminal 10 by tethering.
When receiving the TCP ACKs # 1 to # 4, the PC 20 determines that the TCP data # 1 to # 4 can be normally transmitted, and completes the transmission of the TCP data # 1 to # 4 (step S210).
The time from transmission of TCP data to reception of TCP ACK is RTT. For example, the time from the transmission of TCP data # 1 in step S202 to the reception of TCP ACK # 1 in step S202a is RTT # 1. Similarly, the time until the reception of TCP ACKs # 2 to # 4 for the transmissions of TCP data # 2 to # 4 is RTT # 2 to # 4, respectively. In this embodiment, the theoretical throughput is calculated using the average value of RTT within a certain period.

このように、TCPウィンドウサイズを利用して、TCPウィンドウサイズを超えない間は、通信パケットを連続して送信でき、サーバ装置50から個々の通信パケットに対するACKの受信を待たずに、TCPウィンドウサイズを超えないデータ量までの通信パケットの送信を行うことができる。これにより、送信データの受領確認に係るオーバヘッドの時間を短縮できる。   As described above, the TCP window size can be used to continuously transmit communication packets as long as the TCP window size is not exceeded, and the TCP window size can be transmitted without waiting for the reception of an ACK for each communication packet from the server device 50. It is possible to transmit communication packets up to a data amount not exceeding. As a result, the overhead time related to the receipt confirmation of the transmission data can be shortened.

次に、図7で示すシーケンスでデータ通信に係るデータフローの処理を行う場合における携帯端末10での処理について説明する。
図8に、携帯端末10におけるデータ通信に係るデータフローの処理のフローチャートを示す。
なお、携帯端末10は、PC20とサーバ装置50とのデータ通信に係るデータフローを中継するだけでなく、PC20と他のサーバ装置とのデータ通信、又は、PC20以外の機器とネットワーク40上の機器とのデータ通信に係るデータフローをも中継しているものとする。
Next, a description will be given of processing in the mobile terminal 10 in the case where data flow processing related to data communication is performed in the sequence shown in FIG.
FIG. 8 shows a flowchart of data flow processing related to data communication in the mobile terminal 10.
The mobile terminal 10 not only relays a data flow related to data communication between the PC 20 and the server device 50, but also performs data communication between the PC 20 and another server device, or a device other than the PC 20 and a device on the network 40. It is also assumed that the data flow related to data communication with is relayed.

制御部101は、タイマー106を制御し、実スループットの算出に用いるためのタイマーTdの値を0に初期化(Td=0)する(ステップS11)。
次に、制御部101は、PC20とサーバ装置50との通信を確立するために、PC20がサーバ装置50に接続要求するために出力したSYNを、テザリング部115を介して受け取り、出力部107に出力する。送出部109は、バッファ108からSYNを示す通信パケットを取り出し、通信部110に出力する。通信部110は、アンテナ111を介して、基地局30にSYNを送信する(ステップS12)。基地局30が受け取ったSYNは、ネットワーク40を通じてサーバ装置50に届けられる。SYNを受信したサーバ装置50は、接続を許可するACKをPC20宛てに送信する。携帯端末10の受信部112は、PC20宛てのACKを受信し(ステップS13)、テザリング部115を介してPC20にACKを出力する。PC20からSYNを送信し、その応答としてACKをサーバ装置50から受信することによって、携帯端末10を介したPC20とサーバ装置50との通信が確立する。
The control unit 101 controls the timer 106 to initialize the value of the timer Td used for calculating the actual throughput to 0 (Td = 0) (step S11).
Next, the control unit 101 receives, via the tethering unit 115, the SYN output from the PC 20 for requesting connection to the server device 50 in order to establish communication between the PC 20 and the server device 50, and sends it to the output unit 107. Output. The sending unit 109 takes out a communication packet indicating SYN from the buffer 108 and outputs it to the communication unit 110. The communication unit 110 transmits SYN to the base station 30 via the antenna 111 (step S12). The SYN received by the base station 30 is delivered to the server device 50 through the network 40. The server device 50 that has received SYN transmits an ACK that permits connection to the PC 20. The receiving unit 112 of the mobile terminal 10 receives the ACK addressed to the PC 20 (step S13), and outputs the ACK to the PC 20 via the tethering unit 115. By transmitting SYN from the PC 20 and receiving ACK as a response from the server device 50, communication between the PC 20 and the server device 50 via the mobile terminal 10 is established.

また、制御部101は、測定部105を制御して、PC20からサーバ装置50宛ての通信パケットにおいて、タイマーTdを初期化してから、出力部107が出力した通信パケットの総データ量Dを測定させる。
携帯端末10の取得部102は、受信部112で受信したサーバ装置50からの通信パケットに含まれるTCPパケット300のウィンドウサイズ308からTCPウィンドウサイズWを取得する(ステップS14)。
In addition, the control unit 101 controls the measurement unit 105 to measure the total data amount D of the communication packet output from the output unit 107 after initializing the timer Td in the communication packet addressed to the server device 50 from the PC 20. .
The acquisition unit 102 of the mobile terminal 10 acquires the TCP window size W from the window size 308 of the TCP packet 300 included in the communication packet from the server device 50 received by the reception unit 112 (step S14).

次に、制御部101は、タイマー106を制御し、経過時間を計測するためのタイマーTの値と、変数iの値を初期化させる(T=0、i=0)(ステップS15)。
更に、制御部101は、タイマー106を制御し、RTTを計測するためのタイマーTRTT(i)の値を初期化(TRTT(i)=0)させる(ステップS16)。
テザリング部115は、PC20からサーバ装置50へ送信する通信パケットWp(i)を受信し、制御部101に出力する(ステップS17)。
Next, the control unit 101 controls the timer 106 to initialize the value of the timer T for measuring the elapsed time and the value of the variable i (T = 0, i = 0) (step S15).
Further, the control unit 101 controls the timer 106 to initialize the value of the timer T RTT (i) for measuring RTT (T RTT (i) = 0) (step S16).
The tethering unit 115 receives the communication packet Wp (i) transmitted from the PC 20 to the server device 50, and outputs it to the control unit 101 (step S17).

制御部101は、出力部107を制御して、PC20から受信した通信パケットWp(i)をバッファ108に出力する。
制御部101は、サーバ装置50とのデータ送受信中に、サーバ装置50から前回のウィンドウサイズWまで通信パケットを送信した後にACKを受け取った時点から送信した通信パケットの累積パケット量に、次に送信しようとしている通信パケットWp(i)のパケット量を加算したパケット量(累積パケット量+Wp(i)、以下、「想定累積パケット量」と呼ぶ。)がTCPウィンドウサイズWを超えているか否かを判定する(ステップS18)。
The control unit 101 controls the output unit 107 to output the communication packet Wp (i) received from the PC 20 to the buffer 108.
During the data transmission / reception with the server apparatus 50, the control unit 101 transmits the communication packet from the server apparatus 50 to the previous window size W and then transmits the communication packet to the accumulated packet amount transmitted from the time when the ACK is received. Whether or not the packet amount (cumulative packet amount + Wp (i), hereinafter referred to as “estimated cumulative packet amount”) obtained by adding the packet amount of the communication packet Wp (i) to be exceeded exceeds the TCP window size W. Determination is made (step S18).

想定累積パケット量がTCPウィンドウサイズWを超えていない場合(ステップS18:NO)には、制御部101は、送出部109に指示し、送出部109にバッファ108からサーバ装置50への通信パケットWp(i)を取り出させ、通信部110に出力させる。通信部110は基地局30へ通信パケットWp(i)を送信する(ステップS19)。   If the estimated cumulative packet amount does not exceed the TCP window size W (step S18: NO), the control unit 101 instructs the sending unit 109 to send the communication packet Wp from the buffer 108 to the server device 50 to the sending unit 109. (I) is taken out and output to the communication unit 110. Communication unit 110 transmits communication packet Wp (i) to base station 30 (step S19).

次に、制御部101は、受信部112がサーバ装置50から、これまでに送信した通信パケットWp(x)(x=0〜i)のうちのどれかに対するACKを受信したか否かを判定する(ステップS20)。
受信部112が、サーバ装置50から、送信した通信パケットWp(x)に対するACKを受信した場合(ステップS20:YES)、制御部101は、タイマー106を制御し、タイマーTRTT(x)を停止させ、その時点での値を保持する(ステップS21)。次に、制御部101は、変数iを1増分する(ステップS22)。そして、タイマーTが予め定められた経過時間の閾値Tth(例えば、1秒)以上か否かを判定する(ステップS23)。
Next, the control unit 101 determines whether or not the receiving unit 112 has received an ACK for any of the communication packets Wp (x) (x = 0 to i) transmitted so far from the server device 50. (Step S20).
When the receiving unit 112 receives an ACK for the transmitted communication packet Wp (x) from the server device 50 (step S20: YES), the control unit 101 controls the timer 106 and stops the timer T RTT (x). And hold the value at that time (step S21). Next, the control unit 101 increments the variable i by 1 (step S22). Then, it is determined whether or not the timer T is equal to or greater than a predetermined elapsed time threshold Tth (for example, 1 second) (step S23).

一方、受信部112が、サーバ装置50から、送信した通信パケットWp(x)に対するACKを受信していない場合(ステップS20:NO)、タイマーTRTT(x)を停止することなく、ステップS22の処理を行う。なお、制御部101は、送信した通信パケットWp(x)に対するACKを受信すると、タイマーTRTT(x)を停止し、その時点での値を保持する。 On the other hand, when the receiving unit 112 has not received an ACK for the transmitted communication packet Wp (x) from the server device 50 (step S20: NO), the timer T RTT (x) is not stopped and the process of step S22 is performed. Process. When receiving an ACK for the transmitted communication packet Wp (x), the control unit 101 stops the timer T RTT (x) and holds the value at that time.

制御部101は、タイマーTが閾値Tthを超えていなければ、ステップS16からの処理を繰返し、そうでなければ、送信した通信パケットWp(x)(x=0〜i)のすべてについて、ACKを受信したか否かを判定し、ACKを受信した際に、受信したACKに対応するタイマーTRTT(x)を停止し、その時点での値を保持する(ステップS24)。
送信した通信パケット全てについて、ACKを受信すると(ステップS24:YES)、制御部101は、それまでに計測したTRTT(i)の平均を算出し、TRTTとする(ステップS25)。なお、本実施の形態では、送信した通信パケットについてのACKを全て正常に受信するものとする。
If the timer T does not exceed the threshold value Tth, the control unit 101 repeats the processing from step S16. Otherwise, the control unit 101 returns ACK for all the transmitted communication packets Wp (x) (x = 0 to i). It is determined whether or not it has been received, and when the ACK is received, the timer T RTT (x) corresponding to the received ACK is stopped and the value at that time is held (step S24).
When ACK is received for all the transmitted communication packets (step S24: YES), the control unit 101 calculates the average of T RTT (i) measured so far and sets it as T RTT (step S25). In this embodiment, it is assumed that all ACKs for transmitted communication packets are normally received.

次に、制御部101は、バッファに蓄積されているサーバ装置50宛ての通信パケットの送信を再開し、実スループットと理論スループットとの算出及び比較処理を行う(ステップS26)。なお、この処理の詳細は後述する。
一方、想定累積パケット量がTCPウィンドウサイズを超える場合(ステップS18:YES)には、制御部101は、送出部109に指示し、サーバ装置50への通信パケットの送出を行わせず、繰返し処理を抜けてステップS24の処理に進む(ステップS18:YES)。
Next, the control unit 101 resumes transmission of communication packets addressed to the server device 50 accumulated in the buffer, and performs calculation processing and comparison processing between the actual throughput and the theoretical throughput (step S26). Details of this process will be described later.
On the other hand, when the assumed accumulated packet amount exceeds the TCP window size (step S18: YES), the control unit 101 instructs the sending unit 109 to repeat the processing without sending the communication packet to the server device 50. The process proceeds to step S24 (step S18: YES).

制御部101は、ステップS25で算出した実スループットの値Stの理論スループットの値Smaxに対する比(St/Smax)が閾値Rth(例えば、Rth=0.95)より大きいか否かを判定する(ステップS27)。St/Smaxが、閾値Rthより大きい場合、すなわち、実スループットが理論スループットと同程度の速度である場合(ステップS27:YES)には、制御部101は、実スループットが頭打ちになっていると判断し、サーバ装置50宛の通信パケットの優先度を高く設定する(ステップS28)。具体的には、例えば、サーバ装置50宛てのIPパケット400のサービスタイプ403に含まれるIP Precedenceの値を「0」より大きい値(例えば、「5」)に設定する。なお、他のデータフローの通信パケットのIP Precedenceの値は「0」が設定されているものとする。更に、本実施の形態の携帯端末10における通信パケットの生成処理には、このように、PC20からの通信パケットのヘッダ部の一部を書き換える処理を含むものとする。   The control unit 101 determines whether or not the ratio (St / Smax) of the actual throughput value St calculated in step S25 to the theoretical throughput value Smax is larger than a threshold value Rth (for example, Rth = 0.95) (step step). S27). When St / Smax is larger than the threshold value Rth, that is, when the actual throughput is about the same speed as the theoretical throughput (step S27: YES), the control unit 101 determines that the actual throughput has reached its peak. The priority of the communication packet addressed to the server device 50 is set high (step S28). Specifically, for example, the value of IP Precedence included in the service type 403 of the IP packet 400 addressed to the server device 50 is set to a value larger than “0” (for example, “5”). It is assumed that “0” is set as the IP Precedence value of communication packets of other data flows. Furthermore, the communication packet generation process in the mobile terminal 10 of the present embodiment includes a process of rewriting a part of the header part of the communication packet from the PC 20 as described above.

次に、制御部101は、タイマー106を制御して、実スループットの算出に用いるためのタイマーTdの値を初期化する(Td=0)(ステップS29)。
制御部101は、PC20からサーバ装置50へのデータ送信が完了したかを判定する(ステップS30)。具体的には、PC20からTCPパケットの制御ビット307のFINフラグが有効な通信パケット、すなわちFINフラグに「1」が設定されている通信パケットがサーバ装置50に送信され、更に、サーバ装置50から、その応答として、TCPパケットの制御ビット307のFINフラグが有効である通信パケットを受信した場合にデータ転送が完了したと判定する。
Next, the control unit 101 controls the timer 106 to initialize the value of the timer Td used for calculating the actual throughput (Td = 0) (step S29).
The control unit 101 determines whether data transmission from the PC 20 to the server device 50 is completed (step S30). Specifically, a communication packet in which the FIN flag of the control bit 307 of the TCP packet is valid, that is, a communication packet in which “1” is set in the FIN flag is transmitted from the PC 20 to the server device 50. As a response, when a communication packet in which the FIN flag of the control bit 307 of the TCP packet is valid is received, it is determined that the data transfer is completed.

データ転送が完了していないと判定した場合(ステップS30:NO)、ステップS14に戻り、データ転送の処理を続ける。データ転送が完了した場合(ステップS30:YES)は処理を終了する。
(実スループットと理論スループットとの算出及び比較処理)
次に、携帯端末10における実スループットと理論スループットとの算出及び比較処理について説明する。この処理は、図8のステップS26及び後述の図10ステップS56で行われる。
If it is determined that the data transfer has not been completed (step S30: NO), the process returns to step S14 to continue the data transfer process. If the data transfer is complete (step S30: YES), the process is terminated.
(Calculation and comparison of actual and theoretical throughput)
Next, calculation and comparison processing of actual throughput and theoretical throughput in the mobile terminal 10 will be described. This process is performed in step S26 in FIG. 8 and step S56 in FIG.

図9に、携帯端末10での実スループットと理論スループットとの算出及び比較処理のフローチャートを示す。
算出部104は、取得部102で取得したTCPパケットサイズWとTRTTとを用いて、理論スループットSmaxを算出する(ステップS31)。具体的には、算出部104は、理論スループットSmaxを、Smax=W/TRTTで算出する。
FIG. 9 shows a flowchart of calculation and comparison processing of the actual throughput and the theoretical throughput in the mobile terminal 10.
The calculation unit 104 calculates the theoretical throughput Smax using the TCP packet size W and TRTT acquired by the acquisition unit 102 (step S31). Specifically, the calculation unit 104 calculates the theoretical throughput Smax by Smax = W / T RTT .

次に、制御部101は、測定部105を制御し、PC20から受信したサーバ装置50宛ての通信パケットにおいて、タイマーTdの初期化から現在までの間に出力部107が出力した総データ量Dを取得する(ステップS32)。
そして、制御部101は、測定部105を制御し、実スループットStを算出させる(ステップS33)。具体的には、測定部105は、実スループットStを、総データ量Dと、総データ量Dを出力するのにかかった時間を示すタイマーTdの値を用いて、St=D/Tdで算出する。
Next, the control unit 101 controls the measurement unit 105, and in the communication packet addressed to the server device 50 received from the PC 20, the total data amount D output by the output unit 107 from the initialization of the timer Td to the present time. Obtain (step S32).
Then, the control unit 101 controls the measurement unit 105 to calculate the actual throughput St (step S33). Specifically, the measurement unit 105 calculates the actual throughput St by St = D / Td using the total data amount D and the value of the timer Td indicating the time taken to output the total data amount D. To do.

更に、測定部105は、実スループットの理論スループットに対する比Rtを算出する(ステップS34)。具体的には、測定部105は、比Rtを、Rt=St/Smaxで算出する。なお、Stは、Smaxより大きな値にはならないので、Rtは1以下の値である。
<1.5 考察>
本実施の形態の携帯端末10では、自機が中継する機器間のデータ通信において、TCPウィンドウサイズとRTTとから算出される理論スループットに基づいて、実スループットが理論スループットと同程度の通信速度で通信しているか否か、すなわち通信速度が頭打ちになっているか否かを判定する。そして、通信速度が頭打ちになっているデータフローの通信パケットの優先順位を高く設定することで、優先的に携帯端末10から通信パケットを送出し、携帯端末10に通信パケットが留まっている時間を短縮する。これにより、通信速度が頭打ちになっているデータフローのRTTを短くすることができ、理論スループットが大きくなる。従って、実スループットが頭打ちになっている状態を解消でき、通信速度が頭打ちになっているデータフローの通信速度を改善することができる。
<2.実施の形態2>
<2.1 概要>
実施の形態1の携帯端末10では、予め定められた特定の機器間のデータフローについて、実スループットが頭打ちになっているか否かに基づいて、そのデータフローに係る通信パケットの優先順位を高く設定することで、スループットを改善する例を示した。
Further, the measuring unit 105 calculates a ratio Rt of the actual throughput to the theoretical throughput (step S34). Specifically, the measurement unit 105 calculates the ratio Rt by Rt = St / Smax. Note that St does not have a value greater than Smax, so Rt is a value of 1 or less.
<1.5 Discussion>
In the mobile terminal 10 according to the present embodiment, in data communication between devices relayed by the own device, the actual throughput is the same as the theoretical throughput based on the theoretical throughput calculated from the TCP window size and the RTT. It is determined whether or not communication is being performed, that is, whether or not the communication speed has reached its peak. Then, by setting the priority of the communication packet of the data flow at which the communication speed has reached its peak, the communication packet is preferentially transmitted from the mobile terminal 10 and the time during which the communication packet remains in the mobile terminal 10 is set. Shorten. As a result, the RTT of the data flow whose communication speed has reached its peak can be shortened, and the theoretical throughput is increased. Therefore, it is possible to eliminate the state where the actual throughput has reached the peak, and to improve the communication speed of the data flow whose communication speed has reached the peak.
<2. Second Embodiment>
<2.1 Overview>
In the mobile terminal 10 according to the first embodiment, the priority of communication packets related to the data flow is set higher based on whether or not the actual throughput has reached the peak for a predetermined data flow between specific devices. This shows an example of improving throughput.

実施の形態2では、携帯端末10が中継するデータフローごとに、実スループットが頭打ちになっているか否かを判定し、頭打ちになっていると判定されたデータフローのうちの1つのデータフローについての実スループットの改善を行う携帯端末10について説明する。
<2.2 構成>
本実施の形態の携帯端末10のハードウエア構成は、実施の形態1の携帯端末10と基本的に同じであるので、実施の形態1の携帯端末10と同じ符号を用いる。
In the second embodiment, for each data flow relayed by the mobile terminal 10, it is determined whether or not the actual throughput has reached a peak, and one data flow among the data flows that have been determined to have peaked is determined. The portable terminal 10 that improves the actual throughput will be described.
<2.2 Configuration>
Since the hardware configuration of the mobile terminal 10 of the present embodiment is basically the same as that of the mobile terminal 10 of the first embodiment, the same reference numerals as those of the mobile terminal 10 of the first embodiment are used.

実施の形態1の携帯端末の制御部101が、PC20とサーバ装置50とのデータ通信に係る通信パケットについて、実スループットが頭打ちになっているか否かを判定して、この通信パケットの優先度を設定する処理を行っていたが、本実施の形態の携帯端末10の制御部101は、中継するデータ通信全てについて、頭打ちになっているか否かを判定する点が異なる。そして、頭打ちになっているデータフローが1つの場合には、実施の形態1で説明したのと同様の処理で、そのデータフローについての優先度を高くする。また、頭打ちになっているデータフローが複数ある場合には、そのうちの1つのデータフローを選択して、優先度を高くする。   The control unit 101 of the mobile terminal according to the first embodiment determines whether or not the actual throughput has reached the peak for the communication packet related to data communication between the PC 20 and the server device 50, and determines the priority of the communication packet. The setting process is performed, but the control unit 101 of the mobile terminal 10 according to the present embodiment is different in that it determines whether or not all data communication to be relayed has reached a peak. When there is one data flow that has reached its peak, the priority for the data flow is increased by the same processing as described in the first embodiment. Further, when there are a plurality of data flows that have reached the peak, one of the data flows is selected to increase the priority.

<2.3 動作>
図10は、実施の形態2の携帯端末10における処理のフローチャートである。
なお、本実施の形態の携帯端末10も、実施の形態1と同様に、PC20とサーバ装置50とのデータ通信に係るデータフローを中継するだけでなく、PC20と他のサーバ装置とのデータ通信、又は、PC20以外の機器とネットワーク40上の機器とのデータ通信に係るデータフローをも中継しているものとする。
<2.3 Operation>
FIG. 10 is a flowchart of processing in the mobile terminal 10 according to the second embodiment.
Note that the mobile terminal 10 of the present embodiment not only relays the data flow related to data communication between the PC 20 and the server device 50, but also performs data communication between the PC 20 and other server devices, as in the first embodiment. Alternatively, it is assumed that a data flow related to data communication between a device other than the PC 20 and a device on the network 40 is also relayed.

まず、制御部101は、頭打ちになっているデータフローの数をカウントするためのカウンタcountを初期化する(count=0)(ステップS41)。
次に、制御部101は、出力部107を制御し、バッファ108に出力される通信パケットを解析し、データフローを1つ選択する(ステップS42)。なお、それぞれのデータフローは、データフローに係るTCPパケット300の送信元ポート番号301と宛先ポート番号302、及びIPパケット400の送信元IPアドレス411と宛先IPアドレス412とのうち少なくとも1つの値が異なるものとする。
First, the control unit 101 initializes a counter count for counting the number of data flows that have reached the peak (count = 0) (step S41).
Next, the control unit 101 controls the output unit 107, analyzes the communication packet output to the buffer 108, and selects one data flow (step S42). Each data flow has at least one value of the source port number 301 and destination port number 302 of the TCP packet 300 and the source IP address 411 and destination IP address 412 of the IP packet 400 related to the data flow. Be different.

制御部101は、取得部102に指示し、取得部102に選択したデータフローについての通信パケットからTCPウィンドウサイズWを取得させる(ステップS43)。
次に、制御部101は、タイマー106を制御し、実スループットの算出に用いるためのタイマーTdの値の初期化(Td=0)を行う(ステップS44)。
制御部は、ステップS45〜ステップS55の処理を行い、通信パケットを送信しながらTRTT算出のための処理を行う。ステップS45〜ステップS54の処理は、上述した図8のステップS15〜ステップS25と同じ処理である。
The control unit 101 instructs the acquisition unit 102 to cause the acquisition unit 102 to acquire the TCP window size W from the communication packet for the selected data flow (step S43).
Next, the control unit 101 controls the timer 106 to initialize the value of the timer Td (Td = 0) for use in calculating the actual throughput (step S44).
Control unit performs steps S45~ step S55, performs processing for T RTT calculated while transmitting a communication packet. Steps S45 to S54 are the same as steps S15 to S25 in FIG. 8 described above.

次に、制御部101は、図9を用いて既に説明した実スループットと理論スループットとの算出及び比較処理を行う(ステップS56)。
制御部101は、ステップS56で算出した実スループットの値Stの理論スループットの値Smaxに対する比(St/Smax)が閾値Rth(例えば、Rth=0.95)より大きいか否かを判定する(ステップS57)。St/Smaxが、閾値Rthより大きい場合、すなわち、実スループットが理論スループットと同程度の速度である場合(ステップS56:YES)には、制御部101は、実スループットが頭打ちになっていると判断し、カウンタcountの値を1増分する(ステップS58)。
Next, the control unit 101 calculates and compares the actual and theoretical throughputs already described with reference to FIG. 9 (step S56).
The control unit 101 determines whether or not the ratio (St / Smax) of the actual throughput value St calculated in step S56 to the theoretical throughput value Smax is larger than a threshold value Rth (eg, Rth = 0.95) (step step). S57). When St / Smax is larger than the threshold value Rth, that is, when the actual throughput is about the same speed as the theoretical throughput (step S56: YES), the control unit 101 determines that the actual throughput has reached its peak. Then, the value of the counter count is incremented by 1 (step S58).

制御部101は、頭打ちとなっていない場合(ステップS57:NO)、カウンタcountの値を1増分せず、異なる未処理のデータフローがあるか判定し(ステップS59)、未処理のデータフローがある場合には、ステップS42からステップS59までの処理を未処理のデーフローがなくなるまで行う。なお、ステップS42からステップS59までの処理は、異なるデータフローについて並列に処理してもよい。   If the control unit 101 has not reached its peak (step S57: NO), the control unit 101 does not increment the counter count by 1 and determines whether there is a different unprocessed data flow (step S59). In some cases, the processing from step S42 to step S59 is performed until there is no unprocessed data flow. Note that the processing from step S42 to step S59 may be performed in parallel for different data flows.

全ての異なるデータフローについて、実スループットが頭打ちになっているか否かの判定が完了すると、制御部101は、カウンタcountの値が「0」の場合(ステップS60:「0」)、処理を終了する。
制御部101は、カウンタcountの値が「1」の場合(ステップS60:「1」)、実スループットが頭打ちになっているデータフローの優先度を高く設定する(ステップS61)。具体的な設定方法は、図8のステップS28と同様である。
When the determination of whether or not the actual throughput has reached the end for all the different data flows is completed, the control unit 101 ends the process when the value of the counter count is “0” (step S60: “0”). To do.
When the value of the counter count is “1” (step S60: “1”), the control unit 101 sets a high priority for the data flow that has reached its actual throughput (step S61). A specific setting method is the same as step S28 in FIG.

制御部101は、カウンタcountの値が「2」以上の場合(ステップS60:「2」)、予め定められた優先順に従って、優先順位を高くするデータフローを選択する(ステップS61)。具体的には、予め、送信先のIPアドレスによって、どのIPアドレスで指定される機器へのデータ転送を優先すべきかの順序を決めておき、その順位に従って、一番上位にあるIPアドレス宛てのデータフローを選択する。   When the value of the counter count is “2” or more (step S60: “2”), the control unit 101 selects a data flow that increases the priority according to a predetermined priority order (step S61). Specifically, the order in which data transfer to the device specified by which IP address should be prioritized is determined in advance according to the IP address of the transmission destination, and the IP address addressed to the highest order is determined according to the order. Select a data flow.

次に、制御部101は、選択したデータフローの優先度を高く設定する(ステップS62)。
<2.4 考察>
本実施の形態の携帯端末10では、自機が中継する機器間のデータ通信において、TCPウィンドウサイズとRTTとから算出される理論スループットに基づいて、実スループットが理論スループットと同程度の通信速度で通信しているデータフローが複数ある場合には、該当するデータフローの中で、ユーザによって予め定められた最も優先順位を高くする1つのデータフローについての優先順位を高くすることができる。これにより、ユーザは最も通信速度を改善したいデータフローについての通信速度を向上させ得る。
Next, the control unit 101 sets the priority of the selected data flow high (step S62).
<2.4 Discussion>
In the mobile terminal 10 according to the present embodiment, in data communication between devices relayed by the own device, the actual throughput is the same as the theoretical throughput based on the theoretical throughput calculated from the TCP window size and the RTT. When there are a plurality of data flows that are communicating, the priority order of one data flow that has the highest priority order determined in advance by the user among the corresponding data flows can be increased. Thereby, the user can improve the communication speed about the data flow which wants to improve the communication speed most.

<2.5 変形例>
<2.5.1 概要>
実施の形態2では、頭打ちになっているデータフローが複数ある場合に、予め定められた優先順位に従って、1つのデータフローを選択し、そのデータフローに係る通信パケットの優先順位を高く設定した。しかし、頭打ちになっているデータフローのうちの1つを選択して、そのデータフローに係る通信パケットの優先順位を高く設定すると、他のデータフローに係る通信パケットの優先順位が相対的に低くなり、他の通信速度が低下するおそれがある。また、通信相手の機器やデータ通信の内容が、予め分かっている場合には、それぞれのデータ通信の優先順位を設定しやすいが、通信相手の機器やデータ通信の内容がさまざまであり、それぞれのデータ通信の優先順位を予め設定することが困難な場合もある。そこで、本変形例では、頭打ちになっているデータフローが複数ある場合、優先順位を高く設定するデータフローを、ユーザが、その都度選択できる携帯端末10について説明する。
<2.5 Modification>
<2.5.1 Overview>
In the second embodiment, when there are a plurality of data flows that are peaked, one data flow is selected according to a predetermined priority order, and the priority order of communication packets related to the data flow is set high. However, if one of the peaked data flows is selected and the priority of communication packets related to the data flow is set high, the priority of communication packets related to other data flows is relatively low. And other communication speeds may be reduced. In addition, when the communication partner device and data communication contents are known in advance, it is easy to set the priority of each data communication, but the communication partner device and data communication contents are various, In some cases, it is difficult to preset the priority order of data communication. Therefore, in the present modification, a description will be given of the mobile terminal 10 that allows the user to select a data flow that sets a higher priority when there are a plurality of data flows that are peaked.

本変形例の携帯端末10のハードウエア構成は、実施の形態2の携帯端末10と基本的に同じであるので、実施の形態2の携帯端末10と同じ符号を用いる。
実施の形態2では、頭打ちになっているデータフローが複数ある場合には、予め定められた優先順位に従って制御部101が1つのデータフローを選択した。一方、本変形例では、頭打ちの状態のデータフローが複数ある場合において、データ通信ごとの優先順位の設定を必ずしも予め行う必要はなく、その都度、優先度を高くするデータフローの選択指示をユーザに求める点が異なる。このため、本変形例の携帯端末10は、頭打ちになっているデータフローの一覧を表示部118に表示させ、ユーザによるデータフローの選択指示を受け付ける。
<2.5.2 動作>
以下、本変形例における携帯端末10の処理の動作について説明する。
Since the hardware configuration of the mobile terminal 10 of this modification is basically the same as that of the mobile terminal 10 of the second embodiment, the same reference numerals as those of the mobile terminal 10 of the second embodiment are used.
In the second embodiment, when there are a plurality of data flows that are peaked, the control unit 101 selects one data flow according to a predetermined priority order. On the other hand, in this modification, when there are a plurality of data flows in a peaked state, it is not always necessary to set the priority order for each data communication in advance, and each time the user is instructed to select a data flow to increase the priority. Different points are required. For this reason, the mobile terminal 10 according to the present modification displays a list of data flows that are peaked on the display unit 118, and accepts a data flow selection instruction from the user.
<2.5.2 Operation>
Hereinafter, the processing operation of the mobile terminal 10 in the present modification will be described.

図11は、変形例の携帯端末10における処理のフローチャートである。
同図のステップS60以前の処理の動作は、図10のステップS41〜S59の動作と同じである。
全ての異なるデータフローについて、実スループットが頭打ちになっているか否かの判定が完了すると、制御部101は、カウンタcountの値が「0」の場合(ステップS60:「0」)、処理を終了する。
FIG. 11 is a flowchart of processing in the mobile terminal 10 according to the modification.
The operation of the process before step S60 in the figure is the same as the operation of steps S41 to S59 in FIG.
When the determination of whether or not the actual throughput has reached the end for all the different data flows is completed, the control unit 101 ends the process when the value of the counter count is “0” (step S60: “0”). To do.

また、制御部101は、カウンタcountの値が「1」の場合(ステップS60:「1」)、実スループットが頭打ちになっているデータフローの優先度を高く設定する(ステップS75)。具体的な設定方法は、図8のステップS27と同様である。
制御部101は、カウンタcountの値が「2」以上の場合(ステップS60:「2」)、表示部118に、該当するデータフローの一覧を表示させる(ステップS71)。
In addition, when the value of the counter count is “1” (step S60: “1”), the control unit 101 sets a high priority for the data flow in which the actual throughput reaches its peak (step S75). A specific setting method is the same as step S27 in FIG.
When the value of the counter count is “2” or more (step S60: “2”), the control unit 101 causes the display unit 118 to display a list of corresponding data flows (step S71).

図12は、表示部118に表示されたデータフローの選択メニューの例である。図12のUI500は、表示部118の表示面に表示されるUIの一例である。UI500の一覧表示領域501には、頭打ちになっているデータフローの一覧が表示されている。なお、同図の例では、通信相手のサーバごとのデータフローの一覧を表示している。ユーザは、表示部118に表示されたデータフローの一覧から優先順位を高く設定するデータフローを選択し、OKボタン502をタッチすることによって、優先順位を高く設定するデータフローを選択することができる。ユーザがキャンセルボタン503をタッチする場合は、どのデータフローの優先順位も高く設定しないことを示す。また、「どのデータ通信も現状のまま」を選択し、OKボタン502をタップした場合にもどのデータフローの優先順位も高く設定しないことを示す。   FIG. 12 is an example of a data flow selection menu displayed on the display unit 118. A UI 500 in FIG. 12 is an example of a UI displayed on the display surface of the display unit 118. In the list display area 501 of the UI 500, a list of data flows that have reached the peak is displayed. In the example of the figure, a list of data flows for each server of the communication partner is displayed. The user can select a data flow whose priority is set higher by selecting a data flow whose priority is set higher from the list of data flows displayed on the display unit 118 and touching an OK button 502. . When the user touches the cancel button 503, it indicates that the priority order of any data flow is not set high. In addition, when “any data communication is as it is” is selected and the OK button 502 is tapped, the priority order of any data flow is not set high.

このような、ユーザの操作により操作部119は、ユーザによる指示の操作を受け付ける(ステップS72)。操作部119は、ユーザからの指示によってデータフローが1つ選択されたことを受け付けた場合(ステップS73:YES)、制御部101は、選択されたデータフローを示す情報を取得し(ステップS74)、当該データフローに係る通信パケットの優先順位を高く設定する(ステップS75)。   By such a user operation, the operation unit 119 accepts an instruction operation by the user (step S72). When the operation unit 119 receives that one data flow has been selected in accordance with an instruction from the user (step S73: YES), the control unit 101 acquires information indicating the selected data flow (step S74). The priority of the communication packet related to the data flow is set high (step S75).

一方、データフローが選択されなかった場合(ステップS74:NO)、データフローに係る通信パケットの優先度を高く設定する処理を行わず、処理を終了する。
<2.5.3 まとめ>
上記に説明したように、本変形例の携帯端末10は、頭打ちの状態になっているデータフローが複数ある場合には、ユーザに対して、頭打ちの状態になっているデータフローの一覧を表示し、どのデータフローの優先度を高く設定するのかの指示を受け付ける。従って、ユーザは、その都度、優先順を高くするデータフローを、データ通信の状況に応じて、適切に選択することができる。
<3.その他の変形例>
以上、本発明に係る携帯端末について、実施の形態に基づいて説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの携帯端末に限られないことは勿論である。
On the other hand, when the data flow is not selected (step S74: NO), the process ends without performing the process of setting the priority of the communication packet related to the data flow high.
<2.5.3 Summary>
As described above, when there are a plurality of data flows in a peaked state, the mobile terminal 10 of the present modification displays a list of the data flows in a peaked state to the user. And an instruction as to which data flow priority is set higher. Therefore, the user can appropriately select the data flow that increases the priority order each time according to the status of data communication.
<3. Other variations>
The mobile terminal according to the present invention has been described above based on the embodiment. However, the mobile terminal can be modified as follows, and the present invention is limited to the mobile terminal as described in the above-described embodiment. Of course not.

(1)実施の形態1、2及び変形例において、理論スループットと実スループットとの比較をその比を用いて行う例を示したが、理論スループットと実スループットとの差によって比較してもよい。例えば、理論スループットに対して、実スループットが、予め定められた差以内である場合に、頭打ちになっていると判断しもよい。
(2)実施の形態1、2及び変形例においては、TCPウィンドウサイズ、RTT及びデータ転送量を定期的に測定し、その測定結果に基づいて比較を行う例を示したが、比較の方法は、この例に限らない。データ転送の開始の一定期間において、TCPウィンドウサイズ、RTT及びデータ転送量を測定した結果に基づいて行ってもよい。このように、データ転送開始の一定期間内の結果に基づいて比較することによって、処理を簡素化することができる。
(1) In the first and second embodiments and the modified examples, the theoretical throughput and the actual throughput are compared using the ratio. However, the comparison may be made based on the difference between the theoretical throughput and the actual throughput. For example, when the actual throughput is within a predetermined difference with respect to the theoretical throughput, it may be determined that the peak has been reached.
(2) In the first and second embodiments and the modified examples, the TCP window size, the RTT, and the data transfer amount are periodically measured, and the comparison is performed based on the measurement results. However, the present invention is not limited to this example. You may perform based on the result of having measured TCP window size, RTT, and the amount of data transfers in the fixed period of the start of data transfer. Thus, the processing can be simplified by making a comparison based on the result within a certain period of data transfer start.

(3)実施の形態1、2及び変形例において、理論スループットを算出する際に用いるRTTの値を、一定時間内の通信パケットにおけるRTTの平均値としたが、理論スループットを算出する際に用いるRTTの値はこれに限らない。データフローに係る通信パケットを用いて、どのような方法でRTTを算出してもよい。例えば、通信パケットごとのRTTの値を用いてもよいし、一定時間内の通信パケットにおけるRTTではなく、一定の数の通信パケットにおけるRTTの平均値を用いてもよい。   (3) In the first and second embodiments and the modification, the RTT value used when calculating the theoretical throughput is the average value of the RTT in the communication packet within a certain time, but is used when calculating the theoretical throughput. The value of RTT is not limited to this. The RTT may be calculated by any method using the communication packet related to the data flow. For example, an RTT value for each communication packet may be used, or an RTT average value for a certain number of communication packets may be used instead of an RTT for a communication packet within a certain time.

(4)実施の形態1、2において、送信した通信パケットに対するACKは、全て正常に受信できるものとして説明した。しかし、実際の通信においては、ネットワーク経路上でACKがロストしたり、タイムオーバしたりして、ACKが正常に受信できない場合があり得る。このような場合には、TCP/IPの通信プロトコルに従い、通信パケットを再送する等のエラー処理を行うものとする。そして、ACKを正常に受信できなかった場合には、その通信パケットに係るRTTを加味しないでTRTTを求めればよい。 (4) In Embodiments 1 and 2, it has been described that all ACKs for transmitted communication packets can be normally received. However, in actual communication, ACK may be lost on the network path or time may be exceeded, and ACK may not be received normally. In such a case, error processing such as retransmission of a communication packet is performed according to the TCP / IP communication protocol. Then, if it can not normally receive the ACK may be determined the T RTT without considering the RTT according to the communication packet.

(5)実施の形態2では、優先度を高くするデータフローを1つ選択する例を示したが、優先度を高くするデータフローは1つでなく、複数選択してもよい。通信路における全体のデータ転送量に余裕がある場合には、頭打ちになっているデータフローに係る通信パケットにおいて、複数のデータフローの優先度を高くしても、他のデータフローの通信速度には影響しない場合があり得る。従って、このような場合には、頭打ちになっているデータフローのうちの1つのデータフローではなく、複数のデータフローに係る通信パケットの優先度を高く設定してもよい。   (5) In the second embodiment, an example is shown in which one data flow for increasing the priority is selected. However, a plurality of data flows for increasing the priority may be selected instead of one. If there is a margin in the total data transfer amount on the communication path, even if the priority of multiple data flows is increased in the communication packet related to the peaked data flow, the communication speed of other data flows will be increased. May not have an effect. Therefore, in such a case, the priority of communication packets related to a plurality of data flows may be set high instead of one of the data flows that has reached the peak.

また、優先度を上げることによるスループット改善の効果が小さいと判断できる場合には、どのデータフローの優先度を高くする処理を行わなくともともよい。例えば、全てのデータフローについて、頭打ちになっているような場合には、もともとの通信路における全体のデータ転送量が少ない場合が考えられ、このような場合に、どれかのデータフローに係る通信パケットの優先度を高く設定すると、他のデータフローの通信速度が更に悪化するおそれがある。このような場合には、どのデータフローの優先度も変更しないようにしてもよい。   Further, when it can be determined that the effect of improving the throughput by increasing the priority is small, it is not necessary to perform the process of increasing the priority of any data flow. For example, if all the data flows are capped, the total data transfer amount in the original communication path may be small. In such a case, the communication related to any data flow If the packet priority is set high, the communication speed of other data flows may be further deteriorated. In such a case, the priority of any data flow may not be changed.

一方、複数のデータフローのうち、一部のデータフローだけが頭打ちになっている場合には、機器の処理能力やネットワークの帯域等に余裕があると考えられる。このような場合には、優先度を上げることによるスループット改善の効果があると判断して、頭打ちになっているデータフローの優先度を高くする設定にしてもよい。
(6)実施の形態1、2及び変形例では、頭打ちになっているデータフローに係る通信パケットの優先度を他のデータフローより高く設定する例で説明したが、優先度の設定は、これに限らない。頭打ちになっているデータフローに係る通信パケットが、他のデータフローに係る通信パケットより、早く送出されるように設定できればよい。例えば、頭打ちになっているデータフロー以外のデータフローに係る通信パケットの優先度を、頭打ちになっているデータフローに係る通信パケットの優先度より低く設定するようにしてもよい。
On the other hand, if only some data flows out of the plurality of data flows are considered to have a sufficient processing capacity, network bandwidth, and the like. In such a case, it may be determined that there is an effect of improving the throughput by raising the priority, and the priority of the data flow that has reached the peak may be set higher.
(6) In the first and second embodiments and the modification, the example has been described in which the priority of the communication packet related to the peaked data flow is set higher than that of other data flows. Not limited to. It is only necessary that the communication packet related to the data flow that has reached the peak can be set to be transmitted earlier than the communication packet related to the other data flow. For example, the priority of the communication packet related to the data flow other than the data flow that has reached the peak may be set lower than the priority of the communication packet related to the data flow that has reached the peak.

なお、本発明に係る携帯端末におけるデータフローに係る通信パケットの生成には、実施の形態で示したようなPC20から受信した通信パケットについてのヘッダ部の一部を書き換える処理も含む。
また、実施の形態1、2及び変形例では、頭打ちの状態のデータフローに係る通信パケットの優先度を、ユーザが設定できる最高の優先度である「5」に設定する例を示したが、優先度の設定は、最高の優先度に設定しなくてもよい。例えば、ユーザによる他のデータフローに係る通信パケットに設定されている優先度を調べ、それらの優先度よりも高い優先度を設定すればよい。もし、他のデータフローに係る通信パケットに設定されている優先度のうちで最も高い優先度が「1」とすると、頭打ちの状態になっているデータフローに係る通信パケットの優先度を「2」以上に設定すればよい。
Note that the generation of the communication packet related to the data flow in the mobile terminal according to the present invention includes a process of rewriting a part of the header portion of the communication packet received from the PC 20 as described in the embodiment.
Further, in the first and second embodiments and the modification, the example in which the priority of the communication packet related to the data flow in the peaked state is set to “5” which is the highest priority that can be set by the user is shown. The priority may not be set to the highest priority. For example, the priority set for communication packets related to other data flows by the user may be examined, and a priority higher than those priorities may be set. If the highest priority among the priorities set for communication packets related to other data flows is “1”, the priority of the communication packet related to the data flow that has reached the peak state is set to “2”. Or more.

(7)実施の形態1、2では、IP Precedenceの値を変更することによって優先度を設定する例を示したが、優先度の設定はこれに限られない。バッファから出力される通信パケットの優先度が設定できればどのように設定してもよい。例えば、LTEなどの無線プロトコルで規定されている優先度制御を用いてもよい。
(8)実施の形態1、2及び変形例では、通信パケットを一時的に蓄積するために用いるバッファが1つである場合を示したが、バッファは複数であってもよい。例えば、優先度ごとのバッファを用意し、優先度それぞれに対応したバッファに通信パケットを振り分けて蓄積してもよい。この場合、IP Precedenceに値を必ずしも設定しなくともよい。このようにすることで送出部109は、通信パケットを通信部110に出力するたびに、バッファに蓄積されている通信パケットの優先度を確認することなく、優先度の高いバッファに蓄積されている通信パケットから優先的に通信部110に蓄積されている通信パケットを出力することができる。
(7) In the first and second embodiments, the example in which the priority is set by changing the value of IP Precedence has been shown, but the setting of the priority is not limited to this. Any priority may be set as long as the priority of the communication packet output from the buffer can be set. For example, priority control defined by a wireless protocol such as LTE may be used.
(8) In the first and second embodiments and the modification, the case where there is one buffer used for temporarily storing communication packets is shown, but a plurality of buffers may be used. For example, a buffer for each priority may be prepared, and communication packets may be distributed and stored in buffers corresponding to the respective priorities. In this case, it is not always necessary to set a value for IP Precedence. In this way, each time the transmission unit 109 outputs a communication packet to the communication unit 110, the transmission unit 109 stores the communication packet in the high priority buffer without checking the priority of the communication packet stored in the buffer. Communication packets accumulated in the communication unit 110 can be output preferentially from communication packets.

(9)実施の形態1、2及び変形例では、携帯端末10にテザリング機能により接続されたPC20からのデータフローについての通信速度の改善を行う例を示したが、データフローは、テザリング機能により携帯端末10に接続されたPC20からのデータフローに限らない。携帯端末10が外部のネットワークに向けて出力するデータフローであればよい。例えば、携帯端末10自身とサーバ装置50との間でのデータ通信におけるデータフローであってもよい。   (9) In the first and second embodiments and the modification, the example in which the communication speed is improved for the data flow from the PC 20 connected to the mobile terminal 10 by the tethering function has been described. It is not limited to the data flow from the PC 20 connected to the mobile terminal 10. Any data flow may be used as long as the mobile terminal 10 outputs to an external network. For example, it may be a data flow in data communication between the mobile terminal 10 itself and the server device 50.

(10)複数のデータフローは、それぞれ通信先のIPアドレスで区別されるデータフローとしたが、ある基準で区別される一連のデータフローであればよい。例えば、それぞれのデータフローは、ポート番号ごと、アプリケーションごとに区別されるデータフローであってもよい。又は、送信するデータごとに異なるデータフローであってもよい。
図13は、頭打ちになっているデータフローの一覧を、アプリケーションごとのデータフローの一覧としてユーザに提示するUIの例である。
(10) The plurality of data flows are data flows that are distinguished by the IP address of the communication destination, but may be a series of data flows that are distinguished by a certain standard. For example, each data flow may be a data flow that is distinguished for each port number and each application. Alternatively, the data flow may be different for each data to be transmitted.
FIG. 13 is an example of a UI that presents a list of data flows that have reached the peak as a list of data flows for each application.

同図のUI510、一覧表示領域511、OKボタン512、キャンセルボタン513は、それぞれ図12のUI500、一覧表示領域501、OKボタン512、キャンセルボタン513に相当する。図12の一覧表示領域501では、通信相手のサーバごとに頭打ちになっているデータフローの一覧を表示する例を示したが、図13の例では、データ通信を行っているアプリケーションごとのデータフローの一覧を表示している。この一覧を提示されたユーザは、一覧の中から最も通信速度を改善したいアプリケーションを選択することができる。   The UI 510, the list display area 511, the OK button 512, and the cancel button 513 in the figure correspond to the UI 500, the list display area 501, the OK button 512, and the cancel button 513 in FIG. In the list display area 501 of FIG. 12, an example of displaying a list of data flows that are peaked for each communication partner server has been shown, but in the example of FIG. 13, the data flow for each application that performs data communication Is displayed. The user presented with this list can select an application whose communication speed is most desired to be improved from the list.

(11)実施の形態2では、頭打ちの状態のデータフローが複数ある場合には、予め、データフロー種別ごと定められた優先順位に従って、優先度を高くするデータフローを決定したが、優先度の高くするデータフローの決定は、この方法に限られない。優先度を高くするデータフローを1つ決定できれば、どのような方法であってもよい。例えば、実スループットの理論スループットの比が最も大きいデータフロー、すなわち、実スループットが最も頭打ちになっているデータフローを選択してもよい。   (11) In the second embodiment, when there are a plurality of data flows in a peaked state, the data flow for increasing the priority is determined in advance according to the priority order determined for each data flow type. The determination of the data flow to be increased is not limited to this method. Any method may be used as long as one data flow for increasing the priority can be determined. For example, the data flow with the largest ratio of the theoretical throughput to the actual throughput, that is, the data flow with the highest actual throughput may be selected.

この方法を用いると、最もスループットの改善が見込めるデータフローを選択することができる。
(12)実施の形態2及び変形例では、データフロー選択のためのUIの表示を、携帯端末10の表示部118に表示する例で説明したが、このUIの表示は、携帯端末10の表示部118に表示することに限らない。ユーザがデータフローの選択のための操作ができるように表示されればよい。例えば、携帯端末10とテザリング機能で通信しているPC20のディスプレイに表示してもよい。この場合、ユーザは、PC20に接続されているキーボードやマウス等を操作して、一覧表示されているデータフローの中から、優先度を高く設定するデータフローを選択することができる。
By using this method, it is possible to select a data flow that can expect the most improvement in throughput.
(12) In the second embodiment and the modification, the example in which the UI for data flow selection is displayed on the display unit 118 of the mobile terminal 10 has been described. However, the UI display is the display of the mobile terminal 10. The display is not limited to the unit 118. It may be displayed so that the user can perform an operation for selecting a data flow. For example, you may display on the display of PC20 which is communicating with the portable terminal 10 by the tethering function. In this case, the user can select a data flow whose priority is set high from the data flows displayed in a list by operating a keyboard, a mouse, or the like connected to the PC 20.

(13)実施の形態において説明した携帯端末10の各構成要素のうち、全部又は一部をその機能を実行する回路として実現されてもよいし、1又は複数のプロセッサによりプログラムを実行することで実現されてもよい。また、IC、LSIその他の集積回路のパッケージとして構成されるものとしてもよい。このパッケージは各種装置に組み込まれて利用に供され、これにより各種装置は、実施の形態で示したような各機能を実現するようになる。   (13) All or part of the components of the mobile terminal 10 described in the embodiment may be realized as a circuit that executes the function, or by executing a program by one or a plurality of processors. It may be realized. Moreover, it is good also as what is comprised as a package of IC, LSI, and other integrated circuits. This package is incorporated into various devices for use, whereby the various devices realize each function as shown in the embodiment.

(14)実施の形態で示した携帯端末10の処理(図8〜図11等で示す処理)を、携帯端末10のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるための機械語或いは高級言語のプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布することもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより各実施形態で示したような各機能が実現されるようになる。なお、プロセッサは、制御プログラムを直接実行する他、コンパイルして実行或いはインタプリタにより実行してもよい。   (14) Machine language for causing the processor of the mobile terminal 10 and the various circuits connected to the processor to execute the process of the mobile terminal 10 shown in the embodiment (the process shown in FIGS. 8 to 11, etc.) A control program composed of high-level language program codes can be recorded on a recording medium, or can be distributed and distributed via various communication paths. Such a recording medium includes an IC card, a hard disk, an optical disk, a flexible disk, a ROM, a flash memory, and the like. The distributed and distributed control program is used by being stored in a memory or the like that can be read by the processor, and the processor executes the control program to realize each function as shown in each embodiment. Will come to be. In addition to directly executing the control program, the processor may be compiled and executed or executed by an interpreter.

(15)本発明に係る通信制御方法(図8〜図11等で示す処理)を、コンピュータプログラムを用いてコンピュータにより実現してもよいし、前記コンピュータプログラムからなるデジタル信号として伝送してもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
(15) The communication control method according to the present invention (the processes shown in FIGS. 8 to 11 and the like) may be realized by a computer using a computer program, or may be transmitted as a digital signal composed of the computer program. .
The present invention also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray ( (Registered trademark) Disc), or recorded in a semiconductor memory or the like. Further, the present invention may be the computer program or the digital signal recorded on these recording media.

また、本発明に係るコンピュータプログラム又はデジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
(16)上記実施の形態及び上記変形例をそれぞれ適宜組み合わせるとしてもよい。
The computer program or digital signal according to the present invention may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, data broadcasting, or the like.
(16) The above embodiment and the above modifications may be combined as appropriate.

本発明に係る携帯端末は、ネットワーク通信におけるデータ転送のスループット改善に有用である。   The portable terminal according to the present invention is useful for improving the throughput of data transfer in network communication.

10 携帯端末
20 PC
30 基地局
40 ネットワーク
50 サーバ装置
101 制御部
102 取得部
103 RTT計測部
104 算出部
105 測定部
106 タイマー
107 出力部
108 バッファ
109 送出部
110 通信部
111 アンテナ
112 受信部
113 比較部
114 優先度設定部
115 テザリング部
116 テザリング用アンテナ
118 表示部
119 操作部
150 タッチパネル
301 送信元ポート番号
302 宛先ポート番号
308 ウィンドウサイズ
403 サービスタイプ
411 送信元IPアドレス
412 宛先IPアドレス
10 Mobile terminal 20 PC
30 base station 40 network 50 server apparatus 101 control unit 102 acquisition unit 103 RTT measurement unit 104 calculation unit 105 measurement unit 106 timer 107 output unit 108 buffer 109 transmission unit 110 communication unit 111 antenna 112 reception unit 113 comparison unit 114 priority setting unit 115 Tethering section 116 Tethering antenna 118 Display section 119 Operation section 150 Touch panel 301 Source port number 302 Destination port number 308 Window size 403 Service type 411 Source IP address 412 Destination IP address

Claims (13)

ネットワークを介して、少なくとも一以上の機器との間で、複数のデータフローを含むデータ通信を行う携帯端末であって、
前記複数のデータフローそれぞれに係る通信パケットを一時的に蓄えるバッファと、
複数のデータフローのうちの、一のデータフローにおけるRTT(Round Trip Time)を計測する計測部と、
前記RTTと、送信先の機器からの受信確認なしに送信できる最大の送信可能データ量を示す情報とを用いて、前記ネットワークを介してデータを送信する際の単位時間当たりのデータ転送量の理論的な上限値を示す理論スループットを算出する算出部と、
前記一のデータフローにおいて、実際に送信した単位時間当たりのデータ転送量を示す実スループットを測定する測定部と、
前記実スループットが、前記理論スループットと同程度のスループットに達していることを示す予め定められた基準を満たす場合に、前記一のデータフローの優先度が他のデータフローの優先度よりも高くなるように設定する優先度設定部と、
前記優先度が設定された通信パケットを生成して前記バッファに出力する出力部と、
前記バッファに蓄えられた通信パケットのうち、優先度の高い通信パケットを優先的に送出する送出部とを備える
ことを特徴とする携帯端末。
A mobile terminal that performs data communication including a plurality of data flows with at least one device via a network,
A buffer for temporarily storing communication packets related to each of the plurality of data flows;
A measuring unit for measuring RTT (Round Trip Time) in one data flow among a plurality of data flows;
The theory of data transfer amount per unit time when data is transmitted through the network using the RTT and information indicating the maximum transmittable data amount that can be transmitted without confirmation of reception from the destination device A calculation unit for calculating a theoretical throughput indicating a typical upper limit value;
In the one data flow, a measurement unit that measures an actual throughput indicating a data transfer amount per unit time actually transmitted;
The priority of one data flow is higher than the priority of another data flow when the actual throughput meets a predetermined criterion indicating that the actual throughput has reached the same throughput as the theoretical throughput. A priority setting section for setting
An output unit for generating a communication packet in which the priority is set and outputting the communication packet to the buffer;
A mobile terminal comprising: a transmission unit that preferentially transmits a communication packet having a high priority among communication packets stored in the buffer.
前記優先度設定部は、前記理論スループットに対する前記実スループットの比が、予め定められた値以上の場合に、前記基準を満たす場合と判断する
ことを特徴とする請求項1記載の携帯端末。
The mobile terminal according to claim 1, wherein the priority setting unit determines that the criterion is satisfied when a ratio of the actual throughput to the theoretical throughput is equal to or greater than a predetermined value.
前記優先度設定部は、前記理論スループットと前記実スループットとの差の絶対値が、予め定められた値以下の場合に、前記基準を満たす場合と判断する
ことを特徴とする請求項1記載の携帯端末。
The priority setting unit determines that the criterion is satisfied when an absolute value of a difference between the theoretical throughput and the actual throughput is equal to or less than a predetermined value. Mobile device.
前記優先度設定部は、前記複数のデータフローのうち、2以上のデータフローの実スループットが前記基準を満たす場合には、予め定められたデータフローごとの重要度に基づいて、前記基準を満たすデータフローのうちから最も重要度の高い1つのデータフローを選択し、選択されたデータフローにおける優先度が他のデータフローの優先度よりも高くなるように設定する
ことを特徴とする請求項1記載の携帯端末。
When the actual throughput of two or more data flows among the plurality of data flows satisfies the criterion, the priority setting unit satisfies the criterion based on a predetermined importance for each data flow. The data flow having the highest importance is selected from the data flows, and the priority in the selected data flow is set to be higher than the priority of the other data flows. The portable terminal described.
前記優先度設定部は、前記複数のデータフローのうち、2以上のデータフローの実スループットが前記基準を満たす場合には、前記基準を満たすどのデータフローに対しても例外的に他のデータフローの優先度より高くなるように設定する処理を行わない
ことを特徴とする請求項1記載の携帯端末。
When the actual throughput of two or more data flows among the plurality of data flows satisfies the criterion, the priority setting unit is exceptionally different from any other data flow for any data flow satisfying the criterion. The mobile terminal according to claim 1, wherein the process of setting the priority to be higher than the priority is not performed.
更に、データフローに係る情報をユーザに提示する提示部と、
ユーザからの入力を受け付ける受付部とを備え、
前記提示部は、前記複数のデータフローのうち、2以上のデータフローの実スループットが前記基準を満たす場合には、
前記基準を満たすデータフローそれぞれを識別する情報をユーザに提示し、
前記受付部は、前記提示部が提示した前記情報に係るユーザ入力を受け付け、
前記優先度設定部は、前記ユーザ入力に基づいて、優先度を高くするデータフローを特定し、当該データフローにおける優先度を他のデータフローの優先度よりも高く設定する
ことを特徴とする請求項1記載の携帯端末。
Furthermore, a presentation unit that presents information related to the data flow to the user;
A reception unit that receives input from the user,
The presenting unit, when an actual throughput of two or more data flows among the plurality of data flows satisfies the criterion,
Presenting the user with information identifying each data flow meeting the criteria,
The accepting unit accepts user input related to the information presented by the presenting unit;
The priority setting unit identifies a data flow whose priority is to be increased based on the user input, and sets the priority in the data flow higher than the priority of other data flows. Item 2. A portable terminal according to Item 1.
前記データ通信は、TCP(Transmission Control Protocol)に基づくデータ通信であり、
前記送信可能データ量を示す情報は、前記一のデータフローに係るウィンドウサイズである
ことを特徴とする請求項1記載の携帯端末。
The data communication is data communication based on TCP (Transmission Control Protocol),
The mobile terminal according to claim 1, wherein the information indicating the transmittable data amount is a window size related to the one data flow.
前記複数のデータフローのそれぞれは、送信先の機器のIPアドレスで識別されるデータフローである
ことを特徴とする請求項7記載の携帯端末。
The mobile terminal according to claim 7, wherein each of the plurality of data flows is a data flow identified by an IP address of a transmission destination device.
前記複数のデータフローのそれぞれは、前記データ通信に係るポート番号で識別されるデータフローである
ことを特徴とする請求項7記載の携帯端末。
The mobile terminal according to claim 7, wherein each of the plurality of data flows is a data flow identified by a port number related to the data communication.
前記複数のデータフローのそれぞれは、当該データフローに含まれるデータを出力するアプリケーションで識別されるデータフローである
ことを特徴とする請求項7記載の携帯端末。
The mobile terminal according to claim 7, wherein each of the plurality of data flows is a data flow identified by an application that outputs data included in the data flow.
ネットワークを介して、少なくとも一以上の機器との間で、複数のデータフローを含むデータ通信を行う携帯端末の制御方法であって、
前記複数のデータフローそれぞれに係る通信パケットを一時的に蓄えるバッファと、
複数のデータフローのうちの、一のデータフローにおけるRTT(Round Trip Time)を計測するステップと、
前記RTTと、送信先の機器からの受信確認なしに送信できる最大の送信可能データ量を示す情報とを用いて、前記ネットワークを介してデータを送信する際の単位時間当たりのデータ転送量の理論的な上限値を示す理論スループットを算出するステップと、
前記一のデータフローにおいて、実際に送信した単位時間当たりのデータ転送量を示す実スループットを測定するステップと、
前記実スループットが、前記理論スループットと同程度のスループットに達していることを示す予め定められた基準を満たす場合に、前記一のデータフローの優先度が他のデータフローの優先度よりも高くなるように設定するステップと、
前記優先度が設定された通信パケットを生成して前記バッファに出力する出力ステップと、
前記バッファに蓄えられた通信パケットのうち、優先度の高い通信パケットを優先的に送出する送出ステップとを備える
ことを特徴とする制御方法。
A method for controlling a mobile terminal that performs data communication including a plurality of data flows with at least one device via a network,
A buffer for temporarily storing communication packets related to each of the plurality of data flows;
A step of measuring an RTT (Round Trip Time) in one of the plurality of data flows;
The theory of data transfer amount per unit time when data is transmitted through the network using the RTT and information indicating the maximum transmittable data amount that can be transmitted without confirmation of reception from the destination device Calculating a theoretical throughput indicating a typical upper limit;
Measuring the actual throughput indicating the amount of data transferred per unit time actually transmitted in the one data flow;
The priority of one data flow is higher than the priority of another data flow when the actual throughput meets a predetermined criterion indicating that the actual throughput has reached the same throughput as the theoretical throughput. The steps to set
An output step of generating a communication packet in which the priority is set and outputting the communication packet to the buffer;
A transmission step of preferentially transmitting a communication packet having a high priority among the communication packets stored in the buffer.
ネットワークを介して、少なくとも一以上の機器との間で、複数のデータフローを含むデータ通信を行う携帯端末の制御プログラムであって、
前記複数のデータフローそれぞれに係る通信パケットを一時的に蓄えるバッファと、
複数のデータフローのうちの、一のデータフローにおけるRTT(Round Trip Time)を計測する計測ステップと、
前記RTTと、送信先の機器からの受信確認なしに送信できる最大の送信可能データ量を示す情報とを用いて、前記ネットワークを介してデータを送信する際の単位時間当たりのデータ転送量の理論的な上限値を示す理論スループットを算出する算出ステップと、
前記一のデータフローにおいて、実際に送信した単位時間当たりのデータ転送量を示す実スループットを測定する測定ステップと、
前記実スループットが、前記理論スループットと同程度のスループットに達していることを示す予め定められた基準を満たす場合に、前記一のデータフローの優先度が他のデータフローの優先度よりも高くなるように設定する優先度設定ステップと、
前記優先度が設定された通信パケットを生成して前記バッファに出力する出力ステップと、
前記バッファに蓄えられた通信パケットのうち、優先度の高い通信パケットを優先的に送出する送出ステップとを
前記携帯端末に実行させることを特徴とする制御プログラム。
A control program for a mobile terminal that performs data communication including a plurality of data flows with at least one device via a network,
A buffer for temporarily storing communication packets related to each of the plurality of data flows;
A measurement step of measuring RTT (Round Trip Time) in one data flow among a plurality of data flows;
The theory of data transfer amount per unit time when data is transmitted through the network using the RTT and information indicating the maximum transmittable data amount that can be transmitted without confirmation of reception from the destination device A calculation step for calculating a theoretical throughput indicating a typical upper limit value;
In the one data flow, a measurement step of measuring an actual throughput indicating a data transfer amount per unit time actually transmitted;
The priority of one data flow is higher than the priority of another data flow when the actual throughput meets a predetermined criterion indicating that the actual throughput has reached the same throughput as the theoretical throughput. A priority setting step to set,
An output step of generating a communication packet in which the priority is set and outputting the communication packet to the buffer;
A control program for causing the portable terminal to execute a sending step for preferentially sending a communication packet having a high priority among the communication packets stored in the buffer.
ネットワークを介して、少なくとも一以上の機器との間で、複数のデータフローを含むデータ通信を行う携帯端末の制御プログラムを記録しているコンピュータ読取可能な記録媒体であって、
前記複数のデータフローそれぞれに係る通信パケットを一時的に蓄えるバッファと、
複数のデータフローのうちの、一のデータフローにおけるRTT(Round Trip Time)を計測する計測ステップと、
前記RTTと、送信先の機器からの受信確認なしに送信できる最大の送信可能データ量を示す情報とを用いて、前記ネットワークを介してデータを送信する際の単位時間当たりのデータ転送量の理論的な上限値を示す理論スループットを算出する算出ステップと、
前記一のデータフローにおいて、実際に送信した単位時間当たりのデータ転送量を示す実スループットを測定する測定ステップと、
前記実スループットが、前記理論スループットと同程度のスループットに達していることを示す予め定められた基準を満たす場合に、前記一のデータフローの優先度が他のデータフローの優先度よりも高くなるように設定する優先度設定ステップと、
前記優先度が設定された通信パケットを生成して前記バッファに出力する出力ステップと、
前記バッファに蓄えられた通信パケットのうち、優先度の高い通信パケットを優先的に送出する送出ステップとを
前記携帯端末に実行させるための制御プログラムを記録している記録媒体。
A computer-readable recording medium that records a control program for a portable terminal that performs data communication including a plurality of data flows with at least one device via a network,
A buffer for temporarily storing communication packets related to each of the plurality of data flows;
A measurement step of measuring RTT (Round Trip Time) in one data flow among a plurality of data flows;
The theory of data transfer amount per unit time when data is transmitted through the network using the RTT and information indicating the maximum transmittable data amount that can be transmitted without confirmation of reception from the destination device A calculation step for calculating a theoretical throughput indicating a typical upper limit value;
In the one data flow, a measurement step of measuring an actual throughput indicating a data transfer amount per unit time actually transmitted;
The priority of one data flow is higher than the priority of another data flow when the actual throughput meets a predetermined criterion indicating that the actual throughput has reached the same throughput as the theoretical throughput. A priority setting step to set,
An output step of generating a communication packet in which the priority is set and outputting the communication packet to the buffer;
A recording medium recording a control program for causing the portable terminal to execute a transmission step of preferentially transmitting a communication packet having a high priority among communication packets stored in the buffer.
JP2014027445A 2014-02-17 2014-02-17 Portable terminal and communication control method thereof Pending JP2015154320A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014027445A JP2015154320A (en) 2014-02-17 2014-02-17 Portable terminal and communication control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014027445A JP2015154320A (en) 2014-02-17 2014-02-17 Portable terminal and communication control method thereof

Publications (1)

Publication Number Publication Date
JP2015154320A true JP2015154320A (en) 2015-08-24

Family

ID=53896154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014027445A Pending JP2015154320A (en) 2014-02-17 2014-02-17 Portable terminal and communication control method thereof

Country Status (1)

Country Link
JP (1) JP2015154320A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021176222A (en) * 2020-05-01 2021-11-04 住友電気工業株式会社 In-vehicle communication device and bandwidth suppression method executed by this device
CN115150772A (en) * 2021-03-31 2022-10-04 本田技研工业株式会社 Information processing apparatus, mobile body, computer-readable storage medium, and information processing method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021176222A (en) * 2020-05-01 2021-11-04 住友電気工業株式会社 In-vehicle communication device and bandwidth suppression method executed by this device
CN115150772A (en) * 2021-03-31 2022-10-04 本田技研工业株式会社 Information processing apparatus, mobile body, computer-readable storage medium, and information processing method

Similar Documents

Publication Publication Date Title
CN110838991B (en) Gateway connection method, device, storage medium, electronic equipment and gateway equipment
US20060140193A1 (en) Optimization of a TCP connection
EP3075110B1 (en) Controlling a transmission control protocol window size
CN102148662B (en) Adjusting method and device for data transmitting speed
JPWO2008023656A1 (en) Communication device
CN108092908B (en) Method and sender device for controlling traffic
CN115720384A (en) Connection establishment method and related equipment
CN110072254B (en) Data transmission method and related equipment thereof
JP2015162701A (en) Mobile terminal and wireless communication control method thereof
WO2018157819A1 (en) Method and apparatus for multiple sub-current network transmission
JP5308364B2 (en) Transmission device, transmission method, and program
EP1701506A1 (en) Method and system for transmission control protocol (TCP) traffic smoothing
WO2019233284A1 (en) Link detection method and related apparatus
WO2022017243A1 (en) Method and apparatus for scheduling terminal device, medium, network device, terminal, and computer program product
CN108141866A (en) A kind of method and device of processing business data packet
JP2015154320A (en) Portable terminal and communication control method thereof
JP2016208315A (en) COMMUNICATION DEVICE, COMMUNICATION PROCESSING METHOD, AND COMMUNICATION PROGRAM
US7974203B2 (en) Traffic control system, traffic control method, communication device and computer program
JP2011050042A (en) Wireless terminal and transmission speed prediction method
JP2004297127A (en) Mobile terminals and servers
JP2017157963A (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM
US10015288B2 (en) Communication apparatus and control method of communication apparatus
JP2012109975A (en) Method and device for determining communication path between communication equipment having multiple communication interfaces
Wegner et al. SCTPCL: An SCTP convergence layer protocol for DTN
JP5520139B2 (en) Transmitting apparatus, receiving apparatus, and program