觀看視頻基本上成為了網民每天都在做過的事情,也都會遇到視頻卡頓,不能訪問的情況,有些時候是本地端設備或網絡的問題,有時候確是網絡配置不當引起的,如果能明白視頻網站的訪問原理,就可能會避免一些訪問不暢的問題。
點播視頻
眾所周知,大型視頻網站訪問量巨大,用戶數量巨大,占用帶寬流量巨大,單一的服務器或者群集服務器很難滿足用戶的訪問需求的,因此在不同范圍內進行內容分發就成為了必然選擇,這就是CDN。CDN解決用戶集中訪問時的單一出口問題,按照就近原則解決了時延問題,給視頻訪問者帶來了較好的體驗,那么具體是如何實現的呢?
視頻訪問調度過程
如上圖,觀看視頻的大致步驟:
①頁面訪問請求,這里可以看到視頻介紹信息,視頻網站的DNS調度系統將根據用戶的DNS返回一個最優的服務器來供用戶訪問頁面,比如用戶DNS屬于電信用戶,那么返回的頁面服務器為電信服務器,同網訪問較快;
這里有企業自建CDN的,用戶DNS就必須用企業指定的DNS,該DNS在視頻網站進行備案,進行策略調度,將頁面訪問請求調度到企業自建的CDN頁面,實現頁面流量控制。非全鏡像的則頁面訪問還是由視頻網站調度到合適的頁面訪問。
②通過上面請求后,可以較快速度訪問到視頻頁面,在點擊需要觀看的視頻后,IP調度系統根據用戶的源IP地址返回最優的CDN視頻服務器地址給用戶,比如用戶IP地址為廣州天河區電信,如果天河區有該視頻網站的CDN節點,就返回給節點的服務器地址給用戶,如果沒有,就將離天河區較近的電信CDN節點返回給用戶;
企業自建CDN的,企業會有一段IP專門用來訪問視頻網站的調度服務器,這段IP需要在視頻網站備案,進行策略調度,該段IP進行視頻訪問請求時,會將企業的CDN視頻服務器地址返回,實現視頻流量控制。
③根據返回的視頻地址,進行視頻訪問。
如果是訪問比較冷門的視頻,該CDN節點并沒有預先緩存,這個時候該CDN節點就按照既定策略進行該視頻的拉取,就是從其它cdn節點進行緩存到自己服務器的上,這就叫做回源。
直播視頻
直播跟點播是完全不一樣的,因為各CDN節點不可能事先有緩存,直播源站在收到視頻畫面后向一部分CDN節點進行推送,這部分節點可以繼續向另外的CDN節點推送,這個是主動推流,另一種是用戶放問時,按照上面的點播程序,所在cdn節點沒有內容,主動向其他cdn節點拉取視頻的過程,這個是被動推流。
影響直播體驗的主要在于直播起播延時和直播內容延時。
直播起播延時——從發出指令,到顯示畫面,所消耗的時間。
直播內容延時——用戶端播放的畫面和現場畫面的時間差。
顯然,并發流量大的直播是非??简炂脚_的。
通過上面的描述,我們可以清楚了視頻訪問的過程,如果視頻頁面打開很慢,可以通過更換DNS進行改善,如果訪問視頻很慢,有時候也可能是當地的IP段被調度到較遠的CDN節點,出現了調度錯誤,這個可能需要ISP和視頻網站間進行協調解決。