苹果专利探索提高通信质量的解决方案,降低网络延迟
旨在提高通信质量的解决方案
(映维网Nweon 2022年04月18日)对于需要网络通信的设备,稳定性都是一个重要的因素。在日前由美国专利商标局公布的两份专利申请中,苹果就描述了旨在提高通信质量的解决方案。尽管不是专用于AR/VR,但“Communication system with improved reliability”和“Multi-protocol synchronization”都以一定笔墨举例描述了沉浸式设备的情形,毕竟AR/VR对通信质量的要求非常高。
概括来说,前一份专利主要针对丢包,后一份专利则主要针对时钟同步。
1. “Communication system with improved reliability”
计算机网络通常使用传输控制协议TCP或用户数据报协议UDP实现传输控制层。由于使用了网络会话和数据包确认,TPC提供了更高的可靠性,并且是大多数通信的首选。然而,设置网络会话并为每个接收到的数据包发送确认会增加大量开销,尤其是当一个设备与多个其他设备通信时。另外,当数据包丢失时,等待重传超时会产生显著的延迟。
所以对延迟敏感的通信会用UDP替代TCP,因为它可以避免额外的开销。但UDP的可靠性较低,需要更能容忍数据包丢失。
针对这个问题,名为“Communication system with improved reliability”的发明主要描述了提高网络通信的可靠性,同时降低当数据包丢失时发生延迟的可能性。
在一个实施例中,第一计算设备通过网络将各种数据对象的变化状态传送给第二计算设备。
第一计算设备的编码器接收给定数据对象随时间变化的状态,并分析状态以确定它们之间的差异。基于差异,编码器向第二计算设备发送与数据对象变化状态相对应的更新数据包序列。
针对当前状态发送的给定更新数据包包括更新信息。其中,更新信息不仅足以将数据对象的先前状态更新到当前状态,而且足以将一个或多个额外的先前状态更新到当前状态。例如,给定的更新数据包可以包括足够的信息,以将数据对象的多达五个先前状态更新为数据对象的当前状态。
编码器可以首先在具有数据对象的完整状态的基线数据包中发送数据对象的初始状态。然后,目的地设备的解码器可以存储状态,并应用来自随后接收的更新数据包的更新信息,以将数据对象的存储状态更新为数据对象的当前状态。
如果特定状态的给定更新数据包都是丢失,则目的地设备依然能够使用包括在下一个接收数据包中的更新信息将其数据对象的存储状态更新为当前状态。这样,目的地设备就可以不必请求重新传输丢失的更新数据包,从而避免在等待发送设备检测丢包并重新发送时发生的延迟。另外,这种改进的可靠性可允许通信设备放弃使用确认数据包,从而可以减少上游带宽的消耗。同时,支持确认数据包可能会消耗发送方的大量内存,因为发送设备可能需要缓冲发送的数据包,直到它们能够被接收方确认。所以,发明描述的技术可以避免这种资源消耗。
在一个实施例中,当源应用110A想要将数据对象112的状态传送给目的地应用110B时,应用110A向编码器120发送相应的请求,并开始向编码器120提供数据对象112的变化状态。
传输编码器120可以对数据对象112的状态进行编码,以便经由网络接口传输到另一计算设备100B。如图所示,编码器120可以接收数据对象112的状态A、B、C和D,其表示数据对象112随时间的变化状态。基于接收到的状态,编码器120可以发送包括基线数据包122和一个或多个更新数据包124的数据包序列。
在所示实施例中,基线数据包122是包括数据对象112的完整状态的数据包。如图所示,编码器120可以发送基线数据包122,基线数据包122包括数据对象112的完整状态A。编码器120然后发送初始更新数据包124A,初始更新数据包124A包括足以将数据对象112的先前通信状态更新到当前状态的更新信息126。
传输解码器130可执行以解码数据包122和124中的信息,以便向目的地应用110B提供数据对象112的完整状态。为了向应用110B提供状态,解码器130存储数据对象112的接收状态的副本132,并基于更新信息126对其进行更新。所述存储状态132最初可以是在基线数据包122中接收的数据对象112的完整状态,例如图1所示的示例中的状态A。
当接收到更新包124时,解码器130可以读取数据包124中包括的更新信息126,并将信息126应用于存储状态132,以将状态132更新为当前状态。所以,响应于接收到更新数据包124A并且存储状态132处于状态A,解码器130可以使用数据包124A中的更新信息126将存储状态132从状态A更新到状态B,解码器130随后则可以将状态B提供给应用110B。
在各种实施例中,解码器130通过从数据包124读取数据来确定给定数据包124中的更新信息126是否可以应用于存储状态132,然后可以应用更新信息126来产生数据对象112的当前状态。
在图1所示的示例中,数据包124A在与计算设备100B的通信中出现丢失。在所示的实施例中,解码器130依然能够使用数据包124B将存储状态132从状态A更新到状态C,因为它包括足够的更新信息126,这样不仅能够从状态B更新到状态C,而且能够从状态A更新到状态C。
2. “Multi-protocol synchronization”
在不同设备之间同步定时的当前技术一般假定设备交互是两种类型之一:一组位于本地的设备(例如在同一局域网(LAN));非本地分布的一组设备(例如位于广域网(WAN))。
在第一种类型中,可以使用非常精确得的确时间协议(PTP),而第二种类型则使用不太精确的网络时间协议(NTP)。在这种传统技术中,通常假设一个组内的所有设备要求相同的同步精度,并且时间上的不连续性(由于不频繁的调整)是可以接受的。遗憾的是,由于参与组的特定设备不一定都在本地,所以无法实现相同级别的同步精度。
针对这个问题,苹果在“Multi-protocol synchronization”这份发明中提出了一种多协议同步系统,以允许本地组内的设备使用高精度机制(例如PTP)进行自身同步。然后,本地组可以使用不太精确的同步机制(例如NTP)进行全局同步。另外,所述系统可以采用smearing涂抹调整,以考虑本地时钟(由本地设备组使用)和全局时钟(由不同位置的不同组使用)之间的不连续性。
图1是示例性多协议同步系统的框图。系统10包括各种局域网100和LAN参考时钟120的组,以及广域网参考时钟130。
在各自的局域网100内运行的各种计算设备组110参与共享体验114。尽管参与共享体验114的设备110可能在LAN,但在其他情况下,计算设备110可能在广域网(WAN)参与共享式体验。为了令计算设备110在与其他计算设备110相似的时间呈现协调的内容,它们可能需要彼此同步其内部时钟。
如发明所述,可以通过多个同步交换来执行计算设备110的内部时钟的同步。在所示的实施例中,精确时间协议交换122和不精确时间协议交换132都用于执行同步。精确时间协议可以是精确时间协议(PTP),而不精确时间协议交换可以是网络时间协议(NTP)。
LAN 100A内的计算设备110参与交换,以使用精确时间协议将其本地时钟112与LAN参考时钟120同步。LAN 100B和100C内的计算设备参考各自的LAN参考时钟120执行类似的同步。在一个实施例中,LAN参考时钟120是与计算设备110不同的设备。在其他实施例中,系统10可以选择设备110中的一个,以使用其内部时钟112作为其他设备110的LAN参考时钟120。
例如,系统10可以为LAN 100A中包括的三个计算设备110中的每一个计算一组度量。设备的度量集合可以包括指示特定计算设备110访问WAN参考时钟130的可靠性的度量。度量可以指示计算设备110是否能够访问可靠的全局参考时钟。例如,LAN 100A内的计算设备110可以访问GPS,而其他设备则不能。作为一个具体示例,系统10可以在LAN 100A内选择具有可靠网络时间协议(NTP)源的计算设备。一旦计算设备110选择为LAN 100A的本地参考时钟,LAN内的所有其他设备都使用精确时间协议交换122将其时钟与所述时钟同步。
除了计算设备110通过各自的LAN参考时钟120与各自LAN 100中的其他设备同步外,在图示实施例中,LAN参考时钟120使用不精确的时间协议交换132与WAN参考时钟130同步。
参考时钟130通常可以是一个或多个LAN 100外部的参考时钟,因此可以通过WAN连接访问。
在一个实施例中,WAN参考时钟130可以对应于各种定时源中的任何一个,例如远程服务器、全球定位系统(GPS)、基站、原子钟等。
LAN参考时钟120通过WAN发送时间值请求。所述请求可以包括指示LAN参考时钟120的时间值的原始时间戳。然后,对请求的响应可以包括接收指示在WAN参考时钟130接收请求的时间戳,以及指示在发送响应时WAN参考时钟130的时间值的发送时间戳。在这样的实施例中,前一时间戳可用于说明传播延迟,并用于调整后一时间戳。
有时候,一个LAN参考时钟120的时间值可能不同于另一个LAN参考时钟120,并导致不同LAN 100中的设备110具有不同的本地时间,从而干扰设备之间的共享体验114。
例如,若LAN参考时钟120进行突然时间调整,则这可以是在计算设备110呈现的内容中产生显著差异的量(例如五十毫秒)。
为了防止LAN参考时钟120的突然时间调整,系统10可以实现smearing涂抹技术。具体地,当系统10确定LAN参考时钟120指定的时间不同于WAN参考时钟130指定的时间时,系统10临时引起LAN 100中的计算设备所使用的LAN参考时钟120的频率改变。
在一个实施例中,可以基于LAN时钟与WAN时钟不同的时间量和调整阈值来确定临时改变的长度,并确保调整速率不会导致内容失真。改变LAN参考时钟的频率(即smearing涂抹)导致时钟的定时以更平滑的方式与WAN参考时钟的定时同步。
一旦知道适当的smearing涂抹速率,所述速率和LAN参考时钟120和WAN参考时钟130之间的时间差则可以用于计算为使两个时钟同步而应执行smearing涂抹的时间间隔。例如,smearing涂抹过程中的加速速度可能会快5%以上。
图2是示出计算设备与本地参考时钟的示例同步的框图。系统200包括计算设备210和LAN参考时钟220。
计算设备210包括流式应用252、显示器254和扬声器256。计算设备210向LAN参考时钟220发送关于定时信息的请求212。LAN参考时钟220依次向全局参考时钟发送包括原始时间戳的请求202。全局参考时钟发送带有接收和发送时间戳的响应204。LAN参考时钟220基于使用不精确定时协议的响应204执行与全局参考时钟的同步。在所示实施例中,LAN参考时钟220随后向计算设备210的流应用提供时间值214。
流应用252基于从LAN参考时钟220接收的时间值214,向显示器254和扬声器256提供共享体验内容216。显示器254随后向用户呈现同步的视觉218。类似地,扬声器256基于时间值214向用户提供同步的音频。
3A-3C是说明示例同步场景的框图。图3A示出了通过WAN在两个LAN之间同步共享电影流306的示例305A,图3B示出了同步共享XR体验316的示例305B,图3C示出了同步共享会议呼叫326的示例305C。
在图3C中,佩戴头显320D和330E的用户正以虚拟化身的形式参加电话会议。当表示为恐龙化身的特定用户说话时,恐龙的嘴巴与用户的嘴巴同步移动。这种类型的电话会议可以称为虚拟现实电话会议。
图4是所述实施例的流程图。在410,计算系统维护第一局域网(LAN)的第一参考时钟,其中第一参考时钟可由耦合到第一LAN的第一组计算设备使用,以参与与耦合到第二LAN的第二组计算设备的共享体验。
在420,计算系统通过第一时间同步协议将第一参考时钟与计算系统可通过广域网(WAN)访问的全局参考时钟同步。
在430,计算系统通过第二时间同步协议向第一组计算设备之一提供第一参考时钟的时间值,以协调与第二组计算设备之一的共享体验中的事件,其中,第二时间同步协议的精度大于第一时间同步协议的精度。
通过上述方式,系统可以保持设备之间的精确同步体验。
相关专利:Apple Patent | Communication system with improved reliability
相关专利:Apple Patent | Multi-protocol synchronization
名为“Communication system with improved reliability”和“Multi-protocol synchronization”的苹果专利申请都是在2021年5月提交,并在日前由美国专利商标局公布。