CN102843373A - 一种获知udp服务不可达的方法、装置及网络设备 - Google Patents
一种获知udp服务不可达的方法、装置及网络设备 Download PDFInfo
- Publication number
- CN102843373A CN102843373A CN2012103112847A CN201210311284A CN102843373A CN 102843373 A CN102843373 A CN 102843373A CN 2012103112847 A CN2012103112847 A CN 2012103112847A CN 201210311284 A CN201210311284 A CN 201210311284A CN 102843373 A CN102843373 A CN 102843373A
- Authority
- CN
- China
- Prior art keywords
- udp
- monitoring
- module
- unreachable
- icmp
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种获知UDP服务不可达的方法、装置及网络设备,包括:应用程序对应的用户进程向远端设备发起UDP会话后,UDP模块向ICMP模块发送携带UDP会话的标识信息的监控UDP服务不可达请求消息;ICMP模块接收到监控UDP服务不可达请求消息后,向UDP模块返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;UDP模块接收监控UDP服务不可达响应消息;ICMP模块监控到远端设备发送的携带标识信息的UDP服务不可达报文,则向UDP模块发送携带标识信息的UDP服务不可达通知消息;UDP模块接收到UDP服务不可达通知消息后,通知用户进程UDP服务不可达。该方案节约了不必要的等待时间充分利用资源。
Description
技术领域
本发明涉及网络技术领域,尤指一种获知UDP服务不可达的方法、装置及网络设备。
背景技术
传输控制协议(Transmission Control Protocol,TCP)/互联网协议(InternetProtocol,IP)系统,即通常所说的4层协议系统的结构如图1所示,包括链路层、网络层、传输层和应用层。
链路层实现的是设备驱动程序及对应的网络接口卡;网络层实现的是处理网络中的分组活动,包括IP、互联网控制报文协议(Internet Control MessageProtocol,ICMP)、互联网组管理协议(Internet Group Management Protocol,IGMP);传输层处理的是端到端的服务,包括TCP和用户数据报文协议(UserDatagram Protocol,UDP);应用层处理的各应用程序的实现细节,具体包括文件传输协议(File Transfer Protocol,FTP)、简单文件传输协议(Trivial FileTransfer Protocol,TFTP)、远程登录(Telnet)协议、简单邮件传输协议(SimpleMail Transfer Protocol,SMTP)等。每一层只为相邻的上层提供服务器,且只调用相邻下层提供的接口。
当链路层接收到的IP报文到达网络层时,按IP报文的类型进行分流,不同类型的协议报文走不同的协议路径一层一层往上传输;同理,当需要传输IP报文时,IP报文将经过不同的协议路径一层一层往下传输,最终到网络层相聚,经过链路层统一传出,IP报文的走向如图2所示。
UDP和TCP是两种著名的传输层协议,虽然TCP使用了不可靠的IP服务,但TCP自身做了可靠性保障,而UDP是不可靠的协议,UDP的可靠性完全由应用程序来保障。ICMP是IP的附属协议,主要用于通告错误信息,虽然ICMP主要被IP使用,但也可以直接被应用程序使用,如Ping和Traceroute等,但UDP和TCP不处理ICMP报文。
当发送端中应用程序对应的用户进程通过UDP模块向远端设备发起UDP会话时,一般使用套接字(socket)的方式进行,首先在UDP模块创建对应的套接字,通过该套接字发送UDP服务请求报文,并监听该套接字的相关事件,套接字主要包括目的端口号、目的IP地址、源端口号、源IP地址及用于收发数据的缓存空间,缓存空间分配完成后便可以向远端设备请求UDP服务了,当请求的UDP服务完成后便关闭套接字并释放该套接字的缓存空间。
如果远端设备没有打开用户进程请求的UDP服务,即没有打开提供UDP服务的端口,远端设备会返回一个UDP服务(端口)不可达报文,该UDP服务不可达报文包含UDP服务请求报文从IP头开始的部分内容。UDP服务请求报文及UDP服务不可达报文的格式如下图3所示。
ICMP与UDP是两个完全分离的协议实体,不同类型报文走不同的协议。当网络层的IP从链路层收到的是UDP报文则送往上层(传输层)的UDP模块处理,当收到的是ICMP报文则送往同层的ICMP模块处理。ICMP模块处理ICMP报文,UDP模块处理UDP报文,两者相互独立且不交换信息。
一般的,用户进程向远端设备发起UDP会话时,在发出UDP服务请求后,便挂起等待远端设备对UDP服务请求作出的响应,如果远端设备没有开启请求的UDP服务,便会返回UDP服务不可达报文,该UDP服务不可达报文为ICMP报文,由于UDP模块无法接收ICMP报文,则用户进程只能持续挂起直到等待超过设定时间才能退出,在这段设定时间内发送端无法执行任何操作。其实,当远端设备没有开启请求的UDP服务时,远端设备已经返回了UDP服务不可达报文,只是由于发送端的UDP模块无法接收该报文,用户进程只能等待超过设定时间才能结束该UDP会话,而且在这段设定时间内发送端无法执行任何操作,这就造成了发送端不必要的时间浪费和资源浪费。
发明内容
本发明实施例提供一种获知UDP服务不可达的方法、装置及网络设备,用以解决现有技术中存在由于发送端的UDP模块无法接收到UDP服务不可达报文,而造成的发送端不必要的时间浪费和资源浪费的问题。
一种获知UDP服务不可达的方法,包括:
应用程序对应的用户进程向远端设备发起用户数据报文协议UDP会话后,UDP模块向互联网控制报文协议ICMP模块发送携带所述UDP会话的标识信息的监控UDP服务不可达请求消息,其中,所述监控UDP服务不可达请求消息是所述UDP模块接收到所述用户进程发送的UDP服务请求消息后发送的;
所述ICMP模块接收到所述监控UDP服务不可达请求消息后,向所述UDP模块返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;
所述UDP模块接收所述监控UDP服务不可达响应消息;
所述ICMP模块监控到所述远端设备发送的携带所述标识信息的UDP服务不可达报文后,向所述UDP模块发送携带所述标识信息的UDP服务不可达通知消息;
所述UDP模块接收到所述UDP服务不可达通知消息后,通知所述用户进程请求的UDP服务不可达。
一种获知UDP服务不可达的装置,包括用户数据报文协议UDP模块和互联网控制报文协议ICMP模块,其中:
所述UDP模块,用于应用程序对应的用户进程向远端设备发起UDP会话后,向所述ICMP模块发送携带所述UDP会话的标识信息的监控UDP服务不可达请求消息,其中,所述监控UDP服务不可达请求消息是所述UDP模块接收到所述用户进程发送的UDP服务请求消息后发送的;接收所述ICMP模块发送的监控UDP服务不可达响应消息;以及接收到所述ICMP模块发送的UDP服务不可达通知消息后,通知所述用户进程请求的UDP服务不可达;
所述ICMP模块,用于接收到所述监控UDP服务不可达请求消息后,向所述UDP模块返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;以及监控到所述远端设备发送的携带所述标识信息的UDP服务不可达报文后,则向所述UDP模块发送携带所述标识信息的UDP服务不可达通知消息。
一种网络设备,包括上述获知UDP服务不可达的装置。
本发明有益效果如下:
本发明实施例提供的获知UDP服务不可达的方法、装置及网络设备,通过应用程序对应的用户进程向远端设备发起用户数据报文协议UDP会话后,UDP模块向互联网控制报文协议ICMP模块发送携带所述UDP会话的标识信息的监控UDP服务不可达请求消息,其中,所述监控UDP服务不可达请求消息是所述UDP模块接收到所述用户进程发送的UDP服务请求消息后发送的;所述ICMP模块接收到所述监控UDP服务不可达请求消息后,向所述UDP模块返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;所述UDP模块接收所述监控UDP服务不可达响应消息;所述ICMP模块监控到所述远端设备发送的携带所述标识信息的UDP服务不可达报文后,向所述UDP模块发送携带所述标识信息的UDP服务不可达通知消息;所述UDP模块接收到所述UDP服务不可达通知消息后,通知所述用户进程请求的UDP服务不可达。该方案中的UDP模块请求ICMP模块监控远端设备返回的UDP服务不可达报文,当ICMP模块接收到后,就可以通知UDP模块UDP服务不可达了,进而UDP模块可以通知用户进程请求的UDP服务不可达,用户进程可以结束该UDP会话,而且还可以进行其他操作,既节约了不必要的等待时间又可以充分利用资源,从而避免了现有技术中由于无法接收到UDP服务不可达报文,造成的时间浪费和资源浪费。
附图说明
图1为现有的TCP/IP协议系统的结构示意图;
图2为现有的IP报文在TCP/IP协议系统中的走向示意图;
图3为现有的UDP报文和对应的服务不可达的ICMP响应报文的格式;
图4为本发明实施例中获知UDP服务不可达的方法的流程图;
图5为本发明实施例中IP报文在TCP/IP协议系统中的走向示意图;
图6为本发明实施例中获知UDP服务不可达的装置的结构示意图。
具体实施方式
针对现有技术中存在的由于发送端的UDP模块无法接收到UDP服务不可达报文,而造成的发送端不必要的时间浪费和资源浪费的问题,本发明实施例提供的获知UDP服务不可达的方法,该方法的流程如图4所示,具体执行步骤如下:
S40:应用程序对应的用户进程向远端设备发起UDP会话后,UDP模块接收用户进程发送的UDP服务请求消息。
发送端上的应用程序启动后,应用程序对应的用户进程可以向远端设备发起UDP会话,来请求远端设备提供UDP服务,其中发送端可以是客户端,也可以是服务器端。应用进程首先会向UDP模块申请会话资源,包括创建套接字和分配缓存空间,申请会话资源的过程与现有技术相同,在这里不再赘述。
当UDP模块为用户进程分配会话资源后,用户进程就可以通过分配的会话资源向UDP模块发送UDP服务请求消息了。
S41:UDP模块向ICMP模块发送携带UDP会话的标识信息的监控UDP服务不可达请求消息。
UDP模块接收到用户进程发送的UDP服务请求消息后,可以向ICMP模块发送监控UDP服务不可达请求消息,请求ICMP模块来监控远端设备返回的UDP服务不可达报文,因为如果远端设备没有打开用户进程请求的UDP服务时,会返回UDP服务不可达报文,该UDP服务不可达报文是ICMP报文,会直接反馈到ICMP模块。
S42:ICMP模块接收到监控UDP服务不可达请求消息后,向UDP模块返回监控UDP服务不可达响应消息。
S43:监控接收到的ICMP报文,若监控到远端设备发送的携带标识信息的UDP服务不可达报文,执行S44。
S44:向UDP模块发送携带标识信息的UDP服务不可达通知消息。
S45:UDP模块接收UDP服务不可达响应消息,并在接收到UDP服务不可达通知消息后,通知用户进程请求的UDP服务不可达。
如图5所示,该方案相对于现有技术增加了UDP模块与ICMP模块之间的交互过程,UDP模块请求ICMP模块监控远端设备返回的UDP服务不可达报文,当ICMP模块接收到后,就可以通知UDP模块UDP服务不可达了,进而UDP模块可以通知用户进程请求的UDP服务不可达,用户进程可以结束该UDP会话,而且还可以进行其他操作,既节约了不必要的等待时间又可以充分利用资源,从而避免了现有技术中由于无法接收到UDP服务不可达报文,而造成的时间浪费和资源浪费。
较佳的,上述S42中的ICMP模块接收到监控UDP服务不可达请求消息之后,还包括:将标识信息添加到监控链表或监控队列中,其中,监控链表或监控队列记录的是需要监控的UDP会话。
为了能够同时监控多个UDP会话,可以在ICMP模块中设置监控链表或监控队列,将UDP会话的标识信息添加到监控链表或者监控队列中,就可以监控远端设备是否针对用户进程请求的UDP服务返回了UDP服务不可达报文了,当然也可以采用其他方式,这里不再赘述。
具体的,上述S43中监控接收到的ICMP报文,具体包括:将接收到的ICMP报文的标识信息与监控链表或监控队列中的标识信息进行匹配。
当ICMP模块接收到ICMP报文时,可以将接收到的ICMP报文的标识信息与监控链表或者监控队列中的标识信息进行匹配,当匹配上时,也就是说监控链表或者监控队列中存储有接收到的ICMP报文的标识信息时,可以确定是远端设备返回的UDP服务不可达报文,需要通知给对应的UDP模块请求的UDP服务不可达。
较佳的,上述获知UDP服务不可达的方法,还包括:UDP会话结束后,删除监控链表或监控队列中的UDP会话的标识信息。
为了节约资源,及时释放不再使用的资源信息,当UDP会话无论什么原因结束时,ICMP模块都要删除监控链表或者监控队列中的标识信息。
具体的,上述UDP会话的标识信息包括源端口、目的端口、源互联网协议IP地址和目的IP地址。
在对UDP模块请求的UDP服务进行监控时,需要可以唯一标识的UDP会话的标识信息,一个UDP会话一般可以由源端口、目的端口、源IP、目的IP唯一标识,那么,可以采用该4元组来监控UDP服务不可达。当然也可以采用现有技术在4元组的基础上增加几个信息来唯一标识UDP会话,这里不再赘述。
基于同一发明构思,本发明实施例提供一种获知UDP服务不可达的装置,该装置可以设置在网络设备中,结构如图6所示,包括UDP模块60和ICMP模块61,其中:
上述UDP模块60,用于应用程序对应的用户进程向远端设备发起UDP会话后,向ICMP模块61发送携带UDP会话的标识信息的监控UDP服务不可达请求消息,其中,监控UDP服务不可达请求消息是UDP模块60接收到用户进程发送的UDP服务请求消息后发送的;接收ICMP模块61发送的监控UDP服务不可达响应消息;以及接收到ICMP模块61发送的UDP服务不可达通知消息后,通知用户进程请求的UDP服务不可达。
上述ICMP模块61,用于接收到监控UDP服务不可达请求消息后,向UDP模块60返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;以及若监控到远端设备发送的携带标识信息的UDP服务不可达报文,则向UDP模块发送携带标识信息的UDP服务不可达通知消息。
较佳的,上述ICMP模块61,还用于:将标识信息添加到监控链表或监控队列中,其中,监控链表或监控队列记录的是需要监控的UDP会话;
具体的,上述ICMP模块61,具体:将接收到的ICMP报文的标识信息与监控链表或监控队列中的标识信息进行匹配。
较佳的,上述ICMP模块61,还用于:UDP会话结束后,删除监控链表或监控队列中的UDP会话的标识信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种获知UDP服务不可达的方法,其特征在于,包括:
应用程序对应的用户进程向远端设备发起用户数据报文协议UDP会话后,UDP模块向互联网控制报文协议ICMP模块发送携带所述UDP会话的标识信息的监控UDP服务不可达请求消息,其中,所述监控UDP服务不可达请求消息是所述UDP模块接收到所述用户进程发送的UDP服务请求消息后发送的;
所述ICMP模块接收到所述监控UDP服务不可达请求消息后,向所述UDP模块返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;
所述UDP模块接收所述监控UDP服务不可达响应消息;
所述ICMP模块监控到所述远端设备发送的携带所述标识信息的UDP服务不可达报文后,向所述UDP模块发送携带所述标识信息的UDP服务不可达通知消息;
所述UDP模块接收到所述UDP服务不可达通知消息后,通知所述用户进程请求的UDP服务不可达。
2.如权利要求1所述的方法,其特征在于,所述ICMP模块接收到所述监控UDP服务不可达请求消息之后,还包括:
将所述标识信息添加到监控链表或监控队列中,其中,所述监控链表或监控队列记录的是需要监控的UDP会话。
3.如权利要求2所述的方法,其特征在于,监控接收到的ICMP报文,具体包括:
将接收到的ICMP报文的标识信息与所述监控链表或监控队列中的标识信息进行匹配。
4.如权利要求2所述的方法,其特征在于,还包括:
所述UDP会话结束后,删除所述监控链表或监控队列中的所述UDP会话的标识信息。
5.如权利要求1-4任一所述的方法,其特征在于,所述UDP会话的标识信息包括源端口、目的端口、源互联网协议IP地址和目的IP地址。
6.一种获知UDP服务不可达的装置,其特征在于,包括用户数据报文协议UDP模块和互联网控制报文协议ICMP模块,其中:
所述UDP模块,用于应用程序对应的用户进程向远端设备发起UDP会话后,向所述ICMP模块发送携带所述UDP会话的标识信息的监控UDP服务不可达请求消息,其中,所述监控UDP服务不可达请求消息是所述UDP模块接收到所述用户进程发送的UDP服务请求消息后发送的;接收所述ICMP模块发送的监控UDP服务不可达响应消息;以及接收到所述ICMP模块发送的UDP服务不可达通知消息后,通知所述用户进程请求的UDP服务不可达;
所述ICMP模块,用于接收到所述监控UDP服务不可达请求消息后,向所述UDP模块返回监控UDP服务不可达响应消息,监控接收到的ICMP报文;以及监控到所述远端设备发送的携带所述标识信息的UDP服务不可达报文后,则向所述UDP模块发送携带所述标识信息的UDP服务不可达通知消息。
7.如权利要求6所述的装置,其特征在于,所述ICMP模块,还用于:
将所述标识信息添加到监控链表或监控队列中,其中,所述监控链表或监控队列记录的是需要监控的UDP会话。
8.如权利要求7所述的装置,其特征在于,所述ICMP模块用于监控接收到的ICMP报文,具体为:
所述ICMP模块用于将接收到的ICMP报文的标识信息与所述监控链表或监控队列中的标识信息进行匹配。
9.如权利要求6所述的装置,其特征在于,所述ICMP模块,还用于:
所述UDP会话结束后,删除所述监控链表或监控队列中的所述UDP会话的标识信息。
10.一种网络设备,其特征在于,包括如权利要求6-9所述的任一获知UDP服务不可达的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103112847A CN102843373A (zh) | 2012-08-28 | 2012-08-28 | 一种获知udp服务不可达的方法、装置及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103112847A CN102843373A (zh) | 2012-08-28 | 2012-08-28 | 一种获知udp服务不可达的方法、装置及网络设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102843373A true CN102843373A (zh) | 2012-12-26 |
Family
ID=47370433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103112847A Pending CN102843373A (zh) | 2012-08-28 | 2012-08-28 | 一种获知udp服务不可达的方法、装置及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843373A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301832A (zh) * | 2015-05-21 | 2017-01-04 | 中兴通讯股份有限公司 | 一种处理系统日志报文的方法和装置 |
CN111245666A (zh) * | 2018-11-29 | 2020-06-05 | 华为技术有限公司 | 数据传输方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026510A (zh) * | 2007-01-31 | 2007-08-29 | 华为技术有限公司 | 一种网络流量异常检测方法和系统 |
CN101227339A (zh) * | 2007-01-19 | 2008-07-23 | 中兴通讯股份有限公司 | 一种基于内容和/或ip地址的数据业务监控方法 |
US20080181215A1 (en) * | 2007-01-26 | 2008-07-31 | Brooks Bollich | System for remotely distinguishing an operating system |
CN102231748A (zh) * | 2011-08-02 | 2011-11-02 | 杭州迪普科技有限公司 | 一种客户端验证方法及装置 |
-
2012
- 2012-08-28 CN CN2012103112847A patent/CN102843373A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227339A (zh) * | 2007-01-19 | 2008-07-23 | 中兴通讯股份有限公司 | 一种基于内容和/或ip地址的数据业务监控方法 |
US20080181215A1 (en) * | 2007-01-26 | 2008-07-31 | Brooks Bollich | System for remotely distinguishing an operating system |
CN101026510A (zh) * | 2007-01-31 | 2007-08-29 | 华为技术有限公司 | 一种网络流量异常检测方法和系统 |
CN102231748A (zh) * | 2011-08-02 | 2011-11-02 | 杭州迪普科技有限公司 | 一种客户端验证方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301832A (zh) * | 2015-05-21 | 2017-01-04 | 中兴通讯股份有限公司 | 一种处理系统日志报文的方法和装置 |
CN106301832B (zh) * | 2015-05-21 | 2020-04-03 | 中兴通讯股份有限公司 | 一种处理系统日志报文的方法和装置 |
CN111245666A (zh) * | 2018-11-29 | 2020-06-05 | 华为技术有限公司 | 数据传输方法、装置及系统 |
US11444913B2 (en) | 2018-11-29 | 2022-09-13 | Huawei Technologies Co., Ltd. | Data transmission method, apparatus, and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103001887B (zh) | 一种链路保活方法、控制器及交换机 | |
WO2019184752A1 (zh) | 网络设备的管理方法、装置及系统 | |
EP2405608B1 (en) | Performing path-orientated systems management | |
CN103166959B (zh) | 一种多径实时传输控制系统及方法 | |
US20070280236A1 (en) | System and method for providing multicast service | |
CN110601881B (zh) | 一种二层专线网络系统、配置方法及设备 | |
WO2017054576A1 (zh) | 单播隧道建立方法、装置和系统 | |
CN103916275A (zh) | 一种bfd检测装置和方法 | |
US8644491B2 (en) | Mechanism for multisite service state description | |
CN105262836A (zh) | 服务器推送信息的方法及客户端接收推送信息的方法 | |
CN102790811A (zh) | 一种在监控网络中穿越nat设备的方法和装置 | |
CN103986638A (zh) | Advpn隧道绑定多公网链路的方法和装置 | |
KR20110008311A (ko) | 네트워크를 관리하는 방법들 및 디바이스들 | |
CN102917082B (zh) | 穿透网络地址转换的消息推送方法及系统 | |
CN103188153A (zh) | 一种广播网链路上bfd报文发送方法和设备 | |
CN102710495B (zh) | 一种监控网络用户主机建立路由信息的方法及装置 | |
CN104065656B (zh) | 一种媒体流数据识别方法 | |
CN102843373A (zh) | 一种获知udp服务不可达的方法、装置及网络设备 | |
CN104737499B (zh) | 终端、消息分发系统、消息分发方法、计算机可读介质 | |
KR101478232B1 (ko) | 에스아이피 메시지 송수신 시스템 및 방법 | |
WO2017165999A1 (zh) | 网络服务实现方法、服务控制器及通信系统 | |
WO2020024907A1 (zh) | 路径标识传输方法、装置和计算机可读存储介质 | |
CN103401788A (zh) | 一种spt建立方法和设备 | |
CN102523122A (zh) | 广域网终端设备远程管理方法及管理装置 | |
CN105142157A (zh) | 基于SNMP和CoAP的报文转换方法、无线控制器及网络管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121226 |