1.一种处理报文的方法,其特征在于,包括:
服务器中的转换单元接收负载均衡器发送的第一数据报文,所述第一数据报文的传输控制协议TCP选项字段中携带客户端的网际协议IP地址,所述第一数据报文的源IP地址为所述负载均衡器的IP地址,所述第一数据报文的目的IP地址为所述服务器的IP地址;
所述转换单元从所述TCP选项字段中获取所述客户端的IP地址,将所述第一数据报文的源IP地址替换为所述客户端的IP地址,生成第二数据报文;
所述转换单元向所述服务器中的应用单元发送所述第二数据报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述转换单元根据所述第一数据报文生成流表,所述流表包括所述第一数据报文的五元组。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述转换单元接收所述应用单元发送的用于响应所述第二数据报文的第三数据报文,所述第三数据报文的目的IP地址为所述客户端的IP地址,所述第三数据报文的源IP地址为所述服务器的IP地址;
所述转换单元根据所述流表,将所述第三数据报文中的目的IP地址替换为所述负载均衡器的IP地址,生成第四数据报文;
所述转换单元向所述负载均衡器发送所述第四数据报文。
4.一种处理报文的方法,其特征在于,包括:
服务器中的应用单元接收该服务器中的转换单元发送的第二数据报文,该第二数据报文的源网际协议IP地址为客户端的IP地址,该第二数据报文的目的IP地址为该服务器的IP地址,该第二数据报文由该转换单元将第一数据报文的源IP地址替换为该客户端的IP地址生成,该第一数据报文的传输控制协议TCP选项字段中携带该客户端的IP地址;
该应用单元根据该客户端的IP地址进行管理操作。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述应用单元向所述转换单元发送用于响应所述第二数据报文的第三数据报文,所述第三数据报文的目的IP地址为所述客户端的IP地址,所述第三数据报文的源IP地址为所述服务器的IP地址。
6.根据权利要求4或5所述的方法,其特征在于,所述管理操作包括访问统计、访问控制和网络故障定位中的至少一项。
7.一种处理报文的转换单元,其特征在于,包括:
第一接收模块,用于接收负载均衡器发送的第一数据报文,所述第一数据报文的传输控制协议TCP选项字段中携带客户端的网际协议IP地址,所述第一数据报文的源IP地址为所述负载均衡器的IP地址,所述第一数据报文的目的IP地址为服务器的IP地址;
第一生成模块,用于从所述TCP选项字段中获取所述客户端的IP地址,将所述第一数据报文的源IP地址替换为所述客户端的IP地址,生成第二数据报文;
第一发送模块,用于向所述服务器中的应用单元发送所述第二数据报文。
8.根据权利要求7所述的转换单元,其特征在于,所述转换单元还包括:
第二生成模块,用于根据所述第一数据报文生成流表,所述流表包括所述第一数据报文的五元组。
9.根据权利要求8所述的转换单元,其特征在于,所述转换单元还包括:
第二接收模块,用于接收所述应用单元发送的用于响应所述第二数据报文的第三数据报文,所述第三数据报文的目的IP地址为所述客户端的IP地址,所述第三数据报文的源IP地址为所述服务器的IP地址;
第三生成模块,用于根据所述流表将所述第三数据报文中的目的IP地址替换为所述负载均衡器的IP地址,生成第四数据报文;
第二发送模块,用于向所述负载均衡器发送所述第四数据报文。
10.一种处理报文的应用单元,其特征在于,包括:
接收模块,用于接收服务器中的转换单元发送的第二数据报文,所述第二数据报文的源IP地址为客户端的网际协议IP地址,所述第二数据报文的目的IP地址为所述服务器的IP地址,所述第二数据报文由所述转换单元将第一数据报文的源IP地址替换为所述客户端的IP地址生成,所述第一数据报文的传输控制协议TCP选项字段中携带所述客户端的IP地址;
管理模块,用于根据所述客户端的IP地址进行管理操作。
11.根据权利要求10所述的应用单元,其特征在于,所述应用单元还包括:
发送模块,用于响应所述第二数据报文的第三数据报文,所述第三数据报文的目的IP地址为所述客户端的IP地址,所述第三数据报文的源IP地址为所述服务器的IP地址。
12.根据权利要求10或11所述的应用单元,其特征在于,所述管理操作包括访问统计、访问控制和网络故障定位中的至少一项。
13.一种服务器,其特征在于,包括:
根据权利要求7至9中任一项所述的转换单元和根据权利要求10至12中任一项所述的应用单元。
处理报文的方法、转换单元和应用单元\n技术领域\n[0001] 本发明涉及通信领域,并且更具体地,涉及一种处理报文的方法、转换单元和应用单元。\n背景技术\n[0002] 现有的LVS(Linux Virtual Server,Linux虚拟服务器)已经是Linux标准内核的一部分。使用LVS提供的负载均衡技术和Linux操作系统可以实现一个高性能、高可用的服务器群集,具有良好可靠性、可扩展性和可操作性,以及能够以低廉的成本实现最优的服务性能。\n[0003] 在云计算领域,LVS部署的负载均衡器会采用全网络地址转换(Full Network Address Transfer,FULLNAT)模式进行反向代理,从而可以解决真实服务器(Real Server,RS)的跨子网流量分发能力。但是也带来了一个问题,即服务器无法获取到访问者的网际协议(Internet Protocol,IP)地址。服务器获取访问者的IP地址,尤其是可以在网络层获取到访问者的IP地址,对网络管理员具有重要作用。\n发明内容\n[0004] 本申请的目的是提供一种处理报文的方案、转换单元和应用单元,使得应用单元能够进行网络层对应功能的管理操作。\n[0005] 第一方面,提供了一种处理报文的方法。所述方法包括:服务器中的转换单元接收负载均衡器发送的第一数据报文,该第一数据报文的传输控制协议TCP选项字段中携带客户端的网际协议IP地址,该第一数据报文的源IP地址为该负载均衡器的IP地址,该第一数据报文的目的IP地址为该服务器的IP地址;该转换单元从该TCP选项字段中获取该客户端的IP地址,将该第一数据报文的源IP地址替换为该客户端的IP地址,生成第二数据报文;该转换单元向该服务器中的应用单元发送该第二数据报文。\n[0006] 服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0007] 结合第一方面,在第一方面的第一种可能的实现方式中,该获取负载均衡器发送的第一数据报文的TCP选项信息之前,该方法还包括:该转换单元根据该第一数据报文生成流表,该流表包括所述第一数据报文的五元组。\n[0008] 流表是由很多个流表项组成,每个流表项就是一个转发规则,数据包通过查询流表来获得转发的目的端口。例如,流表可以记录该第一数据报文的五元组,五元组包括源IP地址、源端口、目的IP地址、目的端口和传输层协议号。转换单元可以通过流表记录该第一数据报文的源IP地址、源端口、目的IP地址和目的端口等,从而转换单元可以通过查询流表进行IP地址转换,进而将从应用单元返回的数据报文,发送到对应的负载均衡器。\n[0009] 结合第一方面第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:该转换单元接收该应用单元发送的用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址;该转换单元根据该流表,将该第三数据报文中的目的IP地址替换为该负载均衡器的IP地址,生成第四数据报文;该转换单元向该负载均衡器发送该第四数据报文。\n[0010] 例如,流表可以记录在A端口有负载均衡器1访问了应用单元1,那么相应的,从应用单元1返回的报文需要从A端口发送到负载均衡器1。从而,转换单元可以将该第三数据报文中目的IP地址改写为负载均衡器的IP地址。该负载均衡器在向服务器发送该第一数据报文时,也会对该第一数据报文的源IP地址和目的IP地址的进行记录,当第四数据报文从服务器返回到负载均衡器时,网关设备可以查找原有的记录,将第四数据报文的目的IP地址再替换回原来的公网地址,并返回发出请求的客户端。\n[0011] 第二方面,提供了一种处理报文的方法。所述方法包括:服务器中的应用单元接收该服务器中的转换单元发送的第二数据报文,该第二数据报文的源IP地址为客户端的网际协议IP地址,该第二数据报文的目的IP地址为该服务器的IP地址,该第二数据报文由该转换单元将第一数据报文的源IP地址替换为该客户端的IP地址生成,该第一数据报文的传输控制协议TCP选项字段中携带该客户端的IP地址;该应用单元根据该客户端的IP地址进行管理操作。\n[0012] 由于第二数据报文是通过将第一数据报文中源IP地址转换后生成的,那么应用单元接收到该第二数据报文时需要通过网络层的IP协议解析该IP地址,进而应用单元可以获知客户端到应用单元之间网络层对应的功能。\n[0013] 应用单元接收转换单元发送的数据报文,该数据报文的源IP地址为客户端的IP地址,使得应用单元可以根据IP协议在网络层获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0014] 结合第二方面,在第二方面的第一种可能的实现方式中,该方法还包括:该应用单元向该转换单元发送用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址。\n[0015] 应用单元接收到客户端的第二数据报文之后,从物理层、数据链路层到达应用层解析该数据报文,最终获得该数据报文携带的访问请求的数据包,进而对客户端发送响应该访问请求的第三数据报文,该第三数据报文经过服务器的转换模块,该第三数据报文中的目的IP地址为客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址。\n[0016] 结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该管理操作包括访问统计、访问控制和网络故障定位中的至少一项。\n[0017] 服务器的应用单元从转换单元获取到客户端的IP地址,即可以获知完整的网络层功能(即客户端到应用单元之间的网络层功能),例如,可以对客户端到应用单元之间进行网络故障诊断、连接统计、流量日志分析,或对访问者进行白名单过滤等,本发明对此不进行限定。\n[0018] 第三方面,提供了一种处理报文的转换单元,该转换单元包括执行该第一方面中的方法或第一方面的任意一种实行方式的各模块。\n[0019] 第四方面,提供了一种处理报文的应用单元,该应用单元包括执行该第二方面中的方法或第二方面的任意一种实行方式的各模块。\n[0020] 第五方面,提供了一种服务器,包括:上述第三方面的处理报文的转换单元和上述第四方面的处理报文的应用单元。\n[0021] 第六方面,提供了一种处理报文的转换单元,包括:处理器和存储器;\n[0022] 所述存储器存储了程序,所述处理器执行所述程序,用于执行上述第一方面或第一方面任一种可能的实现方式所述的处理报文的方法。\n[0023] 第七方面,提供了一种处理报文的应用单元,包括:处理器和存储器;\n[0024] 所述存储器存储了程序,所述处理器执行所述程序,用于执行上述第二方面或第二方面任一种可能的实现方式所述的处理报文的方法。\n[0025] 基于上述技术方案,本发明实施例的处理报文的方法、转换单元、应用单元,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n附图说明\n[0026] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0027] 图1是客户端通过负载均衡器访问服务器的流程图。\n[0028] 图2是负载均衡器的地址转换示意图。\n[0029] 图3是服务器中协议层示意图。\n[0030] 图4是根据本发明实施例的处理报文的方法的示意图;\n[0031] 图5是根据本发明实施例的数据报文的结构示意图;\n[0032] 图6根据本发明实施例的处理报文的交互流程示意图;\n[0033] 图7是根据本发明又一实施例的处理报文的方法的示意图;\n[0034] 图8是根据本发明实施例的处理报文的转换单元的示意性框图;\n[0035] 图9是根据本发明又一实施例的处理报文的应用单元的示意性框图;\n[0036] 图10是根据本发明实施例服务器的示意性框图;\n[0037] 图11是根据本发明实施例的处理报文的转换单元的结构示意图;\n[0038] 图12是根据本发明又一实施例的处理报文的应用单元的结构示意图。\n具体实施方式\n[0039] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0040] 在本发明实施例中,客户端可以是计算机、智能手机等通信设备,用户在通过该客户端访问业务时,客户端向提供该业务的服务器发送数据报文。\n[0041] 服务器可以是,例如浏览器服务器、文件传输协议服务器、企业关键应用服务器和其它关键任务服务器等。\n[0042] 负载均衡器(包括用于接收业务的数据报文的网关设备,以及用于通过执行各种程序以对该数据报文进行负载均衡的负载均衡处理器)设置在该服务器集群与客户端之间,优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能。此外,负载均衡器还可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性。例如,负载均衡器可以将大量的并发访问或数据流量分担到多个服务器上分别处理,减少客户端等待响应的时间,还可以将单个重负载的运算分担到多个服务器上做并行处理,每个节点设备处理结束后,将结果汇总,返回给客户端,使系统处理能力得到大幅度提高。在本发明实施例中,该负载均衡器可以为实现负载均衡的LVS。\n[0043] 网络层可以实现两个端系统之间的数据透明传送,将数据分成一定长度的分组,并在分组头中标识源节点和目的节点的逻辑地址,这些地址就像街区、门牌号一样成为每个节点的标识。网络层需要实现路由选择、拥塞控制与网络互联等基本功能。例如,转发,分组从一条入链路到一台路由器中的出链路的传出。选路,一个网络中的所有路由器经路由协议交互,决定分组从源到目的地节点所采用的路由或路径。\n[0044] 应用层是面向用户的最高层,通过软件应用实现网络与用户的直接对话,例如,找到通讯对方,识别可用资源和同步操作等。应用程序提供创建消息的方法,应用层服务负责创建与网络交互的接口,协议则负责提供进行数据处理的规则和格式。在本发明实施例中,将应用程序称为应用单元。\n[0045] 图1示出了根据本发明实施例的客户端通过负载均衡器访问服务器的流程图。负载均衡器重写来自客户端的数据报文的目的地址和源地址,根据预设的负载均衡算法,将该修改后的数据报文发送给各服务器。例如,来自客户端的数据报文的源IP地址为客户端的IP地址,目的IP地址为负载均衡的IP地址,负载均衡器收到该数据报文后,将源IP地址替换为自己的IP地址,目的IP地址替换为服务器的IP地址。相应地,当来自服务器的响应报文经过负载均衡器时,负载均衡器重写该响应数据报文的源地址和目的地址,再返回给客户端,完成整个访问或调度过程。\n[0046] 然而,服务器在内部互联时可以使用私网地址(属于非注册地址,它不需要申请,专门为组织机构内部使用,例如,本发明实施例中的负载均衡器与服务器之间可以使用私网地址,也可以称为“内网地址”),但是客户端需要通过合法的公网地址(也称为“外网地址”)才能访问服务器。例如,如图2所示为客户端向负载均衡器发送的数据报文的地址转换的示意图,数据报文的结构包括源MAC(Medium Access Control)地址、目的MAC地址、类型、源IP地址、源端口、目的IP地址、目的端口、传输控制协议(Transmission Control Protocol,TCP)选项和循环冗余校验码(Cyclic Redundancy Check,CRC)等。该数据报文的源IP地址为2.2.2.3,即客户端的IP地址;目的IP地址为5.5.5.5,即负载均衡器的外网IP地址(如图2a)。负载均衡器将数据报文发送给服务器时,源IP地址应该为负载均衡器的IP地址,目的IP地址应为服务器的IP地址,但是由于负载均衡器与服务器通信可以使用内网IP地址,则数据报文的源IP地址替换为负载均衡器的内网IP地址(即图2b中的100.125.4.2),目的IP地址替换为服务器的IP地址(图2b中的192.168.10.2)。这样,由于负载均衡器的存在,导致了服务器无法获取到客户端的IP地址,尤其是服务器无法在网络层获取到客户端的IP地址,这样服务器便无法获知网络层对应的功能,例如,服务器在网络层获取到客户端的IP地址可以进行网络故障诊断、连接统计、流量日志分析或者对访问者进行白名单过滤等。\n[0047] 现有技术中,负载均衡器将客户端的IP地址放入数据报文的空闲的TCP选项字段中,再将报文发送到服务器,服务器在内核(如图3所示)中设置一个插件,通过该插件可以在应用层将TCP选项字段中的客户端的IP地址通过网络信息查询函数(getname)直接发送给服务器的应用单元一个指针,这样应用单元可以在应用层直接使用该指针存储的客户端的IP地址。因此,服务器可以在应用层获知客户端的IP的地址,进而应用单元可以根据客户端的IP地址进行连接统计的操作。很显然,现有技术一的方案只能解决服务器的应用单元在应用层获取到客户端的IP地址,服务器的应用单元仍然无法获取到网络层对应的其他服务。\n[0048] 图4示出了根据本发明实施例的一种处理报文的方法100的示意图。如图4所示,该方法100可以由服务器中的转换单元执行,包括:\n[0049] S110,服务器中的转换单元接收负载均衡器发送的第一数据报文,该第一数据报文的传输控制协议TCP选项字段中携带客户端的网际协议IP地址,该第一数据报文的源IP地址为该负载均衡器的IP地址,该第一数据报文的目的IP地址为该服务器的IP地址;\n[0050] S120,该转换单元从该TCP选项字段中获取该客户端的IP地址,将该第一数据报文的源IP地址替换为该客户端的IP地址,生成第二数据报文;\n[0051] S130,该转换单元向该服务器中的应用单元发送该第二数据报文。\n[0052] 具体而言,客户端访问服务器时,需要通过负载均衡器的分发之后,发送到服务器,且负载均衡器的面向外部的IP地址和与其连接的服务器集群的面向外部的IP地址相同。因此,负载均衡器接收到客户端发送的携带访问请求消息的数据报文时,将该数据报文的源IP地址字段中客户端的IP地址替换为负载均衡器的私网地址,将该数据报文的目的IP地址字段中的负载均衡器的公网地址替换为服务器的IP地址,此外,负载均衡器将客户端的IP地址添加到该数据报文的TCP选项字段中,进而生成第一数据报文。进而负载均衡器将第一数据报文发送到服务器。\n[0053] 服务器接收该第一数据报文,内核中的转换单元(如图3)可以在网络层从该第一数据报文中的TCP选项字段中将TCP选项信息(即客户端的IP地址)取出,并且用客户端的IP地址替换该第一数据报文中源IP地址(如图5所示)生成第二数据报文。该第一数据报文的源IP地址是该负载均衡器的私网IP地址。也就是说,该第一数据报文的负载均衡器的IP地址(如图5a中的100.125.4.2)被改写为客户端的IP地址(如图5b中的2.2.2.3)。转换单元再将该第二数据报文发送给应用单元,这样应用单元在网络层可以根据IP协议将源IP地址字段中的客户端的IP地址解析出来,并根据该客户端的IP地址进行网络层对应功能的管理操作。\n[0054] 应注意,该访问请求消息可以是服务请求消息、调度请求消息、确认消息、数据消息、状态消息或报错消息等,本发明对此不进行限定。\n[0055] 应理解,服务器的内核中的转换单元执行上述动作可以通过一个插件完成,该插件可以是以一小块代码的形式体现,或者其他形式,只要可以提供上述功能就落在本发明保护的范围内。\n[0056] 还应理解,通过替换数据报文中的源IP地址、目的IP地址、源端口或目的端口等报文头生成新的数据报文,数据报文中携带的请求数据包并没有发生变化。例如,通过替换第一数据报文的源IP地址生成第二数据报文,第一数据报文和第二数据报文中携带的请求数据包仍然是相同的。\n[0057] 因此,本发明实施例的处理报文的方法,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0058] 可选地,在本发明实施例中传输报文的方法还包括:该转换单元根据该第一数据报文生成流表,该流表包括所述第一数据报文的五元组。\n[0059] 具体而言,转换单元接收到负载均衡器发送的第一数据报文,该第一数据报文的源IP地址是负载均衡器的IP地址,该第一数据报文的目的IP地址是服务器的IP地址。转换单元在收到负载均衡器发送的第一数据报文后,可以生成流表,流表是由很多个流表项组成,每个流表项就是一个转发规则,数据包通过查询流表来获得转发的目的端口。流表项由头域、计数器和操作组成,其中,头域是个十元组,是流表项的标识,计数器用来记录流表项的统计数据,操作标明了与该流表项匹配的数据包应该执行的操作。那么,流表可以记录该第一数据报文的五元组,五元组包括源IP地址、源端口、目的IP地址、目的端口和传输层协议号。传输层协议号这个字段仅在IP数据报到达最终目的地才会用到。字段值用于指明IP数据报中的数据部分应交给哪个传输层协议,例如,值为6表明交给TCP,值为17表明交给用户数据报协议(User Datagram Protocol,UDP)。也就是说,转换单元通过流表可以记录该第一数据报文的源IP地址、源端口、目的IP地址和目的端口等,从而可以为后续使用。\n[0060] 可选地,在本发明实施例中,该方法还包括:\n[0061] 该转换单元接收该应用单元发送的用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址;\n[0062] 该转换单元根据该流表,将该第三数据报文中的目的IP地址替换为该负载均衡器的IP地址,生成第四数据报文;\n[0063] 该转换单元向该负载均衡器发送该第四数据报文。\n[0064] 具体而言,转换单元向应用单元发送第二数据报文,可以使该应用单元根据该第二数据报文中的该客户端的IP地址进行管理操作。当客户端访问到应用单元后,应用单元向客户端返回响应该第二数据报文的第三数据报文,该第三数据报文的源IP地址是服务器的IP地址,目的IP地址是客户端的IP地址。该第三数据报文需要经过转换单元的转发,该转换单元可以根据已经生成的流表检测该负载均衡器的IP地址,例如,流表可以记录在A端口有负载均衡器1访问了应用单元1,那么相应的,从应用单元1返回的报文需要从A端口发送到负载均衡器1。从而,转换单元可以将该第三数据报文中目的IP地址改写为负载均衡器的IP地址,即将客户端的IP地址替换为负载均衡器的IP地址生成第四数据报文。服务器将该第四数据报文返回给负载均衡器。如前述,该负载均衡器在向服务器发送该第一数据报文时,也会对该第一数据报文的源IP地址和目的IP地址的进行记录,当第四数据报文从服务器返回到负载均衡器时,网关设备可以查找原有的记录,将第四数据报文的目的IP地址再替换回原来的公网地址,并返回发出请求的客户端。\n[0065] 可选地,该管理操作可以是访问统计、访问控制和网络故障定位中的至少一项。\n[0066] 具体而言,转换单元获取到客户端的源IP地址,可以获知完整的网络层功能,即服务器可以获知服务器与客户端之间的网络层功能,从而使得应用单元根据该客户端的源IP地址,可以执行网络故障诊断、连接统计、流量日志分析,或对访问者进行白名单过滤等。\n[0067] 因此,本发明实施例的处理报文的方法,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0068] 在本发明一个实施例中,客户端向负载均衡器的外网发送一个访问请求的数据报文,负载均衡器收到该访问请求的数据报文后,将该访问请求的数据报文的源IP地址(即客户端的IP地址)写入该访问请求的数据报文的TCP选项字段中,并且将访问请求的数据报文的源IP地址改写为负载均衡器内网的IP地址,将目的IP地址改写为服务器的IP地址生成第一数据报文,并将该第一数据报文发送到服务器的转换单元。转换单元接收该第一数据报文,根据该第一数据报文生成流表。此外,转换单元从该第一数据报文的TCP选项字段中将客户端的IP地址取出,并替换该第一数据报文的源IP地址,即客户端的IP地址替换负载均衡器的IP地址生成第二数据报文。转换单元将该第二数据报文发送到服务器的应用单元,应用单元接收该第二数据报文,并根据该第二数据报文中的源IP地址(即客户端的IP地址)进行管理操作。\n[0069] 如图6所示,示出了本发明一个实施例的交互流程示意图。本实施例的流程从客户端向负载均衡器发送访问请求,经过负载均衡器的分发向服务器发送第一数据报文之后开始。本实施例中的各种术语的含义与前述各实施例相同。\n[0070] 201,服务器中的转换模块接收负载均衡器发送的第一数据报文,该第一数据报文的传输控制协议TCP选项字段中携带客户端的IP地址,该第一数据报文的源IP地址为该负载均衡器的IP地址,该第一数据报文的目的IP地址为该服务器的IP地址。\n[0071] 202,转换单元根据接收负载均衡器发送的第一数据报文生成流表,该流表可以记录该第一数据报文的五元组。\n[0072] 203,转换单元从该第一数据报文的TCP选项字段中获取客户端的IP地址,将该第一数据报文的源IP地址替换为该客户端的IP地址,生成第二数据报文。\n[0073] 该第一数据报文的源IP地址为该负载均衡器的IP地址,该第一数据报文的目的IP地址为该服务器的IP地址。也就是说,将该第一数据报文的负载均衡器的IP地址替换为客户端的IP地址。\n[0074] 204,服务器中的转换单元向应用单元发送该第二数据报文。\n[0075] 205,该应用单元根据该第二数据报文中的该客户端的IP地址进行管理操作。\n[0076] 206,该应用单元向转换单元发送用于响应该第二数据报文的第三数据报文。\n[0077] 207,该转换单元根据该流表中的五元组,将该第三数据报文中的源IP地址替换为服务器的IP地址,将该第二数据报文中的目的IP地址替换为该负载均衡器的IP地址,生成第四数据报文。\n[0078] 208,该转换单元将该第四数据报文发送给负载均衡器。\n[0079] 该负载均衡器在向服务器发送该第一数据报文时,也会对该第一数据报文的源IP地址和目的IP地址的进行记录,当第四数据报文从服务器返回到负载均衡器时,网关设备可以查找原有的记录,将第四数据报文的目的地址再替换回原来的公网地址,并返回发出请求的客户端。\n[0080] 因此,本发明实施例的处理报文的方法,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0081] 如图7所示,示出了根据本发明实施例的处理报文的方法300的示意性流程图,该方法300可以由应用单元执行。如图7所示,该方法300包括:\n[0082] S310,服务器中的应用单元接收该服务器中的转换单元发送的第二数据报文,该第二数据报文的源IP地址为客户端的网际协议IP地址,该第二数据报文的目的IP地址为该服务器的IP地址,该第二数据报文由该转换单元将第一数据报文的源IP地址替换为该客户端的IP地址生成,该第一数据报文的传输控制协议TCP选项字段中携带该客户端的IP地址;\n[0083] S320,该应用单元根据该客户端的IP地址进行管理操作。\n[0084] 具体而言,服务器中的应用单元接收转换单元发送的第二数据报文,该第二数据报文中的源IP地址为客户端的IP地址,目的IP地址为服务器的IP地址,该第二数据报文是由转换单元将第一数据报文的源IP地址替换为客户端的IP地址生成,该第一数据报文的传输控制协议TCP选项字段中携带该客户端的IP地址。该第一数据报文的源IP地址为负载均衡器的IP地址,目的IP地址为服务器的IP地址,也就是说,该第二报文是通过将第一报文的负载均衡器的IP地址替换为客户端的IP地址生成的。这样,应用单元接收到该第二数据报文就可以根据源IP字段中的客户端的IP地址进行管理操作。\n[0085] 此外,由于第二数据报文是通过将第一数据报文中源IP地址转换后生成的,那么应用单元接收到该第二数据报文时需要通过网络层的IP协议解析该IP地址,进而应用单元可以获知客户端到应用单元之间网络层对应的功能。\n[0086] 因此,本发明实施例的处理报文的方法,应用单元接收转换单元发送的数据报文,该数据报文的源IP地址为客户端的IP地址,使得应用单元可以根据IP协议在网络层获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0087] 可选地,该管理操作包括访问统计、访问控制和网络故障定位中的至少一项。\n[0088] 具体而言,服务器的应用单元从转换单元获取到客户端的IP地址,即可以获知完整的网络层功能(即客户端到应用单元之间的网络层功能),例如,可以对客户端到应用单元之间进行网络故障诊断、连接统计、流量日志分析,或对访问者进行白名单过滤等,本发明对此不进行限定。\n[0089] 可选地,在本发明实施例中,该方法还包括:\n[0090] 该应用单元向该转换单元发送用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址。\n[0091] 具体而言,应用单元接收到客户端的第二数据报文之后,从物理层、数据链路层到达应用层解析该数据报文,最终获得该数据报文携带的访问请求的数据包,进而对客户端发送响应该访问请求的第三数据报文,该第三数据报文经过服务器的转换模块,该第三数据报文中的目的IP地址为客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址。\n[0092] 因此,本发明实施例的处理报文的方法,应用单元接收转换单元发送的数据报文,该数据报文的源IP地址为客户端的IP地址,使得应用单元可以根据IP协议在网络层获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0093] 应理解,在本发明实施例中,转换单元侧描述的转换单元和应用单元之间的交互及相关特性、功能等与应用单元侧的描述相应,为了简洁,在此不再赘述。\n[0094] 应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。\n[0095] 上文结合图4、图5、图6和图7,详细描述了根据本发明实施例的处理报文的方法,下面将结合图8和图9,详细描述根据本发明实施例的处理报文的转换单元和应用单元。\n[0096] 图8示出了根据本发明例的处理报文的转换单元500的示意性框图。如图8所示,该转换单元500包括:\n[0097] 第一接收模块510,用于接收负载均衡器发送的第一数据报文,该第一数据报文的传输控制协议TCP选项字段中携带客户端的网际协议IP地址,该第一数据报文的源IP地址为该负载均衡器的IP地址,该第一数据报文的目的IP地址为该服务器的IP地址;\n[0098] 第一生成模块520,用于从该TCP选项字段中获取该客户端的IP地址,将该接收模块510接收的该第一数据报文的源IP地址替换为该客户端的IP地址,生成第二数据报文;\n[0099] 第一发送模块530,用于向该服务器中的应用单元发送该第一生成模块520生成的该第二数据报文。\n[0100] 因此,本发明实施例的处理报文的转换单元,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0101] 在本发明实施例中,可选地,该转换单元500还包括:\n[0102] 第二生成模块,用于根据该第一数据报文生成流表,该流表包括所述第一数据报文的五元组。\n[0103] 在本发明实施例中,可选地,该转换单元500还包括:\n[0104] 第二接收模块,用于接收该应用单元发送的用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址;\n[0105] 第三生成模块,用于根据该流表将该第三数据报文中的目的IP地址替换为该负载均衡器的IP地址,生成第四数据报文;\n[0106] 第二发送模块,用于向该负载均衡器发送该第四数据报文。\n[0107] 可选地,在本发明实施例中,该管理操作包括访问统计、访问控制和网络故障定位中的至少一项。\n[0108] 应理解,根据本发明实施例的处理报文的转换单元500可对应于本发明实施例的处理报文的方法的执行主体,并且转换500中的各个模块的上述和其它管理操作和/或功能分别为了实现前述各个方法的相应步骤,为了简洁,在此不再赘述。\n[0109] 因此,本发明实施例的处理报文的转换单元,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0110] 图9示出了根据本发明例的处理报文的应用单元700的示意性框图。如图9所示,该应用单元700包括:\n[0111] 接收模块710,用于接收该服务器中的转换单元发送的第二数据报文,该第二数据报文的源IP地址为客户端的网际协议IP地址,该第二数据报文的目的IP地址为该服务器的IP地址,该第二数据报文由该转换单元将第一数据报文的源IP地址替换为该客户端的IP地址生成,该第一数据报文的传输控制协议TCP选项字段中携带该客户端的IP地址;\n[0112] 管理模块720,用于根据该客户端的IP地址进行管理操作。\n[0113] 因此,本发明实施例的处理报文的应用单元,应用单元接收转换单元发送的数据报文,该数据报文的源IP地址为客户端的IP地址,使得应用单元可以根据IP协议在网络层获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0114] 可选地,在本发明实施例中,该应用单元700还包括:\n[0115] 发送模块,用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址。\n[0116] 在本发明实施例中,可选地,该管理操作包括访问统计、访问控制和网络故障定位中的至少一项。\n[0117] 因此,本发明实施例的处理报文的应用单元,应用单元接收转换单元发送的数据报文,该数据报文的源IP地址为客户端的IP地址,使得应用单元可以根据IP协议在网络层获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0118] 应理解,根据本发明实施例的处理报文的应用单元700可对应于本发明实施例的处理报文的方法的执行主体,并且应用单元700中的各个模块的上述和其它管理操作和/或功能分别为了实现前述各个方法的相应步骤,为了简洁,在此不再赘述。\n[0119] 本发明实施例还提供了一种系统。如图10所示,服务器900包括:\n[0120] 前述本发明实施例的转换单元500和本发明实施例的应用单元700。\n[0121] 图11示出了本发明的又一实施例提供的转换单元的结构,包括至少一个处理器\n1102(例如CPU),至少一个网络接口1105或者其他通信接口,存储器1106,和至少一个通信总线1103,用于实现这些装置之间的连接通信。处理器1102用于执行存储器1106中存储的可管理模块,例如计算机程序。存储器1106可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口1105(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。\n[0122] 在一些实施方式中,存储器1106存储了程序11061,处理器1102执行程序11061,用于执行一些管理操作:\n[0123] 接收负载均衡器发送的第一数据报文,该第一数据报文的传输控制协议TCP选项字段中携带客户端的网际协议IP地址,该第一数据报文的源IP地址为该负载均衡器的IP地址,该第一数据报文的目的IP地址为该服务器的IP地址;\n[0124] 从该TCP选项字段中获取该客户端的IP地址,将该第一数据报文的源IP地址替换为该客户端的IP地址,生成第二数据报文;\n[0125] 向该服务器中的应用单元发送该第二数据报文。\n[0126] 可选地,处理器1102用于根据该第一数据报文生成流表,该流表包括所述第一数据报文的五元组。\n[0127] 可选地,处理器1102用于接收该应用单元发送的用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址;\n[0128] 根据该流表,将该第三数据报文中的目的IP地址替换为该负载均衡器的IP地址,生成第四数据报文;\n[0129] 向该负载均衡器发送该第四数据报文。\n[0130] 可选地,该管理操作包括访问统计、访问控制和网络故障定位中的至少一项。\n[0131] 从本发明实施例提供的以上技术方案可以看出,服务器中的转换单元接收在TCP选项字段中携带客户端的IP地址的第一数据报文,并将该第一数据报文的源IP地址替换为该客户端的IP地址生成第二数据报文,将该第二数据报文发送给服务器中的应用单元,使得应用单元能够通过IP协议获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0132] 图12示出了本发明的又一实施例提供的应用单元的结构,包括至少一个处理器\n1302(例如CPU),至少一个网络接口1305或者其他通信接口,存储器1306,和至少一个通信总线1303,用于实现这些装置之间的连接通信。处理器1302用于执行存储器1306中存储的可管理模块,例如计算机程序。存储器1306可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口1305(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。\n[0133] 在一些实施方式中,存储器1306存储了程序13061,处理器1302执行程序13061,用于执行一下管理操作:\n[0134] 接收该服务器中的转换单元发送的第二数据报文,该第二数据报文的源IP地址为客户端的网际协议IP地址,该第二数据报文的目的IP地址为该服务器的IP地址,该第二数据报文由该转换单元将第一数据报文的源IP地址替换为该客户端的IP地址生成,该第一数据报文的传输控制协议TCP选项字段中携带该客户端的IP地址;\n[0135] 根据该客户端的IP地址进行管理操作。\n[0136] 可选地,处理器1102用于向该转换单元发送用于响应该第二数据报文的第三数据报文,该第三数据报文的目的IP地址为该客户端的IP地址,该第三数据报文的源IP地址为该服务器的IP地址。\n[0137] 可选地,该管理操作包括访问统计、访问控制和网络故障定位中的至少一项。\n[0138] 从本发明实施例提供的以上技术方案可以看出,本发明实施例应用单元接收转换单元发送的数据报文,该数据报文的源IP地址为客户端的IP地址,使得应用单元可以根据IP协议在网络层获知客户端的IP地址,从而应用单元能够进行网络层对应功能的管理操作。\n[0139] 应理解,本发明中的具体的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。\n[0140] 还应理解,在本发明实施例中,“与A对应的B”表示B与A相关联,根据A可以确定B。\n但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。\n[0141] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。\n[0142] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。\n[0143] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。\n[0144] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。\n[0145] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。\n[0146] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。\n而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。\n[0147] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
法律信息
- 2022-02-22
专利权的转移
登记生效日: 2022.02.10
专利权人由华为技术有限公司变更为华为云计算技术有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为550025 贵州省贵阳市贵安新区黔中大道交兴功路华为云数据中心
- 2019-06-18
- 2016-06-01
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201510885073.8
申请日: 2015.12.03
- 2016-05-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2014-07-02
|
2012-12-28
| | |
2
| |
2009-07-01
|
2007-12-26
| | |
3
| |
2013-07-10
|
2012-08-09
| | |
4
| |
2011-05-25
|
2011-02-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |