中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

石家莊市網(wǎng)站建設(shè)培訓(xùn)班網(wǎng)絡(luò)營(yíng)銷方法有哪些?

石家莊市網(wǎng)站建設(shè)培訓(xùn)班,網(wǎng)絡(luò)營(yíng)銷方法有哪些?,開發(fā)app定制,做違法網(wǎng)站犯法嗎文章目錄說(shuō)明第一章 計(jì)算機(jī)網(wǎng)絡(luò)概述計(jì)算機(jī)網(wǎng)絡(luò)和互聯(lián)網(wǎng)網(wǎng)絡(luò)邊緣網(wǎng)絡(luò)核心分組交換網(wǎng)的性能網(wǎng)絡(luò)體系結(jié)構(gòu)控制平面和數(shù)據(jù)平面第二章 IP地址分類編址子網(wǎng)劃分無(wú)分類編址特殊用途的IP地址IP地址規(guī)劃和分配第三章 應(yīng)用層應(yīng)用層協(xié)議原理萬(wàn)維網(wǎng)【URL / HTML / HTTP】域名系統(tǒng)DNS動(dòng)態(tài)主機(jī)…

文章目錄

  • 說(shuō)明
  • 第一章 計(jì)算機(jī)網(wǎng)絡(luò)概述
    • 計(jì)算機(jī)網(wǎng)絡(luò)和互聯(lián)網(wǎng)
    • 網(wǎng)絡(luò)邊緣
    • 網(wǎng)絡(luò)核心
    • 分組交換網(wǎng)的性能
    • 網(wǎng)絡(luò)體系結(jié)構(gòu)
    • 控制平面和數(shù)據(jù)平面
  • 第二章 IP地址
    • 分類編址
    • 子網(wǎng)劃分
    • 無(wú)分類編址
    • 特殊用途的IP地址
    • IP地址規(guī)劃和分配
  • 第三章 應(yīng)用層
    • 應(yīng)用層協(xié)議原理
    • 萬(wàn)維網(wǎng)【URL / HTML / HTTP】
    • 域名系統(tǒng)DNS
    • 動(dòng)態(tài)主機(jī)配置協(xié)議DHCP
    • 電子郵件【SMTP / POP3 / IMAP】
  • 第四章 運(yùn)輸層
    • 運(yùn)輸層概述
    • 用戶數(shù)據(jù)報(bào)協(xié)議UDP
    • 可靠傳輸原理
    • 傳輸控制協(xié)議TCP
    • TCP的連接管理
    • TCP的可靠傳輸
    • TCP的流量控制
    • TCP的擁塞控制
  • 第五章 網(wǎng)絡(luò)層
    • 網(wǎng)絡(luò)層概述
    • 網(wǎng)際協(xié)議IP
    • IP分組轉(zhuǎn)發(fā)
    • 網(wǎng)際控制報(bào)文協(xié)議ICMP
    • 路由選擇協(xié)議
    • 專用網(wǎng)相關(guān)概念
    • 多協(xié)議標(biāo)記交換MPLS
  • 第六章 數(shù)據(jù)鏈路層
    • 數(shù)據(jù)鏈路層概述
    • 以太網(wǎng)
    • 地址解析協(xié)議ARP
    • 無(wú)線局域網(wǎng)
    • 點(diǎn)對(duì)點(diǎn)協(xié)議PPP
  • 思維導(dǎo)圖總結(jié)
    • 第一章
    • 第二章
    • 第三章
    • 第四章
    • 第五章
    • 第六章
  • 術(shù)語(yǔ)詞典

說(shuō)明

本博客僅供個(gè)人復(fù)習(xí)參考,知識(shí)點(diǎn)比較混雜,可作為查閱知識(shí)點(diǎn)的參考。
搜索 : Ctrl+F
參考書:
《計(jì)算機(jī)網(wǎng)絡(luò)(第7版)》 謝希仁著

鏈接:https://pan.baidu.com/s/1WLF5CVDIlqRycrAjORxoKQ 
提取碼:kuoe 

《計(jì)算機(jī)網(wǎng)絡(luò)——自頂向下方法》 機(jī)械工業(yè)出版社

文字出現(xiàn)的參考鏈接是補(bǔ)充信息,用來(lái)代替部分知識(shí)點(diǎn)的介紹,請(qǐng)自行瀏覽參考博客。、

末尾的思維導(dǎo)圖來(lái)源于老師的PPT,非常有用!!!!

最后一章是術(shù)語(yǔ)縮寫詞典,正在更新中。

文章中發(fā)現(xiàn)問(wèn)題煩請(qǐng)指出。

第一章 計(jì)算機(jī)網(wǎng)絡(luò)概述

計(jì)算機(jī)網(wǎng)絡(luò)和互聯(lián)網(wǎng)

計(jì)算機(jī)網(wǎng)絡(luò):是由一些通用的、可編程的硬件互連而成。
互聯(lián)網(wǎng):是全球最大的、由眾多異構(gòu)網(wǎng)絡(luò)相互連接而成的計(jì)算機(jī)網(wǎng)絡(luò),是網(wǎng)絡(luò)的網(wǎng)絡(luò)。
特點(diǎn):
連通性:將用戶終端彼此相連。
資源共享:信息共享、軟件共享、硬件共享等
TCP/IP協(xié)議逐漸成為了網(wǎng)絡(luò)互聯(lián)的事實(shí)標(biāo)準(zhǔn)
制定互聯(lián)網(wǎng)的正式標(biāo)準(zhǔn)需要經(jīng)過(guò)兩個(gè)階段:建議標(biāo)準(zhǔn)互聯(lián)網(wǎng)標(biāo)準(zhǔn)

網(wǎng)絡(luò)邊緣

網(wǎng)絡(luò)邊緣部分由所有連接在互聯(lián)網(wǎng)上的主機(jī)以及接入網(wǎng)構(gòu)成。
主機(jī)包括:個(gè)人計(jì)算機(jī)、服務(wù)器、超級(jí)計(jì)算機(jī)、智能手機(jī)、智能家電、智能可穿戴裝備、網(wǎng)絡(luò)攝像頭、汽車以及各種網(wǎng)絡(luò)傳感器等。
接入網(wǎng)指將主機(jī)連接到其邊緣路由器的網(wǎng)絡(luò),邊緣路由器指進(jìn)入互聯(lián)網(wǎng)核心部分后的第一臺(tái)路由器。
接入網(wǎng)包括:ADSL接入、光纖同軸混合網(wǎng)、FTTH接入、以太網(wǎng)接入、WiFi接入以及蜂窩移動(dòng)接入等。
不同的接入網(wǎng)中使用了不同的傳輸媒體。
傳輸媒體包括:雙絞線、同軸電纜、光纖以及自由空間等。

接入網(wǎng)
ADSL接入
ADSL指非對(duì)稱數(shù)字用戶線
采用頻分復(fù)用技術(shù)把用戶線分成了電話、上行數(shù)據(jù)下行數(shù)據(jù)三個(gè)相對(duì)獨(dú)立的信道。用戶可以邊打電話邊上網(wǎng)。

光纖同軸混合網(wǎng)HFC是利用有線電視網(wǎng)現(xiàn)有的基礎(chǔ)設(shè)施,提供的一種寬帶接入網(wǎng)。

光纖到戶FTTH是FTT技術(shù)的一種。最常用的FTTH實(shí)現(xiàn)方案是無(wú)源光網(wǎng)絡(luò)PON。
PON分為:窄帶PON、APON(ATM PON)、EERON (EthernetPON)GPON (Gigabit PON)等。

通過(guò)以太網(wǎng)將主機(jī)連接到邊緣路由器的方法,稱為以太網(wǎng)接入。通過(guò)無(wú)線局域網(wǎng)的接入,稱為WiFi接入。

通過(guò)蜂窩移動(dòng)網(wǎng)絡(luò),將主機(jī)連接到互聯(lián)網(wǎng)的方法稱為蜂窩移動(dòng)接入。
蜂窩移動(dòng)技術(shù)的發(fā)展已經(jīng)經(jīng)歷了4代,俗稱:1G、2G、3G和4G,第5代(5G)標(biāo)準(zhǔn)正在制定中。

傳輸媒體
在這里插入圖片描述

網(wǎng)絡(luò)核心

網(wǎng)絡(luò)核心部分由各種網(wǎng)絡(luò)以及連接這些網(wǎng)絡(luò)的路由器組成。
網(wǎng)絡(luò)核心部分為網(wǎng)絡(luò)邊緣部分的主機(jī)提供通信服務(wù)。
計(jì)算機(jī)網(wǎng)絡(luò)采用分組交換方式,路由器是網(wǎng)絡(luò)核心部分最重要的設(shè)備,是實(shí)現(xiàn)分組交換的關(guān)鍵構(gòu)件,其作用是將收到的分組轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)

在這里插入圖片描述
在端系統(tǒng)數(shù)量很少時(shí),可以采用全互連方法實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信。但全互連方式中,需要
N(N-1)/2條互連線。當(dāng)增加第N+1個(gè)端系統(tǒng)時(shí),必須增設(shè)N條線路。

因此,引入交換設(shè)備稱為交換機(jī)交換結(jié)點(diǎn)。
所有端系統(tǒng)通過(guò)用戶線連接到交換結(jié)點(diǎn)上,由交換結(jié)點(diǎn)控制端系統(tǒng)間的連接。
在這里插入圖片描述
當(dāng)端系統(tǒng)分布的區(qū)域較廣時(shí),需設(shè)置多個(gè)交換結(jié)點(diǎn),交換結(jié)點(diǎn)之間用中繼線相連
當(dāng)交換的范圍更大時(shí),需要再次引交換結(jié)點(diǎn),由此形成交換網(wǎng)。
在這里插入圖片描述

實(shí)現(xiàn)通信必須要有3個(gè)要素,即端系統(tǒng)、傳輸交換。
在通信網(wǎng)絡(luò)中有多種交換方式,電路交換、分組交換報(bào)文交換是其中最典型的三種。

· 傳統(tǒng)的電話網(wǎng)絡(luò)采用電路交換方式;
· 計(jì)算機(jī)網(wǎng)絡(luò)采用分組交換方式;
· 早期的電報(bào)網(wǎng)絡(luò)采用報(bào)文交換方式。

從通信資源分配的角度來(lái)看,交換就是按照某種方式分配傳輸線路的資源

電路交換
電路交換屬于通信資源的預(yù)分配系統(tǒng)。
電路交換方式是面向連接的交換方式。必須經(jīng)過(guò)

建立連接:例如打電話撥號(hào);
數(shù)據(jù)傳輸:例如通話:
釋放連接:例如掛斷電話。

中繼線中多路電話信號(hào)可以通過(guò)頻分復(fù)用時(shí)分復(fù)用等信道復(fù)用技術(shù)共享通信線路資源。
特點(diǎn):
固定分配資源:通信資源在建立連接階段已經(jīng)預(yù)先分配給通話的雙方了,在通話的全部時(shí)間內(nèi),通話的兩個(gè)終端始終占用端到端的通信資源。

分組交換
計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)具有突發(fā)特性,如果使用電路交換方式,通信資源的利用率將極低。
因此,計(jì)算機(jī)網(wǎng)絡(luò)采用分組交換方式。分組交換技術(shù)的出現(xiàn)奠定了互聯(lián)網(wǎng)發(fā)展的基礎(chǔ)。
分組交換屬于通信資源的動(dòng)態(tài)分配系統(tǒng)。
特點(diǎn):

分組;
存儲(chǔ)轉(zhuǎn)發(fā);
逐段占用通信鏈路資源;虛電路或數(shù)據(jù)報(bào)。

分組是互聯(lián)網(wǎng)中傳輸?shù)臄?shù)據(jù)單元。
待發(fā)送的完整數(shù)據(jù)塊稱為報(bào)文(message)。

在這里插入圖片描述
將報(bào)文分成較小的數(shù)據(jù)段,在每個(gè)數(shù)據(jù)段前面增加控制信息,構(gòu)成分組(packet)。分組也稱為。
增加的控制信息稱為首部(header),也稱為包頭

存儲(chǔ)轉(zhuǎn)發(fā)

在互聯(lián)網(wǎng)中,分組交換結(jié)點(diǎn)也稱為路由器。路由器收到一個(gè)分組后,

  1. 先暫時(shí)存儲(chǔ)起來(lái);
  2. 然后根據(jù)首部中的控制信息,找到合適的接口將分組轉(zhuǎn)發(fā)出去。

這種工作方式稱為存儲(chǔ)轉(zhuǎn)發(fā)。

每臺(tái)路由器都以存儲(chǔ)轉(zhuǎn)發(fā)的方式,逐跳(hop)處理,最終將分組交付目的主機(jī)。
目的主機(jī)將分組重新還原成報(bào)文。
在這里插入圖片描述
在分組從H1向H4轉(zhuǎn)發(fā)的過(guò)程中當(dāng)分組在鏈路A-F上傳輸時(shí),其它通信鏈路資源并不被當(dāng)前通信的雙方所占用,即分組交換是逐段占用通信資源的。
假定在主機(jī)H1向主機(jī)H4發(fā)送分組的同時(shí),主機(jī)H7也在向主機(jī)H5發(fā)送分組,兩次通信所發(fā)送的分組都會(huì)通過(guò)鏈路F-C。鏈路F-C上的帶寬資源并不會(huì)預(yù)先分配給某次通信,而是可以為多次通信所共享,其通信資源的利用率較高.

虛電路方式
分組交換包括兩種方式:虛電路(Virtual Circuit,VC)方式數(shù)據(jù)報(bào)(datagram)方式。
虛電路方式是面向連接的,虛電路中連接,不是物理連接,只是一條邏輯連接。
建立虛電路后,在數(shù)據(jù)通信階段,路由器根據(jù)虛電路標(biāo)識(shí)轉(zhuǎn)發(fā)分組,屬于相同虛電路的數(shù)據(jù)分組將沿著相同的路徑、按序通過(guò)網(wǎng)絡(luò),到達(dá)目的結(jié)點(diǎn)。

數(shù)據(jù)報(bào)方式
數(shù)據(jù)報(bào)方式是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要先建立連接。
數(shù)據(jù)報(bào)方式中,路由器為每個(gè)分組獨(dú)立選擇轉(zhuǎn)發(fā)接口,從相同源結(jié)點(diǎn)發(fā)往相同目的結(jié)點(diǎn)的數(shù)據(jù)分組,有可能沿著不同的路徑,也有可能失序通過(guò)網(wǎng)絡(luò),到達(dá)目的結(jié)點(diǎn)。
目前,互聯(lián)網(wǎng)采用的交換方式就是數(shù)據(jù)報(bào)方式的分組交換

分組交換的問(wèn)題
分組交換雖然提高了資源利用率,但也帶來(lái)如下問(wèn)題:

增大了時(shí)延:分組在各路由器中存儲(chǔ)轉(zhuǎn)發(fā)時(shí),需要在隊(duì)列中排隊(duì),這會(huì)增加些時(shí)延。
增大了開銷:每一個(gè)分組的首部中都包含一些控制信息,這會(huì)增加一定的開銷。

報(bào)文交換
報(bào)文交換方式也采用存儲(chǔ)轉(zhuǎn)發(fā)方式。
報(bào)文交換與分組交換的區(qū)別在于:
報(bào)文交換傳輸?shù)臄?shù)據(jù)單元是一個(gè)完整的報(bào)文,而分組交換傳輸?shù)臄?shù)據(jù)單元是較小的分組。

三種交換方式的比較
在這里插入圖片描述
當(dāng)跨越的結(jié)點(diǎn)數(shù)較多時(shí),報(bào)文交換的時(shí)延會(huì)顯著增大。而分組交換是報(bào)文交換的流水線方式,顯著減小了時(shí)延。

分組交換網(wǎng)的性能

可以用如下指標(biāo)衡量分組交換的性能:

帶寬;
吞吐量;
時(shí)延:處理時(shí)延、排隊(duì)時(shí)延、傳輸時(shí)延(發(fā)送時(shí)延)、傳播時(shí)延;
丟包率;
利用率:信道利用率、網(wǎng)絡(luò)利用率。

帶寬
帶寬是頻帶寬度的簡(jiǎn)稱,單位是赫茲(Hz)。

·信號(hào)的帶寬指該信號(hào)所包含的各種不同頻率成分所占據(jù)的頻率范圍;
·信道的帶寬指該信道允許通過(guò)的信號(hào)的頻帶范圍。

如:傳統(tǒng)的電話信號(hào)的標(biāo)準(zhǔn)帶寬是3.1kHz(從300Hz到3.4kHz),傳統(tǒng)的電話信道的標(biāo)準(zhǔn)帶寬是4kHz(從0Hz到4kHz)。
在計(jì)算機(jī)網(wǎng)絡(luò)中,帶寬是指在單位時(shí)間內(nèi)能傳輸?shù)淖畲髷?shù)據(jù)量,也稱為最高數(shù)據(jù)率,用來(lái)表示網(wǎng)絡(luò)中某信道的數(shù)據(jù)傳送能力,單位是比特每秒(bt/s)。
·如:傳統(tǒng)以太網(wǎng)的帶寬是10Mbit/s。
在帶寬的兩種表述中,其本質(zhì)是相同的,前者是其頻域稱謂,后者是其時(shí)域稱謂。

吞吐量
吞吐量表示在單位時(shí)間內(nèi)通過(guò)某個(gè)網(wǎng)絡(luò)或接口的實(shí)際數(shù)據(jù)量,單位是比特每秒(bit/s)

以文件傳輸應(yīng)用為例,主機(jī)在任何瞬間接收到該文件的速率稱為瞬時(shí)吞吐量,主機(jī)收到完整文件后計(jì)算的平均速率稱為平均吞吐量

端到端吞吐量是衡量計(jì)算機(jī)網(wǎng)絡(luò)性能的一個(gè)重要指標(biāo)。
端到端吞吐量受到網(wǎng)絡(luò)帶寬的限制。
端到端吞吐量也會(huì)受到網(wǎng)絡(luò)中其它通信量的影響。

時(shí)延
分組從源主機(jī)出發(fā),經(jīng)過(guò)一系列路由器,最終到達(dá)目的主機(jī),在這個(gè)過(guò)程中所花費(fèi)的時(shí)間稱為端到端時(shí)延。端到端時(shí)延由處理時(shí)延(processingdelay)、排隊(duì)時(shí)延(queuing delay)、傳輸時(shí)延(transmission delay)傳播時(shí)延(propagation delay)等幾個(gè)部分組成。
處理時(shí)延:結(jié)點(diǎn)在收到分組后,結(jié)點(diǎn)處理分組所花費(fèi)的時(shí)間,稱為處理時(shí)延
排隊(duì)時(shí)誕:分組進(jìn)入路由器后,在輸入隊(duì)列或輸出隊(duì)列中排隊(duì)所產(chǎn)生的時(shí)延稱為排隊(duì)時(shí)延。

傳輸時(shí)延:結(jié)點(diǎn)將分組傳輸?shù)芥溌飞纤枰臅r(shí)間,也稱為發(fā)送時(shí)延。

發(fā)送時(shí)延=分組長(zhǎng)度(bit) / 發(fā)送速率(bit/s)

傳播時(shí)延:電磁波在信道中傳播一定的距離所花費(fèi)的時(shí)間稱為傳播時(shí)延

傳播時(shí)延=信道長(zhǎng)度(m) / 電磁波在信道上的傳播速率(m/s)

端到端時(shí)延=處理時(shí)延+排隊(duì)時(shí)延+發(fā)送時(shí)延+傳播時(shí)延
往返的端到端時(shí)延通常稱為往返時(shí)間(Round-Trip Time,RTT)

丟包率
當(dāng)分組到達(dá)路由器的速率超過(guò)路由器發(fā)送分組的速率時(shí),路由器有可能丟棄到達(dá)的分組,這種現(xiàn)象稱為丟包。
丟包代表網(wǎng)絡(luò)出現(xiàn)了擁塞。丟包率在很大程度上反映網(wǎng)絡(luò)的阻塞程度,常被用于評(píng)價(jià)和衡量網(wǎng)絡(luò)性能。
丟包率=(Ns-Nr) / Ns
其中N代表發(fā)送的分組總數(shù),Nr代表收到的分組總數(shù),Ns - Nr 代表丟失的分組總數(shù)。

利用率
利用率包括信道利用率網(wǎng)絡(luò)利用率兩種。
信道利用率指出某信道有百分之幾的時(shí)間是被利用的(有數(shù)據(jù)通過(guò))。網(wǎng)絡(luò)利用率側(cè)是全網(wǎng)絡(luò)的信道利用率的加權(quán)平均值。
信道利用率并非越高越好。當(dāng)某信道的利用率增大時(shí),該信道引起的時(shí)延也就迅速增加。
在適當(dāng)?shù)募俣l件下,時(shí)延和網(wǎng)絡(luò)利用率之間的關(guān)系如下式:

D = D0 / (1-U)

其中,D表示網(wǎng)絡(luò)當(dāng)前的時(shí)延,D0表示網(wǎng)絡(luò)空閑時(shí)的時(shí)延,U是網(wǎng)絡(luò)的利用率
信道或網(wǎng)絡(luò)的利用率過(guò)高會(huì)產(chǎn)生非常大的時(shí)延。

網(wǎng)絡(luò)體系結(jié)構(gòu)

分層、協(xié)議和服務(wù)
為了降低網(wǎng)絡(luò)設(shè)計(jì)的復(fù)雜性,絕大多數(shù)網(wǎng)絡(luò)都按照分層的方法進(jìn)行設(shè)計(jì)。在分層設(shè)計(jì)思想中,每一層都建立在下一層的基礎(chǔ)之上,下層向上一層提供特定的服務(wù)。
對(duì)等層的雙方之間的約定稱為協(xié)議。
每層協(xié)議都完全獨(dú)立于其它層的協(xié)議,完成本層的功能。
分層的設(shè)計(jì)方式具有靈活性好、耦合性低等優(yōu)點(diǎn),并且易于開發(fā)和維護(hù),方便進(jìn)行標(biāo)準(zhǔn)化工作。

在互聯(lián)網(wǎng)中,為進(jìn)行網(wǎng)絡(luò)中的數(shù)據(jù)交換而建立的規(guī)則、標(biāo)準(zhǔn)和約定稱為網(wǎng)絡(luò)協(xié)議,簡(jiǎn)稱為協(xié)議。
網(wǎng)絡(luò)協(xié)議主要由以下三個(gè)要素組成:

①語(yǔ)法:即數(shù)據(jù)與控制信息的格式:
②語(yǔ)義:即控制信息的含義;
③同步:即事件順序的詳細(xì)說(shuō)明。

各層所有協(xié)議的集合被稱為協(xié)議棧協(xié)議族。
任何發(fā)送或接收消息的硬件或軟件進(jìn)程稱為實(shí)體。在不同主機(jī)上,相對(duì)應(yīng)層次上的實(shí)體稱為對(duì)等實(shí)體。
每層協(xié)議的實(shí)現(xiàn)都保證了向上層實(shí)體提供服務(wù)。

在這里插入圖片描述
協(xié)議是水平方向的,控制著對(duì)等實(shí)體之間的信息交換;
服務(wù)是垂直方向的,控制著相鄰層次實(shí)體之間的信息交換;
對(duì)等實(shí)體之間交換的數(shù)據(jù)單位通常稱為協(xié)議數(shù)據(jù)單元PDU;
相鄰層次實(shí)體之間交換的數(shù)據(jù)單位通常稱為服務(wù)數(shù)據(jù)單元SDU。

層和協(xié)議的集合成為網(wǎng)絡(luò)體系結(jié)構(gòu)。
TCP/IP協(xié)議是互聯(lián)網(wǎng)上事實(shí)的國(guó)際標(biāo)準(zhǔn),定義了四層協(xié)議棧。
OSI參考模型定義了七層協(xié)議棧。
互聯(lián)網(wǎng)體系結(jié)構(gòu)實(shí)際采用了五層協(xié)議棧

在這里插入圖片描述
對(duì)于互聯(lián)網(wǎng)的五層協(xié)議
應(yīng)用層:

主要任務(wù):通過(guò)進(jìn)程間的通信解決某一類應(yīng)用問(wèn)題。
常見(jiàn)協(xié)議
域名系統(tǒng)DNS;超文本傳送協(xié)HTTP;動(dòng)態(tài)主機(jī)配置協(xié)議DHCP;簡(jiǎn)單郵件傳送協(xié)議SMTP等。
協(xié)議數(shù)據(jù)單元:報(bào)文。

運(yùn)輸層:

主要任務(wù):向應(yīng)用進(jìn)程提供端到端的通信服務(wù)。
常見(jiàn)協(xié)議
傳輸控制協(xié)議TCP:面向連接、可靠;
用戶數(shù)據(jù)報(bào)協(xié)UDP:無(wú)連接、不可靠。
協(xié)議數(shù)據(jù)單元:TCP:報(bào)文段;UDP:用戶數(shù)據(jù)報(bào)。

網(wǎng)絡(luò)層:

主要任務(wù):向上層提供主機(jī)到主機(jī)的通信服務(wù),包括路由選擇和分組轉(zhuǎn)發(fā)。
常見(jiàn)協(xié)議
網(wǎng)際協(xié)議IP;;網(wǎng)際控制報(bào)文協(xié)議ICMP;網(wǎng)際組管理協(xié)議IGMP;地址解析協(xié)議ARP等。
協(xié)議數(shù)據(jù)單元
IP協(xié)議:IP分組或P數(shù)據(jù)報(bào)。

數(shù)據(jù)鏈路層:

主要任務(wù)
向上層提供相鄰結(jié)點(diǎn)間的通信服務(wù),包括封裝成幀、尋址、差錯(cuò)控制和媒體訪問(wèn)控制等。
常見(jiàn)協(xié)議
以太網(wǎng)Ethernet協(xié)議、點(diǎn)對(duì)點(diǎn)PPP協(xié)議、無(wú)線局域網(wǎng)WLAN協(xié)議等。
協(xié)議數(shù)據(jù)單元:幀。

物理層:

主要任務(wù):透明的傳輸比特流。
常見(jiàn)協(xié)議:與實(shí)際的傳輸媒體相關(guān),在不同的傳輸媒體上定義了不同的物理層協(xié)議。
協(xié)議數(shù)據(jù)單元
碼元 : 一個(gè)碼元可以理解為一個(gè)脈沖信號(hào),一個(gè)碼元可以攜帶一比特信息,也可以攜帶多比特信息,也允許多個(gè)碼元一起攜帶一比特信息。

在這里插入圖片描述
封裝和解封
逐層封裝的過(guò)程發(fā)生在發(fā)送數(shù)據(jù)時(shí),逐層解封的過(guò)程發(fā)生在接收數(shù)據(jù)時(shí)。
在這里插入圖片描述復(fù)用和分用
復(fù)用可以發(fā)生在多個(gè)層次,在每層都有不同類型的標(biāo)識(shí)符,用于指明封裝的信息屬于上層哪一個(gè)協(xié)議。復(fù)用的過(guò)程發(fā)生在封裝時(shí)。分用的過(guò)程發(fā)生在解封時(shí)。

控制平面和數(shù)據(jù)平面

分組交換網(wǎng)絡(luò)的操作涉及兩種分組的處理:控制分組數(shù)據(jù)分組
控制分組攜帶的信息用來(lái)指導(dǎo)結(jié)點(diǎn)如何轉(zhuǎn)發(fā)數(shù)據(jù),而數(shù)據(jù)分組則包括用戶程序要發(fā)送的數(shù)據(jù)。
控制平面最重要的功能是路由選擇。此外還包括差錯(cuò)報(bào)告、系統(tǒng)配置和管理以及資源的分配等。
數(shù)據(jù)平面最重要的功能是分組轉(zhuǎn)發(fā)。

傳統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)中,每臺(tái)分組交換設(shè)備都包括一個(gè)數(shù)據(jù)平面和一個(gè)控制平面。因此,其控制平面是分布式的。
軟件定義網(wǎng)絡(luò)SDN中的控制平面與數(shù)據(jù)平面是分離的。即分組交換設(shè)備上僅具有數(shù)據(jù)平面,而控制平面位于一個(gè)邏輯上的集中式控制器中。因此,其控制平面是集中式的。

第二章 IP地址

在TCP/IP體系結(jié)構(gòu)中,IP地址是一個(gè)最基本的概念。連接到互聯(lián)網(wǎng)的每臺(tái)設(shè)備至少具有一個(gè)IP地址。
IP地址是互聯(lián)網(wǎng)中使用的網(wǎng)絡(luò)層地址,用來(lái)標(biāo)識(shí)一臺(tái)主機(jī)。嚴(yán)格來(lái)說(shuō),IP地址用來(lái)標(biāo)識(shí)主機(jī)上的網(wǎng)絡(luò)接口。
IP地址現(xiàn)在由互聯(lián)網(wǎng)名字和數(shù)字分配機(jī)構(gòu)ICANN負(fù)責(zé)分配和管理
IP地址是一個(gè)32位的二進(jìn)制數(shù),為了便于書寫和記憶,IP地址采用點(diǎn)分十進(jìn)制記法表示。

在這里插入圖片描述
把32位的IP地址分為4組,每組8位,然后將每組數(shù)字用十進(jìn)制表示,并且在這些數(shù)字之間加上一個(gè)點(diǎn),就稱為IP地址的點(diǎn)分十進(jìn)制記法。

分層結(jié)構(gòu)
IP地址采用了分層(hierarchical)結(jié)構(gòu),即IP地址由對(duì)應(yīng)互聯(lián)網(wǎng)某種層次結(jié)構(gòu)的幾個(gè)部分構(gòu)成。
IP地址包括兩部分:網(wǎng)絡(luò)部分主機(jī)部分。
IP地址的網(wǎng)絡(luò)部分指明主機(jī)連接到哪個(gè)網(wǎng)絡(luò),所有連到同一網(wǎng)絡(luò)上的主機(jī),其IP地址的網(wǎng)絡(luò)部分相同。
IP地址的主機(jī)部分唯一標(biāo)識(shí)了特定網(wǎng)絡(luò)中的一臺(tái)主機(jī)。
采用分層結(jié)構(gòu)的IP地址后,路由器可以僅根據(jù)IP地址的網(wǎng)絡(luò)部分來(lái)轉(zhuǎn)發(fā)分組,而無(wú)需考慮IP地址的主機(jī)部分。
編址方案的演變
IP地址的編址方案經(jīng)歷了三個(gè)歷史階段:
分類編址。將IP地址分為A、B、C、D、E五類,是最基本的編址方案,在1981年通過(guò)的RFC790中就包含了A、B、C類地址的相關(guān)規(guī)定。
子網(wǎng)劃分。是在分類編址的基礎(chǔ)上所作的改進(jìn),1985年通過(guò)的RFC950中包含了相關(guān)的規(guī)定。
無(wú)分類編址?;跓o(wú)類域間路由(Classless Inter-Domain Routing,(CDR)的編址方案,是目前正在使用的編址方案。在1993年通過(guò)的RFC1519中提出后,很快就得到推廣應(yīng)用。2006年,RFC1519被RFC4632替換。

分類編址

在分類編址方案中,采用兩級(jí)編址方案,每個(gè)單播IP地址都由兩個(gè)字段組成。
IP地址 ::= {<網(wǎng)絡(luò)號(hào)>,<主機(jī)號(hào)>}
其中,網(wǎng)絡(luò)部分是網(wǎng)絡(luò)號(hào);主機(jī)部分是主機(jī)號(hào)
由于不同網(wǎng)絡(luò)中可能包含不同數(shù)量的主機(jī),一種簡(jiǎn)單的劃分方法是依據(jù)預(yù)計(jì)的主機(jī)數(shù)量,分類編址方案中將不同大小的IP地址空間分配給不同的網(wǎng)絡(luò)。
路由器根據(jù)IP地址的網(wǎng)絡(luò)部分來(lái)轉(zhuǎn)發(fā)分組。

五類IP地址
在這里插入圖片描述
IP地址空間被劃分為五類,命名為A、B、C、D和E。

A、B、C類地址空間用于單播地址;
D類地址用于多播地址;
E類地址為保留地址。

A、B、C類IP地址
A類、B類和C類地址屬于單播地址,由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)兩部分組成。在單播地址空間中,有部分地址被用作特殊用途,不作為單播地址使用。

在這里插入圖片描述
特殊地址中,主機(jī)號(hào)部分全為1的地址都稱為廣播地址。
網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)全1的地址用于本網(wǎng)絡(luò)上的廣播,也稱為受限廣播,其傳播范圍僅限發(fā)送方所屬網(wǎng)絡(luò),路由器不轉(zhuǎn)發(fā)受限廣播。
網(wǎng)絡(luò)號(hào)為指定網(wǎng)絡(luò),主機(jī)號(hào)全1的地址用于向指定網(wǎng)絡(luò)發(fā)送廣播數(shù)據(jù)報(bào),這種廣播也稱為定向廣播。
最初互聯(lián)網(wǎng)建議支持路由器轉(zhuǎn)發(fā)定向廣播,而且默認(rèn)啟用。但RFC2644變更了該策略,要求路由器默認(rèn)禁止轉(zhuǎn)發(fā)定向廣播。
本地環(huán)回測(cè)試地址用于本主機(jī)的進(jìn)程間通信使用,通常僅使用127.0.0.1

排除以上特殊地址后,剩余的地址屬于A、B、C類網(wǎng)絡(luò)的可指派地址

在這里插入圖片描述每個(gè)網(wǎng)絡(luò)中主機(jī)號(hào)全1和主機(jī)號(hào)全0的不能指派
A類網(wǎng)絡(luò)中,網(wǎng)絡(luò)號(hào)0和127不能指派

路由器和主機(jī)的IP地址
同一個(gè)網(wǎng)絡(luò)上的主機(jī)其IP地址中的網(wǎng)絡(luò)號(hào)都相同;
不同網(wǎng)絡(luò)上的主機(jī)其IP地址中的網(wǎng)絡(luò)號(hào)不同。
路由器總是具有多個(gè)IP地址,路由器的每一個(gè)接口,其IP地址的網(wǎng)絡(luò)號(hào)都不同。

子網(wǎng)劃分

當(dāng)一些較大的單位或組織內(nèi)部組建了多個(gè)局域網(wǎng),在IP地址的兩級(jí)編址方案下,為這些局域網(wǎng)分配IP地址有困難。
RFC950提出了子網(wǎng)劃分,來(lái)解決這樣的問(wèn)題
子網(wǎng)劃分將IP地址從兩級(jí)編址方案擴(kuò)展為三級(jí)編址方案,包括兩種方式:

  1. 定長(zhǎng)子網(wǎng)劃分
  2. 變長(zhǎng)子網(wǎng)劃分

定長(zhǎng)子網(wǎng)劃分
子網(wǎng)劃分的方法是從IP地址的主機(jī)號(hào)部分借用若干位作為子網(wǎng)號(hào),這樣,兩級(jí)IP地址在本單位內(nèi)部就變?yōu)槿?jí)IP地址。

IP地址:={<網(wǎng)絡(luò)號(hào)>,<子網(wǎng)號(hào)>,<主機(jī)號(hào)>}

互聯(lián)網(wǎng)上的路由器仍然將網(wǎng)絡(luò)號(hào)看作IP地址的網(wǎng)絡(luò)部分;
單位的邊界路由器和內(nèi)部路由器將網(wǎng)絡(luò)號(hào)+子網(wǎng)號(hào)記作網(wǎng)絡(luò)地址,將網(wǎng)絡(luò)地址看作IP地址的網(wǎng)絡(luò)部分。
路由器根據(jù)IP地址的網(wǎng)絡(luò)部分來(lái)轉(zhuǎn)發(fā)分組。

例子:
以一個(gè)B類網(wǎng)絡(luò)139.9.0.0為例討論子網(wǎng)劃分。假設(shè)申請(qǐng)到該B類地址的單位,從主機(jī)號(hào)部分借用8位作為子網(wǎng)號(hào),則劃分子網(wǎng)后的P地址結(jié)構(gòu)如圖所示。
在這里插入圖片描述
本例中,支持最多配置28=256個(gè)子網(wǎng),每個(gè)子網(wǎng)最多可包含28-2=254臺(tái)主機(jī)。
劃分子網(wǎng)后,主機(jī)號(hào)為全0和全1的P地址仍然不能指派給主機(jī)。
本例中所有子網(wǎng)的子網(wǎng)號(hào)長(zhǎng)度相等,這種子網(wǎng)劃分方式稱為定長(zhǎng)子網(wǎng)劃分。

假設(shè)該單位已經(jīng)組建了3個(gè)局域網(wǎng),網(wǎng)絡(luò)管理員為它們分配了子網(wǎng)號(hào)5、10和15,其余的子網(wǎng)號(hào)暫時(shí)保留。
劃分子網(wǎng)后,B類網(wǎng)絡(luò)139.9.0.0對(duì)外部仍表現(xiàn)為一個(gè)網(wǎng)絡(luò),當(dāng)邊界路由器和內(nèi)部路由器收到P數(shù)據(jù)報(bào)后按照網(wǎng)絡(luò)地址轉(zhuǎn)發(fā)分組。
在這里插入圖片描述
子網(wǎng)掩碼
劃分子網(wǎng)后,網(wǎng)絡(luò)內(nèi)部的路由器必須能夠區(qū)分發(fā)往不同子網(wǎng)的分組。
RFC950中定義了子網(wǎng)掩碼,用以從IP地址中獲取網(wǎng)絡(luò)地址。
子網(wǎng)掩碼中的1對(duì)應(yīng)于引P地址中的網(wǎng)絡(luò)號(hào)和子網(wǎng)號(hào),而子網(wǎng)掩碼中的0對(duì)應(yīng)于
子網(wǎng)劃分后的P地址中的主機(jī)號(hào)

子網(wǎng)掩碼可以采用點(diǎn)分十進(jìn)制記法表示,也可以用掩碼中1的位數(shù)表示,稱為前綴長(zhǎng)度。
上例中,三個(gè)子網(wǎng)的子網(wǎng)掩碼均為255.255.255.0,前綴長(zhǎng)度為24。

常見(jiàn)的子網(wǎng)掩碼:
在這里插入圖片描述
默認(rèn)子網(wǎng)掩碼:

A類地址的默認(rèn)子網(wǎng)掩碼為255.0.0.0;
B類地址的默認(rèn)子網(wǎng)掩碼為255.255.0.0;
C類地址的默認(rèn)子網(wǎng)掩碼為255.255.255.0

子網(wǎng)掩碼的按位與操作
將IP地址與其子網(wǎng)掩碼做按位與操作(AND),即可得到相應(yīng)的網(wǎng)絡(luò)地址。
如上例中,邊界路由器收到目的IP地址為139.9.10.11的IP數(shù)據(jù)報(bào),將該IP地址與子網(wǎng)掩碼255.255.255.0做按位與操作的過(guò)程如下。

在這里插入圖片描述計(jì)算得出網(wǎng)絡(luò)地址為139.9.10.0

變長(zhǎng)子網(wǎng)劃分
如果將一個(gè)網(wǎng)絡(luò)劃分為多個(gè)大小不同的子網(wǎng),以適應(yīng)多個(gè)子網(wǎng)具有不同數(shù)量主機(jī)的需求。這種子網(wǎng)劃分方式稱為變長(zhǎng)子網(wǎng)劃分
在變長(zhǎng)子網(wǎng)劃分中,各子網(wǎng)的子網(wǎng)號(hào)部分長(zhǎng)度不同,因此其子網(wǎng)掩碼的前綴長(zhǎng)度不同,這種子網(wǎng)掩碼稱為變長(zhǎng)子網(wǎng)掩碼VLSM。

在上小節(jié)定長(zhǎng)子網(wǎng)劃分的例子中,如果將子網(wǎng)1進(jìn)一步劃分為兩個(gè)子網(wǎng),將它們的子網(wǎng)掩碼配置為255.255.255.128即子網(wǎng)掩碼前綴長(zhǎng)度為25,就得到一個(gè)變長(zhǎng)子網(wǎng)劃分的實(shí)例。
進(jìn)行了變長(zhǎng)子網(wǎng)劃分后,整個(gè)網(wǎng)絡(luò)對(duì)外部仍表現(xiàn)為一個(gè)網(wǎng)絡(luò)。
在這里插入圖片描述
在這里插入圖片描述

無(wú)分類編址

無(wú)分類編址方案是為了緩解IPV4的分配壓力。

ETF在VLSM的基礎(chǔ)上,研究出了無(wú)分類編址方案,它的正式名字是無(wú)分類域間路由選擇(Classless Inter-Domain Routing,ClDR)
CIDR消除了傳統(tǒng)的A類、B類和C類地址以及劃分子網(wǎng)的概念,可以更加有效地分配IPv4地址空間。
CIDR將P地址從三級(jí)編址改回兩級(jí)編址,但這已經(jīng)是無(wú)分類的兩級(jí)編址。

IP地址:={<網(wǎng)絡(luò)前綴>,<主機(jī)號(hào)>}

其中,網(wǎng)絡(luò)部分是網(wǎng)絡(luò)前綴;主機(jī)部分是主機(jī)號(hào)。
路由器根據(jù)P地址的網(wǎng)絡(luò)部分來(lái)轉(zhuǎn)發(fā)分組。

CIDR采用斜線記法,也稱為CIDR記法,即在IP地址后面加上斜線 /,然后寫上網(wǎng)絡(luò)前綴所占的位數(shù)。

如IP地址:222.22.65.10/20的網(wǎng)絡(luò)前綴為20位。

網(wǎng)絡(luò)前綴消除了一個(gè)IP地址中網(wǎng)絡(luò)和主機(jī)號(hào)的預(yù)定義分隔,使更細(xì)粒度的IP地址分配成為可能。
網(wǎng)絡(luò)前綴都相同的連續(xù)的IP地址組成一個(gè)CIDR地址塊。

已知CIDR地址塊中的任何一個(gè)地址,就可以求出這個(gè)地址塊的起始地址(即最小地址)和最大地址,以及地址塊中的地址數(shù),
在這里插入圖片描述
該地址塊共有212=4096個(gè)地址,最大允許指派的主機(jī)數(shù)為212一2=4094個(gè)。
通常用地址塊中的最小地址和網(wǎng)絡(luò)前綴的位數(shù)標(biāo)識(shí)地址塊,上述地址塊可記為222.22.64.0/20

CIDR掩碼
在CIDR中,使用地址掩碼從IP地址中獲取網(wǎng)絡(luò)前綴。地址掩碼由一串1和一串0組成,而1的個(gè)數(shù)就是網(wǎng)絡(luò)前綴的長(zhǎng)度。地址掩碼也稱為CIDR掩碼,或簡(jiǎn)稱為掩碼。

IP地址與CIDR掩碼做按位與操作,可以獲得網(wǎng)絡(luò)前綴。
雖然CIDR不再使用子網(wǎng)的概念和子網(wǎng)號(hào),但申請(qǐng)到一個(gè)CIDR地址塊的單位仍然可以在本單位內(nèi)根據(jù)需要?jiǎng)澐殖鲆恍┳泳W(wǎng)。這些子網(wǎng)的網(wǎng)絡(luò)前綴比整個(gè)單位的網(wǎng)絡(luò)前綴要長(zhǎng)些。

路由聚合
CIDR不僅可以提高IPv4地址空間的分配效率,也可以用來(lái)減少路由器中路由表的項(xiàng)目數(shù),改善路由器的性能,這個(gè)功能可以通過(guò)路由聚合來(lái)實(shí)現(xiàn)。
路由聚合是指將相鄰CIDR地址塊的網(wǎng)絡(luò)前綴合并成一個(gè)較短的網(wǎng)絡(luò)前綴,聚合后的一條路由信息可以覆蓋更多地址空間。
由于有些聚合后的CIDR地址塊包含了多個(gè)C類地址,路由聚合也被稱為構(gòu)成超網(wǎng)。

兩個(gè)CIDR地址塊能夠聚合需要滿足以下條件:

①兩個(gè)地址塊相鄰且大小一致;
②兩個(gè)地址塊的前n位相同:
③聚合前后,CIDR地址塊包含的IP地址相同。

在這里插入圖片描述
在CIDR的應(yīng)用中,有一種特殊的情況,主機(jī)號(hào)全0和全1的P地址可以使用。
當(dāng)路由器之間被一條點(diǎn)到點(diǎn)鏈路連接,則每個(gè)端點(diǎn)都需要分配一個(gè)IP地址,且兩臺(tái)路由器之間的網(wǎng)絡(luò)僅包含兩個(gè)IP地址,為了節(jié)省IP地址,RFC3021建議將/31地址塊中包含的兩個(gè)地址分配給兩臺(tái)路由器。
相應(yīng)的,在IPv6中,對(duì)于這種特殊情況,RFC6164中也建議使用/127地址塊。

特殊用途的IP地址

常見(jiàn)的特殊用途地址包括:

專用網(wǎng)絡(luò)地址
"鏈路本地”地址
運(yùn)營(yíng)商級(jí)NAT共享地址
用于文檔的測(cè)試網(wǎng)絡(luò)地址
環(huán)回測(cè)試地址
受限廣播地址

專用網(wǎng)絡(luò)地址
專用網(wǎng)是指企業(yè)或機(jī)構(gòu)內(nèi)部專用的網(wǎng)絡(luò),也稱為私有網(wǎng)絡(luò)。
專用網(wǎng)絡(luò)內(nèi)的IP地址不需要向ICANN申請(qǐng),RFC1918和RFC6890規(guī)定了三塊IP地址空間作為專用網(wǎng)絡(luò)地址,它們也稱為專有地址,僅用于專用網(wǎng)絡(luò)內(nèi)部的主機(jī)和路由器之間的通信。

①10.0.0.0-10.255.255.255(10.0.0.0/8);
②172.16.0.0~172.31.255.255(172.16.0.0/12);
③192.168.0.0~192.168.255.255(192.168.0.0/16)。

在專用網(wǎng)絡(luò)內(nèi)分配P地址,只需要保證在專用網(wǎng)絡(luò)內(nèi)唯一即可。
當(dāng)專用網(wǎng)絡(luò)內(nèi)的主機(jī)需要和互聯(lián)網(wǎng)上的主機(jī)通信時(shí),需要利用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT。

鏈路本地地址
為主機(jī)配置IP地址,可以采用手動(dòng)方式自動(dòng)方式
手動(dòng)配置的方式稱為靜態(tài)IP地址配置,自動(dòng)配置方式利用動(dòng)態(tài)主機(jī)配置協(xié)議DHCP進(jìn)行配置。
在選擇自動(dòng)配置P地址后,如果主機(jī)獲取P地址失敗,則操作系統(tǒng)會(huì)自動(dòng)分配一個(gè)鏈路本地地址(Link-Local address)給主機(jī)。
鏈路本地地址由RFC3927規(guī)定,包含一個(gè)/16地址塊:169.254.0.0/16。
鏈路本地地址僅用于同一個(gè)物理網(wǎng)絡(luò)上的、都配置了鏈路本地地址的主機(jī)之間的通信。

運(yùn)營(yíng)商級(jí)NAT共享地址
ISP也被稱為運(yùn)營(yíng)商。由于能用于互聯(lián)網(wǎng)通信的公網(wǎng)地址非常緊缺,運(yùn)營(yíng)商也不能夠再獲得新的公網(wǎng)IP地址。
為了滿足新用戶接入互聯(lián)網(wǎng)的需求,RFC6598規(guī)定了一個(gè)/10地址塊100.64.0.0/10,用作運(yùn)營(yíng)商級(jí)NAT(Carrier-Grade NAT,CGN)共享地址,記作CGN地址。
CGN地址只能用于ISP的內(nèi)部網(wǎng)絡(luò),每個(gè)ISP都可以使用CGN地址。
用戶通過(guò)ISP訪問(wèn)互聯(lián)網(wǎng)需要經(jīng)過(guò)兩次NAT。

在這里插入圖片描述
用于文檔的測(cè)試網(wǎng)絡(luò)地址

在各種技術(shù)規(guī)范或者技術(shù)文檔中,經(jīng)常需要使用某些網(wǎng)絡(luò)示例。為了避免使用已分配給他人的地址而引起沖突的可能,RFC5737保留了3個(gè)地址塊,專用于在文檔中做測(cè)試網(wǎng)絡(luò)地址。

①TEST-NET-1:192.0.2.0~192.0.2.255(192.0.2.0/24);
②TEST-NET-2:198.51.100.0-198.51.100.255(198.51.100.0/24);
③TEST-NET-3:203.0.113.0~203.0.113.255(203.0.113.0/24)。

用于文檔的測(cè)試網(wǎng)絡(luò)地址也不會(huì)出現(xiàn)在公共互聯(lián)網(wǎng)中

IP地址規(guī)劃和分配

利用CIDR進(jìn)行IP地址規(guī)劃與分配主要考慮以下三個(gè)步驟:

(1)確定需要的CIDR地址塊的數(shù)量和大小。

綜合考慮建筑物的分布位置以及部門的數(shù)量,確定需要的CIDR地址塊的數(shù)量
根據(jù)建筑物內(nèi)或部門中的信息點(diǎn)數(shù)量,確定每個(gè)CIDR地址塊包括的IP地址數(shù)目
每個(gè)CIDR地址塊包括的IP地址數(shù)目是2的整數(shù)次冪,且其中的最小地址和最大地址不能分配給主機(jī)。

(2)確定掩碼。

根據(jù)CIDR地址塊的大小,計(jì)算并確定掩碼。

(3)CIDR地址塊分配。
進(jìn)行CIDR地址塊的分配,需要遵循以下規(guī)則:

①應(yīng)先為較大的地址塊分配網(wǎng)絡(luò)前綴;
②在相同路徑上的地址塊應(yīng)具有相同的前綴,便于進(jìn)行路由聚合;
③應(yīng)保留部分地址塊,以備將來(lái)擴(kuò)展使用。

舉例
某校園網(wǎng)信息點(diǎn)分布情況
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述

第三章 應(yīng)用層

應(yīng)用層協(xié)議原理

在這里插入圖片描述

網(wǎng)絡(luò)應(yīng)用程序的核心是能夠運(yùn)行在不同的端系統(tǒng)并通過(guò)網(wǎng)絡(luò)相互通信的程序。
“主機(jī)A和主機(jī)B進(jìn)行網(wǎng)絡(luò)通信”,實(shí)際上是指:運(yùn)行在主機(jī)A上的某個(gè)網(wǎng)絡(luò)應(yīng)用程序和運(yùn)行在主機(jī)B上的某個(gè)網(wǎng)絡(luò)應(yīng)用程序進(jìn)行通信
在計(jì)算機(jī)網(wǎng)絡(luò)中,我們并不特別關(guān)注同一臺(tái)主機(jī)上的進(jìn)程間的通信,而關(guān)注運(yùn)行在不同端系統(tǒng)(可能具有不同的操作系統(tǒng))上的應(yīng)用進(jìn)程之間如何通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行通信。

在互聯(lián)網(wǎng)的應(yīng)用層,應(yīng)用進(jìn)程之間的通信方式分為兩種:

  1. 客戶-服務(wù)器(Client-Server,C/S)方式
  2. 對(duì)等連接(Peer-to-Peer,P2P)方式

客戶-服務(wù)器方式

客戶和服務(wù)器都是指通信中所涉及的應(yīng)用進(jìn)程。
客戶-服務(wù)器方式所描述的是進(jìn)程之間服務(wù)和被服務(wù)的關(guān)系

客戶是服務(wù)的請(qǐng)求方。
服務(wù)器是服務(wù)的提供方。

特點(diǎn)
客戶進(jìn)程:
①被用戶調(diào)用后開始運(yùn)行,需要通信時(shí)主動(dòng)向服務(wù)器發(fā)起通信,請(qǐng)求對(duì)方提供服務(wù)。因此,客戶進(jìn)程必須知道服務(wù)器進(jìn)程的地址。這里的地址由主機(jī)的IP地址和進(jìn)程綁定的端口組成。
②不需要特殊的硬件和很復(fù)雜的操作系統(tǒng)的支持。
服務(wù)器進(jìn)程:
①專門用來(lái)提供某種服務(wù)的進(jìn)程,可以同時(shí)處理一個(gè)或多個(gè)遠(yuǎn)程或本地客戶的請(qǐng)求。
②當(dāng)服務(wù)器進(jìn)程被啟動(dòng)后即自動(dòng)調(diào)用并一直不斷地運(yùn)行著,被動(dòng)地等待并接受來(lái)自多個(gè)客戶進(jìn)程的通信請(qǐng)求,因此,服務(wù)器進(jìn)程不需要知道客戶進(jìn)程的地址。
③一般需要性能好的硬件和功能強(qiáng)大的操作系統(tǒng)支持。

對(duì)等連接方式
對(duì)等連接方式的思想是整個(gè)網(wǎng)絡(luò)中共享的內(nèi)容不再被保存在中心服務(wù)器上,各個(gè)終端結(jié)點(diǎn)不明確區(qū)分哪一個(gè)是服務(wù)請(qǐng)求方哪一個(gè)是服務(wù)提供方。
對(duì)等連接中的每個(gè)結(jié)點(diǎn)既作為客戶訪問(wèn)其它結(jié)點(diǎn)的資源,也作為服務(wù)器提供資源給其它結(jié)點(diǎn)訪問(wèn)。從本質(zhì)上看,對(duì)等連接方式仍然是客戶-服務(wù)器方式。

進(jìn)程通信
在一對(duì)進(jìn)程之間的通信會(huì)話場(chǎng)景中,發(fā)起通信的進(jìn)程叫做客戶進(jìn)程,在會(huì)話開始時(shí)等待通信請(qǐng)求的進(jìn)程叫做服務(wù)器進(jìn)程。

應(yīng)用進(jìn)程通過(guò)稱為套接字(socket)的軟件接口向網(wǎng)絡(luò)發(fā)送報(bào)文和從網(wǎng)絡(luò)接收?qǐng)?bào)文。
套接字就是應(yīng)用程序進(jìn)程和運(yùn)輸層協(xié)議之間的接口。
套接字也是應(yīng)用進(jìn)程為了獲得網(wǎng)絡(luò)通信服務(wù)而與操作系統(tǒng)進(jìn)行交互時(shí)使用的一種機(jī)制。
在這里插入圖片描述
套接字的另外一種含義就是"IP地址+端口”,它也可以理解為進(jìn)程地址。

萬(wàn)維網(wǎng)【URL / HTML / HTTP】

在這里插入圖片描述

萬(wàn)維網(wǎng)(Vorld Wide Web,WWW)簡(jiǎn)稱為Web,是一個(gè)大規(guī)模的、聯(lián)機(jī)式的信息儲(chǔ)藏所。

萬(wàn)維網(wǎng)是一個(gè)分布式的超媒體系統(tǒng),它是超文本系統(tǒng)的擴(kuò)展。
萬(wàn)維網(wǎng)應(yīng)用通過(guò)統(tǒng)一資源定位符URL定位信息資源,通過(guò)超文本標(biāo)記語(yǔ)言HTML描述信息資源,通過(guò)超文本傳輸協(xié)議HTTP傳遞信息資源。

URL、HTML和HTTP三個(gè)規(guī)范構(gòu)成了萬(wàn)維網(wǎng)的核心構(gòu)建技術(shù),是支撐著萬(wàn)維網(wǎng)運(yùn)行的基石。

HTTP的請(qǐng)求和響應(yīng)過(guò)程

瀏覽器將URL封裝入HTTP請(qǐng)求,發(fā)給萬(wàn)維網(wǎng)服務(wù)器;
萬(wàn)維網(wǎng)服務(wù)器收到請(qǐng)求后,利用URL找到資源,將該資源封裝入HTTP響應(yīng)發(fā)回給瀏覽器;
瀏覽器解析HTML文件,渲染后展示給用戶。

在這里插入圖片描述
URL HTML HTTP
URL、HTML和HTTP三個(gè)規(guī)范解決了萬(wàn)維網(wǎng)應(yīng)用面對(duì)的三個(gè)關(guān)鍵問(wèn)題:

  1. 用URL解決了如何標(biāo)識(shí)分布在整個(gè)互聯(lián)網(wǎng)上的資源的問(wèn)題。

  2. 用HTML解決了萬(wàn)維網(wǎng)文檔以及超鏈接的標(biāo)準(zhǔn)化問(wèn)題,使不同人員創(chuàng)作的不同風(fēng)格的萬(wàn)維網(wǎng)文檔,都能以統(tǒng)一的形式在各種主機(jī)上顯示出來(lái),同時(shí)使跨越站點(diǎn)的資源訪問(wèn)更加方便。

  3. 用HTTP協(xié)議解決了萬(wàn)維網(wǎng)上的信息資源的傳遞問(wèn)題。

URL
統(tǒng)一資源定位符URL用來(lái)表示互聯(lián)網(wǎng)上資源的位置和訪問(wèn)這些資源的方法。
URL的一般形式由以下三個(gè)部分組成:

<協(xié)議>://<主機(jī)><端口號(hào)/<路徑>

“<協(xié)議>://”:指出訪問(wèn)該資源所使用的協(xié)議,或稱為服務(wù)方式。
“<主機(jī)>:<端口>”:指出保存該資源的主機(jī)和處理該URL的服務(wù)器進(jìn)程。
如果服務(wù)器上采用的端口是該協(xié)議注冊(cè)過(guò)的熟知端口,則“:<端口>”可以省略?!?lt;路徑>”:指出資源在該主機(jī)中的具體位置。
如果在服務(wù)器上設(shè)置了某目錄下的默認(rèn)資源,則“<路徑>”中可以省略文件名;如果服務(wù)器上設(shè)置了根目錄下的默認(rèn)資源,則“”/<路徑>”部分都可以省略。

HTML文檔
超文本標(biāo)記語(yǔ)言HTML是制作萬(wàn)維網(wǎng)頁(yè)面的標(biāo)準(zhǔn)語(yǔ)言。目前版本HTML5.0。
HTML使用標(biāo)簽來(lái)描述網(wǎng)頁(yè)文檔,HTML標(biāo)簽是由尖括號(hào)包圍的關(guān)鍵詞,通常是成對(duì)出現(xiàn)的,例如<body></body>。其中第一個(gè)標(biāo)簽是開始標(biāo)簽,第二個(gè)標(biāo)簽是結(jié)束標(biāo)簽。HTML標(biāo)簽的組成如下:

<tag-name[[attribute-name[=attribute-value]]……]>(文本內(nèi)容)<tag-name>

從開始標(biāo)簽到結(jié)束標(biāo)簽的所有代碼稱為HTML元素。
HTML文檔由一組嵌套的元素組成。
HTML定義了幾十種元素,用來(lái)定義不同的對(duì)象,如<img>元素用來(lái)定義圖像,<p>元素用來(lái)定義段落,<a>元素用來(lái)定義超鏈接等。

HTML的目標(biāo)是指定文檔的結(jié)構(gòu),而不是文檔的外觀。
為了控制文檔的呈現(xiàn)方式,通常會(huì)使用層疊樣式表CSS。

HTML文檔分為靜態(tài)文檔、動(dòng)態(tài)文檔活動(dòng)文檔三種:

  1. 靜態(tài)HTML文檔:靜態(tài)HTML文檔在創(chuàng)作完畢后就存放在萬(wàn)維網(wǎng)服務(wù)器中,它的內(nèi)容不會(huì)根據(jù)瀏覽器發(fā)來(lái)的數(shù)據(jù)而改變。
  2. 動(dòng)態(tài)HTML文檔:動(dòng)態(tài)HTML文檔在瀏覽器訪問(wèn)服務(wù)器時(shí)才得以創(chuàng)建。當(dāng)瀏覽器的請(qǐng)求到達(dá)時(shí),服務(wù)器將URL映射到一個(gè)應(yīng)用程序,由應(yīng)用程序根據(jù)請(qǐng)求中的數(shù)據(jù)創(chuàng)建一個(gè)HTML文檔。
  3. 活動(dòng)HTML文檔:活動(dòng)HTML文檔把創(chuàng)建文檔的工作移到瀏覽器進(jìn)行。服務(wù)器發(fā)回給瀏覽器的文檔中包含腳本程序,瀏覽器執(zhí)行腳本后,得到完整的活動(dòng)HTML文檔。

超文本傳送協(xié)議HTTP
超文本傳送協(xié)議HTTP是萬(wàn)維網(wǎng)的核心。
目前,HTTP/1.1HTTP/2是互聯(lián)網(wǎng)建議標(biāo)準(zhǔn)。

HTTP客戶程序通常是瀏覽器,HTTP服務(wù)器程序通常是萬(wàn)維網(wǎng)服務(wù)器。瀏覽器和萬(wàn)維網(wǎng)服務(wù)器,通過(guò)交換HTTP報(bào)文進(jìn)行會(huì)話。
HTTP定義了這些報(bào)文的結(jié)構(gòu)以及客戶和服務(wù)器進(jìn)行報(bào)文交換的方式。
HTTP協(xié)議的目的是實(shí)現(xiàn)瀏覽器從萬(wàn)維網(wǎng)服務(wù)器獲取資源。資源包括文本、聲音、圖像等各種多媒體文件。

HTTP協(xié)議工作過(guò)程

  1. 客戶瀏覽器進(jìn)程分析URL;
  2. 瀏覽器向DNS服務(wù)器請(qǐng)求將URL中的主機(jī)域名解析為IP地址:
  3. DNS服務(wù)器解析出IP地址;
  4. 瀏覽器用IP地址和端口與萬(wàn)維網(wǎng)服務(wù)器建立TCP連接;
  5. 瀏覽器發(fā)出HTTP請(qǐng)求報(bào)文;
  6. 服務(wù)器進(jìn)程返回HTTP響應(yīng)報(bào)文,
  7. 由瀏覽器進(jìn)行解釋顯示;
  8. 釋放TCP連接。
    在這里插入圖片描述

注意:HTTP協(xié)議是無(wú)狀態(tài)協(xié)議

持續(xù)連接和非持續(xù)連接
運(yùn)輸層的TCP協(xié)議是面向連接的。如果客戶-服務(wù)器應(yīng)用選用TCP作為運(yùn)輸層協(xié)議,則應(yīng)用程序的設(shè)計(jì)有兩種方式

  1. 每個(gè)請(qǐng)求/響應(yīng)對(duì)都需要經(jīng)過(guò)一個(gè)單獨(dú)的TCP連接發(fā)送,這種設(shè)計(jì)方法稱為非持續(xù)連接
  2. 一系列的請(qǐng)求及其響應(yīng)都經(jīng)過(guò)相同的TCP連接發(fā)送,這種設(shè)計(jì)方法被稱為持續(xù)連接。

HTTP/1.0僅支持非持續(xù)連接;
HTTP/1.1既支持非持續(xù)連接,也支持持續(xù)連接。

非持續(xù)連接工作方式下,每獲取一個(gè)文件就要有兩倍RTT的開銷,效率很低。

持續(xù)連接的兩種工作方式
HTTP/1.1在默認(rèn)情況下使用持續(xù)連接,其持續(xù)連接支持兩種工作方式:

  1. 非流水線方式:客戶在收到前一個(gè)HTTP響應(yīng)報(bào)文后才能發(fā)出下一個(gè)HTTP請(qǐng)求報(bào)文。
  2. 流水線方式:客戶在收到服務(wù)器發(fā)回的HTTP的響應(yīng)報(bào)文之前就能夠接著發(fā)送新的HTTP請(qǐng)求報(bào)文。一個(gè)接一個(gè)的請(qǐng)求報(bào)文到達(dá)服務(wù)器后,服務(wù)器就可連續(xù)發(fā)回響應(yīng)報(bào)文。

HTTP/1.1的流水線方式依然要求服務(wù)器按順序發(fā)回響應(yīng)報(bào)文,如果某一個(gè)請(qǐng)求需要的處理時(shí)間很長(zhǎng),即使服務(wù)器采用多線程的方式已經(jīng)完成了后續(xù)請(qǐng)求的處理,也必須等待這個(gè)請(qǐng)求處理完成,在其響應(yīng)報(bào)文發(fā)出后,才能夠發(fā)送后續(xù)的響應(yīng)報(bào)文。

HTTP/2針對(duì)該問(wèn)題做了改進(jìn),允許在相同連接中交錯(cuò)發(fā)送多個(gè)HTTP請(qǐng)求報(bào)文和HTTP應(yīng)答報(bào)文。

HTTP報(bào)文格式
HTTP有兩類報(bào)文:請(qǐng)求報(bào)文響應(yīng)報(bào)文。

HTTP是面向文本的,在報(bào)文中的每一個(gè)字段都是一些ASCII碼串。

HTTP請(qǐng)求報(bào)文和響應(yīng)報(bào)文都是由三個(gè)部分組成的。

  1. 開始行:在請(qǐng)求報(bào)文中的開始行叫做請(qǐng)求行,而在響應(yīng)報(bào)文中的開始行叫做狀態(tài)行。
  2. 首部行:用來(lái)說(shuō)明瀏覽器、服務(wù)器或報(bào)文主體的一些信息。首部可以包含多行,也可以不使用。每一個(gè)首部行中都包含首部字段名和它的值。
  3. 實(shí)體主體:在請(qǐng)求報(bào)文中稱為請(qǐng)求主體,HTTP請(qǐng)求中一般不使用這個(gè)字段。在響應(yīng)報(bào)文中稱為響應(yīng)主體。

HTTP請(qǐng)求報(bào)文
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

HTTP響應(yīng)報(bào)文
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述Cookie
HTTP協(xié)議是無(wú)狀態(tài)協(xié)議,每次請(qǐng)求之間是相互獨(dú)立的。
當(dāng)業(yè)務(wù)邏輯需要了解多次請(qǐng)求之間的關(guān)聯(lián)時(shí),可以使用Cookie,用來(lái)彌補(bǔ)HTTP協(xié)議無(wú)狀態(tài)的不足。
Cookie包含有四個(gè)組件:

①在HTTP響應(yīng)報(bào)文中的一個(gè)Set-Cookie首部行;
②在HTTP請(qǐng)求報(bào)文中的一個(gè)Cookie首部行;
③在用戶系統(tǒng)中保存的Cookie,Cookie可以保存在內(nèi)存中或磁盤上,由用戶瀏覽器進(jìn)行管理;
④位于萬(wàn)維網(wǎng)服務(wù)器的一個(gè)后端數(shù)據(jù)庫(kù)。

代理服務(wù)器
代理服務(wù)器也稱為萬(wàn)維網(wǎng)緩存。
代理服務(wù)器把最近請(qǐng)求過(guò)的資源的副本保存在自己的存儲(chǔ)空間,當(dāng)收到新請(qǐng)求時(shí),如果代理服務(wù)器發(fā)現(xiàn)新請(qǐng)求的資源與緩存的資源相同,就返回緩存的資源,而不需要按URL再次訪問(wèn)該資源。

在這里插入圖片描述
在這里插入圖片描述
部署并使用代理服務(wù)器具有以下兩個(gè)優(yōu)勢(shì):

  1. 代理服務(wù)器從整體上降低了萬(wàn)維網(wǎng)上的通信流量,從而改善網(wǎng)絡(luò)性能。
  2. 代理服務(wù)器可以降低瀏覽器請(qǐng)求的響應(yīng)時(shí)間。

內(nèi)容分發(fā)網(wǎng)絡(luò)
內(nèi)容分發(fā)網(wǎng)絡(luò)CDN是也是一種Web緩存。
提供內(nèi)容分發(fā)服務(wù)的公司簡(jiǎn)稱為CDN公司,他們?cè)诨ヂ?lián)網(wǎng)上部署了許多代理服務(wù)器,因而使大量流量實(shí)現(xiàn)了本地化。
CDN公司部署的代理服務(wù)器也稱為CDN集群
一旦CDN集群部署完成,CDN公司就可以動(dòng)態(tài)地將客戶的HTTP請(qǐng)求定向到CDN中的某個(gè)代理服務(wù)器上。
CDN不依賴客戶在瀏覽器中配置代理服務(wù)器,而是依賴DNS將不同的客戶定向到不同的代理服務(wù)器上。

舉例
在這里插入圖片描述

  1. 客戶瀏覽器向DNS系統(tǒng)發(fā)起查詢,查找www.abc.cn的P地址。
  2. DNS系統(tǒng)依據(jù)發(fā)起查詢的客戶端不同,返回不同的結(jié)果。
    例如對(duì)于中國(guó)聯(lián)通的用戶A,DNS系統(tǒng)返回部署在中國(guó)聯(lián)通的CDN集群的IP地址P1。
  3. 客戶端瀏覽器依據(jù)DNS查詢結(jié)果,向CDN集群發(fā)起HTTP請(qǐng)求。
  4. CDN集群根據(jù)代理服務(wù)器的工作流程,直接返回資源給客戶瀏覽器,或者向源服務(wù)器請(qǐng)求資源

HTTP/1.X存在的問(wèn)題
隨著互聯(lián)網(wǎng)的發(fā)展,HTTP/1.x已經(jīng)無(wú)法滿足現(xiàn)代萬(wàn)維網(wǎng)的需求了,這主要體現(xiàn)在:

  1. 線頭阻塞問(wèn)題:服務(wù)器按序處理請(qǐng)求和返回響應(yīng)報(bào)文,需要緩存多個(gè)請(qǐng)求,從而占用更多資源;
  2. TCP并發(fā)連接數(shù)限制:利用多個(gè)TCP連接,并發(fā)訪問(wèn)萬(wàn)維網(wǎng)服務(wù)器,會(huì)大量消耗服務(wù)器的資源;因此,瀏覽器與服務(wù)器之間通常最多建立5~10個(gè)TCP并發(fā)連接;
  3. 沒(méi)有報(bào)文首部壓縮方案:HTTP報(bào)文首部?jī)?nèi)容很多,但每次請(qǐng)求首部的變化并不大;
  4. 明文傳輸不安全:HTTP依賴運(yùn)輸層安全TLS協(xié)議,才能實(shí)現(xiàn)加密傳輸。

HTTP/2的新特性

二進(jìn)制格式的幀:HTTP/1.1的報(bào)文格式是基于文本的,而HTTP/2采用了新的二進(jìn)制格式;
基于流的多路復(fù)用:HTTP/2中引入了流的概念,每一對(duì)HTTP請(qǐng)求報(bào)文和響應(yīng)報(bào)文被視為同一個(gè)流,在同一個(gè)TCP連接上實(shí)現(xiàn)了基于流的多路復(fù)用,不同流中的幀可以交錯(cuò)地發(fā)送給對(duì)方;
服務(wù)端推送:HTTP2允許服務(wù)器為客戶的單個(gè)請(qǐng)求發(fā)送多個(gè)響應(yīng),也就是說(shuō),服務(wù)器可以向客戶推送額外的資源;
首部壓縮:HTTP/2采用了HPACK壓縮格式來(lái)壓縮請(qǐng)求和響應(yīng)中的首部信息;
增強(qiáng)的安全性:主流瀏覽器Chrome、.Firefox等都公開宣布只支持加密的HTTP/2,并且HTTP/2對(duì)TLS的安全性做了進(jìn)一步加強(qiáng)。

詳細(xì)介紹:HTTP/2的新特性

HTTP/2解決了很多舊版本HTTP的問(wèn)題,但是它還是存在以下兩個(gè)待解決問(wèn)題

  1. TCP建立連接的時(shí)延問(wèn)題:HTTP基于TCP協(xié)議實(shí)現(xiàn),發(fā)送HTTP請(qǐng)求報(bào)文前需要先建立TCP連接,TCP連接建立時(shí)的三報(bào)文握手機(jī)制有較大時(shí)延;
  2. 線頭阻塞問(wèn)題未完全解決:HTTP2改進(jìn)了由應(yīng)用層“先進(jìn)先出”引起的線頭阻塞問(wèn)題,但是由TCP“丟失重傳“機(jī)制引起的線頭阻塞問(wèn)題,HTTP2不能解決。

上述兩個(gè)問(wèn)題,都是運(yùn)輸層協(xié)議TCP引起的,如果要從根本上解決,需要替換TCP協(xié)議。

HTTP/3的改進(jìn)
與HTTP/2相比,HTTP3有以下幾點(diǎn)改進(jìn):

  1. HTTP/3不再基于TCP協(xié)議進(jìn)行數(shù)據(jù)傳輸,而是基于UDP上的QUIC協(xié)議
    實(shí)現(xiàn)的。沒(méi)有建立TCP連接時(shí)的時(shí)延。
  2. QUIC在UDP的基礎(chǔ)之上增加了功能,實(shí)現(xiàn)了類似TCP的流量控制、可靠
    傳輸?shù)裙δ堋?/li>
  3. QUIC集成了TLS的加密功能,進(jìn)行密鑰協(xié)商時(shí)也可以降低時(shí)延。
  4. QUIC實(shí)現(xiàn)了在一條連接上傳輸多個(gè)獨(dú)立的邏輯數(shù)據(jù)流,解決了TCP中線頭阻塞的問(wèn)題。
  5. TCP是在內(nèi)核空間實(shí)現(xiàn)的擁塞控制,而HTTP3通過(guò)用戶空間來(lái)實(shí)現(xiàn)擁塞
    控制。
  6. HTTP/3將采用兼容HPACKI的QPACK壓縮方案。

在這里插入圖片描述

域名系統(tǒng)DNS

在這里插入圖片描述

32位IP地址很難記憶,為了方便記憶和使用,人們引入了主機(jī)名hostname

在ARPANET時(shí)代,計(jì)算機(jī)網(wǎng)絡(luò)規(guī)模比較小,主機(jī)名和IP地址的對(duì)應(yīng)關(guān)系保存在一個(gè)名為hosts的文件中。

自1983年起,互聯(lián)網(wǎng)開始采用層次樹型結(jié)構(gòu)的命名方法,任何一個(gè)連接在互聯(lián)網(wǎng)上的主機(jī)或由器,都可以擁有一個(gè)唯一的層次結(jié)構(gòu)的名字,稱為域名(domain name)

分布式的域名系統(tǒng)DNS能夠進(jìn)行域名到IP地址的解析。

域名系統(tǒng)是互聯(lián)網(wǎng)中的核心服務(wù),為互聯(lián)網(wǎng)上的各種網(wǎng)絡(luò)應(yīng)用提供域名解析服務(wù)。

域名服務(wù)器運(yùn)行在UDP的53號(hào)端口上。

域名空間

DNS中使用的名字集合構(gòu)成了域名空間。早期的互聯(lián)網(wǎng)使用了非等級(jí)的域名空間;目前,互聯(lián)網(wǎng)采用層次樹狀結(jié)構(gòu)的域名空間。
域(domain)是域名空間中一個(gè)可被管理的劃分。域可以劃分為子域,而子域還可繼續(xù)劃分為子域的子域,這樣就形成了頂級(jí)域、二級(jí)域、三級(jí)域等。
從語(yǔ)法上講,每一個(gè)域名都由標(biāo)號(hào)序列組成,各標(biāo)號(hào)之間用點(diǎn)隔開。
能夠唯一地標(biāo)識(shí)互聯(lián)網(wǎng)上某臺(tái)主機(jī)的域名稱為完全限定域名FQDN,其格式如下:
[hostname].[domain].[tld]

其中hostname是主機(jī)名,domain可以是任意的子域,tld是頂級(jí)域

例如域名www.zzu.edu.cn是鄭州大學(xué)Web服務(wù)器的完全域名

在這里插入圖片描述
用域名樹來(lái)表示域名空間的結(jié)構(gòu)是比較直觀的。
頂級(jí)域名由ICANN進(jìn)行管理,其它各級(jí)域名由其上一級(jí)的域名管理機(jī)構(gòu)管理。

域名服務(wù)器
DNS系統(tǒng)使用了大量的域名服務(wù)器,它們以層次方式組織,每一個(gè)域名服務(wù)器都只對(duì)域名體系中的一部分進(jìn)行管轄。
根據(jù)域名服務(wù)器所起的作用,可以把域名服務(wù)器劃分為四種類型:

·根域名服務(wù)器
·頂級(jí)域名服務(wù)器
·授權(quán)域名服務(wù)器
·本地域名服務(wù)器

根域名服務(wù)器
最高層次的域名服務(wù)器
根域名服務(wù)器都知道所有的頂級(jí)域名服務(wù)器的域名和對(duì)應(yīng)的P地址。
目前,根域名服務(wù)器使用了13個(gè)不同P地址的域名,即(a~m).rootservers.net。由12個(gè)獨(dú)立的機(jī)構(gòu)負(fù)責(zé)運(yùn)營(yíng)。
所有根域名服務(wù)器都是采用任播部署的。使用任播后,DNS解析器不再需要知道DNS服務(wù)器的真正IP地址,只需要知道任播地址就可以在世界各地與當(dāng)?shù)氐淖顑?yōu)實(shí)例通信了。

每個(gè)根服務(wù)器的運(yùn)營(yíng)者獨(dú)立負(fù)責(zé)管理自己的任播實(shí)例,不同根服務(wù)器的任播實(shí)例數(shù)量有很大差異,例如B根域名服務(wù)器只有4個(gè)任播實(shí)例,而E根卻有308個(gè)實(shí)例。

到2021年6月,全世界已經(jīng)安裝了1380個(gè)根域名服務(wù)器的實(shí)例,在我國(guó)有37個(gè)根域名服務(wù)器實(shí)例。

頂級(jí)域名服務(wù)器:負(fù)責(zé)管理在該頂級(jí)域注冊(cè)的所有二級(jí)域名

·收到DNS查詢請(qǐng)求時(shí),頂級(jí)域名服務(wù)器會(huì)給出相應(yīng)的回答。
·回答可能是最終的IP地址,也可能是下一步應(yīng)當(dāng)找的域名服務(wù)器的IP地址。

授權(quán)域名服務(wù)器:負(fù)責(zé)管理某個(gè)區(qū)域的域名服務(wù)器

·授權(quán)域名服務(wù)器有權(quán)限管理的范圍稱為區(qū)域(Zone),區(qū)域的邊界劃分由各單位負(fù)責(zé)。
·區(qū)域可能等于域或者小于域。
·在授權(quán)域名服務(wù)器中保存了該區(qū)域中的所有主機(jī)的域名到P地址的映射。

本地域名服務(wù)器:直接為用戶提供域名解析服務(wù)的域名服務(wù)器

·當(dāng)一臺(tái)主機(jī)發(fā)出DNS查詢請(qǐng)求時(shí),這個(gè)查詢請(qǐng)求報(bào)文被發(fā)送給本地域名服務(wù)器
·每一個(gè)互聯(lián)網(wǎng)服務(wù)提供者ISP,都可以擁有一個(gè)本地域名服務(wù)器,這種域名服務(wù)器有時(shí)也稱為默認(rèn)域名服務(wù)器

資源記錄
域名服務(wù)器中保存的每一個(gè)條目稱作為一個(gè)資源記錄,保存資源記錄的文件被稱為區(qū)域文件。
所有域名服務(wù)器中的保存的資源記錄共同構(gòu)成了分布式的DNS數(shù)據(jù)庫(kù)。
DNS的資源記錄分為很多種類型,常見(jiàn)的資源記錄類型如下:

  1. A記錄:指地址(Address)記錄,也稱為主機(jī)記錄,作用是將域名映射到主機(jī)的IPv4地址。
  2. AAAA記錄:與A記錄的作用類似,它將域名映射到主機(jī)的IPv6地址。
  3. SOA記錄:指起始授權(quán)(Start Of Authority,SOA)記錄。SOA記錄是所有區(qū)域文件中
    的強(qiáng)制性記錄,它必須是一個(gè)區(qū)域文件中的第一條記錄。SO記錄描述區(qū)域文件所屬區(qū)
    域、該區(qū)域的主域名服務(wù)器的完全域名FQDN等必要參數(shù)。
  4. NS記錄:指域名服務(wù)器記錄,用來(lái)指明該域名由哪一個(gè)DNS服務(wù)器來(lái)進(jìn)行解析。NS記
    錄的作用是將域名映射為管理該域名的DNS服務(wù)器的完全域名FQDN。
  5. MX記錄:指郵件交換記錄,用來(lái)指明該域的郵件服務(wù)器。MX記錄的作用是將域名映射
    為該域的郵件服務(wù)器的完全域名FQDN。
  6. CNAME記錄:指別名記錄,用于將多個(gè)域名映射到同一臺(tái)主機(jī)
  7. PTR記錄:PTR記錄指指針記錄,也成為反向記錄。PTR記錄的作用是將P地址反向映
    射為域名。

當(dāng)解析器把一個(gè)域名發(fā)送給DNS服務(wù)器請(qǐng)求解析時(shí),它能獲得的DNS服務(wù)器的應(yīng)答就是與該域名相關(guān)聯(lián)的資源記錄,每個(gè)DNS應(yīng)答報(bào)文都包含了一條或多條資源記錄。

例如:
edu.cn的授權(quán)域名服務(wù)器收到了一條解析域名www.zzu.edu.cn的請(qǐng)求,由于該域名服務(wù)器不是主機(jī)www.zzu.edu.cn的授權(quán)域名服務(wù)器,因此,它返回的應(yīng)答中包含一條NS記錄和包含一條A記錄
其中,NS記錄指明管理www.zzu.edu.cn的授權(quán)域名服務(wù)器為dns.zzu.edu.cn。
A記錄指明dns.zzu.edu.cn的IP地址。

因此,這條DNS應(yīng)答指引DNS解析器向dns.zzu.edu.cn發(fā)起下一步的查詢。

DNS域名解析可以采用遞歸查詢迭代查詢兩種方法。

遞歸查詢

如果DNS客戶所詢問(wèn)的域名服務(wù)器不知道被查詢域名的IP地址,那么該域名服務(wù)器就代替該DNS客戶,繼續(xù)向其他域名服務(wù)器發(fā)出查詢請(qǐng)求報(bào)文,直至得到結(jié)果。

通常主機(jī)向本地域名服務(wù)器發(fā)起的查詢是遞歸查詢

迭代查詢
當(dāng)域名服務(wù)器收到迭代查詢請(qǐng)求報(bào)文時(shí),要么給出所要查詢的主機(jī)的IP地址,要么告知DNS客戶下一步應(yīng)當(dāng)向哪一個(gè)域名服務(wù)器進(jìn)行查詢而不會(huì)代替DNS客戶進(jìn)行下一步查詢。

本地域名服務(wù)器向其它域名服務(wù)器發(fā)起的查詢是迭代查詢

DNS高速緩存

為了提高DNS查詢效率,并減輕根域名服務(wù)器的負(fù)荷和減少互聯(lián)網(wǎng)上的DNS查詢報(bào)文數(shù)量,在域名服務(wù)器中廣泛地使用了高速緩存。

高速緩存用來(lái)存放最近查詢過(guò)的域名以及從何處獲得域名映射信息的記錄。為保持高速緩存中的內(nèi)容正確,域名服務(wù)器為每項(xiàng)內(nèi)容設(shè)置計(jì)時(shí)器并刪除超過(guò)合理時(shí)間的項(xiàng)。

本地DNS服務(wù)器不僅緩存最終的查詢結(jié)果,也能夠緩存頂級(jí)域名服務(wù)器的IP地址,因而本地DNS服務(wù)器可以繞過(guò)查詢鏈中的根DNS服務(wù)器。

動(dòng)態(tài)主機(jī)配置協(xié)議DHCP

在這里插入圖片描述

互聯(lián)網(wǎng)上廣泛使用動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol,DHCP)自動(dòng)配置網(wǎng)絡(luò)參數(shù)。

配置信息一般包括0IP地址、子網(wǎng)掩碼默認(rèn)路由器的IP地址本地域名服務(wù)器的IP地址。

DHCP服務(wù)器分配給DHCP客戶的IP地址等網(wǎng)絡(luò)參數(shù)是臨時(shí)的,只能在一段有限的時(shí)間內(nèi)使用,這段時(shí)間稱為租用期。

DHCP客戶使用UDP的68號(hào)端口,DHCP服務(wù)器使用UDP的67號(hào)端口。

DHCP客戶啟動(dòng)時(shí),需要利用廣播報(bào)文尋找DHCP服務(wù)器,該廣播報(bào)文屬于本地網(wǎng)絡(luò)廣播,不能被路由器轉(zhuǎn)發(fā)。

因此,要求每個(gè)網(wǎng)絡(luò)上都有一臺(tái)DHCP服務(wù)器

在這里插入圖片描述
為了避免DHCP服務(wù)器過(guò)多,DHCP利用DHCP中繼代理解決該問(wèn)題

  1. DHCP中繼代理配置了DHCP服務(wù)器的P地址信息。
  2. DHCP中繼代理收到DHCP客戶以廣播形式發(fā)送的發(fā)現(xiàn)報(bào)文后,就以單播方式向DHCP服務(wù)器轉(zhuǎn)發(fā)此報(bào)文,并等待其回答。
  3. 收到DHCP服務(wù)器的回答報(bào)文后,DHCP中繼代理再把此回答報(bào)文發(fā)回給DHCP客戶。

在這里插入圖片描述

例子
在這里插入圖片描述

  1. DHCP客戶從UDP端口68以廣播方式發(fā)送DHCP Discover報(bào)文。目的IP地址:255.255.255.255 源IP地址:0.0.0.0

  2. DHCP服務(wù)器廣播發(fā)送DHCP,Offer報(bào)文給予響應(yīng)

在這里插入圖片描述
3. DHCP客戶從收到的Offer報(bào)文中中選擇一個(gè)服務(wù)器,向所選擇的DHCP服務(wù)器廣播發(fā)送DHCP
Request報(bào)文
4. DHCP服務(wù)器收到Request報(bào)文后,向DHCP客戶廣播發(fā)送DHCP ACK報(bào)文

收到DHCP ACK報(bào)文時(shí),DHCP客戶真正獲得、并能夠使用分配的IP地址
在這里插入圖片描述
5. 將租期記為T,當(dāng)?shù)竭_(dá)0.5T時(shí)DHCP客戶單播發(fā)送DHCP Request報(bào)文請(qǐng)求續(xù)租,如果沒(méi)有收到DHCP ACK報(bào)文,則在到達(dá)0.875T時(shí),會(huì)再次單播發(fā)送DHCP Request報(bào)文請(qǐng)求續(xù)租。
在這里插入圖片描述
DHCP服務(wù)器收到單播DHCP Request報(bào)文,向DHCP客戶單播發(fā)送DHCP ACK報(bào)文或DHCP
NAK報(bào)文。

如果DHCP客戶收到DHCP ACK報(bào)文,則更新租用期,重新設(shè)置計(jì)時(shí)器
如果DHCP客戶收到DHCP NAK報(bào)文,則停止使用原來(lái)的IP地址,發(fā)送DHCP Discover報(bào)文重新請(qǐng)求

在這里插入圖片描述
DHCP報(bào)文詳細(xì)格式請(qǐng)參考博客:DHCP報(bào)文格式

電子郵件【SMTP / POP3 / IMAP】

在這里插入圖片描述

在這里插入圖片描述
①發(fā)送方使用用戶代理撰寫好一封郵件,通過(guò)SMTP發(fā)送到發(fā)送方的郵件服務(wù)器,暫存在發(fā)送方郵件服務(wù)器的緩存中。

②發(fā)送方郵件服務(wù)器定期掃描郵件緩存,發(fā)現(xiàn)郵件后,通過(guò)SMTP將郵件發(fā)送到接收方郵件服務(wù)器,接收方郵件服務(wù)器將郵件存儲(chǔ)在用戶B的郵箱中。

若投遞失敗,則發(fā)送方郵件服務(wù)器將郵件保存在一個(gè)隊(duì)列中,稍后嘗試再次發(fā)送。
若在規(guī)定期限內(nèi)投遞不成功,則刪除郵件,并通知發(fā)送方投遞失敗。

③當(dāng)接收方訪問(wèn)他的郵件時(shí),郵件服務(wù)器對(duì)接收方的身份進(jìn)行驗(yàn)證。接收方訪問(wèn)郵件可以使用POP3協(xié)議或者IMAP協(xié)議。

簡(jiǎn)單郵件傳送協(xié)議SMTP

SMTP最初由RFC821規(guī)定,目前由RFC5321規(guī)定。

SMTP使用客戶-服務(wù)器方式工作,它工作在TCP的25端口上。
每個(gè)郵件服務(wù)器都既能充當(dāng)SMTP客戶,也能充當(dāng)SMTP服務(wù)器。
負(fù)責(zé)發(fā)送郵件的SMTP進(jìn)程就是SMTP客戶,而負(fù)責(zé)接收郵件的SMTP進(jìn)程就是SMTP服務(wù)器。
SMTP規(guī)定了14條命令和21種應(yīng)答信息。

每條命令用幾個(gè)字母組成,而每一種應(yīng)答信息一般只有一行信息,由一個(gè)3位數(shù)字的代碼開始,后面附上(也可不附上)很簡(jiǎn)單的文字說(shuō)明。

早期版本的SMTP存在著一些缺點(diǎn):

  1. 發(fā)送電子郵件不需要經(jīng)過(guò)鑒別,造成互聯(lián)網(wǎng)上垃圾郵件非常多。
    ·解決:

1、利用POP協(xié)議的賬號(hào)進(jìn)行身份鑒別
2、RFC5321定義了擴(kuò)展的SMTP(ESMTP),增加了客戶端身
份鑒別功能。

  1. SMTP僅支持傳送ASCII碼,而不支持傳送二進(jìn)制數(shù)據(jù)。
    ·解決:

定義了多用途互聯(lián)網(wǎng)郵件擴(kuò)展MME,支持傳送二進(jìn)制數(shù)據(jù)

郵局協(xié)議POP3
由RFC1939規(guī)定的版本3,記為POP3
POP3使用客戶-服務(wù)器的工作方式,它的服務(wù)器工作在TCP的110端口
郵局協(xié)議POP是一個(gè)非常簡(jiǎn)單、但功能有限的郵件讀取協(xié)議
POP有兩種工作模式:“下載并保留”和“下載并刪除”

互聯(lián)網(wǎng)報(bào)文存取協(xié)議IMAP
由RFC3501規(guī)定的MAP協(xié)議的第4版
IMAP使用客戶-服務(wù)器的工作方式,它的服務(wù)器工作在TCP的143端口
IMAP也是一個(gè)郵件讀取協(xié)議,它是一個(gè)聯(lián)機(jī)協(xié)議
在用戶未發(fā)出刪除郵件的命令之前,MAP服務(wù)器郵箱中的郵件一直保存著
IMAP允許用戶代理僅讀取郵件中某些部分,如只讀取一個(gè)郵件的首部
IMAP為用戶提供了創(chuàng)建文件夾,以及將郵件從一個(gè)文件夾移動(dòng)到另一個(gè)文件夾的命令

電子郵件格式部分略。

第四章 運(yùn)輸層

運(yùn)輸層概述

在這里插入圖片描述

運(yùn)輸層的主要任務(wù)是向應(yīng)用進(jìn)程提供端到端的邏輯通信服務(wù)。
運(yùn)輸層協(xié)議是在網(wǎng)絡(luò)邊緣部分的主機(jī)中實(shí)現(xiàn)的,只有主機(jī)的協(xié)議棧才有運(yùn)輸層。
路由器在轉(zhuǎn)發(fā)分組時(shí)只用到協(xié)議棧的下三層。

在這里插入圖片描述運(yùn)輸層協(xié)議的作用范圍是發(fā)送方進(jìn)程到接收方進(jìn)程

  1. 在發(fā)送方,運(yùn)輸層協(xié)議實(shí)體從發(fā)送方應(yīng)用進(jìn)程接收數(shù)據(jù),并依據(jù)運(yùn)輸層協(xié)議約定的方法,將數(shù)據(jù)封裝到運(yùn)輸層數(shù)據(jù)單元內(nèi),交給下層實(shí)體處理;
  2. 在接收方,運(yùn)輸層實(shí)體從下層實(shí)體收到運(yùn)輸層數(shù)據(jù)單元,解封后將數(shù)據(jù)取出交給接收方應(yīng)用進(jìn)程。

運(yùn)輸層的兩個(gè)重要協(xié)議
運(yùn)輸層中最重要的協(xié)議是傳輸控制協(xié)議TCP用戶數(shù)據(jù)報(bào)協(xié)議UDP。
在這里插入圖片描述
在這里插入圖片描述

運(yùn)輸層復(fù)用和端口
運(yùn)輸層復(fù)用是指將多種應(yīng)用數(shù)據(jù)封裝在同一種運(yùn)輸層協(xié)議數(shù)據(jù)單元中。
運(yùn)輸層分用是指將封裝在同一種運(yùn)輸層協(xié)議數(shù)據(jù)單元中的數(shù)據(jù)分發(fā)給不同的應(yīng)用進(jìn)程。

實(shí)現(xiàn)運(yùn)輸層的復(fù)用和分用,需要一個(gè)標(biāo)識(shí)符來(lái)標(biāo)識(shí)不同的應(yīng)用進(jìn)程。
在計(jì)算機(jī)的操作系統(tǒng)中,一般采用進(jìn)程標(biāo)識(shí)符來(lái)標(biāo)識(shí)進(jìn)程。但不同的操作系統(tǒng),其進(jìn)程標(biāo)識(shí)符格式不同。
為了使不同操作系統(tǒng)上的進(jìn)程能夠互相通信,就必須選擇與操作系統(tǒng)無(wú)關(guān)的、統(tǒng)一的標(biāo)識(shí)符來(lái)標(biāo)識(shí)通信中的進(jìn)程。
運(yùn)輸層協(xié)議使用端口號(hào)來(lái)標(biāo)識(shí)應(yīng)用進(jìn)程,端口號(hào)也簡(jiǎn)稱為端口

TCPUDP的首部中均包含源端口字段目的端口字段

源端口字段用來(lái)標(biāo)識(shí)發(fā)送方進(jìn)程目的端口字段用來(lái)標(biāo)識(shí)接收方進(jìn)程
在接收方進(jìn)行處理時(shí),源端口通常用作“返回地址”的一部分。

端口字段長(zhǎng)度為16比特,其取值范圍在0~65535之間
運(yùn)輸層的端口僅具有本地意義,即它所標(biāo)識(shí)的是本計(jì)算機(jī)中的應(yīng)用進(jìn)程。

在這里插入圖片描述
端口種類
IANA將端口分為三類:系統(tǒng)端口、用戶端口動(dòng)態(tài)端口。

在這里插入圖片描述
常見(jiàn)的服務(wù)程序及系統(tǒng)端口
在這里插入圖片描述

用戶數(shù)據(jù)報(bào)協(xié)議UDP

在這里插入圖片描述

UDP提供運(yùn)輸層最小服務(wù),包括復(fù)用分用功能和差錯(cuò)檢測(cè)功能。

在這里插入圖片描述
無(wú)連接
發(fā)送前不需要建立連接

面向報(bào)文

  1. UDP保留應(yīng)用層報(bào)文邊界。
    ·將應(yīng)用進(jìn)程傳遞來(lái)的報(bào)文作為UDP的數(shù)據(jù)部分直接封裝進(jìn)UDP用戶數(shù)據(jù)報(bào)。
  2. UDP對(duì)應(yīng)用層報(bào)文,既不拆分,也不合并,一次發(fā)送一個(gè)報(bào)文。

UDP報(bào)文長(zhǎng)度

UDP報(bào)文的長(zhǎng)度是由應(yīng)用進(jìn)程決定的
過(guò)長(zhǎng)和過(guò)短的UDP報(bào)文都會(huì)影響通信效率
報(bào)文過(guò)長(zhǎng),則下層的IP協(xié)議在傳送時(shí)有可能需要分片,這會(huì)造成傳輸效率的下降
報(bào)文過(guò)短,則逐層封裝所增加的各層首部所占比例會(huì)較大,也會(huì)造成效率的下降
典型的UDP應(yīng)用進(jìn)程,將報(bào)文長(zhǎng)度控制在512字節(jié)以內(nèi)。如DNS、DHCP

在這里插入圖片描述

盡最大努力交付
盡最大努力交付的實(shí)質(zhì)是不可靠交付。
但UDP不會(huì)隨意的丟棄用戶數(shù)據(jù)報(bào);
UDP提供從發(fā)送方到接收方的、端到端的差錯(cuò)檢測(cè)功能,提供無(wú)差錯(cuò)接受服務(wù)。
對(duì)于可能出現(xiàn)的用戶數(shù)據(jù)報(bào)的丟失、重復(fù)或者失序,UDP都不進(jìn)行處理,因此UDP不提供可靠交付服務(wù)
使用UDP的應(yīng)用進(jìn)程,如果需要可靠交付,需要自己實(shí)現(xiàn)。

UDP不提供流量控制功能
UDP也不提供擁塞控制功能

也就是說(shuō):UDP發(fā)送用戶數(shù)據(jù)報(bào)時(shí),既不考慮接收方當(dāng)前的狀態(tài)和處理能力;也不考慮網(wǎng)絡(luò)當(dāng)前的擁塞情況和承載能力。

一旦應(yīng)用進(jìn)程將數(shù)據(jù)傳遞給UDP,UDP立即將用戶數(shù)據(jù)封裝并發(fā)送出去。

因此,UDP發(fā)送用戶數(shù)據(jù)報(bào)的時(shí)機(jī)是由應(yīng)用進(jìn)程控制的。

UDP用戶數(shù)據(jù)報(bào)格式
在Linux虛擬網(wǎng)絡(luò)環(huán)境中,構(gòu)建UDP通信實(shí)例網(wǎng)絡(luò)拓?fù)洹?br /> 利用Linux的nc指令,進(jìn)行UDP通信
在這里插入圖片描述
截獲的UDP報(bào)文
在這里插入圖片描述·
在這里插入圖片描述
源端口
源端口是發(fā)送方的端口號(hào),占16位。
源端口號(hào)是可選的,如果UDP的發(fā)送方不需要對(duì)方回復(fù),該字段允許置為全0。
UDP通信實(shí)例截獲的用戶數(shù)據(jù)報(bào)中,源端口值為0xc15e,即49502。該端口為短暫端口

在這里插入圖片描述
目的端口
目的端口是接收方的端口號(hào),占16位。
接收方UDP向應(yīng)用層交付報(bào)文時(shí)需要使用該字段。
UDP通信實(shí)例截獲的用戶數(shù)據(jù)報(bào)中,目的端口值為0x1193,即4499。該端口為登記端口

在這里插入圖片描述
長(zhǎng)度
長(zhǎng)度指UDP首部和UDP數(shù)據(jù)部分的總長(zhǎng)度,占16位。
長(zhǎng)度的最小取值是8字節(jié)。
UDP通信實(shí)例截獲的用戶數(shù)據(jù)報(bào)中,長(zhǎng)度字段的值為0x0013,即19。本例中,UDP數(shù)據(jù)部分長(zhǎng)度11字節(jié)、UDP首部長(zhǎng)度8字節(jié)。

在這里插入圖片描述
校驗(yàn)和
UDP校驗(yàn)和是一個(gè)端到端的校驗(yàn)和,占16位。
UDP校驗(yàn)和由初始發(fā)送方計(jì)算得到,由最終接收方進(jìn)行校驗(yàn),用于校驗(yàn)端到端的傳輸過(guò)程中,是杏出現(xiàn)了比特差錯(cuò)。
對(duì)于不能通過(guò)校驗(yàn)的用戶數(shù)據(jù)報(bào),UDP僅做丟棄處理
UDP通信實(shí)例截獲的用戶數(shù)據(jù)報(bào)中,校驗(yàn)和字段的值為0x92be,校驗(yàn)通過(guò)。

UDP校驗(yàn)和的計(jì)算范圍覆蓋UDP首部UDP數(shù)據(jù)部分一個(gè)偽首部。
偽首部衍生自IP首部和UDP首部中的某些字段,共12字節(jié)長(zhǎng)。
偽首部并不是用戶數(shù)據(jù)報(bào)真正的首部,只是在計(jì)算機(jī)校驗(yàn)和時(shí),臨時(shí)添加到UDP用戶數(shù)據(jù)報(bào)前面,參加UDP校驗(yàn)和的計(jì)算。
偽首部既不向下層傳送,也不向上層提交,更不會(huì)被封裝傳輸。
在運(yùn)輸層的TCP協(xié)議中,TCP校驗(yàn)和的計(jì)算也采用了相似的偽首部。

在這里插入圖片描述偽首部
源IP地址和目的IP地址均來(lái)源于IP首部。
協(xié)議號(hào)字段也來(lái)源于IP首部,對(duì)于IP-UDP數(shù)據(jù)報(bào)來(lái)說(shuō),該字段值為17
UDP長(zhǎng)度字段來(lái)源于UDP首部.

UDP校驗(yàn)和的計(jì)算方法是求16位字的反碼和的反碼,
這種校驗(yàn)和計(jì)算方法在P協(xié)議、TCP協(xié)議中都有應(yīng)用。
UDP校驗(yàn)和的計(jì)算方法要求16位對(duì)齊,即必須是偶數(shù)個(gè)字節(jié),但UDP用戶數(shù)據(jù)報(bào)的長(zhǎng)度允許是奇數(shù)個(gè)字節(jié)。
因此,對(duì)于奇數(shù)長(zhǎng)度的用戶數(shù)據(jù)報(bào),UDP在尾部追加一個(gè)全0的填充字節(jié)。
這個(gè)填充字節(jié)也僅僅是為了校驗(yàn)和的計(jì)算和驗(yàn)證,實(shí)際上不會(huì)被傳送出去

在這里插入圖片描述

可靠傳輸原理

在這里插入圖片描述

所謂可靠傳輸服務(wù)是指為上層實(shí)體提供一條可靠的邏輯信道,通過(guò)該信道傳輸?shù)臄?shù)據(jù),不會(huì)發(fā)生比特差錯(cuò)或者丟失,并且所有數(shù)據(jù)都按照其發(fā)送順序進(jìn)行交付。

提供可靠傳輸服務(wù)的協(xié)議稱為可靠傳輸協(xié)議。理想的可靠信道,滿足以下兩個(gè)假定:

(1)傳輸?shù)臄?shù)據(jù)不會(huì)產(chǎn)生比特差錯(cuò)、丟包或延遲;
(2)接收方的接收速率能夠與發(fā)送方的發(fā)送速率一樣快。

本節(jié)從理想的可靠信道開始,逐步去除假定條件,討論在不可靠信道上如何實(shí)現(xiàn)可靠傳輸。

本節(jié)討論的可靠傳輸原理協(xié)議,僅考慮單向數(shù)據(jù)通信的情況,對(duì)于全雙工數(shù)據(jù)通信的情況,在可靠傳輸?shù)膶?shí)現(xiàn)方法上,與本節(jié)所述原理一致

為方便描述,我們將發(fā)送方稱為A(Alice),將接收方稱為B(Bob)。
本節(jié)討論的可靠傳輸原理適用于一般的計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議,因此本節(jié)采用術(shù)語(yǔ)協(xié)議數(shù)據(jù)單元PDU進(jìn)行后續(xù)的討論

停止等待協(xié)議
在理想的可靠信道上傳輸數(shù)據(jù),顯然不需要任何協(xié)議就可以實(shí)現(xiàn)可靠傳輸。

我們?nèi)コ硐胄诺赖?code>第(2)個(gè)假定,保留第(1)個(gè)假定,即信道是無(wú)比特差錯(cuò)、丟包延遲的。

為了保證接收方B能夠正確的接收和處理收到的數(shù)據(jù),我們?cè)黾恿髁靠刂茩C(jī)制:

當(dāng)B收到一個(gè)PDU,處理完畢,做好接收下一個(gè)PDU的準(zhǔn)備時(shí),B發(fā)送給A一個(gè)確認(rèn)PDU,記為ACK(Acknowledgment)。
A每次發(fā)送完一個(gè)PDU就必須停止發(fā)送,等待B發(fā)來(lái)的ACK。在收到ACK后,A才能夠發(fā)送下一個(gè)PDU。

這種具有流量控制的,每發(fā)一個(gè)PDU就停下來(lái)等待的協(xié)議稱為停止等待協(xié)議,簡(jiǎn)稱為停等協(xié)議SW協(xié)議。

僅具有流量控制功能的停等協(xié)議記為SW1.0協(xié)議

我們?nèi)コ硐胄诺赖?code>第(1)個(gè)假定,那么信道中傳輸?shù)臄?shù)據(jù)有可能出現(xiàn)比特差錯(cuò)、丟包或延遲。
在這里插入圖片描述

分別考慮三個(gè)情況:
數(shù)據(jù)PDU出錯(cuò)或丟失
在SW1.0基礎(chǔ)上,增加如下措施,得到SW2.0協(xié)議:

  1. B在接收PDU時(shí),可以通過(guò)校驗(yàn)和計(jì)算等措施檢測(cè)到差錯(cuò)。對(duì)于出錯(cuò)的PDU,B直接丟棄,不發(fā)送ACK。
  2. 為發(fā)送方增加超時(shí)重傳機(jī)制:A每發(fā)送一個(gè)PDU后,設(shè)定一個(gè)超時(shí)計(jì)時(shí)器,如果超時(shí)計(jì)時(shí)器到期仍然沒(méi)有收到B發(fā)送的ACK,A就重傳前面發(fā)過(guò)的PDU。
  3. 如果超時(shí)計(jì)時(shí)器到期之前收到了B發(fā)送的ACK,則撤銷超時(shí)計(jì)時(shí)器。
  4. 顯然,如果A發(fā)送的數(shù)據(jù)PDU在傳輸過(guò)程中丟失,B將收不到PDU,也就不會(huì)發(fā)送ACK,超時(shí)計(jì)時(shí)器到期后,A也會(huì)重發(fā)丟失的PDU。

具有超時(shí)重傳機(jī)制,不需要接收方的請(qǐng)求就能自動(dòng)重傳出錯(cuò)或丟失的PDU,這種協(xié)議稱為自動(dòng)重傳請(qǐng)求ARQ協(xié)議

ACK出錯(cuò)或丟失

如果B發(fā)送給A的確認(rèn)ACK在傳輸過(guò)程中出現(xiàn)差錯(cuò)或丟失,由于A收不到正確的ACK,當(dāng)超時(shí)計(jì)時(shí)器到期后,A將重發(fā)前面發(fā)過(guò)的PDU。

但是B曾經(jīng)正確接收到該P(yáng)DU,為了避免B將重復(fù)的PDU交給上層議實(shí)體,在SW2.0基礎(chǔ)上,為數(shù)據(jù)PDU增加序號(hào),得到SW3.0協(xié)議

  1. A每發(fā)送一個(gè)PDU,將序號(hào)加1,寫入新PDU的序號(hào)字段。
  2. 超時(shí)重傳的PDU與出錯(cuò)或丟失的PDU具有相同的序號(hào)。
  3. B可以根據(jù)序號(hào)判斷收到的PDU是否是重復(fù)的,如果是重復(fù)的PDU,說(shuō)明B發(fā)給A的ACK沒(méi)有正確送達(dá),于是B丟棄重復(fù)的PDU,并重傳ACK。

ACK延遲
B發(fā)給A的ACK在信道中傳輸時(shí),有可能會(huì)延遲到達(dá)A。

如果A曾經(jīng)重傳過(guò)某個(gè)PDU,當(dāng)遲到的ACK到達(dá)時(shí),A不能判斷該ACK是對(duì)哪一個(gè)數(shù)據(jù)PDU的確認(rèn),SW3.0將失效。

在SW3.0基礎(chǔ)上,為ACK增加序號(hào),得到SW4.0協(xié)議。

  1. B每收到一個(gè)數(shù)據(jù)PDU,取出該P(yáng)DU的序號(hào),在發(fā)送ACK時(shí),將序號(hào)寫入ACK的確認(rèn)號(hào)字段,以此說(shuō)明該ACK確認(rèn)哪個(gè)數(shù)據(jù)PDU。
  2. A可以根據(jù)確認(rèn)號(hào)判斷收到的ACK是否是重復(fù)的,如果是重復(fù)的ACK,則A丟棄該重復(fù)的ACK,不做任何其它處理。

停止等待協(xié)議的控制措施

停等協(xié)議增加如下幾條控制措施,在不可靠信道上實(shí)現(xiàn)了可靠傳輸。

1. 基于確認(rèn)反饋的流量控制機(jī)制;
2. 基于超時(shí)計(jì)時(shí)器的自動(dòng)重傳機(jī)制;
3. 基于序號(hào)和確認(rèn)號(hào)的重復(fù)PDU識(shí)別機(jī)制。

停止等待協(xié)議的信道利用率

例題:

考慮相距約3000公里的兩臺(tái)主機(jī)A和B用停等協(xié)議進(jìn)行通信。假定主機(jī)A和B通過(guò)一條發(fā)送速率為1Gbit/s(10bit/s)的信道,相連數(shù)據(jù)PDU的長(zhǎng)度為1500字節(jié),忽略從A到B途中經(jīng)過(guò)的所有結(jié)點(diǎn)的處理時(shí)延和排隊(duì)時(shí)延,也忽略B主機(jī)處理數(shù)據(jù)PDU的時(shí)延和發(fā)送ACK的時(shí)延。

在這里插入圖片描述

計(jì)算發(fā)送方A的信道利用率

在這里插入圖片描述
停等協(xié)議信道利用率低,造成了通信資源的極大浪費(fèi)。

連續(xù)ARQ協(xié)議
在這里插入圖片描述

為了提高傳輸效率,可以采用流水線傳輸?shù)姆绞健?br /> 流水線傳輸方式使信道上不斷有數(shù)據(jù)在傳送,可以獲得較高的信道利用率。

采用流水線傳輸方式的可靠傳輸協(xié)議稱為連續(xù)ARQ協(xié)議,也稱為滑動(dòng)窗口協(xié)議
根據(jù)差錯(cuò)恢復(fù)方式的不同,連續(xù)ARQ協(xié)議分為兩種:回退N步(GBN)的連續(xù)ARQ協(xié)議選擇重傳(SR)的連續(xù)ARQ協(xié)議。

滑動(dòng)窗口
執(zhí)行滑動(dòng)窗口協(xié)議的通信雙方根據(jù)自己的緩存空間,各自維護(hù)一個(gè)窗口。
發(fā)送方維持發(fā)送窗口swnd,接收方維持接收窗口rwnd。
在這里插入圖片描述
在這里插入圖片描述
對(duì)于發(fā)送窗口:
指針P1指向最早未確認(rèn)的PDU,
指針P2指向下一個(gè)待發(fā)送的PDU,
指針P3指向發(fā)送窗口外的第一個(gè)PDU。

[0,P-1]區(qū)間內(nèi)對(duì)應(yīng)已經(jīng)發(fā)送并收到確認(rèn)的PDU,
[P1,P2-1]區(qū)間內(nèi)對(duì)應(yīng)已經(jīng)發(fā)送但尚未收到確認(rèn)的PDU,
[P2,P3-1]區(qū)間內(nèi)對(duì)應(yīng)允許發(fā)送但尚未發(fā)送的PDU,
大于等于P3區(qū)間內(nèi)對(duì)應(yīng)不允許發(fā)送的PDU

[P1,P3-1]區(qū)間稱為發(fā)送窗口
發(fā)送窗口長(zhǎng)度N=P3-P1
本例中,發(fā)送窗口長(zhǎng)度為固定值10

當(dāng)發(fā)送方收到對(duì)3號(hào)和4號(hào)PDU的確認(rèn)ACK后,發(fā)送窗口將向前滑動(dòng),如圖(b)所示。P1指針
滑動(dòng)后指向5號(hào)PDU,由于本例中窗口長(zhǎng)度是固定值,所以P3指針也隨之向前滑動(dòng),保持發(fā)送窗口長(zhǎng)度值10不變。

習(xí)慣上,“向前”指向時(shí)間增大的方向,“向后”指向時(shí)間減少的方向。

在這里插入圖片描述
對(duì)于接收窗口:

指針P4指向下一個(gè)待接收的PDU
指針P5指向接收窗口外的第一個(gè)PDU

[0,P4-1]區(qū)間內(nèi)對(duì)應(yīng)已經(jīng)收到,并且已經(jīng)發(fā)送確認(rèn)的PDU,
[P4,P5-1]區(qū)間內(nèi)對(duì)應(yīng)允許接收的PDU
大于等于P5區(qū)間內(nèi)對(duì)應(yīng)不允許接收的PDU。

[P4,P5-1]區(qū)間為接收窗口,接收窗口長(zhǎng)度N’=P5-P4
在本例中,接收窗口長(zhǎng)度為固定值10。

當(dāng)接收方收到3號(hào)PDU后,由于之前接收方已經(jīng)緩存了4號(hào)PDU,接收方可以連續(xù)發(fā)送對(duì)3號(hào)和4號(hào)PDU的確認(rèn)ACK。
發(fā)送4號(hào)ACK后,接收窗口將向前滑動(dòng),如圖(b)所示。P指針滑動(dòng)后指向5號(hào)PDU,
由于本例中窗口長(zhǎng)度是固定值,所以P指針也隨之向前滑動(dòng),保持接收窗口長(zhǎng)度值10不變

累積確認(rèn)
接收方允許采用累積確認(rèn)的方式發(fā)送確認(rèn)ACK。
累積確認(rèn)指接收方不必對(duì)收到的分組逐個(gè)發(fā)送ACK,而是在收到幾個(gè)分組后,對(duì)按序到達(dá)的最后一個(gè)PDU發(fā)送ACK,該ACK表示到這個(gè)分組為止的所有分組都已經(jīng)正確收到了。

回退N步GBN協(xié)議
對(duì)比停等協(xié)議滑動(dòng)窗口協(xié)議的基本概念,不難發(fā)現(xiàn),停等協(xié)議實(shí)質(zhì)上是發(fā)送窗口長(zhǎng)度為1,接收窗口長(zhǎng)度也為1的滑動(dòng)窗口協(xié)議。

GBN協(xié)議是發(fā)送窗口長(zhǎng)度大于1,接收窗口長(zhǎng)度等于1的滑動(dòng)窗口協(xié)議。

我們觀察一個(gè)發(fā)送窗口長(zhǎng)度為4,接收窗口長(zhǎng)度為1的GBN協(xié)議運(yùn)行的例子
在這里插入圖片描述
GBN協(xié)議中的發(fā)送方行為

  1. 若發(fā)送窗口未滿,則用發(fā)送緩存中的數(shù)據(jù)組裝一個(gè)PDU,發(fā)送出去,登記超時(shí)計(jì)時(shí)器;若發(fā)送窗口已滿,則等待發(fā)送窗口滑動(dòng)。
  2. 若收到確認(rèn)ACK,則取消該ACK確認(rèn)的PDU以及之前的PDU的超時(shí)計(jì)時(shí)器。然后根據(jù)ACK的確認(rèn)序號(hào)和發(fā)送窗口長(zhǎng)度,計(jì)算并滑動(dòng)當(dāng)前發(fā)送窗口。
  3. 若檢測(cè)到超時(shí)事件,則重傳超時(shí)的PDU。

GBN協(xié)議中的接收方行為

  1. 若收到的PDU落在接收窗口內(nèi),則接收該P(yáng)DU,發(fā)送對(duì)該P(yáng)DU的確認(rèn)ACK,并滑動(dòng)接收窗口。
  2. 若收到的PDU未落在接收窗口內(nèi),則丟棄該P(yáng)DU,發(fā)送對(duì)最后一個(gè)正確PDU的確認(rèn)ACK。

GBN的信道利用率

觀察GBN協(xié)議的運(yùn)行過(guò)程,可以發(fā)現(xiàn)流水線方式的傳輸使信道中不斷有數(shù)據(jù)在傳送,確實(shí)可以提高信道利用率。

但由于接收窗口僅為1,造成丟失或差錯(cuò)的PDU之后到達(dá)的所有PDU均被發(fā)送方重傳,即使這些失序到達(dá)的PDU都是正確的。這種處理方式造成了信道資源的浪費(fèi)。

從發(fā)送方角度來(lái)看,一旦發(fā)生超時(shí)重傳事件,則需要回退N步,從超時(shí)的PDU開始重新發(fā)送所有后續(xù)PDU。

選擇重傳SR協(xié)議

停等協(xié)議是發(fā)送窗口長(zhǎng)度為1,接收窗口長(zhǎng)度也為1的滑動(dòng)窗口協(xié)議。
GBN協(xié)議是發(fā)送窗口長(zhǎng)度大于1,接收窗口長(zhǎng)度等于1的滑動(dòng)窗口協(xié)議。
SR協(xié)議是發(fā)送窗口長(zhǎng)度大于1,接收窗口長(zhǎng)度也大于1的滑動(dòng)窗口協(xié)議。

SR協(xié)議中,接收方使用按序到達(dá)的最后一個(gè)PDU序號(hào)對(duì)所有按序到達(dá)的PDU進(jìn)行累積確認(rèn),同時(shí)使用選擇確認(rèn)(Selective Acknowledgement,SACK)對(duì)失序到達(dá)的PDU進(jìn)行單獨(dú)確認(rèn)。

此處的SACK是選擇重傳SR協(xié)議的選擇確認(rèn),與本書后面章節(jié)介紹的TCP的選擇確認(rèn)選項(xiàng)不同。

我們觀察一個(gè)發(fā)送窗口長(zhǎng)度為4,接收窗口長(zhǎng)度也為4的SR協(xié)議運(yùn)行的例子

在這里插入圖片描述
SR協(xié)議中的發(fā)送方行為

  1. 若發(fā)送窗口未滿,則用發(fā)送緩存中的數(shù)據(jù)組裝一個(gè)PDU,發(fā)送出去,登記超時(shí)計(jì)時(shí)器;若發(fā)送窗口已滿,則等待發(fā)送窗口滑動(dòng)。
  2. 若收到確認(rèn)ACK,則取消該ACK確認(rèn)的PDU以及之前的PDU的超時(shí)計(jì)時(shí)器。然后根據(jù)ACK的確認(rèn)序號(hào)和發(fā)送窗口長(zhǎng)度,計(jì)算并滑動(dòng)當(dāng)前發(fā)送窗口。
  3. 若收到選擇確認(rèn)SACK,則取消該SACK確認(rèn)的PDU的超時(shí)計(jì)時(shí)器。
  4. 若檢測(cè)到超時(shí)事件,則重傳超時(shí)的PDU。

SR協(xié)議中的接收方行為

  1. 若收到的PDU落在接收窗口內(nèi),且該P(yáng)DU是按序到達(dá)的PDU,則接收該P(yáng)DU,對(duì)所有按序到達(dá)的正確PDU發(fā)送累積確認(rèn)ACK,并滑動(dòng)接收窗口。
  2. 若收到的PDU落在接收窗口內(nèi),但該P(yáng)DU是失序到達(dá)的PDU,則緩存該P(yáng)DU,發(fā)送對(duì)該P(yáng)DU的選擇確認(rèn)SACK,并重新發(fā)送對(duì)最后一個(gè)正確PDU的確認(rèn)ACK。

否定確認(rèn)NAK的概念

選擇重傳$R協(xié)議可以跟否定策略結(jié)合在一起使用,即當(dāng)接收方檢測(cè)到錯(cuò)誤的PDU時(shí),它就發(fā)送一個(gè)否定確認(rèn)(Negative Acknowledgement,NAK)

在發(fā)送方,收到NAK可以觸發(fā)該P(yáng)DU的重傳操作,而不需要等到對(duì)應(yīng)的超時(shí)計(jì)時(shí)器超時(shí),因此可以提高協(xié)議性能。

傳輸控制協(xié)議TCP

在這里插入圖片描述

TCP協(xié)議是面向連接的可靠傳輸協(xié)議,提供連接管理、可靠傳輸、流量控制擁塞控制等功能。

在這里插入圖片描述

TCP連接是邏輯連接,TCP把連接作為最基本的抽象。
TCP連接的端點(diǎn)稱為套接字(socket)
RFC793中定義套接字由端口號(hào)拼接到P地址構(gòu)成:

套接字=(IP地址:端口號(hào))

每一條TCP連接有且僅有兩個(gè)端點(diǎn),每一條TCP連接唯一地被通信兩端的兩個(gè)套接字確定。

TCP連接兩端的主機(jī)需要維護(hù)TCP連接狀態(tài)

一旦建立連接,主機(jī)中的TCP進(jìn)程將設(shè)置并維護(hù)發(fā)送緩存和接收緩存

面向連接
通信之前需要建立連接

面向字節(jié)流
在這里插入圖片描述
TCP不保留應(yīng)用層報(bào)文邊界

應(yīng)用進(jìn)程和TCP進(jìn)程的交互是每次一個(gè)數(shù)據(jù)塊,但TCP進(jìn)程把這些數(shù)據(jù)塊看成一串無(wú)結(jié)構(gòu)的字節(jié)流

TCP在合適的時(shí)候從發(fā)送緩存中取出字節(jié)流封裝成報(bào)文段發(fā)送出去

TCP報(bào)文長(zhǎng)度
TCP報(bào)文段長(zhǎng)度由TCP進(jìn)程決定

TCP進(jìn)程 從 發(fā)送緩存中取出并放入報(bào)文段的字節(jié)流長(zhǎng)度最大報(bào)文段長(zhǎng)度(Maximum Segment Size,MSS)限制,與應(yīng)用層報(bào)文籩界無(wú)關(guān)。

MSS指TCP報(bào)文段中數(shù)據(jù)部分的最大長(zhǎng)度,不包含TCP首部

TCP在建立連接時(shí),通過(guò)協(xié)商確定MSS值。

其他特點(diǎn)

TCP采用以字節(jié)為單位的滑動(dòng)窗口協(xié)議實(shí)現(xiàn)可靠交付服務(wù)。
通過(guò)TCP連接傳送的數(shù)據(jù),可以保證無(wú)差錯(cuò)、不丟失、不重復(fù),按序到達(dá)。

TCP采用基于窗口的流量控制機(jī)制,接收方將接收窗口值發(fā)給發(fā)送方,發(fā)送方根據(jù)該值調(diào)整發(fā)送窗口長(zhǎng)度,并以此控制發(fā)送速率。
TCP可以根據(jù)超時(shí)重傳事件和快速重傳事件檢測(cè)網(wǎng)絡(luò)的擁塞情況,減緩發(fā)送速度,進(jìn)行擁塞控制。

TCP也支持用**顯式擁塞通知(Explicit Congestion Notification,ECN)**的方式進(jìn)行擁塞控制。

TCP發(fā)送報(bào)文段的發(fā)送時(shí)機(jī)是由TCP進(jìn)程控制的。

TCP報(bào)文格式
在主機(jī)ns57C上,制作一個(gè)3500字節(jié)的文本文件,命名為3500.0。
從主機(jī)ns56A向主機(jī)ns57C發(fā)起TCP通信,并讀取3500.0文件。在ns57C上截獲TCP報(bào)文段。
在這里插入圖片描述
在這里插入圖片描述

以下部分較多圖片,文字可參考博客:
http://c.biancheng.net/view/6441.html
https://blog.csdn.net/a19881029/article/details/29557837

在這里插入圖片描述

在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述保留位

CWR:擁塞窗口縮減。
當(dāng)CWR=1時(shí),表明根據(jù)ECN回顯,發(fā)送方已經(jīng)降低發(fā)送速率。
ECE: ECN回顯。
ECE=1的報(bào)文段是一個(gè)來(lái)自接收方的顯示擁塞通知,表明發(fā)送方之前發(fā)送的報(bào)文段曾經(jīng)遇到了網(wǎng)絡(luò)擁塞。
CWR和ECE用于TCP的顯式擁塞控制,將在后續(xù)中介紹。

URG:緊急數(shù)據(jù)標(biāo)志。
當(dāng)URG=1時(shí),緊急指針字段生效表明報(bào)文段中包含緊急數(shù)據(jù),緊急數(shù)據(jù)的位置由緊急指針字段指明。
2011年RFC6093建議不再使用緊急數(shù)據(jù)。
ACK:確認(rèn)標(biāo)志。
當(dāng)ACK=1時(shí),確認(rèn)號(hào)字段生效,表明報(bào)文段中包含確認(rèn)信息。
TCP規(guī)定,連接建立后的所有報(bào)文段都必須把ACK置1。

PSH:推送標(biāo)志。
當(dāng)PSH=1時(shí),表明發(fā)送方要求接收方盡快將報(bào)文段中的數(shù)據(jù)交付給上層。在包括Berkeley Socket在內(nèi)的多數(shù)TCP/IP實(shí)現(xiàn)中PSH標(biāo)志置1代表發(fā)送方緩存中已經(jīng)沒(méi)有待發(fā)送數(shù)據(jù)。在處理telnet等交互模式的連接時(shí),該標(biāo)志總是置1的。

RST:重置連接。
當(dāng)RST=1時(shí),表明TCP連接中出現(xiàn)了錯(cuò)誤,需要取消連接。
RST=1的報(bào)文段通常稱為RST報(bào)文段。

SYN:同步連接
當(dāng)SYN=1時(shí),表明報(bào)文段是一個(gè)TCP建立連接請(qǐng)求。
SYN=1的報(bào)文段通常稱為SYN報(bào)文段
FIN:終止連接。
當(dāng)FN=1時(shí),表明發(fā)送方的數(shù)據(jù)已經(jīng)發(fā)送完畢,并請(qǐng)求釋放TCP連接。
FN=1的報(bào)文段通常稱為FN報(bào)文段。
在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
選項(xiàng)
在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述發(fā)送方有效最大報(bào)文段長(zhǎng)度的計(jì)算
TCP發(fā)送方在封裝報(bào)文段時(shí),需要計(jì)算有效最大報(bào)文段長(zhǎng)度EMSS。
EMSS受到對(duì)方發(fā)來(lái)的RMSS的限制,也受到發(fā)送方自己的MTU值、TCP選項(xiàng)長(zhǎng)度以及P選項(xiàng)長(zhǎng)度的限制。
RFC1122規(guī)定EMSS的計(jì)算公式如下:

EMSS = min(RMSS + 20,MSS_S) - TCPhdrsize - IPoptionsize

其中:
RMSS為對(duì)方發(fā)來(lái)的MSS選項(xiàng)中的MSS值;
MSS_S為發(fā)送方能夠發(fā)送的包含TCP首部的報(bào)文段的最大值,計(jì)算公式為:

MSS.S = 發(fā)送方的MTU-20;

TCPhdrsize為包含選項(xiàng)的TCP首部長(zhǎng)度;
IPoptionsize為lP選項(xiàng)長(zhǎng)度。

將RFC1122規(guī)定的EMSS的計(jì)算公式,做一個(gè)簡(jiǎn)單的變換,可以得到:

EMSS=min(RMTU,SMTU)-TCPhdrsize-IPhdrsize

即EMSS值為:發(fā)送方和接收方MTU中的較小值減去TCP首部長(zhǎng)度IP首部長(zhǎng)度

在TCP的具體實(shí)現(xiàn)中,有效最大報(bào)文段長(zhǎng)度EMSS的計(jì)算還需要考慮路徑MTU(PMTU)的限制。PMTU指整個(gè)網(wǎng)絡(luò)路徑上的所有鏈路中最小的MTU。

TCP發(fā)送方發(fā)送數(shù)據(jù)時(shí),為提高傳輸效率,會(huì)盡可能按照EMSS值封裝TCP報(bào)文段,
按照EMSS值封裝的報(bào)文段稱為全長(zhǎng)報(bào)文段(Full-sized Segment)。

在這里插入圖片描述RMSS
RFC1122中規(guī)定,RMSS的默認(rèn)值為536字節(jié)。
如果在SYN報(bào)文段中未包含MSS選項(xiàng),則TCP將RMSS設(shè)置為536字節(jié)。
在早期的計(jì)算機(jī)網(wǎng)絡(luò)中,X.25協(xié)議應(yīng)用廣泛,它的MTU值是576字節(jié)。該MTU值減去20字節(jié)的P固定首部長(zhǎng)度和20字節(jié)的TCP固定首部長(zhǎng)度,剛好得到536字節(jié)。

當(dāng)前的網(wǎng)絡(luò)環(huán)境中,最典型的RMSS值是1460字節(jié)。

WS
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
SACK-P和SACK
TCP的確認(rèn)號(hào)具有累積確認(rèn)功能。因此,對(duì)于失序到達(dá)的報(bào)文段,TCP接收方不能用確認(rèn)號(hào)字段進(jìn)行確認(rèn)。
RFC2018定義的選擇確認(rèn)SACK選項(xiàng),用以確認(rèn)失序到達(dá)的報(bào)文段。
如果TCP通信方希望使用SACK選項(xiàng),需要在初始的SYN報(bào)文段中增加允許選擇確認(rèn)(SACK Permitted,SACK-P)選項(xiàng)。

在這里插入圖片描述
在這里插入圖片描述
TS
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

TCP的連接管理

在這里插入圖片描述

可參考視頻:

TCP的三次握手和四次揮手

主動(dòng)建立連接的一端稱為客戶
被動(dòng)等待連接建立的一端稱為服務(wù)器。

TCP建立連接的過(guò)程中需要在客戶和服務(wù)器之間進(jìn)行三次報(bào)文段交換,稱為三次握手三報(bào)文握手。

首先,服務(wù)器進(jìn)程B被動(dòng)打開連接,從CLOSED狀態(tài)進(jìn)入LISTEN狀態(tài),等待來(lái)自客戶的建立連接請(qǐng)求。

在這里插入圖片描述

第1次握手
客戶進(jìn)程A將SYN標(biāo)志置1,選擇初始序號(hào)ISN(A),以服務(wù)器B的IP地址和端口號(hào)作為參數(shù),構(gòu)造TCP報(bào)文段,發(fā)送給B。

該報(bào)文段稱為SYN報(bào)文段。

雖然SYN報(bào)文段的數(shù)據(jù)部分長(zhǎng)度為0,但是占用1字節(jié)編號(hào),以方便服務(wù)器對(duì)SYN請(qǐng)求進(jìn)行確認(rèn)。

客戶從CLOSED的狀態(tài)進(jìn)入SYN-SENT狀態(tài)。

第2次握手

收到客戶A的SYN報(bào)文段后,服務(wù)器進(jìn)程B發(fā)送自己的SYN報(bào)文段作為響應(yīng)。

報(bào)文段中,將SYN標(biāo)志置1,選擇初始序號(hào)ISN(B);并將ACK標(biāo)志置1,將ISN(A)+1作為確認(rèn)號(hào)。

該報(bào)文段稱為SYN-ACK報(bào)文段。

SYN-ACK報(bào)文段也占用1字節(jié)編號(hào)。以方便客戶對(duì)該SYN請(qǐng)求進(jìn)行確認(rèn)。
服務(wù)器從LISTEN狀態(tài)進(jìn)入SYN-RCVD狀態(tài)。

第3次握手

收到服務(wù)器B的SYN-ACK報(bào)文段后,客戶進(jìn)程A發(fā)送確認(rèn)報(bào)文段。

報(bào)文段中,將ACK標(biāo)志置1,將ISN(B)+1作為確認(rèn)號(hào)。序號(hào)字段為ISN(A)+1。

該報(bào)文段稱為ACK報(bào)文段

ACK報(bào)文段可以攜帶數(shù)據(jù),也可以不攜帶數(shù)據(jù)。如果不攜帶數(shù)據(jù),則不占用序號(hào),客戶A隨后發(fā)送的數(shù)據(jù)報(bào)文段中序號(hào)字段任然是ISN(A)+1。

連接建立
發(fā)完ACK后,客戶A從SYN-SENT狀態(tài)進(jìn)入ESTABLISHED狀態(tài)。

此時(shí),對(duì)于客戶進(jìn)程A,TCP連接已經(jīng)建立,可以開始進(jìn)行數(shù)據(jù)傳輸了。
服務(wù)器B收到客戶A的ACK報(bào)文段后,從SYN-RCVD狀態(tài)進(jìn)入ESTABLISHED狀態(tài)。
此時(shí),服務(wù)器進(jìn)程B也可以開始進(jìn)行數(shù)據(jù)傳輸了。

發(fā)完ACK后,客戶A從SYN-SENT狀態(tài)進(jìn)入ESTABLISHED狀態(tài)。

此時(shí),對(duì)于客戶進(jìn)程A,TCP連接已經(jīng)建立,可以開始進(jìn)行數(shù)據(jù)傳輸了。

服務(wù)器B收到客戶A的ACK報(bào)文段后,從SYN-RCVD狀態(tài)進(jìn)入ESTABLISHED狀態(tài)。
此時(shí),服務(wù)器進(jìn)程B也可以開始進(jìn)行數(shù)據(jù)傳輸了。

在這里插入圖片描述
RST重置連接
如果客戶進(jìn)程向某Socket發(fā)送SYN報(bào)文段請(qǐng)求建立TCP連接,

但該Socket指向的端口并沒(méi)有綁定服務(wù)器應(yīng)用進(jìn)程,即該端口上沒(méi)有服務(wù)進(jìn)程處于LISTEN狀態(tài),

則服務(wù)器上的TCP進(jìn)程會(huì)設(shè)置RST標(biāo)志,發(fā)送RST報(bào)文段給客戶進(jìn)程,拒絕建立連接。

TCP的 連接 釋放
在這里插入圖片描述
數(shù)據(jù)傳輸結(jié)束后,通信雙方都可以主動(dòng)釋放TCP連接。

主動(dòng)釋放連接的一端稱為客戶,被動(dòng)釋放連接的一端稱為服務(wù)器。

TCP釋放連接的過(guò)程中需要在客戶和服務(wù)器之間進(jìn)行四次報(bào)文段交換,稱為四次握手四報(bào)文握手。

假定進(jìn)程A主動(dòng)釋放連接。將數(shù)據(jù)傳輸過(guò)程中,進(jìn)程A發(fā)送給進(jìn)程B的最后一字節(jié)編號(hào)記為x-1,

進(jìn)程B發(fā)送給進(jìn)程A的最后一字節(jié)編號(hào)記為y-1。

第1次握手
·A向B發(fā)送釋放連接請(qǐng)求報(bào)文段。

在該報(bào)文段內(nèi),將FIN標(biāo)志置1,填寫序號(hào)為×

由于TCP建議連接建立后的所有報(bào)文段中ACK標(biāo)志都置1,所以A也將ACK標(biāo)志置1,并填寫確認(rèn)號(hào)為y,用以確認(rèn)收到的最后一字節(jié)數(shù)據(jù)。

該報(bào)文段一般稱為FIN報(bào)文段。

FIN報(bào)文段數(shù)據(jù)部分長(zhǎng)度為0,但是占用1字節(jié)編號(hào),以方便通信中對(duì)方對(duì)FIN請(qǐng)求進(jìn)行確認(rèn)。

客戶從ESTABLISHED狀態(tài)進(jìn)入FIN-WAIN-1狀態(tài)。

第2次握手
收到A的釋放連接請(qǐng)求后,服務(wù)器進(jìn)程B應(yīng)立即確認(rèn)。

在確認(rèn)報(bào)文段中,B將ACK標(biāo)志置1,填寫確認(rèn)號(hào)為x+1,填寫序號(hào)為y。

如果該ACK不含數(shù)據(jù),則不占用字節(jié)編號(hào)。
服務(wù)器從ESTABLISHED狀態(tài)進(jìn)入CLOSE-WAIN狀態(tài)。
客戶收到確認(rèn)報(bào)文段后,從FIN-WAIT-1狀態(tài)進(jìn)入FIN-WAIT-2狀態(tài)

這時(shí)的TCP連接處于半關(guān)閉狀態(tài)
A不能再發(fā)送數(shù)據(jù)。B如果有數(shù)據(jù),還可以繼續(xù)發(fā)送,A仍然要接收。

第3次握手
左圖示例中,半關(guān)閉狀態(tài)下,B沒(méi)有發(fā)送數(shù)據(jù)。
當(dāng)進(jìn)程B需要釋放連接時(shí),也需要發(fā)送一個(gè)FIN請(qǐng)求。

該報(bào)文段中,FIN標(biāo)志置1,序號(hào)仍然為y。B也將ACK標(biāo)志置1,確認(rèn)號(hào)仍然為x 1。

FIN報(bào)文段雖然不包含數(shù)據(jù),但占用1字節(jié)編號(hào),

服務(wù)器從CLOSE-WAIT狀態(tài)進(jìn)入LAST-ACK狀態(tài)

第4次握手
收到B的FIN請(qǐng)求后,客戶進(jìn)程A應(yīng)立即確認(rèn)。

在確認(rèn)報(bào)文段中,A將ACK標(biāo)志置1,填寫確認(rèn)號(hào)為y+1,填寫序號(hào)為x+1。

客戶A發(fā)送了確認(rèn)報(bào)文段后,從FIN-WAIT-2狀態(tài)進(jìn)入TIME-WAIT狀態(tài)。

連接釋放
服務(wù)器進(jìn)程B收到最后一個(gè)ACK報(bào)文后,從LAST-ACK狀態(tài)進(jìn)入COLOSED狀態(tài)。此時(shí),對(duì)于B來(lái)說(shuō)TCP連接已關(guān)閉。
客戶進(jìn)程A需要在TIME-WAIT狀態(tài)等待2MSL時(shí)間之后,才能進(jìn)入COLOSED狀態(tài)。

MSL代表最長(zhǎng)報(bào)文段生存期,RFC793建議MSL取值2分鐘。

當(dāng)2MSL計(jì)時(shí)器超時(shí)后,A從TIME-WAIT狀態(tài)進(jìn)入CLOSED狀態(tài)。對(duì)于A來(lái)說(shuō),TCP連接才關(guān)閉。

在這里插入圖片描述
在這里插入圖片描述

TCP的可靠傳輸

在這里插入圖片描述

TCP的可靠傳輸協(xié)議是以字節(jié)為單位的滑動(dòng)窗口協(xié)議。

TCP可靠傳輸?shù)奶攸c(diǎn):

1.TCP窗口內(nèi)的序號(hào)不是以PDU為單位編號(hào),而是以字節(jié)為單位編號(hào)。
2.TCP的發(fā)送窗口和接收窗口均大于1。
3.TCP的發(fā)送窗口和接收窗口長(zhǎng)度不是固定的,而是動(dòng)態(tài)變化的。
4.TCP支持多種重傳機(jī)制:超時(shí)重傳、快重傳和SACK重傳。

以字節(jié)為單位的滑動(dòng)窗口
TCP的滑動(dòng)窗口運(yùn)行原理與連續(xù)ARQ協(xié)議的原理一致。

實(shí)例分析:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

接收緩存和接收窗口

由于時(shí)延的影響,從主機(jī)ns56A上觀察上述TCP通信實(shí)例,得到的報(bào)文段順序不同。

假定ns56A收到報(bào)文段后,都立即發(fā)送確認(rèn)信息,則在ns56A上觀察本節(jié)TCP通信實(shí)例,得到的TCP報(bào)文段順序應(yīng)該是:

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
超時(shí)重傳

如果出現(xiàn)了報(bào)文段丟失或差錯(cuò),TCP將會(huì)采用先前介紹的超時(shí)重傳機(jī)制,對(duì)超時(shí)且未收到確認(rèn)的報(bào)文段進(jìn)行自動(dòng)重傳。

TCP的超時(shí)重傳類似于GBN協(xié)議,采用累積確認(rèn),不能單獨(dú)對(duì)失序到達(dá)的報(bào)文段進(jìn)行確認(rèn)。

TCP的超時(shí)重傳概念很簡(jiǎn)單,但實(shí)踐中超時(shí)重傳時(shí)間RTO的選擇卻比較復(fù)雜。

TCP測(cè)量往返時(shí)延RTT,計(jì)算平滑往返時(shí)間,并計(jì)算超時(shí)重傳時(shí)間RTO

往返時(shí)間RTT的估算
TCP記錄一個(gè)報(bào)文段的發(fā)出時(shí)間,以及收到對(duì)應(yīng)確認(rèn)信息的時(shí)間,二者之差作為一個(gè)RTT測(cè)量值,也稱為RTT樣本,記作RTTsam
TCP維護(hù)一個(gè)RTT的加權(quán)平均值,稱為平滑往返時(shí)間,記作SRTT。
每進(jìn)行一次測(cè)量,TCP按照如下公式計(jì)算新的平滑往返時(shí)間SRTT:

SRTT = ( 1-α ) x SRTT + α x RTTsam

RFC6298中,建議α取值 0.125 。

SRTT的初值應(yīng)設(shè)置為第一個(gè)有效的RTT樣本。

類似SRTT這種加權(quán)平均值稱為指數(shù)移動(dòng)加權(quán)平均值,時(shí)間越靠近當(dāng)前時(shí)刻的數(shù)據(jù)權(quán)重越大。

超時(shí)重傳時(shí)間RTO的估算

RFC6298定義了RTT偏差,記作RTTV,用以估算RTT樣本偏離SRTT的程度。

RTT偏差也是一個(gè)指數(shù)移動(dòng)加權(quán)平均值,每取得一次RTTsam,TCP按照如下公式計(jì)算RTTV:

RTTV = ( 1 - β ) x RTTV + β x | SRTT - RTTsam |

RFC6298中,建議 β 取值0.25。

RTTV的初值設(shè)置為第一個(gè)RTT樣本值的一半。

超時(shí)重傳時(shí)間RTO應(yīng)略大于平滑往返時(shí)間SRTT。

每取得一次RTTsam,TCP計(jì)算SRTTRTTV,然后按照如下公式計(jì)算RTO:

RTO = SRTT + max(G,4 x RTTV)

上式中G代表系統(tǒng)的時(shí)鐘粒度(clock granularity),即使計(jì)算得到的RTTV趨近零,RTO也應(yīng)該比SRTT大1個(gè)時(shí)鐘粒度。
在Liux系統(tǒng)中,TCP時(shí)鐘粒度為1ms,因此RTO至少比SRTT大1ms。
RFC6298建議給RTO設(shè)定上界和下界,上界的建議值是60秒,下界的建議值是1秒。
在尚未取得有效RTT樣本之前,RFC6298建議將RTO初值設(shè)置為1秒

RTT樣本測(cè)量
在這里插入圖片描述Karn算法

Karn算法包括兩部分:

  1. 當(dāng)報(bào)文段重傳后,不采用該報(bào)文段作為RTT樣本。
  2. 報(bào)文段每重傳一次,將RTO增大為原來(lái)的2倍,直至不再發(fā)生重傳。

Karn算法使TCP可以區(qū)分有效和無(wú)效樣本,保證RTO計(jì)算結(jié)果更加合理

基于時(shí)間戳選項(xiàng)的RTT樣本測(cè)量
在前文中,我們介紹了TCP的時(shí)間戳選項(xiàng)可以用于往返時(shí)間測(cè)量。
當(dāng)發(fā)送方收到確認(rèn)信息時(shí),用當(dāng)前時(shí)間減去回顯時(shí)間戳的時(shí)間,即可得到往返時(shí)間。

利用時(shí)間戳選項(xiàng)計(jì)算往返時(shí)間,顯然可以避免上述二義性,因此不必采用Karn算法的第①部分。

在這里插入圖片描述
快重傳
超時(shí)重傳機(jī)制可以實(shí)現(xiàn)可靠傳輸,但有如下缺點(diǎn):

  1. TCP的超時(shí)重傳機(jī)制類似于GBN協(xié)議。
  2. TCP的超時(shí)重傳機(jī)制會(huì)帶來(lái)更大的網(wǎng)絡(luò)負(fù)載。
  3. 根據(jù)Karn算法的第②部分,超時(shí)重傳事件還會(huì)引起RTO快速增長(zhǎng),因而會(huì)引起網(wǎng)絡(luò)利用率下降

RFC5681和RFC6582中定義了更為高效的快重傳機(jī)制。

快重傳機(jī)制不依賴重傳計(jì)時(shí)器超時(shí),而是基于接收方的反饋信息來(lái)引發(fā)重傳??熘貍鳈C(jī)制通過(guò)檢測(cè)重復(fù)ACK(duplicate ACK)事件發(fā)現(xiàn)丟包,觸發(fā)重傳。

由于TCP的確認(rèn)號(hào)具有累積確認(rèn)功能,因此,當(dāng)接收方TCP收到失序的報(bào)文段時(shí),發(fā)送的ACK中的確認(rèn)號(hào),與確認(rèn)最后一個(gè)按序到達(dá)的報(bào)文段的確認(rèn)號(hào)一樣。這種再次確認(rèn)某個(gè)報(bào)文段的ACK稱為重復(fù)ACK。

我們首先介紹接收方發(fā)送ACK的策略

TCP接收方發(fā)送ACK的 策略
在這里插入圖片描述
在這里插入圖片描述重復(fù)ACK的閾值

由于網(wǎng)絡(luò)層不保證按序提交數(shù)據(jù)報(bào),因此TCP發(fā)送方僅收到一個(gè)重復(fù)ACK,并不能確認(rèn)是發(fā)生了
丟包還是發(fā)生了失序傳輸

RFC5681規(guī)定重復(fù)ACK的閾值(DupThresh)默認(rèn)為3。注意:重復(fù)ACK的閾值是允許調(diào)整的。

當(dāng)收到3個(gè)重復(fù)的ACK,才認(rèn)為這個(gè)已經(jīng)被確認(rèn)4次(1次正常的確認(rèn) 3次重復(fù)的確認(rèn))的報(bào)文段之后的報(bào)文段已經(jīng)丟失。

當(dāng)TCP發(fā)送方收到3個(gè)重復(fù)ACK時(shí),TCP就啟動(dòng)快重傳,立即重傳丟失的報(bào)文段而不必等待重傳計(jì)時(shí)器超時(shí)。

在這里插入圖片描述

有效ACK

快重傳機(jī)制屬于選擇重傳協(xié)議,啟動(dòng)快重傳后,在收到有效ACK前,TCP只能重傳一個(gè)報(bào)文段。

有效ACK是指確認(rèn)了新到達(dá)數(shù)據(jù)的ACK。有效ACK包括兩種:完全ACK部分ACK,這兩種有效ACK的區(qū)分依賴恢復(fù)點(diǎn)的定義。

當(dāng)發(fā)送方啟動(dòng)快重傳算法時(shí),已經(jīng)發(fā)送了多個(gè)失序報(bào)文段,RFC6582將此時(shí)發(fā)送方已經(jīng)發(fā)送的最大序號(hào)稱為恢復(fù)點(diǎn)。

在這里插入圖片描述
在這里插入圖片描述
快重傳算法的要點(diǎn)
TCP NEWReno版本的快重傳算法的要點(diǎn)可以總結(jié)如下:

  1. 收到3個(gè)重復(fù)ACK:記錄恢復(fù)點(diǎn),啟動(dòng)快重傳算法,重傳丟失的報(bào)文段;
  2. 收到部分ACK:立即重傳下一個(gè)丟失的報(bào)文段:
  3. 收到完全ACK:退出快重傳。

TCP的快重傳機(jī)制,實(shí)際上以重復(fù)ACK的形式實(shí)現(xiàn)了隱式的否定確認(rèn)(NAK)

優(yōu)勢(shì):與超時(shí)重傳相比,快重傳能更加及時(shí)有效地修復(fù)丟包情況,提高重傳效率。

不足:雖然可以對(duì)一個(gè)窗口內(nèi)的多個(gè)丟失報(bào)文段進(jìn)行快速重傳,但是第2次重傳是在收到第次重傳的確認(rèn)信息之后,兩次重傳之間的時(shí)間間隔大于一個(gè)RTT,因此效率不高,并且仍然容易觸發(fā)超時(shí)重傳

SACK重傳

快重傳機(jī)制收到部分ACK后才能得到下一個(gè)丟失的報(bào)文段的信息,因此在一個(gè)RTT內(nèi)僅能夠重傳一個(gè)報(bào)文段。

TCP的SACK選項(xiàng)用來(lái)描述失序到達(dá)的報(bào)文段信息。

重復(fù)ACK中攜帶的SACK選項(xiàng)信息可以反映接收方存在的多個(gè)數(shù)據(jù)空缺,因而發(fā)送方可以根據(jù)SACK的信息,在一個(gè)RTT內(nèi)重傳多個(gè)報(bào)文段。

基于SACK的重傳機(jī)制也屬于選擇重傳協(xié)議。但TCP的SACK重傳機(jī)制,與先前介紹的選擇重傳的原理協(xié)議有很多不同。
TCP是在復(fù)雜的網(wǎng)絡(luò)環(huán)境中運(yùn)行的協(xié)議,其SACK重傳機(jī)制考慮了更多因素,其通信雙方的行為更復(fù)雜。

為方便描述,這里將采用SACK選項(xiàng)的數(shù)據(jù)接收方簡(jiǎn)稱為SACK接收方,將采用SACK選項(xiàng)的數(shù)據(jù)發(fā)送方簡(jiǎn)稱為SACK發(fā)送方。

SACK接收方行為
SACK接收方收到失序報(bào)文段后,將報(bào)文段內(nèi)的失序數(shù)據(jù)暫存在接收緩存中,然后就生成并發(fā)回發(fā)送方一個(gè)包含SACK選項(xiàng)的報(bào)文段。
對(duì)于SACK發(fā)送方來(lái)說(shuō),根據(jù)該報(bào)文段中的確認(rèn)號(hào)判定,這個(gè)包含SACK選項(xiàng)的報(bào)文段屬于一個(gè)重復(fù)ACK。

一個(gè)SACK選項(xiàng)中可以包含多個(gè)字節(jié)塊,SACK選項(xiàng)中的字節(jié)塊簡(jiǎn)稱為SACK塊
RFC2018規(guī)定接收方生成SACK選項(xiàng)的規(guī)則如下:

①在生成SACK選項(xiàng)時(shí),接收方應(yīng)該填寫盡可能多的SACK塊。
②第一個(gè)SACK塊必須指明觸發(fā)該SACK選項(xiàng)的失序數(shù)據(jù)序號(hào)
③其它的SACK塊指明最近接收到的失序數(shù)據(jù)序號(hào)。這些SACK塊曾經(jīng)填寫在之
前發(fā)送過(guò)的SACK選項(xiàng)中。

SACK發(fā)送方行為
SACK發(fā)送方除了需要記錄收到的累積確認(rèn)信息,還需記錄收到的SACK信息。
根據(jù)累積確認(rèn)信息和SACK信息,SACK發(fā)送方維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu),用來(lái)記錄已被正確接收的失序數(shù)據(jù)塊的序號(hào)范圍和數(shù)據(jù)空缺的序號(hào)范圍。
在RFC6675中,該數(shù)據(jù)結(jié)構(gòu)被稱為記分板(scoreboard)

在這里插入圖片描述
發(fā)送方在收到SACK選項(xiàng)后,如果判定報(bào)文段丟失,則啟動(dòng)SACK重傳。

依據(jù)重復(fù)ACK閾值(DupThresh),RFC6675規(guī)定滿足以下兩個(gè)條件之一時(shí),啟動(dòng)SACK重傳:

  1. 收到DupThresh個(gè)不連續(xù)的SACK塊
  2. SACK塊的最高數(shù)據(jù)序號(hào) - 累積ACK號(hào) > (DupThresh - 1) × MSS。

上述兩個(gè)條件在以下多種情況下,可以觸發(fā)SACK重傳。

  1. 收到3個(gè)不連續(xù)的重復(fù)ACK,且發(fā)送方的報(bào)文段較小,滿足第①個(gè)條件,啟動(dòng)SACK重傳。
  2. 收到3個(gè)連續(xù)的重復(fù)ACK時(shí),滿足第②個(gè)條件,啟動(dòng)SACK重傳。
  3. 發(fā)送方丟失了多個(gè)數(shù)據(jù)報(bào)文段,接收方發(fā)回的重復(fù)ACK數(shù)量不足三個(gè),但滿足第②個(gè)條件,啟動(dòng)SACK重傳。
  4. 在TCP協(xié)議的設(shè)計(jì)中,對(duì)于不包含數(shù)據(jù)的”純ACK”,沒(méi)有確認(rèn)和重傳的機(jī)制。如果接收方發(fā)出的重復(fù)ACK丟失,但后續(xù)到達(dá)的重復(fù)ACK滿足第②個(gè)條件,也就是說(shuō)只要收到的SACK塊的序號(hào)足夠大,也能夠觸發(fā)SACK重傳。

在這里插入圖片描述

在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述

SACK重傳時(shí),TCP根據(jù)“記分板”中的信息,從低序號(hào)向高序號(hào)依次重傳空缺報(bào)文段。沒(méi)有空缺報(bào)文段后,TCP才會(huì)發(fā)送新數(shù)據(jù)。

優(yōu)點(diǎn):基于SACK的重傳算法,其判斷報(bào)文段丟失的方法比快重傳算法更靈活,且可以在一個(gè)RTT內(nèi)重傳多個(gè)空缺報(bào)文段,在丟包嚴(yán)重的情況下,比快重傳算法更高效,也更不易觸發(fā)超時(shí)重傳。

注意1:SACK發(fā)送方在收到一個(gè)SACK后,不能清除其重傳緩存中對(duì)應(yīng)的數(shù)據(jù),只有收到累積ACK后,才能清除其重傳緩存中對(duì)應(yīng)的數(shù)據(jù)。

注意2:RFC2018規(guī)定,當(dāng)TCP啟動(dòng)超時(shí)重傳時(shí),應(yīng)該忽略SACK中的信息。即使已經(jīng)收到過(guò)SACK確認(rèn),也需要重傳超時(shí)的報(bào)文段之后的所有報(bào)文段。

TCP三種重傳的比較
在這里插入圖片描述

TCP的流量控制

在這里插入圖片描述

如果接收方應(yīng)用進(jìn)程讀取數(shù)據(jù)的速度相對(duì)緩慢,而發(fā)送方發(fā)送數(shù)據(jù)太多、太快,發(fā)送的數(shù)據(jù)就可能會(huì)造成接收緩存溢出。

TCP的流量控制機(jī)制完成了對(duì)發(fā)送速度的調(diào)節(jié),它是基于ACK報(bào)文段中的通知窗口長(zhǎng)度來(lái)實(shí)現(xiàn)的。這種方式提供了明確的來(lái)自接收方的狀態(tài)信息,可以避免接收方緩存溢出。

停等協(xié)議連續(xù)ARQ協(xié)議,兩者都采用了固定長(zhǎng)度的發(fā)送窗口,不能根據(jù)接收方的情況進(jìn)行調(diào)節(jié)。
TCP協(xié)議采用了可變長(zhǎng)度的發(fā)送窗口,其發(fā)送窗口根據(jù)接收方的通知窗口設(shè)定。

TCP流量控制的過(guò)程

接收方每收到一個(gè)報(bào)文段,都重新計(jì)算自己的接收窗口長(zhǎng)度。
·較早的TCP實(shí)現(xiàn)中,TCP接收方被分配一個(gè)固定大小的接收緩存,用以下公式計(jì)算接收窗口長(zhǎng)度:

接收窗口長(zhǎng)度 = 接收緩存字節(jié)數(shù) - 已緩存但未被讀取的按序到達(dá)字節(jié)數(shù)

較新版本的TCP實(shí)現(xiàn)中,增加了TCP接收窗口長(zhǎng)度自動(dòng)調(diào)優(yōu)算法,該算法綜合考慮當(dāng)前可用緩存容量以及本連接的帶寬時(shí)延積等因素,調(diào)整分配給TCP連接的接收緩存,然后計(jì)算接收窗口長(zhǎng)度。

接收方在發(fā)送確認(rèn)信息給發(fā)送方時(shí),將計(jì)算得到的接收窗口長(zhǎng)度填入TCP首部中的窗口字段通知給發(fā)送方

發(fā)送方要求自己的發(fā)送窗口必須小于等于通知窗口,在不考慮擁塞控制的影響時(shí),發(fā)送方設(shè)置發(fā)送窗口等于通知窗口。
發(fā)送方根據(jù)自己的發(fā)送窗口發(fā)送報(bào)文段。

零窗口通知 / 窗口更新報(bào)文 / 窗口探測(cè)報(bào)文

在流量控制過(guò)程中,如果接收緩存耗盡,接收方會(huì)將通知窗口長(zhǎng)度設(shè)置為0。發(fā)送零窗口通知給發(fā)送方,不允許發(fā)送方繼續(xù)發(fā)送新數(shù)據(jù)。

在接收方重新獲得可用緩存空間后,主動(dòng)傳送給發(fā)送方窗口更新報(bào)文。窗口更新報(bào)文通常不包含數(shù)據(jù)。屬于純ACK

在TCP協(xié)議的設(shè)計(jì)中,對(duì)于不包含數(shù)據(jù)的純ACK,沒(méi)有確認(rèn)和重傳的機(jī)制。如果窗口更新報(bào)文丟失,發(fā)送方將一直等待窗口更新報(bào)文,而接收方則一直等待新的數(shù)據(jù),協(xié)議將陷入死鎖狀態(tài)

為避免這種死鎖狀態(tài)的出現(xiàn),TCP發(fā)送方會(huì)維持一個(gè)持續(xù)計(jì)時(shí)器。

一旦收到零窗口通知,發(fā)送方就設(shè)定持續(xù)計(jì)時(shí)器,持續(xù)計(jì)時(shí)器超時(shí)則發(fā)送一個(gè)窗口探測(cè)報(bào)文,查詢接收方通知窗口變化。

糊涂窗口綜合征

如果應(yīng)用進(jìn)程讀取數(shù)據(jù)后,接收方獲得的可用緩存空間很小,這時(shí)發(fā)送窗口更新報(bào)文,會(huì)造成傳輸效率的下降。

在極端情況下,會(huì)造成發(fā)送方和接收方交互的都是僅包含1字節(jié)數(shù)據(jù)的報(bào)文段,這種現(xiàn)象在RFC813中稱為糊涂窗口綜合征。

為避免糊涂窗口綜合征,RFC1122建議:在滿足以下兩種情況之一時(shí),TCP才發(fā)送窗口更新報(bào)文。

  1. 可用緩存可以容納一個(gè)全長(zhǎng)報(bào)文段
  2. 可用緩存達(dá)到接收緩存空間的一半。

Nagle算法

TCP發(fā)送方發(fā)送數(shù)據(jù)時(shí),會(huì)盡可能按照EMSS值封裝全長(zhǎng)報(bào)文段。

對(duì)交互式應(yīng)用來(lái)說(shuō),TCP的這種發(fā)送機(jī)制時(shí)效性較差。

如果對(duì)交互式應(yīng)用的每字節(jié)數(shù)據(jù)單獨(dú)封裝發(fā)送,則傳輸效率很低。在交互式應(yīng)用中,TCP廣泛采用Naglet算法,兼顧傳輸效率時(shí)效性。

  1. 若發(fā)送應(yīng)用進(jìn)程把待發(fā)送的數(shù)據(jù)逐個(gè)字節(jié)地送到TCP的發(fā)送緩存,則發(fā)送方就把第一個(gè)數(shù)據(jù)字節(jié)先發(fā)送出去,把后面到達(dá)的數(shù)據(jù)字節(jié)都緩存起來(lái)。
  2. 當(dāng)發(fā)送方收到對(duì)第一個(gè)數(shù)據(jù)字節(jié)的確認(rèn)后,再把發(fā)送緩存中的所有數(shù)據(jù)封裝成一個(gè)報(bào)文段發(fā)送出去,同時(shí)繼續(xù)對(duì)隨后到達(dá)的數(shù)據(jù)進(jìn)行緩存。
  3. 只有在收到對(duì)前一個(gè)報(bào)文段的確認(rèn)后才繼續(xù)發(fā)送下一個(gè)報(bào)文段。
  4. 此外,當(dāng)緩存的數(shù)據(jù)已達(dá)到發(fā)送窗口大小的一半或已達(dá)到報(bào)文段的最大長(zhǎng)度時(shí),就立即發(fā)送一個(gè)報(bào)文段。

TCP的擁塞控制

在這里插入圖片描述

路由器無(wú)法處理高速率到達(dá)的流量而被迫丟棄分組的現(xiàn)象稱為擁塞。

處于擁塞狀態(tài)的路由器稱為擁塞結(jié)點(diǎn)
擁塞產(chǎn)生的原因很多:

結(jié)點(diǎn)的緩存空間較少
輸出鏈路的容量較低
結(jié)點(diǎn)處理機(jī)的運(yùn)算能力較弱
等等

擁塞是一個(gè)復(fù)雜的綜合問(wèn)題,依靠增加資源等簡(jiǎn)單措施不能解決。

網(wǎng)絡(luò)擁塞會(huì)帶來(lái)很多負(fù)面影響:
在這里插入圖片描述
在這里插入圖片描述擁塞控制
進(jìn)行擁塞控制的目標(biāo)就是避免網(wǎng)絡(luò)進(jìn)入擁塞狀態(tài),即讓網(wǎng)絡(luò)負(fù)載處于B點(diǎn)之前。
所謂擁塞控制就是由相關(guān)算法控制TCP發(fā)送方行為,防止過(guò)多的分組進(jìn)入網(wǎng)絡(luò),避免網(wǎng)絡(luò)中的路由器或者鏈路過(guò)載。
擁塞控制需要通過(guò)限制發(fā)送方的發(fā)送速率來(lái)實(shí)現(xiàn)。

擁塞控制與流量控制:

在這里插入圖片描述
TCP的擁塞控制方法
在這里插入圖片描述
1988年Van Jacobson提出了最初的TCP擁塞控制算法,其算法基于數(shù)據(jù)包守恒準(zhǔn)側(cè)

A new packet isn't put into the network until an old packet leaves.

Jacobsoni提出的擁塞控制算法,包括慢開始擁塞避免,奠定了TCP協(xié)議的擁塞控制算法的基石。

在這里插入圖片描述
TCP采用的擁塞控制方法是基于窗口的。
TCP增加了一個(gè)狀態(tài)變量,叫擁塞窗口(congestion windows,cwnd)

擁塞窗口長(zhǎng)度取決于網(wǎng)絡(luò)的擁塞程度,并能根據(jù)網(wǎng)絡(luò)擁塞情況動(dòng)態(tài)變化。發(fā)送方要求自己的發(fā)送窗口必須小于等于擁塞窗口,以此控制發(fā)送速率TCP進(jìn)行擁塞控制的原則是:

如果網(wǎng)絡(luò)中沒(méi)有出現(xiàn)擁塞,就增大擁塞窗口,以此提高發(fā)送速率,提高吞吐量;
如果網(wǎng)絡(luò)中出現(xiàn)了擁塞,就減小擁塞窗口,以此降低發(fā)送速率,降低網(wǎng)絡(luò)負(fù)載。。

注意
最終的發(fā)送窗口長(zhǎng)度 = Min(通知窗口長(zhǎng)度,擁塞窗口長(zhǎng)度)
本節(jié)討論中,暫時(shí)忽略通知窗口的影響。

TCP發(fā)送方如何監(jiān)測(cè)網(wǎng)絡(luò)的擁塞程度呢?
監(jiān)測(cè)先前介紹的三種重傳事件:

超時(shí)重傳:超時(shí)計(jì)時(shí)器超時(shí)事件
快重傳:3個(gè)重復(fù)ACK事件
SACK重傳:RFC6675規(guī)定的兩個(gè)條件之一

出現(xiàn)了以上三種重傳事件,TCP認(rèn)為出現(xiàn)了不同程度的網(wǎng)絡(luò)擁塞,應(yīng)用不同的擁塞控制算法進(jìn)行處理。

慢開始

在TCP連接建立之初或者發(fā)生超時(shí)重傳事件后,都需要執(zhí)行慢開始算法
TCP連接建立之后,需要設(shè)定初始擁塞窗口,記為初始窗口IW。
RFC5681規(guī)定IW值為2~4個(gè)發(fā)送方最大報(bào)文段長(zhǎng)度SMSS,具體規(guī)定如下:
在這里插入圖片描述
每收到一個(gè)有效ACK,把擁塞窗口增加不超過(guò)1個(gè)SMSS的數(shù)值。
RFC5681規(guī)定的計(jì)算公式如下:
cwnd += min(N,SMSS)
其中N代表原先未被確認(rèn)的,現(xiàn)在被剛到達(dá)的ACK確認(rèn)的字節(jié)數(shù)。

顯然,當(dāng)N<SMSS時(shí),每收到一個(gè)ACK,cwnd的增加量要小于SMSS。

大多數(shù)情況下,TCP發(fā)送的報(bào)文段是全長(zhǎng)報(bào)文段,此時(shí),每收到一個(gè)ACK,cwnd增加1個(gè)SMSS。

從TCP發(fā)送一輪報(bào)文段到TCP收到這些報(bào)文段的確認(rèn)為止,經(jīng)歷的時(shí)間大約等于一個(gè)RTT,我們將之稱為一個(gè)傳輸輪次。使用傳輸輪次這個(gè)術(shù)語(yǔ),更便于我們描述TCP的擁塞控制算法。

在慢開始階段,擁塞窗口cwnd隨輪次呈指數(shù)增長(zhǎng),每經(jīng)過(guò)一個(gè)傳輸輪次,cwnd加倍。

在這里插入圖片描述
在這里插入圖片描述
關(guān)于延遲確認(rèn):
快重傳中已經(jīng)介紹,RFC5681中規(guī)定:如果TCP接收方收到的兩個(gè)報(bào)文段間隔時(shí)間小于500ms,則每?jī)蓚€(gè)報(bào)文段發(fā)送一個(gè)ACK,這稱為延遲確認(rèn)。

如果采用延遲確認(rèn),那么慢開始階段cwnd的增長(zhǎng)速度將放緩。

在某些操作系統(tǒng)的 TCP/IP 實(shí)現(xiàn)中,在慢開始階段采用了快速確認(rèn)模式,即慢開始階段不使用延遲確認(rèn)。

慢開始–ssthresh
什么時(shí)候結(jié)束這種指數(shù)增長(zhǎng)呢?慢開始算法提供了以下幾種策略:

  1. 擁塞窗口增長(zhǎng)超出慢開始閾值ssthresh
  2. 監(jiān)測(cè)到重傳事件時(shí)

TCP維持一個(gè)狀態(tài)變量叫慢開始閾值ssthresh,也譯作慢開始門限。

當(dāng)cwnd<ssthresh時(shí),TCP采用慢開始算法;
當(dāng)cwnd>ssthresh時(shí),TCP停用慢開始算法,改用擁塞避免算法:
當(dāng)cwnd=ssthresh時(shí),TCP選用慢開始算法或者擁塞避免算法。
ssthresh的初值應(yīng)設(shè)置得盡可能高,然后ssthresh值隨擁塞控制而調(diào)整。

慢開始–超時(shí)事件
當(dāng)監(jiān)測(cè)到超時(shí)事件時(shí),TCP停止cwnd的增長(zhǎng),按照以下公式計(jì)算ssthresh:
ssthresh = max(FlightSize/2 , 2 x SMSS)
其中,FlightSize為在途數(shù)據(jù)量,代表已經(jīng)發(fā)出但尚未被累積確認(rèn)的字節(jié)數(shù)。
在不考慮通知窗口的限制時(shí),可以近似認(rèn)為FlightSize ≈ cwnd , 此時(shí)ssthresh的計(jì)算公式變換為:
ssthresh = max(cwnd/2 , 2 X SMSS)
然后,將cwnd設(shè)為1,重新執(zhí)行慢開始算法。

在這里插入圖片描述
慢開始算法要點(diǎn)小結(jié):

  1. IW的初值2~4個(gè)SMSS,ssthresh的初值盡可能高
  2. 每收到一個(gè)有效ACK,cwnd+1 smss;即每經(jīng)過(guò)一個(gè)輪次,cwnd加倍
  3. 若cwnd > ssthresh,停止慢開始,執(zhí)行擁塞避免算法
  4. 出現(xiàn)超時(shí)事件,設(shè)置ssthresh = cwnd/2,然后設(shè)置cwnd=1,重新執(zhí)行慢開始
  5. 出現(xiàn)快重傳或SACK重傳事件,執(zhí)行快恢復(fù)算法

擁塞避免
在這里插入圖片描述在這里插入圖片描述

快恢復(fù)
當(dāng)監(jiān)測(cè)到3個(gè)重復(fù)ACK收到的SACK滿足RFC6675的兩個(gè)條件之一時(shí),
TCP啟動(dòng)快重傳SACK重傳,同時(shí)啟動(dòng)快恢復(fù)
RFC規(guī)定:快恢復(fù)算法與快重傳算法一起實(shí)現(xiàn)。

·RFC5681規(guī)定了TCP Reno版本的快重傳和快恢復(fù)算法。
·RFC6582規(guī)定了TCP NewReno版本的快重傳和快恢復(fù)算法。
·RFC6675規(guī)定了啟用SACK支持后的快重傳和快恢復(fù)算法。

三個(gè)版本的快恢復(fù)算法在經(jīng)過(guò)快恢復(fù)階段的調(diào)整之后,當(dāng)退出快恢復(fù)算法時(shí),cwnd值和ssthresh值均為啟動(dòng)快恢復(fù)算法時(shí)的cwnd值的一半。

退出快恢復(fù)算法后,TCP啟動(dòng)擁塞避免算法。

**注意:**在TCP快恢復(fù)算法執(zhí)行過(guò)程中,如果監(jiān)測(cè)到超時(shí)重傳事件,TCP將退出快恢復(fù)算法,將cwnd設(shè)為1個(gè)SMSS,重新執(zhí)行慢開始算法。

擁塞控制狀態(tài)變遷
根據(jù)執(zhí)行算法不同,TCP經(jīng)典擁塞控制包括三個(gè)階段:慢開始、擁塞避免、快恢復(fù)。

三個(gè)階段的作用如下:

  1. 慢開始階段是TCP探測(cè)當(dāng)前網(wǎng)絡(luò)傳輸能力的階段。
  2. 擁塞避免階段是TCP的穩(wěn)定運(yùn)行階段,在該階段TCP繼續(xù)探測(cè)可能利用的網(wǎng)絡(luò)資源。
  3. 快恢復(fù)階段是TCP發(fā)現(xiàn)網(wǎng)絡(luò)擁塞后,調(diào)整和恢復(fù)穩(wěn)定運(yùn)行的階段。

在這里插入圖片描述
AIMD算法
TCP擁塞控制算法被稱為AIMD算法

在擁塞避免階段,TCP線性增加擁塞窗口cwd,緩慢探測(cè)網(wǎng)絡(luò)傳輸能力,該特點(diǎn)被稱為加法增大

在快恢復(fù)階段,經(jīng)過(guò)快速的調(diào)整和恢復(fù),TCP將慢開始閾值ssthresh和擁塞窗口cwnd設(shè)置為觸發(fā)快恢復(fù)時(shí)的cwnd的一半,該特點(diǎn)被稱為乘法減小。

在這里插入圖片描述AIMD算法公平性討論

什么樣的擁塞控制算法是公平的?

經(jīng)過(guò)某個(gè)結(jié)點(diǎn)的多條TCP連接,在擁塞控制算法的控制下,平均占用帶寬資源,則算法是公平的。

·例如:n條TCP連接,都經(jīng)過(guò)一個(gè)最大處理能力為Xbit/s的路由器。如果沒(méi)有擁塞控制機(jī)制,每個(gè)連接的發(fā)送方都以最大速率發(fā)送數(shù)據(jù),則網(wǎng)絡(luò)擁塞。在擁塞控制算法的調(diào)節(jié)下,如果最終每條連接的發(fā)送速率都收斂至Xbit/s,則該擁塞控制算法是公平的。

AIMD算法是公平的

影響發(fā)送窗口值的兩個(gè)因素
影響發(fā)送窗口swnd的兩個(gè)因素為:

  1. 通知窗口awnd:TCP的流量控制要求TCP的發(fā)送窗口小于等于通知窗口
  2. 擁塞窗口cwnd:TCP的擁塞控制要求發(fā)送方的發(fā)送窗口小于等于擁塞窗口
    swnd = min(awnd,cwnd)

上式說(shuō)明:

當(dāng)awnd較小時(shí),決定發(fā)送方發(fā)送速率的是TCP的流量控制
當(dāng)cwnd較小時(shí),決定發(fā)送方發(fā)送速率的是TCP的擁塞控制

網(wǎng)絡(luò)層輔助的擁塞控制
網(wǎng)絡(luò)層輔助的擁塞控制方法包括:主動(dòng)隊(duì)列管理AQM顯式擁塞通知ECN
在這里插入圖片描述

主動(dòng)隊(duì)列管理:

尾部丟棄策略:當(dāng)隊(duì)列已滿時(shí),以后到達(dá)的所有分組將都被丟棄。

路由器的尾部丟棄會(huì)導(dǎo)致一批分組的丟失,TCP發(fā)送方根據(jù)擁塞控制算法將降低擁塞窗口值。

當(dāng)網(wǎng)絡(luò)中有多條TCP連接通過(guò)瓶頸路由器時(shí),路由器的尾部丟棄策略會(huì)造成多條TCP連接同時(shí)降低擁塞窗口值。這種現(xiàn)象稱為TCP全局同步。

為了避免發(fā)生全局同步現(xiàn)象,ETF提出主動(dòng)隊(duì)列管理AQM。

AQM不等到路由器的隊(duì)列滿時(shí)才丟棄分組,而是在隊(duì)列長(zhǎng)度達(dá)到某個(gè)數(shù)值時(shí)或當(dāng)網(wǎng)絡(luò)有了某些擁塞征兆時(shí),就主動(dòng)丟棄部分到達(dá)的分組。

AQM僅引起部分TCP連接降低擁塞窗口值避免了全局同步。
典型的AQM方法是隨機(jī)早期檢測(cè)RED

隨機(jī)早期檢測(cè)AQM:

實(shí)現(xiàn)RED算法需要路由器預(yù)先設(shè)定三個(gè)參數(shù):隊(duì)列長(zhǎng)度最小閾值minth、最大閾值maxth和最大丟包概率maxp
在這里插入圖片描述
顯式擁塞通知
在這里插入圖片描述

第五章 網(wǎng)絡(luò)層

網(wǎng)絡(luò)層概述

網(wǎng)絡(luò)層是互聯(lián)網(wǎng)體系結(jié)構(gòu)中最重要的一層,其主要任務(wù)是向上層提供主機(jī)到主機(jī)的通信服務(wù)。

互聯(lián)網(wǎng)采用的交換方式是分組交換,實(shí)現(xiàn)分組交換的關(guān)鍵設(shè)備是網(wǎng)絡(luò)核心部分的路由器

路由器中的網(wǎng)絡(luò)層是本章介紹的重點(diǎn)。

傳統(tǒng)網(wǎng)絡(luò)的控制平面和數(shù)據(jù)平面

路由器是一種具有多個(gè)接口的專用計(jì)算機(jī),每個(gè)接口連接了不同的網(wǎng)絡(luò)。路由器能夠連接異構(gòu)的網(wǎng)絡(luò)。

路由器的主要功能包括分組轉(zhuǎn)發(fā)路由選擇其中分組轉(zhuǎn)發(fā)功能屬于數(shù)據(jù)平面,路由選擇功能屬于控制平面。

傳統(tǒng)網(wǎng)絡(luò)中,每臺(tái)路由器都由實(shí)現(xiàn)路由選擇功能的控制平面實(shí)現(xiàn)分組轉(zhuǎn)發(fā)功能的數(shù)據(jù)平面構(gòu)成。

路由器的結(jié)構(gòu)
控制平面的核心構(gòu)件是路由選擇處理機(jī)。
數(shù)據(jù)平面由一組輸入接口、一組輸出接口交換結(jié)構(gòu)組成。
在這里插入圖片描述
傳統(tǒng)網(wǎng)絡(luò)的控制平面是分布式實(shí)現(xiàn)的。每臺(tái)路由器中都包含控制平面。

每臺(tái)路由器通過(guò)路由協(xié)議與其它路由器交換網(wǎng)絡(luò)拓?fù)湫畔?#xff0c;獨(dú)立維護(hù)路由表(轉(zhuǎn)發(fā)表)

傳統(tǒng)網(wǎng)絡(luò)的數(shù)據(jù)平面采用基于目的地址的轉(zhuǎn)發(fā)策略
路由器根據(jù)收到分組的目的IP地址,查找轉(zhuǎn)發(fā)表,轉(zhuǎn)發(fā)分組。
在這里插入圖片描述
軟件定義網(wǎng)絡(luò)的控制平面與數(shù)據(jù)平面

軟件定義網(wǎng)絡(luò)SDN通過(guò)將控制平面和數(shù)據(jù)平面分離,構(gòu)建可編程控制的網(wǎng)絡(luò)體系結(jié)構(gòu)。

SDN的網(wǎng)絡(luò)交換設(shè)備僅需實(shí)現(xiàn)數(shù)據(jù)平面的功能,控制平面的功能集中在遠(yuǎn)程控制器上實(shí)現(xiàn)。

為區(qū)別于傳統(tǒng)路由器,SDN將受控網(wǎng)絡(luò)交換設(shè)備稱為SDN網(wǎng)元SDN交換機(jī)。

SDN的控制平面是集中式實(shí)現(xiàn)的。

SDN的控制邏輯全部在SDN控制器中實(shí)現(xiàn),SDN控制器通過(guò)控制數(shù)據(jù)平面接口CDPI對(duì)SDN交換機(jī)進(jìn)行控制和管理。

SDN控制器維護(hù)流表,并通過(guò)OpenFlow協(xié)議將流表下發(fā)給SDN交換機(jī)。

SDN控制器通過(guò)北向接口向網(wǎng)絡(luò)控制應(yīng)用程序開放編程能力。

SDN的數(shù)據(jù)平面采用通用轉(zhuǎn)發(fā)策略,即基于流表的轉(zhuǎn)發(fā)策略。流表的匹配域是首部字段的集合。SDN的轉(zhuǎn)發(fā)策略能夠匹配協(xié)議棧中的多個(gè)首部字段。

數(shù)據(jù)平面與控制平面分離的優(yōu)缺點(diǎn):

在這里插入圖片描述目前的網(wǎng)絡(luò)仍然以傳統(tǒng)網(wǎng)絡(luò)為主

雖然SDN已經(jīng)提出并發(fā)展多年,但由于以下幾點(diǎn)原因,軟件定義網(wǎng)絡(luò)SDN仍不可能完全取代傳統(tǒng)網(wǎng)絡(luò)

①SDN仍然沒(méi)有統(tǒng)一的國(guó)際標(biāo)準(zhǔn);
②互聯(lián)網(wǎng)上已經(jīng)部署了大量的傳統(tǒng)網(wǎng)絡(luò)設(shè)備;
③互聯(lián)網(wǎng)中自治系統(tǒng)之間的路由協(xié)議一邊界網(wǎng)關(guān)協(xié)議的功能和作用仍不可替代;

在目前的互聯(lián)網(wǎng)中,傳統(tǒng)網(wǎng)絡(luò)仍然占據(jù)較大市場(chǎng)。本書的討論依然以傳統(tǒng)網(wǎng)絡(luò)為主

本章主要協(xié)議:

網(wǎng)際協(xié)議IP:網(wǎng)絡(luò)層核心協(xié)議,運(yùn)輸層TCP、UDP等協(xié)議的數(shù)據(jù)都通過(guò)P數(shù)據(jù)報(bào)傳
輸。
網(wǎng)際控制報(bào)文協(xié)議ICMP:提供與網(wǎng)絡(luò)配置信息和IP數(shù)據(jù)報(bào)處置相關(guān)的診斷和控制信息。
路由協(xié)議:路由器之間用來(lái)交換路由信息、鏈路狀態(tài)信息或網(wǎng)絡(luò)拓?fù)湫畔⒌膮f(xié)議,主要包括路由信息協(xié)議RIP、開放最短路徑優(yōu)先OSPF協(xié)議邊界網(wǎng)關(guān)協(xié)議BGP
多協(xié)議標(biāo)記交換MPLS:為P等網(wǎng)絡(luò)層協(xié)議提供面向連接的服務(wù)質(zhì)量,支持流量工程、負(fù)載均衡,支持MPLS VPN等,在運(yùn)營(yíng)商和ISP中得到廣泛應(yīng)用。
相關(guān)協(xié)議地址解析協(xié)議ARP

網(wǎng)際協(xié)議IP

IP協(xié)議是為了實(shí)現(xiàn)網(wǎng)際互聯(lián)才設(shè)計(jì)的協(xié)議。

IP的協(xié)議數(shù)據(jù)單元通常稱為 IP分組IP數(shù)據(jù)報(bào)。

IP協(xié)議屏蔽了底層網(wǎng)絡(luò)的實(shí)現(xiàn)細(xì)節(jié),采用IP協(xié)議后,網(wǎng)絡(luò)層之上的協(xié)議實(shí)體都無(wú)需再考慮具體網(wǎng)絡(luò)的實(shí)現(xiàn)細(xì)節(jié)。

統(tǒng)一采用了IP協(xié)議的網(wǎng)絡(luò),也稱為IP網(wǎng)絡(luò)或簡(jiǎn)稱IP網(wǎng)。

IP網(wǎng)絡(luò)中,具有相同網(wǎng)絡(luò)前綴的IP地址屬于相同網(wǎng)絡(luò);具有不同網(wǎng)絡(luò)前綴的IP地址屬于不同網(wǎng)絡(luò)。

目前有兩個(gè)版本的IP協(xié)議正在使用,分別是IPV4IPv6。

在這里插入圖片描述
IP協(xié)議的作用范圍
在這里插入圖片描述
IP協(xié)議的作用范圍是源主機(jī)的網(wǎng)絡(luò)接口目的主機(jī)的網(wǎng)絡(luò)接口。
IP協(xié)議向上層僅提供簡(jiǎn)單靈活的、無(wú)連接的、盡最大努力交付的數(shù)據(jù)報(bào)服務(wù)。
每一個(gè)IP數(shù)據(jù)報(bào)獨(dú)立發(fā)送,與其前后的IP數(shù)據(jù)報(bào)無(wú)關(guān)。

IP數(shù)據(jù)報(bào)格式

IP 數(shù)據(jù)報(bào)文由首部(稱為報(bào)頭)數(shù)據(jù)兩部分組成。首部的前一部分是固定長(zhǎng)度,共 20 字節(jié),是所有 IP 數(shù)據(jù)報(bào)必須具有的。在首部的固定部分的后面是一些可選字段,其長(zhǎng)度是可變的。

每個(gè) IP 數(shù)據(jù)報(bào)都以一個(gè) IP 報(bào)頭開始。源計(jì)算機(jī)構(gòu)造這個(gè) IP 報(bào)頭,而目的計(jì)算機(jī)利用 IP 報(bào)頭中封裝的信息處理數(shù)據(jù)。IP 報(bào)頭中包含大量的信息,如源 IP 地址、目的 IP 地址、數(shù)據(jù)報(bào)長(zhǎng)度、IP 版本號(hào)等。每個(gè)信息都被稱為一個(gè)字段。

在這里插入圖片描述
在這里插入圖片描述

IP 報(bào)頭的最小長(zhǎng)度為 20 字節(jié),上圖中每個(gè)字段的含義如下:

1) 版本(version)
占 4 位,表示 IP 協(xié)議的版本。通信雙方使用的 IP 協(xié)議版本必須一致。目前廣泛使用的IP協(xié)議版本號(hào)為 4,即 IPv4。
2) 首部長(zhǎng)度(網(wǎng)際報(bào)頭長(zhǎng)度IHL)
占 4 位,可表示的最大十進(jìn)制數(shù)值是 15。這個(gè)字段所表示數(shù)的單位是 32 位字長(zhǎng)(1 個(gè) 32 位字長(zhǎng)是 4 字節(jié))。因此,當(dāng) IP 的首部長(zhǎng)度為 1111 時(shí)(即十進(jìn)制的 15),首部長(zhǎng)度就達(dá)到 60 字節(jié)。當(dāng) IP 分組的首部長(zhǎng)度不是 4 字節(jié)的整數(shù)倍時(shí),必須利用最后的填充字段加以填充。

數(shù)據(jù)部分永遠(yuǎn)在 4 字節(jié)的整數(shù)倍開始,這樣在實(shí)現(xiàn) IP 協(xié)議時(shí)較為方便。首部長(zhǎng)度限制為 60 字節(jié)的缺點(diǎn)是,長(zhǎng)度有時(shí)可能不夠用,之所以限制長(zhǎng)度為 60 字節(jié),是希望用戶盡量減少開銷。最常用的首部長(zhǎng)度就是 20 字節(jié)(即首部長(zhǎng)度為 0101),這時(shí)不使用任何選項(xiàng)。
3) 區(qū)分服務(wù)(tos)
也被稱為服務(wù)類型,占 8 位,用來(lái)獲得更好的服務(wù)。這個(gè)字段在舊標(biāo)準(zhǔn)中叫做服務(wù)類型,但實(shí)際上一直沒(méi)有被使用過(guò)。1998 年 IETF 把這個(gè)字段改名為區(qū)分服務(wù)(Differentiated Services,DS)。只有在使用區(qū)分服務(wù)時(shí),這個(gè)字段才起作用。
4) 總長(zhǎng)度(totlen)
首部和數(shù)據(jù)之和,單位為字節(jié)??傞L(zhǎng)度字段為 16 位,因此數(shù)據(jù)報(bào)的最大長(zhǎng)度為 2^16-1=65535 字節(jié)。
5) 標(biāo)識(shí)(identification)
用來(lái)標(biāo)識(shí)數(shù)據(jù)報(bào),占 16 位。IP 協(xié)議在存儲(chǔ)器中維持一個(gè)計(jì)數(shù)器。每產(chǎn)生一個(gè)數(shù)據(jù)報(bào),計(jì)數(shù)器就加 1,并將此值賦給標(biāo)識(shí)字段。當(dāng)數(shù)據(jù)報(bào)的長(zhǎng)度超過(guò)網(wǎng)絡(luò)的 MTU,而必須分片時(shí),這個(gè)標(biāo)識(shí)字段的值就被復(fù)制到所有的數(shù)據(jù)報(bào)的標(biāo)識(shí)字段中。具有相同的標(biāo)識(shí)字段值的分片報(bào)文會(huì)被重組成原來(lái)的數(shù)據(jù)報(bào)。
6) 標(biāo)志(flag)
占 3 位。第一位未使用,其值為 0。第二位稱為 DF(不分片),表示是否允許分片。取值為 0 時(shí),表示允許分片;取值為 1 時(shí),表示不允許分片。第三位稱為 MF(更多分片),表示是否還有分片正在傳輸,設(shè)置為 0 時(shí),表示沒(méi)有更多分片需要發(fā)送,或數(shù)據(jù)報(bào)沒(méi)有分片。
7) 片偏移(offsetfrag)
占 13 位。當(dāng)報(bào)文被分片后,該字段標(biāo)記該分片在原報(bào)文中的相對(duì)位置。片偏移以 8 個(gè)字節(jié)為偏移單位。所以,除了最后一個(gè)分片,其他分片的偏移值都是 8 字節(jié)(64 位)的整數(shù)倍。
8) 生存時(shí)間(TTL)
表示數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中的壽命,占 8 位。該字段由發(fā)出數(shù)據(jù)報(bào)的源主機(jī)設(shè)置。其目的是防止無(wú)法交付的數(shù)據(jù)報(bào)無(wú)限制地在網(wǎng)絡(luò)中傳輸,從而消耗網(wǎng)絡(luò)資源。

路由器在轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)之前,先把 TTL 值減 1。若 TTL 值減少到 0,則丟棄這個(gè)數(shù)據(jù)報(bào),不再轉(zhuǎn)發(fā)。因此,TTL 指明數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中最多可經(jīng)過(guò)多少個(gè)路由器。TTL 的最大數(shù)值為 255。若把 TTL 的初始值設(shè)為 1,則表示這個(gè)數(shù)據(jù)報(bào)只能在本局域網(wǎng)中傳送。
9) 協(xié)議
表示該數(shù)據(jù)報(bào)文所攜帶的數(shù)據(jù)所使用的協(xié)議類型,占 8 位。該字段可以方便目的主機(jī)的 IP 層知道按照什么協(xié)議來(lái)處理數(shù)據(jù)部分。不同的協(xié)議有專門不同的協(xié)議號(hào)。

例如,TCP 的協(xié)議號(hào)為 6,UDP 的協(xié)議號(hào)為 17,ICMP 的協(xié)議號(hào)為 1。
10) 首部檢驗(yàn)和(checksum)
用于校驗(yàn)數(shù)據(jù)報(bào)的首部,占 16 位。數(shù)據(jù)報(bào)每經(jīng)過(guò)一個(gè)路由器,首部的字段都可能發(fā)生變化(如TTL),所以需要重新校驗(yàn)。而數(shù)據(jù)部分不發(fā)生變化,所以不用重新生成校驗(yàn)值。
11) 源地址
表示數(shù)據(jù)報(bào)的源 IP 地址,占 32 位。
12) 目的地址
表示數(shù)據(jù)報(bào)的目的 IP 地址,占 32 位。該字段用于校驗(yàn)發(fā)送是否正確。
13) 可選字段
該字段用于一些可選的報(bào)頭設(shè)置,主要用于測(cè)試、調(diào)試和安全的目的。這些選項(xiàng)包括嚴(yán)格源路由(數(shù)據(jù)報(bào)必須經(jīng)過(guò)指定的路由)、網(wǎng)際時(shí)間戳(經(jīng)過(guò)每個(gè)路由器時(shí)的時(shí)間戳記錄)和安全限制。
14) 填充
由于可選字段中的長(zhǎng)度不是固定的,使用若干個(gè) 0 填充該字段,可以保證整個(gè)報(bào)頭的長(zhǎng)度是 32 位的整數(shù)倍。
15) 數(shù)據(jù)部分
表示傳輸層的數(shù)據(jù),如保存 TCP、UDP、ICMP 或 IGMP 的數(shù)據(jù)。數(shù)據(jù)部分的長(zhǎng)度不固定。

補(bǔ)充
區(qū)分服務(wù):
支持區(qū)分服務(wù)DS功能的結(jié)點(diǎn)稱為DS結(jié)點(diǎn)。
跳過(guò)區(qū)分服務(wù)的細(xì)節(jié)個(gè)紹
IP協(xié)議中,對(duì)lP數(shù)據(jù)報(bào)采取的轉(zhuǎn)發(fā)處理行為稱為每跳行為(Per-Hop Behavior,PHB)。
不同的PHB種類代表了不同種類的服務(wù)質(zhì)量。
6位DS字段可以定義64個(gè)區(qū)分服務(wù)碼點(diǎn)DSCP。

在這里插入圖片描述
在這里插入圖片描述
默認(rèn)PHB(Default PHB,DF PHB)
DSCP的默認(rèn)值為全0,代表采用常規(guī)的盡最大努力交付的IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)策略。

類別選擇PHB組(Class Selector PHB,CS PHB)
RFC2474規(guī)定:按照從高位到低位的順序,DS字段的第0-2位與早期服務(wù)類型字段中的優(yōu)先級(jí)定義保持兼容,DS字段中的第3-5位均為0的DSCP值對(duì)應(yīng)的PHB稱為CSPHB。

確保轉(zhuǎn)發(fā)PHB組(Assured Forwarding PHB,AF PHB)

RFC2597定義了AF組。按照從高位到低位的順序,AF組用DSCP的第0-2位把通信量劃分為四個(gè)AF類,分別為001,010,011和100。對(duì)于每個(gè)AF類,再用DSCP的第3-5位劃分出三個(gè)“丟棄優(yōu)先級(jí)”,從最低丟棄優(yōu)先級(jí)到最高丟棄優(yōu)先級(jí)分別為010,100和110。

AF類為i,丟棄優(yōu)先級(jí)為j的IP數(shù)據(jù)報(bào)標(biāo)記為Af,如DSCP值為010110的IP數(shù)據(jù)報(bào)標(biāo)記為AF23。
對(duì)于不同的AF類,RFC2597要求DS結(jié)點(diǎn)分配不同的轉(zhuǎn)發(fā)資源,如緩存或帶寬等。

丟棄優(yōu)先級(jí)僅用來(lái)配合路由器的主動(dòng)隊(duì)列管理AQM策略使用。相同AF類中,“丟棄優(yōu)先級(jí)”較高的分組適用較高的丟包概率。

加速轉(zhuǎn)發(fā)PHB(expedited forwarding PHB,EF PHB)
RFC3246定義了加速轉(zhuǎn)發(fā)PHB,DSCP值為101110.
加速轉(zhuǎn)發(fā)EF提供了非擁塞的網(wǎng)絡(luò)服務(wù),對(duì)于EF流量,要求DS結(jié)點(diǎn)的輸出速率大于輸入速率。在一臺(tái)路由器的隊(duì)列中,EF流量?jī)H排在其他EF流量之后。
容量許可流量(Capacity-Admitted Traffic)
由RFC5865定義,DSCP值為101100。該DSCP命名為VOICE-ADMIT,主要用于VolP業(yè)務(wù)。
較少努力PHB(Lower-Effort PHB,LE PHB)
·由RFC8622定義,DSCP值為000001,主要用于低優(yōu)先級(jí)流量,如搜索引擎的爬蟲。

IP分片和重組
IP數(shù)據(jù)報(bào)總長(zhǎng)度超過(guò)MTU則需要分片
IPV4中的分片操作可以在發(fā)送方主機(jī)任何中間路由器上進(jìn)行。
注意:IPv6的分片操作僅允許在發(fā)送方主機(jī)上進(jìn)行。
IP的重組操作只能在最終目的主機(jī)上進(jìn)行。
總長(zhǎng)度字段、標(biāo)識(shí)字段、標(biāo)志字段和片偏移字段用來(lái)完成IP的分片和重組。

IP分片操作時(shí),將原IP數(shù)據(jù)報(bào)的首部復(fù)制到各IP數(shù)據(jù)報(bào)片中,并根據(jù)需要修改總長(zhǎng)度、標(biāo)志、片偏移等字段的值,重新計(jì)算首部校驗(yàn)和。

IP數(shù)據(jù)報(bào)片的數(shù)據(jù)部分長(zhǎng)度需要滿足以下3個(gè)條件:

①數(shù)據(jù)部分長(zhǎng)度 首部長(zhǎng)度 ≤ MTU:
②數(shù)據(jù)部分長(zhǎng)度是8字節(jié)整數(shù)倍,最后一個(gè)分片可以不滿足該條件:
③數(shù)據(jù)部分長(zhǎng)度取滿足以上兩個(gè)條件的數(shù)值中的最大值。

在這里插入圖片描述
常見(jiàn)的協(xié)議字段值
在這里插入圖片描述

IP分組轉(zhuǎn)發(fā)

互聯(lián)網(wǎng)中的主機(jī)和路由器都維護(hù)了至少一張路由表,用來(lái)實(shí)現(xiàn)分組轉(zhuǎn)發(fā)功能。
主機(jī)或路由器查找路由表,將IP數(shù)據(jù)報(bào)從某個(gè)網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)出去的過(guò)程稱為IP分組轉(zhuǎn)發(fā)。
當(dāng)互聯(lián)網(wǎng)中的結(jié)點(diǎn)要把一個(gè)IP數(shù)據(jù)報(bào)發(fā)送給目的主機(jī)時(shí),需要判斷目的主機(jī)是否與自己直接相連。

  1. 轉(zhuǎn)發(fā)結(jié)點(diǎn)與目的結(jié)點(diǎn)位于相同網(wǎng)絡(luò),則直接相連。
  2. 如果直接相連,則不需要經(jīng)過(guò)任何路由器,IP數(shù)據(jù)報(bào)就直接發(fā)送到目的主機(jī),這個(gè)過(guò)程稱為直接交付。
  3. 如果不是直接相連,則必須把IP數(shù)據(jù)報(bào)發(fā)送給某個(gè)路由器,由該路由器將IP數(shù)據(jù)報(bào)交付到目的主機(jī),這個(gè)過(guò)程稱為間接交付。

路由表

P協(xié)議沒(méi)有規(guī)定路由表或轉(zhuǎn)發(fā)表的精確格式,為了支持CDR,路由表中每個(gè)項(xiàng)目至少應(yīng)包含以下字段:目的地址掩碼、下一跳和轉(zhuǎn)發(fā)接口。

目的地址
目的地址是一個(gè)32位值,用于與掩碼操作結(jié)果做匹配??梢源硪韵氯N含義:

①目的主機(jī)地址:當(dāng)掩碼是32位,即掩碼為255.255.255.255時(shí),目的地址僅能匹配某一個(gè)主機(jī)的IP地址,這樣的路由表項(xiàng)目稱為特定主機(jī)路由
②所有主機(jī):當(dāng)掩碼長(zhǎng)度是0位,即掩碼為0.0.0.0,且目的地址字段值為0.0.0.0時(shí),該目的地址可以匹配所有的P地址,這樣的路由表項(xiàng)目稱為默認(rèn)路由
③目的網(wǎng)絡(luò)前綴:當(dāng)掩碼長(zhǎng)度是1~31位,目的地址能匹配某個(gè)CIDR網(wǎng)絡(luò)前綴,這樣的路由表項(xiàng)目稱為目的網(wǎng)絡(luò)路由。

掩碼:
掩碼指CIDR掩碼,長(zhǎng)度32位,可以用來(lái)和IP數(shù)據(jù)報(bào)中的目的IP地址做掩碼操作
下一跳:
下一跳是一個(gè)P地址,指向一個(gè)直接相連的路由器,IP數(shù)據(jù)報(bào)將被轉(zhuǎn)發(fā)到該地址。
轉(zhuǎn)發(fā)接口:
轉(zhuǎn)發(fā)接口是一個(gè)網(wǎng)絡(luò)層使用的標(biāo)識(shí)符,用以指明將P數(shù)據(jù)報(bào)發(fā)送到下一跳的網(wǎng)絡(luò)接口。

路由表的維護(hù)可以由系統(tǒng)管理員手動(dòng)進(jìn)行,也可以由一個(gè)或多個(gè)路由選擇協(xié)議維護(hù)。

結(jié)點(diǎn)進(jìn)行分組轉(zhuǎn)發(fā)的過(guò)程如下:

  1. 獲取目的IP地址ID:
    解析待發(fā)送P數(shù)據(jù)報(bào)的首部,讀取目的P地址ID:
  2. 按照最長(zhǎng)前綴匹配算法搜索路由表:
    在路由表中搜索所有與ID“匹配”的路由項(xiàng)目。
    所謂“匹配”是指:將ID與路由項(xiàng)目的掩碼字段做按位與操作,得到的結(jié)果與該項(xiàng)目的目的地址字段值相同。在所有與ID匹配的路由項(xiàng)目中,選出掩碼中1的位數(shù)最多的路由項(xiàng)目,即最長(zhǎng)前綴匹配。
  3. 按照最長(zhǎng)前綴匹配的路由項(xiàng)目進(jìn)行轉(zhuǎn)發(fā)
    讀取最長(zhǎng)前綴匹配的路由項(xiàng)目的接口字段和下一跳字段,將IP數(shù)據(jù)報(bào)從指定接口發(fā)送出去。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
路由表的快速查找
經(jīng)過(guò)精心設(shè)計(jì)的路由查找算法不需要遍歷路由表,即可高效、快速地找到最長(zhǎng)前綴匹配項(xiàng)目。
最容易想到的方法是按照掩碼長(zhǎng)度的順序,存儲(chǔ)路由表,掩碼越長(zhǎng)的表項(xiàng)存儲(chǔ)位置越靠前,這樣按序查找后,最先找到的匹配就是最長(zhǎng)前綴匹配。各種路由表的實(shí)現(xiàn)中,有更多更高效的算法,如Linux中實(shí)現(xiàn)的Hash查找算法Tire樹查找算法。

網(wǎng)際控制報(bào)文協(xié)議ICMP

網(wǎng)際控制報(bào)文協(xié)議ICMP負(fù)責(zé)傳送差錯(cuò)報(bào)文以及其它控制信息,它必須與IP協(xié)議一起實(shí)現(xiàn),通常被認(rèn)為是網(wǎng)絡(luò)層的一部分。
ICMP報(bào)文可分為兩大類:ICMP差錯(cuò)報(bào)告報(bào)文ICMP查詢/信息報(bào)文。
在這里插入圖片描述

ICMP報(bào)文格式
在這里插入圖片描述常見(jiàn)類型值
在這里插入圖片描述

常見(jiàn)代碼值
在這里插入圖片描述
ICMP差錯(cuò)報(bào)告報(bào)文
所有的ICMP差錯(cuò)報(bào)告報(bào)文中的數(shù)據(jù)字段都具有同樣的格式。

包含一個(gè)完整的原始IP數(shù)據(jù)報(bào)(導(dǎo)致差錯(cuò)的IP數(shù)據(jù)報(bào))的首部副本,以及原始IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分的前n字節(jié)。
在這里插入圖片描述
ICMP差錯(cuò)報(bào)告報(bào)文中應(yīng)包含原始IP數(shù)據(jù)報(bào)中的盡可能多的數(shù)據(jù),但要確保新生成的IP數(shù)據(jù)報(bào)長(zhǎng)度不超過(guò)576字節(jié)。

拓展的ICMP報(bào)文格式
在這里插入圖片描述
在這里插入圖片描述

RFC4884規(guī)定了ICMP擴(kuò)展結(jié)構(gòu)的格式,但是擴(kuò)展結(jié)構(gòu)中的對(duì)象由其它RFC文檔具體規(guī)定。

如:RFC4950為多協(xié)議標(biāo)記交換MPLS規(guī)定了標(biāo)記堆棧對(duì)象,標(biāo)記堆棧對(duì)象可以應(yīng)用在目的不可達(dá)報(bào)文和超時(shí)報(bào)文中,當(dāng)使用traceroute程序時(shí),可以用來(lái)記錄轉(zhuǎn)發(fā)路徑中的標(biāo)記。
再如:RFC8335將擴(kuò)展結(jié)構(gòu)應(yīng)用在ICMP查詢/信息類報(bào)文中,利用擴(kuò)展結(jié)構(gòu)對(duì)回顯請(qǐng)求和回顯應(yīng)答報(bào)文進(jìn)行擴(kuò)展,提出了一種新型的網(wǎng)絡(luò)可達(dá)性探測(cè)工具Probe。

目的不可達(dá)差錯(cuò)報(bào)告報(bào)文
目的不可達(dá)差錯(cuò)報(bào)告報(bào)文用來(lái)表示IP數(shù)據(jù)報(bào)無(wú)法送達(dá)目的地,可能的原因很多。
ICMPv4為此報(bào)文定義了16個(gè)不同的代碼,其中有5個(gè)是較常用的,分別是:

網(wǎng)絡(luò)不可達(dá)
主機(jī)不可達(dá)
端口不可達(dá)
需要分片
管理禁止通信

重定向差錯(cuò)報(bào)告報(bào)文
如果路由器收到一個(gè)IP數(shù)據(jù)報(bào),查找路由表后發(fā)現(xiàn)自己并不是將該IP數(shù)據(jù)報(bào)投遞到目的地址的最佳路由,則該路由器發(fā)送一個(gè)重定向差錯(cuò)報(bào)告報(bào)文給源主機(jī),同時(shí)仍然將該IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到正確的下一跳路由器。

路由器比較IP數(shù)據(jù)報(bào)的輸入接口是否與其下一跳轉(zhuǎn)發(fā)接口相同,如果輸入接口等于輸出接口,則需要產(chǎn)生重定向差錯(cuò)報(bào)告報(bào)文

超時(shí)差錯(cuò)報(bào)告報(bào)文

每臺(tái)路由器在轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)時(shí)都將IP數(shù)據(jù)報(bào)中的TTL值減1。
當(dāng)TTL值減為0時(shí),路由器丟棄該IP數(shù)據(jù)報(bào),并發(fā)送一個(gè)超時(shí)差錯(cuò)報(bào)告報(bào)文給源主機(jī)。
在這里插入圖片描述
不產(chǎn)生ICMP差錯(cuò)報(bào)告報(bào)文的情況
根據(jù)RFC1812的規(guī)定,以下幾種情況不應(yīng)產(chǎn)生和發(fā)送CMP差錯(cuò)報(bào)告報(bào)文:

ICMP差錯(cuò)報(bào)告報(bào)文;
第一個(gè)IP分片以外的其它IP數(shù)據(jù)報(bào)片;
IP首部校驗(yàn)和驗(yàn)證失敗的IP數(shù)據(jù)報(bào);
目的地址是IPv4廣播地址或IPv4多播地址的IP數(shù)據(jù)報(bào);
作為鏈路層廣播的IP數(shù)據(jù)報(bào);
源IP地址不是單播地址的IP數(shù)據(jù)報(bào),或者源地址無(wú)效(全零地址、環(huán)回地址等)的IP數(shù)據(jù)報(bào)。

ICMP應(yīng)用實(shí)例

ping / traceroute / tracert / TCP路徑MTU發(fā)現(xiàn)
在這里插入圖片描述
ping
在這里插入圖片描述

traceroute / tracert
在這里插入圖片描述
TCP的路徑MTU發(fā)現(xiàn)
在這里插入圖片描述在這里插入圖片描述

路由選擇協(xié)議

實(shí)現(xiàn)路由選擇功能的算法稱為路由選擇算法。
為路由選擇算法傳遞必要信息的網(wǎng)絡(luò)協(xié)議稱為路由選擇協(xié)議

路由選擇算法是路由選擇協(xié)議的核心,其目的是找到從發(fā)送方到接收方的最佳路由。
互聯(lián)網(wǎng)中的路由選擇算法根據(jù)特定的指標(biāo)定義并度量“最佳”路由。這些度量可以統(tǒng)稱為開銷,通常最佳路由指具有最低開銷的路由。
路由選擇算法的目標(biāo)就是找出從源到目的之間的最低開銷路徑,即最佳路徑。

在這里插入圖片描述
可以用來(lái)形式化描述路由選擇算法。

G=(N,E)是一個(gè)具有N個(gè)頂點(diǎn)和E條邊的集合。
圖中的一個(gè)頂點(diǎn)代表一臺(tái)路由器或者一個(gè)其它結(jié)點(diǎn),這是做出分組轉(zhuǎn)發(fā)決定的點(diǎn)。

兩個(gè)頂點(diǎn)之間的邊代表兩臺(tái)相鄰路由器之間的鏈路。每條邊用一個(gè)值代表它的開銷。
E中的任一條邊(x,y),我們用c(x,y)代表邊(x,y)的開銷。
一旦圖中的每條邊都給定了開銷,路由選擇算法找出從源到目的之間的最低開銷路徑,即最佳路徑。

路由選擇協(xié)議為路由選擇算法傳遞和提供邊的“開銷”。
不同的路由選擇協(xié)議,采用不同的度量指標(biāo),對(duì)邊的開銷的定義也不同。
即使網(wǎng)絡(luò)拓?fù)湎嗤?#xff0c;不同的路由協(xié)議也有可能得出不同的最佳路由。

常用的路由選擇算法包括:

  1. 距離向量算法(DV)
  2. 鏈路狀態(tài)算法(LS)
  3. 路徑向量算法(PV)

自治系統(tǒng)AS
互聯(lián)網(wǎng)的規(guī)模為路由選擇協(xié)議帶來(lái)了巨大的困難。解決路由選擇擴(kuò)展能力的方法是引入層次結(jié)構(gòu)。
為了實(shí)現(xiàn)分層次的路由選擇,互聯(lián)網(wǎng)被劃分為許多自治系統(tǒng)(Autonomous System,AS)

自治系統(tǒng)AS是指在單一技術(shù)管理下的一組路由器,這些路由器使用一種自治系統(tǒng)內(nèi)部的路由選擇協(xié)議和共同的度量。

RFC4271強(qiáng)調(diào),自治系統(tǒng)AS的關(guān)鍵在于:對(duì)其它AS表現(xiàn)出一個(gè)單一的、一致的路由選擇策略。
每個(gè)自治系統(tǒng)擁有一個(gè)全球唯一的自治系統(tǒng)號(hào)ASN,ASN由IANA管理和分配,最初規(guī)定為一個(gè)16位數(shù)值,RFC6793將其擴(kuò)展到了32位。

引入自治系統(tǒng)后,互聯(lián)網(wǎng)的路由選擇協(xié)議就被劃分為兩大類:

內(nèi)部網(wǎng)關(guān)協(xié)議IGP
外部網(wǎng)關(guān)協(xié)議EGP

在這里插入圖片描述
自治系統(tǒng)、內(nèi)部網(wǎng)關(guān)協(xié)議和外部網(wǎng)關(guān)協(xié)議之間的關(guān)系
在這里插入圖片描述
路由信息協(xié)議RIP

RIP是互聯(lián)網(wǎng)的正式標(biāo)準(zhǔn),由RFC2453規(guī)定,目前版本2,記為RIPv2.
RIPv2支持CIDR,其最大優(yōu)點(diǎn)是簡(jiǎn)單。
RIPv2支持簡(jiǎn)單認(rèn)證,RFC4822為RIPv2補(bǔ)充規(guī)定了加密認(rèn)證機(jī)制。
RIP采用距離向量算法(DV)。

距離向量算法(DV)

DV算法不需要知道網(wǎng)絡(luò)的全局信息,它是一種迭代的、異步的和分布式的算法。
DV算法的基礎(chǔ)是Bellman-Ford方程

d(x,y)=minv{c(x,v), d(v,y)},v∈{x的鄰居頂點(diǎn)}

Bellman-Ford方程給出了一種求頂點(diǎn)x到頂點(diǎn)y的最低開銷的方法。DV算法利用Bellman-Ford方程求解最短路徑。

思路:我到目的地的最小距離,等于 我到鄰居距離與鄰居到目的地最小距離之和(存在一個(gè)或多個(gè)鄰居) 的最小值。

參考博客:
距離向量DV算法

RIP協(xié)議概述
RIP規(guī)定所有路由器到與其直接連接的網(wǎng)絡(luò)的開銷為1。

RIP將兩臺(tái)路由器之間的最低開銷稱為“距離”,也稱為“跳數(shù)”。每經(jīng)過(guò)一臺(tái)路由器,跳數(shù)加1。

RIP允許一條路徑的“距離”的最大值為15,因此“距離等于16即相當(dāng)于不可達(dá)。

RIP僅適用于小型自治系統(tǒng)

RIP更新算法
運(yùn)行RIP的路由器中維護(hù)的路由信息數(shù)據(jù),由多個(gè)路由項(xiàng)目組成
RIP協(xié)議的報(bào)文中也包括多個(gè)路由項(xiàng)目。來(lái)自路由器G的RIP報(bào)文中的一個(gè)路由項(xiàng)目如下所示:

在這里插入圖片描述
在這里插入圖片描述
RIP協(xié)議其他規(guī)定

路由器最初僅知道直連網(wǎng)絡(luò)的路由信息。

RIP規(guī)定每間隔30秒,路由器都需要發(fā)送RIP路由更新報(bào)文給所有鄰居。RIP路由更新報(bào)文中的路由項(xiàng)目包括本路由器已知的全部路由信息。每臺(tái)路由器只和數(shù)目有限的相鄰路由器交換并更新路由信息。

RIP規(guī)定超時(shí)計(jì)時(shí)器,默認(rèn)為3分鐘,若超時(shí)計(jì)時(shí)器到期,仍未收到鄰居路由器G的路由更新報(bào)文,則將下一跳為G的所有路由都標(biāo)記為無(wú)效,即將距離修改為16。

RP規(guī)定垃圾回收計(jì)時(shí)器,默認(rèn)為2分鐘,若垃圾回收計(jì)時(shí)器到期,才會(huì)刪除無(wú)效路由項(xiàng)目。

示例

在這里插入圖片描述
“無(wú)窮計(jì)數(shù)”問(wèn)題
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
無(wú)窮計(jì)數(shù)問(wèn)題的解決方法

帶毒性逆轉(zhuǎn)的水平分割:
簡(jiǎn)單水平分割:向鄰居發(fā)送路由更新時(shí),不包含從該鄰居學(xué)習(xí)到的項(xiàng)目:
帶毒性逆轉(zhuǎn)的水平分割:向鄰居發(fā)送路由更新時(shí)包含從該鄰居學(xué)習(xí)到的項(xiàng)目,但將這些項(xiàng)目的距離設(shè)置為16。

可以完全避免兩臺(tái)路由器之間的路由環(huán)路。但是當(dāng)三臺(tái)以上路由器構(gòu)成環(huán)路,并相互學(xué)習(xí)時(shí),帶毒性逆轉(zhuǎn)的水平分割方案就無(wú)法避免無(wú)窮計(jì)算問(wèn)題了。

觸發(fā)更新:
當(dāng)路由器一旦發(fā)現(xiàn)路由項(xiàng)目的距離發(fā)生變化,就立即發(fā)送路由更新信息給鄰居路由器。
綜合采用上述機(jī)制可以使發(fā)生無(wú)窮計(jì)數(shù)問(wèn)題的概率降到極低,但仍然不能完全避免該問(wèn)題的發(fā)生。

RIP報(bào)文格式
在這里插入圖片描述
參考連接:
RIP報(bào)文格式

開放最短路徑優(yōu)先OSPF
OSPF是互聯(lián)網(wǎng)的正式標(biāo)準(zhǔn),IPv4使用的是第2版的OSPF,由RFC2328規(guī)定。

OSPF也支持CIDR,其最大特點(diǎn)是支持在自治系統(tǒng)內(nèi)再次分層。
OSPF支持身份鑒別。
OSPF采用鏈路狀態(tài)算法。

鏈路狀態(tài)算法(LS算法)

LS算法是一種使用全局信息的算法。

在LS算法中,網(wǎng)絡(luò)拓?fù)浜退械逆溌烽_銷都是已知的,可以用作LS算法的輸入,計(jì)算最小開銷。
在實(shí)踐中,鏈路開銷通常通過(guò)鏈路狀態(tài)廣播通知給網(wǎng)絡(luò)中的其它路由器。鏈路狀態(tài)廣播的結(jié)果就是網(wǎng)絡(luò)中的所有路由器都擁有包含網(wǎng)絡(luò)拓?fù)浜退墟溌烽_銷的一致數(shù)據(jù),這些數(shù)據(jù)稱為鏈路狀態(tài)數(shù)據(jù)庫(kù)。

LS算法利用鏈路狀態(tài)數(shù)據(jù)庫(kù)進(jìn)行路由計(jì)算。

基于鏈路狀態(tài)的路由選擇分為兩個(gè)階段:鏈路狀態(tài)廣播階段路由計(jì)算階段。OSPF采用的LS算法是Dijkstra算法(前向算法)。

參考鏈接:
OSPF介紹

LS算法介紹

OSPF協(xié)議概述

OSPF協(xié)議非常復(fù)雜和繁瑣,
本節(jié)僅從以下幾個(gè)方面介紹OSPF協(xié)議的基本原理:

·OSPF的區(qū)域劃分
·OSPF的鏈路狀態(tài)廣播
·OSPF的工作過(guò)程

OSPF的區(qū)域劃分
在這里插入圖片描述

OSPF在自治系統(tǒng)內(nèi)引入了層次結(jié)構(gòu),將一個(gè)自治系統(tǒng)進(jìn)分為多個(gè)區(qū)域
在上層的區(qū)域叫做主干區(qū)域,用于連通其它區(qū)域,

OSPF規(guī)定每個(gè)區(qū)域必須有一32位的標(biāo)識(shí)符。主干區(qū)域的標(biāo)識(shí)符為0.0.0.0,一般稱為區(qū)域0。劃分區(qū)域后,鏈路狀態(tài)廣播被限制在區(qū)域內(nèi)部。

OSPF自治系統(tǒng)內(nèi)包括四種類型的路由器

  1. 內(nèi)部路由器
  2. 主干路由器
  3. 區(qū)域邊界路由器
  4. AS邊界路由器

內(nèi)部路由器:廣播發(fā)送自己的鏈路狀態(tài)信息,參與區(qū)域內(nèi)的路由計(jì)算,并從區(qū)域邊界路由器那里學(xué)習(xí)其它區(qū)域的路由信息。

主干路由器:主干區(qū)域的內(nèi)部路由器。

區(qū)域邊界路由器:屬于多個(gè)區(qū)域,執(zhí)行LS算法的多個(gè)拷貝,每個(gè)拷貝參與一個(gè)區(qū)域的路由計(jì)算。
區(qū)域邊界路由器負(fù)責(zé)將所屬區(qū)域的路由信息匯總后發(fā)往主干區(qū)域,也將來(lái)自主干區(qū)域的路由信息匯總后發(fā)往自己所屬的區(qū)域。

AS邊界路由器:運(yùn)行OSPF獲得AS內(nèi)的路由信息,也運(yùn)行外部網(wǎng)關(guān)協(xié)議如BGP,學(xué)習(xí)AS外的路由信息,并將外部路由信息在整個(gè)AS內(nèi)通告。

樁(stub)區(qū)域
在這里插入圖片描述

OSPF定義了一類特殊的區(qū)域,它們不需要接收本區(qū)域外的路由信息,這類特殊區(qū)域稱為樁區(qū)域(stub areas)
當(dāng)某區(qū)域只有唯一的出口時(shí),或者某區(qū)域的出口不需要根據(jù)網(wǎng)絡(luò)拓?fù)溥M(jìn)行設(shè)定時(shí),可以將該區(qū)域配置為樁區(qū)域。

OSPF的鏈路狀態(tài)廣播
OSPF采用可靠洪泛方法實(shí)現(xiàn)行鏈路狀態(tài)廣播。
可靠洪泛方法的基本步驟包括洪泛確認(rèn)。
運(yùn)行OSPF的路由器會(huì)創(chuàng)建一個(gè)或多個(gè)鏈路狀態(tài)通告LSA,封裝在OSPF的分組中。

OSPF共定義了5種LSA,每種LSA都至少包含如下信息:

  1. 創(chuàng)建LSA的路由器ID;
  2. 與路由器直接相鄰的鏈路信息,包括鏈路開銷:
  3. 鏈路狀態(tài)序號(hào)(LS sequence number);
  4. 鏈路狀態(tài)老化時(shí)間(LS age)

可靠洪泛法
LS洪泛:路由器X收到來(lái)自同一個(gè)區(qū)域的路由器Y的LSA時(shí),X將檢查該LSA是否是新的。只有收到新的LSA,路由器X才更新自己的LSDB并將新的LSA從本次接收接口以外的其它所有接口轉(zhuǎn)發(fā)出去。

LS確認(rèn):收到LS更新的路由器將確認(rèn)信息通過(guò)本次接收接口,發(fā)向相鄰路由器。LS確認(rèn)不需要洪泛。

在這里插入圖片描述
在這里插入圖片描述
OSPF的工作過(guò)程
在這里插入圖片描述
參考鏈接:
OSPF詳解

OSPF分組格式
在這里插入圖片描述
參考鏈接:
OSPF分組格式

五類LSA
在這里插入圖片描述
OSPF的特點(diǎn)
在這里插入圖片描述
邊界網(wǎng)關(guān)協(xié)議BGP

邊界網(wǎng)關(guān)協(xié)議BGP是目前域間路由協(xié)議的事實(shí)標(biāo)準(zhǔn),其當(dāng)前版本號(hào)為4,記
為BGP-4,由RFC4271規(guī)定。
BGP一直被認(rèn)為是互聯(lián)網(wǎng)最復(fù)雜的部分之一。

BGP支持CIDR,支持鑒別
BGP采用路徑向量算法,尋找有效路徑。
BGP基于策略,選擇“最佳”路由。

BGP的路徑向量算法僅和其鄰居路由器交換可達(dá)性信息,路由信息包含到達(dá)目的網(wǎng)絡(luò)的完整路徑信息,因而稱為路徑向量算法。

但BGP不追求尋找一條最低開銷路徑,BGP只力求尋找一條無(wú)環(huán)的通往目的網(wǎng)絡(luò)的有效路徑。
當(dāng)存在多條有效路徑時(shí),BGP基于策略選擇出“最佳”路徑。

采用路徑向量算法的原因
在這里插入圖片描述
BGP- 自治系統(tǒng)AS分類

依據(jù)允許的流量不同,可以對(duì)AS進(jìn)行分類:

本地流量指起止點(diǎn)都在AS內(nèi)的通信量,
中轉(zhuǎn)流量指穿過(guò)一個(gè)AS傳送的通信量。

在這里插入圖片描述

在這里插入圖片描述

每個(gè)AS都有一臺(tái)或多臺(tái)AS邊界路由器。
AS邊界路由器是負(fù)責(zé)在AS之間完成分組轉(zhuǎn)發(fā)的路由器。
每個(gè)AS可以擁有多個(gè)網(wǎng)絡(luò)前綴。

在這里插入圖片描述
路徑向量交換
每一個(gè)參與BGP的AS必須至少選擇一個(gè)BGP發(fā)言人
通常選擇AS邊界路由器作為BGP發(fā)言人,但AS邊界路由器并不一定必須成為BGP發(fā)言人。
BGP發(fā)言人之間通過(guò)TCP通信,交換路由信息。
建立TCP連接的兩個(gè)BGP發(fā)言人,彼此成為對(duì)方的鄰站或?qū)Φ日尽?/p>

在這里插入圖片描述

BGP路由信息的構(gòu)成:

BGP路由=[前綴,BGP屬性]

前綴支持CIDR,由[目的P地址,掩碼]構(gòu)成

BGP屬性有很多,最重要的是AS-PATH屬性,AS-PATH屬性包含到目的網(wǎng)絡(luò)的完整路徑信息。

BGP還可以包含很多其它屬性。

在這里插入圖片描述AS-PATH屬性可以防止環(huán)路出現(xiàn)。

AS-PATH中,每個(gè)AS用唯一編號(hào)ASN表示

對(duì)于樁AS,可以不分配ASN

當(dāng)收到的AS-PATH中包含自己的編號(hào)時(shí),說(shuō)明出現(xiàn)環(huán)路,丟棄。

基于策略的最佳路由選擇

AS1到N2有兩條路徑,應(yīng)該如何選擇?
AS1可以根據(jù)預(yù)先配置的路由選擇策略來(lái)進(jìn)行選擇。
根據(jù)不同的屬性可以設(shè)定不同的規(guī)則。
規(guī)則舉例:AS跳數(shù)較少的路由較好。
所謂策略就是一系列按照順序執(zhí)行的規(guī)則。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
BGP報(bào)文種類
當(dāng)TCP連接建立后,BGP首先發(fā)送OPEN報(bào)文,如果鄰站接受這種關(guān)系,就用KEEPALIVE報(bào)文響應(yīng)。這樣,兩個(gè)BGP發(fā)言人就建立了對(duì)等站關(guān)系。

在BGP最初運(yùn)行時(shí),BGP對(duì)等站交換完整的BGP路由表。但以后只在路由發(fā)生變化時(shí)更新有變化的部分。這樣可以節(jié)約網(wǎng)絡(luò)帶寬和減少路由器的處理開銷。

一旦建立了對(duì)等站關(guān)系,雙方都需要周期性地發(fā)送KEEPALIVE報(bào)文,以證實(shí)自己還在線。
BGP發(fā)言人可以用UPDATE報(bào)文宣布增加新的路由,也可以通告撤銷過(guò)時(shí)路由。

檢測(cè)到BGP差錯(cuò)時(shí),BGP發(fā)送NOTIFICATION報(bào)文,隨后將關(guān)閉BGP連接

域間路由與域內(nèi)路由的集成
當(dāng)BGP發(fā)言人收到對(duì)等站的路由信息后,如何才能把這些域間路由信息通知給本AS內(nèi)的其它路由器呢?
1、最簡(jiǎn)單的情況,只有一臺(tái)AS邊界路由器的樁AS:

·AS邊界路由器只需將一個(gè)默認(rèn)路由導(dǎo)入內(nèi)部網(wǎng)關(guān)協(xié)議,然后內(nèi)部網(wǎng)關(guān)協(xié)議將默認(rèn)路由擴(kuò)散到AS內(nèi)的全部路由器。

2、多連接AS和中轉(zhuǎn)AS的情況
由于有多臺(tái)AS邊界路由器,因而AS內(nèi)部路由器需要決定將IP數(shù)據(jù)報(bào)從哪臺(tái)AS邊界路由器發(fā)送出去。
BGP路由表非常龐大,如果把BGP路由表都導(dǎo)入內(nèi)部網(wǎng)關(guān)協(xié)議,依靠?jī)?nèi)部網(wǎng)關(guān)協(xié)議將這些域間路由信息擴(kuò)散到AS內(nèi)部路由器,會(huì)極大增加網(wǎng)絡(luò)的負(fù)載和路由器的計(jì)算開銷。

解決方案:BGP將其應(yīng)用范圍擴(kuò)展到了自治系統(tǒng)AS內(nèi)部。RFC4271將BGP分為兩種形式:外部BGP(External BGP,EBGP)和內(nèi)部BGP(Internal BGP)

運(yùn)行于不同AS之間的BGP稱為EBGP
運(yùn)行于同一AS內(nèi)部的BGP稱為IBGP

EBGP與IBGP本質(zhì)上沒(méi)有區(qū)別,都是為了傳遞域間路由信息

在這里插入圖片描述
在這里插入圖片描述
BGP報(bào)文格式
在這里插入圖片描述
在這里插入圖片描述

專用網(wǎng)相關(guān)概念

網(wǎng)絡(luò)地址轉(zhuǎn)換NAT
專用網(wǎng)是指企業(yè)或機(jī)構(gòu)內(nèi)部專用的網(wǎng)絡(luò)。

專用網(wǎng)上的主機(jī)與公用的互聯(lián)網(wǎng)上的主機(jī)通信需要利用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT。

專用網(wǎng)上的地址稱為專網(wǎng)地址(Private Address),它們僅需要在一定的范圍內(nèi)唯一。在互聯(lián)網(wǎng)的不同部分,這些IP地址可以被重復(fù)使用。因此,也稱為可重用地址。

網(wǎng)絡(luò)地址轉(zhuǎn)換也被用來(lái)延緩IP地址空間耗盡。
需要向IANA申請(qǐng)才能使用的全球唯一的IP地址稱為全球地址(Global Address)公網(wǎng)地址。

在這里插入圖片描述
使用NAT需要在專用網(wǎng)絡(luò)連接到互聯(lián)網(wǎng)的路由器上安裝NAT軟件。

安裝了NAT軟件的路由器稱為NAT路由器,它至少應(yīng)具有一個(gè)有效的全球地址。
NAT存在兩種形左式:

  1. 基本NAT
  2. 網(wǎng)絡(luò)地址與端口轉(zhuǎn)換NAPT

基本NAT
在這里插入圖片描述
網(wǎng)絡(luò)地址與端口轉(zhuǎn)換NAPT

在這里插入圖片描述

NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換):NAT是將IP數(shù)據(jù)報(bào)頭中的IP地址轉(zhuǎn)換為另一個(gè)IP地址的過(guò)程。使用少量的公網(wǎng)IP地址代表較多的私網(wǎng)IP地址的方式,僅支持地址轉(zhuǎn)換,不支持端口映射
NAPT(網(wǎng)絡(luò)地址端口轉(zhuǎn)換):支持端口的映射并允許多臺(tái)主機(jī)共享一個(gè)公用IP地址,這樣就可以支持同時(shí)多個(gè)位于NAT后面的機(jī)器和外部進(jìn)行交互了。支持端口轉(zhuǎn)換的NAT又可以分為兩類:源地址轉(zhuǎn)換(SNAT)和目的地址轉(zhuǎn)換NAT(DNAT),下面說(shuō)的NAT都是指NAPT。

不管采用NAT,還是采用NAPT,NAT路由器的地址映射表都有兩種實(shí)現(xiàn)方式:
動(dòng)態(tài)映射靜態(tài)映射。
在這里插入圖片描述
在這里插入圖片描述
虛擬專用網(wǎng)VPN
機(jī)構(gòu)內(nèi)部的專用網(wǎng)之間的鏈路通常是·私有的·。

在這里插入圖片描述
利用公網(wǎng)的互聯(lián)網(wǎng)作為本機(jī)構(gòu)各專用網(wǎng)之間通信載體的專用網(wǎng)稱為虛擬專用網(wǎng)(VPN)

隧道技術(shù)

在公用互聯(lián)網(wǎng)上創(chuàng)建虛擬鏈路建設(shè)VPN的技術(shù)稱為隧道技術(shù)
可以把隧道想象成一對(duì)結(jié)點(diǎn)間的一條虛擬鏈路,這對(duì)結(jié)點(diǎn)之間事實(shí)上可以相隔任意多個(gè)網(wǎng)絡(luò)。
最基礎(chǔ)的隧道是IP in IP隧道,即利用IP協(xié)議構(gòu)建隧道。

通過(guò)將隧道兩端路由器的IP地址提供給虛擬鏈路,就可以在隧道兩端的路由器之間創(chuàng)建虛擬鏈路。

在隧道兩端路由器的路由表中,這條虛鏈路像一條普通的鏈路一樣。隧道鏈路具有一個(gè)虛接口號(hào)。
隧道的實(shí)質(zhì)是再次封裝。
經(jīng)虛接口轉(zhuǎn)發(fā)出去的數(shù)據(jù)報(bào)將經(jīng)過(guò)再次封裝,來(lái)自虛接口的數(shù)據(jù)報(bào)將被再次解封。

在這里插入圖片描述隧道協(xié)議
IP in IP隧道由RFC1853規(guī)定。
在IP in IP隧道中,隧道中的數(shù)據(jù)以明文形式在互聯(lián)網(wǎng)中傳送,沒(méi)有提供數(shù)據(jù)安全保障。
實(shí)際中,用于建立隧道的協(xié)議通常將原IP數(shù)據(jù)報(bào)加密后才再次封裝。
用于構(gòu)建VPN的常見(jiàn)協(xié)議包括:

通用路由封裝(Generic Routing Encapsulation,GRE)
點(diǎn)對(duì)點(diǎn)隧道協(xié)議(Point-to-Point Tunneling Protocol,PPTP)
第2層隧道協(xié)議(Layer Two Tunneling Protocol,.L2TP)
IP層安全((Internet Protocol Security,IPSec)

多協(xié)議標(biāo)記交換MPLS

多協(xié)議標(biāo)記交換(Multi--Protocol Label Switching,IMPLS)是IETF的MPLS工作組開發(fā)的一種協(xié)議,它試圖將虛電路的一些特點(diǎn)與數(shù)據(jù)報(bào)的靈活性結(jié)合起來(lái)。
2001年成為互聯(lián)網(wǎng)建議標(biāo)準(zhǔn)。它主要應(yīng)用于以下三個(gè)方面:

①使不知道如何轉(zhuǎn)發(fā)P數(shù)據(jù)報(bào)的設(shè)備支持基于目的P地址的轉(zhuǎn)發(fā);
②利用顯式路由,支持負(fù)載均衡和流量工程;
③利用BGP,支持對(duì)等模式VPN。

支持MPLS技術(shù)的路由器稱為標(biāo)記交換路由器LSR。
許多彼此相鄰的LSR組成的集合稱為MPLS域。
MPLS的重要特點(diǎn)就是在MPLS域的入口處,給每一個(gè)IP數(shù)據(jù)報(bào)打上固定長(zhǎng)度的“標(biāo)記”,然后按照標(biāo)記轉(zhuǎn)發(fā)IP數(shù)據(jù)報(bào)。
MPLS標(biāo)記是MPLS首部中的一個(gè)字段,MPLS首部位于數(shù)據(jù)鏈路層首部和網(wǎng)絡(luò)層IP首部之間。

在這里插入圖片描述
入標(biāo)點(diǎn)和出標(biāo)點(diǎn)

LSR同時(shí)具有標(biāo)記交換路由選擇這兩種功能。
為了支持和記錄MPLS標(biāo)記,LSR在路由表中增加了兩個(gè)字段:入標(biāo)記出標(biāo)記。
入標(biāo)記:代表接收到的分組中攜帶的MPLS標(biāo)記,
出標(biāo)記:代表自己發(fā)出的分組中攜帶的MPLS標(biāo)記。

在這里插入圖片描述
在這里插入圖片描述
MPLS轉(zhuǎn)發(fā)IP分組

MPLS入口結(jié)點(diǎn)根據(jù)目的IP地址,為分組增加標(biāo)記。

MPLS域內(nèi)結(jié)點(diǎn)根據(jù)標(biāo)記轉(zhuǎn)發(fā),并完成標(biāo)記對(duì)換。

MPLS出口結(jié)點(diǎn)去除標(biāo)記
在這里插入圖片描述

MPLS優(yōu)點(diǎn)
更快速的轉(zhuǎn)發(fā)IP分組

除了MPLS入口結(jié)點(diǎn)以外,其它的LSR在轉(zhuǎn)發(fā)分組時(shí),只需檢索入標(biāo)記。
目的IP地址的查找算法是最長(zhǎng)前綴匹配算法,而標(biāo)記查找算法是一種精確匹配算法。
標(biāo)記查找算法比目的IP地址查找算法效率更高,速度更快

支持基于目的IP地址的轉(zhuǎn)發(fā)

雖然我們替換了路由表的查找算法,但路由選擇算法可以不做改變。
基于目的地址分配標(biāo)記后,分組經(jīng)過(guò)的路徑與不使用MPLS時(shí)經(jīng)過(guò)的路徑是相同的
以前不知道如何轉(zhuǎn)發(fā)IP數(shù)據(jù)報(bào)的設(shè)備,在MPLS域內(nèi)能夠支持P數(shù)據(jù)報(bào)的轉(zhuǎn)發(fā)
這種結(jié)果可以應(yīng)用在ATM上,也可以應(yīng)用在光交換設(shè)備上

MPLS中的核心概念就是轉(zhuǎn)發(fā)等價(jià)類FEC。
轉(zhuǎn)發(fā)等價(jià)類FEC是指路由器按照同樣方式對(duì)待的IP數(shù)據(jù)報(bào)的集合。
顯然,每個(gè)MPLS標(biāo)記與一個(gè)轉(zhuǎn)發(fā)等價(jià)類FEC一一對(duì)應(yīng)。
上例中,路由表中每個(gè)相同的網(wǎng)絡(luò)前綴是一個(gè)FEC,即所有網(wǎng)絡(luò)前綴相同的分組,都沿著相同的路徑進(jìn)行轉(zhuǎn)發(fā)。這種轉(zhuǎn)發(fā)等價(jià)類等價(jià)于基于目的IP地址的轉(zhuǎn)發(fā)。
FEC是非常強(qiáng)大和靈活的概念,劃分FEC的方法不受什么限制,并不局限在基于目的IP地址劃分FEC。

可以將所有源地址與目的地址都相同的IP數(shù)據(jù)報(bào)劃分為一個(gè)FEC,
也可以將具有某種服務(wù)質(zhì)量需求的IP數(shù)據(jù)報(bào)劃分為一個(gè)FEC。

MPLS首部格式
在這里插入圖片描述
標(biāo)記值
占20位,理論上允許最多220個(gè)標(biāo)記。RFC3032規(guī)定標(biāo)記0~15保留用于特殊用途。。
流量類(Traffic Class,TC)
占3位,最初這3位保留用于試驗(yàn)。RFC5462將這三位重命名為流量類,包括服務(wù)質(zhì)量信息顯式擁塞通知ECN.
棧底標(biāo)記S
占1位。當(dāng)多次插入MPLS首部,構(gòu)成標(biāo)記棧時(shí)使用。位于棧底的MPLS首部,即最后一個(gè)MPLS首部的S位置1.
生存時(shí)間TTL
占8位。每經(jīng)過(guò)一個(gè)LSR,TTL減1。當(dāng)TTL為0時(shí),丟棄分組。

支持流量工程
MPLS實(shí)現(xiàn)了相同標(biāo)記的分組都沿著相同的路徑轉(zhuǎn)發(fā),在MPLS域內(nèi),這樣的路徑稱為標(biāo)記交換路徑。
顯然一個(gè)轉(zhuǎn)發(fā)等價(jià)類對(duì)應(yīng)一條標(biāo)記交換路徑LSP。
每條LSP在入口結(jié)點(diǎn)為分組指定標(biāo)記時(shí)就已經(jīng)確定了。這種“**由入口結(jié)點(diǎn)確定進(jìn)入MPLS域以后轉(zhuǎn)發(fā)路徑”**的方法稱為顯式路由。
顯式路由與我們之前討論的“"逐跳路由”完全不同。顯式路由可以應(yīng)用于負(fù)載均衡和流量工程。

在這里插入圖片描述
傳統(tǒng)的逐跳路由僅根據(jù)目的IP地址轉(zhuǎn)發(fā)
顯式路由可以靈活定義FEC,比如根據(jù)分組的不同來(lái)源劃分FEC,分配標(biāo)記,完成網(wǎng)絡(luò)通信量的負(fù)載均衡。
由網(wǎng)絡(luò)管理員采用自定義的FEC來(lái)均衡網(wǎng)絡(luò)負(fù)載的做法稱為流量工程。
在MPLS流量工程中,顯式路由不需要網(wǎng)絡(luò)管理員手動(dòng)計(jì)算,可以采用約束最短路徑優(yōu)先算法自動(dòng)計(jì)算。

支持MPLS VPN
在這里插入圖片描述重疊模式VPN和對(duì)等模式VPN
在這里插入圖片描述對(duì)等模式VPN

在MPLS網(wǎng)絡(luò)上,構(gòu)建對(duì)等模式VPN,是MPLS最廣泛的應(yīng)用,也是MPLS在互聯(lián)網(wǎng)工程界被廣泛部署的原因之一。
RFC4364規(guī)定了利用MPLS和BGP實(shí)現(xiàn)對(duì)等模式VPN的技術(shù)方案。這種VPN被稱為MPLS L3VPN,也稱為BGP/MPLS VPN.
MPLS的顯式路由可以用來(lái)構(gòu)建隧道,BGP被用來(lái)傳遞VPN的路由信息和分發(fā)MPLS標(biāo)記。
RFC4760對(duì)BGP-4進(jìn)行了多協(xié)議擴(kuò)展,使BGP可以為三層VPN等多種協(xié)議傳遞路由信息。擴(kuò)展后的BGP稱為MP-BGP,屬于HBGP.
MP-BGP還可以為MPLS分發(fā)專網(wǎng)標(biāo)記,以區(qū)別VPN用戶數(shù)據(jù)的歸屬。

BGP/MPLS VPN

CE設(shè)備將VPN的路由信息發(fā)送給PE設(shè)備。
PE設(shè)備之間利用MP-BGP交換路由信息,得到到達(dá)其它VPN子網(wǎng)的路由
利用MP-BGP分發(fā)MPLS標(biāo)記,
這些MPLS標(biāo)記用來(lái)在PE設(shè)備之間構(gòu)建MPLS隧道。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

第六章 數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層概述

在EEE802的系列標(biāo)準(zhǔn)中,將所有運(yùn)行了數(shù)據(jù)鏈路層(二層)協(xié)議的網(wǎng)絡(luò)設(shè)備稱為站點(diǎn)站(station)

結(jié)點(diǎn)通常是指運(yùn)行了網(wǎng)絡(luò)層(三層)協(xié)議的網(wǎng)絡(luò)設(shè)備,如主機(jī)路由器。
鏈路是指從一個(gè)站點(diǎn)到相鄰站點(diǎn)之間的一段物理線路(有線或無(wú)線),中間沒(méi)有任何其它的站點(diǎn),也稱為物理鏈路。
數(shù)據(jù)鏈路是指在一段物理鏈路之上增加了控制數(shù)據(jù)傳輸?shù)膮f(xié)議軟件或硬件,也稱為邏輯鏈路。

在這里插入圖片描述
數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元PDU稱為
每個(gè)數(shù)據(jù)幀中包含的源地址和目的地址稱為硬件地址物理地址。

數(shù)據(jù)幀的源地址是發(fā)送方結(jié)點(diǎn)的發(fā)送接口的硬件地址;
數(shù)據(jù)幀的目的地址是下一跳結(jié)點(diǎn)的接收接口的硬件地址。

每經(jīng)過(guò)一臺(tái)路由器,數(shù)據(jù)幀中的源地址目的地址都會(huì)發(fā)生變化

數(shù)據(jù)鏈路層協(xié)議的作用范圍
在這里插入圖片描述
數(shù)據(jù)鏈路層的主要任務(wù)是提供相鄰結(jié)點(diǎn)之間的通信服務(wù)。大多數(shù)數(shù)據(jù)鏈路層協(xié)議的作用范圍是相鄰的結(jié)點(diǎn)之間。

當(dāng)無(wú)線AP連接了以太網(wǎng)和無(wú)線局域網(wǎng)時(shí),以太網(wǎng)協(xié)議和無(wú)線局域網(wǎng)協(xié)議的作用范圍較小,不能覆蓋到兩個(gè)相鄰的結(jié)點(diǎn)之間,僅覆蓋到相鄰的兩個(gè)站點(diǎn)之間。

數(shù)據(jù)鏈路層的信道

數(shù)據(jù)鏈路層使用的信道主要有以下兩種類型:廣播信道點(diǎn)對(duì)點(diǎn)信道

在這里插入圖片描述

封裝成幀
封裝成幀是數(shù)據(jù)鏈路層最基本的功能。

由于幀在物理層上以比特流的形式傳輸,所以數(shù)據(jù)鏈路層在接收時(shí)必須能夠確定每一幀的邊界。確定幀開始和幀結(jié)束的位置,稱為幀定界。

幀長(zhǎng)度和MTU
在這里插入圖片描述
幀長(zhǎng)等于幀的數(shù)據(jù)部分長(zhǎng)度加上幀首部以及幀尾部的長(zhǎng)度。

數(shù)據(jù)鏈路層協(xié)議規(guī)定的它能傳送的數(shù)據(jù)部分的長(zhǎng)度上限,稱為最大傳送單元MTU。

顯然,為了提高幀的傳輸效率,應(yīng)該使幀的數(shù)據(jù)部分長(zhǎng)度盡可能地接近MTU。

幀定界方法
典型的幀定界方法包括:

  1. 標(biāo)志字符法
  2. 標(biāo)志比特法
  3. 特殊的物理層編碼法

網(wǎng)絡(luò)層協(xié)議無(wú)需了解數(shù)據(jù)鏈路層采用的幀定界方法,即幀定界方法對(duì)網(wǎng)絡(luò)層是透明的,這稱為透明傳輸。

不同的幀定界方法實(shí)現(xiàn)透明傳輸?shù)姆绞揭膊灰粯印?/strong>

標(biāo)志字符法
定界方法:對(duì)于以字符為基本傳送單元的協(xié)議,可以指定特殊字符作為幀開始和幀結(jié)束的標(biāo)志字符,稱為幀定界符。

透明傳輸:如果標(biāo)志字符出現(xiàn)在數(shù)據(jù)中時(shí),會(huì)干擾幀定界功能的實(shí)現(xiàn)。采用字符填充法實(shí)現(xiàn)透明傳輸。(轉(zhuǎn)義符)

在這里插入圖片描述
典型協(xié)議:PPP協(xié)議用于異步傳輸時(shí),采用標(biāo)志字符法。
在這里插入圖片描述
標(biāo)志比特法
定界方法:對(duì)于以比特為基本傳送單元的協(xié)議,可以指定特殊的比特組合作為幀開始或幀結(jié)束的標(biāo)志。

透明傳輸:采用比特填充法,避免傳送的數(shù)據(jù)中包含標(biāo)志比特組合,實(shí)現(xiàn)透明傳輸。

在這里插入圖片描述
特殊的物理層編碼法
定界方法:利用物理層的特殊編碼標(biāo)記幀的邊界。要求:物理層編碼方案中包含冗余編碼。

透明傳輸:由于冗余編碼不會(huì)出現(xiàn)在常規(guī)數(shù)據(jù)中,因而不需要額外處理,即可實(shí)現(xiàn)透明傳輸。

在這里插入圖片描述
在這里插入圖片描述
尋址

廣播信道上的數(shù)據(jù)鏈路層協(xié)議必須有尋址功能,在廣播信道上的主機(jī)或路由器的網(wǎng)絡(luò)接口必須具有硬件地址才能夠發(fā)送和接收數(shù)據(jù)幀。

點(diǎn)對(duì)點(diǎn)信道上的發(fā)送方和接收方都只有一個(gè),因此其數(shù)據(jù)鏈路層協(xié)議的尋址功能不是必須的。
在這里插入圖片描述

以太網(wǎng)協(xié)議和WLAN協(xié)議都采用了48位的硬件地址,該硬件地址也稱為MAC地址。
在以太網(wǎng)上,主機(jī)和路由器的網(wǎng)絡(luò)接口都必須具有MAC地址,但是二層交換機(jī)的接口允許沒(méi)有MAC地址。

MAC地址
IEEE規(guī)定了兩種類型的擴(kuò)展唯一標(biāo)識(shí)符EUI,分別為6字節(jié)長(zhǎng)度的EUI-48和8字節(jié)長(zhǎng)度的EUI-64。
EUI-48通常用作IEEE802網(wǎng)絡(luò)設(shè)備的硬件地址,如以太網(wǎng)MAC地址、WLAN的MAC地址。

MAC地址分為兩個(gè)部分,每部分占3字節(jié)。

  1. 組織唯一標(biāo)識(shí)符OUI:前三個(gè)字節(jié)(高24位),由IEEE的注冊(cè)管理機(jī)構(gòu)負(fù)載分配;
  2. 擴(kuò)展標(biāo)識(shí)符EI:后三個(gè)字節(jié)(低24位),由獲得OUI的廠商自行分配。

最高字節(jié)的最低位稱為I/G位
最高字節(jié)的次低位稱為U/L位
48位全為1的地址是廣播地址。
在這里插入圖片描述
差錯(cuò)控制
任何通信鏈路都不是理想的,在傳輸過(guò)程中都會(huì)出現(xiàn)差錯(cuò),0可能變成1,1也可能變成0,這稱為比特差錯(cuò)。
數(shù)據(jù)鏈路層,不同的協(xié)議提供不同程度的差錯(cuò)控制功能,包括無(wú)差錯(cuò)接受可靠傳輸

光纖、同軸電纜和雙絞線等比特差錯(cuò)率很低的鏈路上的數(shù)據(jù)鏈路層協(xié)議,如以太網(wǎng)協(xié)議、PPP協(xié)議等僅提供無(wú)差錯(cuò)接受功能,而不提供可靠傳輸功能。

在無(wú)線鏈路等比特差錯(cuò)率較高的鏈路上的數(shù)據(jù)鏈路層協(xié)議,如無(wú)線局域網(wǎng)WLAN協(xié)議,依靠確認(rèn)重傳機(jī)制,提供相鄰MAC站(MAC station)之間的可靠傳輸功能。

無(wú)論是無(wú)差錯(cuò)接受功能,還是可靠傳輸功能的實(shí)現(xiàn),都需要差錯(cuò)檢測(cè)算法來(lái)發(fā)現(xiàn)比特差錯(cuò)。

差錯(cuò)檢測(cè)算法CRC

在數(shù)據(jù)鏈路層,目前應(yīng)用廣泛的差錯(cuò)檢測(cè)算法是循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC)

冗余碼和幀校驗(yàn)序列FCS
發(fā)送方,把數(shù)據(jù)劃分為組,每次發(fā)送一組數(shù)據(jù)。
假定每組數(shù)據(jù)k個(gè)比特,將待發(fā)送數(shù)據(jù)記為M。
發(fā)送方利用CRC算法在數(shù)據(jù)M的后面添加供差錯(cuò)檢測(cè)用的比特冗余碼,一起發(fā)送出去。
對(duì)于一個(gè)幀來(lái)說(shuō),為了進(jìn)行檢錯(cuò)而添加的冗余碼常稱為幀檢驗(yàn)序列FCS
在數(shù)據(jù)后面增加 r 比特冗余碼,增大了數(shù)據(jù)傳輸?shù)拈_銷,但提供了差錯(cuò)檢測(cè)能力

在這里插入圖片描述
在這里插入圖片描述
CRC-32
CRC校驗(yàn)也稱為多項(xiàng)式編碼,其基本思想是將比特串看作系數(shù)為0或1的多項(xiàng)式,對(duì)比特串的計(jì)算被解釋為多項(xiàng)式計(jì)算。

收發(fā)雙方商定的P來(lái)源于生成多項(xiàng)式P(x),其最高位和最低位系數(shù)必須是1.

經(jīng)過(guò)精心挑選的生成多項(xiàng)式P(x)可以確保CRC算法漏判的慨率極低。

CRC-32被EEE應(yīng)用在包括以太網(wǎng)在內(nèi)的多種數(shù)據(jù)鏈路層協(xié)議中:
在這里插入圖片描述
在這里插入圖片描述
CRC屬于檢錯(cuò)碼

媒體介入控制
媒體接入控制(Medium Access Control,MAC)協(xié)議用來(lái)規(guī)定共享信道的訪問(wèn)方式和訪問(wèn)者

在點(diǎn)對(duì)點(diǎn)信道上,僅有一個(gè)發(fā)送方和一個(gè)接收方,只要信道是全雙工的,就無(wú)需MAC協(xié)議。例如PPP就不需要MAC協(xié)議。

在廣播信道上的MAC協(xié)議也稱為多點(diǎn)接入?yún)f(xié)議,或多路訪問(wèn)協(xié)議。
實(shí)現(xiàn)媒體接入控制的方法可以分為三類:

  1. 靜態(tài)信道分配方法、
  2. 隨機(jī)接入方法
  3. 受控接入方法。
    其中,靜態(tài)信道分配方法屬于物理層的方法。

靜態(tài)信道分配方法
常見(jiàn)的靜態(tài)信道劃分方法包括頻分復(fù)用、時(shí)分復(fù)用碼分復(fù)用。
碼分復(fù)用也成為碼分多址CDMA。
在這里插入圖片描述在這里插入圖片描述

隨機(jī)接入方法

隨機(jī)接入方法是一種基于爭(zhēng)用的信道分配方法。
隨機(jī)接入的特點(diǎn)是所有站點(diǎn)可隨機(jī)地發(fā)送數(shù)據(jù)。
如果恰巧有兩個(gè)或更多的站點(diǎn)在同一時(shí)刻發(fā)送數(shù)據(jù),那么在共享信道上就會(huì)產(chǎn)生碰撞,也稱為發(fā)生了沖突。隨機(jī)接入方法必須有處理沖突的方法

隨機(jī)接入的MAC協(xié)議主要包括:

  1. 純ALOHA
  2. 隙ALOHA
  3. CSMA/CD:帶有碰撞檢測(cè)的載波監(jiān)聽(tīng)多點(diǎn)接入
  4. CSMA/CA:帶有碰撞避免的載波監(jiān)聽(tīng)多點(diǎn)接入

ALLOHA
在這里插入圖片描述
CSMA/CD

不再采用統(tǒng)一長(zhǎng)度的幀,在ALOHA協(xié)議的基礎(chǔ)之上增加了更多的控制措施。
可以用以下四句話描述:

  1. 發(fā)送前先監(jiān)聽(tīng)
  2. 閑則發(fā)送,忙則等待
  3. 邊發(fā)送邊監(jiān)聽(tīng)
  4. 碰撞則停發(fā),隨機(jī)退避重傳

CSMA/CD采用二進(jìn)制指數(shù)退避算法進(jìn)行隨機(jī)退避。隨著重傳次數(shù)的增加,增大隨機(jī)退避的時(shí)間范圍。

CSMA/CD的爭(zhēng)用期、傳輸期和空閑期

在這里插入圖片描述
CSMA/CD的應(yīng)用
在這里插入圖片描述
無(wú)線局域網(wǎng)WLAN中使用分布協(xié)調(diào)功能DCF時(shí),采用的MAC協(xié)議是CSMA/CA協(xié)議。

在無(wú)線局域網(wǎng)中,由于不能進(jìn)行碰撞檢測(cè),只要開始發(fā)送數(shù)據(jù),就不會(huì)中途停止發(fā)送,而一定會(huì)把整個(gè)幀發(fā)送完畢。因此,CSMA/CA用確認(rèn)重傳碰撞避免機(jī)制代替以太網(wǎng)中的碰撞檢測(cè)機(jī)制`。

碰撞避免機(jī)制雖然能減少碰撞發(fā)生的概率,但并不能完全避免碰撞的發(fā)生。

受控接入方法

受控接入方法是一種無(wú)爭(zhēng)用的信道分配方法。
受控接入的特點(diǎn)是站點(diǎn)發(fā)送數(shù)據(jù)必須服從一定的控制,因而不會(huì)產(chǎn)生碰撞
受控接入?yún)f(xié)議分別包括輪詢令牌傳遞
在這里插入圖片描述
流量控制

流量控制是數(shù)據(jù)鏈路層協(xié)議的可選功能。

流量控制用于解決發(fā)送方的發(fā)送速度超出接收方的處理速度的問(wèn)題。

在TCPP協(xié)議族中,運(yùn)輸層的TCP協(xié)議依賴滑動(dòng)窗口機(jī)制實(shí)現(xiàn)了端到端的流量控制。因此,很多數(shù)據(jù)鏈路層協(xié)議并未設(shè)計(jì)流量控制功能,而將流量控制交給運(yùn)輸層處理。

但是,以太網(wǎng)協(xié)議設(shè)計(jì)了流量控制功能。
在以太網(wǎng)中,流量控制功能也是可選的。它可以由用戶激活或通過(guò)自動(dòng)協(xié)商激活。以太網(wǎng)中,通常并未使用流量控制。

以太網(wǎng)設(shè)計(jì)了兩種流量控制機(jī)制:背壓機(jī)制和暫停幀。在這里插入圖片描述本章的主要協(xié)議
以太網(wǎng)協(xié)議Ethernet
地址解析協(xié)議ARP
無(wú)線局域網(wǎng)協(xié)議WLAN
點(diǎn)對(duì)點(diǎn)協(xié)議PPP
在這里插入圖片描述

以太網(wǎng)

在這里插入圖片描述

以太網(wǎng)的發(fā)展趨勢(shì)
經(jīng)過(guò)幾十年的發(fā)展,以太網(wǎng)的發(fā)展趨勢(shì)包含以下幾個(gè)方面:
從低速到高速
從共享傳輸媒體到獨(dú)享傳輸媒體
從局域網(wǎng)到城域網(wǎng)再到廣域網(wǎng)

從低速到高速
最早用于實(shí)驗(yàn)的以太網(wǎng)速率僅3Mbt/S.
第一個(gè)標(biāo)準(zhǔn)的以太網(wǎng)速率為10Mbit/s,稱為傳統(tǒng)以太網(wǎng)。
1995年發(fā)布的100Mbit/s的以太網(wǎng),稱為快速以太網(wǎng)(Fast Ethernet)
超過(guò)100Mbit/s速率的以太網(wǎng),稱為高速以太網(wǎng)。
2019年和2020年分別發(fā)布了單模光纖多模光纖上的400Gbit/s以太網(wǎng)標(biāo)準(zhǔn)。

在這里插入圖片描述
從共享傳輸媒體到獨(dú)享傳輸媒體

傳統(tǒng)以太網(wǎng)采用同軸電纜作為共享傳輸媒體,也被稱為共享以太網(wǎng)
多個(gè)站被連接到一根共享總線上,采用CSMA/CD協(xié)議協(xié)調(diào)多個(gè)站的數(shù)據(jù)發(fā)送。
隨著10BASE-T的開發(fā),各站點(diǎn)通過(guò)雙絞線連接到集線器上,而不再連接到同軸電纜上。出現(xiàn)了星形共享以太網(wǎng)。
·依然采用CSMA/CD協(xié)議。

隨著100BASE-T以太網(wǎng)的發(fā)展和流行,交換機(jī)逐漸取代集線器。
交換機(jī)完全取代集線器、并工作在全雙工模式下的網(wǎng)絡(luò),稱為全雙工網(wǎng)絡(luò)
全雙工網(wǎng)絡(luò)中各站獨(dú)享傳輸媒體,不再使用CSMA/CD協(xié)議。
在這里插入圖片描述
從局域網(wǎng)到城域網(wǎng)再到廣域網(wǎng)
在這里插入圖片描述
以太網(wǎng)的幀格式
最初的以太網(wǎng)標(biāo)準(zhǔn)由DEC、Intel和施樂(lè)公司聯(lián)合推出,稱為稱為DIX Etherneti標(biāo)準(zhǔn)。該聯(lián)盟推出Ethernet V2標(biāo)準(zhǔn)后沒(méi)有繼續(xù)更新。
IEEE802委員會(huì)對(duì)Ethernet V:2幀格式稍加修改,推出了802.3標(biāo)準(zhǔn)的以太網(wǎng)幀格式。
IEEE802.3為了支持各種類型的局域網(wǎng)互連,將數(shù)據(jù)鏈路層分為兩個(gè)子層:媒體接
入控制(Media Access Control,.MAC)子層
邏輯鏈路控制(Logical Link
Control,LLC)子層
。

因此,數(shù)據(jù)鏈路層首部分為MAC首部LLC首部。它們的關(guān)系如下:
在這里插入圖片描述

隨著其它種類的局域網(wǎng)被以太網(wǎng)淘汰,EEE于2010年撤銷了802.2標(biāo)準(zhǔn),802.3以
太網(wǎng)標(biāo)準(zhǔn)中不再使用LLC首部。本節(jié)討論以太網(wǎng),不再考慮LLC子層。
目前,LLC首部仍然應(yīng)用在802.11無(wú)線局域網(wǎng)中。

802.3以太網(wǎng)幀格式
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
在IEEE分組中,前導(dǎo)碼、幀開始符SFD和載波延伸字段屬于物理層,其它字段屬于數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層的各字段共同構(gòu)成了

前導(dǎo)碼
占7個(gè)字節(jié),取值為交替的1和0。其作用是使接收端的適配器在接收MAC幀時(shí)能夠迅速調(diào)整其時(shí)鐘頻率,實(shí)現(xiàn)位同步
幀開始符SFD
占1個(gè)字節(jié),取值“10101011”。SFD的前六位的作用和前導(dǎo)碼一樣,最后的兩個(gè)連續(xù)的1代表幀即將開始傳送。

目的地址:
占6字節(jié),接收方MAC地址。
源地址:
占6字節(jié),發(fā)送方MAC地址。

類型長(zhǎng)度
占2字節(jié)。由于歷史原因,該字段包含兩種含義。當(dāng)取值小于等于1500時(shí),該字段理解為長(zhǎng)度字段,代表基本幀中MAC客戶數(shù)據(jù)的字節(jié)數(shù)。
當(dāng)取值大于等于1536時(shí),該字段理解為類型字段,代表MAC客戶協(xié)議類型

MAC客戶數(shù)據(jù)(MAC Client Data)
MAC客戶數(shù)據(jù)包含可選的標(biāo)簽和上層協(xié)議數(shù)據(jù)。
EEE802.3定義了三種類型的以太網(wǎng)幀:基本幀(basic frame)、Q標(biāo)簽幀(Q-tagged frame)和信封幀(envelope frame)
基本幀不包含標(biāo)簽,Q標(biāo)簽幀和信封幀包含標(biāo)簽。

在這里插入圖片描述
三種類型的以太網(wǎng)幀中封裝的上層協(xié)議的數(shù)據(jù)最大長(zhǎng)度都是1500字節(jié),也就是說(shuō)以太網(wǎng)的MTU為1500字節(jié)。

填充
以太網(wǎng)最小幀長(zhǎng)為64字節(jié)。當(dāng)上層協(xié)議交下來(lái)的數(shù)據(jù)小于46字節(jié),將導(dǎo)致封裝的以太網(wǎng)幀不足64字節(jié),以太網(wǎng)協(xié)議實(shí)體必須在填充字段用“0”補(bǔ)足。

幀檢驗(yàn)序列FCS
占4字節(jié),利用CRC算法進(jìn)行幀檢驗(yàn)。幀檢驗(yàn)計(jì)算范圍包括目的地址、源地址、類型長(zhǎng)度、MAC客戶數(shù)據(jù)和填充字段。
以太網(wǎng)的FCS采用IEEE標(biāo)準(zhǔn)的CRC32進(jìn)行計(jì)算利用CRC算法進(jìn)行幀檢驗(yàn)。

載波延伸
在1Gbit/s的以太網(wǎng)中,當(dāng)工作在半雙工模式時(shí),為了保持CSMA/CD協(xié)議的有效性,需要在較短的幀后補(bǔ)充載波延伸字段,該字段值全為0
當(dāng)工作在全雙工模式時(shí),不需要該字段。

幀間間隔

以太網(wǎng)規(guī)定,每發(fā)送完一幀,必須停下來(lái)等待一小段時(shí)間,才能發(fā)送下一幀。這段時(shí)間稱為幀間間隔。幀間間隔的作用有兩點(diǎn):

  1. 在運(yùn)行CSMA/CD協(xié)議時(shí),停止發(fā)送可以讓信道空閑下來(lái),方便多個(gè)站點(diǎn)爭(zhēng)用信道;
  2. 停止發(fā)送代表幀結(jié)束標(biāo)記,再次發(fā)送新幀時(shí),前導(dǎo)碼和SFD可以代表幀開始標(biāo)記。((10Mbit/s的傳統(tǒng)以太網(wǎng)中的規(guī)定)

IEEE規(guī)定的以太網(wǎng)的幀間間隔為96bit時(shí)間。

對(duì)于10Mbit/s的傳統(tǒng)以太網(wǎng)來(lái)說(shuō),幀間間隔為9.6μs;對(duì)于100Mbit/s的快速以太網(wǎng)來(lái)說(shuō),幀間間隔為0.96μs

網(wǎng)橋和交換機(jī)

我們可以使用中繼器集線器來(lái)擴(kuò)展以太網(wǎng)的地理覆蓋范圍。
中繼器和集線器都屬于物理層設(shè)備,通過(guò)中繼器或集線器的接口連接在一起的所有站點(diǎn)都處于同一個(gè)碰撞域。

所謂碰撞域是指站點(diǎn)發(fā)送的物理層信號(hào)可以到達(dá)的范圍。

處于同一個(gè)碰撞域內(nèi)的站點(diǎn),在任一時(shí)刻只能有一個(gè)站點(diǎn)發(fā)送數(shù)據(jù),否則將會(huì)發(fā)生碰撞
隨著100BASE-T網(wǎng)絡(luò)和交換機(jī)的普及,集線器最終被交換機(jī)所替代。交換機(jī)本質(zhì)上是多接口、高性能的網(wǎng)橋。
交換機(jī)工作在數(shù)據(jù)鏈路層,也稱為二層交換機(jī)。
交換機(jī)的每個(gè)端口下連接的站點(diǎn)處于同一個(gè)碰撞域。
在這里插入圖片描述

交換機(jī)的工作原理
在這里插入圖片描述
交換機(jī)收到一個(gè)數(shù)據(jù)幀后,首先進(jìn)行自學(xué)習(xí)填寫交換表,然后轉(zhuǎn)發(fā)數(shù)據(jù)幀。
如果交換表中某項(xiàng)目的老化時(shí)間到達(dá)了“有效期”,則交換機(jī)會(huì)刪除該項(xiàng)目

自學(xué)習(xí)算法和轉(zhuǎn)發(fā)算法
在這里插入圖片描述
交換機(jī)工作原理實(shí)例

在這里插入圖片描述

生成樹協(xié)議
當(dāng)多個(gè)交換機(jī)連接在一起共同工作時(shí),由于存在冗余鏈路的可能性,可能會(huì)形成很多循環(huán)幀。引起廣播風(fēng)暴交換表震蕩等問(wèn)題。

在這里插入圖片描述
虛擬局域網(wǎng)

IEEE規(guī)定48位全為1的地址是廣播地址,目的地址為廣播地址的幀稱為廣播幀。廣播幀能夠被分發(fā)到同一以太網(wǎng)上的所有主機(jī)。

隨著交換式以太網(wǎng)的大量應(yīng)用,位于同一以太網(wǎng)中的主機(jī)數(shù)量越來(lái)越多,為了更有效地利用網(wǎng)絡(luò)帶寬資源,需要限制以太網(wǎng)廣播的范圍。

站點(diǎn)發(fā)送的廣播幀能夠到達(dá)的范圍稱為廣播域。
交換機(jī)的所有端口下連接的站點(diǎn)處于同一個(gè)廣播域。
路由器收到以太網(wǎng)廣播時(shí),不進(jìn)行轉(zhuǎn)發(fā)。路由器的每個(gè)接口下連接的站點(diǎn)處于同一個(gè)廣播域

在這里插入圖片描述
虛擬局域網(wǎng)

在同一個(gè)以太網(wǎng)內(nèi)部可以利用虛擬局域網(wǎng)隔離廣播域。
虛擬局域網(wǎng)VLAN是由一些局域網(wǎng)網(wǎng)段構(gòu)成的與物理位置無(wú)關(guān)的邏輯組,如下圖所示。
支持VLAN功能的交換機(jī)稱為VLAN交換機(jī)

在這里插入圖片描述
Q標(biāo)簽幀格式

標(biāo)簽協(xié)議TPID:
在這里插入圖片描述
三種Q標(biāo)簽:
在這里插入圖片描述
優(yōu)先級(jí)碼點(diǎn)PCP:
在這里插入圖片描述
丟棄適當(dāng)性指示符DEI:
在這里插入圖片描述VLAN ID:
在這里插入圖片描述

地址解析協(xié)議ARP

ARP協(xié)議提供了一種從網(wǎng)絡(luò)層的IP地址解析出數(shù)據(jù)鏈路層的硬件地址的方法。

ARP協(xié)議需要做的是在每一個(gè)網(wǎng)絡(luò)中將下一跳結(jié)點(diǎn)的P地址解析為其對(duì)應(yīng)的MAC地址。
以太網(wǎng)協(xié)議可以將解析出的MAC地址作為目的MAC地址寫入幀首部中,完成發(fā)送。
對(duì)于間接交付網(wǎng)絡(luò),下一跳IP地址可以從路由表中獲得;對(duì)于直接交付網(wǎng)絡(luò),下一跳P地址即目的地址。

在這里插入圖片描述
ARP地址解析過(guò)程
在這里插入圖片描述
ARP報(bào)文格式:

在這里插入圖片描述參考鏈接:
ARP報(bào)文格式

ARP緩存

ARP緩存用來(lái)存放IP地址和MAC地址之間的最新映射。
主機(jī)或路由器的每個(gè)網(wǎng)絡(luò)接口維護(hù)一張ARP緩存表。
ARP緩存表包括三個(gè)字段:

IP地址
MAC地址
生存時(shí)間

當(dāng)主機(jī)需要解析IP地址對(duì)應(yīng)的MAC地址時(shí),首先查詢本機(jī)的ARP緩存表,只有在查詢不到時(shí),才發(fā)起廣播形式ARP請(qǐng)求。
使用ARP緩存,可以很大程度上減少ARP請(qǐng)求的數(shù)量,減少網(wǎng)絡(luò)中的廣播流量。

ARP緩存策略

  1. 一臺(tái)主機(jī)發(fā)送了ARP請(qǐng)求后,當(dāng)它收到ARP響應(yīng)時(shí),會(huì)將對(duì)方的IP地址和MAC地址記錄在ARP緩存表中。
  2. 如果一臺(tái)主機(jī)收到了一個(gè)ARP請(qǐng)求,這個(gè)ARP請(qǐng)求的目的地址是本機(jī),這臺(tái)主機(jī)會(huì)將ARP請(qǐng)求中的發(fā)送方IP地址和MAC地址記錄在ARP緩存中。
  3. 如果一臺(tái)主機(jī)收到了一個(gè)ARP請(qǐng)求,這個(gè)ARP請(qǐng)求中的發(fā)送方IP地址已經(jīng)在本機(jī)的ARP緩存表中,這臺(tái)主機(jī)會(huì)將發(fā)送方IP地址和MAC地址更新在ARP緩存表中。

ARP緩存刪除策略

  1. 當(dāng)生存時(shí)間超過(guò)規(guī)定的時(shí)間后,ARP緩存記錄將被刪除。

  2. 在RFC1122中,規(guī)定了ARP緩存的驗(yàn)證方法。

    主機(jī)采用單播輪詢方式,周期性地向遠(yuǎn)程主機(jī)發(fā)送單播ARP請(qǐng)求。
    如果連續(xù)兩次單播ARP請(qǐng)求都未收到對(duì)方的ARP響應(yīng),則刪除相應(yīng)ARP緩存記錄。

無(wú)線局域網(wǎng)

無(wú)線局域網(wǎng)WLAN也稱為Wi-Fi,它的標(biāo)準(zhǔn)是IEEE802.11,包括無(wú)線局域網(wǎng)的MAC層標(biāo)準(zhǔn)和物理層標(biāo)準(zhǔn),目前最新的版本是802.11-2020.
802.11網(wǎng)絡(luò)定義了多種物理層標(biāo)準(zhǔn),但都使用相同的MAC協(xié)議,采用相同的MAC幀結(jié)構(gòu)。

在這里插入圖片描述
無(wú)線局域網(wǎng)的組成
802.11無(wú)線局域網(wǎng)分為兩類,一類是基礎(chǔ)設(shè)施(infrastructure)網(wǎng)絡(luò),另一類是自組織(ad hoc)網(wǎng)。

在這里插入圖片描述
接入點(diǎn)AP :提供分布系統(tǒng)接入功能的站點(diǎn),也負(fù)責(zé)一個(gè)BSS內(nèi)的流量轉(zhuǎn)發(fā),
門戶portal:指提供802.11WLAN和非802.11LAN交互服務(wù)的邏輯點(diǎn)。
在一臺(tái)設(shè)備內(nèi)可以同時(shí)實(shí)現(xiàn)AP和門戶功能。
分布系統(tǒng)DS可以連接多個(gè)AP.
分布系統(tǒng)中用來(lái)連接AP的媒體稱為分布系統(tǒng)媒體DSM。最常見(jiàn)的DSM是802.3媒體。
用無(wú)線媒體連接的分布系統(tǒng)稱為無(wú)線分布系統(tǒng)WDS.

Mesh是一種網(wǎng)狀網(wǎng),其中的站點(diǎn)稱為mesh站點(diǎn)。
Mesh網(wǎng)關(guān)是指提供分布系統(tǒng)接入功能的mesh站點(diǎn)。

在這里插入圖片描述
基本服務(wù)集BSS
基本服務(wù)集BSS是802.11體系結(jié)構(gòu)中的基本構(gòu)件,它由多個(gè)無(wú)線站點(diǎn)組成。
根據(jù)基本服務(wù)集中站點(diǎn)的種類和功能,802.11-2020標(biāo)準(zhǔn)將基本服務(wù)集分為:

  1. 獨(dú)立基本服務(wù)集(Independent BSS,IBSS)
  2. 個(gè)人基本服務(wù)集(Personal BSS,PBSS)
  3. 基礎(chǔ)設(shè)施基本服務(wù)集(infrastructure BSS)
  4. 網(wǎng)狀網(wǎng)基本服務(wù)集(Mesh BSS,MBSS)

獨(dú)立基本服務(wù)集
在這里插入圖片描述
獨(dú)立基本服務(wù)集IBSS802.11WLAN中最基礎(chǔ)、最簡(jiǎn)單的BSS,由多個(gè)站點(diǎn)組成。

BSS中的站點(diǎn)之間是對(duì)等關(guān)系,站點(diǎn)之間直接相連,可以直接通信。
BSS中的站點(diǎn)不具備轉(zhuǎn)發(fā)能力,BSS網(wǎng)絡(luò)不具有多跳傳輸功能。
BSS中不包含接入點(diǎn)、門戶以及分布系統(tǒng)等基礎(chǔ)設(shè)施,屬于自組織網(wǎng)絡(luò)。

個(gè)人基本服務(wù)集PBSS
個(gè)人基本服務(wù)集PBSS與IBSS類似,它也由多個(gè)站點(diǎn)組成,站點(diǎn)之間可以直接通信。
PBSS的各站點(diǎn)之間不是對(duì)等關(guān)系。在PBSS中,只有一個(gè)站點(diǎn)承擔(dān)PBSS控制點(diǎn)PCP的角色。PCP負(fù)責(zé)發(fā)送信標(biāo)幀,為PBSS中的站點(diǎn)提供基于競(jìng)爭(zhēng)的信道訪問(wèn)服務(wù)。
PBSS只能由DMG站點(diǎn)建立,DMG工作在60Ghz頻段,由IEEE802.11ad規(guī)定。

基本設(shè)施基本服務(wù)集infrastructure BSS
拓展服務(wù)集EBS
在這里插入圖片描述
網(wǎng)狀網(wǎng)基本服務(wù)集MBSS
在這里插入圖片描述
網(wǎng)狀網(wǎng)由ad hoc網(wǎng)絡(luò)發(fā)展而來(lái),具有多跳傳輸功能。
MBSS由Mesh站點(diǎn)組成,Mesh站點(diǎn)可以作為源站、目的站或者轉(zhuǎn)發(fā)站。
MBSS允許通過(guò)一個(gè)或多個(gè)Mesh網(wǎng)關(guān)接入分布系統(tǒng)DS。
MBSS中的所有站點(diǎn)都可以通過(guò)無(wú)線媒體互相通信,因此MBSS也可以用來(lái)作為分布系統(tǒng)媒體DSM。
Mesh網(wǎng)關(guān)與AP可以組合在一起,在一臺(tái)設(shè)備內(nèi)實(shí)現(xiàn)。

無(wú)線局域網(wǎng)的MAC幀

IEEE802.11-2020中定義了多種類型的MAC幀格式。
在所有802.11的MAC幀中,前2個(gè)比特的定義是一樣的,為協(xié)議版本號(hào)(Protocol Version,PV)字段。

目前,802.11標(biāo)準(zhǔn)共定義了兩個(gè)版本號(hào),分別為PV0和PV1

PV0格式的MAC幀是絕大多數(shù)802.11WLAN中采用的MAC幀;
PV1格式的MAC幀是802.11ah中定義的MAC幀,該格式為物聯(lián)網(wǎng)領(lǐng)域做了優(yōu)化,更適用于低功耗的應(yīng)用場(chǎng)景。

PV0格式的MAC幀的前8個(gè)比特的定義是一樣的,分別是

  1. 協(xié)議版本(2bit)
  2. 類型(2bit)
  3. 子類型(4bit)
    其它部分的格式定義與類型和子類型相關(guān)。
    在802.11中共定義了3種類型的MAC幀,分別是

數(shù)據(jù)幀
管理幀
控制幀

子類型很多,可以參考802.11-2020。

數(shù)據(jù)幀格式

本部分表格例圖較多,不再做文字解釋,這里貼上學(xué)校的PPT作為參考。

(∪.∪ )…zzz

在這里插入圖片描述
WLAN數(shù)據(jù)幀由MAC首部、幀主體幀檢驗(yàn)序列FCS三個(gè)部分組成。

在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
802.11幀到802.3幀的轉(zhuǎn)換
當(dāng)802.11無(wú)線局域網(wǎng)與802.3以太網(wǎng)互連時(shí),AP需要完成802.11幀和802.3幀之間的格式轉(zhuǎn)換。
在下圖所示網(wǎng)絡(luò)拓?fù)渲?#xff0c;考慮主機(jī)H3向主機(jī)H1發(fā)送P數(shù)據(jù)報(bào)的過(guò)程。主機(jī)H3發(fā)出的802.11數(shù)據(jù)幀中:

地址1為MAC_AP2(RA)
地址2為MAC_3(TA/SA)
地址3為MAC_1(DA)

在這里插入圖片描述
當(dāng)AP2收到該數(shù)據(jù)幀后,需要將其轉(zhuǎn)換成802.3以太網(wǎng)幀格式轉(zhuǎn)發(fā)向交換機(jī)。
轉(zhuǎn)換后的802.3幀中:目的地址為MAC_1,源地址為MAC_3。
在這里插入圖片描述幀校驗(yàn)序列FCS
在這里插入圖片描述
管理幀
管理幀主要用于創(chuàng)建維持、終止站點(diǎn)AP之間的關(guān)聯(lián)。

常見(jiàn)的管理幀包括信標(biāo)幀、關(guān)聯(lián)請(qǐng)求幀、關(guān)聯(lián)響應(yīng)幀、探測(cè)情求幀探測(cè)響應(yīng)幀等。

關(guān)聯(lián)意味著在無(wú)線站點(diǎn)和AP之間創(chuàng)建一個(gè)虛擬線路。AP僅向與其關(guān)聯(lián)的無(wú)線站點(diǎn)發(fā)送數(shù)據(jù)幀,無(wú)線站點(diǎn)也僅通過(guò)關(guān)聯(lián)AP向其它站點(diǎn)或因特網(wǎng)發(fā)送數(shù)據(jù)幀。

與AP建立關(guān)聯(lián)的方法有被動(dòng)掃描主動(dòng)掃描。

在這里插入圖片描述
控制幀
控制幀主要用于預(yù)約信道和數(shù)據(jù)幀確認(rèn)等。

常見(jiàn)的控制幀主要包括確認(rèn)幀ACK、請(qǐng)求發(fā)送幀RTS允許發(fā)送幀CTS等。
802.11無(wú)線局域網(wǎng)采用了停止等待協(xié)議,在數(shù)據(jù)鏈路層實(shí)現(xiàn)可靠傳輸

當(dāng)WLAN中某站點(diǎn)正確收到一幀數(shù)據(jù)時(shí),它等待一個(gè)短幀間間隔SIFS,然后發(fā)回一個(gè)確認(rèn)幀ACK。
802.11的停止等待協(xié)議是在直接發(fā)送站和直接接收站之間實(shí)現(xiàn)的。
在這里插入圖片描述

隱蔽站問(wèn)題
無(wú)線站點(diǎn)H1和H2都與AP關(guān)聯(lián),但互相不在對(duì)方的無(wú)線信號(hào)范圍之內(nèi)。
在這里插入圖片描述

如果兩個(gè)站點(diǎn)同時(shí)發(fā)送數(shù)據(jù)給AP,顯然會(huì)產(chǎn)生碰撞,但由于無(wú)線信號(hào)覆蓋范圍的問(wèn)題,雙方都不能通過(guò)載波監(jiān)聽(tīng)的方法發(fā)現(xiàn)對(duì)方正在發(fā)送數(shù)據(jù),這個(gè)問(wèn)題被稱為隱蔽站問(wèn)題。

802.11允許采用RTS幀CTS幀進(jìn)行信道預(yù)約,用來(lái)避免隱蔽站帶來(lái)的碰撞可能。

RTS幀和CTS幀
在這里插入圖片描述
發(fā)送站在發(fā)送數(shù)據(jù)幀前,首先向接收站AP發(fā)送一個(gè)RTS幀,用持續(xù)時(shí)間字段指示傳輸數(shù)據(jù)幀和確認(rèn)幀需要的總時(shí)間。
當(dāng)接收站AP收到RTS幀后,它發(fā)送一個(gè)CTS幀作為響應(yīng)。
CTS幀有兩個(gè)目的:

給發(fā)送站明確的發(fā)送許可,
也通知其它站點(diǎn)在持續(xù)時(shí)間內(nèi)不要發(fā)送數(shù)據(jù)。

RTS和CTS;數(shù)據(jù)幀和確認(rèn)幀之間均采用短幀間間隔SIFS。
一般情況下,802.11協(xié)議的實(shí)現(xiàn)會(huì)提供一個(gè)稱為RTS閾值的配置選項(xiàng),超過(guò)閾值長(zhǎng)度的幀才會(huì)觸發(fā)一個(gè)RTS幀,預(yù)約信道。

RTS幀、CTS幀和ACK幀
在這里插入圖片描述
無(wú)線局域網(wǎng)的MAC協(xié)議
802.11-2020標(biāo)準(zhǔn)采用三種方法解決無(wú)線媒體接入控制問(wèn)題:

  1. 分布協(xié)調(diào)功能(Distributed Coordination Function,DCF)

DCF是WLAN中媒體接入控制的基本方法,用于競(jìng)凈服務(wù),是HCF和MCF的基礎(chǔ),
802.11協(xié)議規(guī)定所有站都應(yīng)該實(shí)現(xiàn)DCF。

  1. 混合協(xié)調(diào)功能(hybrid coordination function,HCF)

HCF用于支持802.11e和802.11n中的QoS,所有支持QoS的設(shè)備都應(yīng)該實(shí)現(xiàn)HCF。
HCF包括受控接入和競(jìng)凈接入兩種方法。
HCF受控接入即HCF受控信道接入(HCF Controlled Channel Access,HCCA)
·HCF競(jìng)爭(zhēng)接入即增強(qiáng)型分布式信道接入(Enhanced Distributed ChannelAccess,EDCA)。

  1. Mesh協(xié)調(diào)功能(Mesh coordination function,McF)

MCF僅用于MBSS中。MCF不在本書討論范圍。
在較早期的802.11標(biāo)準(zhǔn)中還定義了點(diǎn)協(xié)調(diào)功能(Point Coordination Function,PCF),PCF的應(yīng)用非常少,在802.11-2020中已經(jīng)廢棄了PCF。

在這里插入圖片描述
分布協(xié)調(diào)功能DCF
分布協(xié)調(diào)功能DCF使用CSMA/CA協(xié)議,即帶有碰撞避免的載波監(jiān)聽(tīng)多點(diǎn)接入?yún)f(xié)議。

  1. 載波監(jiān)聽(tīng)用來(lái)檢測(cè)傳輸媒體是否繁忙,
  2. 多點(diǎn)接入用來(lái)確保每一個(gè)無(wú)線終端可以公平地訪問(wèn)傳輸媒介,
  3. 碰撞避免用以降低碰撞發(fā)生的概率,期望在指定時(shí)間內(nèi)只有一個(gè)無(wú)線終端能夠訪問(wèn)傳輸媒體。

DCF采取的接入控制措施
802.11WLAN中實(shí)現(xiàn)了停止等待協(xié)議,利用確認(rèn)幀ACK,代替802.3中的
碰撞檢測(cè)機(jī)制。

802.11的無(wú)線站點(diǎn)無(wú)法同時(shí)發(fā)送和接收數(shù)據(jù),不能邊發(fā)送邊檢測(cè)。
802.11中,如果發(fā)送站沒(méi)有收到ACK幀,就認(rèn)為發(fā)送失敗,重傳該數(shù)據(jù)幀。
802.11中規(guī)定廣播幀和多播幀不需要進(jìn)行確認(rèn)。

  1. 802.11采用碰撞避免機(jī)制來(lái)減少碰撞發(fā)生的概率。

當(dāng)監(jiān)聽(tīng)到信道空閑時(shí),WLAN的站點(diǎn)先利用二進(jìn)制指數(shù)退避算法隨機(jī)退避一段時(shí)間后,才允許發(fā)送數(shù)據(jù)。

  1. 802.11的載波監(jiān)聽(tīng)包括物理載波監(jiān)聽(tīng)和虛擬載波監(jiān)聽(tīng)。

802.11還采用RTS幀/CTS幀預(yù)約信道,解決隱蔽站問(wèn)題,進(jìn)一步減少碰撞發(fā)生的概率。

802.11的碰撞避免機(jī)制
802.11的碰撞避免機(jī)制包含以下幾方面內(nèi)容:
幀間間隔
可以提供接入無(wú)線媒體的優(yōu)先級(jí)
載波監(jiān)聽(tīng)
包括物理載波監(jiān)聽(tīng)和虛擬載波監(jiān)聽(tīng)
·隨機(jī)退避
802.11的二進(jìn)制指數(shù)退避算法

幀間間隔
幀發(fā)送完成后,必須等待一段很短的時(shí)間才能發(fā)送下一幀。這段時(shí)間稱為幀間間隔IFS。
在這里插入圖片描述
載波監(jiān)聽(tīng)

802.11CSMA/CA設(shè)備在開始傳輸前必須進(jìn)行載波監(jiān)聽(tīng),用以檢查傳輸媒體是否被占用。
802.11的載波監(jiān)聽(tīng)包括兩種方式:物理載波監(jiān)聽(tīng)虛擬載波監(jiān)聽(tīng)。

物理載波監(jiān)聽(tīng)和虛擬載波監(jiān)聽(tīng)是同時(shí)執(zhí)行判斷的,只有兩種方式都認(rèn)為信道空閑時(shí),才判定信道空閑。

物理載波監(jiān)聽(tīng)(Physical Carrier Sense)
·每個(gè)802.11的物理層規(guī)范都需要提供一種評(píng)估信道是否空閑的功能,它通常基于能量和波形識(shí)別。
·這種功能稱為空閑信道評(píng)估(Clear Channel Assessment,CCA),用于了解媒體當(dāng)前是否繁忙。

虛擬載波監(jiān)聽(tīng)(Virtual Carrier Sense)
執(zhí)行虛擬載波監(jiān)聽(tīng)的每個(gè)站維持一個(gè)稱為網(wǎng)絡(luò)分配向量(Network Allocation Vector,NAV)的本地計(jì)數(shù)器,用來(lái)估計(jì)信道將處于繁忙狀態(tài)的時(shí)間。

只要NAV變量不為0,信道就會(huì)被認(rèn)為是繁忙的。
發(fā)送站發(fā)送單播幀時(shí),會(huì)設(shè)置持續(xù)時(shí)間字段。
·虛擬載波監(jiān)聽(tīng)機(jī)制將檢查每個(gè)MAC幀中的持續(xù)時(shí)間字段,并據(jù)此更新NAV變量。
當(dāng)一個(gè)站監(jiān)聽(tīng)到一個(gè)大于本地NAV的持續(xù)時(shí)間時(shí),它用持續(xù)時(shí)間值更新本地NAV變量。
·NAV變量基于本地時(shí)鐘遞減,當(dāng)監(jiān)聽(tīng)到一個(gè)ACK幀時(shí),本地NAV被重置為O。

數(shù)據(jù)幀、RTS幀和CTS幀的持續(xù)時(shí)間
在這里插入圖片描述
隨機(jī)退避
在802.11WLAN中,需要發(fā)送數(shù)據(jù)的站需要執(zhí)行隨機(jī)退避算法。

例外:發(fā)送站需要發(fā)送的數(shù)據(jù)是本站的第1幀數(shù)據(jù),且載波監(jiān)聽(tīng)時(shí)信道空閑,而非信道由忙轉(zhuǎn)閑

WLAN的隨機(jī)退避算法是二進(jìn)制指數(shù)退避算法。
退避時(shí)間等于一個(gè)隨機(jī)數(shù)與時(shí)隙的乘積。

時(shí)隙依賴物理層標(biāo)準(zhǔn)不同,通常是幾十微秒。
隨機(jī)數(shù)是在區(qū)間[O,CW中隨機(jī)選擇的一個(gè)整數(shù),其中CW代表競(jìng)爭(zhēng)窗口,是一個(gè)整數(shù),且滿足aCWmin< CW < aCWmax。
aCWmin和aCWmax由物理層標(biāo)準(zhǔn)定義。
CW的值從物理層指定的常數(shù)aCWmin開始,隨著重傳次數(shù)增加,以2的冪次減1增加,直到aCWmax為止。

競(jìng)爭(zhēng)窗口CW的變化
在這里插入圖片描述
隨機(jī)退避的過(guò)程

隨機(jī)退避計(jì)時(shí)器是無(wú)線站點(diǎn)傳輸幀之前的最后一個(gè)計(jì)時(shí)器。

當(dāng)信道從忙轉(zhuǎn)閑,并持續(xù)空閑DIFS時(shí)間后,隨機(jī)退避計(jì)時(shí)器開始計(jì)時(shí)
在退避過(guò)程中,每經(jīng)過(guò)一個(gè)時(shí)隙,站點(diǎn)會(huì)監(jiān)聽(tīng)一次信道

若信道空閑側(cè)則隨機(jī)退避計(jì)時(shí)器的值減1;
若信道忙則掛起隨機(jī)退避計(jì)時(shí)器,直至信道再次從忙轉(zhuǎn)閑,并持續(xù)DIFS時(shí)間后,計(jì)時(shí)器恢復(fù)計(jì)時(shí)。

當(dāng)站點(diǎn)的隨機(jī)退避計(jì)時(shí)器倒數(shù)至0時(shí),意味著站點(diǎn)競(jìng)爭(zhēng)獲得信道,可以發(fā)送數(shù)據(jù)。

在這里插入圖片描述在這里插入圖片描述
混合協(xié)調(diào)功能HCF
2004年,802.11e標(biāo)準(zhǔn)為WLAN增加了QoS功能。
后續(xù)的802.11標(biāo)準(zhǔn)中的QoS功能基本都來(lái)源于802.11e的主要設(shè)計(jì)?;旌蠀f(xié)調(diào)功能HCF用來(lái)支持QoS功能。包括:

HCF受控信道接入HCCA:使用輪詢方法控制媒體接入,HCCA的應(yīng)用很少。
增強(qiáng)型分布式信道接入EDCA:基于DCF改進(jìn)的媒體接入控制機(jī)制。

我們僅討論EDCA。
EDCA對(duì)DCF主要做了兩點(diǎn)改進(jìn):

·傳輸機(jī)會(huì)(Transmission Opportunity,TXOP)
·接入類別(Access Category,AC)。

傳輸機(jī)會(huì)TXOP

傳統(tǒng)的DCF中,當(dāng)站點(diǎn)競(jìng)爭(zhēng)到信道后,可以獲得發(fā)送一幀的機(jī)會(huì),即**“競(jìng)爭(zhēng)一次,傳輸一個(gè)幀”**。這會(huì)帶來(lái)`速率異常問(wèn)題:
在這里插入圖片描述

改進(jìn):引入了傳輸機(jī)會(huì)TXOP,將競(jìng)爭(zhēng)方式改進(jìn)為**“競(jìng)爭(zhēng)一次,傳輸一段時(shí)間”**
當(dāng)站點(diǎn)競(jìng)爭(zhēng)到信道后,可以獲得一段傳輸時(shí)間,在這段時(shí)間內(nèi),站點(diǎn)可以傳輸多個(gè)數(shù)據(jù)幀,稱為幀突發(fā)(frame burst)。

在幀突發(fā)期間,每個(gè)幀之間使用SFS。
TXOP的傳輸時(shí)間可以通過(guò)虛擬載波監(jiān)聽(tīng)保證。

接入類別AC
在這里插入圖片描述4個(gè)介入類別:
在這里插入圖片描述
按用戶優(yōu)先級(jí)對(duì)流量分類

在這里插入圖片描述
在這里插入圖片描述EDCA模型

在EDCA中,幀間間隔不再采用DCF中的DIFS,而是采用AIFS[AC]。

在這里插入圖片描述

點(diǎn)對(duì)點(diǎn)協(xié)議PPP

**點(diǎn)對(duì)點(diǎn)協(xié)議(Point to Point Protocol,PPP)**是一種在傳統(tǒng)撥號(hào)上網(wǎng)、ADSL接入網(wǎng)光纖接入網(wǎng)以及SDH網(wǎng)絡(luò)中廣泛使用的協(xié)議。

PPP來(lái)源于另一種廣泛應(yīng)用的協(xié)議:高級(jí)數(shù)據(jù)鏈路控制HDLC協(xié)議。

PPP協(xié)議用來(lái)在全雙工點(diǎn)對(duì)點(diǎn)鏈路上傳輸網(wǎng)絡(luò)層分組,由RFC1661和RFC1662規(guī)定,是互聯(lián)網(wǎng)正式標(biāo)準(zhǔn)。

PPP實(shí)際上是一個(gè)協(xié)議集合,它包括三個(gè)主要組成部分:

  1. 一種將網(wǎng)絡(luò)層分組封裝到串行鏈路的方法。
  2. 一個(gè)用來(lái)處理連接建立、選項(xiàng)協(xié)商、測(cè)試線路和釋放連接的鏈路控制協(xié)議LCP。
  3. 一組網(wǎng)絡(luò)控制協(xié)議NCP。其中每一個(gè)網(wǎng)絡(luò)控制協(xié)議支持不同的網(wǎng)絡(luò)層協(xié)議,如用于HP的網(wǎng)絡(luò)控制協(xié)議IPCP。

PPP的幀格式
在這里插入圖片描述
PPP幀格式

以下是對(duì)PPP幀格式各部分的介紹:

標(biāo)志:
幀首部的第一個(gè)字段和幀尾部的最后一個(gè)字段都是標(biāo)志字段,各占1字節(jié)。
標(biāo)志字段表示一個(gè)幀的開始或結(jié)束。。
標(biāo)志字段規(guī)定取值為0x7E,二進(jìn)制表示為01111110。

當(dāng)PPP用于異步傳輸時(shí),采用字符填充法實(shí)現(xiàn)透明傳輸
PPP規(guī)定轉(zhuǎn)義字符為0x7D,按照如下方法進(jìn)行填充:

  1. 把數(shù)據(jù)字段中出現(xiàn)的每一個(gè)0x7E字符轉(zhuǎn)換成為2字節(jié)序列(0x7D,0x5E)。
  2. 若數(shù)據(jù)字段中出現(xiàn)0x7D字符,則將其轉(zhuǎn)換為2字節(jié)序列(0x7D,0x5D)。
  3. 若數(shù)據(jù)字段中出現(xiàn)ASCII碼的控制字符(即數(shù)值小于0x20的字符),則在該字符前面插入一個(gè)0x7D字符,并將該字符的編碼加0x20。例如,字符0x03被轉(zhuǎn)換成(0x7D,0x23),字符0x11被轉(zhuǎn)換成(0x7D,0x31)等。

接收方在收到數(shù)據(jù)后需要進(jìn)行相反的變換。

當(dāng)PPP用于同步傳輸時(shí),采用比特填充法實(shí)現(xiàn)透明傳輸
·發(fā)送方在數(shù)據(jù)中發(fā)現(xiàn)連續(xù)5個(gè)1時(shí),就立即在其后方填充1個(gè)0。
·接收方如果收到連續(xù)5個(gè)1時(shí),將其后的0刪除。

地址和控制:
PPP的地址字段來(lái)源于HDLC,占1字節(jié)。HDLC可用于多點(diǎn)鏈路,地址字段用來(lái)指明接收方。
加粗樣式PPP僅用于點(diǎn)對(duì)點(diǎn)鏈路,僅有一個(gè)接收方,地址字段總是被設(shè)置為0xFF

PPP的控制字段也來(lái)源于HDLC,占1字節(jié)。在HDLC中,控制字段用來(lái)指明幀類型
但PPP僅使用了一種幀,控制字段總是被設(shè)置為0xO3。

PPP中這兩個(gè)字段實(shí)際上并沒(méi)有意義。
PPP協(xié)議使用LCP進(jìn)行鏈路層參數(shù)協(xié)商時(shí),通常會(huì)省略這兩個(gè)字段。

協(xié)議:
協(xié)議字段用來(lái)指明數(shù)據(jù)部分封裝的是何種協(xié)議的數(shù)據(jù),占1或2個(gè)字節(jié)。
在默認(rèn)情況下,協(xié)議字段占2字節(jié),但PPP協(xié)議使用LCP進(jìn)行鏈路層選項(xiàng)協(xié)商時(shí),允許將協(xié)議字段配置為1字節(jié)的壓縮形式。

當(dāng)協(xié)議字段為0x0021時(shí),說(shuō)明數(shù)據(jù)字段封裝的是IP數(shù)據(jù)報(bào)。
當(dāng)協(xié)議字段為0xC021時(shí),說(shuō)明數(shù)據(jù)字段封裝的是LCP分組。
當(dāng)協(xié)議字段為0x8021時(shí),說(shuō)明數(shù)據(jù)字段封裝的是IPCP分組

數(shù)據(jù)和填充
PPP的最大傳送單元MTU默認(rèn)為1500字節(jié)。
PPP協(xié)議使用LCP進(jìn)行鏈路層選項(xiàng)協(xié)商時(shí),可以將MTU配置為其它值。

FCS
FCS字段占2字節(jié)或4字節(jié)。
PPP的FCS字段采用CRC算法校驗(yàn)除FCS字段本身和標(biāo)志字段之外的整個(gè)幀。

在默認(rèn)情況下,PPP采用16位的FCS,其生成多項(xiàng)式所對(duì)應(yīng)的二進(jìn)制數(shù)為10001000000100001。
PPP協(xié)議使用LCP進(jìn)行鏈路層選項(xiàng)協(xié)商時(shí),允許將CRC從16位擴(kuò)展到32位,此時(shí),CRC的生成多項(xiàng)式與以太網(wǎng)相同的CRC-32。

PPP鏈路的狀態(tài)

在這里插入圖片描述
鏈路狀態(tài)變遷的細(xì)節(jié)不再闡釋。

PPPoE協(xié)議
隨著以太網(wǎng)占據(jù)市場(chǎng)主導(dǎo)地位,利用以太網(wǎng)接入互聯(lián)網(wǎng)成為一種寬帶接入方案。

ISP需要一種能在以太網(wǎng)上運(yùn)行的、基于單用戶計(jì)費(fèi)的接入控制方案。

RFC2516規(guī)定了PPPoE(PPP over Ethernet)協(xié)議,它將PPP幀封裝在以太網(wǎng)幀內(nèi),利用PPP協(xié)議,使以太網(wǎng)上的每個(gè)用戶站點(diǎn)都可以與一個(gè)遠(yuǎn)程的PPPoE服務(wù)站點(diǎn)建立一個(gè)PPP會(huì)話,
該服務(wù)站點(diǎn)位于ISP內(nèi),稱為接入集中器(Access Concentrator,AC)
當(dāng)用戶通過(guò)PPP會(huì)話獲得一個(gè)ISP地址,ISP就可以通過(guò)IP地址和特定的用戶相關(guān)聯(lián)。以此完成單用戶計(jì)費(fèi)。

發(fā)現(xiàn)階段和PPP會(huì)話階段
在這里插入圖片描述PPPoE幀格式
在這里插入圖片描述

版本和類型字段:
各占4位,目前均取值為0x01。
代碼字段:
占8位,用以區(qū)分發(fā)現(xiàn)階段和PPP會(huì)話階段中各種類型的PPPoE幀

會(huì)話標(biāo)識(shí)符字段:
占16位,每一個(gè)PPPoE會(huì)話都會(huì)具有一個(gè)唯一標(biāo)識(shí)符。
長(zhǎng)度字段:
占16位,代表PPPOE載荷部分的長(zhǎng)度,以字節(jié)為單位。

載荷字段:
根據(jù)代碼不同,載荷部分封裝的數(shù)據(jù)不同。
在發(fā)現(xiàn)階段,載荷字段封裝PPPoE用來(lái)分配會(huì)話標(biāo)識(shí)符的各種幀。
在PPP會(huì)話階段,載荷部分封裝PPP幀。

發(fā)現(xiàn)階段
在這里插入圖片描述會(huì)話階段
在PPPOE會(huì)話階段,PPPOE數(shù)據(jù)封裝在以太網(wǎng)幀中,以太網(wǎng)幀的類型字段填寫0x8864。

以太網(wǎng)幀以遠(yuǎn)程接入集中器AC和用戶站點(diǎn)的MAC地址為目的地址和源地址交互。

PPPOE幀會(huì)話標(biāo)識(shí)符字段填寫發(fā)現(xiàn)階段獲得的會(huì)話標(biāo)識(shí)符。

上層的PPP實(shí)體就像進(jìn)行普通的PPP會(huì)話一樣運(yùn)行。
當(dāng)LCP發(fā)出終止請(qǐng)求幀,終止一個(gè)PPP會(huì)話時(shí),PPPOE會(huì)話也會(huì)被終止。

PPPOE也定義了一個(gè)PPPOE會(huì)話終止幀,。AC和用戶站點(diǎn)也可以主動(dòng)發(fā)送PPPOE會(huì)話終止幀以結(jié)束會(huì)話。

思維導(dǎo)圖總結(jié)

第一章

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述

在這里插入圖片描述

第二章

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

第三章

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

第四章

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

第五章

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

第六章

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

術(shù)語(yǔ)詞典

待更新

http://m.risenshineclean.com/news/64729.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)方案計(jì)劃書電子商務(wù)網(wǎng)站推廣
  • 萊蕪一中貼吧seo品牌優(yōu)化整站優(yōu)化
  • 河北建設(shè)工程信息網(wǎng)官網(wǎng) 費(fèi)用中項(xiàng)網(wǎng)鄭州seo顧問(wèn)熱狗hotdoger
  • 郴州網(wǎng)站制作廣州網(wǎng)站優(yōu)化步驟
  • 中國(guó)的外貿(mào)企業(yè)有哪些重慶seo網(wǎng)站收錄優(yōu)化
  • 山東建設(shè)銀行官網(wǎng)網(wǎng)站青島網(wǎng)站排名公司
  • 邯鄲網(wǎng)站開發(fā)在線的crm系統(tǒng)軟件
  • 展臺(tái)設(shè)計(jì)方案介紹seo公司上海
  • wordpress動(dòng)漫電影主題無(wú)錫seo網(wǎng)絡(luò)推廣
  • 固定ip 建網(wǎng)站網(wǎng)上賣產(chǎn)品怎么推廣
  • 網(wǎng)站優(yōu)化怎么樣做網(wǎng)絡(luò)營(yíng)銷軟文案例
  • 北京網(wǎng)站建設(shè)多少錢查圖百度識(shí)圖
  • 企業(yè)門戶網(wǎng)站用戶類型溫州網(wǎng)站快速排名
  • 做網(wǎng)站除了廣告還有什么收入的百度經(jīng)驗(yàn)官網(wǎng)登錄
  • php mysql做網(wǎng)站登錄俄羅斯搜索引擎
  • 北京網(wǎng)站制作建設(shè)公司流感用什么藥最好
  • wordpress v4廣州seo網(wǎng)站開發(fā)
  • 網(wǎng)站建設(shè) 你真的懂嗎同城發(fā)廣告的平臺(tái)有哪些
  • 博彩網(wǎng)站做代理seo sem論壇
  • 南充商城網(wǎng)站建設(shè)平臺(tái)外宣推廣技巧
  • 廈門做網(wǎng)站建設(shè)圖片掃一掃在線識(shí)別照片
  • 給賭場(chǎng)做網(wǎng)站軟件開發(fā)公司網(wǎng)站
  • 網(wǎng)站建設(shè)需求說(shuō)明書百度大數(shù)據(jù)查詢平臺(tái)
  • 貴州建設(shè)網(wǎng)老網(wǎng)站百度關(guān)鍵詞推廣帝搜軟件
  • 關(guān)于旅游網(wǎng)站建設(shè)的摘要百度一下首頁(yè)版
  • 網(wǎng)站怎么添加橫幅seo產(chǎn)品優(yōu)化推廣
  • 怎么做網(wǎng)絡(luò)推廣網(wǎng)站百度答主中心入口
  • 做淘寶網(wǎng)站用什么軟件有哪些內(nèi)容重慶網(wǎng)
  • 網(wǎng)站建設(shè)收費(fèi)明細(xì)百度熱度
  • 網(wǎng)站開發(fā)和網(wǎng)頁(yè)設(shè)計(jì)的區(qū)別seo優(yōu)化服務(wù)公司