CN118381838A - 计算机装置及用于计算机装置的传输控制协议封包处理方法 - Google Patents
计算机装置及用于计算机装置的传输控制协议封包处理方法 Download PDFInfo
- Publication number
- CN118381838A CN118381838A CN202310072265.1A CN202310072265A CN118381838A CN 118381838 A CN118381838 A CN 118381838A CN 202310072265 A CN202310072265 A CN 202310072265A CN 118381838 A CN118381838 A CN 118381838A
- Authority
- CN
- China
- Prior art keywords
- packet
- tcp
- computer device
- transmission control
- control protocol
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 61
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000005259 measurement Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 9
- 230000003287 optical effect Effects 0.000 description 18
- 238000012360 testing method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000005538 encapsulation Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000000827 velocimetry Methods 0.000 description 4
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 3
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
一种计算机装置及用于计算机装置的传输控制协议封包处理方法。该计算机装置包含网络接口电路、存储装置及处理器。该网络接口电路接收多个第一传输控制协议封包。该存储装置存储程序代码。该处理器载入并执行该程序代码以进行以下操作:指示该网络接口电路来传送多个第二传输控制协议封包至另一计算机装置,以及根据该多个第一传输控制协议封包的数据量来计算该计算机装置所使用的一网络的网络速率。该多个第二传输控制协议封包包含连续传送的一第二传输控制协议封包与另一第二传输控制协议封包,其分别为一第一传输控制协议封包及另一第一传输控制协议封包的确认封包且具有不连续的序号。
Description
技术领域
本发明涉及不同计算机装置之间的网络通信,尤其涉及一种可藉由避免传输控制协议封包重传及降低处理器负载来改善网络测速结果的装置与方法。
背景技术
传输控制协议(Transmission Control Protocol,以下简称为TCP)是属于传输层(transport layer)的一种协议,也是属于端点对端点(End-to-End)的传输协议,亦称为主机对主机(Host-to-Host)或程序对程序(Process-to-Process)的传输协议,换句话说,在TCP两端的计算机装置可通过彼此的沟通,确保资料在传输中的正确性以及传输速率的控制,这些动作只是两端的计算机装置之间沟通即可,完全无关于中间所经过的任何节点,例如路由器(router)或交换机(switch)。TCP通过确认(acknowledgement)以及重传(retransmission)这两种机制来确保TCP封包通过网络传输的正确性(integrity)和可靠性(reliability),因此在传输的整体过程中会较没有效率,但却能保证将TCP封包正确无误地由一传送端传送至一接收端。然而,对于某些应用来说,这样的特性反而不是必要的,举例来说,对于网络测速的应用来说,光网络单元(Optical Network Unit,ONU)上可运行超文本传输协议(HyperText Transfer Protocol,HTTP)用户端(client),来访问互联网上的HTTP服务器以进行测速,例如,当用户上网速度变慢的时候,用户会想要进行网络测速来测量当前的网络带宽(例如下载速率),由于HTTP是属于应用层(application layer),后续是通过传输层的TCP来负责让数据可以正确送达目的地,当接收端发现丢包时,会要求传送端进行TCP封包重传,然而,当网络上的时延(latency)越大,亦即传送端送出TCP封包和收到接收端响应的确认(acknowledgement,ACK)封包的时间差(又称为往返时间(Round TripTime,RTT))越大时,则TCP掉包的比例会增加,同时降低传送端与接收端之间封包交换的效率,如此一来,若RTT越大,则TCP的性能越低,因而无法测出用户真实的下载速率。此外,对比于HTTP服务器上具有强大运算能力的处理器,用户端的光网络单元往往因为成本考虑而采用运算能力较弱的处理器,为了让光网络单元在进行下行测速时能测出较准确的速率,光网络单元会使用大型接收卸载(large receive offload,LRO)方式,亦即让光网络单元的硬件帮忙将多个小于最大传输单元(Maximum Transmission Unit,MTU)的封包聚合成一个超大的封包送给处理器,假设聚合个数为12,则处理器所要处理的封包个数便可缩减为1/12,然而,当网络存在较多丢包时(例如光纤线路终端(optical line termination,OLT)对光网络单元执行下行限速会有大量丢包),这种情况下的聚合个数会减少,进而造成处理器所要处理的封包个数增加,如此一来,光网络单元会因为本身处理器忙碌而无法准确测量出当前的网络带宽,举例来说,当光纤线路终端对光网络单元执行7.5Gbps的下行限速,则处于高处理器负载状态的光网络单元的网络测速结果会远低于光纤线路终端的下行限速值。
发明内容
本发明的目的之一在于提出一种可藉由避免传输控制协议封包重传及降低处理器负载来改善网络测速结果的装置与方法。
在本发明的一个实施例中,公开一种计算机装置。该计算机装置包含一网络接口电路、一存储装置以及一处理器。该网络接口电路用来自另一计算机装置接收多个第一传输控制协议封包。该存储装置用来存储一程序代码。该处理器用来载入并执行该程序代码以进行以下操作:指示该网络接口电路来传送多个第二传输控制协议封包至该另一计算机装置,其中该多个第二传输控制协议封包包含连续传送的一第二传输控制协议封包与另一第二传输控制协议封包,该第二传输控制协议封包为该多个第一传输控制协议封包中的一第一传输控制协议封包的确认封包,该另一第二传输控制协议封包为该多个第一传输控制协议封包中的另一第一传输控制协议封包的确认封包,以及该第一传输控制协议封包与该另一第一传输控制协议封包具有不连续的序号;以及根据该多个第一传输控制协议封包的数据量来计算该计算机装置所使用的一网络的网络速率。
在本发明的另一个实施例中,公开一种计算机装置。该计算机装置包含一网络接口电路、一存储装置以及一处理器。该存储装置用来存储一程序代码。该处理器用来载入并执行该程序代码以进行以下操作:指示该网络接口电路传送一第一传输控制协议封包至另一计算机装置;以及在指示该网络接口电路传送该第一传输控制协议封包至该另一计算机装置之后,指示该网络接口电路传送另一第一传输控制协议封包至该另一计算机装置。该网络接口电路还用来接受来自该另一计算机装置的一第二传输控制协议封包,且该第二传输控制协议封包为该另一第一传输控制协议封包的确认封包。在该网络接口电路接收到该第二传输控制协议封包之前,该网络接口电路不会接收到对应该第一传输控制协议封包的确认封包。
在本发明的另一个实施例中,公开一种应用于一计算机装置的传输控制协议封包处理方法。该传输控制协议封包处理方法包含:自另一计算机装置接收多个第一传输控制协议封包;传送多个第二传输控制协议封包至该另一计算机装置,其中该多个第二传输控制协议封包包含连续传送的一第二传输控制协议封包与另一第二传输控制协议封包,该第二传输控制协议封包为该多个第一传输控制协议封包中的一第一传输控制协议封包的确认封包,该另一第二传输控制协议封包为该多个第一传输控制协议封包中的另一第一传输控制协议封包的确认封包,以及该第一传输控制协议封包与该另一第一传输控制协议封包具有不连续的序号;以及根据该多个第一传输控制协议封包的数据量来计算该计算机装置所使用的一网络的网络速率。
在本发明的另一个实施例中,公开一种应用于一计算机装置的传输控制协议封包处理方法。该传输控制协议封包处理方法包含:传送一第一传输控制协议封包至另一计算机装置;在传送该第一传输控制协议封包至该另一计算机装置之后,传送另一第一传输控制协议封包至该另一计算机装置;以及接受来自该另一计算机装置的一第二传输控制协议封包,其中该第二传输控制协议封包为该另一第一传输控制协议封包的确认封包,以及在接收到该第二传输控制协议封包之前,不会接收到对应该第一传输控制协议封包的确认封包。
由于网络测速实际上并不关注数据内容的正确性,因此可以不用依赖标准TCP流程所提供的重传机制来确保TCP封包通过网络传输的正确性,故本发明便针对网络测速的应用(至少包含下载速率的测试)提出修改过的TCP流程,可消除TCP封包重传对TCP性能的影响。此外,本发明另利用用户端的硬件来主动丢弃一部分已成功接收的TCP封包以减低丢包对处理器负载以及网络测速的影响。
附图说明
图1为本发明一实施例的网络系统的示意图。
图2为本发明一实施例的修改过的TCP流程的循序图。
图3为本发明一实施例之下载速率测试的循序图。
【符号说明】
100:网络系统
102,104:计算机装置
103:互联网
112,122:存储装置
114,124:处理器
116,126:网络接口电路
202:用户端
204:服务器
206,208,210,212,214,216,218:TCP封包
PROG_1,PROG_2:程序代码
HW:硬件处理阶段
SW:软件处理阶段
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的元件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件,本说明书及权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”及“包括”为一开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”或“耦合”一词在此包含任何直接及间接的电性连接手段,因此,若文中描述一第一装置耦接至一第二装置,则代表该第一装置可直接电性连接于该第二装置,或者通过其它装置和连接手段间接地电性连接至该第二装置。
图1为本发明一实施例的网络系统的示意图。网络系统100包含多个网络装置(例如计算机装置102与计算机装置104),计算机装置102与计算机装置104可通过互联网103来进行数据交换,举例来说,计算机装置102可作为用户端(client),以及计算机装置104可作为服务器(server)。计算机装置102包含有存储装置112、处理器114以及网络接口电路116,请注意,图1仅绘示跟本发明有关的元件,实际上,计算机装置102可包含其它元件来实现其它功能。存储装置112可以是存储器或是任何具备数据存储能力的元件,用来存储程序代码PROG_1,例如程序代码PROG_1可包含操作系统(operating system,OS)的程序代码以及应用程序(例如网络测速软件(用户端))的程序代码。处理器114用来载入并执行程序代码PROG_1以控制计算机装置(例如用户端)102的运作,例如,本发明传输控制协议(Transmission Control Protocol,以下简称为TCP)封包处理方法中跟计算机装置(例如用户端)102有关的部分或全部操作可由处理器114执行程序代码PROG_1来实现。网络接口电路116则包含传送电路及接收电路的硬件,可用存取互联网103,例如计算机装置102可通过网络运营商所提供的网络来连线至互联网103。
计算机装置104包含有存储装置122、处理器124以及网络接口电路126,请注意,图1仅绘示跟本发明有关的元件,实际上,计算机装置104可包含其它元件来实现其它功能。存储装置122可以是存储器或是任何具备数据存储能力的元件,用来存储程序代码PROG_2,例如程序代码PROG_2可包含操作系统的程序代码以及应用程序(例如网络测速软件(服务器))的程序代码。处理器124用来载入并执行程序代码PROG_2以控制计算机装置(例如服务器)104的运作,例如,本发明TCP封包处理方法中跟计算机装置(例如服务器)104有关的部分或全部操作可由处理器124执行程序代码PROG_2来实现。网络接口电路126则包含传送电路及接收电路的硬件,可用存取互联网103,例如计算机装置104可通过网络运营商所提供的网络来连线至互联网103。
一般来说,所有网络设备能够相互通信,主要是因为它们都使用同一系列的协议层,当来源网络设备要向目的地网络设备发送封包时,封包必须经过来源网络设备上一系列协议层,而当封包到达目的地网络设备时,封包必须通过同一系列的协议层,当封包向下移动通过协议层时,封包所经历的转换包含封装(encapsulation),封装意味着原始封包被一个标头(header)所包装,从而产生一个更大的封包。每个协议层执行封装以将该层的特定信息添加到封包中。类似地,当封包通过协议层向上传输时,这些标头在称为解封装(de-encapsulation)的过程中被删除。本实施例中,处理器114/124可执行程序代码PROG_1/PROG_2(例如程序代码PROG_1/PROG_2中所包含的操作系统的程序代码)来处理封装及解封装,此外,处理器114/124另可执行程序代码PROG_1/PROG_2(例如程序代码PROG_1/PROG_2中所包含的网络测速软件的程序代码)来处理特定应用(例如网络测速),而该特定应用的数据最后可经由网络接口电路116/126所提供的物理网络接口来进行传送与接收。
由于网络测速实际上并不关注数据内容的正确性,因此可以不用依赖标准TCP流程所提供的重传机制来确保TCP封包通过网络传输的正确性,基于此观察,本发明便针对网络测速的应用(至少包含下载速率的测试)提出修改过的TCP流程,可消除TCP封包重传对TCP性能的影响。请参考图2,图2为本发明一实施例的修改过的TCP流程的循序图(sequencediagram)。用户端(例如HTTP用户端或光网络单元)202可以是图1所示的计算机装置102,以及服务器(例如HTTP服务器)204可以是图1所示的计算机装置104。用户端202的处理器114可执行程序代码PROG_1(例如程序代码PROG_1中所包含的网络测速软件(用户端)的程序代码)来启动网络测速(例如下载速率的测试),在用户端202与服务器204建立连线之后,服务器204开始进行数据传输以供下载速率的测试,为了实现流量控制,服务器204会根据一传送视窗(Send Window)来进行TCP封包的传送,以及用户端202会根据一接收视窗(ReceiveWindow)来进行TCP封包的接收,如图2所示,服务器204的处理器124可执行程序代码PROG_2来产生多个TCP封包206、208、210、212、214,并指示网络接口电路126来将TCP封包206、208、210、212、214连续地传送至用户端202,其中TCP封包206的序号(Sequence Number)为Seq1,TCP封包208的序号为Seq 2,TCP封包210的序号为Seq 3,TCP封包212的序号为Seq 4,以及TCP封包214的序号为Seq 5。当用户端202成功接收到TCP封包206时,用户端202的处理器114可执行程序代码PROG_1来产生一TCP封包216以作为TCP封包206所对应的确认(ACK)封包,并指示网络接口电路116来将TCP封包216回传至服务器204,例如TCP封包216为携带确认号码(acknowledgement number)ACK 1的确认封包。服务器204通过网络接口电路126成功接收到TCP封包(确认封包)216,而服务器204从送出TCP封包206到收到用户端202响应的相对应确认封包的时间差可称为往返时间(Round Trip Time,RTT)。如图2所示,服务器204所送出的下一个TCP封包208在网络传送过程发生丢包,因此用户端202并未成功接收到TCP封包208,当用户端202后续成功接收到TCP封包210时,根据本发明所揭示的修改过的TCP流程,用户端202并不会因应接收到TCP封包210而重复发送一个携带确认号码ACK 1的确认封包,以便让服务器204启动TCP封包208的重传。在本实施例中,当TCP封包208发生丢包后,用户端202后续均成功接收到TCP封包210、TCP封包212与TCP封包214,用户端202可划分为硬件处理阶段HW(例如网络接口电路116)与软件处理阶段SW(例如处理器114执行程序代码PROG_1),由于用户端202的处理器114因为成本考虑而采用运算能力较弱的处理器,为了避免处理器忙碌(亦即高处理器负载)而影响到测速结果,硬件处理阶段HW(例如网络接口电路116)可主动地丢弃已经成功接收TCP封包中的一部分TCP封包,例如TCP封包210与TCP封包212,在较佳实施方式中,硬件处理阶段HW(例如网络接口电路116)会主动地且均匀地丢弃已经成功接收TCP封包中的一部分TCP封包,然而本发明并不以此为限。
如上所述,用户端202并未成功接收到TCP封包208,当用户端202后续成功接收到TCP封包210时,根据本发明所揭示的修改过的TCP流程,用户端202并不会因应接收到TCP封包210而重复发送一个携带确认号码ACK1的确认封包,以便让服务器204后续能启动TCP封包208的重传,同样地,当用户端202后续成功接收到TCP封包212时,根据本发明所揭示的修改过的TCP流程,用户端202并不会因应接收到TCP封包212而重复发送一个携带确认号码ACK 1的确认封包,以便让服务器204后续能启动TCP封包208的重传,以及当用户端202后续成功接收到TCP封包214时,根据本发明所揭示的修改过的TCP流程,用户端202并不会因应接收到TCP封包214而重复发送一个携带确认号码ACK 1的确认封包,以便让服务器204后续能启动TCP封包208的重传。相反地,用户端202会因应接收到TCP封包214(请注意,原本已成功接收的TCP封包210与TCP封包212被硬件处理阶段HW主动地丢弃)而直接响应一个相对应的TCP封包218,亦即用户端202的处理器114可执行程序代码PROG_1来产生TCP封包218以作为TCP封包214所对应的确认封包,并指示网络接口电路116来将TCP封包218回传至服务器204,例如TCP封包218为携带确认号码ACK 5的确认封包。
请注意,在服务器204的网络接口电路126成功接收到TCP封包(确认封包)218之前,服务器204的网络接口电路126并未接收到对应TCP封包208(其在网络传送过程中丢包)的确认封包与对应TCP封包210、212(其在用户端202成功接收后被主动丢弃)的确认封包,而当服务器204的网络接口电路126成功接收到TCP封包(确认封包)218时,服务器204便会认为连续传送的TCP封包206、208、210、212、214均已经被用户端202成功接收,如此一来,即便TCP封包208实际上在网络传送过程发生丢包,服务器204并不会启动TCP封包208的重传(亦即用户端202并不会要求服务器204重传TCP封包208)。请注意,TCP封包210、212在用户端202成功接收后被主动丢弃,虽然服务器204并未接收到对应TCP封包210、212的确认封包,然而服务器204并不会启动TCP封包210、212的重传(亦即用户端202也不会要求服务器204重传TCP封包210、212)。
综上所述,即便服务器204所发送的TCP封包实际上发生丢包,基于本发明所揭示的修改过的TCP流程,用户端202并不会要求服务器204进行TCP封包重传,此外,用户端202会根据目前所接收的所有TCP封包的封包序号中的最大封包序号(例如Seq 5)来响应确认封包给服务器204,如此便可保证服务器204在网络测速(至少包含下载速率的测试)的期间,不会进行任何TCP封包重传,如此一来,TCP性能便可不受网络时延的影响,换句话说,即便RTT变大,则TCP的性能并不会降低,故在各种网络时延的环境之下,通过本发明所揭示的修改过的TCP流程,下载速率的测试操作都能准确得到用户真实的下载速率。
再者,为了让用户端202(例如光网络单元)在进行下行测速时能测出较准确的速率,用户端202可使用大型接收卸载(LRO)方式而让硬件(例如网络接口电路116)帮忙将多个小于最大传输单元(MTU)的封包聚合成一个超大的封包送给处理器114,然而当网络存在丢包时,会造成聚合个数的减少,进而使得处理器114所要处理的封包个数增加而影响到最终的测速结果,除了通过避免TCP封包重传的方式来避免丢包对网络测速的影响,本发明另可通过用户端202(例如光网络单元)的硬件(例如网络接口电路116)来主动丢弃一部分已成功接收的TCP封包(例如TCP封包210、212)来减低丢包对处理器负载以及网络测速的影响。
当用户端202(计算机装置102)的处理器114执行程序代码PROG_1(例如程序代码PROG_1中所包含的网络测速软件(用户端)的程序代码)来启动网络测速(至少包含下载速率的测试)时,最后是由用户端202(计算机装置102)来回报网络测速的结果(至少包含下载速率的测试结果),本实施例中,用户端202(计算机装置102)的处理器114执行程序代码PROG_1(例如程序代码PROG_1中所包含的网络测速软件(用户端)的程序代码)来根据网络接口电路116目前所成功接收的所有TCP封包(包含主动丢弃的已接收TCP封包)的数据量来计算用户端202所使用的网络的网络速率,举例来说,网络接口电路116具有计数器(未显示)可统计所接收TCP封包的数据量,因此处理器114可执行程序代码PROG_1(例如程序代码PROG_1中所包含的测速软件(用户端)的程序代码)来自此计数器读取数据量的统计信息,最后便根据用户端202在目前时间点所实际接收到的TCP封包的数据量以及所经过的时间来计算出网络所提供的下载速率。
请参照图3,图3为本发明一实施例的下载速率测试的循序图。用户端(例如HTTP用户端或光网络单元)202可以是图1所示的计算机装置102,以及服务器(例如HTTP服务器)204可以是图1所示的计算机装置104。当用户端202(计算机装置102)的处理器114执行程序代码PROG_1(例如程序代码PROG_1所包含的网络测速软件(用户端)的程序代码)来启动网络测速(至少包含下载速率的测试)时,服务器204会发送多个TCP封包至用户端202来执行下载速率的测试,在本实施例中,服务器204(计算机装置104)所发送的第一个TCP封包的序号为x(亦即TCP_SN=x),且第一个TCP封包被用户端202(计算机装置102)的硬件成功接收但被主动地丢弃以降低后续软件处理的处理器负载。在网络测速的期间,服务器204(计算机装置104)所发送的TCP封包发生丢包,例如序号为x+1400(亦即TCP_SN=x+1400)的TCP封包没有被用户端202(计算机装置102)所成功接收,如前所述,用户端202(计算机装置102)并不会要求服务器204(计算机装置104)重传序号为x+1400(亦即TCP_SN=x+1400)的TCP封包。服务器204(计算机装置104)后续发送多个TCP封包,包含TCP封包(序号为x+1400*2,亦即TCP_SN=x+1400*2)、TCP封包(序号为x+1400*3,亦即TCP_SN=x+1400*3)以及TCP封包(序号为x+1400*n,亦即TCP_SN=x+1400*n),这些TCP封包均被用户端202(计算机装置102)所成功接收,其中序号为x+1400*3的TCP封包被用户端202(计算机装置102)的硬件成功接收但被主动地丢弃以降低后续软件处理的处理器负载。此外,因应序号为x+1400*n的TCP封包的成功接收,用户端202会回传确认封包(确认号码为x+1400*n,亦即ACK_SN=x+1400*n)。用户端202(计算机装置102)的硬件会通过计数器来统计网络测速期间中所成功接收的所有TCP封包(包含主动丢弃的已接收TCP封包)的数据量(例如x+1400*(n-1)),接着,用户端202(计算机装置102)的软件会将读取到的数据量(例如x+1400*(n-1))除以花费的时间(例如t)来计算得到用户端202(计算机装置102)所使用的网络所提供的下载速率(例如)。
以上所述仅为本发明的优选实施例,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (10)
1.一种计算机装置,包含:
网络接口电路,用来自另一计算机装置接收多个第一传输控制协议封包;
存储装置,用来存储程序代码;以及
处理器,用来载入并执行该程序代码以进行以下操作:
指示该网络接口电路来传送多个第二传输控制协议封包至该另一计算机装置,其中该多个第二传输控制协议封包包含连续传送的第二传输控制协议封包与另一第二传输控制协议封包,该第二传输控制协议封包为该多个第一传输控制协议封包中的第一传输控制协议封包的确认封包,该另一第二传输控制协议封包为该多个第一传输控制协议封包中的另一第一传输控制协议封包的确认封包,以及该第一传输控制协议封包与该另一第一传输控制协议封包具有不连续的序号;以及
根据该多个第一传输控制协议封包的数据量来计算该计算机装置所使用的网络的网络速率。
2.如权利要求1所述的计算机装置,其中在该计算机装置进行网络测速的期间,该计算机装置不会要求该另一计算机装置进行任何传输控制协议封包重传。
3.如权利要求1所述的计算机装置,其中该网络接口电路另主动丢弃所接收的该多个第一传输控制协议封包中部分的第一传输控制协议封包,来降低该处理器的负载。
4.一种计算机装置,包含:
网络接口电路;
存储装置,用来存储程序代码;以及
处理器,用来载入并执行该程序代码以进行以下操作:
指示该网络接口电路传送第一传输控制协议封包至另一计算机装置;以及
在指示该网络接口电路传送该第一传输控制协议封包至该另一计算机装置之后,指示该网络接口电路传送另一第一传输控制协议封包至该另一计算机装置;
其中该网络接口电路还用来接受来自该另一计算机装置的第二传输控制协议封包,且该第二传输控制协议封包为该另一第一传输控制协议封包的确认封包;以及在该网络接口电路接收到该第二传输控制协议封包之前,该网络接口电路不会接收到对应该第一传输控制协议封包的确认封包。
5.如权利要求4所述的计算机装置,其中在该另一计算机装置进行网络测速的期间,该计算机装置不会进行任何传输控制协议封包重传。
6.一种应用在计算机装置的传输控制协议封包处理方法,包含:
自另一计算机装置接收多个第一传输控制协议封包;
传送多个第二传输控制协议封包至该另一计算机装置,其中该多个第二传输控制协议封包包含连续传送的第二传输控制协议封包与另一第二传输控制协议封包,该第二传输控制协议封包为该多个第一传输控制协议封包中的第一传输控制协议封包的确认封包,该另一第二传输控制协议封包为该多个第一传输控制协议封包中的另一第一传输控制协议封包的确认封包,以及该第一传输控制协议封包与该另一第一传输控制协议封包具有不连续的序号;以及
根据该多个第一传输控制协议封包的数据量来计算该计算机装置所使用的网络的网络速率。
7.如权利要求6所述的传输控制协议封包处理方法,其中在该计算机装置进行网络测速的期间,该计算机装置不会要求该另一计算机装置进行任何传输控制协议封包重传。
8.如权利要求6所述的传输控制协议封包处理方法,还包含:
主动丢弃所接收的该多个第一传输控制协议封包中部分的第一传输控制协议封包,来降低该网络装置的处理器负载。
9.一种应用于计算机装置的传输控制协议封包处理方法,包含:
传送第一传输控制协议封包至另一计算机装置;
在传送该第一传输控制协议封包至该另一计算机装置之后,传送另一第一传输控制协议封包至该另一计算机装置;以及
接受来自该另一计算机装置的第二传输控制协议封包,其中该第二传输控制协议封包为该另一第一传输控制协议封包的确认封包,以及在接收到该第二传输控制协议封包之前,不会接收到对应该第一传输控制协议封包的确认封包。
10.如权利要求9所述的传输控制协议封包处理方法,其中在该另一计算机装置进行网络测速的期间,该计算机装置不会进行任何传输控制协议封包重传。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310072265.1A CN118381838A (zh) | 2023-01-20 | 2023-01-20 | 计算机装置及用于计算机装置的传输控制协议封包处理方法 |
TW112109515A TWI839155B (zh) | 2023-01-20 | 2023-03-15 | 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法 |
US18/499,203 US20240251028A1 (en) | 2023-01-20 | 2023-10-31 | Device and method for achieving improved network speed test result by preventing transmission control protocol packets from being re-transmitted and reducing processor load |
EP23208485.5A EP4404530A1 (en) | 2023-01-20 | 2023-11-08 | Device and method for achieving improved network speed test result by preventing transmission control protocol packets from being re-transmitted and reducing processor load |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310072265.1A CN118381838A (zh) | 2023-01-20 | 2023-01-20 | 计算机装置及用于计算机装置的传输控制协议封包处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118381838A true CN118381838A (zh) | 2024-07-23 |
Family
ID=88745771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310072265.1A Pending CN118381838A (zh) | 2023-01-20 | 2023-01-20 | 计算机装置及用于计算机装置的传输控制协议封包处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240251028A1 (zh) |
EP (1) | EP4404530A1 (zh) |
CN (1) | CN118381838A (zh) |
TW (1) | TWI839155B (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI371195B (en) * | 2008-08-22 | 2012-08-21 | Hon Hai Prec Ind Co Ltd | Network calculating device and method |
WO2011006531A1 (en) * | 2009-07-14 | 2011-01-20 | Telefonica, S.A. | Method of monitoring a bittorrent network and measuring download speeds |
JP5361924B2 (ja) * | 2011-02-28 | 2013-12-04 | 株式会社東芝 | データ送信装置、データ通信装置および通信プログラム |
US8856324B2 (en) * | 2013-01-28 | 2014-10-07 | TrustPipe LLC | System and method for detecting a compromised computing system |
US9363188B2 (en) * | 2013-03-15 | 2016-06-07 | Arris Enterprises, Inc. | Cable modem termination system control of cable modem queue length |
US9674090B2 (en) * | 2015-06-26 | 2017-06-06 | Microsoft Technology Licensing, Llc | In-line network accelerator |
CN107707422A (zh) * | 2017-08-24 | 2018-02-16 | 四川天邑康和通信股份有限公司 | 基于onu驱动层快速ack回复的网络测速方法 |
CN111435866B (zh) * | 2019-01-14 | 2023-02-10 | 华为技术有限公司 | 数据传输方法及相关装置 |
US12048032B2 (en) * | 2019-10-01 | 2024-07-23 | Pismo Labs Technology Limited | Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets |
-
2023
- 2023-01-20 CN CN202310072265.1A patent/CN118381838A/zh active Pending
- 2023-03-15 TW TW112109515A patent/TWI839155B/zh active
- 2023-10-31 US US18/499,203 patent/US20240251028A1/en active Pending
- 2023-11-08 EP EP23208485.5A patent/EP4404530A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4404530A1 (en) | 2024-07-24 |
TWI839155B (zh) | 2024-04-11 |
US20240251028A1 (en) | 2024-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
He et al. | Reliable blast UDP: Predictable high performance bulk data transfer | |
JP6705003B2 (ja) | データ伝送方法および関連するデバイス | |
CN108881008B (zh) | 一种数据传输的方法、装置和系统 | |
JP5523350B2 (ja) | Tcpフロー制御のための方法及び装置 | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
US7502860B1 (en) | Method and apparatus for client-side flow control in a transport protocol | |
US20040192312A1 (en) | Communication system for voice and data with wireless TCP server | |
CN110677221B (zh) | 重传控制方法、通信接口和电子设备 | |
US10701189B2 (en) | Data transmission method and apparatus | |
US20070291782A1 (en) | Acknowledgement filtering | |
CN110072254B (zh) | 一种数据的传输方法及其相关设备 | |
CN109560897B (zh) | 一种tcp重传方法和装置 | |
CN108432287A (zh) | 一种数据传输方法及网络侧设备 | |
CN113938431B (zh) | 突发数据包传输方法、装置和电子设备 | |
CN117560304B (zh) | 一种网络状态监测方法、系统、设备和介质 | |
CN116074401B (zh) | 一种在可编程交换机上的传输层协议实现方法 | |
EP1460804A2 (en) | System and method for handling out-of-order frames (fka reception of out-of-order tcp data with zero copy service) | |
CN114390054A (zh) | 一种核心网网络加速方法、电子设备及计算机存储介质 | |
CN111314961A (zh) | Tcp传输方法、装置和系统 | |
TWI839155B (zh) | 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法 | |
CA2372023A1 (en) | Overload control method for a packet-switched network | |
TWI846381B (zh) | 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法 | |
US20240250889A1 (en) | Device and method for achieving improved network speed test result by preventing transmission control protocol packets from being re-transmitted | |
CN111147386B (zh) | 用于处理数据传输拥塞的方法、电子设备和计算机可读介质 | |
Abdelsalam et al. | Evaluation of TCP wave performance applied to real HTTP traffic |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |