服务器、客户端装置及其控制方法
【专利摘要】本发明提供一种服务器、客户端装置及其控制方法。服务器包括:通信器,与客户端装置进行通信;控制器,如果从客户端装置接收到针对先前发送的实时数据包的重发请求,则重复重发先前发送的实时数据包。
【专利说明】服务器、客户端装置及其控制方法
[0001]本申请要求于2012年10月19日提交到韩国知识产权局的第10_2012_0116896号韩国专利申请的优先权,其公开通过引用全部合并于此。
【技术领域】
[0002]与示例性实施例一致的设备和方法涉及一种服务器、客户端装置及其控制方法,更具体地讲,涉及一种发送实时数据包的服务器、客户端装置及其控制方法。
【背景技术】
[0003]一般而言,在无连接协议(诸如,用户数据报协议(UDP))中,根据分组网络(packetnetwork)的状况在分组网络中可能发生包丢失。具体地,在实时视频传输应用中,包丢失直接劣化图像质量。可使用诸如应用层前向纠错(AL-FEC)或包重发的方法来减少包丢失造成的图像质量的恶化。
[0004]如果通过使用FEC方法执行恢复,则大量的FEC包被发送以提高丢包恢复率,从而增加了施加到网络的负载。此外,在由于网络上的负载而发生包丢失的环境中,FEC方法增加了施加到网络的额外负载。作为结果,FEC方法并不合适。
[0005]在包重发方法中,仅丢失的包被选择性地重发。因此,在对施加到网络的负载没有很大影响的情况下,有效地恢复丢失的包。然而,由于需要时间来请求重发并重发丢失的数据包,因此,与Al-FEC相比,当恢复丢失的包时,会发生时间延迟。
[0006]当发送诸如视频通话或视频会议的实时视频时,时间延迟操作为妨碍体验质量(QoE)的元素。因此,使用包重发技术并不合适。然而,在传输时间短的网络(诸如,局域网络)的环境中,在视频通话或视频会议中的管理时间限制内使用包重发技术,从而有效恢复丢失的包。
[0007]然而,在现有重发方法中的客户端等待超时时间段,直到客户端发送一个重发请求消息并接收到重发的包。因此,如果请求的重发包或重发的数据包丢失,则客户端在经过预定时间后知道重发是否失败。在系统允许的时间延迟大的应用(例如,视频点播(VOD))中,再次请求重发以尝试恢复包。可选择地,请求多个重发直到成功恢复丢失的包。然而,在强调实时性能的应用(如视频通话或视频会议)中,如果通过一次重发请求恢复失败,则再次请求重发以恢复包。在这种情况下,恢复需要的时间变得更长,因此,会发生诸如屏幕停止等的现象,从而使QoE或用户的反应更糟。
【发明内容】
[0008]示例性实施例解决至少上述问题和/或缺点以及以上未描述的其它缺点。另外,示例性实施例不需要克服上述的缺点,并且示例性实施例可不克服任何上述的问题。
[0009]示例性实施例提供一种服务器、客户端装置及其控制方法。
[0010]根据示例性实施例的一方面,提供一种将实时数据包发送到客户端装置的服务器。所述服务器可包括:通信器,用于与客户端装置进行通信;控制器,用于如果从客户端装置接收到针对之前发送的实时数据包的重发请求,则重复重发之前发送的(或先前发送的)实时数据包。
[0011]可按照重复的重发请求包形式来接收重发请求。
[0012]通信器可根据预设事件从客户端装置接收关于发送包丢失率的信息。控制器可基于关于发送包丢失率的信息来确定之前发送的实时数据包的重复发送的数量。
[0013]控制器可基于关于预设目标丢包恢复率和发送包丢失率的信息来确定之前发送的实时数据包的重复发送的数量。
[0014]实时数据包可以是包括视频通话图像的包。
[0015]根据示例性实施例的另一方面,提供一种从服务器接收实时数据包的客户端装置。所述客户端装置可包括:通信器,用于与服务器进行通信;确定器,用于确定从服务器发送的实时数据包是否丢失;控制器,用于如果确定实时数据包丢失,则将针对丢失的实时数据包的重发请求包重复发送到服务器。
[0016]客户端装置可还包括:网络状况测量器,用于测量网络状况。控制器可根据测量的网络状况计算发送包丢失率,并且基于计算出的发送包丢失率来确定重发请求包的重复发送的数量。
[0017]实时数据包可以是包括视频通话图像的包。
[0018]根据示例性实施例的另一方面,提供一种包括客户端装置和将实时数据包发送到客户端装置的服务器的通信系统。所述通信系统可包括:客户端装置,根据从服务器发送的实时数据包是否丢失来重复发送针对丢失的实时数据包的重发请求包;服务器,从客户端装置接收重发请求包来重复发送实时数据包。
[0019]客户端装置和服务器可基于发送包丢失率分别确定重发请求包的重复发送的数量和实时数据包的重复发送的数量。
[0020]根据示例性实施例的另一方面,提供一种将实时数据包发送到客户端装置的服务器的控制方法。所述控制方法可包括:从客户端装置接收针对之前发送的实时数据包的重发请求;重复重发之前发送的实时数据包。
[0021]可按照重复的重发请求包形式来接收重发请求。
[0022]所述控制方法可还包括:根据预设事件从客户端装置接收关于发送包丢失率的信息;基于关于发送包丢失率的信息,确定之前发送的实时数据包的重复发送的数量。
[0023]可基于关于预设目标丢包恢复率和发送包丢失率的信息来确定之前发送的实时数据包的重复发送的数量。
[0024]实时数据包可以是包括视频通话图像的包。
[0025]根据示例性实施例的另一方面,提供一种从服务器接收实时数据包的客户端装置的控制方法。所述控制方法可包括:确定从服务器发送的实时数据包是否丢失;如果确定实时数据包被丢失,则将针对丢失的实时数据包的重发请求包重复发送到服务器。
[0026]所述控制方法可还包括:测量网络状况;根据测量的网络状况计算发送包丢失率,并且基于计算出的发送包丢失率来确定重发请求包的重复发送的数量。
[0027]实时数据包可以是包括视频通话图像的包。
[0028]根据示例性实施例的另一方面,提供一种包括客户端装置和将实时数据包发送到客户端装置的服务器的通信系统的控制方法。所述控制方法可包括:确定实时数据包是否丢失;基于从客户端装置发送到服务器的实时数据包是否丢失,将针对丢失的实时数据包的重发请求包重复发送到服务器;如果服务器从客户端装置接收到重发请求包,则重复重发实时数据包。
[0029]所述控制方法可还包括:基于发送包丢失率确定重发请求包的重复发送的数量和实时数据包的重复发送的数量。
[0030]如上所述,根据示例性实施例,重复的重发请求和重发数据包可被用于发送对时间延迟敏感的媒体(诸如,视频),以提高丢包恢复率。
【专利附图】
【附图说明】
[0031]通过参照附图描述特定示例性实施例,上述和/或其它方面将更加清楚,其中:
[0032]图1A和图1B是示出根据示例性实施例的通信系统的示图;
[0033]图2A和图2B是示出根据各种示例性实施例的服务器的结构的框图;
[0034]图3A和图3B是示出根据示例性实施例的客户端装置的结构的框图;
[0035]图3C是示出根据示例性实施例的客户端装置的结构的示图;
[0036]图4是示出存储在存储器中的软件配置的示图;
[0037]图5A、图5B和图6是示出根据各种示例性实施例的服务器和客户端的操作之间的关系的不图;
[0038]图7A到图7C是示出根据示例性实施例的提高丢失恢复率的效果的曲线图和表;
[0039]图8是示出根据示例性实施例的基于网络包丢失率选择用于满足系统所需的重发成功率的重发请求包的数量“η”和重发数据包的数量“m”的曲线图;
[0040]图9A和图9B是示出根据示例性实施例的服务器和客户端装置的控制方法的流程图;
[0041]图10是详细示出根据示例性实施例的客户端装置的操作的流程图;
[0042]图11是详细示出根据示例性实施例的服务器的操作的流程图。
【具体实施方式】
[0043]参照附图来更加详细地描述示例性实施例。
[0044]在下面的描述中,即使在不同的附图中,相同的附图参考标号也被用于相同的元件。提供在描述中被限定的内容(诸如详细的结构和元件)以帮助对示例性实施例的全面理解。因此,明显地,可在没有那些明确限定的内容的情况下实现示例性实施例。此外,因为公知的功能或结构会用不必要的细节模糊示例性实施例,所以不对其进行详细描述。
[0045]图1A和图1B是示出根据示例性实施例的通信系统的示图。
[0046]参照图1A,通信系统包括服务器100和客户端装置200。这里,客户端装置200可以是如图1A中所示的便携式电话(具体地,智能电话),但是由于客户端装置并不限于智能手机,因此这仅是示例性实施例。因此,客户端装置200可被实现为各种类型的电子装置,诸如,电视机(TV)、台式个人计算机(PC)、笔记本电脑、平板PC等。
[0047]服务器100和客户端装置200可根据客户端200的实现形式,通过局域网(LAN)和互联网、通过诸如3G或4G的移动通信网络或通过短距离无线通信方法(诸如,蓝牙、近场通信(NFC)、射频识别(RFID)、Zigbee等)彼此连接。[0048]服务器100将实时数据包发送到客户端装置200。在这种情况下,可使用实时传输协议(RTP)/RTP控制协议(RTCP)来发送实时数据包。然而,可应用支持实时通信的任何协议。
[0049]根据RTP/RTCP,音频或视频源被采样并被转换为数字格式,采样的数据被封装在RTP包中,RTP包被封装在网络传输协议(诸如,用户数据报协议(UDP ))中。网络传输协议被封装在IP包中,IP包被封装在连接层协议中,连接层协议被发送。
[0050]可从另一客户端装置200接收从服务器100发送到客户端装置200的实时数据包。例如,实时数据包可以是包括从视频通话的对方装置接收到的视频通话图像的实时图像包。现在将参照图1B描述根据另一示例性实施例的通信系统。
[0051]图1B是示出根据另一示例性实施例的通信系统的示图。
[0052]参照图1B,通信系统可被实现用于提供交互服务(例如,视频通话服务)。这里,视频通话服务是指参与者在能看到彼此的面部的同时实时地彼此交互的服务。在本示例性实施例中,视频通话服务包括两个参与者在看到彼此的面部的同时实时地彼此交互的视频通话服务和三个参与者在看到彼此的面部的同时实时地彼此交互的视频通话服务。然而,示例性实施例并不限于此,多于三个的参与者可在视频通话中交互。
[0053]如果交互服务是视频通话服务,则第一客户端装置200-1和第二客户端装置200-2可被实现为各种类型的装置(诸如,包括摄像头和/或麦克风的智能电话、平板计算机、笔记本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航系统、数字TV
-rf* ) O
[0054]如果根据第一客户端装置200-1的请求,视频通话服务开始,则第一客户端装置200-1和第二客户端装置200-2通过服务器100分别将视频通话包发送到其它客户端装置。
[0055]详细地,第一客户端装置200-1将实时产生的视频通话包发送到服务器100,服务器100将所述视频通话包发送到第二客户端装置200-2。
[0056]在这种情况下,第二客户端装置200-2接收记录有指示产生顺序的序号的视频通话包,并且根据所述序号来确定来自第一客户端装置200-1的视频通话包是否丢失。
[0057]如果确定从第一客户端装置200-1发送的视频通话包丢失,则第二客户端装置200-2将用于请求丢失的视频通话包的重发的重发请求包发送到服务器100。在这种情况下,如果服务器100接收到重发请求包,则服务器100将请求重发的视频通话包重发到第二客户端装置200-2。
[0058]根据示例性实施例,可重复发送从第二客户端装置200-2发送到服务器100的重发请求包和从服务器100发送到第二客户端装置200-2的视频通话包。稍后将更详细地描述第二客户端装置200-2和服务器100的结构。
[0059]图2A和图2B是示出根据各种示例性实施例的服务器100的结构的框图。
[0060]在图2A中示出的本示例性实施例的服务器100包括通信器110、存储器120和控制器130。
[0061]通信器110与客户端装置200进行通信来发送和接收各种类型的数据包。
[0062]可通过LAN和互联网、通过诸如3G或4G的移动通信网络或通过短距离无线通信方法(诸如,蓝牙、NFC、Zigbee等)将通信器100连接到客户端装置200。
[0063]详细地,通信器100将实时数据包发送到客户端装置200。这里,实时数据包可以是如参照图1描述的视频通话包或视频会议包,但不限于此。
[0064]通信器100从客户端装置200接收针对实时数据包的重发请求。重发请求可按照包形式来接收,并且在下文中将被称为重发请求包。这里,重发请求包可包括关于作为将被重发的对象的数据包的标识信息(例如,包序号)。标识信息可被用于感测包丢失或包重排序。
[0065]存储器120存储从另一客户端装置(未示出)接收到的实时数据包。例如,如果从另一客户端装置接收到实时视频通话包,则存储器120可临时存储预定量的实时视频通话包预定时间,以便实时视频通话包被重发到客户端装置200。
[0066]控制器130控制服务器100的整体操作。
[0067]详细地,如果从另一客户端装置接收到实时数据包,则控制器130控制将实时数据包发送到客户端装置200。
[0068]如果接收到针对发送到客户端装置200的实时数据包的重发请求包,则控制器130从存储器120读取相应的实时数据包,并且将相应的实时数据包重发到客户端装置200。
[0069]具体地,控制器130将通过接收到的重发请求包请求的实时数据包重复重发到客户端装置200。换句话说,控制器130可根据客户端装置200的重发请求来重发相同类型的至少两个或更多实时数据包。在这种情况下,可根据如稍后将描述的随后的示例性实施例中的描述的网络的状况,来预设或确定重复地重发的数据包的数量。因此,重发的实时数据包将到达客户端装置200的概率可增加。
[0070]从客户端200接收到的重发请求包可被重复接收。这考虑到发送包丢失率可能针对重发请求被同样应用,稍后将参照客户端装置200的框图详细描述发送包丢失率。
[0071]根据另一示例性实施例,通信器110可根据预设事件从客户端装置200接收关于发送包丢失率的信息。换句话说,客户端装置200可基于包括在从服务器100接收到的实时数据包中的序号来计算发送包丢失率,并且将关于发送包丢失率的信息发送到服务器100。这里,预设事件可以是周期性的时间间隔,但是不限于此。例如,由客户端装置200计算的发送包丢失率的改变事件等可被包括在预设事件中。
[0072]在这种情况下,控制器130可基于关于接收到的发送包丢失率的信息来确定将被重发的实时数据包的重复发送的数量。
[0073]例如,如果接收到的发送包丢失率高,则控制器130可增加实时数据包的重复重发的数量。如果接收到的发送包丢失率低,则控制器130可减少实时数据包的重复重发的数量。
[0074]控制器130还可基于关于预设目标丢包恢复率和发送包丢失率的信息来确定之前发送的实时数据包的重复重发的数量。这里,预设目标丢包恢复率指由通信系统定为目标的包恢复率。换句话说,重复重发的数量可不被确定用于恢复所有丢失的实时数据包,但是可被确定用于满足由通信系统定为目标的包恢复率。因此,可防止由于重复重发的数量增加而不必要地增加网络的负载率。
[0075]在上述示例性实施例中,从客户端装置200接收发送包丢失率。然而,服务器100可直接测量网络的状况来测量发送包丢失率。
[0076]在图2B中示出的另一示例性实施例的服务器100’包括通信器110、存储器120、控制器130和网络状况测量器140。将省略对图2B中与图2A的元件相同的元件的详细描述。
[0077]网络状况测量器140测量服务器100’和客户端装置200之间的通信网络状况。
[0078]详细地,网络状况测量器140可基于从客户端装置200接收到的重发请求包的接收的数量来测量通信网络状况。例如,如果当实时数据包被发送到客户端装置200五次时,重发请求包被接收到一次,则网络状况测量器140可测量或确定发送包丢失率是20%。
[0079]在这种情况下,控制器130可基于关于测量的发送包丢失率的信息来确定将被重发的实时数据包的重复发送的数量。
[0080]详细地,控制器130可基于预设目标丢包恢复率和测量的发送包丢失率来确定将被重发的实时数据包的重复发送的数量。
[0081]控制器130可根据由网络状况测量器140测量的网络状况来计算包发送的时间延迟率,并且可基于计算出的时间延迟率来确定之前发送的实时数据包的重发。例如,如果时间延迟率高,并且因而确定在通过包重发来恢复丢失的包的处理中实时性能相当低,则相应的包可不被重发,而是可被处理为丢失。
[0082]在上述示例性实施例中,一个数据包被丢失并且被重新请求。然而,即使数据包被毁坏或丢失(即,数据包连续丢失),也可应用另一示例性实施例。
[0083]图3A到图3C是示出根据另一示例性实施例的客户端装置的结构的框图。
[0084]图3A是示出根据示例性实施例的客户端装置200的结构的框图。
[0085]参照图3A,客户端装置200包括通信器210、确定器220和控制器230。
[0086]通信器210与服务器100进行通信来发送和接收各种类型的数据包。在这种情况下,通信器210可通过如上所述的各种类型的通信方法与服务器100进行通信。
[0087]详细地,通信器210从服务器100接收实时数据包,或者将实时数据包发送到服务器100。这里,实时数据包可以是如参照图1所述的视频通话包或视频会议包,但不限于此。
[0088]通信器210在控制器230的控制下将重发请求包发送到服务器100。
[0089]确定器220确定从服务器100发送的实时数据包是否丢失。
[0090]详细地,确定器220基于接收到的实时数据包的序号来确定先前发送的数据包是否丢失。例如,如果先前接收到的包的序号是n,并且当前接收到的包的序号是n+2,则确定器220可确定具有序号n+1的包丢失。
[0091]控制器230控制客户端装置200的整体功能。
[0092]具体地,如果确定器220确定从服务器100发送的实时数据包丢失,则控制器230基于丢失的实时数据包将重发请求包发送到服务器100。
[0093]在这种情况下,控制器230重复发送重发请求包。在这种情况下,重发请求包的重复发送的数量可被设置为默认,或可根据如稍后描述的网络状况来确定。
[0094]因此,虽然当被发送时重复发送的重发请求包中的一个丢失,但是其它重发请求包到达服务器100,从而增加了重发请求将被发送到服务器100的概率。
[0095]图3B是示出根据另一示例性实施例的客户端装置200’的结构的框图。
[0096]参照图3B,客户端装置200’包括通信器210、确定器220、控制器230和网络状况测量器240。在此将省略对图3B中与图3A的元件相同的元件的详细描述。
[0097]网络状况测量器240测量服务器100和客户端装置200’之间的通信网络状况。[0098]详细地,网络状况测量器240基于从服务器100接收到的实时数据包是否丢失来测量通信网络状况。例如,如果从服务器100接收到实时数据包四次,并且实时数据包丢失一次,则网络状况测量器240可测量出发送包丢失率是20%。
[0099]在这种情况下,控制器230基于关于测量的发送包丢失率的信息来确定重发请求包的重复发送的数量。
[0100]图3C是示出根据示例性实施例的图3B的客户端装置200’的结构的框图。将省略对图3C中与图3A和图3B的元件相同的元件的详细描述。然而,图3C示出客户端装置200’的详细元件。根据示例性实施例,可省略或改变图3C的一些元件,或者可添加其它元件。例如,客户端装置200’可还包括:从全球定位系统(GPS)卫星接收GPS信号以计算客户端装置200’的当前位置的全球定位系统(GPS)接收器(未示出)、接收并处理数字多媒体广播(DMB)信号的DMB接收器(未示出)等。
[0101]通信器210是根据各种类型的通信方法来与各种类型的外部装置进行通信的元件。通信器210包括各种类型的芯片,诸如,W1-Fi芯片211、蓝牙芯片212、无线通信芯片213、通用串行总线(USB)芯片214等。
[0102]W1-Fi芯片211和蓝牙芯片212分别通过W1-Fi方法和蓝牙方法执行通信。无线通信芯片213指根据各种类型的通信标准(诸如,IEEE、Zigbee、第三代(3G)、第三代合作伙伴项目(3GPP)、长期演进(LTE)等)来执行通信的芯片。USB芯片214与各种类型的外部装置进行通信,或通过USB线缆来执行充电。通信器210可还包括使用各种RF-1D频带(诸如,135KHz、13.56MHz、433MHz、860MHz 到 960MHz、2.45GHz 等)之中的 13.56MHz 的带宽来根据NFC方法进行操作的NFC芯片。
[0103]可由存储在存储器250中的程序来执行控制器230的上述操作。存储器250可存储各种类型的数据,诸如,用于驱动客户端装置200’的操作系统(0/S)软件模块、各种类型的应用、当执行应用时输入或设置的各种类型的数据、内容等。
[0104]稍后将参照图4描述存储在存储器250中的各种类型的软件模块。
[0105]用户界面(UI) 260接收各种类型的用户命令。例如,UI260可接收用于执行与服务器100的通信的用户命令等。
[0106]音频处理器270对从服务器100接收到的音频数据包进行处理。例如,音频处理器270可针对从服务器100接收到的音频数据包执行拆包。音频处理器270可针对各种类型的音频信号执行解码、放大、噪声滤波等。
[0107]视频处理器280对从服务器100接收到的视频数据包进行处理。例如,视频处理器280可针对从服务器100接收到的视频数据包执行各种类型的图像处理,诸如,拆包、解码、缩放、噪声滤波、帧率转换、分辨率改变等。
[0108]输出部件290输出由音频处理器270和/或视频处理器280处理的音频数据和/或视频数据。因此,输出部件290可包括显示器(未示出)和扬声器(未示出)。
[0109]控制器230通过使用存储在存储器250中的各种类型的程序来控制客户端装置200’的整体操作。
[0110]例如,控制器230可执行存储在存储器250中的视频通话应用来形成并显示视频通话执行屏幕,或可播放存储在存储器250中的各种类型的内容。
[0111]详细地,控制器230包括随机存取存储器(RAM)231、只读存储器(R0M)232、主中央处理器(CPU) 233、图形处理器234、第一接口 235-1到第η接口 235_η、总线236。
[0112]RAM231、R0M232、主 CPU233、图形处理器 234、第一接口 235-1 到第 η 接口 235_η 通过总线236彼此连接。
[0113]如上所述,第一接口 235-1到第η接口 235_η被连接到各种类型的元件。第一接口 235-1到第η接口 235-η中的一个可以是通过网络连接到服务器100的网络接口。
[0114]主CPU233访问存储器250以通过请求存储在存储器250中的0/S来执行启动。主CPU233通过使用存储在存储器250中的各种类型的程序、内容和数据来执行各种类型的操作。
[0115]R0M232存储用于启动通信系统等的命令集。如果输入打开命令,并且从而供电,则主CPU233将存储在存储器250中的0/S复制到RAM231中,并且根据存储在R0M232中的命令来运行0/S以启动通信系统。如果启动被完成,则主CPU233将存储在存储器250中的各种类型的应用程序复制到RAM231中,并且执行复制到RAM231中的应用程序来执行各种类型的操作。
[0116]图形处理器234通过使用计算器(未示出)和渲染器(未示出)来产生包括各种类型的对象(诸如,图标、图像、文本等)的屏幕。
[0117]图4是示出存储在存储器中的软件配置的框图。
[0118]参照图4,存储器250存储包括基本模块251、感测模块252、通信模块253、呈现模块254、web浏览器模块255和服务模块256的软件。
[0119]基本模块251对从客户端装置200的硬件发送的信号进行处理,并且将处理后的信号发送到上层模块。基本模块251包括存储模块251-1、安全模块251-2和网络模块251-3。存储模块251-1是管理数据库(DB)或注册表的程序模块。主CPU233通过使用存储模块251-1来访问存储器250的DB以读取各种类型的数据。安全模块251-2是支持硬件的认证、许可、安全存储等的程序模块。网络模块251-3支持网络连接,并且包括DNET模块、UPnP模块等。
[0120]感测模块252收集来自各种类型的传感器的信息,并且解析并管理收集到的信息。感测模块252可包括面部识别模块(未示出)、语音识别模块、动作或手势识别模块、近场通信(NFC)识别模块(未示出)、旋转识别模块、触摸识别模块等。
[0121]通信模块253与外部装置执行通信。通信模块253可包括消息模块253_1 (诸如,视频通话程序、信使程序、短消息服务(SMS)和多媒体消息服务(丽S)程序、电子邮件程序等)以及包括呼叫信息聚合程序模块、VoIP模块等的电话模块253-2。
[0122]呈现模块254形成显示屏幕。呈现模块254包括用于播放和输出多媒体内容的多媒体模块254-1和用于执行UI和图形处理的UI渲染模块254-2。多媒体模块254-1可包括播放器模块(未不出)、摄像机模块(未不出)、声音处理器模块(未不出)等。因此,多媒体模块254-1播放各种类型的多媒体内容,产生并显示屏幕,并且播放声音。UI渲染模块254-2可包括图像合成器模块、坐标组合器模块、Xll模块、2维(2D) /3维(3D) UI工具包等。图像合成器模块组合图像,坐标组合器模块组合并产生将显示图像的屏幕上的坐标。Xll模块从硬件接收各种类型的事件,2D/3D UI工具包提供用于形成2D或3D UI的工具。
[0123]web浏览器模块255执行web浏览以访问web服务器。web浏览器模块255可包括各种类型的模块,诸如,形成web页面的web视图模块、执行下载的下载代理模块、书签模块、webkit模块等。
[0124]服务模块256包括用于提供各种类型的服务的各种类型的应用。详细地,服务模块256可包括各种类型的程序模块,诸如,导航程序、内容播放程序、游戏程序、电子书程序、日历程序、报警管理程序、其它微件等。
[0125]在图4中示出了各种类型的程序模块,但是可根据客户端装置的类型和特征而省略、改变或添加各种类型的程序模块中的一些程序模块。例如,可还包括基于位置的模块来与诸如GPS芯片的硬件一起操作,以支持基于位置的服务。
[0126]图5A、图5B和图6是示出根据各种示例性实施例的服务器100和客户端200的操作之间的关系的示图。
[0127]一般地,如果网络的包丢失率增加,则丢失的包的数量增加,从而重发请求包的数量和用于恢复丢失的包的重发数据包的数量增加。在使用包重发方法的强调实时性能的应用中,系统允许的延迟时间短,因此仅请求一次重发。在这种情况下,如果重发失败,则重发请求包可能丢失或重发数据包可能丢失。因此,为了通过重发增加恢复率,将降低重发请求包将丢失的概率和重发数据包将丢失的概率。
[0128]图5A是示出根据示例性实施例的降低重发请求包的丢失概率的方法的示图。
[0129]如图5A中所示,在相同类型的至少两个或更多重发请求包被同时重复发送以降低重发请求包的丢失概率的情况下,重发请求包中的一个丢失。即使在这种情况下,重发请求包也到达服务器100,从而成功执行重发。
[0130]图5B是示出根据示例性实施例的降低重发数据包的丢失概率的方法的示图。
[0131]如图5B所示,相同类型的至少两个或更多重发数据包被重复发送。因此,虽然重发数据包中的一个丢失,但是另一个将成功到达客户端装置200的概率变得更高。
[0132]如图5A和图5B中所示,重发请求包和重发数据包被重复发送以提高重发成功率。
[0133]图6是示出根据另一示例性实施例的同时降低重发请求包和重发数据包的丢失概率的方法的示图。
[0134]根据本示例性实施例,为了降低数据包的重发失败率,如图6中所示,重发请求包被发送“η”次,重发数据包被发送“m”次。在这种情况下,现在将描述丢包恢复率。
[0135]如果网络中的包丢失率(即,包将丢失的概率)是“P”,则从客户端装置200获得的重发请求包一次或多次到达服务器100的概率如下面的等式I中所示:
[0136]重发请求包到达服务器一次或多次的概率=1-Pn...(I)
[0137]另外,从服务器100获得的重发数据包一次或多次到达客户端装置200的概率如下面的等式2中所示:
[0138]将从服务器获得的重发数据包到达客户端装置一次或多次的概率=
[0139](l-pm)
[0140]...(2)
[0141]因此,基于等式I和等式2,包重发将成功的概率(S卩,丢包恢复率)如下面的等式3中所示:
[0142]丢恢复率=(l-pn)(1-Pm)...(3)
[0143]在这种情况下,假设网络时间延迟是允许重发的程度,并且假设包丢失随机发生。
[0144]图7A到图7C是示出根据示例性实施例的提高丢包恢复率的效果的曲线图和表。[0145]图7A是示出用于帮助理解示例性实施例的包丢失率和丢包恢复率之间的关系的示图。
[0146]如图7A中所示,随着网络包丢失率增加,包重发将成功的概率(S卩,丢包恢复率)降低。
[0147]图7B和图7C分别是示出根据各种示例性实施例的针对重发请求包和重发数据包的数量的包丢失率和丢包恢复率之间的关系的曲线图和表。
[0148]如图7B和图7C中所示,如果网络包丢失率是5%, n=l且m=l (重发请求包的数量是1,并且重发数据包的数量是1),则丢包恢复率大约是90.25%。这表示9.75%的丢失的包未被恢复。然而,n=2且m=2,大约99.5%的丢失的包可被恢复。如果n=3且m=3,则丢包恢复率可以是大约99.98%。换句话说,如果网络包丢失率增加,则重发将成功的概率或丢失的包的恢复率可大大提高(即,重发请求包的数量“η”或重发数据包的数量“m”增加)。
[0149]根据重发方法,重复的重发请求包或重发数据包被重复使用以提高丢失的包的恢复率,但是网络负载也增加。另外,随着重复重发的数据包的数量增加,丢失的包的恢复率增加,但是网络负载进一步增加。例如,如果网络包丢失率是5%且重发数据包的数量是1,则增加大约5% (S卩,IX5%)的网络负载。如果重发数据包的数量是3,则增加大约15% (SP,3X5%)的网络负载。如果重复重发被使用,则如上面的等式3,丢包恢复率将被保持。为了这个目的,随着网络包丢失率“P”增加,重复的重发系数“η”和“m”增加。这是因为当网络包丢失率低时,用于保持期望的恢复率的重发数据包的数量低,从而降低网络负载。
[0150]因此,周期性地测量网络的包丢失率,并且通过使用包丢失率调整将被重复重发的包的数量,以降低网络的负载。换句话说,如果网络的包丢失率低,则使用重发请求包的小数量“η”和重发数据包的小数量“m”。如果网络的包丢失率高,则使用重发请求包的较大数量“η”和重发数据包的较大数量“m”。
[0151]图8是示出根据示例性实施例的基于网络包丢失率来选择用于满足系统所需的重发成功率的重发请求包的数量“η”和重发数据包的数量“m”的曲线图。
[0152]如果网络包丢失率低,则数量“η”和“m”均为I。如果网络丢失率增加,并且因而不满足系统所需的丢失恢复率,则n=2且m=l。如果网络包丢失率进一步增加,则如图8中所示,使用较大数量的“η”和“m”以满足系统所需的丢失恢复率。可根据网络的负载限制或调整所述数量“η”和“m”。
[0153]图9A和图9B是示出根据示例性实施例的服务器和客户端装置的控制方法的流程图。
[0154]根据图9A中示出的控制方法,在操作S911,服务器100从客户端装置200接收针对之前发送的(或先前发送的)实时数据包的重发请求。这里,可按照重复的重发请求包形式来接收重发请求,并且重发请求可包括关于作为请求重发的对象的包的标识信息(例如,包序号)。
[0155]在操作S912,服务器100将与重发请求相应的之前发送的实时数据包重复地重发到客户端装置200。
[0156]服务器100可还根据预设事件从客户端装置200接收关于发送包丢失率的信息。所述预设事件可以是预设时间间隔,但是不限于此。在这种情况下,服务器100可基于关于发送包丢失率的信息来确定之前发送的实时数据包的重复重发的数量。详细地,服务器100可基于关于由系统定为目标的丢包恢复率的信息来确定之前发送的实时数据包的重复发送的数量。然而,服务器100可测量发送包丢失率。
[0157]从服务器100发送到客户端装置200的实时数据包可以是包括视频通话图像的包,但是不限于此。
[0158]根据在图9B中示出的客户端装置200的控制方法,在操作S921,客户端装置200确定从服务器100发送的实时数据包是否丢失。
[0159]如果在操作S921确定实时数据包丢失,则在操作S922,客户端装置200将针对实时数据包的重发请求包重复地发送到服务器100。
[0160]客户端装置200可还测量网络状况,并且根据测量的网络状况来计算发送包丢失率。客户端装置200可基于关于发送包丢失率的信息来确定重发请求包的重复发送的数量。客户端装置200可将关于发送包丢失率的信息发送到服务器100。因此,服务器100可通过使用相应的信息来确定将被重发的数据包的重复的数量。
[0161]客户端装置200从服务器100接收到的实时数据包可以是包括视频通话图像的包,但是不限于此。
[0162]虽然未在附图中示出,但是根据示例性实施例,在包括客户端装置和将实时数据包发送到客户端装置的服务器的通信系统中,客户端装置根据从服务器发送的实时数据包是否丢失,重复发送针对丢失的实时数据包的重发请求包。如果服务器从客户端装置接收到重发请求包,则服务器重复发送与重发请求包相应的实时数据包。在这种情况下,客户端装置和服务器可基于由客户端装置或服务器测量的发送包丢失率来分别确定重发请求包和实时数据包的重复发送的数量。
[0163]图10是示出根据示例性实施例的客户端装置200’的操作的流程图。这里,客户端装置200’可以是在图3B中示出的客户端装置200’。
[0164]参照图10,在操作S1010,客户端装置200’从服务器100接收至少一个媒体数据包。在操作S1020,客户端装置200’确定媒体数据包是否丢失。详细地,客户端装置200’可通过使用接收到的媒体数据包的序号来检查媒体数据包是否丢失。
[0165]如果在操作S1020确定媒体数据包未丢失,则在操作S1040,客户端200’等待接收下一个媒体数据包。
[0166]如果在操作S1020确定媒体数据包丢失,则在操作S1030,客户端装置200’确定当前的包丢失率和包恢复率。在操作S1050,客户端装置200’基于当前的包丢失率和包恢复率来确定请求消息的重复数量“η”。在操作S1060,客户端装置200’将请求消息发送到服务器100。
[0167]在操作S1070,客户端装置200’对发送的请求消息的数量进行计数来确定发送的请求消息的数量是否大于请求消息的重复数量“η”。如果在操作S1070确定发送的请求消息的数量小于请求消息的重复数量“η”,则在操作S1060,客户端装置200’将请求消息连续地发送到服务器100。
[0168]如果在操作S1070确定发送的请求消息的数量等于请求消息的重复数量“η”,则在操作S1080,客户端装置200’停止发送请求消息,并且等待接收媒体数据包。
[0169]图11是根据示例性实施例的服务器100的详细操作的流程图。
[0170]参照图11,在操作S1110,服务器100从客户端装置200’接收用于媒体包的重发请求消息。在操作S1120,服务器100确定接收到的请求消息是否被复制。
[0171]如果在操作S1120确定请求消息被复制,则在操作S1140,服务器100对接收到的包进行处理。
[0172]如果在操作S1120确定请求消息未被复制,则服务器100获取当前的包丢失率和包恢复率。在操作SI 150,服务器100基于当前的包丢失率和包恢复率来确定数据包的重复数量“m”。
[0173]在操作S1160,服务器100将请求的媒体包发送到客户端装置200’。
[0174]在操作S1170,服务器100对发送的媒体包的数量进行计数来确定发送的媒体包的数量是否小于数据包的重复数量“m”。如果在操作S1170确定发送包的数量小于数据包的重复数量“m”,则服务器100返回操作S1160来将媒体包连续发送到客户端装置200’。
[0175]如果在操作S1170确定发送包的数量等于数据包的重复数量“m”,则在操作S1180,服务器100停止发送媒体包,并且等待接收另一重发请求消息。
[0176]如上所述,根据示例性实施例,复制的重发请求和重复的重发数据包被用于发送对时间延迟敏感的媒体(诸如,视频),从而提高丢失的包的恢复率。因此,由于不需要等待超时时间,因此减少了延迟时间。另外,在能够感测网络的包丢失率的系统中,将被复制的包的合适数量被用于降低网络的负载。
[0177]根据上述示例性实施例的控制方法可被实现为程序,并且随后被提供给服务器或客户端装置。
[0178]例如,存储执行以下操作的程序的非瞬时性计算机可读介质可被提供给服务器:从客户端装置接收针对之前发送的实时数据包的重发请求;复制并发送之前发送的实时数据包。
[0179]作为另一示例,存储以下程序的非瞬时性计算机可读介质可被提供给客户端装置:所述程序用于确定从服务器发送的实时数据包是否丢失;如果确定实时数据包丢失,则复制针对丢失的实时数据包的重发请求包,并将所述重发请求包发送到服务器。
[0180]非瞬时性计算机可读介质指并非短时间存储数据的介质(诸如寄存器、高速缓冲存储器、存储器等),而是半永久性地存储数据,并且可由装置读取。详细地,上述应用或程序可被存储和提供在非瞬时性计算机可读介质(诸如,CD、DVD、硬盘、蓝光磁盘、通用串行总线(USB)、存储器卡、ROM等)上。
[0181]上述示例性实施例和优点仅是示例性的,而不将解释为限制性的。本教导可被容易地应用到其它类型的设备。此外,示例性实施例的描述意图是说明性的,而不是限制权利要求的范围,很多替换、修改和变化对于本领域技术人员是明显的。
【权利要求】
1.一种配置为将实时数据包发送到客户端装置的服务器,所述服务器包括: 通信器,被配置为与客户端装置进行通信; 控制器,被配置为如果从客户端装置接收到针对先前发送的实时数据包的重发请求,则重复重发先前发送的实时数据包。
2.如权利要求1所述的服务器,其中,按照重复的重发请求包形式来接收重发请求。
3.如权利要求1所述的服务器,其中,通信器基于预设事件从客户端装置接收关于发送包丢失率的信息, 其中,控制器被配置为基于关于发送包丢失率的信息来确定先前发送的实时数据包的重复发送的数量。
4.如权利要求3所述的服务器,其中,控制器被配置为基于关于预设目标丢包恢复率和发送包丢失率的信息来确定先前发送的实时数据包的重复发送的数量。
5.一种配置为从服务器接收实时数据包的客户端装置,所述客户端装置包括: 通信器,被配置为与服务器进行通信; 确定器,被配置为确定从服务器发送的实时数据包是否丢失; 控制器,被配置为如果确定实时数据包丢失,则将针对丢失的实时数据包的重发请求包重复发送到服务器。
6.如权利要求5所述的客户端装置,还包括:` 网络状况测量器,被配置为测量网路状况, 其中,控制器被配置为基于测量的网络状况计算发送包丢失率,并且基于计算出的发送包丢失率来确定重发请求包的重复发送的数量。
7.一种包括客户端装置和将实时数据包发送到客户端装置的服务器的通信系统,所述通信系统包括: 客户端装置,被配置为确定实时数据包是否丢失,并根据确定从服务器发送的实时数据包是否丢失来重复发送针对丢失的实时数据包的重发请求包; 服务器,被配置为从客户端装置接收重发请求包来重复地发送实时数据包。
8.一种将实时数据包发送到客户端装置的服务器的控制方法,所述控制方法包括: 从客户端装置接收针对先前发送的实时数据包的重发请求; 将先前发送的实时数据包重复重发到客户端装置。
9.如权利要求8所述的控制方法,其中,按照重复的重发请求包形式来接收重发请求。
10.如权利要求8所述的控制方法,还包括: 根据预设事件从客户端装置接收关于发送包丢失率的信息; 基于关于发送包丢失率的信息,确定先前发送的实时数据包的重复发送的数量。
11.如权利要求10所述的控制方法,其中,基于关于预设目标丢包恢复率和发送包丢失率的信息来确定先前发送的实时数据包的重复发送的数量。
12.—种从服务器接收实时数据包的客户端装置的控制方法,所述控制方法包括: 确定从服务器发送的实时数据包是否丢失; 如果确定实时数据包丢失,则将针对丢失的实时数据包的重发请求包重复发送到服务器。
13.如权利要求12所述的控制方法,还包括:测量网络状况; 基于测量的网络状况计算发送包丢失率,并且基于计算出的发送包丢失率来确定重发请求包的重复发送的数量。
14.一种包括客户端装置和将实时数据包发送到客户端装置的服务器的通信系统的控制方法,所述控制方法包括: 确定从服务器发送的实时数据包是否丢失; 根据从客户端装置发送到服务器的实时数据包是否丢失,将针对丢失的实时数据包的重发请求包重复发送到服务器; 如果服务器从客户端装置接收到重发请求包,则重复重发实时数据包。
15.如权利要求14所述的控制方法,还包括: 基于发送包丢失率确定重发请求包的重复发送的数量和实时数据包的重复发送的数量。
【文档编号】H04N21/643GK103780972SQ201310431751
【公开日】2014年5月7日 申请日期:2013年9月22日 优先权日:2012年10月19日
【发明者】金晟基, 成德句, 金要汉, 柳佳铉, 朴春培, 林铉祐, 郑度泳 申请人:三星电子株式会社