網(wǎng)站做詞seo服務(wù)是什么意思
dns 找到了地址,spf 確定了路徑,如何運(yùn)輸數(shù)據(jù)呢?今天講 tcp。
計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域的特定技術(shù)是最后當(dāng)你干這個(gè)事時(shí)才要用的,我對孩子們這樣說,實(shí)際上你可以隨便看一個(gè)快遞單子來理解端到端傳輸協(xié)議。
源地址,目標(biāo)地址一定要有,一個(gè)地址可能有不同住戶,也就是 port 指示的,一系列相關(guān)聯(lián)包裹的順序編號也是必須,總共多少件,這是第幾件等等,此外,一個(gè)包裹能不能被拆分運(yùn)輸,也要被標(biāo)識,三噸大米可以拆分運(yùn)輸,而三噸大象就不行,能收多少,這個(gè)也要告知對方。哪些是 tcp,哪些是 ip,我是不區(qū)分的,因?yàn)楸緛硭鼈兙蜎]有區(qū)分。
和快遞包裹類似,tcp 不管具體運(yùn)輸路徑,所以它是端到端的。
和快遞包裹不同的是,tcp 指示一個(gè)雙向的交互運(yùn)輸,如何在 “運(yùn)輸單” 上緊湊地控制這個(gè)雙向運(yùn)輸過程是 tcp 協(xié)議的設(shè)計(jì)目標(biāo)之一,序號 和 接收能力 標(biāo)識本端信息,而 “ack” 則捎帶對方的需求,但如果沒有本端報(bào)文需要遞送,ack 也能單獨(dú)發(fā)送,這些信息在雙向交互初始化時(shí)通過四次握手協(xié)商清楚,由于 ack 可稍帶,四次握手合并為三次。
雙向交互協(xié)議最自然的方式是 “單字節(jié)停等”,若果然如此,tcp 就是個(gè)再簡單不過的協(xié)議,但為了效率,單字節(jié)停等擴(kuò)展為單報(bào)文停等,報(bào)文子節(jié)流可拆分,最終是窗口停等,窗口內(nèi)報(bào)文可丟可亂序,一次發(fā)送一窗數(shù)據(jù)就不得不有效處理丟包亂序問題。優(yōu)化總是引入復(fù)雜。
如何檢測丟包,一開始只有超時(shí),后來有了更 trick 的方式,即快速重傳。對于孩子而言,解釋為什么三次重復(fù) ack 標(biāo)識丟包很輕松,他們可以自然理解為什么是三次,如果要解釋,就是事不過三。沒必要進(jìn)一步引申 reordering,因?yàn)檫@不是重點(diǎn)。
tcp 影響了所有傳輸協(xié)議。
如果一開始的 tcp 不是現(xiàn)在這個(gè) tcp,現(xiàn)在的互聯(lián)網(wǎng)就會是另一番景象。
從 tcp 滑動窗口停等 中可以看到一些歷史,另一些歷史可以從編碼和交互的視角來理解。
1970 年代典型的文件傳輸和遠(yuǎn)程登錄(包括文件傳輸?shù)?ftp 以及 email 交互命令)兩類應(yīng)用確實(shí)影響了 tcp 必須是流式停等協(xié)議。
首先,文件傳輸?shù)膶Χ诵枰_拷貝,其次,遠(yuǎn)程登錄實(shí)際上是自己跟自己交互,這就很有趣,傳輸?shù)膶Χ瞬皇侨?#xff0c;無法腦補(bǔ)糾錯(cuò),而交互的本端卻是自己。自己與自己交互不存在腦補(bǔ)的空間,比如輸入一個(gè) “s”,顯然希望馬上回顯一個(gè) “s”,“anderson” 是我自己輸入的,回顯 “andersoX” 時(shí)我會懷疑自己輸入錯(cuò)了,而不是字母傳丟了。
假想另一種平行歷史,如果 1970 年代的核心應(yīng)用是用一個(gè)傳輸協(xié)議向遠(yuǎn)端放電影,流式停等就再無必要,nack 可能會被用來提示關(guān)鍵數(shù)據(jù)丟失,也會有一個(gè)偶爾的指令反饋,但大部分時(shí)間,receiver 可能根本不會有任何反饋。擁塞控制大概會傾向于 receiver 的主動行為。
接下來可以想象,不會有如今樣式的慢啟動,也不會有內(nèi)置的 reno aimd 策略,因?yàn)橄∈璧姆答伈蛔阋则?qū)動這些機(jī)制運(yùn)行。如果 ack 不是 tcp 的必須字段,有關(guān)擁塞控制的所有機(jī)制都將改變,并且也不會出現(xiàn) ack 過多導(dǎo)致的資源搶占問題,特別是在 wifi 環(huán)境下。
說說 aimd,這實(shí)際上是一個(gè)并不需要干預(yù)的自然過程,也印證了主動干預(yù)的合理性。
大片牧場承載著小規(guī)模羊群,但羊群規(guī)模會逐漸變大,當(dāng)羊群規(guī)模略微超過牧場承載能力,羊群就會出現(xiàn)內(nèi)卷性競爭,比如降低代謝率,接下來就會出現(xiàn)大規(guī)模爭奪資源的纏斗,二者相斗必有一傷,在統(tǒng)計(jì)學(xué)意義上,羊群規(guī)模會快速減半,這就是 aimd。同理,當(dāng)城市人口緩慢增加到人與人之間距離小于臨界值,傳染病就會肆虐從而快速減少人口,所以城市化進(jìn)程達(dá)到一定程度必須停止。在理論上,統(tǒng)計(jì)復(fù)用資源不可能實(shí)現(xiàn) 100% 的利用率,這是需要用直感而不是數(shù)學(xué)講明白的。
但不管怎樣,tcp 依然重要。
浙江溫州皮鞋濕,下雨進(jìn)水不會胖。