【Gang Yi’ Notes】 NDN-RTC

2017-10-10

Posted by 易港

将模拟信号数字化,以数据包的形式在IP网络上做实时传递。

  • 分类
    1. 基于电话号码

原理:

IP 电话的核心与关键设备是 IP 网关,它把各地区电话区号映射为相应的地区网关 IP 地址。这些信息存放在一个数据库中,数据接续处理软件将完成呼叫处理、数字语音打包、路由管理等功能。 在用户拨打长途电话时,网关根据电话区号数据库资料,确定相应网关的 IP 地址,并将此 IP 地址加入 IP 数据包中,同时选择最佳路由,以减少传输延时, IP 数据包经 Internet 到达目的地的网关。在一些 Internet 尚未延伸到或暂时未设立网关的地区,可设置路由,由最近的网关通过长途电话网转接,实现通信业务。

2. 基于服务器账号

通过服务器,利用账号获取对方ip。

 

  • 缺点:

通话质量受到网络好坏的影响

  • 停电时候无法使用
  • 清晰度与传统的固话有差距(网络正常情况下,通话音质与传统电话无明显差距)
  • 存在被偷听偷录的风险
  • 可以随意改号,容易造成犯罪 (必须经运营商允许,用户自己不可以随意改号)

在这篇文章中,作者也给出了VoIP的一个不足,VoIP是建立在direct sender-driven peer-to-peer的模式,但是随着producer和consumer的急剧增加,由于缺乏整合(dedicated aggregation units),会使得降低延迟是一个很大的挑战。

NDN-RTC

Abstract

这篇文章作者提出了自己的一个将RTC做在NDN上的design。基于NDN本身的name-based forwarding, data signnature,caching and request aggregation,用来在保证质量的同时降低RTC的延迟。

 

It demonstrates low-latency HD video communication over NDN, without direct producer-consumer coordination, which

enables scaling to many consumers through the capacity of the network rather than the capacity of the producer. Inter-

nally, NDN-RTC employs widely used open source components, including theWebRTC library, VP9 codec, and OpenFEC for forward error correction.

 

Design Objectives

  • Low-latency audio/vedio communication     250-750ms
  • Adaptive bitrate
  • Multi-party
  • Passive consumer&cacheability
  • Data verification
  • Encryption-based access control

 

Background and prior work

  • 以往基于ICN的大部分vedio streaming work都是通过增大buffer的策略来实现的。Eg. NDNVideo,采用的是·一个publisher配上1000个consumer的设计。
  • 将audio和vedio content切成data chunk,然后存放在NDN repository中,这就方便comsumer查找,但是这个方法也不能降低延迟,以及不是一种可持续的好办法
  • VoCNN,利用了VoIP software,用NDN传包,但是echo cancellation并没有很好地实现。

 

作者基于WebRTC liberary, VP9 codec,提出了自己的NDN-RTC design.

 

Application Architecture

区别于VoIP的sender-driven, 作者提出了receiver-driven的方法。

Receiver-driven: the producer publishes data to network-connected storage at its own pace, while the consumer requests data as needed and manages the relationship between outgoing Interests, incoming data segments, and bufer fill.

 

  1. Producer

Producer的主要任务就是通过媒介获取video and audio data,然后encode,name,marshal data,sign packet.

2.Namespace

1

将published media 划分为a collection of media streams,每个streams有不同的 child threads。stream由frames构成,每个frame有两个部分delta和key。delta主要是内容数据部分,根据frame time划分为N个小frame。每个frame又划分为若干个segment。

 

Metadata: 在每一个segment的meta-infomation中,有这样5个部分:

seg_name /num_seg/playback_pos/paired_seq#/num_parity

num_seg :  total number of segments for this frame;

playback_pos :  absolute playback position for current frame; this is different from the frame, which is a sequence number for the frame in its domain (i.e. key or delta);

paired_seq : sequence number of the corresponding frame from other domain (i.e., for delta frames, it is the sequence number of the corresponding key frame required for decoding);

num_parity :  number of parity segments for the frame.

这些都是为了后面consumer fetch做准备工作。

除此之外,在每个frame和segment上还加入了一个header.

2

3.Consumer

 

主要讲一下Consumer fetch

为了降低延迟,consumer采用 a pipeline of Interests. 首先对于一个frame,估计其中segment的数目为M,发M个Interests,一旦收到一个segment data,那就知道了所有的segment的数目N,然后就可以再发N-M个Interests(如果需要的话)。然后再将收到的segment data 按照时间顺序重排

这里就可以看出是receiver-driven了,receiver主动发Interest包获取content。

 

Buffering

这一块不是很懂。 RTT

4.Interest expression control

基本原则就是有一个Interest demand λ,每发一个Interest ,λ–,每接收到一个data,λ++。

 

 

感想

这个NDN-RTC的设计就是核心就是receiver-driven,并且利用给每一个data segment加一些session informatio,可以减少发Interest包的数量。相比于VoIP的优势我觉得还是NDN相比于IP的优势,相对于其他的NDN vedio design,主要是通过添加header的方法来提高性能。在估计初始Interest包的数目时可以采用深度学习的方法。