目前直播业务下,很多客户为了节省成本,都使用p2p来作直播,通过端到端共享数据,从而降低从CDN获取的流量带宽,但是对于cdn厂商来说,就不太友好了,由于p2p业务的特性,存在只补片的情况,为了获取单个片,cdn需要回父获取整路流的数据,这样就存在大量的内耗;
为了解决cdn内部的内耗问题,在满足客户需求的同时也不增加cdn的内部成本,实现了根据不同的请求类型来实现不同的回源,p2p的请求分为全流,子流,补片,特殊补片(可以看作是心跳,请求单片,并且只请求1~2字节)三种,当用户请求全流的时候,回全流,当用户请求子流的时候回子流,当请求的子流到达一定比列,比如超过一半全流,就回全流,当用户请求的是补片时候,检测是否有特殊补片请求回源,如果有特殊补片请求回源,回全流,如果没有特殊补片回源请求,回特殊补片请求,并且响应404,当用户请求的是特殊补片请求,回特殊补片请求,由于特殊补片只请求1~2字节数据,所以特殊补片回源只发送每个片的前两个字节和后两个字节,总共4字节的数据,这样能有效的降低特殊补片请求带来的回源带宽消耗。
通过根据不同请求类型来分别回源的方式,能有效的降低cdn边缘回父层的带宽,从而有效的降低内部成本,效果显著。