我们讨论RTP传输协议时,首先需要了解此传输规范当初的设计理念或者时间思想,这是任何技术知识框架的基石。针对RTP传输协议,我们需要先了解其两大设计理念,在这个设计理念的基础上,我们才能了解其具体的架构实现和对当时应用场景的支持以及其取得的灵活性的结果。RTP协议的两大设计理念包括应用级的框架和端对端的原则。其设计到实现从抽象开始具象化,逐层推进。
应用程序级框架
这里的应用是专指OSI模型的应用,非其他含义。
应用程序级框架背后的概念由麻省理工的Clark 和 Tennenhouse在1990 年首次提出。此论文是互联网技术在应用层研究的经典论文,此论文具有划时代的意义,也奠定了应用层设计的基石。
Architectural Considerations for a New Generation of Protocols
此论文中心论点是,只有应用程序才具有对其数据有足够的了解,才能就如何传输该数据做出最明智正确的决定。这表示传输协议应该接受在应用程序有内容意义的单元(应用程序数据单元,application data units-ADU)中的数据,并尽可能公开其传递的详细信息,以便应用程序在发生错误时可以做出适当的响应。该应用程序与传输单元合作,共同实现可靠的数据传输。
应用程序级框架来自于这样的一个理念:应用程序可以通过多种方式从网络问题中恢复原来的数据,并且使用的正确的方法取决于应用程序及其用户使用场景。在某些情况下,有必要重新传输丢失数据的精确备份数据。在其他情况下,可能会使用准确度较低的备份数据,或者数据可能已被替换,因此替换程度可能与原始数据是不同的。再或者,如果某些数据仅具有暂时性意义,则这些数据可以忽略。仅当应用程序与传输层交互非常密切时,这些可选数据才可能被使用。
应用层框架的目标与TCP的设计在某种程度上是相悖的,TCP通过隐藏底层IP网络的丢包性质来实现可靠传输,但这牺牲了及时性。然而,这正好符合了UDP传输的特征,UDP的传输比较好地支持了实时媒体的传输特性。
网络上的语音和视频通信、实时音频和视频媒体通常具有可以容忍一定的丢失,但具有严格的时序限制。通过使用基于UDP传输的应用程序级框架,我们能够在必要环境中可接受数据丢失,也可以灵活地使用全方位的恢复技术,例如在适当的情况下重传和前向纠错。
这些技术为应用程序提供了极大的灵活性,可以通过适当的方式对网络问题做出反应,而不是受到单个传输层的限制。
根据应用级框架原则设计的网络不应指定于特定的应用。相反,它应该支持通用传输层的限制,实现应用程序可以与网络配合工作来实现最佳的传输。应用程序级框架意味着OSI参考模型定义的严格层的弱化。这是一种可行的方法,既承认网络分层的重要性,但也可以接受暴露较低层的一些细节的需要。
应用程序级框架的理念意味着这个框架能够定义应用级单元对网络问题做出智能的反应、并且实现网络感知支持。
端到端原则
RTP采用的另一个设计理念是端到端原则。其设计理念也是来自于麻省理工实验室在1984年发表的一篇研究论文。虽然当时计算机网络技术不是非常成熟,这篇文章对后来计算机网络分层结构有着非常重要影响,五层/七层网络结构就是以此论文为依据而产生的。论文题目是:
End-To-End Arguments in System Design
其基本理念是分布式系统下端到端的系统设计原则,即底层网络设计应注重与核心传输功能的实现,而不是耗费更大的成本代价去实现其他的功能。简单来说,底层负责传输越快越好,高层则负责传输的可靠性。论文作者指出,错误恢复、安全加密、重复消息限制、系统崩溃恢复、传输确认等技术实现,都支持端到端。在网络的底层应该简化结构,把更多的功能实现,如数据确认和重传、安全加密等功能放到高层网络实现,这样效率会更高。
进行可靠通信的系统传输有两种方法。在一种方法中,系统可以将正确传送数据的责任与该数据一起传递,从而确保逐跳的可靠性。在另一种方法中,数据的可靠性传输责任可以由端点承担,即使单个跃点不可靠,也可以确保端到端的可靠性。正是第二种端到端方法渗透到了互联网的设计原则中,TCP和RTP都遵循端到端原则。
端到端原则的主要结果是,智能判断往往会向协议栈的顶部出现。如果构成网络路径的系统从来不对数据负责,那么它们可以很简单,并且设计也不需要很健壮。他们可能会丢弃无法传送的数据,因为端点无需他们的帮助也可自己恢复。端到端原则意味着智能本身位于端点,而不是网络内部。
其理念得出的结果是一种意味着出现了智能、网络感知端点和哑(低介入)网络的设计。这种设计理念非常适合互联网(也许是最终的哑网络环境框架)环境,但这个设计理念确实需要应用程序设计人员进行大量工作,保证应用足够智能。它的设计也不同于许多其他网络。例如,传统的电话网络采用智能网络和哑端点的模型,而MPEG传输模型允许哑接收方与智能发送方。这种设计上的差异也改变了应用程序的风格,更加强调接收方设计,并使发送方和接收方在传输中成为更加平等的收发对象。
RTP最终实现灵活性用户场景
RTP框架的设计足以满足许多场景,几乎不需要额外的协议支持。在很大程度上,此设计基于视频会议的轻量级会话模型创建。RTP控制协议提供所有必要的会话管理功能,加入会话所需的只是IP地址以及从媒体定义到RTP 负载类型标识符的映射。该模型也适用于一对多场景,例如网络广播。
对于单播语音电话,一些人认为RTP提供了不必要的功能,对于高度压缩的语音帧来说是沉重的,低效的。实际上,通过使用头字段压缩解决了这个争议,并且RTP提供的功能可以轻松扩展到多媒体和多方会话。
因此,RTP的优势在于它为实时音频/视频传输提供了一个统一的框架,可以直接满足大多数应用程序的需求,同时还可以适应那些超出其限制的应用程序环境。
参考资料:
Architectural Considerations for a New Generation of Protocols David D. Clark and David L. Tennenhouse Laboratory for Computer Science, M. I. T
J. H. Saltzer, D. P. Reed, and D. D. Clark. T”End-to-End Arguments in System Design,”T TACM Transactions on Computer SystemsT, Volume 2, Number 4, November 1984.
https://people.csail.mit.edu/susanperez/Publications/PubPDFs/Architectural%20Considerations%20for%20a%20New%20Generation%20of%20Protocols.pdf
作者:james.zhu
来源:SIP实验室
原文:https://mp.weixin.qq.com/s/7jdSxrAxAmas2oKKbWyIpA
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。