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