一种数据发送方法和相关设备的制作方法

文档序号:7720562阅读:113来源:国知局
专利名称:一种数据发送方法和相关设备的制作方法
技术领域
本发明涉及通讯领域,尤其涉及一种数据发送发放和相关设备。
背景技术
传输控制协议(Transport Control Protocol,TCP)是一种面向连接的,可靠的传 输层协议。面向连接是指一次正常的TCP传输需要通过在TCP客户端和TCP服务器端建立 特定的虚电路连接来完成,这种TCP连接可采用“三次握手”过程来实现。
“三次握手”过程分别为(1)客户端发送一个带SYN标志的TCP报文到服务器,这是三次握手过程中的报文
Io(2)服务器端回应客户端同时带ACK标志和SYN标志报文,这是三次握手中的第2 个报文。该报文表示对刚才客户端SYN报文的回应;同时又将标志SYN发送给客户端,以询 问客户端是否准备好进行数据通讯。(3)客户端必须再次回应服务器端一个ACK报文,这是报文段3。这样,在“三次握手”之后就可以建立起相应的TCP连接,客户端再通过该TCP连 接向服务器发送数据。而上述的报文段3 (或成为第三个握手报文)是没有载荷的,即其载 荷长度为O。TCP三次握手抓包结果如图1所示。其中,第一次握手抓包为42 :tcp连接发起端即客户端(10. 10.99. 124)向 192. 168. 99. 254发送了一个SYN包,等待回应。第二次握手43 服务端(192. 168. 99. 254) 接受连接,发送SYN+ACK包给客户端。第三次握手44 客户端收到43号包以后,回应ACK给 服务端,至此三次握手完成,TCP连接建立。之后的46是连接建立以后的数据交互。从图1 可以看出,第三次握手包44中的有效载荷长度为0。

发明内容
本发明实施例所要解决的技术问题在于,提供一种数据发送发放和相关设备,可 以提高TCP连接的数据传输效率。为了解决上述技术问题,本发明实施例提供了一种数据发送方法,包括客户端向 服务器发送带有SYN标志的第一 TCP报文;所述服务器收到所述第一 TCP报文后,向所述客 户端返回带有ACK标志和SYN标志第二 TCP报文;所述客户端收到所述第二 TCP报文后,向 所述服务器发送带有ACK标志的第三TCP报文以建立TCP连接,所述在第三TCP报文中还 包括所述数据的载荷。其中,所述方法还包括若所述第三TCP报文中的数据的载荷是该数据的一部分 载荷,则所述客户端在所述TCP连接上向服务器继续发送所述携带有所述数据的其他载荷 的TCP报文。所述方法可用于浏览器应用中,所述服务器为网页服务器,当所述客户端访问所述网页服务器时,所述客户端建立至少两条TCP连接。相应地,本发明实施例还提供了一种客户端,包括第一发送单元,用于向服务器 发送带有SYN标志的第一 TCP报文;第二接收单元,用于接收所述服务器在收到所述第一 TCP报文后向返回带有ACK标志和SYN标志第二 TCP报文;第三发送单元,用于在收到所述 第二 TCP报文后,向所述服务器发送带有ACK标志的第三TCP报文以建立TCP连接,其中, 所述在第三TCP报文中还包括所述数据的载荷。其中,所述客户端还可包括数据发送单元, 用于判断所述第三TCP报文中的数据的载荷是否是该数据的全部载荷,并当判断结果为否 时,在所述TCP连接建立完成后通过所述TCP连接向服务器继续发送携带有所述数据的其 他载荷的TCP报文。本发明实施例还提供了一种服务器,包括第一接收单元,用于接收客户端发送的 带有SYN标志的第一 TCP报文;第二发送单元,用于收到所述第一 TCP报文后,向所述客户 端返回带有ACK标志和SYN标志第二 TCP报文;第三接收单元,用于接收所述客户端在收到 所述第二 TCP报文后发送的带有ACK标志的第三TCP报文,并建立TCP连接,其中,所述在 第三TCP报文中还包括所述数据的载荷。其中,所述服务器还可包括数据接收单元,用用于当所述第三TCP报文中的数据 的载荷是该数据的部分载荷时,在所述TCP连接上接收所述客户端继续发送的携带有所述 数据的其他载荷的TCP报文。所述服务器可为浏览器应用中的网页服务器,当所述客户端 访问所述网页服务器时,所述客户端建立至少两条TCP连接。在本发明实施例中,在“三次握手”中的第三个握手包中同时携带了数据载荷,提 高了数据传输的效率,节省了数据传输的时间,提升了用户体验。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。
图1是现有技术中TCP三次握手抓包结果的示意图; 图2是本发明实施例中的数据发送方法的一个具体流程示意图; 图3是本发明实施例中的客户端主动发起建立TCP连接的过程示意图; 图4是本发明实施例中的客户端的一个具体组成示意图; 图5是本发明实施例中的服务器的一个具体组成示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。在现有技术中建立TCP连接时的第三个握手报文的载荷长度为0。因此,本发明 实施例在第三个握手包中携带数据,既可以对握手信息进行确认又可以顺便发送数据,节约下载时间,提高下载速度,提升用户体验。如图2所示,为本发明实施例中的数据发送方法的一个具体流程示意图。该流程包括101、客户端向服务器发送带有SYN标志的第一 TCP报文。102、所述服务器收到所述第一 TCP报文后,向所述客户端返回带有ACK标志和SYN 标志第二 TCP报文。103、所述客户端收到所述第二 TCP报文后,向所述服务器发送带有ACK标志的第 三TCP报文以建立TCP连接,其中,所述在第三TCP报文中还包括所述数据的载荷。其中, 所述数据的载荷是指在本次建立的TCP连接上发送的部分或全部的数据载荷,并且,若要 发送的数据的载荷可在本次步骤中发送完毕,则该流程可不包括下述的步骤104 ;若要发 送的数据除了包括本次步骤中发送的载荷,还包括其他的载荷,则该流程还包括步骤104, 以便客户端在已经建立的TCP连接上继续发送后续数据载荷。并且,上述的数据的载荷可以放在第三TCP报文的TCP头之后。104、若所述第三TCP报文中的数据的载荷是该数据的一部分载荷,则所述客户端 在所述TCP连接上向服务器继续发送所述携带有所述数据的其他载荷的TCP报文。此处描 述的其他载荷,是指要发送的数据中除步骤103已发送的载荷外的其他载荷。这样,第三TCP报文相当于既对连接做了确认,同时又携带了需要传送的数据。上述方法可用于浏览器应用中,则服务器为相应的网页服务器。此时,多数时候客 户端访问一个网页至少会建立十几条TCP连接,运用本发明实施例中的上述方案后,可以 大大加快网页打开的速度,用户体验非常好。即对于需要一次建立的连接数越多,网络状况 不太好的情况,此方法的优点越明显。以下结合程序实现来描述上述步骤在现有技术中,TCP连接的函数原型为int connect(int s,const struct sockaddr氺name, int name1en);函数功能用来将参数sockfd的socket连至参数serv_addr指定的网络地址。参数说明s 套接字描述符name 指向待连接地址结构体的指针namelen 结构体 sockaddr 的长度而在本发明实施例中的TCP连接的函数原型为int connect (int s,const struct sockaddr氺name,int namelen,char氺buffer, intbufferlen);S卩,相比于现有技术增加一个buffer,buffer为空时与原流程相同,否则,在最后 一次握手中,将buf f f er中的Buf f er 1 en长度的数据放在握手包中发送出去。Bufferlen 实际数据长度相应的,本发明实施例中的的客户端主动发起建立TCP连接的过程可参见图3。相应的,如图4和图5所示,本发明实施例还提供了一种客户端4和服务器5。该 客户端4包括第一发送单元41,用于向服务器5发送带有SYN标志的第一 TCP报文;第二 接收单元42,用于接收所述服务器5在收到所述第一TCP报文后向返回带有ACK标志和SYN标志第二 TCP报文;第三发送单元43,用于在收到所述第二 TCP报文后,向所述服务器5发 送带有ACK标志的第三TCP报文以建立TCP连接,其中,所述在第三TCP报文中后还包括所 述数据的载荷。数据发送单元44,用于判断所述第三TCP报文中的数据的载荷是否是该数 据的全部载荷,并当判断结果为否时,在所述TCP连接建立完成后通过所述TCP连接向服务 器5继续发送携带有所述数据的其他载荷的TCP报文。其中,若要发送的数据载荷可以一次发送完毕,则该客户端4可不包括数据发送单元44 ;若要发送的数据载荷需要分批发送,则该客户端4包括数据发送单元44,以便客户 端4在已经建立的TCP连接上继续发送数据。相应的,该服务器5包括第一接收单元51,用于接收客户端4发送的带有SYN标 志的第一 TCP报文;第二发送单元52,用于收到所述第一 TCP报文后,向所述客户端4返回 带有ACK标志和SYN标志第二 TCP报文;第三接收单元53,用于接收所述客户端4在收到所 述第二 TCP报文后发送的带有ACK标志的第三TCP报文,并建立TCP连接,其中,所述在第 三TCP报文中还包括所述数据的载荷。在一些实施例中,上述的载荷可以放在第三TCP报 文的TCP头之后。数据接收单元54,用于当所述第三TCP报文中的数据的载荷是该数据的部分载荷 时,在所述TCP连接上接收所述客户端4继续发送的携带有所述数据的其他载荷的TCP报文。其中,若要发送的数据载荷可在第三TCP报文中一次发送完毕,则该服务器5可不 包括数据接收单元54;若要发送的数据载荷在第三TCP报文中一次发送不完,则该服务器5 包括数据接收单元54,以便客户端4在已经建立的TCP连接上继续发送数据。其中,该服务器可以是浏览器应用中的网页服务器,当所述客户端访问所述网页 服务器时,所述客户端建立至少两条TCP连接。通过上述对各实施例的描述可知,在“三次握手”中的第三个握手包中同时携带了 数据载荷,提高了数据传输的效率,节省了数据传输的时间,提升了用户体验。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该 计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施 例或者实施例的某些部分所述的方法。以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施 方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范 围之内。
权利要求
一种数据发送方法,其特征在于,所述方法包括客户端向服务器发送带有SYN标志的第一TCP报文;所述服务器收到所述第一TCP报文后,向所述客户端返回带有ACK标志和SYN标志第二TCP报文;所述客户端收到所述第二TCP报文后,向所述服务器发送带有ACK标志的第三TCP报文以建立TCP连接,其中,所述在第三TCP报文中还包括所述数据的载荷。
2.如权利要求1所述的方法,其特征在于,所述方法还包括若所述第三TCP报文中的数据的载荷是该数据的一部分载荷,则所述客户端在所述 TCP连接上向服务器继续发送携带有所述数据的其他载荷的TCP报文。
3.如权利要求1或2所述的方法,其特征在于,所述方法用于浏览器应用中,所述服务 器为网页服务器,当所述客户端访问所述网页服务器时,所述客户端建立至少两条TCP连接。
4.如权利要求1或2所述的方法,其特征在于,所述数据的载荷放在第三TCP报文的 TCP头之后。
5.一种客户端,其特征在于,所述客户端包括第一发送单元,用于向服务器发送带有SYN标志的第一 TCP报文;第二接收单元,用于接收所述服务器在收到所述第一 TCP报文后向返回带有ACK标志 和SYN标志第二 TCP报文;第三发送单元,用于在收到所述第二 TCP报文后,向所述服务器发送带有ACK标志的第 三TCP报文以建立TCP连接,其中,所述在第三TCP报文中还包括所述数据的载荷。
6.如权利要求5所述客户端,其特征在于,所述客户端还包括数据发送单元,用于判断所述第三TCP报文中的数据的载荷是否是该数据的全部载 荷,并当判断结果为否时,在所述TCP连接建立完成后通过所述TCP连接继续向服务器继续 发送携带有所述数据的其他载荷的TCP报文。
7.如权利要求5或6所述客户端,其特征在于,所述数据的载荷放在第三TCP报文的 TCP头之后。
8.一种服务器,其特征在于,所述服务器包括第一接收单元,用于接收客户端发送的带有SYN标志的第一 TCP报文;第二发送单元,用于收到所述第一 TCP报文后,向所述客户端返回带有ACK标志和SYN 标志第二 TCP报文;第三接收单元,用于接收所述客户端在收到所述第二 TCP报文后发送的带有ACK标志 的第三TCP报文,并建立TCP连接,其中,所述在第三TCP报文中还包括所述数据的载荷。
9.如权利要求8所述的服务器,其特征在于,所述服务器还包括数据接收单元,用于当所述第三TCP报文中的数据的载荷是该数据的部分载荷时,在 所述TCP连接上接收所述客户端继续发送的携带有所述数据的其他载荷的TCP报文。
10.如权利要求8或9所述的服务器,其特征在于,所述服务器为浏览器应用中的网页 服务器,当所述客户端访问所述网页服务器时,所述客户端建立至少两条TCP连接。
11.如权利要求8或9所述客户端,其特征在于,所述数据的载荷放在第三TCP报文的 TCP头之后。
全文摘要
本发明公开了一种数据发送方法和相关设备,该方法包括客户端向服务器发送带有SYN标志的第一TCP报文;所述服务器收到所述第一TCP报文后,向所述客户端返回带有ACK标志和SYN标志第二TCP报文;所述客户端收到所述第二TCP报文后,向所述服务器发送带有ACK标志的第三TCP报文以建立TCP连接,其中,所述在第三TCP报文后还包括所述数据的载荷;所述客户端在所述TCP连接上向服务器继续发送携带有所述数据的其他载荷的TCP报文。在本发明实施例中,在“三次握手”中的第三个握手包中同时携带了数据载荷,提高了数据传输的效率,节省了数据传输的时间,提升了用户体验。
文档编号H04L1/18GK101808080SQ20091023893
公开日2010年8月18日 申请日期2009年12月30日 优先权日2009年12月30日
发明者张彩虹 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1