CDN服务是一种通过在信息源增加冗余信息实现丢包恢复的措施。在IP网络里,数据报文的正确性已经由网络层保证,如果出现传输错误,设备、网卡会自动丢弃。所以,这里的CDN服务应用不是纠错,而是丢包恢复(或者说,遗失数据报文的位置是可知的)。另外,CDN服务无需反馈的机制特点使其适用于IPTV组播应用。 IPTV一般都会选择UDP(用户数据报协议)来进行视频包的承载,添加FEC的IPTV数据流如示。
添加FEC的IPTV数据流图 在RTP和UDP之间添加独立的FEC层,即FEC编码/解析模块,用于对原始码流进行冗余包的添加,并根据冗余包进行丢包恢复。原始数据中添加了标识FEC ID的信息,用SDP(会话描述协议)传输其他FEC所需的描述信息。为了保障某些不支持FEC的机顶盒能够继续处理数据,冗余数据流通过独立FEC Port发送,如果开展CDN业务,需要了解目前我国存在的CDN服务商有哪些类型?
CDN服务的编码算法、解码算法可以使用比较成熟的RS算法、Tornado算法、Raptor算法等,并且可以灵活设置丢包率和冗余度。 另外,针对 IPTV CDN的直播业务,CDN服务可按下述方案部署在省中心和区域中心分别部署直播服务节点。中心直播节点和区域直播节点间采用单播方式传输直播码流,同时部署FEC,FEC数据与原始码流共用一个RTP通道。
区域直播节点从中心直播节点接收直播码流,进行FEC解码和纠错。区域直播节点再次对直播码流进行 FEC 编码,并将码流以组播方式发送给区域中心、边缘节点和机顶盒。区域中心发出的FEC数据采用单独通道传输,以兼容各厂商机顶盒。ARQ与FEC的应用场景对比 在比较FEC和ARQ两种纠错算法之前有必要对IPTV和组播技术作进一步的阐释。IPTV 既不同于传统的模拟有线电视,也有别于正在兴起的有线数字电视。IPTV 的数据传输和接收完全依靠IP网络,这决定了产品可以彻底地实现内容和用户之间的互动。IPTV承载的最主要内容包括视频点播(VoD)业务和电视直播(TV)业务。视频点播业务使用点对点的通信方式,IPTV的电视直播业务则需要将一个源节点产生的数据流送到多个目的节点,即一点对多点的通信。