關(guān)于本書
網(wǎng)絡(luò)開發(fā)中要用到哪些協(xié)議,這些協(xié)議有什么固有的局限性,如何針對底層網(wǎng)絡(luò)優(yōu)化自己的應(yīng)用,瀏覽器提供了哪些網(wǎng)絡(luò)相關(guān)的功能。
我們將從TCP,UDP,TLS協(xié)議的內(nèi)部工作原理說起,向大家解釋如何針對這幾種協(xié)議進(jìn)行網(wǎng)絡(luò)優(yōu)化。
要設(shè)計(jì)和開發(fā)高性能應(yīng)用,必須理解每一位數(shù)據(jù)如何交付,必須理解每一種傳輸機(jī)制和相關(guān)協(xié)議的特點(diǎn)。延遲與帶寬
延遲是消息或分組從起點(diǎn)到終點(diǎn)經(jīng)歷的時(shí)間。傳播延遲
消息從發(fā)送端到接收端需要的時(shí)間,是信號傳播距離和速度的函數(shù)傳輸延遲
把消息中所有比特轉(zhuǎn)移到鏈路所需要的時(shí)間,是消息長度和鏈路速率的函數(shù)處理延遲
處理分組首部,檢查位錯(cuò)誤以及確定分組目標(biāo)所需要的時(shí)間排隊(duì)延遲
到來的分組排隊(duì)等待處理的時(shí)間
以上延遲時(shí)間的總和就是客戶端到服務(wù)器的總延遲時(shí)間。
CDN最重要的就是通過把內(nèi)容部署在全球各地,讓用戶從最近的服務(wù)器加載內(nèi)容,大幅降低傳播分組的時(shí)間。
tcp的構(gòu)成
因特網(wǎng)有兩個(gè)核心協(xié)議: IP和TCP
IP負(fù)責(zé)聯(lián)網(wǎng)主機(jī)之間的路由選擇和尋址
TCP負(fù)責(zé)在不可靠的傳輸信道上提供可靠的抽象層,向應(yīng)用層隱藏了大多數(shù)網(wǎng)絡(luò)通信的復(fù)雜細(xì)節(jié),比如丟包重發(fā),按序發(fā)送,擁塞控制和避免,數(shù)據(jù)完整等等。采用tcp數(shù)據(jù)流可以確保發(fā)送的所有字節(jié)都能被完整收到,tcp專門為精確做了優(yōu)化。三次握手
所有tcp連接一開始都要經(jīng)過三次握手,客戶端和服務(wù)器在交換應(yīng)用數(shù)據(jù)之前,就必須起始分組序列號,以及其他一些連接相關(guān)的細(xì)節(jié)達(dá)成一致。出于安全考慮,序列號由兩端隨機(jī)生成。