傳輸/網(wǎng)絡(luò)層(傳輸網(wǎng)絡(luò)層包括)
模塊一:互聯(lián)網(wǎng)與傳輸層協(xié)議
01 | 漫游互聯(lián)網(wǎng):什么是蜂窩網(wǎng)絡(luò)
ISP本地網(wǎng)絡(luò)服務(wù)提供商(Internet Service Provider)
交換技術(shù)的本質(zhì),就是讓數(shù)據(jù)切換路徑。因?yàn)椋W(wǎng)絡(luò)中的數(shù)據(jù)是以分組或封包(Packet)的形式傳輸,因此這個(gè)技術(shù)也稱作封包交換技術(shù)(Packet Switch)。
移動(dòng)網(wǎng)絡(luò)(無(wú)線信號(hào)構(gòu)成了通信鏈路)核心(蜂窩塔即基站) 正六邊形結(jié)構(gòu)
家用網(wǎng)絡(luò)結(jié)構(gòu),家用電器藍(lán)牙控制器,因?yàn)楸阋说奈锫?lián)網(wǎng)設(shè)備不上wifi芯片上便宜的藍(lán)牙芯片。
網(wǎng)絡(luò)基礎(chǔ)設(shè)施往往不能一次性傳輸太大的數(shù)據(jù)量,因此通常會(huì)將數(shù)據(jù)分片傳輸。如果一個(gè)封包損壞,只需要重發(fā)損壞的封包,而不需要重發(fā)所有數(shù)據(jù)。
02 | 傳輸層協(xié)議TCP:TCP為什么握手是3次,揮手是4次?
TCP(Transport Control Protocol)傳輸層協(xié)議,host-to-host數(shù)據(jù)的可靠傳輸,支持全雙工,是連接導(dǎo)向的協(xié)議。
TCP要實(shí)現(xiàn)主機(jī)到主機(jī)的通信,需要知道主機(jī)的網(wǎng)絡(luò)地址。但是tcp不負(fù)責(zé)地址到地址的傳輸,把ip地址交給網(wǎng)絡(luò)層處理。
數(shù)據(jù)鏈路層負(fù)責(zé)信號(hào)在兩個(gè)設(shè)備間傳輸,物理層提供最底層的傳輸能力(傳輸介質(zhì))。
連接是網(wǎng)絡(luò)行為狀態(tài)的記錄(傳輸層概念),會(huì)話(Session)是應(yīng)用的行為(應(yīng)用層)。
3次握手是因?yàn)椋梢酝瑫r(shí)發(fā)syn+ack,四次揮手是因?yàn)榉侄伟l(fā)送ack跟fin。
03 | TCP的封包格式:TCP為什么要粘包和拆包?
穩(wěn)定性,效率(并行線路),收發(fā)數(shù)據(jù)存在緩沖區(qū)。
Sequence Number 和 Achnowledgment Number 是保證可靠性的兩個(gè)關(guān)鍵,發(fā)送接受了多少數(shù)據(jù)。針對(duì)對(duì)方。
Checksum 是校驗(yàn)和,用于校驗(yàn) TCP 段有沒(méi)有損壞。
Data Offset偏移量,表達(dá)數(shù)據(jù)從哪個(gè)字節(jié)開(kāi)始。
滑動(dòng)窗口最關(guān)鍵的功能,保證TCP穩(wěn)定性跟流量控制工具
04 | TCP的穩(wěn)定性:滑動(dòng)窗口和流速控制是怎么回事?
快速重傳(催促機(jī)制):1,2,4到了3沒(méi)到,就會(huì)多次發(fā)送3的ack,接收方收到多段3的ack會(huì)重發(fā)3.
發(fā)送、接收窗口的大小可以用來(lái)控制TCP 協(xié)議的流速。
實(shí)際操作中窗口大小單位是字節(jié)數(shù)。
05 | UDP協(xié)議:TCP協(xié)議和UDP協(xié)議的優(yōu)勢(shì)和劣勢(shì)?
UDP(User Datagram Protocol),目標(biāo)是在傳輸層提供直接發(fā)送報(bào)文的(Datagram)能力。Datagram是傳輸?shù)淖钚挝弧?/strong>
源目端口,消息長(zhǎng)度,Checksum校驗(yàn)和。
相比TCP,UDP很簡(jiǎn)單。
HTTP3.0開(kāi)始使用UDP。
TCP與UDP區(qū)別:
提供可靠傳輸 | 提供報(bào)文交換能力 |
可靠性好 | 只管發(fā)送數(shù)據(jù)包 |
面向連接 | 無(wú)連接,隨時(shí) |
流速控制 | 無(wú) |
比較而言慢 | 傳輸更快 |
不適合高速傳輸場(chǎng)景 | 流媒體,網(wǎng)絡(luò)游戲,單次請(qǐng)求/返回 |
TCP/UDP邊界開(kāi)始模糊,理論上任何一個(gè)TCP協(xié)議構(gòu)成的應(yīng)用協(xié)議都可以用UDP重構(gòu)。
TCP 的成功在于它給人們提供了很多現(xiàn)成、好用的能力。UDP 最核心的價(jià)值是靈活、輕量、傳輸速度快。
模塊二:網(wǎng)絡(luò)層協(xié)議
06 | IPv4 協(xié)議:路由和尋址的區(qū)別是什么?
IP協(xié)議會(huì)遇到的問(wèn)題:
封包損壞(數(shù)據(jù)傳輸過(guò)程中被損壞);
丟包(數(shù)據(jù)發(fā)送過(guò)程中丟失);
重發(fā)(數(shù)據(jù)被重發(fā),比如中間設(shè)備通過(guò) 2 個(gè)路徑傳遞數(shù)據(jù));
亂序(到達(dá)目的地時(shí)數(shù)據(jù)和發(fā)送數(shù)據(jù)不一致)。
主要問(wèn)題:延遲,吞吐量 bps,丟包率
IP協(xié)議的工作原理
接收IP協(xié)議上方的host-to-host協(xié)議傳來(lái)的數(shù)據(jù),進(jìn)行拆分:分片!
IP協(xié)議,給數(shù)據(jù)封包增加一個(gè)協(xié)議頭。
Type Of Service 服務(wù)的類型 四種!
低延遲,高吞吐量,低丟包率,低成本
Identification(報(bào)文的 ID),發(fā)送方分配,代表順序。
尋址:找到頂層網(wǎng)絡(luò)——下層——再下級(jí)——定位設(shè)備
路由:目的在其他局域網(wǎng)中,通過(guò)網(wǎng)關(guān)連接,通往下個(gè)網(wǎng)絡(luò)的路徑,選擇其中一個(gè)網(wǎng)關(guān)。
07 | IPv6 協(xié)議:Tunnel 技術(shù)是什么?
跟IPV4一樣的原理。最核心的能力是確保數(shù)據(jù)可以從發(fā)送主機(jī)到達(dá)接收主機(jī)。
8個(gè)16位總共128位。16進(jìn)制表示,可以省略前64bit的0,只能出現(xiàn)一次::./數(shù)字,只有數(shù)字位有數(shù)據(jù)其他都是0。
IPv6尋址
全局單播尋址:一對(duì)一 (定位網(wǎng)絡(luò)中的設(shè)備)
站點(diǎn)前綴,48bit,ISP或者RIR分配。
子網(wǎng)號(hào):16bit,用于站點(diǎn)內(nèi)部分子網(wǎng)。
接口號(hào):64bit,用于站點(diǎn)內(nèi)部分設(shè)備。
本地單播:類似ipv4的一個(gè)內(nèi)部網(wǎng)絡(luò),要求地址必須以fe80開(kāi)頭,類似我們 IPv4 中127開(kāi)頭的地址
很多公司還是需要一個(gè)內(nèi)部網(wǎng)絡(luò)的。這種情況在 IPv6 的設(shè)計(jì)中屬于局域網(wǎng)絡(luò)。 后面 64 位的 0,然后接上 54 位的設(shè)備編號(hào)。
分組多播:廣播,將消息發(fā)送給多個(gè)接受者
IPv6 中設(shè)計(jì)了分組多播,來(lái)實(shí)現(xiàn)廣播的能力。當(dāng) IP 地址以 8 個(gè) 1 開(kāi)頭,也就是ff00開(kāi)頭,后面會(huì)跟上一個(gè)分組的編號(hào)時(shí),就是在進(jìn)行分組多播。
任意播
本質(zhì)是將消息發(fā)送給多個(gè)接收方,并選擇一條最優(yōu)的路徑。
ipv6跟ipv4兼容情況
之間互相通信:dns查詢dns64,通過(guò)nat64路由器將ipv6地址轉(zhuǎn)換為ipv4。
兩個(gè)ipv6被ipv4隔離:隧道!Tunnel
解決了的問(wèn)題:地址耗盡,減少子網(wǎng),更小的封包頭體積,提升了性能
08 | 局域網(wǎng):NAT 是如何工作的?
局域網(wǎng)數(shù)據(jù)交換(mac地址)
設(shè)備間通信的本質(zhì)是設(shè)備擁有的網(wǎng)卡間進(jìn)行通信。ITEF要求每個(gè)設(shè)備擁有一個(gè)唯一的編號(hào)MAC地址。
網(wǎng)卡網(wǎng)卡間需要交換機(jī)跟網(wǎng)線。
MTU,最大傳輸單元。鏈路層網(wǎng)絡(luò)允許的最大傳輸數(shù)據(jù)組大小。因此IP協(xié)議要根據(jù)MTU拆分封包。
MSS,最大段大小。傳輸層概念
ARP(地址解析協(xié)議)
逐級(jí)緩存的設(shè)計(jì)減少arp請(qǐng)求。
本地—廣播查詢—交換機(jī)——廣播給其他接口
緩存的失效時(shí)間,更新策略,數(shù)據(jù)結(jié)構(gòu)
網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)需要三個(gè)字段,源目mac跟數(shù)據(jù)。
家用路由器也具備交換機(jī)功能,但是當(dāng)arp表很大,還是需要專門的交換設(shè)備。
內(nèi)網(wǎng),通過(guò)路由器轉(zhuǎn)發(fā),源目mac地址會(huì)變換。
連接外網(wǎng)(NAT技術(shù),網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù))
私有ip通過(guò)nat轉(zhuǎn)換為公網(wǎng)ip發(fā)送給服務(wù)器。最核心的能力,就是能夠?qū)?nèi)網(wǎng)中某個(gè) IP 地址映射到外網(wǎng) IP,然后再把數(shù)據(jù)發(fā)送給外網(wǎng)的服務(wù)器。1.NAT需要作為一個(gè)中間層替換IP地址 2.NAT需要緩存內(nèi)網(wǎng)IP地址,出口IP+端口的對(duì)應(yīng)關(guān)系
鏈路層發(fā)送數(shù)據(jù)靠的是mac地址