CN103391271B - 数据包转发方法和装置 - Google Patents
数据包转发方法和装置 Download PDFInfo
- Publication number
- CN103391271B CN103391271B CN201210140053.4A CN201210140053A CN103391271B CN 103391271 B CN103391271 B CN 103391271B CN 201210140053 A CN201210140053 A CN 201210140053A CN 103391271 B CN103391271 B CN 103391271B
- Authority
- CN
- China
- Prior art keywords
- packet
- distance host
- transport layer
- generation end
- response results
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种数据包转发方法及装置。所述方法包括:通过传输层接收数据包;从所述数据包得到请求的远程主机,并与所述远程主机建立连接;通过与所述远程主机的连接将所述数据包转发到远程主机,并接收返回的响应结果。所述装置包括:本地接收模块,用于通过传输层接收数据包;连接模块,用于从所述数据包得到请求的远程主机,并与所述远程主机建立连接;传输模块,用于通过与所述远程主机的连接将所述数据包转发到远程主机,并接收返回的响应结果。采用本发明减少了资源的消耗,实现了轻量级的数据包转发。
Description
技术领域
本发明涉及网络传输技术,特别是涉及一种数据包转发方法和装置。
背景技术
互联网的数据传输中使用的协议常常各不相同,例如,在为内网的服务器集群实现数据包转发时,接收的数据包中使用的协议可能是TCP协议(TransmissionControlProtocol,传输控制协议),也可能是UDP协议(UserDatagramProtocol,用户数据包协议),数据包转发的过程中需兼容数据传输过程中使用的各种协议,将接收的数据包转发到相应的远程主机中,实现数据包的跨协议传输。
然而,各种代理软件均无法仅针对于数据包的跨协议传输,互联网的各种数据包只能通过反向代理软件实现跨协议传输。虽然反向代理软件功能较为强大,实现跨协议传输仅仅是其中的一个子功能,但是,反向代理软件的配置却非常复杂。例如,Haproxy这一反向代理软件若仅仅用于进行各种数据的跨协议传输,由于需在网络层中抓取数据包,存在跨协议支持不佳的缺陷,对于跨协议传输这一子功能而言,反向代理软件是重量级的,将会消耗大量的资源。
发明内容
基于此,提供一种能减少资源消耗,且轻量级的数据包转发方法。
此外,还有必要提供一种能减少资源消耗,且轻量级的数据包转发装置。
一种数据包转发方法,包括如下步骤:
通过传输层接收数据包;
从所述数据包得到请求的远程主机,并与所述远程主机建立连接;
通过与所述远程主机的连接将所述数据包转发到远程主机,并接收返回的响应结果。
在其中一个实施例中,所述通过传输层接收数据包包括:
通过传输层的侦听端口侦听连接的数据包发送端,将所述侦听到的数据包发送端连接传给接收端口;
通过所述接收端口接收数据包;
将所述数据包临时存放于缓存区。
在其中一个实施例中,所述与所述远程主机建立连接包括:
与所述远程主机建立TCP连接或UDP连接。
在其中一个实施例中,所述通过与所述远程主机的连接将所述数据包转发到远程主机,并接收返回的响应结果包括:
在非堵塞异步模式下根据所述数据包创建套接字,并通过所述创建的套接字将所述数据包转发到远程主机;
等待所述远程主机的响应,并接收返回的响应结果。
在其中一个实施例中,所述接收返回的响应结果的步骤之后还包括:
将所述响应结果发送至所述数据包发送端。
一种数据包转发装置,包括:
本地接收模块,用于通过传输层接收数据包;
连接模块,用于从所述数据包得到请求的远程主机,并与所述远程主机建立连接;
传输模块,用于通过与所述远程主机的连接将所述数据包转发到远程主机,并接收返回的响应结果。
在其中一个实施例中,所述本地接收模块包括:
侦听单元,用于通过传输层的侦听端口侦听连接的数据包发送端,将所述侦听到的数据包发送端传给接收端口;
接收单元,用于通过所述接收端口接收数据包;
缓存单元,用于将所述数据包临时存放于缓存区。
在其中一个实施例中,所述连接模块还用于与所述远程主机建立TCP连接或UDP连接。
在其中一个实施例中,所述传输模块包括:
套接字通信单元,用于在非堵塞异步模式下根据所述数据包创建套接字,并通过所述创建的套接字将所述数据包转发到远程主机;
响应接收单元,用于等待所述远程主机的响应,并接收返回的响应结果。
在其中一个实施例中,所述传输模块还用于将所述响应结果发送至所述数据包发送端。
上述数据包转发方法和装置,在传输层进行数据包的接收,将从传输层得到的数据包转发给连接的远程主机,进而接收到返回的响应结果,与传统的数据包转发过程相比较不需要涉及网络层中非常复杂的处理,从而减少了资源的消耗,实现了轻量级的数据包转发。
附图说明
图1为一个实施例中数据包转发方法的流程图;
图2为图1中通过传输层接收数据包的方法流程图;
图3为图1中通过与远程主机的连接将数据包转发到远程主机,并接收返回的响应结果的方法流程图;
图4为一个实施例中数据包转发装置的结构示意图;
图5为图4中本地接收模块的结构示意图;
图6为图4中传输模块的结构示意图;
图7为一个实施例中数据包转发装置的应用示意图。
具体实施方式
如图1所示,在一个实施例中,一种数据包转发方法,包括如下步骤:
步骤S10,通过传输层接收数据包。
本实施例中,数据包发送端,即本地服务器发送数据包,此时,将在传输层中抓取接收到的数据包。由于传输层包括了TCP协议和UDP协议,较为简单,而传输层的上层协议,即网络层所涉及的协议则较为复杂,因此,在传输层中进行数据包的抓取避免了网络层中复杂的处理,其配置也较为简单,从而减少了资源的消耗以及运营的成本,提高了数据的转发效率。
步骤S30,从数据包得到请求的远程主机,并与远程主机建立连接。
本实施例中,在抓取得到数据包之后,需解析该数据包,以得到请求的远程主机。具体的,远程主机为请求的目标服务所在的服务器或应用服务集群,解析数据包得到数据包中存储的网络地址,该网络地址即为远程主机在互联网中的地址,进而按照网络地址与远程主机建立TCP连接或UDP连接。
步骤S50,通过与远程主机的连接将数据包转发到远程主机,并接收返回的响应结果。
本实施例中,通过建立的连接进行数据包的转发,将等待远程主机的响应,接收返回的响应结果,进而实现了数据包发送端没有直接与远程主机连接的情况下,数据包发送端和远程主机之间的数据交互。
如图2所示,在一个实施例中,上述步骤S10的具体过程包括:
步骤S110,通过传输层的侦听端口侦听连接的数据包发送端,将侦听到的数据包发送端连接传给接收端口。
本实施例中,数据包发送端为请求调用远程主机的服务器。在传输层中配置多个侦听端口,对连接的数据发送端进行侦听,并将侦听到的数据包发送端连接传给接收端口,以通知接收端口可通过侦听到的数据包发送端连接进行数据包的接收。具体的,侦听到的数据包发送连接可为多个,并存储于列表中。
步骤S130,通过接收端口接收数据包。
步骤S150,将数据包临时存放于缓存区。
本实施例中,将接收到的数据包缓存到缓存区中。
如图3所示,在一个实施例中,上述步骤S50的具体过程包括:
步骤S510,在非堵塞异步模式下根据数据包创建套接字,并通过创建的套接字将数据包转发到远程主机。
本实施例中,开启asyncore框架实现非堵塞异步模式,并在非堵塞异步模式下根据数据包所应用的协议创建相应的套接字,通过创建的套接字跳转到底层将数据包转发到远程主机,通过套接字通信来实现多个协议之间的兼容,使得数据包的转发可不必关心使用的协议。
步骤S530,等待远程主机的响应,并接收返回的响应结果。
本实施例中,在向远程主机转发了数据包之后,等待远程主机的响应,并接收远程主机返回的响应结果。
在另一个实施例中,上述接收返回的响应结果的步骤之后还包括将响应结果发送至数据包发送端的步骤。
本实施例中,将接收到的响应结果发送给数据包发送端,以实现远程主机中目标服务的调整,并完成数据包发送端和远程主机之间的数据交互。
如图4所示,在一个实施例中,一种数据包转发装置,包括本地接收模块10、连接模块30以及传输模块50。
本地接收模块10,用于通过传输层接收数据包。
本实施例中,数据包发送端,即本地服务器发送数据包,此时,本地接收模块10将在传输层中抓取接收到的数据包。由于传输层包括了TCP协议和UDP协议,较为简单,而传输层的上层协议,即网络层所涉及的协议则较为复杂,因此,本地接收模块10在传输层中进行数据包的抓取避免了网络层中复杂的处理,其配置也较为简单,从而减少了资源的消耗以及运营的成本,提高了数据的转发效率。
连接模块30,用于从数据包得到请求的远程主机,并与远程主机建立连接。
本实施例中,在抓取得到数据包之后,连接模块30需解析该数据包,以得到请求的远程主机。具体的,远程主机为请求的目标服务所在的服务器或应用服务集群,连接模块30解析数据包得到数据包中存储的网络地址,该网络地址即为远程主机在互联网中的地址,进而按照网络地址与远程主机建立TCP连接或UDP连接。
传输模块50,用于通过与远程主机的连接将数据包转发到远程主机,并接收返回的响应结果。
本实施例中,传输模块50通过建立的连接进行数据包的转发,将等待远程主机的响应,接收返回的响应结果,进而实现了数据包发送端没有直接与远程主机连接的情况下,数据包发送端和远程主机之间的数据交互。
如图5所示,在一个实施例中,上述本地接收模块10包括侦听单元110、接收单元130以及缓存单元150。
侦听单元110,用于通过传输层的侦听端口侦听连接的数据包发送端,将侦听到的数据包发送端传给接收端口。
本实施例中,数据包发送端为请求调用远程主机的服务器。侦听单元110在传输层中配置多个侦听端口,对连接的数据发送端进行侦听,并将侦听到的数据包发送端连接传给接收端口,以通知接收端口可通过侦听到的数据包发送端连接进行数据包的接收。具体的,侦听到的数据包发送连接可为多个,并存储于列表中。
接收单元130,用于通过接收端口接收数据包。
缓存单元150,用于将数据包临时存放于缓存区。
本实施例中,缓存单元150将接收到的数据包缓存到缓存区中。
如图6所示,上述传输模块50包括套接字通信单元510以及响应接收单元530。
套接字通信单元510,用于在非堵塞异步模式下根据数据包创建套接字,并通过创建的套接字将数据包转发到远程主机。
本实施例中,开启asyncore框架实现非堵塞异步模式,套接字通信单元510在非堵塞异步模式下根据数据包所应用的协议创建相应的套接字,通过创建的套接字跳转到底层将数据包转发到远程主机,通过套接字通信来实现多个协议之间的兼容,使得数据包的转发可不必关心使用的协议。
响应接收单元530,用于等待远程主机的响应,并接收返回的响应结果。
本实施例中,在向远程主机转发了数据包之后,响应接收单元530等待远程主机的响应,并接收远程主机返回的响应结果。
在另一个实施例中,上述传输模块50还用于将响应结果发送至数据包发送端。
本实施例中,传输模块50将接收到的响应结果发送给数据包发送端,以实现远程主机中目标服务的调整,并完成数据包发送端和远程主机之间的数据交互。
上述数据转发装置可以是转发服务器。
下面结合一个具体的实施例来详细阐述上述数据包转发装置。该实施例中,如图7所示,上述数据转发装置即为一转发服务器,通过内网网络接口与内网的多个服务器连接,与转发服务器连接的多个服务器为数据包发送端;转发服务器还通过外网网络接口与远程主机连接,该远程主机为应用服务集群。
转发服务器中的本地接收模块10在传输层接收内网的服务器发送的数据包,连接模块30从数据包中获取到请求调用的应用服务集群,并与应用服务集群建立连接;此时,传输模块50创建与数据包对应的套接字,通过套接字通信将数据包转发给应用服务集群,同时等待应用服务集群的响应,将接收到的响应结果转发给内网中的服务器。
在上述数据包转发中,内网中的服务器与应用服务集群进行数据交互,转发服务器是透明的,不需要改变内网中服务器与应用服务集群的配置。
上述数据包转发方法和装置,在传输层进行数据包的接收,将从传输层得到的数据包转发给连接的远程主机,进而接收到返回的响应结果,与传统的数据包转发过程相比较不需要涉及网络层中非常复杂的处理,从而减少了资源的消耗,实现了轻量级的数据包转发,易于维护。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种数据包转发方法,包括如下步骤:
通过传输层接收数据包;
从所述数据包得到请求的远程主机,并与所述远程主机建立连接;
在非堵塞异步模式下根据所述数据包创建套接字,并通过所述创建的套接字将所述数据包转发到远程主机;
等待所述远程主机的响应,并接收返回的响应结果。
2.根据权利要求1所述的数据包转发方法,其特征在于,所述通过传输层接收数据包包括:
通过传输层的侦听端口侦听连接的数据包发送端,将所述侦听到的数据包发送端连接传给接收端口;
通过所述接收端口接收数据包;
将所述数据包临时存放于缓存区。
3.根据权利要求1所述的数据包转发方法,其特征在于,所述与所述远程主机建立连接包括:
与所述远程主机建立TCP连接或UDP连接。
4.根据权利要求1-3任一所述的数据包转发方法,其特征在于,所述接收返回的响应结果的步骤之后还包括:
将所述响应结果发送至所述数据包发送端。
5.一种数据包转发装置,其特征在于,包括:
本地接收模块,用于通过传输层接收数据包;
连接模块,用于从所述数据包得到请求的远程主机,并与所述远程主机建立连接;
传输模块,用于通过与所述远程主机的连接将所述数据包转发到远程主机,并接收返回的响应结果;
所述传输模块包括:
套接字通信单元,用于在非堵塞异步模式下根据所述数据包创建套接字,并通过所述创建的套接字将所述数据包转发到远程主机;
响应接收单元,用于等待所述远程主机的响应,并接收返回的响应结果。
6.根据权利要求5所述的数据包转发装置,其特征在于,所述本地接收模块包括:
侦听单元,用于通过传输层的侦听端口侦听连接的数据包发送端,将所述侦听到的数据包发送端传给接收端口;
接收单元,用于通过所述接收端口接收数据包;
缓存单元,用于将所述数据包临时存放于缓存区。
7.根据权利要求5所述的数据包转发装置,其特征在于,所述连接模块还用于与所述远程主机建立TCP连接或UDP连接。
8.根据权利要求5-7任一所述的数据包转发装置,其特征在于,所述传输模块还用于将所述响应结果发送至所述数据包发送端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210140053.4A CN103391271B (zh) | 2012-05-08 | 2012-05-08 | 数据包转发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210140053.4A CN103391271B (zh) | 2012-05-08 | 2012-05-08 | 数据包转发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103391271A CN103391271A (zh) | 2013-11-13 |
CN103391271B true CN103391271B (zh) | 2015-12-16 |
Family
ID=49535430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210140053.4A Active CN103391271B (zh) | 2012-05-08 | 2012-05-08 | 数据包转发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103391271B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511636B (zh) * | 2020-12-04 | 2022-04-08 | 中国建设银行股份有限公司 | 数据传输系统、方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252591A (zh) * | 2008-04-03 | 2008-08-27 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
CN101325611A (zh) * | 2008-07-30 | 2008-12-17 | 金蝶软件(中国)有限公司 | 一种点对点下载的方法及装置 |
-
2012
- 2012-05-08 CN CN201210140053.4A patent/CN103391271B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252591A (zh) * | 2008-04-03 | 2008-08-27 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
CN101325611A (zh) * | 2008-07-30 | 2008-12-17 | 金蝶软件(中国)有限公司 | 一种点对点下载的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103391271A (zh) | 2013-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6538867B2 (ja) | メッセージバスサービスディレクトリ | |
WO2021218397A1 (zh) | 用于实现业务连续性的方法及相关设备 | |
WO2018133454A1 (zh) | 远程服务访问路径控制方法和相关设备 | |
KR101987784B1 (ko) | 소프트웨어 정의 네트워크를 기반으로 내용 배포 네트워크를 구현하는 방법 및 시스템 | |
CN100521663C (zh) | 点对点通信中穿越网络地址转换的方法 | |
CN103916405B (zh) | 一种IOS上针对App的TCP/UDP流量引导的方法 | |
US20100088427A1 (en) | Selective Routing of Data Transmission Between Clients | |
RU2011124586A (ru) | Способ установления соединения (варианты), способ передачи пакета данных и система удаленного доступа | |
JP5678198B2 (ja) | モバイルインターネットサービスの実現方法、ゲートウェイ、プロキシ及びシステム | |
TWI477111B (zh) | 室外無線數據裝置與其訊號處理方法 | |
WO2013097401A1 (zh) | 浏览器客户端与后端服务器直通的方法、网关和通信系统 | |
CN106604119B (zh) | 一种用于智能电视私有云设备的网络穿透方法及系统 | |
WO2014023003A1 (zh) | 控制数据传输的方法、装置和系统 | |
CN103248720A (zh) | 一种查询物理地址的方法及装置 | |
WO2014005442A1 (zh) | 网络业务访问的方法及系统 | |
CN101489188B (zh) | 多媒体传感器网络接入技术中网关发现方法 | |
JP2019525578A (ja) | データグラムベースのトランスポート層を介したカプセル化メディアトラフィックの効率的転送 | |
CN103166854A (zh) | 局域网与广域网业务绑定方法及系统 | |
WO2014190643A1 (zh) | 一种数据交互的方法、装置及系统 | |
CN107659930A (zh) | 一种ap接入控制方法和装置 | |
CN112073244A (zh) | 基于tr069协议的消息处理方法及系统 | |
US20140337478A1 (en) | Peer-to-peer network communications | |
CN107786536B (zh) | 一种tcp反向端口穿透方法及其系统 | |
CN102075588B (zh) | 一种实现网络地址转换nat穿越的方法、系统和设备 | |
CN109587028A (zh) | 一种控制客户端流量的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |