一种p2p音乐点播系统的补偿方法

文档序号:7697837阅读:140来源:国知局
专利名称:一种p2p音乐点播系统的补偿方法
技术领域
本发明涉及P2P (Peer-to-Peer,对等)网络流媒体技术领域,更具体地,涉 及一种P2P音乐点播系统的补偿方法。
背景技术
音乐点播应用越来越普及,但高质量音乐对带宽资源要求较高,传统C/S 模式不能满足应用需求,服务器很容易成为系统瓶颈;IP组播通过中间节点(peer) 分布式并发传输音频流的方式减轻服务器和网络负载,但由于部署原因,很难 在Internet上广泛实施;CDN采用代理缓存节点的方式将服务和内容推向网络 "边缘",但部署昂贵且存在与C/S模式类似的瓶颈;P2P流媒体通过利用普通节 点的资源为其它节点提供服务,在不改变现有网络配置的前提下具有良好的性 价比,是一种具有广泛应用前景的音频分发方法。
在基于P2P网络的音乐点播系统中,音乐源服务器是一个必不可少的部分, 它提供音乐源数据的分发。每个节点不仅可以从其它节点获取数据(大部分来 自于此),还会以一定方式从音乐源服务器获取数据,以保证较小启动时延和播 放连续性。把从音乐源服务器获取数据的方式叫做"补偿"。
现有P2P音乐点播系统中,主要采取一些简单的方式从音乐源服务器获取 音频数据,如在播放启动后,每当播放一音乐数据块时检査当前播放位置后一 段固定时间长度(如10s)的数据,如尚未完成下载,则直接从音乐源服务器获 取数据。这样的策略在一定程度上有益于播放连续性的提高,但存在一些严重的不足,主要是
1) 没有考虑减小启动时延的补偿策略。由于系统采取P2P模式,有可能先 下载到播放时间较后的音乐数据,而前面的音乐数据迟迟不能得到下载, 因而增大了启动时延;
2) 没有确定哪些数据真正需要补偿。有可能造成数据过多或过少补偿,过 多补偿会增大服务器压力,使音乐源服务器成为系统瓶颈,影响系统可 扩展性;过少补偿引起播放连续性能下降,经常出现停滞,影响用户体 验。
针对以上不足,有必要提出一种P2P音乐点播系统的补偿机制,以减小启 动时延和音乐源服务器压力并保证播放连续性。

发明内容
为了解决P2P音乐点播系统中存在的启动时延问题、播放连续性问题和系 统可扩展性问题,实现更好的音乐在线服务质量,本发明提出一种新的补偿方 法。
本发明提供的技术方案为P2P音乐点播系统的补偿方法一种P2P音乐点播 系统的补偿方法,所述P2P音乐点播系统中包括有音乐源服务器和节点,在P2P 音乐点播系统中设置目录服务器,音乐源服务器、目录服务器和节点基于集中 式的非结构化拓扑实现网络连接;所述目录服务器用于掌控全网节点信息并提 供资源节点定位,
P2P音乐点播系统中传输和播放的音乐数据文件被划分为等长字节的数据 块并依次从1编号,每个分块叫做1个chunk;
P2P音乐点播系统中的节点选择chunk并向拥有该chunk的其他节点请求下载;每个节点设置一个补偿空间,记为G,用于存放该节点可能需要补偿的chunk 编号;
根据节点启动播放音乐数据文件的情况,提供了启动补偿过程和播放补偿 过程,
所述启动补偿过程,用于针对播放启动和用户VCR操作之后尚未缓存所需 数据块的情况,通过预先设定的概率A从音乐源服务器请求播放时间靠前的 chunk,以减少启动时延;包括以下步骤,
步骤l.l,根据启动播放音乐数据文件需要缓存的连续chunk数目,确定需要补 偿的chunk编号;
步骤1.2,将需要补偿的chunk编号放入该节点的补偿空间 步骤1.3,如果从其他节点请求下载的chunk的编号不属于补偿空间Cp且补偿 空间G不为空,则以概率A:选择补偿空间G中编号最小的chunk向音乐源服 务器请求,并将此chunk编号从补偿空间G中移除;
步骤1.4,若播放启动需要缓存的连续chunk都已完成下载,播放启动,启动补 偿流程结束;
所述播放补偿过程,用于针对播放己经启动的情况,对来不及从其它节点 下载的chunk从音乐源服务器请求,以保证播放连续性;包括以下步骤, 步骤2.1,根据历史下载chunk所需的时间,预估从其他节点下载一个chunk所 需的时间;
步骤2.2,根据步骤2.1预估的时间判定当前播放位置后需要补偿的chunk; 步骤2.3,将需要补偿的chunk编号放入补偿空间d;
步骤2.4,将补偿空间C4中所有对应编号的chunk向音乐源服务器请求,然后清空补偿空间
步骤2.5,当前播放位置内容播放完成后,返回步骤2.2针对新的当前播放位置 进行补偿,直到整个音乐数据文件播放完成。
而且,所述P2P音乐点播系统中的节点选择chunk并向拥有该chunk的其 他节点请求下载,实现方式为节点周期性利用chunk选择算法选择chunk并向拥 有该chunk的节点请求,所述chunk选择算法基于顺序优先和稀有优先策略,并 给以顺序优先较高优先权。
而且,所述chunk的状态分为"未请求"、"从节点下载中"、"从服务器下载 中"和"已下载"四种,当某chunk下载超时,重新设定该chunk状态为"未请求"。
而且,所述播放补偿过程中的chunk下载时间预估,实现方法为根据节点 已下载的每块chunk的从请求到接收的时间差,求取离散值;预估时间7;/根据 下载情况触发其在离散值之间动态调整,且离散值被周期性或触发式更新。
本发明提供的音乐点播补偿机制包括有启动补偿,针对用户刚加入系统 或进行了 VCR操作的情形进行补偿;播放时补偿,针对音乐播放已经启动的情 形进行补偿。通过本发明提供的方案,可以减小音乐播放的启动时延、保证音 乐播放连续性,并可提高系统可扩展性,从而縮短用户等待时间,改善用户体 验。


图l为本发明的P2P音乐点播系统总体架构; 图2为本发明的节点缓存结构;
图3为本发明实施例的7;/ (chunk的请求到达预估时间)状态转移图。
具体实施方式
以下结合附图和实施例对本发明进行详细的描述。
如图1所示,本发明的P2P音乐点播系统主要由基于集中式的非结构化拓 扑实现网络连接的音乐源服务器、目录服务器和普通节点(如peerl、peer2、peer3、 peer4、 peer5、 peer6)组成,可由Internet实现网络互联。其中音乐源服务器负 责原始音乐数据文件的存储和分发;目录服务器负责管控所有参与节点信息, 包括每个节点的加入时间、播放位置、负载等情况,并帮助节点进行资源节点 的定位,普通节点从加入音乐点播系统开始即周期性地与目录服务器交互,使 得目录服务器能够及时更新用户信息。普通节点一般是普通音乐欣赏用户的个 人主机,负责资源请求并为其他用户提供下载服务,同时提供友好的用户接口, 通过接入Internet可以方便地实现进入P2P音乐点播系统,网内在线节点可以实 现节点交互。本发明采用集中式管理方案,即设置目录服务器维护所有参与节 点的信息,根据此全网节点信息进行资源节点定位,即返回给用户最优的提供 音乐数据资源的伙伴节点列表,其优点是能够快速响应定位,可以针对全网音 乐传输进行优化处理,使得整个P2P音乐点播系统具有高度的可控性。而现有 技术采用的分布式方案由于节点信息维护的分散,不适合集中管控和全网优化, 同时也增大了响应等待时间。本发明采用非结构化模式进行音频内容的分发, 即节点根据目录服务器返回的伙伴列表,自组织成为无固定拓扑结构的应用层 覆盖网络,每个节点可以为多个其他节点提供音乐数据,同时也可以从多个伙 伴节点下载所需的数据,降低了节点动态性产生的影响。而对于结构化模式下 的数据传输,由于需要维护一个应用层的链式或树状结构,其维护开销大且无 法解决节点的高动态性问题。
本发明将音乐数据源文件切分为等长的块且从1开始顺序编号,划分得到的每个数据分块记为1个chunk,是传输和播放的数据单位。节点采用滑动窗口 机制来缓存和播放音乐chimk。如图2所示,为了减少音频数据离散造成的影响, 节点不仅可以缓存最接近当前播放位置的音乐数据,也可以预先下载缓存其余 的次接近播放位置的音乐数据,以便为其它节点提供服务,减少稀有资源和离 散资源对音乐点播系统的影响。实施例中,节点请求数据与播放使用同一缓存, 分为两个部分,高优先级缓存和低优先级缓存,分别以符号^h、 A表示。5h緩 存最接近播放位置的音乐数据,A缓存剩下的次接近播放位置的部分音乐数据。
^h的长度为/h, A的长度为t,整个缓存长度为/b,则/h+^/b 。 Sh和A均
为定长缓存,/h与^的比值范围建议取1/6~1/2。设B(w)为节点缓存中第"块存 储区,从l开始编号,则&的缓存空间范围是5(1)、 5(2)........ S(/h), ^的
缓存空间范围是B(/h+1)、邵h+2)........B(/b)。若某时刻当前播放位置为音乐
数据文件的第m号chimk,此时缓存与音频数据文件各个chunk的对应关系如图
2所示,SH缓存空间内的风1)、风2)、.......风/H)依次存放第m、 m+l........
m+/H-l号chunk, ^缓存空间内的5(/h+l)、风/ +2)........ B (/B)依次存放第
m+/H、 m+/H+l、 ....... m+/B -1号chunk。缓存空间对应的chunk选择窗口
『h和『l随着音乐播放向右滑动。播放后的chuck存放在节点主机的本地磁盘 中,以便为其它节点提供音乐传输服务。
为了便于标明节点中的chunk下载情况,将chunk的状态分为 "Unrequested(未请求)"、"DownloadingF纖Peer (从节点下载中)"、 "DownloadingFromServer (从服务器下载中)"和"Downloaded (已下载)"四种。 "Unrequested(未请求)"表示尚未从其他节点或音乐源服务器请求下载;若下载超 时,则可自动重新设定状态为"Unrequested"。
"DownloadingFromPeer (从节点下载中)"表示已经向其他拥有该chuck的节点请求,处于下载过程中。 "DownloadingFromServer (从服务器下载中)"表示已经向音乐源服务器请求, 处于下载过程中。"Downloaded (已下载)"表示已经从其他节点或音乐源服务 器下载完该chuck,或者节点本地预先存有该chuck无需请求下载。
节点选择chunk并向拥有该chunk的其他节点请求下载节点,可有多种实现 方式。本发明提出实现方式为节点周期性利用chunk选择算法选择chunk并向拥 有该chunk的节点请求,所述chunk选择算法基于顺序优先和稀有优先策略,并 给以顺序优先较高优先权。为了便于说明节点拥有的chuck资源,节点使用位图 (BitMap)信息来表征自己拥有音乐数据文件分块的状态,'T'表示某chunk存 4在,"O"表示某chunk不存在。因为节点往往是根据用户需要,动态加入P2P 音乐点播系统的,节点加入系统后,首先向目录服务器请求资源节点,然后周 期性利用chunk选择算法选择chunk向资源节点请求下载;同时对于需要补偿的 chunk,通过服务器补偿。具体方式为,节点根据目录服务器返回的资源节点列 表周期性的向其请求位图信息,根据此位图信息选择合适的chunk进行下载, chunk选择算法为根据资源节点的BitMap信息,以预先设定的概率As在『h 内以顺序优先算法选择尚未请求的chunk并返回编号,以概率l-As在『l内以稀 有优先算法选择尚未请求的chunk并返回编号;当没有选择到可以下载的chunk 时,返回的chunk编号为0。具体顺序优先算法为在『z/内按照chunk编号依次 选择编号较小的未请求chunk进行请求,稀有优先算法为在f^内选择所有资源 节点中拥有数量最少的未请求chunk进行请求。本领域技术人员可以根据具体 需要采用软件方式实现顺序优先算法和稀有优先算法,本发明不予赘述。概率 /^建议取值范围为0.6~0.9,使得顺序优先选择算法有较高的优先级。或进行了 VCR操作(用户执行的拖动操作)
后,往往需要在缓存了当前播放位置后一段连续的音乐数据后,启动播放,然 后一边下载一边播放。从开始点播到完成播放的整个过程中,需要使用补偿机
制保障低启动延时、高播放连续性和低服务器压力,并提高P2P音乐点播系统 的可扩展性。为了进行及时有效的补偿,每个节点设置一个补偿空间,记为Cj, 用于存放该节点可能需要补偿的chunk编号。实现补偿时,可以使用一定的补 偿策略选择集合G中的chunk向音乐源服务器请求下载。本发明采用的补偿策 略是,根据节点启动播放音乐数据文件的情况,分别提供了启动补偿过程和播 放补偿过程。
启动补偿是针对不能够立即启动播放音乐数据文件的情况(一般是节点刚 加入系统或进行了 VCR操作),目的是减小启动时延,縮短用户等待时间。实 现策略为通过预先设定的概率A从音乐源服务器请求播放时间靠前的chimk。 记播放启动所需缓存当前播放位置后连续chunk的数目为N,则节点播放启动的
条件是缓存空间风l)、 5(2)........风N)为满。若风l)(也即当前播放位置)对
应的chunk编号为m,具体实现过程步骤如下
步骤l.l,根据启动播放音乐数据文件需要缓存的连续chunk数目,确定需要补 偿的chunk编号;
实施例是将chunk编号为m, m+l ,.......m+N-l且处于状态"Unrequested(未
请求)"的编号添加到补偿空间G中。若某时刻chunk编号为"e[m, m+N-l]的 chunk下载超时,重新添加到CU中。
步骤1.2,将需要补偿的chunk编号放入该节点的补偿空间G;
步骤1.3,如果从其他节点请求下载的chunk的编号不属于补偿空间C4,且补偿空间G不为空,则以概率a选择补偿空间G中编号最小的chunk向音乐源服 务器请求,并将此chunk编号从补偿空间CU中移除;
实施例中,为了避免同一个chunk从资源节点下载和从服务器补偿发生冲 突,记当前根据chunk选择算法选择的chunk号为a没有选择到可以下载的 chunk时,返回的chunk编号d为0。如果d不为0,向资源节点请求下载该chunk。 若dfCp则因为已经从选择节点下载,将此chunk从C^中移出。否则,如果 d不属于补偿空间Cp且补偿空间G不为空,则可以概率a选择C4内编号最 小的chimk,向音乐源服务器请求下载,并将此chunk编号补偿空间d中移除。 本发明建议,当d为O时,a=1;"不为0时,建议a的取值范围为0.5 0.7。 步骤1.4,若播放启动需要缓存的连续chunk都己完成下载,播放启动,启动补 偿流程结束;若播放启动需要缓存的连续chunk尚未全部完成下载,
实施例中,缓存了当前播放位置后连续的N个chunk后,播放启动,启动 补偿流程结束。
所述播放补偿过程,用于针对播放已经启动的情况,对来不及从其它节点 下载的chunk从音乐源服务器请求,以保证播放连续性。为了获得良好的播放 连续性能,需要相关chunk在播放截止时间前完成下载,以避免播放时停滞; 同时,不能过多地从音乐源服务器下载,以保持服务器压力不至于过大,提高 系统可扩展性能。本发明提供具体实现过程步骤如下
步骤2.1,根据历史下载chunk所需的时间,预估从其他节点下载一个chunk所 需的时间;
步骤2.2,根据步骤2.1预估的时间判定当前播放位置后需要补偿的chunk; 步骤2.3,将需要补偿的chunk编号放入补偿空间步骤2.4,将补偿空间G中所有对应编号的chunk向音乐源服务器请求,然后 清空补偿空间G;
步骤2.5,当前播放位置内容播放完成后,返回步骤2.2针对新的当前播放位置 进行补偿,直到整个音乐数据文件播放完成。
实施例中,设历史下载的z号chunk,其请求时刻tr(z),收到时刻ta(z),则 z号chunk的请求到达时间差为rra(z)= a力-"z)。预估从其他节点下载一个 chunk所需的时间,设结构为预估chunk请求到达时间差r/,设当前播放位置
为m号chunk,若m+財W, 2, 3.......)号chunk尚未请求,则播放到m+A:号
chunk会出现停滞的条件是 rraE〉A:*6/V (式l) 其中,6为chunk的数据块大小,r为播放码率,6^7r均为定值。预估chunk 请求到达时间差大于播放截止时间时,可能在播放前不能从资源节点收到此 chimk。因此,节点从音乐源服务器请求下载这些chunk,以减少或避免停滞。 设当前播放位置对应的chunk编号为m,补偿策略如下
1) 将满足条件(式1)且处于状态"Unrequested(未请求)"或 "DownloadingFromPeer (从节点下载中)"的chunk编号添加到补偿空间 C4中;
2) 把补偿空间C4内所有的chunk向音乐源服务器请求下载,然后清空补偿 空间G。特殊的是,从音乐源服务器下载过程中,若补偿空间C4中的 某个chunk从资源节点完成下载,则通知音乐源服务器取消该chunk的 下载;
3) 当前播放位置内容播放完成后,返回1)进行持续补偿,直到整个音乐数据文件播放完成。
要进行以上补偿策略,需要对(式i)中的r/值进行确定。由于无法对rraE
进行精确的估计,故实施例采取根据已经下载chunk的请求到达时间进行离散
值估计并在播放过程中动态调整的方式进行确定。具体确定方式如下
记已经下载的chunk数为仏7Uz)中的z取1 D,则7;/可取的离散值为 均值乙=
最小值rmin =min{rra(i),rra(2),...,7;a(D)}
最大值T隨=max{rra(l),rra(2),' JJD)}
定义集合1^{7;(力|7;(2)<7;},集合h-(7;(z)l7;(z)2rj;投集合l的
大小为/,集合H的大小为A, /+/2=0,贝lj
集合l的均值r^^X(47;(力eL
集合//的均值?;;:42X(z),;(z)eH
以上所得Tmin, 71, rM, rH和rm^就是7;/可取的5个离散值,且这5个 离散值和rj的取值都可在播放时动态调整。设r/调整周期为ru, ru内播放停 滞总数为c ,记ru内向音乐源服务器请求且请求前处于状态
"DownloadingFromPeer (从节点下载中)"的chunk总数为X,这些chunk能及 时从其它节点完成下载的总数为x,以下定义触发r/动态调整的事件
① 7;时间到,c>c。;
② z;时间到,c〈^c。且x/义〉/ ;
③ 7;时间到,c<=c。i jc/i<=/ 。
其中,7;建议取值30b/r 50b/r, C。建议取值3 5,建议取值0.7 0.8。如果在一段时间内出现多次播放停滞现象,
说明7^取值过小,需要补偿的chunk不满足条件(式l),未能添加到C4中,因
而不能及时补偿,此时应该增大7^;事件②表示如果在一段时间内向音乐源服
务器请求且请求前处于状态"DownloadingFromPeer (从节点下载中)"的chunk
能及时从其它节点获得的比例较大,且无停滞或停滞次数较小,说明r^取值过 大,补偿过度,此时应该减小rraE;事件③表示当停滞次数和及时获得比例都较 小时,r/保持不变。
为了使预估的7;/更为准确,可以更新离散值,即重新计算rmi。, 7i, rM, &和rmax。离散值更新可采用周期性更新和触发式更新两种方式
a) 预先设定更新周期7K建议取47; 67V,每当时间到时,重新计算离
散值,即周期性更新。
b) 如图3所示,当满足以下条件之一时,立即重新计算离散值,即触发式 更新
1) 7k^rn^且发生所述事件①;
2) 7^、rmin且发生所述事件②;
从条件可以看出,当r/为当前最大离散值且仍需增大或r/为当前最小离散值 且仍需减小时,引起离散值触发式更新。
因为求取所得rmin, 7i, rM, rH和rn^是由小到大,总结上述调整方案, 实施例的7;/动态调整的状态转移如图3所示当rraE= rmaj寸,发生事件①则 触发五个离散值的更新,发生事件②则rraE=rH;当7;/=^时,发生事件①则 7;aE=rmax,发生事件②则rraE= rM;当7;/=7^时,发生事件①则rraE= rH,发生事件②则rraE= Ti;当rraE= 7i时,发生事件①则rraE= rM,发生事件②则rraE= rmin;当7;/=7^时,发生事件①则rraE= 7i,发生事件②则触发五个离散值的 更新。7^为任意值时,若发生事件③7;/则保存不变。
播放补偿过程刚启动时或离散值更新后,需要设置?;/的初值,以根据(式 1)确定需要补偿的chimk,并进入动态调整流程,设定方式分别如下-
节点刚加入系统或VCR操作后,缓存了一定长度的音频数据,音乐播放启
动,此时播放补偿过程启动,为保证连续性初始化7;/=7^ ;
离散值更新后,设定r/为同等级的新离散值。例如如果更新前7^-7^x,
记离散值更新后新的最大值为rmax(new),则离散值更新后,初始化rraE=
r,(new)。
权利要求
1.一种P2P音乐点播系统的补偿方法,所述P2P音乐点播系统中包括有音乐源服务器和节点,其特征是在P2P音乐点播系统中设置目录服务器,音乐源服务器、目录服务器和节点基于集中式的非结构化拓扑实现网络连接;所述目录服务器用于掌控全网节点信息并提供资源节点定位,P2P音乐点播系统中传输和播放的音乐数据文件被划分为等长字节的数据块并依次从1编号,每个分块叫做1个chunk;P2P音乐点播系统中的节点选择chunk并向拥有该chunk的其他节点请求下载;每个节点设置一个补偿空间,记为CA,用于存放该节点可能需要补偿的chunk编号;根据节点启动播放音乐数据文件的情况,提供了启动补偿过程和播放补偿过程,所述启动补偿过程,用于针对播放启动和用户VCR操作之后尚未缓存所需数据块的情况,通过预先设定的概率pc从音乐源服务器请求播放时间靠前的chunk,以减少启动时延;包括以下步骤,步骤1.1,根据启动播放音乐数据文件需要缓存的连续chunk数目,确定需要补偿的chunk编号;步骤1.2,将需要补偿的chunk编号放入该节点的补偿空间CA;步骤1.3,如果从其他节点请求下载的chunk的编号不属于补偿空间CA,且补偿空间CA不为空,则以概率pc选择补偿空间CA中编号最小的chunk向音乐源服务器请求,并将此chunk编号从补偿空间CA中移除;步骤1.4,若播放启动需要缓存的连续chunk都已完成下载,播放启动,启动补偿流程结束;所述播放补偿过程,用于针对播放已经启动的情况,对来不及从其它节点下载的chunk从音乐源服务器请求,以保证播放连续性;包括以下步骤,步骤2.1,根据历史下载chunk所需的时间,预估从其他节点下载一个chunk所需的时间;步骤2.2,根据步骤2.1预估的时间判定当前播放位置后需要补偿的chunk;步骤2.3,将需要补偿的chunk编号放入补偿空间CA;步骤2.4,将补偿空间CA中所有对应编号的chunk向音乐源服务器请求,然后清空补偿空间CA;步骤2.5,当前播放位置内容播放完成后,返回步骤2.2针对新的当前播放位置进行补偿,直到整个音乐数据文件播放完成。
2. 如权利要求1所述的P2P音乐点播系统的补偿方法,其特征是所述P2P音 乐点播系统中的节点选择chunk并向拥有该chunk的其他节点请求下载,实现方 式为节点周期性利用chunk选择算法选择chunk并向拥有该chunk的节点请求, 所述chunk选择算法基于顺序优先和稀有优先策略,并给以顺序优先较高优先 权。
3. 如权利要求1或2所述的P2P音乐点播系统的补偿方法,其特征是:所述chunk 的状态分为"未请求"、"从节点下载中"、"从服务器下载中"和"已下载"四种,当 某chunk下载超时,重新设定该chunk状态为"未请求"。
4. 如权利要求1或2所述的P2P音乐点播系统的补偿方法,其特征是所述播放 补偿过程中的chunk下载时间预估,实现方法为根据节点已下载的每块chunk的从请求到接收的时间差,求取离散值;预估时间7;/根据下载情况触发其在 离散值之间动态调整,且离散值被周期性或触发式更新。
全文摘要
本发明属于P2P网络流媒体技术领域,更具体地,涉及一种P2P音乐点播系统的补偿方法。本发明提供的音乐点播补偿机制包括启动补偿,针对不能够立即启动播放音乐数据文件的情况进行补偿;播放时补偿,针对音乐播放已经启动的情形进行补偿。通过本发明提供的方案,可以减小音乐播放的启动时延、保证音乐播放连续性,并可提高系统可扩展性,从而缩短用户等待时间,改善用户体验。
文档编号H04L29/08GK101626400SQ200910063578
公开日2010年1月13日 申请日期2009年8月11日 优先权日2009年8月11日
发明者砥 吴, 丹 喻, 程文青, 陈京文 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1