CN113194102B - 一种基于端口的icmp回送报文传输方法 - Google Patents

一种基于端口的icmp回送报文传输方法 Download PDF

Info

Publication number
CN113194102B
CN113194102B CN202110544490.1A CN202110544490A CN113194102B CN 113194102 B CN113194102 B CN 113194102B CN 202110544490 A CN202110544490 A CN 202110544490A CN 113194102 B CN113194102 B CN 113194102B
Authority
CN
China
Prior art keywords
icmp
data packet
protocol
target
address
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
Application number
CN202110544490.1A
Other languages
English (en)
Other versions
CN113194102A (zh
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.)
Suzhou Ruilisi Technology Co ltd
Original Assignee
Suzhou Ruilisi 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 Suzhou Ruilisi Technology Co ltd filed Critical Suzhou Ruilisi Technology Co ltd
Priority to CN202110544490.1A priority Critical patent/CN113194102B/zh
Publication of CN113194102A publication Critical patent/CN113194102A/zh
Application granted granted Critical
Publication of CN113194102B publication Critical patent/CN113194102B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种基于端口的ICMP回送报文传输方法。所述方法应用于网络设备,所述网络设备中存储有支持ICMP回送报文的目标代理协议,其中所述目标代理协议构建于传输层,通过代理协议中地址类型的高5位进行扩展得到,所述目标代理协议中的地址类型的最高位置为1时代理ICMP数据包;所述目标协议包括:目标地址为IPv4地址、目标地址为域名以及目标地址为IPv6的ICMP数据包的地址类型。本本发明通过对传输层上的代理协议进行扩展,与现有技术相比,扩展后的目标代理协议支持ICMP回送数据,弥补了网络代理应用中ICMP回送数据请求的空缺。

Description

一种基于端口的ICMP回送报文传输方法
技术领域
本发明实施例涉及网络代理技术领域,尤其涉及一种基于端口的ICMP回送报文传输方法和装置。
背景技术
Internet控制报文协议(Internet Control Message Protocol,ICMP)是一种无连接的协议,用于传输出错报告控制信息。现有基于传输层的代理技术的虚拟专用网络(VPN)服务器分配技术,只能代理TCP和UDP两种传输协议。
传统的代理协议遇到ICMP回送报文(即Ping请求)时,有三种处理方案:第一种,直接将报文本地回送,这回造成客户端认为Ping非常低的假象;第二种,直接忽略此报文,这回使得Ping请求不可用;第三种,将报文放回协议栈,从原网关口发出,即不代理此报文,这使得Ping值不真实。
因此,现有的代理协议无法代理ICMP回送报文。
发明内容
本发明提供一种基于端口的ICMP回送报文传输方法,以实现传输层上的代理协议能够支持ICMP回送数据。
第一方面,本发明实施例提供了一种基于端口的ICMP回送报文传输方法,所述方法应用于网络设备,所述网络设备中存储有支持ICMP回送报文的目标代理协议;其中
所述目标代理协议构建于传输层,通过代理协议中地址类型的高5位进行扩展得到,所述目标代理协议中的地址类型的最高位置为1时代理ICMP数据包;
所述目标协议包括:目标地址为IPv4地址、目标地址为域名以及目标地址为IPv6的ICMP数据包的地址类型;
所述方法由客户端执行,包括:
当协议栈接收到数据包时,判断该所述数据包的协议类型,若为ICMP,则对所述数据包进行解析和封装,并将所述数据包地址类型的最高位置为1;
在本地监听一个随机的UDP端口,并通过所述UDP端口向代理端发送封装后的数据包。
可选的,对所述数据包进行封装和解析,包括:
分离所述数据包的IP头部,取出ICMP消息体;
将所述ICMP消息体作为负载封装入所述代理协议的结构体中,并将所述ICMP消息体的地址类型的最高位置为1。
可选的,在通过所述UDP端口向代理端发送封装后的数据包之后,还包括:
监听所述UDP端口的数据回复,并在收到数据回复之后,从数据包中取出负载,写入协议栈中;
停止监听所述UDP端口。
第二方面,一种基于端口的ICMP回送报文传输方法,所述方法应用于网络设备,所述网络设备中存储有支持ICMP回送报文的目标代理协议;其中
所述目标代理协议构建于传输层,通过代理协议中地址类型的高5位进行扩展得到,所述目标代理协议中的地址类型的最高位置为1时代理ICMP数据包;
所述目标协议还包括:目标地址为IPv4地址、目标地址为域名以及目标地址为IPv6的ICMP数据包的地址类型;
所述方法由服务端执行,包括:
当接收到UDP端口发送过来的数据包时,解析所述数据包的地址类型,若所述地址类型为所述目标代理协议中对应的ICMP地址类型,则记录所述数据包的源IP和源端口;
从所述数据包中取出负载,解析所述负载的类型并判断所述负载是否为ICMP回送数据包;
若是,则对所述数据包进行过滤和封装,并将封装后的数据发送至所述源IP和端口。
本发明通过对传输层上的代理协议进行扩展,与现有技术相比,扩展后的目标代理协议支持ICMP回送数据,弥补了网络代理应用中ICMP回送数据请求的空缺。
附图说明
图1为本发明实施例提供的一种基于端口的ICMP回送报文传输方法;
图2为本发明实施例提供的另一种基于端口的ICMP回送报文传输方法。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例
本发明实施例提供的一种基于端口的ICMP回送报文传输方法,应用于网络设备,所述网络设备中存储有支持ICMP回送报文的目标代理协议。
其中,该目标代理协议构建于传输层,数据传输必须使用TCP或者UDP中的一种,通过代理协议中地址类型的高5位进行扩展得到,所述目标代理协议中的地址类型的最高位置为1时代理ICMP数据包。示例性的,上述代理协议可以为SOCKS5。
进一步的,鉴于ICMP是一个无连接的协议,与UDP最为接近,因此本发明实施例选用UDP协议作为代理ICMP数据包的介质,在现有代理协议的基础上进行扩展。
本发明实施例的目标代理协议构建于UDP之上,故本发明实施例只描述代理协议的UDP部分。示例性的,传统的代理协议,如SOCKS5,去掉头部的冗余信息,最基本的协议结构如下表所示:
地址类型(1字节) 目标地址(可变长度) 目标端口(2字节) 负载
表1
在传统的代理协议上,上述表中的地址类型有3个可选值,分别为:
1:表示目标地址是一个IPv4地址;
3:表示目标地址是一个域名;
4:表示目标地址是一个IPv6地址。
由于地址类型只占用1字节,而上述1、3、4三个值只利用到1字节中的低3位,因此,本实施例中通过代理协议中上述地址类型的高5位进行扩展,扩展后目标协议包括:目标地址为IPv4地址、目标地址为域名以及目标地址为IPv6的ICMP数据包的地址类型。具体的,本实施例定义地址类型的最高位置为1时,目标代理协议代理数据包为ICMP数据包,与此同时,结合低3位的取值,形成如下三个新的地址类型:
129:表示目标地址为IPv4地址的ICMP数据包;
131:表示目标地址为域名的ICMP数据包;
132:表示目标地址为IPv6的ICMP数据包;
ICMP数据包没有端口的概念,因此目标端口在此情况下留空,不做处理。
在上述扩展的目标代理协议基础上,进一步介绍ICMP数据包的处理过程。
参见图1,图1为本发明实施例提供的一种基于端口的ICMP回送报文传输方法,所述方法由客户端执行,包括:
S110、当协议栈接收到数据包时,判断该所述数据包的协议类型,若为ICMP,则对所述数据包进行解析和封装,并将所述数据包地址类型的最高位置为1。
若不是ICMP,则进入UDP处理流程。
其中,对所述数据包进行封装和解析,包括:
分离所述数据包的IP头部,取出ICMP消息体;
将所述ICMP消息体作为负载封装入上述表1的结构体中,并将所述ICMP消息体的地址类型的最高位置为1。
S120、在本地监听一个随机的UDP端口,并通过所述UDP端口向代理端发送封装后的数据包。
S130、监听所述UDP端口的数据回复,并在收到数据回复之后,从数据包中取出负载,在负载的前端接上IP头部,形成正确的IP数据包后,写入协议栈中。
S140、停止监听所述UDP端口。
继续参见图2,当所述方法由代理端执行时,所述方法包括:
S210、当接收到UDP端口发送过来的数据包时,解析所述数据包的地址类型,若所述地址类型为所述目标代理协议中对应的ICMP地址类型,则记录所述数据包的源IP和源端口;
S220、从所述数据包中取出负载,解析所述负载的类型并判断所述负载是否为ICMP回送数据包;
S230、若是,则对所述数据包进行过滤和封装,并将封装后的数据发送至所述源IP和端口。
示例性行的,在上述实施例的基础上,当该方法由代理端执行时,更为详细的处理步骤如下:
1.当接收到UDP端口发送过来的数据包后,解析所述数报的地址类型部分,若判断为129、131、132,则进入ICMP处理流程,否则按照UDP数据包处理;
2.记录数据包的源IP和端口;
3.取出负载,解析负载的类型,若不为ICMP回送数据包,则结束处理;
4.取出地址类型的低4位,判断地址类型是否为IPv4,域名,或IPv6;
5.若为域名,则解析此域名,获得IPv4或IPv6地址;
6.根据IPv4或IPv6,新建一个协议类型为ICMP的Socket;
7.解析此ICMP回送数据包的ID和Seq字段,记录下来;
8.取出目标地址,在新建的Socket上,并向目标地址发送负载;
9.在此Socket上读取数据;
10.若读取时间超过5秒,则结束处理;
11.解析收到的数据,若不为ICMP回送数据包,则返回步骤8;
12.解析数据包的ID和Seq字段,若与步骤7中的记录值不相等,则返回步骤8;
13.将数据包封装入表一的结构体中,并将地址类型的最高位置1;
14.将封装的数据发送给步骤2记录的IP和端口;
15.释放步骤5新建的Socket。
本发明通过对传输层上的代理协议进行扩展,与现有技术相比,扩展后的目标代理协议支持ICMP回送数据,弥补了网络代理应用中ICMP回送数据请求的空缺。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (4)

1.一种基于端口的ICMP回送报文传输方法,其特征在于,所述方法应用于网络设备,所述网络设备中存储有支持ICMP回送报文的目标代理协议;其中
所述目标代理协议构建于传输层,传统代理协议中的地址类型占用1字节的低3位,所述目标代理协议通过传统代理协议中地址类型的高5位进行扩展得到;
所述目标代理协议中的地址类型的最高位置为1时,目标代理协议代理数据包为ICMP数据包代理ICMP数据包;
所述目标协议包括:目标地址为IPv4地址或者目标地址为域名或者目标地址为IPv6的ICMP数据包的地址类型;
所述方法由客户端执行,包括:
当协议栈接收到数据包时,判断该所述数据包的协议类型,若为ICMP,则对所述数据包进行解析和封装,并将所述数据包地址类型的最高位置为1;
在本地监听一个随机的UDP端口,并通过所述UDP端口向代理端发送封装后的数据包。
2.根据权利要求1所述的方法,其特征在于,对所述数据包进行封装和解析,包括:
分离所述数据包的IP头部,取出ICMP消息体;
将所述ICMP消息体作为负载封装入所述代理协议的结构体中,并将所述ICMP消息体的地址类型的最高位置为1。
3.根据权利要求2所述的方法,其特征在于,在通过所述UDP端口向代理端发送封装后的数据包之后,还包括:
监听所述UDP端口的数据回复,并在收到数据回复之后,从数据包中取出负载,写入协议栈中;
停止监听所述UDP端口。
4.一种基于端口的ICMP回送报文传输方法,其特征在于,所述方法应用于网络设备,所述网络设备中存储有支持ICMP回送报文的目标代理协议;其中
所述目标代理协议构建于传输层,传统代理协议中的地址类型占用1字节的低3位,所述目标代理协议通过传统代理协议中地址类型的高5位进行扩展得到;
所述目标代理协议中的地址类型的最高位置为1时,目标代理协议代理数据包为ICMP数据包代理ICMP数据包;
所述目标协议包括:目标地址为IPv4地址或者目标地址为域名或者目标地址为IPv6的ICMP数据包的地址类型;
所述方法由服务端执行,包括:
当接收到UDP端口发送过来的数据包时,解析所述数据包的地址类型,若所述地址类型为所述目标代理协议中对应的ICMP地址类型,则记录所述数据包的源IP和源端口;
从所述数据包中取出负载,解析所述负载的类型并判断所述负载是否为ICMP回送数据包;
若是,则对所述数据包进行过滤和封装,并将封装后的数据发送至所述源IP和端口。
CN202110544490.1A 2021-05-19 2021-05-19 一种基于端口的icmp回送报文传输方法 Active CN113194102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110544490.1A CN113194102B (zh) 2021-05-19 2021-05-19 一种基于端口的icmp回送报文传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110544490.1A CN113194102B (zh) 2021-05-19 2021-05-19 一种基于端口的icmp回送报文传输方法

Publications (2)

Publication Number Publication Date
CN113194102A CN113194102A (zh) 2021-07-30
CN113194102B true CN113194102B (zh) 2023-11-21

Family

ID=76982332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110544490.1A Active CN113194102B (zh) 2021-05-19 2021-05-19 一种基于端口的icmp回送报文传输方法

Country Status (1)

Country Link
CN (1) CN113194102B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992426B (zh) * 2021-11-15 2024-08-02 北京知道未来信息技术有限公司 一种报文分发方法、装置、存储介质及电子设备
CN114268669A (zh) * 2022-03-01 2022-04-01 阿里云计算有限公司 访问处理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262381A (zh) * 2008-03-19 2008-09-10 北京天地互连信息技术有限公司 IPv6下进行简单网络管理协议测试的方法
CN103986657A (zh) * 2014-04-25 2014-08-13 科大智能科技股份有限公司 电力线载波通信实现分布式网络交换的方法
CN104348821A (zh) * 2013-08-08 2015-02-11 联想(北京)有限公司 管理IPv4/IPv6业务的方法、设备和系统
CN109347817A (zh) * 2018-10-12 2019-02-15 厦门安胜网络科技有限公司 一种网络安全重定向的方法及装置
CN110839046A (zh) * 2019-12-03 2020-02-25 睿哲科技股份有限公司 多协议的互通方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262381A (zh) * 2008-03-19 2008-09-10 北京天地互连信息技术有限公司 IPv6下进行简单网络管理协议测试的方法
CN104348821A (zh) * 2013-08-08 2015-02-11 联想(北京)有限公司 管理IPv4/IPv6业务的方法、设备和系统
CN103986657A (zh) * 2014-04-25 2014-08-13 科大智能科技股份有限公司 电力线载波通信实现分布式网络交换的方法
CN109347817A (zh) * 2018-10-12 2019-02-15 厦门安胜网络科技有限公司 一种网络安全重定向的方法及装置
CN110839046A (zh) * 2019-12-03 2020-02-25 睿哲科技股份有限公司 多协议的互通方法和系统

Also Published As

Publication number Publication date
CN113194102A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
US10432522B2 (en) Network packet flow controller with extended session management
CN113194102B (zh) 一种基于端口的icmp回送报文传输方法
US12040968B2 (en) Flow modification including shared context
EP4030729A1 (en) Router with bilateral tcp session monitoring
US7388829B2 (en) Method and apparatus for detecting and recovering from faults associated with transport protocol connections across network address translators
US8909812B2 (en) Method and device for communication for host device with IPv4 application
US8254273B2 (en) Tracing connection paths through transparent proxies
US10951506B1 (en) Offloading heartbeat responses message processing to a kernel of a network device
US7450499B2 (en) Method and apparatus for interconnecting IPv4 and IPv6 networks
US7212527B2 (en) Method and apparatus for communicating using labeled data packets in a network
US8611354B2 (en) Method and apparatus for relaying packets
JP2001244957A (ja) Tcp終端機能付きipルータ装置および媒体
EP4333408A2 (en) Method and apparatus for managing routing disruptions in a computer network
CN101848247A (zh) 实现IPv6主机访问IPv4主机的方法、获取IPv6地址前缀的方法和转换装置
CN113810349B (zh) 数据传输方法、装置、计算机设备和存储介质
JP2008098813A (ja) 情報通信装置、情報通信方法、及びプログラム
CN102647483B (zh) 获取nat类型的方法、p2p端点实体和nat实体
CN103795581B (zh) 地址处理方法和设备
CN107800745B (zh) 基于mDNS进行服务宣告和服务发现的方法、装置和计算机可读存储介质
CN114301993A (zh) 一种数据传输方法、装置、终端设备和存储介质
KR101896551B1 (ko) 분리망 연계 시스템 및 그 제어방법
US8045523B2 (en) Method and apparatus for performing media independent handover
CN114915492B (zh) 一种流量转发方法、装置、设备及介质
McCann et al. RFC1981: Path MTU Discovery for IP version 6
JP5805575B2 (ja) 中継装置、中継方法及び中継プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant