网络装置及其封包转发方法

文档序号:7975780阅读:136来源:国知局
专利名称:网络装置及其封包转发方法
技术领域
本发明涉及网络通信领域,尤其涉及一种网络装置及其封包转发方法。
背景技术
在现有的互联网协议语音(Voice over Internet Protocol, VoIP)系统中,VoIP网关 用于将电话机传送的语音进行实时压縮以及协议转换处理,然后传送到互联网(Internet) 。在企业用户希望进行VoIP通信时,需要向VoIP服务提供商租用VoIP网关。
然而,当企业用户租用VoIP网关时,如果该企业用户仅需要租用部份连接端口,其仍需 要租用整台VoIP网关,并支付租用整台VoIP的费用。由此, 一台VoIP网关仅能提供给单一企 业用户使用,从而导致网络设备利用率降低。

发明内容
有鉴于此,需要提供一种网络装置,其可提供给多个用户共同使用,从而提高网络设备 利用率。
此外,还需提供一种封包转发方法,其可应用于该网络装置中,使该网络装置可提供给 多个用户共同使用,从而提高网络设备利用率。
此外,还需提供另一种封包转发方法,其可应用于该网络装置中,使该网络装置可提供 给多个用户共同使用,从而提高网络设备利用率。
一种网络装置,连接于客户端与网络之间,该网络装置包括列表建立模块、收发模块、 确定模块以及转换模块。列表建立模块用于建立一个内部列表以及至少一个外部列表,内部 列表用于记录网络装置的多个真实网络参数,并且每一个外部列表用于记录网络装置的多个 虚拟网络参数,多个真实网络参数与多个虚拟网络参数一一对应。收发模块用于接收该客户 端以及该网络发送的封包,并传送该封包。确定模块用于根据内部列表以及多个外部列表确 定封包是否为互联网协议语音封包,并进一步确定该互联网协议语音封包是互联网协议语音 控制封包,还是互联网协议语音数据封包。转换模块用于在互联网协议语音封包是互联网协 议语音控制封包时,根据内部列表与多个外部列表之间的对应关系转换封包的网络参数。
一种封包转发方法,应用于连接在客户端与网络之间的网络装置中,该封包转发方法包 括建立一个内部列表以及至少一个外部列表,内部列表用于记录网络装置的多个真实网络 参数,多个外部列表用于记录网络装置的多个虚拟网络参数,多个真实网络参数与多个虚拟
网络参数一一对应;接收该网络传送之封包;根据内部列表以及多个外部列表确定封包是否 为互联网协议语音封包;如果封包为互联网协议语音封包,则进一步确定该封包是互联网协 议语音控制封包,还是互联网协议语音数据封包;以及如果封包是该互联网协议语音控制封 包,则根据内部列表与多个外部列表之间的对应关系转换封包的网络参数。
一种封包转发方法,应用于连接在客户端与网络之间的网络装置中,该封包转发方法包 括建立一个内部列表以及至少一个外部列表,该内部列表用于记录该网络装置的多个真实 网络参数,并且每一个个外部列表用于记录网络装置的多个虚拟网络参数,多个真实网络参 数与多个虚拟网络参数一一对应;接收客户端传送的封包;根据内部列表以及多个外部列表 确定封包是互联网协议语音控制封包,还是互联网协议语音数据封包;如果封包是该互联网 协议语音控制封包,则根据该内部列表与多个外部列表之间的对应关系转换封包的真实网络 参数;根据内部列表与多个外部列表之间的对应关系转换该互联网协议语音控制封包或者该 互联网协议语音数据封包的真实网络参数;以及根据转换后的封包的真实网络参数将封包转 发至客户端。
本发明的网络装置及其封包转发方法首先透过列表建立模块建立一个内部列表以及至少 一个外部列表,其后透过收发模块接收客户端以及网络发送的封包,并传送该封包,然后透 过确定模块根据内部列表以及多个外部列表确定该封包是否为互联网协议语音封包,并进一 步确定该互联网协议语音封包是互联网协议语音控制封包,还是互联网协议语音数据封包, 最后透过转换模块在互联网协议语音封包是互联网协议语音控制封包时,根据内部列表与多 个外部列表之间的对应关系转换封包的网络参数来提供给多个用户共同使用,从而提高网络 设备利用率。


图l为本发明网络装置的应用环境示意图。 图2为本发明网络装置的模块图。
图3为本发明建立一个内部列表以及至少一个外部列表的示意图。
图4为本发明封包转发方法的流程图。
图5为本发明另一种封包转发方法的流程图。
具体实施例方式
参阅图l,所示为本发明网络装置io的应用环境示意图。
如图1所示,网络装置10连接于客户端20与网络30之间,用于在客户端20与网络30之间 交换封包,该封包的类型包括控制封包以及数据封包。在本实施例中,网络装置10为互联网
语音(Voice over Internet Protocol, VoIP)网关,客户端20为VoIP电话机,网络30为互 联网(Internet)。数据封包为实时传输协议(Real-time Transmission Protocol, RTP) 封包,用于携带语音数据,控制封包为媒体网关控制协议(Media Gateway Control Protocol, MGCP)封包,用于携带控制信令。
参阅图2,所示为本发明网络装置10的模块图。
网络装置IO包括列表建立模块IIO、存储模块120、收发模块130、确定模块140、转换模 块150、信令处理模块160以及信号处理模块170。
列表建立模块110用于建立一个内部列表以及至少一个外部列表。在本实施方式中,内 部列表用于记录网络装置10的多个真实网络参数,并且每一个外部列表用于记录网络装置 10的每一组虚拟网络参数,且真实网络参数与虚拟网络参数之间一一对应。请同时参阅图3 ,所示为本发明建立一个内部列表以及至少一个外部列表的示意图。
图3中包括内部列表1'、外部列表2'、外部列表3'以及外部列表4',其中内部列表 1'包括一个第一真实网络参数字段、多个第二真实网络参数字段及多个第三真实网络参数 字段,分别用于记载网络装置10的第一真实网络参数、第二真实网络参数以及第三真实网络 参数。在本实施例中,第一真实网络参数、第二真实网络参数以及第三真实网络参数分别是
网络装置io的真实ip地址、真实端口号以及真实端点名称。举例而言,在内部列表r中,
网络装置10的实际IP地址为172. 19. 66. 30,端口号包括3000、 3002、…、3028,内部端点名 禾尔包括aal6system. fox. com、 aa2@system.fox.com、 …、aal5@system.fox.com。
外部列表2'、外部列表3'以及外部列表4'均包括一个第一虚拟网络参数字段、第二 虚拟网络参数字段以及第三虚拟网络参数字段,分别用于记载网络装置10的第一虚拟网络参 数、第二虚拟网络参数以及第三虚拟网络参数。在本实施例中,网络装置10的第一虚拟网络 参数、第二虚拟网络参数以及第三虚拟网络参数分别为网络装置10的虚拟IP地址、虚拟端口 号以及虚拟端点名称。
举例而言,在外部列表2'中,网络装置10的虚拟IP地址为192. 168.0. 1,虚拟端口号包 括3000、 3002、…、3008,这些虚拟端口号与内部列表l'中的真实端口号3000、 3002、… 、3008相同,虚拟端点名称包括aalnl^gw1. fox. com、 aaln2@gwl.fox.com、…、 aaln5@gwl. fox. com,这些虚拟端点名称分别对应于列表l中的真实端点名称 aalnl@system.fox.com、 aaln2@system.fox.com、 …、aaln5@system.fox.com。
在外部列表3'中,网络装置10的虚拟IP地址为192. 168.0.2,虚拟端口号包括3000、 3002、…、3008,多个虚拟端口号分别对应于内部列表l'中的真实端口号3010、 3012、… 、3018,虚拟端点名称包括aalnl錢gw2. fox. com、 aaln2@gw2.fox.com、…、 aaln5@gw2. fox. com,这些虚拟端点名称分别对应于列表l中的真实端点名称 aaln6@system.fox.com、 aaln7@system.fox.com、 …、aalnlO@system.fox.com。
在外部列表4'中,网络装置10的虚拟IP地址为192. 168.0. 3,虚拟端口号包括3000、 3002、…、3008,多个虚拟端口号分别对应于内部列表l'中的真实端口号3020、 3022、… 、3028,虚拟端点名称包括aalnl錢gw3. fox. com、 aaln2@gw3.fox.com、…、 aaln5@gw3. fox. com,这些虚拟端点名称分别对应于列表l中的真实端点名称 aalnll@system.fox.com、 aalnl2@system.fox.com、 …、aalnl5@system.fox.com。
存储模块120用于存储一个内部列表以及多个外部列表。在本实施例中,该存储模块 120可为随机访问存储器(Random Access Memory, RAM)或闪存(Flash Memory)。
收发模块130用于接收客户端20以及网络30发送的封包,并传送该封包。在本实施例中 ,收发模块130为网络接口卡或用户线路接口电路(Subscriber Line Interface Circuit, SLIC)。如果封包从网络30传送,则封包具有第一虚拟网络参数、第二虚拟网络参数以及第 三虚拟网络参数。如果封包从客户端20传送,则封包具有第一真实网络参数、第二真实网络 参数以及第三真实网络参数。在本实施例中,封包的第一虚拟网络参数或第一真实网络参数 为记载于封包头部字段(Header)中的IP地址,封包的第二虚拟网络参数或第二真实网络参 数为记载于封包头部字段中的端口号,封包的第三虚拟网络参数或第三真实网络参数为记载 于封包头部字段中的端点名称。
确定模块140用于根据内部列表以及多个外部列表确定封包是否为互联网协议语音( Voice over Internet Protocol, VoIP)封包。详而言之,确定模块140首先査询封包头部 字段中记载的IP地址以及端口号,然后根据封包的IP地址以及端口号査询内部列表以及多个 外部列表。如果封包的IP地址以及端口号已经存在于内部列表以及多个外部列表中,则该封 包为VoIP封包,否则该封包不是VoIP封包。
确定模块140还用于当封包为VoIP封包时,分别执行该VoIP封包的第一真实网络参数、 第二真实网络参数与第一虚拟网络参数、第二虚拟网络参数之间的转换。详而言之,如果封 包从网络20传送,则确定模块140根据该封包头部字段中记载的IP地址以及端口号査询多个 外部列表中对应的网络装置10的虚拟IP地址以及虚拟端口号,其后确定模块140根据査询到 的网络装置10的虚拟IP地址以及虚拟端口号査询内部列表中对应的网络装置10的真实IP地址 以及真实端口号,最后确定模块140根据査询到的网络装置10的真实IP地址以及真实端口号 转换该封包的IP地址以及端口号。如果封包从客户端20传送,则确定模块140根据该封包的
IP地址以及端口号査询内部列表中对应的网络装置10的真实IP地址以及真实端口号,其后确 定模块140根据査询到的网络装置10的真实IP地址以及真实端口号査询多个外部列表中对应 的网络装置10的虚拟IP地址以及虚拟端口号,最后确定模块140根据査询到的网络装置10的 虚拟IP地址以及虚拟端口号转换该封包的IP地址以及端口号。
确定模块140还用于进一步确定封包是VoIP控制封包,还是VoIP数据封包。在本实施例 中,如果封包的端口号是2427,则该封包是VoIP控制封包,如果封包的端口号不是2427,则 该封包是VoIP资料封包。
转换模块150用于在封包是VoIP控制封包时,根据所述内部列表与所述多个外部列表之 间的对应关系执行该VoIP控制封包的第三真实网络参数与第三虚拟网络参数之间的转换。详 而言之,如果封包从网络20传送,则确定模块140根据封包头部字段中记载的端点名称査询 多个外部列表中对应的网络装置10的虚拟端点名称,其后确定模块140根据査询到的网络装 置10的虚拟端点名称査询内部列表中对应的网络装置10的真实端点名称,最后确定模块140 根据査询到的网络装置IO的真实端点名称转换该封包的端点名称。如果封包从客户端30传送 ,则确定模块140根据封包的端点名称査询内部列表中对应的网络装置10的真实端点名称, 其后确定模块140根据査询到的网络装置10的真实端点名称査询多个外部列表中对应的网络 装置10的虚拟端点名称,最后确定模块140根据査询到的网络装置10的虚拟端点名称转换该 封包的端点名称。
信令处理模块160用于对转换模块150转换的VoIP控制封包执行信令处理。在本实施例中 ,信令处理模块160为媒体网关控制协议处理器,信令处理包括协议分析、控制以及判断。
信号处理模块170用于对VoIP数据封包执行数字信号处理。在本实施例中,信号处理模 块170为数字信号处理器(Digital Signal Processor, DSP)。
请参阅图4,所示为本发明封包转发方法的流程图。
在步骤S402中,列表建立模块110建立一个内部列表以及至少一个外部列表。在本实施 方式中,内部列表用于记录网络装置10的多个真实网络参数,并且每一个外部列表用于记录 网络装置IO的每一组虚拟网络参数,且真实网络参数与虚拟网络参数之间一一对应。
如图3所示,列表建立模块110首先建立内部列表1'。
其次,列表建立模块iio添加网络装置io的第一真实网络参数至内部列表r中。在本实
施例中,网络装置10的第一真实网络参数为网络装置10的真实IP地址。如图3所示,列表建 立模块110添加的网络装置10的真实IP地址为172. 19. 66. 30。
再次,列表建立模块iio添加网络装置io的第二真实网络参数至内部列表r中。在本实
施例中,网络装置10的第二真实网络参数为网络装置10的真实端口号。如图3所示,列表建 立模块110添加的网络装置10的真实端口号包括3000, 3002,…,3028。
其后,列表建立模块110添加网络装置10的第三真实网络参数至内部列表1'中。在本实 施例中,网络装置10的第二真实网络参数为网络装置10的真实端点名称。如图3所示,列表 建立模块110添加的网络装置10的真实端点名称包括aalfeystem. fox. com、 aa2@system.fox.com、 …、aal6@system.fox.com。
随后,列表建立模块110建立多个外部列表。如图3所示,列表建立模块110建立外部列 表2'、外部列表3'以及外部列表4'。
其后,列表建立模块110添加网络装置10的第一虚拟网络参数至多个外部列表中。在本 实施例中,网络装置10的第一虚拟网络参数为网络装置10的虚拟IP地址。如图3所示,列表 建立模块110添加至外部列表2'的网络装置10的虚拟IP地址为192. 168.0. 1,添加至外部列 表3'的网络装置10的虚拟IP地址为192. 168.0.2,添加至外部列表4'的网络装置10的虚拟 IP地址为192. 168. 0. 3。
随后,列表建立模块110添加网络装置10的第二虚拟网络参数至多个外部列表中。在本 实施例中,网络装置10的第二虚拟网络参数为网络装置10的虚拟端口号。如图3所示,列表 建立模块110添加至外部列表2'、外部列表3'以及外部列表4'的网络装置10的虚拟端口号 均包括3000、 3002、…、3008。
最后,列表建立模块110添加网络装置10的第三虚拟网络参数至多个外部列表中。在本 实施例中,网络装置10的第三虚拟网络参数为网络装置10的虚拟端点名称。如图3所示,列 表建立模块110添加至外部列表2'的网络装置10的虚拟端点名称为aalnl^w1. fox. com、 aaln2@gwl.fox.com、…、aaln5@gwl.fox.com,添加至外部列表3'的网络装置10的虚拟端 点名成为aalnl6gw2. fox. com、 aaln2@gw2.fox.com、 …、aaln5@gw2.fox.com, 添力口至夕卜咅I5 列表4'的网络装置10的虚拟端点名称为aalnl錢gw3. fox. com、 aaln2@gw3.fox.com、…、 aaln5@gw3. fox. com。
在步骤S404中,收发模块120接收网络30传送的封包。封包具有第一虚拟网络参数、第 二虚拟网络参数以及第三虚拟网络参数。在本实施例中,收发模块120为网络接口卡,封包 的第一虚拟网络参数为记载于该封包头部字段(Header)中的IP地址,封包的第二虚拟网络 参数为记载于该封包头部字段中的端口号,封包的第三虚拟网络参数为记载于该封包头部字 段中的端点名称。
在步骤S406中,确定模块140根据内部列表以及多个外部列表确定封包是否为VoIP封包 。详而言之,确定模块140首先査询封包头部字段中记载的IP地址以及端口号,然后根据封 包的IP地址以及端口号査询内部列表以及多个外部列表。如果封包的IP地址以及端口号已经 存在于内部列表以及多个外部列表中,则该封包为VoIP封包,否则该封包不是VoIP封包。如 果该封包是VoIP封包,则进入步骤S408。如果该封包不是VoIP封包,则进入步骤S412。
在步骤S408中,确定模块140根据内部列表与多个外部列表之间的对应关系转换封包的 第一虚拟网络参数。详而言之,确定模块140根据该封包的IP地址査询多个外部列表中对应 的网络装置10的虚拟IP地址,其后确定模块140根据査询到的该网络装置10的虚拟IP地址査 询内部列表中对应的该网络装置10的真实IP地址,最后确定模块140根据査询到的该网络装 置l 0的真实IP地址转换该封包的IP地址。
在步骤S410中,确定模块140根据内部列表与多个外部列表之间的对应关系转换封包的 第二虚拟网络参数。详而言之,确定模块140根据该封包的端口号査询多个外部列表中对应 的该网络装置10的虚拟端口号,其后确定模块140根据査询到的该网络装置10的虚拟端口号 査询内部列表中对应的该网络装置10的真实端口号,最后确定模块140根据査询到的该网络 装置10的真实IP地址转换该封包的端口号。
在步骤S412中,确定模块140将不是VoIP封包的封包传送至网络装置10作进一步处理。
在步骤S414中,确定模块140进一步确定封包是VoIP控制封包,还是VoIP数据封包。在 本实施例中,确定模块140根据封包的第二虚拟网络参数判定该封包是VoIP控制封包,还是 VoIP数据封包。如果封包的端口号为2427,则该封包是VoIP控制封包,如果封包的端口号不 是2427,则该封包是VoIP资料封包。如果封包是VoIP控制封包,则进入步骤S416。如果封包 是VoIP数据封包,则进入步骤S420。
在步骤S416中,转换模块150根据内部列表与多个外部列表之间的对应关系转换封包的 第三虚拟网络参数。详而言之,确定模块140根据封包的端点名称査询多个外部列表中对应 的网络装置10的虚拟端点名称,其后确定模块140根据査询到的网络装置10的虚拟端点名称 査询内部列表中对应的网络装置10的真实端点名称,最后确定模块140根据査询到的网络装 置IO的真实端点名称转换该封包的端点名称。
在步骤S418中,转换模块150将封包传送至信令处理模块160,由其对该封包执行诸如协 议分析、控制以及判断等的信令处理。
在步骤S420中,确定模块140将封包传送至信号处理模块170,由其对该封包执行包括编 译码等的数字信号处理。
在步骤S422中,收发模块130根据转换后的该封包的虚拟网络参数将该封包转发至该客
户端30。在本实施例中,收发模块为用户线接口电路。
请参阅图5,所示为本发明另一种封包转发方法的流程图。
在步骤S502中,列表建立模块110建立一个内部列表以及至少一个外部列表,内部列表 用于记录网络装置10的多个真实网络参数,并且每一个外部列表用于记录网络装置10的每一 组虚拟网络参数,且多个真实网络参数与多个虚拟网络参数一一对应。在本实施例中,步骤 S502建立内部列表以及多个外部列表与图4中步骤S402的建立过程相同,在此不再赘述。
在步骤S504中,收发模块120接收客户端20传送的封包。在本实施例中,收发模块120为 用户线接口电路,封包具有第一真实网络参数、第二真实网络参数以及第三真实网络参数。 在本实施例中,收发模块120为网络接口卡,封包的第一真实网络参数为记载于该封包头部 (Header)字段中的IP地址,封包的第二真实网络参数为记载于该封包头部字段中的端口号 ,封包的第三真实网络参数为记载于该封包头部字段中的端点名称。
在步骤S506中,确定模块140根据内部列表以及多个外部列表确定封包是VoIP控制封包 ,还是VoIP数据封包。在本实施例中,确定模块140根据封包的第二真实网络参数判定该封 包是VoIP控制封包,还是VoIP数据封包。如果封包的端口号参数为2427,则该封包是VoIP控 制封包,如果封包的端口号不是2427,则该封包是VoIP资料封包。如果该封包是VoIP控制封 包,则进入步骤S508。如果该封包是VoIP数据封包,则进入步骤S512。
在步骤S508中,确定模块140将封包传送至信令处理模块160,由其对该封包执行信令处理。
在步骤S510中,转换模块150根据内部列表与多个外部列表之间的对应关系转换封包的 第三真实网络参数。在本实施例中,封包的第三真实网络参数为该封包头部字段中记载的该 封包的端点名称。详而言之,确定模块140根据封包的端点名称査询内部列表中对应的网络 装置IO的真实端点名称,其后确定模块140根据査询到的网络装置IO的真实端点名称査询多 个外部列表中对应的该网络装置10的虚拟端点名称,最后确定模块140根据査询到的网络装 置IO的虚拟端点名称转换该封包的端点名称。
在步骤S512中,确定模块140将封包传送至信号处理模块170,由其对该封包执行诸如编 译码的数字信号处理。
在步骤S514中,确定模块140根据内部列表与多个外部列表之间的对应关系转换该封包 的第一真实网络参数。在本实施例中,封包的第一真实网络参数为该封包头部字段中记载的 该封包的IP地址。详而言之,确定模块l40根据封包的IP地址査询内部列表中对应的网络装 置10的真实IP地址,其后确定模块140根据査询到的网络装置10的真实IP地址査询多个外部列表中对应的网络装置10的虚拟IP地址,最后确定模块140根据査询到的网络装置10的虚拟 IP地址转换该封包的IP地址。
在步骤S516中,确定模块140根据内部列表与多个外部列表之间的对应关系转换是VoIP 控制封包的封包或者是VoIP数据封包的封包的第二真实网络参数。在本实施例中,封包的第 二真实网络参数为该封包头部字段中记载的该封包的端口号。详而言之,确定模块140根据 封包的端口号査询内部列表中对应的网络装置10的真实端口号,其后确定模块140根据査询 到的网络装置10的真实端口号査询多个外部列表中对应的网络装置10的虚拟端口号,最后确 定模块140根据査询到的网络装置IO的虚拟端口号转换该封包的端口号。
在步骤S518中,收发模块130根据转换后的封包的网络参数将该封包转发至该网络 20。在本实施例中,收发模块为网络接口卡。
本发明之网络装置10及其封包转发方法首先透过列表建立模块110建立一个内部列表以 及至少一个外部列表,其后透过收发模块130接收客户端20以及网络30发送的封包,并传送 该封包,然后透过确定模块140根据该内部列表以及多个外部列表确定封包是否为VoIP封包 ,并进一步确定该VoIP封包是V()IP控制封包,还是VoIP数据封包,最后透过转换模块150在 VoIP封包是VoIP控制封包时,根据内部列表与多个外部列表之间的对应关系转换封包的网络 参数来提供给多个用户共同使用,从而提高网络设备利用率。
权利要求
1.一种网络装置,连接于客户端与网络之间,其特征在于,所述网络装置包括列表建立模块,用于建立一个内部列表以及至少一个外部列表,所述内部列表用于记录所述网络装置的多个真实网络参数,并且每一个外部列表用于记录所述网络装置的每一组虚拟网络参数,所述多个真实网络参数与所述多个虚拟网络参数一一对应;收发模块,用于接收所述客户端以及所述网络发送的封包,并传送所述封包;确定模块,用于根据所述内部列表以及所述多个外部列表确定所述封包是否为互联网协议语音封包,并进一步确定所述封包是互联网协议语音控制封包,还是互联网协议语音数据封包;以及转换模块,用于在所述封包是互联网协议语音控制封包时,根据所述内部列表与所述多个外部列表之间的对应关系转换所述封包的网络参数。
全文摘要
一种网络装置,包括列表建立模块、收发模块、确定模块以及转换模块。列表建立模块用于建立一个内部列表以及至少一个外部列表,内部列表用于记录网络装置的多个真实网络参数,每个外部列表用于记录网络装置的多个虚拟网络参数,真实网络参数与虚拟网络参数一一对应。收发模块用于接收客户端以及网络发送的封包,并传送该封包。确定模块用于根据内部列表以及多个外部列表确定该封包是否为互联网协议语音(VoIP)封包,并进一步确定VoIP封包是VoIP控制封包,还是VoIP数据封包。转换模块用于在VoIP封包是VoIP控制封包时,根据内部列表以及多个外部列表转换封包的网络参数。本发明还提供一种封包转发方法。上述网络装置及其封包转发方法可提高网络设备利用率。
文档编号H04L12/56GK101179489SQ20061020107
公开日2008年5月14日 申请日期2006年11月6日 优先权日2006年11月6日
发明者许世欣, 郭正智 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1