将模拟信号数字化,以数据包的形式在IP网络上做实时传递。
原理:
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.
- Producer
Producer的主要任务就是通过媒介获取video and audio data,然后encode,name,marshal data,sign packet.
2.Namespace

将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.

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包的数目时可以采用深度学习的方法。