前言:計(jì)算機(jī)網(wǎng)絡(luò)是指通過通信設(shè)備和通信線路將多臺(tái)計(jì)算機(jī)互相連接起來,實(shí)現(xiàn)數(shù)據(jù)交換、資源共享和信息傳遞的系統(tǒng)。它可以分為局域網(wǎng)、城域網(wǎng)、廣域網(wǎng)等不同的范圍,也可以按照使用的協(xié)議劃分為TCP/IP網(wǎng)絡(luò)、OSI參考模型等不同類型。計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)概念
計(jì)算機(jī)網(wǎng)絡(luò)是指將多臺(tái)計(jì)算機(jī)互相連接起來,實(shí)現(xiàn)信息傳輸和資源共享的系統(tǒng)。以下是計(jì)算機(jī)網(wǎng)絡(luò)的基礎(chǔ)概念:
通信協(xié)議:通信雙方之間進(jìn)行數(shù)據(jù)交換所遵循的規(guī)則、標(biāo)準(zhǔn)或約定。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):指各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)之間連接關(guān)系的布局方式,如星型、總線型、環(huán)型等。
客戶端/服務(wù)器模式:一種分布式應(yīng)用架構(gòu),客戶端向服務(wù)器請(qǐng)求服務(wù)并接收響應(yīng)。
帶寬:指單位時(shí)間內(nèi)可傳輸數(shù)據(jù)量的大小,通常以比特率(bps)為單位表示。
路由器:負(fù)責(zé)在不同子網(wǎng)之間轉(zhuǎn)發(fā)數(shù)據(jù)包,并決定了數(shù)據(jù)包從源到目的地經(jīng)過哪些路徑。
網(wǎng)關(guān):連接兩個(gè)不兼容協(xié)議或物理介質(zhì)的設(shè)備,在不同網(wǎng)絡(luò)之間進(jìn)行數(shù)據(jù)格式和協(xié)議的轉(zhuǎn)換。
IP地址:每臺(tái)計(jì)算機(jī)在網(wǎng)絡(luò)中唯一標(biāo)識(shí)符,用于確定數(shù)據(jù)包發(fā)送和接收方的位置。
子網(wǎng)掩碼:用于劃分一個(gè)IP地址段為若干個(gè)小范圍IP地址段以便管理和使用。
DNS解析系統(tǒng):將域名映射為對(duì)應(yīng)IP地址,使得用戶可以通過域名訪問特定的網(wǎng)站。
HTTP協(xié)議:超文本傳輸協(xié)議,用于客戶端與服務(wù)器之間的通信,主要用于Web頁面請(qǐng)求和響應(yīng)。
主機(jī):指計(jì)算機(jī)網(wǎng)絡(luò)中提供服務(wù)的終端設(shè)備,可以是個(gè)人電腦、服務(wù)器或其他可連接到網(wǎng)絡(luò)上的設(shè)備。
通信鏈路:指在計(jì)算機(jī)網(wǎng)絡(luò)中用于連接兩個(gè)或多個(gè)設(shè)備之間的物理媒介,例如光纖、同軸電纜、雙絞線等。
傳輸速率:指在計(jì)算機(jī)網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)乃俣?,一般以比特率(bits per second, bps)為單位來表示。
分組:在計(jì)算機(jī)網(wǎng)絡(luò)中,將大塊數(shù)據(jù)分割成小塊,并加上頭部信息形成一個(gè)獨(dú)立單元進(jìn)行傳輸?shù)倪^程。每個(gè)分組都包含了目標(biāo)地址和源地址等必要信息。
轉(zhuǎn)發(fā)表:是一種存儲(chǔ)在路由器或交換機(jī)內(nèi)部的表格,用于記錄不同設(shè)備之間通信所需經(jīng)過的路徑和相應(yīng)的轉(zhuǎn)發(fā)方式等信息。
路由器:是一種常見的網(wǎng)絡(luò)設(shè)備,在不同局域網(wǎng)或廣域網(wǎng)之間傳遞數(shù)據(jù)包并控制其流量。它通過查找轉(zhuǎn)發(fā)表來判斷最佳路徑并將數(shù)據(jù)包發(fā)送到目標(biāo)地址。
交換機(jī):是一種專門用于局域網(wǎng)內(nèi)部通信的設(shè)備。它能夠識(shí)別出接收端口與目標(biāo)地址之間的對(duì)應(yīng)關(guān)系,并直接將數(shù)據(jù)包轉(zhuǎn)發(fā)到目標(biāo)地址所在的端口,以實(shí)現(xiàn)局域網(wǎng)內(nèi)部快速高效的通信。
交換機(jī)和集線器在作用上確實(shí)相似,都是用來連接計(jì)算機(jī)網(wǎng)絡(luò)中的設(shè)備。但是它們的工作方式和功能還是有所不同。集線器將多個(gè)設(shè)備的數(shù)據(jù)流匯聚到一起,所有設(shè)備共享同一個(gè)帶寬。當(dāng)一個(gè)設(shè)備發(fā)送數(shù)據(jù)時(shí),所有連接在集線器上的其他設(shè)備都會(huì)收到這個(gè)消息,安全性較差,并且由于多個(gè)設(shè)備共享同一個(gè)帶寬,可能會(huì)出現(xiàn)網(wǎng)絡(luò)擁堵等問題。而交換機(jī)則可以通過記憶每個(gè)端口連接的MAC地址并建立轉(zhuǎn)發(fā)表,根據(jù)目標(biāo)MAC地址決定將數(shù)據(jù)包轉(zhuǎn)發(fā)到哪個(gè)端口。這樣可以避免廣播風(fēng)暴(即一個(gè)節(jié)點(diǎn)向其它節(jié)點(diǎn)發(fā)送大量無意義信息)和沖突等問題。此外,在交換機(jī)中各個(gè)端口之間是相互獨(dú)立的,數(shù)據(jù)包可以同時(shí)進(jìn)行雙向傳輸,因此比集線器具有更高的傳輸速度和穩(wěn)定性??傮w來說,交換機(jī)更加智能化、靈活化和高效化,在現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)中得到了廣泛應(yīng)用。
半雙工模式:指通信雙方可以交替發(fā)送和接收數(shù)據(jù),但不能同時(shí)進(jìn)行發(fā)送和接收。
全雙工模式:指通信雙方可以同時(shí)進(jìn)行發(fā)送和接收數(shù)據(jù)。
路徑:網(wǎng)絡(luò)中兩個(gè)節(jié)點(diǎn)之間的連線或路由。
因特網(wǎng)服務(wù)商:提供連接互聯(lián)網(wǎng)的服務(wù),例如電信運(yùn)營商、ISP等。
網(wǎng)絡(luò)協(xié)議:計(jì)算機(jī)網(wǎng)絡(luò)中用來約定和規(guī)范各個(gè)設(shè)備之間通訊行為的一種標(biāo)準(zhǔn)化體系結(jié)構(gòu)。
IP(Internet Protocol):互聯(lián)網(wǎng)協(xié)議,負(fù)責(zé)將數(shù)據(jù)包從源地址傳輸?shù)侥繕?biāo)地址。
TCP/IP 協(xié)議簇:包括TCP(Transmission Control Protocol)和IP(Internet Protocol)兩個(gè)主要部分,在互聯(lián)網(wǎng)中扮演著重要的角色。
丟包:在傳輸過程中某些數(shù)據(jù)包未能成功到達(dá)目標(biāo)地址而被丟棄的現(xiàn)象。
吞吐量:網(wǎng)絡(luò)在單位時(shí)間內(nèi)所能傳輸?shù)淖畲髷?shù)據(jù)量。
報(bào)文:在計(jì)算機(jī)網(wǎng)絡(luò)中,傳送信息的基本單位,是邏輯上的概念,不帶有任何物理意義。
報(bào)文段:TCP 協(xié)議層次下面一個(gè)更小單位,把應(yīng)用層信息封裝成一個(gè)實(shí)體,并加上 TCP 需要的頭部信息組成一個(gè)報(bào)文段。
數(shù)據(jù)報(bào):IP 協(xié)議層次下面一個(gè)更小單位,每個(gè)數(shù)據(jù)報(bào)中包括頭部和數(shù)據(jù)兩個(gè)部分。
幀:在網(wǎng)絡(luò)通信中,數(shù)據(jù)的傳輸單元是幀,每一幀都有固定的格式。
電路交換:將一條物理通道劃分成多個(gè)時(shí)隙,在每個(gè)時(shí)間段內(nèi)只允許一個(gè)用戶進(jìn)行通信。
報(bào)文交換:在發(fā)送數(shù)據(jù)前先建立連接并互相認(rèn)證身份,然后才能開始傳送數(shù)據(jù)。
分組交換:將要傳輸?shù)拇髩K數(shù)據(jù)分成很多小的數(shù)據(jù)包進(jìn)行傳輸,這些小的數(shù)據(jù)包可以按照不同路徑到達(dá)目標(biāo)地址,并且可以同時(shí)發(fā)送。
帶寬:指單位時(shí)間內(nèi)某一通信鏈路所能通過的最大數(shù)據(jù)量。
頻分復(fù)用:將不同頻率范圍內(nèi)的信號(hào)混合在一起傳輸,接收端再根據(jù)預(yù)先約定好的頻率范圍來區(qū)分各個(gè)信號(hào)。
時(shí)分復(fù)用:將時(shí)間劃分為若干段,在不同時(shí)間段內(nèi)向不同用戶發(fā)送信息。
時(shí)延:網(wǎng)絡(luò)通信過程中需要消耗的時(shí)間總和,由處理時(shí)延、排隊(duì)時(shí)延、傳輸時(shí)延和傳播時(shí)延構(gòu)成。
處理時(shí)延:指消息到達(dá)設(shè)備后被處理所需花費(fèi)的時(shí)間。
排隊(duì)時(shí)延:指由于設(shè)備繁忙而等待消息被處理所需花費(fèi)的時(shí)間。
傳輸時(shí)延:指消息傳輸過程中花費(fèi)的時(shí)間。
傳播時(shí)延:指消息在信道中傳播所需的時(shí)間。
單播:一對(duì)一通信方式,數(shù)據(jù)只發(fā)送給一個(gè)目標(biāo)設(shè)備。
廣播:一對(duì)多通信方式,數(shù)據(jù)同時(shí)發(fā)送給網(wǎng)絡(luò)中所有設(shè)備。
多播:一對(duì)多通信方式,數(shù)據(jù)只發(fā)送給指定組內(nèi)的設(shè)備。
任播:一種特殊的尋址機(jī)制,在互聯(lián)網(wǎng)中被用于路由協(xié)議。
計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用層
計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用層是網(wǎng)絡(luò)協(xié)議棧中的最高層,為用戶提供各種網(wǎng)絡(luò)服務(wù)。以下是一些常見的應(yīng)用層協(xié)議:
HTTP(Hypertext Transfer Protocol):Web 瀏覽器和 Web 服務(wù)器之間通信的協(xié)議,用于傳輸 HTML 等超文本數(shù)據(jù)。
HTTPS(HTTP Secure):HTTP 協(xié)議的加密版本,在傳輸過程中使用 SSL/TLS 加密和認(rèn)證數(shù)據(jù)。
FTP(File Transfer Protocol):文件傳輸協(xié)議,用于在客戶端和服務(wù)器之間傳輸文件。
SMTP(Simple Mail Transfer Protocol):簡(jiǎn)單郵件傳輸協(xié)議,用于電子郵件的發(fā)送。
POP3(Post Office Protocol Version 3):郵局協(xié)議第三版,是一種從遠(yuǎn)程服務(wù)器接收電子郵件的標(biāo)準(zhǔn)協(xié)議。IMAP(Internet Message Access Protocol):互聯(lián)網(wǎng)消息訪問協(xié)議,也是一種從遠(yuǎn)程服務(wù)器接收電子郵件的標(biāo)準(zhǔn)協(xié)議。
DNS(Domain Name System):域名系統(tǒng),將主機(jī)名轉(zhuǎn)換為 IP 地址并反向轉(zhuǎn)換。
DHCP(Dynamic Host Configuration Protocol):動(dòng)態(tài)主機(jī)配置協(xié)議,自動(dòng)分配 IP 地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)等網(wǎng)絡(luò)參數(shù)給客戶端設(shè)備。
Telnet:一種遠(yuǎn)程登錄協(xié)議,允許用戶通過終端訪問遠(yuǎn)程計(jì)算機(jī)上的命令行界面。
SSH(Secure Shell):一種安全的遠(yuǎn)程登錄協(xié)議,提供加密和認(rèn)證機(jī)制來保護(hù)數(shù)據(jù)傳輸。
應(yīng)用程序體系結(jié)構(gòu):其實(shí)就是應(yīng)用層程序的兩種組織結(jié)構(gòu),分為 CS 和 P2P。
常見的應(yīng)用程序體系結(jié)構(gòu)有以下幾種:
分層體系結(jié)構(gòu):將應(yīng)用程序按照功能分成多個(gè)層次,每個(gè)層次只與相鄰兩層進(jìn)行通信,并且每個(gè)層次只負(fù)責(zé)自己的任務(wù)。這種架構(gòu)易于擴(kuò)展和維護(hù)。
客戶端-服務(wù)器體系結(jié)構(gòu):將應(yīng)用程序分成客戶端和服務(wù)器兩部分,客戶端通過網(wǎng)絡(luò)連接到服務(wù)器上運(yùn)行??蛻舳酥饕?fù)責(zé)用戶界面,服務(wù)器主要負(fù)責(zé)業(yè)務(wù)邏輯和數(shù)據(jù)存儲(chǔ)。
MVC(Model-View-Controller)架構(gòu):將應(yīng)用程序分為三個(gè)部分:模型、視圖和控制器。模型表示數(shù)據(jù)、視圖表示用戶界面、控制器負(fù)責(zé)處理用戶輸入并更新模型或視圖。
微服務(wù)架構(gòu):將復(fù)雜的應(yīng)用程序拆分成多個(gè)小型服務(wù),并使用輕量級(jí)協(xié)議進(jìn)行通信。每個(gè)服務(wù)都獨(dú)立運(yùn)行,并且可以靈活部署和擴(kuò)展。
事件驅(qū)動(dòng)架構(gòu):應(yīng)用程序通過事件和消息進(jìn)行通信,當(dāng)一個(gè)事件發(fā)生時(shí),觸發(fā)相應(yīng)的處理程序。這種架構(gòu)可以提高系統(tǒng)的響應(yīng)性和可擴(kuò)展性。
11.客戶-服務(wù)體系:它是一種面向網(wǎng)絡(luò)應(yīng)用的體系結(jié)構(gòu)。把系統(tǒng)中的不同端系統(tǒng)區(qū)分為客戶和服務(wù)器兩類,客戶向服務(wù)器發(fā)出服務(wù)請(qǐng)求,由服務(wù)器完成所請(qǐng)求的服務(wù),并把處理結(jié)果回送給客戶。在客戶-服務(wù)器體系結(jié)構(gòu)中,有一個(gè)總是打開的主機(jī)稱為 服務(wù)器(Server),它提供來自于 客戶(client) 的服務(wù)。我們最常見的服務(wù)器就是 Web 服務(wù)器,Web 服務(wù)器服務(wù)于來自 瀏覽器 的請(qǐng)求。
12.P2P 體系:P2P (Peer-to-Peer) 體系結(jié)構(gòu)是一種分布式計(jì)算模型,它不同于傳統(tǒng)的客戶端-服務(wù)器架構(gòu),在這種模型中每個(gè)節(jié)點(diǎn)都可以充當(dāng)客戶端和服務(wù)器角色,彼此之間互相通信和協(xié)作。P2P網(wǎng)絡(luò)沒有集中的控制機(jī)構(gòu),所有節(jié)點(diǎn)平等地參與到網(wǎng)絡(luò)中,從而形成一個(gè)去中心化的網(wǎng)絡(luò)。
P2P網(wǎng)絡(luò)通??梢苑譃橐韵聨最悾?div style="height:15px;">
純 P2P 網(wǎng)絡(luò):所有節(jié)點(diǎn)都具有相同的功能和權(quán)限,沒有任何層次結(jié)構(gòu)。
混合 P2P 網(wǎng)絡(luò):既包含純 P2P 節(jié)點(diǎn)又包含擁有更多特權(quán)或者更強(qiáng)資源管理能力的超級(jí)節(jié)點(diǎn)(Supernode)。
分層 P2P 網(wǎng)絡(luò):將整個(gè)網(wǎng)絡(luò)劃分為若干層,每一層只負(fù)責(zé)處理自己所在層的任務(wù),并且通過虛擬連接進(jìn)行數(shù)據(jù)交換。
帶寬管理型 P2P 網(wǎng)絡(luò):采用各種技術(shù)手段對(duì)帶寬進(jìn)行管理、優(yōu)化和保護(hù),并盡量避免浪費(fèi)帶寬資源。
流媒體 P2P 網(wǎng)絡(luò):主要用于實(shí)時(shí)傳輸音視頻流等大容量數(shù)據(jù),并且需要保證低延遲和高穩(wěn)定性。
P2P網(wǎng)絡(luò)具有以下優(yōu)點(diǎn):
去中心化:沒有集中的控制機(jī)構(gòu),避免了單點(diǎn)故障和系統(tǒng)崩潰的風(fēng)險(xiǎn)。
共享資源:各節(jié)點(diǎn)之間可以直接共享資源,節(jié)約了網(wǎng)絡(luò)帶寬和存儲(chǔ)空間。
自我組織:節(jié)點(diǎn)之間可以自動(dòng)協(xié)作完成任務(wù),并且能夠根據(jù)網(wǎng)絡(luò)狀況進(jìn)行適應(yīng)性調(diào)整。
高可擴(kuò)展性:新節(jié)點(diǎn)加入時(shí)不會(huì)對(duì)整個(gè)系統(tǒng)造成影響,而且可以利用更多的節(jié)點(diǎn)提高網(wǎng)絡(luò)性能。
13.進(jìn)程:進(jìn)程其實(shí)就是運(yùn)行在端系統(tǒng)的程序,應(yīng)用程序進(jìn)行通信的最基本單位就是進(jìn)程。
14.分布式應(yīng)用程序:多個(gè)端系統(tǒng)之間相互交換數(shù)據(jù)的端系統(tǒng)被稱為分布式應(yīng)用程序。
15.套接字接口:指的就是 socket 接口,這個(gè)接口規(guī)定了端系統(tǒng)之間通過因特網(wǎng)進(jìn)行數(shù)據(jù)交換的方式。
客戶端:在客戶-服務(wù)器架構(gòu)中扮演請(qǐng)求方的角色,通常是 PC,智能手機(jī)等端系統(tǒng)。
服務(wù)器:在客戶-服務(wù)器架構(gòu)中扮演服務(wù)方的角色,通常是大型服務(wù)器集群扮演服務(wù)器的角色。
IP 地址:IP 地址就是網(wǎng)際協(xié)議地址,在互聯(lián)網(wǎng)中唯一標(biāo)識(shí)主機(jī)的一種地址。每一臺(tái)入網(wǎng)的設(shè)備都會(huì)有一個(gè) IP 地址,這個(gè) IP 又分為內(nèi)網(wǎng) IP 和公網(wǎng) IP。
端口號(hào):在同一臺(tái)主機(jī)內(nèi),端口號(hào)用于標(biāo)識(shí)不同應(yīng)用程序進(jìn)程。
URI:它的全稱是(Uniform Resource Identifier),中文名稱是統(tǒng)一資源標(biāo)識(shí)符,使用它就能夠唯一地標(biāo)記互聯(lián)網(wǎng)上資源。
URL:它的全稱是(Uniform Resource Locator),中文名稱是統(tǒng)一資源定位符,它實(shí)際上是 URI 的一個(gè)子集。
HTML:HTML 稱為超文本標(biāo)記語言,是一種標(biāo)識(shí)性的語言。它包括一系列標(biāo)簽.通過這些標(biāo)簽可以將網(wǎng)絡(luò)上的文檔格式統(tǒng)一,使分散的 Internet 資源連接為一個(gè)邏輯整體。HTML 文本是由 HTML 命令組成的描述性文本,HTML 命令可以說明文字,圖形、動(dòng)畫、聲音、表格、鏈接等。
Web 頁面:Web 頁面也叫做 Web Page,它是由對(duì)象組成,一個(gè)對(duì)象(object) 簡(jiǎn)單來說就是一個(gè)文件,這個(gè)文件可以是 HTML 文件、一個(gè)圖片、一段 Java 應(yīng)用程序等,它們都可以通過 URI 來找到。一個(gè) Web 頁面包含了很多對(duì)象,Web 頁面可以說是對(duì)象的集合體。
Web 服務(wù)器:Web 服務(wù)器的正式名稱叫做 Web Server,Web 服務(wù)器可以向?yàn)g覽器等 Web 客戶端提供文檔,也可以放置網(wǎng)站文件,讓全世界瀏覽;可以放置數(shù)據(jù)文件,讓全世界下載。目前最主流的三個(gè) Web 服務(wù)器是 Apache、 Nginx 、IIS。
CDN:CDN 的全稱是Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò),它應(yīng)用了 HTTP 協(xié)議里的緩存和代理技術(shù),代替源站響應(yīng)客戶端的請(qǐng)求。CDN 是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的網(wǎng)絡(luò),它依靠部署在各地的邊緣服務(wù)器,通過中心平臺(tái)的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。
專用 CDN:由內(nèi)容提供商特有 CDN 。
第三方 CDN:它代表多個(gè)內(nèi)容提供商提供服務(wù)。
WAF:WAF 是一種 應(yīng)用程序防護(hù)系統(tǒng),它是一種通過執(zhí)行一系列針對(duì) HTTP / HTTPS的安全策略來專門為 Web 應(yīng)用提供保護(hù)的一款產(chǎn)品,它是應(yīng)用層面的防火墻,專門檢測(cè) HTTP 流量,是防護(hù) Web 應(yīng)用的安全技術(shù)。
WebService :WebService 是一種 Web 應(yīng)用程序,WebService 是一種跨編程語言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù)。
HTTP: TCP/IP 協(xié)議簇的一種,它是一個(gè)在計(jì)算機(jī)世界里專門在兩點(diǎn)之間傳輸文字、圖片、音頻、視頻等超文本數(shù)據(jù)的約定和規(guī)范。
Session:Session 其實(shí)就是客戶端會(huì)話的緩存,主要是為了彌補(bǔ) HTTP 無狀態(tài)的特性而設(shè)計(jì)的。服務(wù)器可以利用 Session 存儲(chǔ)客戶端在同一個(gè)會(huì)話期間的一些操作記錄。當(dāng)客戶端請(qǐng)求服務(wù)端時(shí),服務(wù)端會(huì)為這次請(qǐng)求開辟一塊內(nèi)存空間,這個(gè)對(duì)象便是 Session 對(duì)象,存儲(chǔ)結(jié)構(gòu)為 ConcurrentHashMap。
Cookie:HTTP 協(xié)議中的 Cookie 包括 Web Cookie 和瀏覽器 Cookie,它是服務(wù)器發(fā)送到 Web 瀏覽器的一小塊數(shù)據(jù)。服務(wù)器發(fā)送到瀏覽器的 Cookie,瀏覽器會(huì)進(jìn)行存儲(chǔ),并與下一個(gè)請(qǐng)求一起發(fā)送到服務(wù)器。通常,它用于判斷兩個(gè)請(qǐng)求是否來自于同一個(gè)瀏覽器,例如用戶保持登錄狀態(tài)。
SMTP 協(xié)議 :提供電子郵件服務(wù)的協(xié)議叫做 SMTP 協(xié)議, SMTP 在傳輸層也使用了 TCP 協(xié)議。SMTP 協(xié)議主要用于系統(tǒng)之間的郵件信息傳遞,并提供有關(guān)來信的通知。
POP3:郵件訪問協(xié)議,協(xié)議較為簡(jiǎn)單,功能有限。
DNS 協(xié)議:由于 IP 地址是計(jì)算機(jī)能夠識(shí)別的地址,而我們?nèi)祟惒环奖阌洃涍@種地址,所以為了方便人類的記憶,使用 DNS 協(xié)議,來把我們?nèi)菀子洃浀木W(wǎng)絡(luò)地址映射稱為主機(jī)能夠識(shí)別的 IP 地址。
根 DNS 服務(wù)器:最頂級(jí)的 DNS 服務(wù)器,全世界有 400 多臺(tái)根域名服務(wù)器,由 13 個(gè)不同的組織管理,根域名服務(wù)器提供 TLD 服務(wù)器的 IP 地址。
頂級(jí)域 DNS 服務(wù)器:這個(gè)我們比較熟悉,像是常見的頂級(jí)域(如 com、org、net、edu 和 gov)和所有的國家頂級(jí)域(uk、fr、ca 和 jp),TLD 服務(wù)器提供了權(quán)威 DNS 服務(wù)器的 IP 地址。
權(quán)威 DNS 服務(wù)器:這個(gè)服務(wù)器就是因特網(wǎng)上具有公共可訪問主機(jī)的 DNS 記錄的服務(wù)器。
本地 DNS 服務(wù)器:一般來說,每個(gè) ISP 都有一臺(tái)本地 DNS 服務(wù)器,本地 DNS 服務(wù)器會(huì)臨近主機(jī)端。
TELNET 協(xié)議:遠(yuǎn)程登陸協(xié)議,它允許用戶(Telnet 客戶端)通過一個(gè)協(xié)商過程來與一個(gè)遠(yuǎn)程設(shè)備進(jìn)行通信,它為用戶提供了在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的能力。
SSH 協(xié)議:SSH 是一種建立在應(yīng)用層上的安全加密協(xié)議。因?yàn)?TELNET 有一個(gè)非常明顯的缺點(diǎn),那就是在主機(jī)和遠(yuǎn)程主機(jī)的發(fā)送數(shù)據(jù)包的過程中是明文傳輸,未經(jīng)任何安全加密,這樣的后果是容易被互聯(lián)網(wǎng)上不法分子嗅探到數(shù)據(jù)包來搞一些壞事,為了數(shù)據(jù)的安全性,我們一般使用 SSH 進(jìn)行遠(yuǎn)程登錄。
FTP 協(xié)議:FTP (File Transfer Protocol) 協(xié)議是一種用于文件傳輸?shù)臉?biāo)準(zhǔn)協(xié)議,它通過 TCP/IP 協(xié)議棧進(jìn)行數(shù)據(jù)傳輸。FTP 協(xié)議包括兩個(gè)主要組件:客戶端和服務(wù)器。
FTP 客戶端通常由用戶使用的文件管理器或 FTP 客戶端軟件實(shí)現(xiàn),它可以連接到一個(gè)遠(yuǎn)程 FTP 服務(wù)器,并且允許用戶在本地計(jì)算機(jī)和遠(yuǎn)程服務(wù)器之間上傳、下載、刪除等操作。
FTP 服務(wù)器則負(fù)責(zé)提供文件存儲(chǔ)和傳輸服務(wù),它需要安裝在遠(yuǎn)程計(jì)算機(jī)上,并且配置相應(yīng)的用戶賬號(hào)和權(quán)限控制來保證安全性。
FTP 協(xié)議工作流程如下:
建立連接:客戶端向服務(wù)器發(fā)送連接請(qǐng)求,如果連接成功,則建立雙向數(shù)據(jù)通道。
鑒權(quán)認(rèn)證:客戶端需要提供用戶名和密碼進(jìn)行身份驗(yàn)證,并且根據(jù)不同的權(quán)限級(jí)別進(jìn)行訪問限制。
數(shù)據(jù)傳輸:客戶端可以執(zhí)行多種操作,例如上傳、下載、重命名、刪除等操作。每個(gè)操作都需要使用特定的命令與服務(wù)器進(jìn)行交互,并且將數(shù)據(jù)傳輸?shù)街付夸浕蛘邚闹付夸浿蝎@取數(shù)據(jù)。
斷開連接:當(dāng)所有操作完成后,客戶端會(huì)向服務(wù)器發(fā)送斷開連接請(qǐng)求,然后關(guān)閉雙向數(shù)據(jù)通道并釋放資源。
FTP 協(xié)議具有以下優(yōu)點(diǎn):
簡(jiǎn)單易用:FTP 協(xié)議基于文本格式,易于理解和使用。
高效可靠:FTP 使用 TCP/IP 協(xié)議進(jìn)行數(shù)據(jù)傳輸,并且支持?jǐn)帱c(diǎn)續(xù)傳、數(shù)據(jù)校驗(yàn)等機(jī)制,可以保證高效和可靠的文件傳輸。
跨平臺(tái)支持:FTP 支持多種操作系統(tǒng)和網(wǎng)絡(luò)環(huán)境,兼容性強(qiáng)。
但是 FTP 協(xié)議也存在一些缺點(diǎn),例如安全性較差、不支持加密傳輸?shù)葐栴}。因此在實(shí)際應(yīng)用中需要結(jié)合具體需求選擇合適的文件傳輸協(xié)議。
MIME類型,它表示的是互聯(lián)網(wǎng)的資源類型,一般類型有 超文本標(biāo)記語言文本 .html text/html、xml文檔 .xml text/xml、普通文本 .txt text/plain、PNG圖像 .png image/png、GIF圖形 .gif image/gif、JPEG圖形 .jpeg,.jpg image/jpeg、AVI 文件 .avi video/x-msvideo 等。
多路分解:在接收端,運(yùn)輸層會(huì)檢查源端口號(hào)和目的端口號(hào)等字段,然后標(biāo)識(shí)出接收的套接字,從而將運(yùn)輸層報(bào)文段的數(shù)據(jù)交付到正確套接字的過程被稱為多路分解。
多路復(fù)用:在發(fā)送方,從不同的套接字中收集數(shù)據(jù)塊,然后為數(shù)據(jù)塊封裝上首部信息從而生成報(bào)文段,然后將報(bào)文段傳遞給網(wǎng)絡(luò)層的過程被稱為多路復(fù)用。
周知端口號(hào):在主機(jī)的應(yīng)用程序中,從 0 - 1023 的端口號(hào)是受限制的,被稱為周知端口號(hào),這些端口號(hào)一般不能占用。
計(jì)算機(jī)網(wǎng)絡(luò)傳輸層
計(jì)算機(jī)網(wǎng)絡(luò)中,傳輸層是 OSI 模型和 TCP/IP 模型中的一層,主要負(fù)責(zé)應(yīng)用程序之間的數(shù)據(jù)傳輸。
在 OSI 模型中,傳輸層的作用是為運(yùn)行在不同主機(jī)上的進(jìn)程提供端到端的可靠數(shù)據(jù)傳輸服務(wù)。其中最重要的兩個(gè)協(xié)議是 TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol)。TCP 協(xié)議提供面向連接、可靠性高、流控制和擁塞控制等服務(wù),適合于需要保證數(shù)據(jù)完整性和順序性的應(yīng)用場(chǎng)景。UDP 協(xié)議則是無連接、不可靠但速度較快,并且可以支持廣播和多播等特殊功能,適合于實(shí)時(shí)性要求較高但允許少量數(shù)據(jù)丟失或者亂序的應(yīng)用場(chǎng)景。在 TCP/IP 模型中,傳輸層主要負(fù)責(zé)將上層協(xié)議(如 HTTP、FTP 等)產(chǎn)生的數(shù)據(jù)進(jìn)行分段并添加首部信息(如源地址、目標(biāo)地址、序列號(hào)等),然后通過 IP 層進(jìn)行路由轉(zhuǎn)發(fā)。接收方通過接收到的分段進(jìn)行重新組裝,并交給上層協(xié)議處理。此外,還有一些其他常見協(xié)議也工作在傳輸層,例如 SCTP (Stream Control Transmission Protocol)、DCCP (Datagram Congestion Control Protocol) 等。這些協(xié)議都是為了滿足不同的應(yīng)用場(chǎng)景和需求而設(shè)計(jì)的。
可靠數(shù)據(jù)傳輸是指在網(wǎng)絡(luò)中傳輸數(shù)據(jù)時(shí),保證數(shù)據(jù)的完整性、正確性和順序性。為了實(shí)現(xiàn)可靠數(shù)據(jù)傳輸,需要考慮以下幾個(gè)方面:
1. 容忍丟失的應(yīng)用:對(duì)于一些允許少量數(shù)據(jù)丟失或亂序的應(yīng)用(如視頻流、音頻流等),可以采用非可靠傳輸方式。
2. 非持續(xù)連接:TCP 協(xié)議采用非持續(xù)連接方式,即每次發(fā)送數(shù)據(jù)時(shí)都要進(jìn)行連接建立和釋放操作。
3. 持續(xù)連接:UDP 協(xié)議則采用持續(xù)連接方式,即不需要進(jìn)行連接建立和釋放操作,適合于需要頻繁發(fā)送小量數(shù)據(jù)的場(chǎng)景。
4. 傳輸控制協(xié)議(TCP):TCP 是一種面向連接的、可靠的傳輸協(xié)議,它通過三次握手建立連接,并使用冗余 ACK 快速重傳和選擇確認(rèn)等技術(shù)來保證數(shù)據(jù)的正確性、完整性和順序性。
5. 用戶數(shù)據(jù)包協(xié)議(UDP):UDP 是一種無連接、不可靠但速度較快的傳輸協(xié)議,適合于實(shí)時(shí)性要求較高但允許少量數(shù)據(jù)丟失或者亂序的應(yīng)用場(chǎng)景。
6. 三次握手:TCP 連接建立過程中采用三次握手機(jī)制來確保雙方都能夠正常通信。
7. 最大報(bào)文段長度(MSS):TCP 在發(fā)送數(shù)據(jù)時(shí)需要將大的數(shù)據(jù)分成若干個(gè)小的報(bào)文段,而 MSS 就是指每個(gè)報(bào)文段中的最大數(shù)據(jù)量。
8. 最大傳輸單元(MTU):MTU 是指在網(wǎng)絡(luò)中可以傳輸?shù)淖畲髷?shù)據(jù)包大小,一般為 1500 字節(jié)左右。
9. 冗余 ACK 快速重傳:當(dāng)接收方連續(xù)收到相同的 ACK 時(shí),說明前面一個(gè)報(bào)文段可能丟失了,此時(shí)就會(huì)觸發(fā)冗余 ACK 快速重傳機(jī)制。
10. 選擇確認(rèn):TCP 中使用選擇確認(rèn)技術(shù)來減少重復(fù)傳輸和提高吞吐量,即只對(duì)接收方還未收到的數(shù)據(jù)進(jìn)行確認(rèn)。
11. 擁塞控制:TCP 采用擁塞控制算法來避免網(wǎng)絡(luò)擁塞情況下出現(xiàn)過多的丟包、延遲等問題。
12. 四次揮手:TCP 連接釋放過程中采用四次揮手機(jī)制來確保連接正常關(guān)閉。
13. 發(fā)送緩存:發(fā)送方在發(fā)送數(shù)據(jù)時(shí)會(huì)先將數(shù)據(jù)緩存在發(fā)送緩存中,等待網(wǎng)絡(luò)空閑后再進(jìn)行發(fā)送操作。
14. 接收緩存:接收方在接收數(shù)據(jù)時(shí)會(huì)先將數(shù)據(jù)緩存在接收緩存中,等待所有相關(guān)的數(shù)據(jù)都到齊后再進(jìn)行處理操作。
15.SYN:Synchronize Sequence Numbers,是 TCP/IP 建立連接時(shí)發(fā)送的數(shù)據(jù)包,這個(gè)數(shù)據(jù)包就是一個(gè)同步序列號(hào),標(biāo)識(shí)客戶端發(fā)送的是哪個(gè)請(qǐng)求。
16.ACK:Acknowledge character,ACK 是對(duì)請(qǐng)求進(jìn)行響應(yīng)的數(shù)據(jù)包。
17.FIN:Finish ,帶有 FIN 標(biāo)志位的數(shù)據(jù)包表示客戶端希望斷開連接。
18.三次握手中的狀態(tài)變化,在 TCP 的三次握手過程中,客戶端和服務(wù)器之間會(huì)進(jìn)行狀態(tài)的變化。具體的狀態(tài)變化如下:
客戶端發(fā)送 SYN 數(shù)據(jù)包,進(jìn)入 SYN-SENT 狀態(tài)。
服務(wù)器收到 SYN 數(shù)據(jù)包后回復(fù)一個(gè) SYN ACK 數(shù)據(jù)包,表示可以建立連接,并進(jìn)入 SYN-RECEIVED 狀態(tài)。
客戶端再次回復(fù)一個(gè) ACK 數(shù)據(jù)包,表示確認(rèn)可以建立連接,并進(jìn)入 ESTABLISHED 狀態(tài)。
這樣就完成了三次握手過程。在此之后,客戶端和服務(wù)器之間就可以進(jìn)行數(shù)據(jù)傳輸了
19.四次揮手中的狀態(tài)變化,在 TCP 的四次揮手過程中,客戶端和服務(wù)器之間會(huì)進(jìn)行狀態(tài)的變化。具體的狀態(tài)變化如下:
客戶端發(fā)送一個(gè) FIN 數(shù)據(jù)包,表示數(shù)據(jù)傳輸完畢,并進(jìn)入 FIN-WAIT-1 狀態(tài)。
服務(wù)器收到 FIN 數(shù)據(jù)包后,回復(fù)一個(gè) ACK 數(shù)據(jù)包,表示已經(jīng)接收到了客戶端的請(qǐng)求,并進(jìn)入 CLOSE-WAIT 狀態(tài)。
當(dāng)服務(wù)器也準(zhǔn)備好關(guān)閉連接時(shí),發(fā)送一個(gè) FIN 數(shù)據(jù)包給客戶端,并進(jìn)入 LAST-ACK 狀態(tài)。
客戶端收到服務(wù)器發(fā)送的 FIN 數(shù)據(jù)包后,回復(fù)一個(gè) ACK 數(shù)據(jù)包給服務(wù)器確認(rèn)接受到關(guān)閉請(qǐng)求,并進(jìn)入 TIME-WAIT 狀態(tài)。在這個(gè)狀態(tài)下等待 2MSL(最長報(bào)文段壽命)時(shí)間后才會(huì)真正關(guān)閉連接。
這樣就完成了四次揮手過程??梢钥闯?,相比于三次握手,在四次揮手中多了一步“TIME-WAIT”階段來確保所有數(shù)據(jù)都被成功傳輸完畢并避免重復(fù)連接的發(fā)生。
20.滑動(dòng)窗口:英文 sliding window,它是一種流量控制技術(shù),在互聯(lián)網(wǎng)早期,通信雙方通常不會(huì)考慮網(wǎng)絡(luò)情況,一般都會(huì)直接進(jìn)行通信,同時(shí)發(fā)送數(shù)據(jù),很容易導(dǎo)致阻塞,誰也發(fā)不了數(shù)據(jù),針對(duì)這種現(xiàn)象,提出了滑動(dòng)窗口,通過滑動(dòng)窗口,接收方會(huì)告訴發(fā)送方自己能夠接收多少數(shù)據(jù)。
21.窗口長度:窗口長度指的是已發(fā)送但還未確認(rèn)的分組范圍,如下圖中的發(fā)送窗口結(jié)構(gòu)就是窗口長度。
22.累積確認(rèn):TCP 規(guī)定在一段時(shí)間內(nèi)發(fā)送方只要收到最后一條接收方返回的確認(rèn) ACK ,而不用重傳報(bào)文段。
23.冗余ACK:由于 TCP 采用的是累計(jì)確認(rèn)機(jī)制,即當(dāng)接收端收到比期望序號(hào)大的報(bào)文段時(shí),便會(huì)重復(fù)發(fā)送最近一次確認(rèn)的報(bào)文段的確認(rèn)信號(hào),我們稱之為冗余 ACK。
24.選擇確認(rèn):可選擇性的確認(rèn)失序報(bào)文段,而不是重傳最后一個(gè)報(bào)文段。
計(jì)算機(jī)網(wǎng)絡(luò)網(wǎng)絡(luò)層
網(wǎng)絡(luò)層的重要概念
網(wǎng)絡(luò)層介于傳輸層和數(shù)據(jù)鏈路層之間,其主要作用是實(shí)現(xiàn)兩個(gè)網(wǎng)絡(luò)系統(tǒng)之間的數(shù)據(jù)透明傳送,具體包括路由選擇,擁塞控制和網(wǎng)際互連等。
網(wǎng)絡(luò)層的兩個(gè)層面(路由器之間傳送的信息有兩類)
(1)轉(zhuǎn)發(fā)源主機(jī)和目的主機(jī)之間所傳送的數(shù)據(jù):把源主機(jī)所發(fā)送的分組,像接力賽跑一樣從一個(gè)路由器轉(zhuǎn)發(fā)到另一個(gè)路由器,最后把分組傳送到目的主機(jī)。
(2)傳送路由信息:根據(jù)路由選擇協(xié)議所使用的路由算法,彼此不斷地交換路由信息分組,目的是為了在路由器中創(chuàng)建路由表,并由此導(dǎo)出為轉(zhuǎn)發(fā)分組而用的轉(zhuǎn)發(fā)表。這一類信息的傳送是為第一類數(shù)據(jù)的傳送服務(wù)的。
網(wǎng)際協(xié)議IP
網(wǎng)際協(xié)議IP是TCP/IP體系中兩個(gè)最主要的協(xié)議之一,主要為IPV4,較新版本IPV6與協(xié)議IP配套使用的還有三個(gè)協(xié)議:
地址解析協(xié)議ARP
網(wǎng)際控制報(bào)文協(xié)議ICMP
網(wǎng)際組管理協(xié)議IGMP
從一般的概念來講,將網(wǎng)絡(luò)互連起來要使用一些中間設(shè)備。根據(jù)中間設(shè)備所在的層次,可以有一下四種不同的中間設(shè)備:
(1)物理層使用的中間設(shè)備叫做轉(zhuǎn)發(fā)器(repeater),比如中繼器、集線器(Hub);
(2)數(shù)據(jù)鏈路層使用的中間設(shè)備叫做網(wǎng)橋或橋接器(bridge);
(3)網(wǎng)絡(luò)層使用的中間設(shè)備叫做路由器(router);
(4)在網(wǎng)絡(luò)層以上使用的中間設(shè)備叫做網(wǎng)關(guān)(geteway)。用網(wǎng)關(guān)連接兩個(gè)不兼容的系統(tǒng)需要在高層進(jìn)行協(xié)議的轉(zhuǎn)換。
TCP/IP的虛擬互連方式
所謂虛擬互連網(wǎng)絡(luò),它的意思就是互連起來的各種物理網(wǎng)絡(luò)的異構(gòu)性本來是客觀存在的,但是我們利用IP協(xié)議就可以把這些性能各異的網(wǎng)絡(luò)在網(wǎng)絡(luò)層看起來好像是一個(gè)統(tǒng)一的網(wǎng)絡(luò)。
這種使用IP協(xié)議的虛擬互連網(wǎng)絡(luò)可簡(jiǎn)稱為IP網(wǎng),使用IP網(wǎng)通信的好處是:當(dāng)IP網(wǎng)上的主機(jī)進(jìn)行通信時(shí),就好像在一個(gè)單個(gè)網(wǎng)絡(luò)上通信一樣,他們看不見互連的各網(wǎng)絡(luò)的具體異構(gòu)細(xì)節(jié)(如具體的編址方案、路由選擇協(xié)議、等等)
互聯(lián)網(wǎng)的源主機(jī)H1把一個(gè)IP數(shù)據(jù)報(bào)發(fā)送給目的主機(jī)H2根據(jù)分組交換分組轉(zhuǎn)發(fā)概念,主機(jī)H1先要查找自己的路由表,看目的主機(jī)是否就在本網(wǎng)絡(luò)上。如是,則不需要經(jīng)過路由器而是直接交付,任務(wù)就完成了。如不是,則必須把IP數(shù)據(jù)報(bào)發(fā)送給某個(gè)路由器(圖中R1)。R1在查找了自己的路由表后,知道應(yīng)把數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)給R2進(jìn)行交接交付,這樣一直轉(zhuǎn)發(fā)下去,最后由路由器R5知道自己是和H2連接在一個(gè)網(wǎng)絡(luò)上,不需要再使用別的路由器轉(zhuǎn)發(fā)了,于是就把數(shù)據(jù)報(bào)直接交付到目的主機(jī)H2。
這里強(qiáng)調(diào)的是:互連網(wǎng)可以由多個(gè)異構(gòu)網(wǎng)絡(luò)組成。
IP地址
IP作用于OSI參考模型中的網(wǎng)絡(luò)層,在終端通信中作為唯一標(biāo)識(shí),便于確定數(shù)據(jù)的傳遞目標(biāo)。
IP地址分為:IPv4 、IPv6
大眾熟知且流行的IPv4是用點(diǎn)分四組十進(jìn)制的表示方法展示的
IPv4是32位的。而IPv6的位數(shù)就比較大了,是128位的,長度是IPv4的4倍,并且其表示方式是分塊的八組四個(gè)十六進(jìn)制數(shù)
IP是作為終端的唯一表示,因此只有當(dāng)保證每個(gè)IP都不同時(shí),才能保證IP的唯一性。其中,IPv4地址的長度為32位,因此就有 2^32 種可能的地址,那么同理,IPv6地址的長度為128位,因此就有 2^128 種可能的地址。
這些地址就是作為數(shù)據(jù)包發(fā)送的目的地址,當(dāng)然每個(gè)地址都會(huì)有它們各自的含義,例如單播 、組播 、廣播等
單播可以理解為一臺(tái)主機(jī)發(fā)送單一的數(shù)據(jù)包給另一臺(tái)主機(jī);
組播可以理解為一臺(tái)主機(jī)發(fā)送單一的數(shù)據(jù)包給多臺(tái)主機(jī);
廣播可以理解為一個(gè)節(jié)點(diǎn)向其它所有的節(jié)點(diǎn)發(fā)送數(shù)據(jù)包;
IPv4種大多的數(shù)的地址都為單播
在識(shí)別IP地址時(shí),就是先通過識(shí)別IP地址中的網(wǎng)絡(luò)號(hào)來確認(rèn)目的地址處于哪個(gè)網(wǎng)絡(luò)區(qū)域,然后再識(shí)別主機(jī)號(hào),來確認(rèn)這個(gè)網(wǎng)絡(luò)中特定的主機(jī)。
將IPv4地址用二進(jìn)制表示,一段地址的網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)分類可以分為5類:A類 、B類 、C類 、D類 、E類,
A類 :網(wǎng)絡(luò)號(hào)共8位,首位固定為 0 ,接下來連續(xù)的7位可以自由設(shè)定;主機(jī)號(hào)為24位。 B類 :網(wǎng)絡(luò)號(hào)共16位,前兩位固定為1 0 ,接下來連續(xù)的14位可以自由設(shè)定,主機(jī)號(hào)為16位。 C類 :網(wǎng)絡(luò)號(hào)共24位,前三位固定為1 1 0 ,接下來連續(xù)的21位可以自由設(shè)定,主機(jī)號(hào)為8位。 D類 :為組播地址,共32位,前四位固定 1 1 1 0 。 E類 :為保留地址,共32位,前四位2固定為 1 1 1 1 。
A類地址網(wǎng)絡(luò)號(hào)共8位,其中首位固定為 0,那么還有7位可以自由設(shè)定,那么就共有 2^7個(gè)網(wǎng)絡(luò)數(shù)。 B類地址網(wǎng)絡(luò)號(hào)共16位,其中首位固定為 1 0,那么還有14位可以自由設(shè)定,那么就共有 2^14個(gè)網(wǎng)絡(luò)數(shù)。
C類地址網(wǎng)絡(luò)號(hào)共24位,其中首位固定為 1 1 0,那么還有21位可以自由設(shè)定,那么就共有 2^21個(gè)網(wǎng)絡(luò)數(shù)。
A類地址的網(wǎng)絡(luò)號(hào)字段占1個(gè)字節(jié),只有7位可供使用(該字段的第一位已固定為0,
網(wǎng)絡(luò)號(hào)為全0的IP地址有特殊的用途,它表示“本網(wǎng)絡(luò)”;
網(wǎng)絡(luò)號(hào)為127(即01111111)保留作為本地軟件環(huán)回測(cè)試本主機(jī)的進(jìn)程之間的通信之用,若主機(jī)發(fā)送一個(gè)目的地址為環(huán)回地址(即127.0.0.1)的IP數(shù)據(jù)報(bào),則本主機(jī)的協(xié)議軟件就處理數(shù)據(jù)報(bào)中的數(shù)據(jù),而不會(huì)把數(shù)據(jù)報(bào)發(fā)送到任何網(wǎng)絡(luò)。因此,A類地址可指派的網(wǎng)絡(luò)號(hào)有126個(gè)。
類地址范圍最大網(wǎng)絡(luò)數(shù)最大主機(jī)數(shù)
A1.0.0.0~126.255.255.2552^72^24-2 = 16777214
B128.0.0.0~191.255.255.2552^14 - 12^16-2 = 65534
C192.0.0.0~223.255.255.2552^21 - 12^8-2 = 254
無分類編址CIDR
在IP地址即將枯竭時(shí),一種新的無分類編址方法問世。
(1)網(wǎng)絡(luò)前綴:CIDR把網(wǎng)絡(luò)號(hào)改稱為網(wǎng)絡(luò)前綴,用來指明網(wǎng)絡(luò),剩下的后面部分仍然是主機(jī)號(hào),用來指明主機(jī)網(wǎng)絡(luò)前綴n不是固定的數(shù)。CIDR使用 “斜線計(jì)法” ,即IP地址后面是網(wǎng)絡(luò)前綴所占的位數(shù)。
(2)地址塊:CIDR把網(wǎng)絡(luò)前綴都相同的所有連續(xù)的IP地址組成為一個(gè)“CIDR地址塊”,一個(gè)CIDR地址塊包含的IP地址數(shù)目,取決于網(wǎng)絡(luò)前綴的位數(shù),我們只要知道CIDR地址塊中的任何一個(gè)地址,就可以知道這個(gè)地址塊的起始地址(即最小地址)和最大地址,以及地址塊中的地址數(shù)。
IP數(shù)據(jù)報(bào)的格式
IP協(xié)議提供不可靠無連接的數(shù)據(jù)報(bào)傳輸服務(wù),IP層提供的服務(wù)是通過IP層對(duì)數(shù)據(jù)報(bào)的封裝與拆封來實(shí)現(xiàn)的。IP數(shù)據(jù)報(bào)的格式分為報(bào)頭區(qū)和數(shù)據(jù)區(qū)兩大部分,其中報(bào)頭區(qū)是為了正確傳輸高層數(shù)據(jù)而加的各種控制信息,數(shù)據(jù)區(qū)包括高層協(xié)議需要傳輸?shù)臄?shù)據(jù)。
IP數(shù)據(jù)報(bào)首部的固定部分中的各字段
(1)版本:占4位,指IP協(xié)議的版本。通信雙方使用的IP協(xié)議版本必須一致。日前廣泛使用的 IP協(xié)議版本號(hào)為 4 (即 IPv4)。IPv6目前還處于起步階段。
(2)報(bào)頭長度:占4位,該字段的單位是32位字(1個(gè)32位字長是4字節(jié)),因此當(dāng)IP報(bào)頭長度為1111時(shí),報(bào)頭長度就達(dá)到最大值60字節(jié)。當(dāng)IP分組的首部長度不是4字節(jié) 的整數(shù)倍時(shí),就需要對(duì)填充域加以填充。最常用的報(bào)頭長度為20位(報(bào)頭長度值為0101),這時(shí)不使用任何選項(xiàng)。
(3)區(qū)分服務(wù)(服務(wù)類型):占8位,在一般情況下都不使用這個(gè)字段。
(4)總長度:指報(bào)頭和數(shù)據(jù)之和的長度,單位是字節(jié)??傞L度字段為16位,故IP數(shù)據(jù)報(bào)的最大長度為65535。 每一種數(shù)據(jù)鏈路層都有其自己的幀格式,其中包括幀格 式中的數(shù)據(jù)字段的最大長度,這稱為最大傳送單元MTU。當(dāng)IP數(shù)據(jù)報(bào)封裝成鏈路層的幀時(shí),此數(shù)據(jù)報(bào)的總長度不能超過對(duì)應(yīng)MTU的值。若數(shù)據(jù)報(bào)長度超過對(duì) MTU的值,就將數(shù)據(jù)報(bào)進(jìn)行分片處理,此時(shí)數(shù)據(jù)報(bào)首部中的“總長度“字段是指分片后的每一個(gè)分片的報(bào)頭長度和數(shù)據(jù)長度之和。
(5)標(biāo)識(shí):占16位。IP軟件在存儲(chǔ)器中維持一個(gè)計(jì)數(shù)器,每產(chǎn)生一個(gè)數(shù)據(jù)報(bào),計(jì)數(shù)器就加1,并賦給標(biāo)識(shí)字段。當(dāng)數(shù)據(jù)報(bào)進(jìn)行分片處理后,每個(gè)分片的標(biāo)識(shí)值都與原數(shù) 據(jù)報(bào)的標(biāo)識(shí)值相同,則在接收端具有相同標(biāo)識(shí)值的分片就能最終正確的重裝成為原來的數(shù)據(jù)報(bào)。
(6)標(biāo)志:占3位,但目前只有兩位有意義。 最低位記為MF。MF=1即表示后面”還有分片“的數(shù)據(jù)包。MF=0表示這已是若干數(shù)據(jù)包片中的最后一個(gè)。 中間位記為DF,意思是”不能分片“。只有當(dāng)DF=0時(shí)才允許分片。
(7)片偏移:占13位。表示每個(gè)數(shù)據(jù)報(bào)的分片在原數(shù)據(jù)報(bào)中的相對(duì)位置。片偏移以8個(gè)字節(jié)為偏移單位,即每個(gè)分片的長度一定是8字節(jié)的整數(shù)倍。
計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)鏈路層和物理層
計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)鏈路層和物理層是 OSI 模型中的前兩個(gè)層,負(fù)責(zé)傳輸數(shù)據(jù)的實(shí)際物理連接和處理
節(jié)點(diǎn):一般指鏈路層協(xié)議中的設(shè)備。
鏈路:一般把沿著通信路徑連接相鄰節(jié)點(diǎn)的通信信道稱為鏈路。
MAC 協(xié)議:媒體訪問控制協(xié)議,它規(guī)定了幀在鏈路上傳輸?shù)囊?guī)則。
奇偶校驗(yàn)位:一種差錯(cuò)檢測(cè)方式,多用于計(jì)算機(jī)硬件的錯(cuò)誤檢測(cè)中,奇偶校驗(yàn)通常用在數(shù)據(jù)通信中來保證數(shù)據(jù)的有效性。
向前糾錯(cuò):接收方檢測(cè)和糾正差錯(cuò)的能力被稱為向前糾錯(cuò)。
以太網(wǎng):以太網(wǎng)是一種當(dāng)今最普遍的局域網(wǎng)技術(shù),它規(guī)定了物理層的連線、電子信號(hào)和 MAC 協(xié)議的內(nèi)容。
VLAN:虛擬局域網(wǎng)(VLAN)是一組邏輯上的設(shè)備和用戶,這些設(shè)備和用戶并不受物理位置的限制,可以根據(jù)功能、部門及應(yīng)用等因素將它們組織起來,相互之間的通信就好像它們?cè)谕粋€(gè)網(wǎng)段中一樣,所以稱為虛擬局域網(wǎng)。
基站:無線網(wǎng)絡(luò)的基礎(chǔ)設(shè)施。
奇偶校驗(yàn)位:一種進(jìn)行差錯(cuò)檢測(cè)的方式。
向前糾錯(cuò):接收方檢測(cè)和糾正差錯(cuò)的能力被稱為向前糾錯(cuò),也就是 FEC。
校驗(yàn)和:checksum,在數(shù)據(jù)處理和數(shù)據(jù)通信領(lǐng)域中,用于校驗(yàn)?zāi)康牡匾唤M數(shù)據(jù)項(xiàng)的和。
循環(huán)冗余檢測(cè):CRC ,一種現(xiàn)如今正在使用的差錯(cuò)檢測(cè)技術(shù),使用多項(xiàng)式來進(jìn)行差錯(cuò)檢測(cè)。
CSMA/CD:具有碰撞的載波偵聽多路訪問,CSMA/CD 會(huì)要求每個(gè)介質(zhì)提前檢查一下鏈路上是否有可能產(chǎn)生沖突的現(xiàn)象,一旦發(fā)生沖突,那么盡可能早地釋放信道。
共享介質(zhì)型網(wǎng)絡(luò):故名思義就是多個(gè)設(shè)備共同使用同一個(gè)通信介質(zhì)的網(wǎng)絡(luò)。
非共享介質(zhì)型網(wǎng)絡(luò):與共享介質(zhì)型網(wǎng)絡(luò)相對(duì),這種網(wǎng)絡(luò)不會(huì)使用相同的通信介質(zhì)。
令牌環(huán):一種共享介質(zhì)型網(wǎng)絡(luò)傳輸方式。
過濾:在鏈路層是決定一個(gè)幀應(yīng)該轉(zhuǎn)發(fā)到某個(gè)接口還是應(yīng)當(dāng)將其丟棄的交換機(jī)的一種功能。
轉(zhuǎn)發(fā):轉(zhuǎn)發(fā)決定一個(gè)幀應(yīng)該導(dǎo)向那個(gè)接口,并把幀移動(dòng)到那些接口的交換機(jī)的一種功能。
交換機(jī)表:交換機(jī)的過濾和轉(zhuǎn)發(fā)功能都依靠交換機(jī)表來完成。
MPLS:它是一種標(biāo)記交換技術(shù),標(biāo)記交換會(huì)對(duì)每個(gè) IP 數(shù)據(jù)包都設(shè)定一個(gè)標(biāo)記,然后根據(jù)這個(gè)標(biāo)記進(jìn)行轉(zhuǎn)發(fā)。
計(jì)算機(jī)網(wǎng)絡(luò)安全
計(jì)算機(jī)網(wǎng)絡(luò)安全是指在計(jì)算機(jī)網(wǎng)絡(luò)中保護(hù)信息系統(tǒng)和數(shù)據(jù)的完整性、可用性和保密性,以及預(yù)防未經(jīng)授權(quán)的訪問、使用、修改、破壞或泄漏信息的一系列技術(shù)和管理措施。
計(jì)算機(jī)網(wǎng)絡(luò)安全主要包括以下幾個(gè)方面:
認(rèn)證與訪問控制:認(rèn)證是指驗(yàn)證用戶身份是否合法,而訪問控制則是在認(rèn)證通過后限制用戶對(duì)系統(tǒng)資源的訪問權(quán)限。這些技術(shù)包括密碼學(xué)、生物識(shí)別等方法。
加密與解密:加密是將明文轉(zhuǎn)化為密文以保障信息傳輸過程中的機(jī)密性,解密則是將加密后的密文還原為明文。常見的加解密技術(shù)有對(duì)稱加密和非對(duì)稱加密。
防火墻與入侵檢測(cè):防火墻可以監(jiān)測(cè)并過濾進(jìn)出網(wǎng)絡(luò)的流量,并且限制不被信任源地址的訪問。而入侵檢測(cè)可以自動(dòng)監(jiān)測(cè)來自互聯(lián)網(wǎng)或內(nèi)部網(wǎng)絡(luò)的異常行為,并提供報(bào)警功能。
安全審計(jì)與日志分析:安全審計(jì)可以檢查所有操作員進(jìn)行了哪些操作,以及這些操作是否符合規(guī)定。而日志分析則是收集大量系統(tǒng)日志數(shù)據(jù)并利用數(shù)據(jù)挖掘算法發(fā)現(xiàn)可能的安全威脅。
惡意軟件防護(hù):惡意軟件包括病毒、木馬、間諜軟件等,它們可以在用戶不知情的情況下侵入計(jì)算機(jī)系統(tǒng)并危害信息安全。因此,必須采取防范措施,如殺毒軟件、反間諜軟件等。
全通信的四大要素:機(jī)密性、保溫完整性、端點(diǎn)鑒別和運(yùn)行安全性。
機(jī)密性:報(bào)文需要在一定程度上進(jìn)行加密,用來防止竊聽者截取報(bào)文。
報(bào)文完整性:在報(bào)文傳輸過程中,需要確保報(bào)文的內(nèi)容不會(huì)發(fā)生改變。
端點(diǎn)鑒別:發(fā)送方和接收方都應(yīng)該證實(shí)通信過程中所對(duì)方的身份。
運(yùn)行安全性:設(shè)施保護(hù)報(bào)文防止被攻擊的能力。
明文:沒有被加密過的內(nèi)容都被稱為明文。
加密算法:對(duì)原來明文的文件或數(shù)據(jù)按照某種算法進(jìn)行處理,這種算法就是加密算法。
密文:對(duì)明文進(jìn)行加密生成后的報(bào)文稱為密文。
解密算法:對(duì)密文進(jìn)行解密的算法。
密鑰:解密算法對(duì)密文進(jìn)行解密的工具叫做密鑰。
對(duì)稱加密:采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱為對(duì)稱加密,也稱為單密鑰加密。
塊密碼:塊密碼也叫做分組密碼,顧名思義,它把加密和解密序列分成了一個(gè)個(gè)分組,最后把每一塊序列合并到一起,形成明文或者密文。
流密碼:流密碼也叫做序列密碼,每次加密都通過密鑰生成一個(gè)密鑰流,解密也是使用同一個(gè)密鑰流,明文與同樣長度的密鑰流進(jìn)行異或運(yùn)算得到密文,密文與同樣的密鑰流進(jìn)行異或運(yùn)算得到明文。
公鑰:公鑰是與私鑰算法一起使用的密鑰對(duì)的非秘密一半。公鑰通常用于加密會(huì)話密鑰、驗(yàn)證數(shù)字簽名,或加密可以用相應(yīng)的私鑰解密的數(shù)據(jù)
私鑰:私鑰通常是公鑰的另一半,私鑰只有自己知道,可以用來加密或解密。
CA 認(rèn)證中心,CA 的職責(zé)就是使識(shí)別和發(fā)行證書合法化。
防火墻:一種軟硬件結(jié)合體,將機(jī)構(gòu)的內(nèi)部網(wǎng)絡(luò)和整個(gè)因特網(wǎng)隔離,允許一些分組通過,阻止一些分組通過。
防火墻一般分為三種:分組過濾器、狀態(tài)過濾器和應(yīng)用程序網(wǎng)關(guān)。
分組過濾器:機(jī)構(gòu)將內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)進(jìn)行隔離,所有離開和進(jìn)入內(nèi)部網(wǎng)絡(luò)的分組都會(huì)經(jīng)過這個(gè)路由器,這個(gè)路由器會(huì)檢查每個(gè)分組的信息。
狀態(tài)分組過濾器:根據(jù)分組中的 TCP 連接狀態(tài)進(jìn)行過濾。
應(yīng)用程序網(wǎng)關(guān):一個(gè)應(yīng)用程序網(wǎng)關(guān)是一個(gè)特定的應(yīng)用程序,所有應(yīng)用程序的數(shù)據(jù)都會(huì)經(jīng)過它。
入侵檢測(cè)系統(tǒng):觀察到潛在惡意流量時(shí)能夠產(chǎn)生警告的設(shè)備稱為入侵檢測(cè)系統(tǒng)
入侵防止系統(tǒng):過濾惡意流量的設(shè)備稱為入侵防止系統(tǒng)。
網(wǎng)絡(luò)核心
網(wǎng)絡(luò)核心(Network Core)是指計(jì)算機(jī)網(wǎng)絡(luò)中傳輸數(shù)據(jù)的主干部分,包括了各種設(shè)備和協(xié)議,如路由器、交換機(jī)、光纖等。網(wǎng)絡(luò)核心連接了不同地點(diǎn)的邊緣設(shè)備,使得整個(gè)網(wǎng)絡(luò)能夠快速可靠地傳輸數(shù)據(jù)。在計(jì)算機(jī)網(wǎng)絡(luò)中,數(shù)據(jù)通過邊緣設(shè)備(如電腦、手機(jī)等)進(jìn)入到網(wǎng)絡(luò)核心中進(jìn)行傳輸。在傳輸過程中,路由器和交換機(jī)等設(shè)備將數(shù)據(jù)從一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)到另一個(gè)節(jié)點(diǎn)。這些設(shè)備使用一系列協(xié)議來確保數(shù)據(jù)在傳輸過程中的正確性和可靠性,并防止數(shù)據(jù)丟失或被損壞。在實(shí)際應(yīng)用中,網(wǎng)絡(luò)核心扮演著非常重要的角色。它決定了整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)的速度、穩(wěn)定性以及安全性。因此,在設(shè)計(jì)和維護(hù)計(jì)算機(jī)網(wǎng)絡(luò)時(shí)需要注重對(duì)網(wǎng)絡(luò)核心的優(yōu)化和管理。
網(wǎng)絡(luò)的核心是由因特網(wǎng)端系統(tǒng)和鏈路構(gòu)成的網(wǎng)狀網(wǎng)絡(luò),下面這幅圖正確的表達(dá)了這一點(diǎn):
那么在不同的 ISP 和本地以及家庭網(wǎng)絡(luò)是如何交換信息的呢?信息交換主要分為兩種方式分組交換和電路交互,下面我們就來一起認(rèn)識(shí)一下。
分組交換
分組交換(Packet Switching)是一種在計(jì)算機(jī)網(wǎng)絡(luò)中傳輸數(shù)據(jù)的方式,它將數(shù)據(jù)分成若干個(gè)固定大小的數(shù)據(jù)包(packet),每個(gè)數(shù)據(jù)包攜帶有關(guān)該數(shù)據(jù)包發(fā)送和接收的信息,并獨(dú)立傳輸。這些數(shù)據(jù)包通過網(wǎng)絡(luò)核心按照不同路徑進(jìn)行轉(zhuǎn)發(fā),直到最終到達(dá)目的地。
在分組交換中,每個(gè)數(shù)據(jù)包都被標(biāo)記了其目標(biāo)地址和源地址,并通過路由器等設(shè)備轉(zhuǎn)發(fā)。當(dāng)一個(gè)路由器接收到一個(gè)數(shù)據(jù)包時(shí),它會(huì)查找目標(biāo)地址并確定應(yīng)該將該數(shù)據(jù)包傳遞給哪個(gè)下一個(gè)路由器。如果某個(gè)路由器擁塞或出現(xiàn)故障,則可以使用其他路徑來重新發(fā)送丟失的數(shù)據(jù)包。
與電路交換相比,分組交換具有更高效、更靈活、更適用于異構(gòu)網(wǎng)絡(luò)和資源共享等優(yōu)點(diǎn)。而互聯(lián)網(wǎng)也是基于分組交換技術(shù)建立起來的。
雖然分組交換已經(jīng)成為現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)通信的主要方式之一,但它仍存在著一些問題,如延遲、丟失和重復(fù)等。因此,在設(shè)計(jì)和實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)時(shí)需要考慮這些問題,并采取相應(yīng)的措施來解決它們。
存儲(chǔ)轉(zhuǎn)發(fā)傳輸
存儲(chǔ)轉(zhuǎn)發(fā)傳輸(Store and Forward Transmission)是一種數(shù)據(jù)傳輸方式,在該方式中,數(shù)據(jù)在發(fā)送前首先被存儲(chǔ),并在接收方接收到完整的數(shù)據(jù)包后才開始進(jìn)行處理。具體而言,發(fā)送方將數(shù)據(jù)分成若干個(gè)固定大小的數(shù)據(jù)包,每個(gè)數(shù)據(jù)包都會(huì)在發(fā)送前被緩存起來并等待確認(rèn)接收方已經(jīng)正確接收了前一個(gè)數(shù)據(jù)包后再發(fā)送下一個(gè)。
當(dāng)所有的數(shù)據(jù)包都被成功傳輸?shù)浇邮辗街?,接收方開始處理這些數(shù)據(jù)包。這種方式可以保證傳輸?shù)目煽啃?,因?yàn)槿绻硞€(gè)數(shù)據(jù)包丟失或損壞,則會(huì)重新請(qǐng)求發(fā)送該數(shù)據(jù)包。此外,由于采用了存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制,所以即使網(wǎng)絡(luò)中存在短暫的擁塞也不會(huì)影響整體傳輸速度和質(zhì)量。
存儲(chǔ)轉(zhuǎn)發(fā)傳輸廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)中各種協(xié)議和技術(shù)中,如電子郵件、文件傳輸協(xié)議(FTP)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)等。其中最典型的就是電子郵件系統(tǒng),在該系統(tǒng)中,郵件服務(wù)器會(huì)把用戶發(fā)送的郵件先緩存起來,并根據(jù)目標(biāo)地址把郵件轉(zhuǎn)發(fā)到相應(yīng)的目標(biāo)郵箱服務(wù)器上。
雖然存儲(chǔ)轉(zhuǎn)發(fā)傳輸提供了一定程度上的可靠性和穩(wěn)定性,但是它也會(huì)增加數(shù)據(jù)傳輸?shù)难舆t,因?yàn)槊總€(gè)數(shù)據(jù)包都需要被緩存起來并等待確認(rèn)后再進(jìn)行發(fā)送。
排隊(duì)時(shí)延和分組丟失
排隊(duì)時(shí)延和分組丟失是計(jì)算機(jī)網(wǎng)絡(luò)中兩個(gè)常見的問題。
排隊(duì)時(shí)延指在網(wǎng)絡(luò)傳輸過程中,由于路由器等設(shè)備的緩存區(qū)已滿,導(dǎo)致數(shù)據(jù)包需要等待一段時(shí)間才能被處理的現(xiàn)象。這種時(shí)延會(huì)影響到數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,對(duì)于一些要求實(shí)時(shí)響應(yīng)的應(yīng)用程序(如在線游戲、視頻會(huì)議等)而言,排隊(duì)時(shí)延可能會(huì)導(dǎo)致嚴(yán)重的質(zhì)量問題。
分組丟失則是指在網(wǎng)絡(luò)傳輸過程中,某個(gè)數(shù)據(jù)包由于各種原因沒有到達(dá)目標(biāo)地址,從而使得數(shù)據(jù)無法被完整地接收。分組丟失可能會(huì)導(dǎo)致數(shù)據(jù)損壞或者無法正常使用。例如,在文件傳輸過程中如果有一個(gè)數(shù)據(jù)包沒有到達(dá)就意味著整個(gè)文件無法被完整地恢復(fù)。
為了解決這些問題,計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)了許多協(xié)議和技術(shù)。例如,在處理排隊(duì)時(shí)延方面可以采用流量控制、擁塞控制等技術(shù)來限制網(wǎng)絡(luò)流量并保證網(wǎng)絡(luò)穩(wěn)定運(yùn)行;而在避免分組丟失方面,則可以采用錯(cuò)誤檢測(cè)和糾錯(cuò)碼等技術(shù)來確保數(shù)據(jù)正確傳輸。此外,在實(shí)際應(yīng)用場(chǎng)景中還可以結(jié)合其他優(yōu)化策略,如數(shù)據(jù)壓縮、負(fù)載均衡等技術(shù)來進(jìn)一步提高網(wǎng)絡(luò)性能和可靠性。
下圖說明了一個(gè)簡(jiǎn)單的分組交換網(wǎng)絡(luò):
在上圖中,分組由三位數(shù)據(jù)平板展示,平板的寬度表示著分組數(shù)據(jù)的大小。所有的分組都有相同的寬度,因此也就有相同的數(shù)據(jù)包大小。下面來一個(gè)情景模擬: 假定主機(jī) A 和 主機(jī) B 要向主機(jī) E 發(fā)送分組,主機(jī) A 和 B 首先通過100 Mbps以太網(wǎng)鏈路將其數(shù)據(jù)包發(fā)送到第一臺(tái)路由器,然后路由器將這些數(shù)據(jù)包定向到15 Mbps的鏈路。如果在較短的時(shí)間間隔內(nèi),數(shù)據(jù)包到達(dá)路由器的速率(轉(zhuǎn)換為每秒比特?cái)?shù))超過15 Mbps,則在數(shù)據(jù)包在鏈路輸出緩沖區(qū)中排隊(duì)之前,路由器上會(huì)發(fā)生擁塞,然后再傳輸?shù)芥溌飞?。例如,如果主機(jī) A 和主機(jī) B 背靠背同時(shí)發(fā)了5包數(shù)據(jù),那么這些數(shù)據(jù)包中的大多數(shù)將花費(fèi)一些時(shí)間在隊(duì)列中等待。實(shí)際上,這種情況與許多普通情況完全相似,例如,當(dāng)我們排隊(duì)等候銀行出納員或在收費(fèi)站前等候時(shí)。
轉(zhuǎn)發(fā)表和路由器選擇協(xié)議
轉(zhuǎn)發(fā)表和路由器選擇協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)中兩個(gè)重要的概念。
轉(zhuǎn)發(fā)表(Forwarding Table)是指存儲(chǔ)在路由器中的一張表格,用于將收到的數(shù)據(jù)包轉(zhuǎn)發(fā)到正確的目標(biāo)地址。該表格記錄了目標(biāo)地址與對(duì)應(yīng)下一跳地址之間的映射關(guān)系,當(dāng)一個(gè)數(shù)據(jù)包到達(dá)路由器時(shí),路由器會(huì)根據(jù)目標(biāo)地址在轉(zhuǎn)發(fā)表中查找對(duì)應(yīng)的下一跳地址,并將數(shù)據(jù)包發(fā)送給該地址。通過使用轉(zhuǎn)發(fā)表,路由器能夠快速而準(zhǔn)確地完成數(shù)據(jù)包轉(zhuǎn)發(fā)工作,提高網(wǎng)絡(luò)性能和可靠性。
路由器選擇協(xié)議(Routing Protocol)則是一種協(xié)議,用于實(shí)現(xiàn)不同路由器之間的通信和信息交換,以便共同構(gòu)建一個(gè)完整的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。常見的路由器選擇協(xié)議有RIP、OSPF、BGP等。這些協(xié)議采用不同的算法和策略來確定最佳路徑,并更新各自所維護(hù)的路由表。當(dāng)網(wǎng)絡(luò)出現(xiàn)故障或者新設(shè)備加入時(shí),這些協(xié)議會(huì)及時(shí)調(diào)整路由路徑以保證數(shù)據(jù)能夠正常傳輸。
總之,轉(zhuǎn)發(fā)表和路由器選擇協(xié)議都是計(jì)算機(jī)網(wǎng)絡(luò)中非常重要的概念。通過合理設(shè)計(jì)和使用這些技術(shù)手段,可以有效提高網(wǎng)絡(luò)的性能、可靠性和穩(wěn)定性。
電路交換
在計(jì)算機(jī)網(wǎng)絡(luò)中,另一種通過網(wǎng)絡(luò)鏈路和路由進(jìn)行數(shù)據(jù)傳輸?shù)牧硗庖环N方式就是 電路交換(circuit switching)。電路交換在資源預(yù)留上與分組交換不同,什么意思呢?就是分組交換不會(huì)預(yù)留每次端系統(tǒng)之間交互分組的緩存和鏈路傳輸速率,所以每次都會(huì)進(jìn)行排隊(duì)傳輸;而電路交換會(huì)預(yù)留這些信息。一個(gè)簡(jiǎn)單的例子幫助你理解:這就好比有兩家餐館,餐館 A 需要預(yù)定而餐館 B 不需要預(yù)定,對(duì)于可以預(yù)定的餐館 A,我們必須先提前與其進(jìn)行聯(lián)系,但是當(dāng)我們到達(dá)目的地時(shí),我們能夠立刻入座并選菜。而對(duì)于不需要預(yù)定的那家餐館來說,你可能不需要提前聯(lián)系,但是你必須承受到達(dá)目的地后需要排隊(duì)的風(fēng)險(xiǎn)。
下面顯示了一個(gè)電路交換網(wǎng)絡(luò):
在這個(gè)網(wǎng)絡(luò)中,4條鏈路用于4臺(tái)電路交換機(jī)。這些鏈路中的每一條都有4條電路,因此每條鏈路能支持4條并行的鏈接。每臺(tái)主機(jī)都與一臺(tái)交換機(jī)直接相連,當(dāng)兩臺(tái)主機(jī)需要通信時(shí),該網(wǎng)絡(luò)在兩臺(tái)主機(jī)之間創(chuàng)建一條專用的 端到端的鏈接(end-to-end connection)。
分組交換和電路交換的對(duì)比
分組交換的支持者經(jīng)常說分組交換不適合實(shí)時(shí)服務(wù),因?yàn)樗亩说蕉藭r(shí)延時(shí)不可預(yù)測(cè)的。而分組交換的支持者卻認(rèn)為分組交換提供了比電路交換更好的帶寬共享;它比電路交換更加簡(jiǎn)單、更有效,實(shí)現(xiàn)成本更低。但是現(xiàn)在的趨勢(shì)更多的是朝著分組交換的方向發(fā)展。
分組交換網(wǎng)的時(shí)延、丟包和吞吐量
因特網(wǎng)可以看成是一種基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施為運(yùn)行在端系統(tǒng)上的分布式應(yīng)用提供服務(wù)。我們希望在計(jì)算機(jī)網(wǎng)絡(luò)中任意兩個(gè)端系統(tǒng)之間傳遞數(shù)據(jù)都不會(huì)造成數(shù)據(jù)丟失,然而這是一個(gè)極高的目標(biāo),實(shí)踐中難以達(dá)到。所以,在實(shí)踐中必須要限制端系統(tǒng)之間的 吞吐量 用來控制數(shù)據(jù)丟失。如果在端系統(tǒng)之間引入時(shí)延,也不能保證不會(huì)丟失分組問題。所以我們從時(shí)延、丟包和吞吐量三個(gè)層面來看一下計(jì)算機(jī)網(wǎng)絡(luò)
分組交換中的時(shí)延
計(jì)算機(jī)網(wǎng)絡(luò)中的分組從一臺(tái)主機(jī)(源)出發(fā),經(jīng)過一系列路由器傳輸,在另一個(gè)端系統(tǒng)中結(jié)束它的歷程。在這整個(gè)傳輸歷程中,分組會(huì)涉及到四種最主要的時(shí)延:節(jié)點(diǎn)處理時(shí)延(nodal processing delay)、排隊(duì)時(shí)延(queuing delay)、傳輸時(shí)延(total nodal delay)和傳播時(shí)延(propagation delay)。這四種時(shí)延加起來就是 節(jié)點(diǎn)總時(shí)延(total nodal delay)。
如果用 dproc dqueue dtrans dpop 分別表示處理時(shí)延、排隊(duì)時(shí)延、傳輸時(shí)延和傳播時(shí)延,則節(jié)點(diǎn)的總時(shí)延由以下公式?jīng)Q定: dnodal = dproc dqueue dtrans dpop。
時(shí)延的類型
下面是一副典型的時(shí)延分布圖,讓我們從圖中進(jìn)行分析一下不同的時(shí)延類型:
分組由端系統(tǒng)經(jīng)過通信鏈路傳輸?shù)铰酚善?A,路由器A 檢查分組頭部以映射出適當(dāng)?shù)膫鬏旀溌?,并將分組送入該鏈路。僅當(dāng)該鏈路沒有其他分組正在傳輸并且沒有其他分組排在該該分組前面時(shí),才能在這條鏈路上自由的傳輸該分組。如果該鏈路當(dāng)前繁忙或者已經(jīng)有其他分組排在該分組前面時(shí),新到達(dá)的分組將會(huì)加入排隊(duì)。下面我們分開討論一下這四種時(shí)延
節(jié)點(diǎn)處理時(shí)延
節(jié)點(diǎn)處理時(shí)延分為兩部分,第一部分是路由器會(huì)檢查分組的首部信息;第二部分是決定將分組傳輸?shù)侥臈l通信鏈路所需要的時(shí)間。一般高速網(wǎng)絡(luò)的節(jié)點(diǎn)處理時(shí)延都在微妙級(jí)和更低的數(shù)量級(jí)。在這種處理時(shí)延完成后,分組會(huì)發(fā)往路由器的轉(zhuǎn)發(fā)隊(duì)列中
排隊(duì)時(shí)延
在隊(duì)列排隊(duì)轉(zhuǎn)發(fā)過程中,分組需要在隊(duì)列中等待發(fā)送,分組在等待發(fā)送過程中消耗的時(shí)間被稱為排隊(duì)時(shí)延。排隊(duì)時(shí)延的長短取決于先于該分組到達(dá)正在隊(duì)列中排隊(duì)的分組數(shù)量。如果該隊(duì)列是空的,并且當(dāng)前沒有正在傳輸?shù)姆纸M,那么該分組的排隊(duì)時(shí)延就是 0。如果處于網(wǎng)絡(luò)高發(fā)時(shí)段,那么鏈路中傳輸?shù)姆纸M比較多,那么分組的排隊(duì)時(shí)延將延長。實(shí)際的排隊(duì)時(shí)延也可以到達(dá)微秒級(jí)。
傳輸時(shí)延
隊(duì)列 是路由器所用的主要的數(shù)據(jù)結(jié)構(gòu)。隊(duì)列的特征就是先進(jìn)先出,先到達(dá)食堂的先打飯。傳輸時(shí)延是理論情況下單位時(shí)間內(nèi)的傳輸比特所消耗的時(shí)間。比如分組的長度是 L 比特,R 表示從路由器 A 到路由器 B 的傳輸速率。那么傳輸時(shí)延就是 L / R 。這是將所有分組推向該鏈路所需要的時(shí)間。正是情況下傳輸時(shí)延通常也在毫秒到微妙級(jí)
傳播時(shí)延
從鏈路的起點(diǎn)到路由器 B 傳播所需要的時(shí)間就是 傳播時(shí)延。該比特以該鏈路的傳播速率傳播。該傳播速率取決于鏈路的物理介質(zhì)(雙絞線、同軸電纜、光纖)。如果用公式來計(jì)算一下的話,該傳播時(shí)延等于兩臺(tái)路由器之間的距離 / 傳播速率。即傳播速率是 d/s ,其中 d 是路由器 A 和 路由器 B 之間的距離,s 是該鏈路的傳播速率。
傳輸時(shí)延和傳播時(shí)延的比較
計(jì)算機(jī)網(wǎng)絡(luò)中的傳輸時(shí)延和傳播時(shí)延有時(shí)候難以區(qū)分,在這里解釋一下,傳輸時(shí)延是路由器推出分組所需要的時(shí)間,它是分組長度和鏈路傳輸速率的函數(shù),而與兩臺(tái)路由器之間的距離無關(guān)。而傳播時(shí)延是一個(gè)比特從一臺(tái)路由器傳播到另一臺(tái)路由器所需要的時(shí)間,它是兩臺(tái)路由器之間距離的倒數(shù),而與分組長度和鏈路傳輸速率無關(guān)。從公式也可以看出來,傳輸時(shí)延是 L/R,也就是分組的長度 / 路由器之間傳輸速率。傳播時(shí)延的公式是 d/s,也就是路由器之間的距離 / 傳播速率。
排隊(duì)時(shí)延
在這四種時(shí)延中,人們最感興趣的時(shí)延或許就是排隊(duì)時(shí)延了 dqueue。與其他三種時(shí)延(dproc、dtrans、dpop)不同的是,排隊(duì)時(shí)延對(duì)不同的分組可能是不同的。例如,如果10個(gè)分組同時(shí)到達(dá)某個(gè)隊(duì)列,第一個(gè)到達(dá)隊(duì)列的分組沒有排隊(duì)時(shí)延,而最后到達(dá)的分組卻要經(jīng)受最大的排隊(duì)時(shí)延(需要等待其他九個(gè)時(shí)延被傳輸)。
那么如何表征排隊(duì)時(shí)延呢?或許可以從三個(gè)方面來考慮:流量到達(dá)隊(duì)列的速率、鏈路的傳輸速率和到達(dá)流量的性質(zhì)。即流量是周期性到達(dá)還是突發(fā)性到達(dá),如果用 a 表示分組到達(dá)隊(duì)列的平均速率( a 的單位是分組/秒,即 pkt/s)前面說過 R 表示的是傳輸速率,所以能夠從隊(duì)列中推出比特的速率(以 bps 即 b/s 位單位)。假設(shè)所有的分組都是由 L 比特組成的,那么比特到達(dá)隊(duì)列的平均速率是 La bps。那么比率 La/R 被稱為流量強(qiáng)度(traffic intensity),如果 La/R > 1,則比特到達(dá)隊(duì)列的平均速率超過從隊(duì)列傳輸出去的速率,這種情況下隊(duì)列趨向于無限增加。所以,設(shè)計(jì)系統(tǒng)時(shí)流量強(qiáng)度不能大于1。
現(xiàn)在考慮 La / R <= 1 時(shí)的情況。流量到達(dá)的性質(zhì)將影響排隊(duì)時(shí)延。如果流量是周期性到達(dá)的,即每 L / R 秒到達(dá)一個(gè)分組,則每個(gè)分組將到達(dá)一個(gè)空隊(duì)列中,不會(huì)有排隊(duì)時(shí)延。如果流量是 突發(fā)性 到達(dá)的,則可能會(huì)有很大的平均排隊(duì)時(shí)延。一般可以用下面這幅圖表示平均排隊(duì)時(shí)延與流量強(qiáng)度的關(guān)系
丟包
我們?cè)谏鲜龅挠懻撨^程中描繪了一個(gè)公式那就是 La/R 不能大于1,如果 La/R 大于1,那么到達(dá)的排隊(duì)將會(huì)無窮大,而且路由器中的排隊(duì)隊(duì)列所容納的分組是有限的,所以等到路由器隊(duì)列堆滿后,新到達(dá)的分組就無法被容納,導(dǎo)致路由器 丟棄(drop) 該分組,即分組會(huì) 丟失(lost)。
計(jì)算機(jī)網(wǎng)絡(luò)中的吞吐量
計(jì)算機(jī)網(wǎng)絡(luò)中的吞吐量(Throughput)是指在一定時(shí)間內(nèi)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。它通常用比特每秒(bits per second,bps)或字節(jié)每秒(bytes per second,Bps)來表示。
在網(wǎng)絡(luò)中,數(shù)據(jù)包需要經(jīng)過多個(gè)節(jié)點(diǎn)才能到達(dá)目標(biāo)主機(jī)。因此,吞吐量不僅受限于發(fā)送端和接收端的帶寬限制,還受到路由器、交換機(jī)等設(shè)備的轉(zhuǎn)發(fā)速度、網(wǎng)絡(luò)擁塞程度等因素影響。如果其中某個(gè)節(jié)點(diǎn)處理速度較慢或者出現(xiàn)擁塞,則會(huì)降低整個(gè)網(wǎng)絡(luò)的吞吐量。
為了提高網(wǎng)絡(luò)吞吐量,可以采取以下措施:
增加帶寬:增加發(fā)送端和接收端之間的帶寬可以提高單次傳輸數(shù)據(jù)量。
優(yōu)化路由器配置:調(diào)整路由器緩存大小、隊(duì)列長度等參數(shù)可以減少擁塞情況,并提高傳輸效率。
使用負(fù)載均衡技術(shù):將流量分散到多條路徑上進(jìn)行傳輸,從而提高總體傳輸速度和可靠性。
使用壓縮技術(shù):對(duì)數(shù)據(jù)進(jìn)行壓縮處理可以減小數(shù)據(jù)包大小,在保證數(shù)據(jù)正確性的前提下提高傳輸速度。
協(xié)議層次以及服務(wù)模型
協(xié)議層次是指計(jì)算機(jī)網(wǎng)絡(luò)中不同協(xié)議的分層結(jié)構(gòu),每一層都有特定的功能和服務(wù)模型。常見的協(xié)議層次體系包括TCP/IP協(xié)議族和OSI模型。
TCP/IP協(xié)議族包含以下四個(gè)層次:
應(yīng)用層:提供應(yīng)用程序間通信的服務(wù),如HTTP、FTP等。
傳輸層:提供端到端數(shù)據(jù)傳輸?shù)姆?wù),如TCP、UDP等。
網(wǎng)絡(luò)層:提供IP地址和路由選擇等服務(wù),如IP、ICMP等。
數(shù)據(jù)鏈路層:負(fù)責(zé)物理介質(zhì)上數(shù)據(jù)幀的傳輸和錯(cuò)誤檢測(cè)與糾正等服務(wù),如Ethernet、PPP等。
OSI模型包含以下七個(gè)層次:
應(yīng)用層:提供應(yīng)用程序間通信的服務(wù),如SMTP、SNMP等。
表示層:處理數(shù)據(jù)格式轉(zhuǎn)換和加密解密等操作,如JPEG、MPEG等。
會(huì)話層:建立和維護(hù)會(huì)話連接,如RPC、SQL等。
傳輸層:提供端到端數(shù)據(jù)傳輸?shù)姆?wù),如TCP、UDP等。
網(wǎng)絡(luò)層:提供IP地址和路由選擇等服務(wù),如IPX、CLNP等。
數(shù)據(jù)鏈路層:負(fù)責(zé)物理介質(zhì)上數(shù)據(jù)幀的傳輸和錯(cuò)誤檢測(cè)與糾正等服務(wù),如FDDI、ATM等。
物理層:提供物理介質(zhì)傳輸和信號(hào)調(diào)制等服務(wù),如電纜、光纖等。
服務(wù)模型是指每一層的功能和所提供的服務(wù)。通常分為面向連接和無連接兩種模式。面向連接模式要求在數(shù)據(jù)傳輸前建立連接并進(jìn)行握手,確保數(shù)據(jù)的可靠性和完整性,如TCP協(xié)議。無連接模式則不需要建立連接,直接發(fā)送數(shù)據(jù)包,速度較快但可靠性低,如UDP協(xié)議。
五層網(wǎng)絡(luò)協(xié)議的示意圖如下:
從圖中可以一眼看出,OSI 要比上面的網(wǎng)絡(luò)模型多了表示層和會(huì)話層,其他層基本一致。表示層主要包括數(shù)據(jù)壓縮和數(shù)據(jù)加密以及數(shù)據(jù)描述,數(shù)據(jù)描述使得應(yīng)用程序不必?fù)?dān)心計(jì)算機(jī)內(nèi)部存儲(chǔ)格式的問題,而會(huì)話層提供了數(shù)據(jù)交換的定界和同步功能,包括建立檢查點(diǎn)和恢復(fù)方案。
網(wǎng)絡(luò)攻擊
在計(jì)算機(jī)高速發(fā)展的 21世紀(jì),我們已經(jīng)越來越離不開計(jì)算機(jī)網(wǎng)絡(luò),計(jì)算機(jī)網(wǎng)絡(luò)在為我們帶來諸多便利的同時(shí),我們也會(huì)遭受一些網(wǎng)絡(luò)攻擊,下面我們就一起來認(rèn)識(shí)一下網(wǎng)絡(luò)中的攻擊有哪些
植入有害程序
因?yàn)槲覀円獜囊蛱鼐W(wǎng)接收/發(fā)送 數(shù)據(jù),所以我們將設(shè)備與因特網(wǎng)相連,我們可以使用各種互聯(lián)網(wǎng)應(yīng)用例如微信、微博、上網(wǎng)瀏覽網(wǎng)頁、流式音樂、多媒體會(huì)議等,網(wǎng)絡(luò)攻擊很可能在這時(shí)不知不覺的發(fā)生,通過在這些軟件中植入有害程序來入侵我們的計(jì)算機(jī),包括刪除我們的文件,進(jìn)行活動(dòng)監(jiān)視,侵犯隱私等。我們的受害主機(jī)也可能成為眾多類似受害設(shè)備網(wǎng)絡(luò)中的一員,它們被統(tǒng)稱為 僵尸網(wǎng)絡(luò)(botnet),這些攻擊者會(huì)利用僵尸網(wǎng)絡(luò)控制并有效的對(duì)目標(biāo)主機(jī)開展垃圾郵件分發(fā)和分布式拒絕服務(wù)攻擊
大多數(shù)有害程序都具有自我復(fù)制(self-replicating)的功能,傳播性非常強(qiáng),一旦它感染了一臺(tái)主機(jī),就會(huì)從這臺(tái)感染的主機(jī)上尋找進(jìn)入因特網(wǎng)的其他主機(jī),從而感染新的主機(jī)。有害應(yīng)用程序主要分為兩種:病毒(virus) 和 蠕蟲(worm),病毒是一種需要某種形式的用戶交互來感染用戶的計(jì)算機(jī),比如包含了病毒的電子郵件附件。如果用戶接收并打開感染病毒的電子郵件的話,就會(huì)以某種方式破壞你的計(jì)算機(jī);而蠕蟲是一種不需要用戶交互就能進(jìn)入計(jì)算機(jī)的惡意軟件,比如你運(yùn)行了一個(gè)攻擊者想要攻擊的應(yīng)用程序,某些情況下不需要用戶干預(yù),應(yīng)用程序就可能通過互聯(lián)網(wǎng)接收惡意軟件并運(yùn)行,從而生成蠕蟲,然后再進(jìn)行擴(kuò)散。
攻擊服務(wù)器和網(wǎng)絡(luò)基礎(chǔ)設(shè)施
另一種影響較大的網(wǎng)絡(luò)攻擊稱為拒絕服務(wù)攻擊(Denial-of-Service Dos),這種網(wǎng)絡(luò)攻擊使得網(wǎng)絡(luò)、主機(jī)、服務(wù)器、基礎(chǔ)網(wǎng)絡(luò)設(shè)施不能常規(guī)使用。Web 服務(wù)器、電子郵件服務(wù)器、DNS 服務(wù)器都能成為 Dos 的攻擊目標(biāo)。大多數(shù)因特網(wǎng) Dos 攻擊分為以下三類
弱點(diǎn)攻擊。這涉及向一臺(tái)目標(biāo)主機(jī)上運(yùn)行的易受攻擊的應(yīng)用程序或操作系統(tǒng)發(fā)送制作精細(xì)的報(bào)文,如果適當(dāng)順序的多個(gè)分組發(fā)送給一個(gè)易受攻擊的應(yīng)用程序或操作系統(tǒng),該服務(wù)器可能停止運(yùn)行。
帶寬洪泛。攻擊者通過網(wǎng)絡(luò)向主機(jī)或服務(wù)器發(fā)送大量的分組,分組數(shù)量太多使得目標(biāo)接入鏈路變得擁塞,使得合法分組無法到達(dá)服務(wù)器。
連接洪泛。和上面的帶寬洪范攻擊性質(zhì)相似,只不過這次換成了通過創(chuàng)建大量的 TCP 連接進(jìn)行攻擊。因?yàn)?TCP 連接數(shù)量太多導(dǎo)致有效的 TCP 連接無法到達(dá)服務(wù)器。
互聯(lián)網(wǎng)中攻擊最多的就屬于帶寬洪泛攻擊了,可以回顧一下我們上面討論的時(shí)延和丟包問題,如果某服務(wù)器的接入速率為 R bps,那么攻擊者則需要向服務(wù)器發(fā)送大于 R bps 的速率來產(chǎn)生危害。如果 R 非常大的話,單一攻擊源可能無法產(chǎn)生足夠大的流量來傷害服務(wù)器,所以還需要產(chǎn)生多個(gè)數(shù)據(jù)源,這就是屢見不鮮的 分布式Dos(Distributed Dos,DDos) 。
攻擊者通過控制多個(gè)數(shù)據(jù)源并讓每個(gè)數(shù)據(jù)源發(fā)送大量的分組來致使服務(wù)器癱瘓。如下圖所示
嗅探分組
今天許多用戶通過無線設(shè)備接入因特網(wǎng)。例如 WiFi 連接的計(jì)算機(jī)或者使用蜂窩因特網(wǎng)連接的手持設(shè)備。在帶來便利的同時(shí)也會(huì)成為易受攻擊的目標(biāo)。在無線傳輸設(shè)備的附近放置一臺(tái)被動(dòng)的接收機(jī),該接收機(jī)就能夠得到傳輸?shù)拿總€(gè)分組的副本!這些分組中包含了各種敏感信息,例如口令、密碼等,記錄每個(gè)流經(jīng)分組副本的接收機(jī)被稱為分組嗅探器(packet sniffer)。分組嗅探也能夠應(yīng)用于有線環(huán)境中,可以用 Wireshark 實(shí)驗(yàn)來進(jìn)行模擬
IP 偽裝
生成具有任意源地址、分組內(nèi)容和目的地址的分組,然后將這個(gè)分組傳輸?shù)交ヂ?lián)網(wǎng)中。這種將虛假源地址的分組注入因特網(wǎng)的能力被稱為 IP 哄騙(IP spoofing)。為了解決這個(gè)問題,我們需要采用 端點(diǎn)鑒別,它是一種使我們能夠確信真正源目的地的機(jī)制。我們后面會(huì)再探討這些機(jī)制。