如何制作网站服务费的凭证以便于网站建设与管理?
摘要:网站建设与管理的体会,收到一张网站服务费怎么做凭证,西宁好的网站建设公司,电商网站国内外需求分析1、TCP为何不适用于实时音视频可靠性是以牺牲实时性为代价的。按照TCP原理,当出现极端网络情况时&
网站建设与管理的体会,收到一张网站服务费怎么做凭证,西宁好的网站建设公司,电商网站国内外需求分析1、TCP为何不适用于实时音视频可靠性是以牺牲实时性为代价的。按照TCP原理#xff0c;当出现极端网络情况时#xff0c;理论上每个包的时延可达到秒级以上#xff0c;而且这种时延是不断叠加的。这对于音视频实时通信来说是不可接受的。TCP为了实现数据传输的可靠性#xf…1、TCP为何不适用于实时音视频可靠性是以牺牲实时性为代价的。按照TCP原理当出现极端网络情况时理论上每个包的时延可达到秒级以上而且这种时延是不断叠加的。这对于音视频实时通信来说是不可接受的。TCP为了实现数据传输的可靠性采用的是“发送→确认→丢包→重传”这样一套机制。而且为了增加网络的吞吐量还采用了延迟确认和Nagle算法(将多个小包组成一个大包发送组合包的大小不超过网络最大传输单元)为了增加网络的吞吐量接收端不必每收到一个包就确认一次而是对一段时间内收到的所有数据集体确认一次即可。为了实现该功能TCP通常会在接收端启动一个定时器。定时器的时间间隔一般设置为200ms即每隔200ms确认一次接收到的数据。这就是延迟确认机制。‘除此之外TCP在发送端也启动了一个定时器不过该定时器的功能不是发送确认消息而是用来判别是否有丢包的情况。发送端定时器的时长为一个RTO(RTORetransmission Timeout重传超时时长。其值约等于RTT的平均值每次超时后以指数级增长。RTT表示一个数据包从发送端到接收端然后再回到发送端所用的时长)如果在定时器超时后仍然没有收到包的确认消息则认为包丢失了需要发送端重发丢失的包。这就是TCP的丢包重传机制。假如接收端发送的确认消息丢失了按TCP的协议规则通信双方会怎么做呢首先发送端只有等到定时器超时后才能发现该包丢失了。确认丢包后发送端会将前面所有未确认的包重发一遍。如果在收到数据后接收端发送的确认消息又丢失了那么发送端还要等到定时器超时后才能知道包丢失了。因此在遇到这种极端网络的情况下TCP传输的时延要累加很多这种时延是不可控的。 2、UDP-RTPUDP没有这套逻辑所以实时性最高。WebRTC通过NACK、FEC、Jitter Bufer以及NetEQ技术既可以解决丢包和抖动问题又不会产生影响服务质量的时延。UDP传输一些有前后逻辑关系的数据时有缺陷所以在UDP之上的应用层上使用RTP传输音视频数据 3、RTP协议结构保持有序:Sequence Number我们希望在使用RTP传输音视频数据时一旦有数据丢失可以快速定位是哪个数据包丢失了。如果给每个发送的数据包都打上一个编号并且编号是连续的那么接收端就可以很容易地判断出哪些包丢失了。在RTP头中有一个专门记录该编号的字段称作Sequence Number。在发送端每产生一个RTP包其Sequence Number字段中的值就被自动加1以保证每个包的编号唯一且连续。当接收端收到RTP包时会对Sequence Number字段进行检查如果发现Sequence Number不连续了就说明有包丢失或乱序了。区分不同类型数据:PayloadType我们在做网络应用开发时通常会使用同一个端口传输不同类型的数据如音视频数据。但接收端是如何区分出不同类型的数据的RTP在其协议头中设置了PTPayloadType字段.比如VP8的PT一般为96而Opus的PT一般为111区分不同源数据包:SSRC同一个端口不仅可以同时传输不同类型的数据包还可以传输同一类型但不同源的数据包。流媒体服务就可以将多个不同源参与人的视频通过同一个端口发送给客户端。那么客户端接收端又是如何将不同源的数据区分出来的呢这就要说到RTP中另一个字段SSRC了。RTP要求所有不同的源的数据流之间可以通过SSRC字段进行区分且每个源的SSRC必须唯一。每个SSRC所代表的数据流的Sequence Number都是单独计数的如下图完整的协议格式如下VVersion字段占2位表示RTP的版本号现在使用的都是第2个版本所以该域固定为2。PPadding字段占1位表示RTP包是否有填充值。为1时表示有填充填充以字节为单位。一般数据加密时需要固定大小的数据块此时需要将该位置1。XeXtension字段占1位表示是否有扩展头。如果有扩展头扩展头会放在CSRC之后。扩展头主要用于携带一些附加信息。CCCSRCCount字段占4位记录了CSRS标识符的个数。每个CSRC占4字节如果CC2则表示有两个CSRC共占8字节。MMarker字段其含义是由配置文件决定的一般情况下用于标识边界。比如一帧H264被分成多个包发送那么最后一个包的M位就会被置位表示这一帧数据结束了。timestamp字段占4字节用于记录该包产生的时间主要用于组包和音视频同步。
