传输业务的方法、中间节点、终端和服务器的制造方法_3

文档序号:9263474阅读:来源:国知局
示信息,还可以通过向终端发送业务响应消息时一起发送该指示信息;还可以同时分别向终端和服务器发送该指示信息,本发明实施例对比不作限定,只要能够实现断开当前的TCP连接即可。下文将结合图2和图3进行详细说明。
[0155]具体地,以终端向服务器发送的业务请求消息所对应的业务需要提供该终端的用户私网IP,但该终端无法获取自身的用户私网IP为例。如图2所示,在S201中,终端与服务器建立TCP连接,具体地,首先终端向服务器发送一个SYN(Synchronous)消息,该SYN是建立TCP连接时使用的握手信号;然后服务器向终端发送SYN+ACK (Acknowledgement)消息,用于应答表示接收到该SYN消息;最后终端再向服务器发送ACK消息,用以响应该SYN+ACK消息,这样在终端和服务器之间建立起可靠的TCP连接,该终端和服务器可以基于该TCP连接进行数据传输;在S202中,终端向中间节点发送第一 HTTP请求报文,该第一 HTTP请求报文不包括该终端的用户私网IP ;在3203中,中间节点检测到该第一 HTTP请求报文后,根据该第一 HTTP请求报文确定第二 HTTP请求报文,该第二 HTTP请求报文中包括该终端的用户私网IP,第二业务请求消息的TCP包长度与该第一业务请求消息的TCP包长度不同;在S204中,中间节点向服务器发送第二 HTTP请求报文;在S205中,中间节点向服务器发送用于指示断开当前终端与服务器之间的TCP连接的指示信息;在S206中,中间节点接收到服务器向终端发送的第二 HTTP响应报文,该第二 HTTP响应报文用于指示服务器关于提供相关业务服务的相关信息;在S207中,中间节点根据该第二HTTP响应报文,确定第一HTTP响应报文;在S208中,该中间节点向终端发送该第一 HTTP响应报文;在S209中,服务器主动断开与终端之间的TCP连接,具体流程为:服务器向终端发送一个FIN消息,终端向服务器响应一个ACK消息;然后终端也向服务器发送一个FIN消息,服务器也向终端发送一个ACK消息,用于响应FIN消息,这样就断开了终端与服务器之间的TCP连接。
[0156]应理解,S204和S205不限定先后顺序,可选地,S204和S205还可以同时执行,即中间节点向服务器一起发送第二 HTTP请求报文和该指示信息;具体地,例如该第二 HTTP请求报文中包括用于指示断开TCP连接的该指示信息。
[0157]可选地,作为一个实施例,在图1所示的方法100中,S130向该终端和/或该服务器发送用于指示断开该终端与该服务器之间的TCP连接的指示信息,包括:
[0158]向该服务器发送该第二业务请求消息,该第二业务请求消息包括该指示信息。
[0159]具体地,例如在S202中,中间节点检测到终端发送的第一 HTTP请求报文如下所示:
[0160]GET/myapp/sethead.jsp HTTP/1.1
[0161]Accept:*/*
[0162]Accept-Language:zh_ch
[0163]User-Agent:Mo zilla/4.0
[0164]Host:10.74.151.59:8480
[0165]Connect1n:keep-Alive
[0166]在S203中,中间节点根据第一 HTTP请求报文确定的包括该终端的用户私网IP的第二 HTTP请求报文如下所示:
[0167]GET/myapp/sethead.jsp HTTP/1.1
[0168]Accept:*/*
[0169]Accept-Language:zh_ch
[0170]User-Agent:Mo zilla/4.0
[0171]Host:10.74.151.59:8480
[0172]Connect1n:Close
[0173]Private IP: 10.140.70.221
[0174]即第二 HTTP请求报文相对第一 HTTP请求报文,增加了字段“PrivateIP: 10.140.70.221”,并将字段“Connect1n:keep_Alive” 更改为 “Connect1n:Close,,,即该第二 HTTP请求报文中的字段“Connect1iKClose”用于指示服务器断开终端与服务器之间的TCP连接。
[0175]可选地,在本发明实施例中,中间节点向服务器发送的用于指示断开TCP连接的指示信息可以为该终端的相关标识信息,还以上述第一 HTTP请求报文和第二 HTTP请求报文为例,中间节点根据第一 HTTP请求报文确定的包括该终端的用户私网IP的第二 HTTP请求报文还可以是如下格式:
[0176]GET/myapp/sethead.jsp HTTP/1.1
[0177]Accept:*/*
[0178]Accept-Language:zh_ch
[0179]User-Agent:Mo zilla/4.0
[0180]Host:10.74.151.59:8480
[0181]Connect1n:keep-Alive
[0182]Private IP: 10.140.70.221
[0183]即第二 HTTP请求报文在第一 HTTP请求报文的基础上增加了字段“PrivateIP: 10.140.70.221”,在其他部分并未做任何改变,这种场景下,可以通过设置服务器,使其检测到中间节点发送的第二 HTTP请求报文中包括该终端的相关标识信息时,会自动断开TCP连接,或者执行其他断开TCP连接的操作,本发明实施例对比不作限定。
[0184]应理解,中间节点向服务器发送了用于指示其断开TCP连接的指示信息,服务器通常是根据第二业务请求消息向终端发送了第二业务响应消息后,才发起断开TCP连接的操作,如图2中的S209所示。
[0185]中间节点还可以通过向终端发送指示信息,用以指示终端主动断开该TCP连接。
[0186]具体地,还以终端向服务器发送的业务请求消息所对应的业务需要提供该终端的用户私网IP,但该终端无法获取自身的用户私网IP为例。如图3所示,在S301中,终端与服务器建立TCP连接,具体地,首先终端向服务器发送一个SYN (Synchronous)消息,该SYN是建立TCP连接时使用的握手信号;然后服务器向终端发送SYN+ACK (Acknowledgement)消息,用于应答表示接收到该SYN消息;最后终端再向服务器发送ACK消息,用以响应该SYN+ACK消息,这样在终端和服务器之间建立起可靠的TCP连接,该终端和服务器可以基于该TCP连接进行数据传输;在S302中,终端向中间节点发送第一 HTTP请求报文,该第一HTTP请求报文不包括该终端的用户私网IP ;在S303中,中间节点检测到该第一 HTTP请求报文后,根据该第一 HTTP请求报文确定第二 HTTP请求报文,该请求报文中包括该终端的用户私网IP ;在3304中,中间节点向服务器发送第二 HTTP请求报文;在S305中,中间节点接收到服务器向终端发送的第二 HTTP响应报文;在S306中,中间节点根据该第二 HTTP响应报文,确定第一 HTTP响应报文;在S307中,该中间节点向终端发送该第一 HTTP响应报文;在S308中,中间节点向终端发送用于指示断开当前终端与服务器之间的TCP连接的指示信息;在S309中,终端主动断开与终端之间的TCP连接,具体流程为:终端向服务器发送一个FIN消息,服务器向终端响应一个ACK消息;然后服务器也向终端发送一个FIN消息,终端也向服务器发送一个ACK消息,用于响应FIN消息,这样就断开了终端与服务器之间的TCP连接。
[0187]应理解,S307和S308不限定先后顺序,可选地,S307和S308还可以同时执行,即中间节点向终端一起发送第一 HTTP响应报文和该指示信息;具体地,例如该第二 HTTP请求报文中包括用于指示断开TCP连接的该指示信息。
[0188]可选地,作为一个实施例,在图1所示的方法100中,S130向该终端和/或该服务器发送用于指示断开该终端与该服务器之间的TCP连接的指示信息,包括:
[0189]向该服务器发送该第二业务请求消息;
[0190]接收该服务器根据该第二业务请求消息发送的第二业务响应消息;
[0191]根据该第二业务响应消息,向该终端发送第一业务响应消息,该第一业务响应消息包括该指示信息。
[0192]具体地,例如在S305中,中间节点检测到服务器发送的第二HTTP响应报文如下所示:
[0193]HTTP/1.12000K
[0194]Server:Apache-Coyote/1.1
[0195]Connect1n:keep-Alive
[0196]Content-Type:text/html;charset=GB2312
[0197]Content-Lengh:241
[0198]Date:Tue, 30Jul201304:04:06GMT
[0199]在S307中,中间节点根据第二 HTTP响应报文确定的第一 HTTP响应报文如下所示:
[0200]HTTP/1.12000K
[0201]Server:Apache-Coyote/1.1
[0202]Connect1n:Close
[0203]Content-Type:text/html;charset=GB2312
[0204]Content-Lengh:241
[0205]Date:Tue, 30Jul201304:04:06GMT
[0206]即第一HTTP响应报文相对第二HTTP响应报文,将字段“Connect1n:ke印-Alive”更改为“Connect1n:Close”,即该第一 HTTP响应报文中的字段“Connect1n:Close”用于指示终端断开终端与服务器之间的TCP连接。
[0207]因此,在本发明实施例中,当中间节点确定向服务器发送的业务请求消息与终端发送的业务请求消息的TCP包长度不同时,指示终端或服务器断开当前终端与服务器之间的TCP连接,以便于终端通过重新建立的TCP连接向服务器发送下一次业务请求消息,可以避免中间节点基于同一个TCP连接不断地计算和修改终端发送的业务请求消息和服务器发送的业务响应消息的TCP包长度的问题,能够有效降低对中间节点性能的影响。
[0208]应理解,在本发明实施例中,中间节点在该第二业务请求消息的传输控制协议TCP包长度与该第一业务请求消息的TCP包长度不同的场景下,均会指示断开当前的TCP连接,并不对第二业务请求消息具体包括哪些信息作特殊限定,也不特别限定第二业务请求消息相对于第一业务请求消息增加了哪些信息。
[0209]可选地,作为一个实施例,图1所示的方法100还包括:
[0210]接收该终端在与该服务器重新建立TCP连接之后发送的第三业务请求消息,该第三业务请求消息与该第一业务请求消息对应相同的会话;
[0211]向该服务器发送该第三业务请求消息。
[0212]具体地,如图2中的S210至S212,图3中的S310至S312,以图2为例,在S210中,终端与服务器重新建立二者之间的TCP连接;在S211中,终端基于重新建立的TCP连接向服务器发送第三HTTP请求报文,该第三HTTP请求报文与第一 HTTP请求报文对应相同的会话;在S212中,服务器根据第三HTTP请求报文,向该终端发送第三HTTP响应报文。图3中的S310至S312的步骤与图2中的S210至S212步骤一致,为了简洁,这里不再赘述。
[0213]应理解,终端与服务器重新建立TCP连接后,中间节点检测到终端发送的第三HTTP请求报文后,可以直接将该第三HTTP请求报文转发给服务器,不再需要对其作处理与修改。因为,该第三HTTP请求报文与第一 HTTP请求报文对应相同的会话,服务器可以根据该终端会话历史信息(例如用户名、私网IP、公网IP、接入点名称APN、会话ID等),识别该终端,从而为该终端提供相应的业务服务。
[0214]因此,在本发明实施例中,基于重新建立的该终端与服务器之间的TCP连接,当中间节点检测到终端发送的HTTP请求报文时,可以直接向服务器转发终端发送的HTTP请求报文,无需计算和修改该HTTP请求报文的TCP包序号或者TCP包长度或TCP包校验和等信息,且在后续转发服务器向终端发送的HTTP响应报文时,也无需重新计算和修改该HTTP响应报文的TCP包序号,能够有效降低对中间节点性能的影响。
[0215]还应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0216]因此,本发明实施例的传输业务的方法,当确定中间节点向服务器发送的业务请求消息的TCP包长度与终端向该中间节点发送的业务请求消息的TCP包长度不同时,断开当前该终端与该服务器之间的TCP连接,以便于根据重新建立的TCP连接进行后续的业务传输,从而能够有效避免中间节点在同一个TCP连接下对TCP包长度的重新计算和修改,能够有效降低对中间节点性能的影响。
[0217]上文中结合图1至图3,从中间节点的角度详细描述了根据本发明实施例的传输业务的方法,下面将结合图4,从终端的角度描述根据本发明实施例的传输业务的方法。
[0218]如图4所示,根据本发明实施例的传输业务的方法400,例如可以由终端执行,该方法400包括:
[0219]S410,建立与服务器之间的传输控制协议TCP连接;
[0220]S420,向中间节点发送用于请求该服务器提供业务服务的第一业务请求消息,以便于该中间节点根据该第一业务请求消息,向该服务器发送第二业务请求消息;
[0221]S430,接收该中间节点在确定该第二业务请求消息的TCP包长度与该第一业务请求消息的TCP包长度不同时,发送的用于指示断开该TCP连接的指示信息;
[0222]S440,根据该指示信息,断开该TCP连接。
[0223]因此,本发明实施例的传输业务的方法,根据中间节点发送的用于断开终端与服务器之间TCP连接的指示信息,断开当前终端与服务器之间的TCP连接,以便于终端与服务器基于重新建立的TCP连接进行后续的业务传输,能够有效避免中间节点在同一个TCP连接上对TCP包长度的重新计算和修改,从而能够有效降低中间节点的处理负担,能够提高其性能。
[0224]在S410中,建立与服务器之间的TCP连接,具体流程为,终端首先向服务器发送一个SYN消息,然后服务器使用SYN+ACK消息应答表示接收到了 SYN消息,最后终端再以ACK消息响应服务器,这样在终端和服务器之间就建立了 TCP连接,可以在终端和服务器之间传输业务了。
[0225]在S420中,向中间节点发送用于请求该服务器提供业务服务的第一业务请求消息,以便于该中间节点根据该第一业务请求消息,向该服务器发送第二业务请求消息。应理解,在通信领域,移动终端是通过中间节点(网关或基站)向网络侧服务器发送用于请求业务服务的业务请求消息的,相应地,服务器也是通过相应的中间节点向终端发送业务响应消息的,可以理解为,终端是通过对应的网关设备(中间节点)与服务器进行通信的。
[0226]在S430中,接收该中间节点在确定该第二业务请求消息的TCP包长度与该第一业务请求消息的TCP包长度不同时,发送的用于指示断开该TCP连接的指示信息。
[0227]具体地,如图3所示,在S308中,中间节点向终端发送用于指示断开当前终端与服务器之间的TCP连接的指示信息;在S309中,终端主动断开与终端之间的TCP连接,具体流程为:终端向服务器发送一个FIN消息,服务器向终端响应一个ACK消息;然后服务器也向终端发送一个FIN消息,终端也向服务器发送一个ACK消息,用于响应FIN消息,这样就断开了终端与服务器之间的TCP连接。
[0228]应理解,图3所示的S307和S308不限定先后顺序,可选地,S307和S308还可以同时执行,即中间节点向终端一起发送第一 HTTP响应报文和该指示信息;具体地,例如该第二 HTTP请求报文中包括用于指示断开TCP连接的该指示信息。
[0229]可选地,作为一个实施例,图4所示的方法400中的S430接收该中间节点在确定该第二业务请求消息的TCP包长度与该第一业务请求消息的TCP包长度不同时,发送的用于指示断开该TCP连接的指示信息,包
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1