CN104639564A - 一种udp协议的代理方法 - Google Patents

一种udp协议的代理方法 Download PDF

Info

Publication number
CN104639564A
CN104639564A CN201510093697.6A CN201510093697A CN104639564A CN 104639564 A CN104639564 A CN 104639564A CN 201510093697 A CN201510093697 A CN 201510093697A CN 104639564 A CN104639564 A CN 104639564A
Authority
CN
China
Prior art keywords
udp
address
message
proxy
original
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
Application number
CN201510093697.6A
Other languages
English (en)
Inventor
杨永明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING JIKEJIKE TECHNOLOGY Co Ltd
Original Assignee
BEIJING JIKEJIKE TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING JIKEJIKE TECHNOLOGY Co Ltd filed Critical BEIJING JIKEJIKE TECHNOLOGY Co Ltd
Priority to CN201510093697.6A priority Critical patent/CN104639564A/zh
Publication of CN104639564A publication Critical patent/CN104639564A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Abstract

公开一种UDP协议的代理方法,其能够实现在linux内核中UDP协议的代理,满足操作系统的用户态对UDP代理的需求。该方法包括步骤:(1)用户态收到需要代理的UDP报文;(2)调用设置套接口选项setsockopt接口来从用户态访问linux内核中UDP的连接跟踪Conntrack;(3)从内核中UDP的conntrack获取对应报文的原始目的地址;(4)将原始目的地址返回给用户态;(5)用户态得到报文的原始目的IP地址后开始代理业务;(6)代理业务完成后将结果反馈给原始源IP地址对应的用户;(7)结束。

Description

一种UDP协议的代理方法
技术领域
本发明属于网络通信协议和网络代理的技术领域,具体地涉及一种UDP协议的代理方法。
背景技术
代理(Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备就具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止被攻击。
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(Proxy Server)。一个完整的网络代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回本身已经缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖他们的网络活动,可以允许绕过互联网过滤实现网络访问。
根据协议不同,可以分为FTP(文件传输协议,File Transfer Protocol)代理,HTTP(超文本传输协议,HyperText Transfer Protocol)代理,socks(防火墙安全会话转换协议)代理等代理技术。但是,当前的Linux内核是不支持UDP(用户数据报协议,User Datagram Protocol)代理的,而现在的许多网络终端是采用linux内核的,所以目前的网络终端无法实现UDP协议的代理。在VPN(虚拟专用网络)技术中,因为不支持UDP代理,所以要实现类似的功能都是在内核中编写代码,供内核中的相关模块使用,用户态无法使用这类接口,以至于要在用户态实现UDP代理几乎成为了不可能的事情。
发明内容
本发明要解决的技术解决问题是:克服现有技术的不足,提供一种UDP协议的代理方法,其能够实现在linux内核中UDP协议的代理,满足操作系统的用户态对UDP代理的需求。
本发明的技术解决方案是:这种UDP协议的代理方法,该方法包括以下步骤:
(1)用户态收到需要代理的UDP报文;
(2)调用设置套接口选项setsockopt接口来从用户态访问linux内核中UDP的连接跟踪Conntrack;
(3)从内核中UDP的conntrack获取对应报文的原始目的地址;
(4)将原始目的地址返回给用户态;
(5)用户态得到报文的原始目的IP地址后开始代理业务;
(6)代理业务完成后将结果反馈给原始源IP地址对应的用户;
(7)结束。
本发明在Linux内核中通过会话信息获取当前流的原始目的IP,提供socketopt接口,用来支持从用户态访问内核中UDP的conntrack,从而从内核中获取UDP报文的原始目的IP,因此能够实现在linux内核中UDP协议的代理,满足操作系统的用户态对UDP代理的需求。
附图说明
图1示出了根据本发明的UDP协议的代理方法的流程图。
具体实施方式
当前的Linux内核能通过NAT把数据报文送到用户态代理程序去处理,这时,目的IP地址会变成代理程序监听的IP地址。对于TCP,内核已提供了相关的接口,让代理程序能找到数据报文原始的目的IP地址。因为UDP协议本身是无连接的,所以内核没有提供获取数据报文原始目的IP地址的接口,以致于无法对UDP进行代理。
本发明就是在Linux内核中提供这样一个接口,以实现UDP的代理功能。
如图1所示,这种UDP协议的代理方法,该方法包括以下步骤:
(1)用户态收到需要代理的UDP报文;
(2)调用设置套接口选项setsockopt接口来从用户态访问linux内核中UDP的连接跟踪Conntrack;
(3)从内核中UDP的conntrack获取对应报文的原始目的地址;
(4)将原始目的地址返回给用户态;
(5)用户态得到报文的原始目的IP地址后开始代理业务;
(6)代理业务完成后将结果反馈给原始源IP地址对应的用户;
(7)结束。
本发明在Linux内核中通过会话信息获取当前流的原始目的IP,提供支持接口,来支持用户态访问内核中UDP的conntrack的socketopt,从而从内核中获取UDP报文的原始目的IP,因此能够实现在linux内核中UDP协议的代理,满足操作系统的用户态对UDP代理的需求。
优选地,在所述步骤(2)中的setsockopt接口增加获取UDP报文的原始目的IP地址的方法:修改linux内核的系统调用接口sys_setsockopt()函数,在该函数添加获取UDP原始目的IP地址,并返回给setsockopt接口的调用者。
优选地,在所述步骤(3)中获取对应报文的原始目的地址包括:
(3.1)通过UDP报文中ip头部的信息构造一个tuple;具体地为
memset(&tuple,0,sizeof(tuple));
tuple.dst.protonum=iph->protocol;
tuple.dst.u3.ip=iph->saddr;
tuple.dst.u.udp.port=ports[0];
tuple.src.u3.ip=iph->daddr;
tuple.src.u.udp.port=ports[1];
tuple.src.l3num=PF_INET;
(3.2)以这个tuple为参数调用nf_conntrack_find_get(&init_net,NF_CT_DEFAULT_ZONE,&tuple);
(3.3)读取对应连接会话的Conntrack信息,找到对应的原始目的IP地址。具体地为:
ct=nf_ct_tuplehash_to_ctrack(h);
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=
ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.u3.ip
在VPN技术中,因为不支持UDP代理,所以要实现类似的功能都是在内核中编写代码,供内核中的相关模块使用,用户态无法使用这类接口,以至于要在用户态实现UDP代理几乎成为了不可能的事情。
UDP虽然与TCP不一样,是无连接的,其实在内核中还是有记录其会话信息,我们可以从会话信息中找到做过NAT的UDP流程的原始的目的IP。
本发明通过对现有Socket选项进行扩展,用户态的代理程序,只需要设置此选项,就可以轻松的获取到当前UDP报文的原始目的IP。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

Claims (3)

1.一种UDP协议的代理方法,其特征在于:该方法包括以下步骤:
(1)用户态收到需要代理的UDP报文;
(2)调用设置套接口选项setsockopt接口来从用户态访问linux内核中UDP的连接跟踪Conntrack;
(3)从内核中UDP的conntrack获取对应报文的原始目的地址;
(4)将原始目的地址返回给用户态;
(5)用户态得到报文的原始目的IP地址后开始代理业务;
(6)代理业务完成后将结果反馈给原始源IP地址对应的用户;
(7)结束。
2.根据权利要求1所述的UDP协议的代理方法,其特征在于:在所述步骤(2)中的setsockopt接口增加获取UDP报文的原始目的IP地址的方法:修改linux内核的系统调用接口sys_setsockopt()函数,在该函数添加获取UDP原始目的IP地址,并返回给setsockopt接口的调用者。
3.根据权利要求2所述的UDP协议的代理方法,其特征在于:在所述步骤(3)中获取对应报文的原始目的地址包括:
(3.1)通过UDP报文中ip头部的信息构造一个tuple;
(3.2)以这个tuple为参数调用nf_conntrack_find_get(&init_net,NF_CT_DEFAULT_ZONE,&tuple);
(3.3)读取对应连接会话的Conntrack信息,找到对应的原始目的IP地址。
CN201510093697.6A 2015-03-03 2015-03-03 一种udp协议的代理方法 Pending CN104639564A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510093697.6A CN104639564A (zh) 2015-03-03 2015-03-03 一种udp协议的代理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510093697.6A CN104639564A (zh) 2015-03-03 2015-03-03 一种udp协议的代理方法

Publications (1)

Publication Number Publication Date
CN104639564A true CN104639564A (zh) 2015-05-20

Family

ID=53217877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510093697.6A Pending CN104639564A (zh) 2015-03-03 2015-03-03 一种udp协议的代理方法

Country Status (1)

Country Link
CN (1) CN104639564A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791315A (zh) * 2016-04-25 2016-07-20 网宿科技股份有限公司 一种udp协议加速方法和系统
CN111131043A (zh) * 2018-10-30 2020-05-08 深信服科技股份有限公司 一种udp数据包的传输方法、系统及相关组件

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1528081A (zh) * 2001-06-08 2004-09-08 �����ĵ� 用于和无线设备的双方发起数据通信的方法和系统
US20070147380A1 (en) * 2005-11-08 2007-06-28 Ormazabal Gaston S Systems and methods for implementing protocol-aware network firewall
US20080031258A1 (en) * 2006-08-01 2008-02-07 International Business Machines Corporation Overload protection for SIP servers
CN101175036A (zh) * 2007-11-01 2008-05-07 南京大学 基于内网节点转发技术的防火墙/子网的穿透方法
CN102420835A (zh) * 2012-01-10 2012-04-18 广东佳和通信技术有限公司 一种融合通信系统中rtp媒体流的代理方法
CN103840994A (zh) * 2012-11-23 2014-06-04 华耀(中国)科技有限公司 一种用户端通过 vpn 访问内网的系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1528081A (zh) * 2001-06-08 2004-09-08 �����ĵ� 用于和无线设备的双方发起数据通信的方法和系统
US20070147380A1 (en) * 2005-11-08 2007-06-28 Ormazabal Gaston S Systems and methods for implementing protocol-aware network firewall
US20080031258A1 (en) * 2006-08-01 2008-02-07 International Business Machines Corporation Overload protection for SIP servers
CN101175036A (zh) * 2007-11-01 2008-05-07 南京大学 基于内网节点转发技术的防火墙/子网的穿透方法
CN102420835A (zh) * 2012-01-10 2012-04-18 广东佳和通信技术有限公司 一种融合通信系统中rtp媒体流的代理方法
CN103840994A (zh) * 2012-11-23 2014-06-04 华耀(中国)科技有限公司 一种用户端通过 vpn 访问内网的系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791315A (zh) * 2016-04-25 2016-07-20 网宿科技股份有限公司 一种udp协议加速方法和系统
CN105791315B (zh) * 2016-04-25 2019-05-14 网宿科技股份有限公司 一种udp协议加速方法和系统
CN111131043A (zh) * 2018-10-30 2020-05-08 深信服科技股份有限公司 一种udp数据包的传输方法、系统及相关组件
CN111131043B (zh) * 2018-10-30 2022-04-29 深信服科技股份有限公司 一种udp数据包的传输方法、系统及相关组件

Similar Documents

Publication Publication Date Title
US9319315B2 (en) Distributing transmission of requests across multiple IP addresses of a proxy server in a cloud-based proxy service
EP3979559A1 (en) Rule-based network-threat detection for encrypted communications
US9143421B2 (en) Network system capable of implementing stun with the assistance of two network devices and method thereof
CN111314499B (zh) 一种域名代理方法、装置、设备及可读存储介质
US9185077B2 (en) Isolation proxy server system
JP2017518696A (ja) パブリッククラウドのプライベートネットワーク資源との接続
CN101946493A (zh) 用于提供连接到因特网的客户端之间的连接性的方法和系统
CN104427010A (zh) 应用于动态虚拟专用网络的网络地址转换方法和装置
JP2012138901A (ja) リレーサーバを利用したデータ伝送システム及び方法
CN113905030B (zh) 内外网通讯方法、装置、内网终端、代理服务器和存储介质
US11005813B2 (en) Systems and methods for modification of p0f signatures in network packets
CN113381906B (zh) 基于政企系统业务的限制性外网访问测试方法
CN105323310A (zh) 网络通信方法、设备及网络附属存储设备
US20210326298A1 (en) Acceleration system for facilitating processing of api calls
US20230291706A1 (en) Method for accessing network, media gateway, electronic device and storage medium
TWI535323B (zh) 點對點裝置與點對點連線方法
Cirani et al. mjCoAP: An open-source lightweight Java CoAP library for Internet of Things applications
US20140337478A1 (en) Peer-to-peer network communications
US20130262652A1 (en) Articles of manufacture, service provider computing methods, and computing service systems
CN111726400A (zh) 反向连接的方法、装置和服务端系统
CN104639564A (zh) 一种udp协议的代理方法
TWI735633B (zh) 資料傳輸的方法、設備、裝置及系統
CN113852697B (zh) 一种sdp终端流量代理方法、装置、设备及存储介质
US20150326671A1 (en) State-based intercept of interactive communications network connections for provision of targeted, status-based messaging
EP3316545A1 (en) Forwarding service requests from outbound proxy servers to remote servers inside of firewalls

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20180724

AD01 Patent right deemed abandoned