第五章 網絡 之 計算機網絡

文章目錄


文都考研——計算機網絡強化班

計算機體系結構

計算機網絡體系結構:計算機網絡各層次與協議的集合
(1)層次:每個層次的功能是明確的,獨立的,對等的。
(2)協議:爲數據交換而制定的規則,約定,標準。包含:

  • 語義:解釋比特流每一部分的意義。
  • 語法:用戶數據與控制信息的結構與格式,以及數據出現的順序的意義。
  • 時序:事件實現順序的詳細說明。

計算機網絡概念、組成與功能

  • 概念
    計算機網絡就是利用通信設備和線路將地理位置不同、功能獨立的多個計算機系統互連起來,以功能完善的網絡軟件(即網絡通信協議、信息交換方式、網絡操作系統等)實現網絡中資源共享和信息傳遞的系統。
  • 組成
    資源子網:負責數據處理的主計算機與終端,由主機終端負責。
    通信子網:負責數據通信處理的通信處理機與通信線路,由路由器,交換機負責。

計算機網絡分層結構(各層功能)

在這裏插入圖片描述

ISO/OSI 7層模型(權威)

  • 物理層
    利用傳輸介質爲通信的網絡結點之間建立、管理和釋放物理連接;實現比特流的透明傳輸,位數據鏈路層提供數據傳輸服務;物理層的數據傳輸單元是比特。
  • 數據鏈路層
    在物理層提供的服務基礎上,數據鏈路層在通信實體間簡歷數據鏈路連接;傳輸以"幀"爲單位的數據包;採用差錯控制與流量控制方法,使有差錯的物理線路編程無差錯的數據鏈路。
  • 網絡層
    通過路由選擇算法爲分組通過通信子網選擇最適當的路徑;爲數據在結點之間傳輸創建邏輯鏈路。
  • 傳輸層(承上(資源子網)啓下(通信子網))
    向用戶提供可靠端到端(end to end)通信;處理數據包錯誤、數據包次序以及其他一些關鍵傳輸問題;屏蔽了下層數據通信的細節,是計算機通信體系結構中關鍵的一層。
  • 會話層
    建立及管理會話(數據交換)。負責維護兩個結點之間的傳輸鏈接,以便確保點到點傳輸不終端。
  • 表示層
    用於處理在兩個通信系統中交換信息的表示方式,包括數據壓縮、加密以及數據描述,這使得應用程序不必關心在各臺主機中數據內部格式不同的問題。
  • 應用層
    爲應用程序提供了網絡服務;應用層需要識別並保證通信對方的可用性,使得協同工作的應用程序之間的同步。建立傳輸錯誤糾正與保證數據完整性的控制機制。
    在這裏插入圖片描述

TCP/IP 4層模型(實用)

TCP/IP協議獨立於特定的計算機硬件與操作系統,屏蔽網絡層以下的傳輸。擁有統一的網絡地址分配方案,使整個TCP/IP設備在網絡中都有唯一的地址。

  • 網絡接口層:負責通過網絡發送和接收IP數據報
  • 網絡層:IP協議是無連接的,提供"盡力而爲"服務的網絡層協議
  • 傳輸層:在互聯網中源主機與目的主機的對等實體間建立用於會話的端-端鏈接。包括TCP、UDP
  • 應用層:包括Telnet、FTP、SMTP、P0P3、IMAP、DNS、HTTP等
    在這裏插入圖片描述
    在這裏插入圖片描述

5層模型(折中)

包含:物理層、數據鏈路層、網絡層、傳輸層、應用層

一. 物理層

二. 數據鏈路層

基本功能

封裝成幀

將網絡層傳下來的分組添加首部和尾部,用於標記幀的開始和結束。
在這裏插入圖片描述

透明傳輸

透明表示一個實際存在的事物看起來好像不存在一樣。
幀使用首部和尾部進行定界,如果幀的數據部分含有和首部尾部相同的內容,那麼幀的開始和結束位置就會被錯誤的判定。需要在數據部分出現首部尾部相同的內容前面插入轉義字符。如果數據部分出現轉義字符,那麼就在轉義字符前面再加個轉義字符。在接收端進行處理之後可以還原出原始數據。這個過程透明傳輸的內容是轉義字符,用戶察覺不到轉義字符的存在。
在這裏插入圖片描述

差錯檢測

目前數據鏈路層廣泛使用了循環冗餘檢驗(CRC)來檢查比特差錯。

相關概念

局域網

局域網是一種典型的廣播信道,主要特點是網絡爲一個單位所擁有,且地理範圍和站點數目均有限。

廣播信道:一對多通信,一個結點發送數據能夠被廣播信道上所有結點接收到。所有的節點都在同一個廣播信道上發送數據,因此需要有專門的控制方法進行協調,避免發生衝突(衝突也叫碰撞)。主要有兩種控制方法進行協調,一個是使用信道複用技術,一是使用 CSMA/CD 協議。

主要有以太網、令牌環網、FDDI 和 ATM 等局域網技術,目前以太網佔領着有線局域網市場。
可以按照網絡拓撲結構對局域網進行分類:
在這裏插入圖片描述

以太網

以太網是一種星型拓撲結構局域網。
早期使用集線器進行連接,目前以太網使用交換機替代了集線器,交換機是一種鏈路層設備,它不會發生碰撞,能根據 MAC 地址進行存儲轉發。
以太網/MAC幀格式:
類型 :標記上層使用的協議;
數據 :長度在 46-1500 之間,如果太小則需要填充;
FCS :幀檢驗序列,使用的是 CRC 檢驗方法;
在這裏插入圖片描述

MAC地址

MAC 地址又稱物理/硬件地址,是鏈路層地址,長度爲 6 字節(48 位),用於唯一標識網絡適配器(網卡)。
MAC地址前三字節(高位24位)由IEEE的註冊管理機構RA負責向廠家分配。
MAC地址後三字節(地位24位)由廠家自行指派,稱爲擴展標識符,必須保證生產出的網絡適配器沒有重複地址。

交換機

交換機又稱交換式集線器,實質上是一個多接口網橋,工作在數據鏈路層。根據MAC幀的目的地址對收到的幀進行轉發。實現數據鏈路層上局域網的互連。(互連不同數據鏈路層協議、不同傳輸介質與不同傳輸速率的網絡)
交換機具有自學習能力,學習的是交換表的內容,交換表中存儲着 MAC 地址到接口的映射。
正是由於這種自學習能力,因此交換機是一種即插即用設備,不需要網絡管理員手動配置交換表內容。
下圖中,交換機有 4 個接口,主機 A 向主機 B 發送數據幀時,交換機把主機 A 到接口 1 的映射寫入交換表中。爲了發送數據幀到 B,先查交換表,此時沒有主機 B 的表項,那麼主機 A 就發送廣播幀,主機 C 和主機 D 會丟棄該幀,主機 B 迴應該幀向主機 A 發送數據包時,交換機查找交換表得到主機 A 映射的接口爲 1,就發送數據幀到接口 1,同時交換機添加主機 B 到接口 2 的映射。
在這裏插入圖片描述

三. 網絡層

網絡層主要任務:

  • 通過路由選擇算法,爲分組通過通信子網選擇最適當的路徑;
  • 網絡層使用數據鏈路層的服務,實現路由選擇、擁塞控制與網絡互連等基本功能,向傳輸層的端到端傳輸連接提供服務。

異構網絡互聯(互聯網)

互聯網是使用IP協議,通過路由器(網關)將各種物理網絡互連起來的虛擬互連網絡。
互連起來的各種物理網絡的異構性是客觀存在的,利用IP協議可以使這些性能各異的網絡從用戶看起來好像是一個統一的網絡(屏蔽物理網絡的異構性)。
從網絡層看IP數據報:

  • 網絡地址不變(源IP地址、目的IP地址)
  • 鏈路層地址變化(源MAC地址、目的MAC地址)
    在這裏插入圖片描述
    在這裏插入圖片描述

路由選擇 & 分組轉發

  • 分組轉發
    轉發就是路由器根據路由/轉發表將用戶的IP數據報從合適的端口轉發出去。
  • 路由選擇
    按照分佈式算法根據從各相鄰的路由器得到關於網絡拓撲的變化情況,動態地改變所選擇地路由。路由表是根據李由選擇算法得出地。

路由表

爲什麼不用目的主機號製作路由表 / 爲什麼不直接用MAC地址/尋址?

(1)根據目的主機的MAC地址製作路由表,使得路由表過於龐大。
(2)由於物理網絡的異構性使不同鏈路主機的地址不統一,需要轉化。

有四個A類網絡通過三個路由器連接在一起。每一個網絡上都可能有成千上萬個主機。可以想象,若按目的主機號來製作路由表,則所得出路由表就會過於龐大。但若按主機所在網絡地址來製作路由表,那麼每一個路由器中的路由表就只包含4個項目。可以使路由表簡化。

內部結構 / 工作原理

在這裏插入圖片描述
在路由表中,對每一條路由,包含(目的網絡地址,下一跳地址)

路由表項主要字段:目的網絡、子網掩碼、下一跳路由、經由接口

根據目的網絡地址就能確定下一跳路由器,因此IP數據報最終一定可以找到目的主機所在目的網絡上的路由器(可能經過多次間接交付)。只有到達最後一個路由器時,才試圖向目的主機進行直接交付。
注:
IP數據報首部中沒有地方用來指明"下一跳路由器的IP地址"
當路由器收到待轉發的數據報,不是將下一跳路由器的IP地址填入IP數據報,而是送交下層的網絡接口軟件。網絡接口軟件使用ARP負責將下一跳路由器的IP地址轉換成硬件地址,並將此硬件地址放在鏈路層MAC幀首部,然後根據這個硬件地址找到下一跳路由器。
因此IP數據報在網絡層IP(邏輯)地址不變,MAC(物理)地址不斷變化。

分組轉發算法

(1)從數據報的首部提取目的主機的IP地址D,得出目的網絡地址爲N;
(2)若網絡N與此路由器直接相連,則把數據報直接交付目的主機D;否則是間接交付,執行(3);
(3)若路由表中有目的地址爲D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則執行(4);
(4)若路由表中有到大網絡N的路由,則把數據報傳送給路由表指明的下一跳路由器;否則,執行(5);
(5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由;否則,執行(6);
默認路由:若匹配路由表中其他項都不匹配,則走默認路由指明的路由。
(6)報告轉發分組出錯。
若路由表項皆不匹配且無默認路由,主機發出錯的ICMP包。
在這裏插入圖片描述

IPv4 & IPv6

IP數據報格式

在這裏插入圖片描述
一個IP數據報由首部和數據兩部分組成。首部的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。在首部的固定部分的後面是一些可選字段,其長度是可變的。

  • IP數據報的分片與重組
    IP數據報作爲網絡層數據必然要通過幀來傳輸。一個數據報可能要通過多個不同的物理網絡。每一個路由器都要將接收到的幀進行拆包和處理,然後封裝成另外一個幀。每一種物理網絡都規定了各自幀的數據域最大字節長度的最大傳輸單元。其中幀的格式與長度取決於物理網絡所採用的協議。
    分片、重組的基本方法——標識、標誌和片偏移
    在IP數據報的報頭,與一個數據報的分片、組裝相關的域有標識域、標誌域和片偏移域

IP地址編址方式

  • IPv4地址
    TCP/IP協議的網絡層使用的地址標識符叫做IP地址。IPv4中IP地址是一個32位的二進制地址,採用點分十進制。網絡中的每一個主機或路由器至少有一個IP地址(連接到多個物理網絡時,可以用有多個處於不同網絡的IP地址)。在Internet中每個設備的IP地址全網唯一。
  • 編址方式

第一階段 1981:分類IP地址(2級結構)

由兩部分組成,網絡號和主機號,其中不同分類具有不同的網絡號長度,並且是固定的。
IP 地址 ::= {< 網絡號 >, < 主機號 >}
在這裏插入圖片描述

類別 地址範圍 使用
A類 0.0.0.0到127.255.255.255
B類 128.0.0.0到191.255.255.255
C類 192.0.0.0到223.255.255.255
D類 224.0.0.0到239.255.255.255 多用於組播,它並不指向特定的網絡,多點廣播地址用來一次尋址一組計算機,它標識共享同一協議的一組計算機(如直播)
E類 240.0.0.0到247.255.255.255 保留爲今後使用

(1)IP地址是一種分等級的地址結構。好處在於:網絡號由IP地址管理機構在分配IP地址時分配;主機號由得到該網絡號的單位自行分配。且路由器僅根據目的主機所連接的網絡號轉發分組,減少路由表表項。
(2)IP地址標誌一個主機(或路由器)和一條鏈路的接口。一個路由器應當連接到兩個或多個網絡上(將IP數據報從一個網絡轉發到另一個網絡),因此一個路由器的每個接口都有一個不同網絡號的IP地址。
(3)用轉發器或網橋(鏈路層)連接起來的若干局域網仍爲一個網絡,因此這些局域網都具有相同的網絡號。
(4)同一局域網上主機域路由器IP地址網絡號必須相同(才能通過路由器轉發數據 => 上網)

第二階段 1985:子網劃分(3級結構)

通過在主機號字段中拿一部分作爲子網號,把兩級 IP 地址劃分爲三級 IP 地址。使一個大的網絡(如A、B類網絡劃分成幾個較小的網絡)
注意,外部網絡看不到子網的存在(劃分子網屬於單位內部的事 => 單位內部對分類得到地址()進一步進行劃分)
IP 地址 ::= {< 網絡號 >, < 子網號 >, < 主機號 >}
在這裏插入圖片描述

  • 子網掩碼
    要使用子網,必須配置子網掩碼。一個 B 類地址的默認子網掩碼爲 255.255.0.0,如果 B 類地址的子網佔兩個比特,那麼子網掩碼爲 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
    在這裏插入圖片描述
    網絡地址 = (IP地址) AND (子網地址)
    劃分子網的基本思路:根據子網中主機的個數最大值(保證爲子網中所有主機分配IP地址) => 子網域位數

劃分子網實例(重點):
某企業分配到一個C類IP地址201.222.5.0。假設需要6個子網,每個子網20臺主機,給出網絡規劃。
(1)確定子網域位數,從主機借位:2^3-2=8-2 >= 6,從主機位借3位。
C類默認掩碼255.255.255.0,即1111 1111.1111 1111.1111 1111.0000 0000
借3位後子網掩碼 1111 1111.1111 1111.1111 1111.1110 0000 = 255.255.255.224
此時主機號5位,每個子網可以分配2^5 = 32 > 20臺主機,滿足要求。
分配的每個子網:000(X)、001、010、011、100、101、110、111(X)

  • 劃分子網情況下路由器轉發分組算法
    路由表的每一項:{目的網絡地址、子網掩碼、下一跳(下一跳地址、接口)}
    (1)從分組的首部提取目的IP地址D;
    (2)先用與該路由器直接相連的網絡的子網掩碼與D進行與運算,看結果是否與相應的網絡
    地址相匹配。若匹配,則進行直接交付。
    否則就是間接交付,馬上執行(3);
    (3)若路由表中有一條到目的主機D的特定路由,則將分組轉發給其指明的下一跳路由器。
    否則執行(4);
    (4)對路由表中每一行的子網掩碼和D進行與運算,若結果與該行的目的網絡地址匹配,則將
    分組傳給該行指明的下一跳路由器。
    否則執行(5);
    (5)若路由表中有一個默認路由,則將分組傳給路由表中指明的默認路由器。
    否則執行(6);
    (6)報告轉發分組出錯。

第三階段 1987:CIDR(無分類 / 網絡前綴)

  • 無分類編址
    無分類編址 CIDR 消除了傳統 A 類、B 類和 C 類地址以及劃分子網的概念,使用網絡前綴和主機號來對 IP 地址進行編碼,網絡前綴的長度可以根據需要變化,用於代替分類地址中的網絡號和子網號,使IP地址從三級編址回到了兩級編址。
    IP 地址 ::= {< 網絡前綴號 >, < 主機號 >}
    CIDR 的記法上採用在 IP 地址後面加上網絡前綴長度的方法,例如 128.14.35.7/20 表示前 20 位爲網絡前綴。
  • 路由聚合、構成超網
    網絡前綴相同的連續IP地址 稱爲一個CIDR地址塊。
    CIDR 的地址掩碼可以繼續稱爲子網掩碼,子網掩碼首 1 長度爲網絡前綴的長度。如/20地址塊的掩碼是20個連續的1。
    一個 CIDR 地址塊中有很多地址,一個 CIDR 地址塊表示的網絡就可以表示原來的很多個網絡,並且在路由表中只需要一個路由就可以代替原來的多個路由,減少了路由表項的數量。把這種通過使用網絡前綴來減少路由表項的方式稱爲路由聚合,也稱爲 構成超網 。
    在路由表中的項目由“網絡前綴”和“下一跳地址”組成,在查找時可能會得到不止一個匹配結果,應當採用最長前綴匹配來確定應該匹配哪一個。

目的地址D = 206.0.71.130 = 206.0.0100 0111.1000 0010
路由表中項目 : 206.0.68.0/22(ISP) 與目的地址匹配長度 = 22
206.0.71.128/25(四系) 與目的地址匹配長度 = 25
根據最長匹配原則,查找路由表中第二項

在這裏插入圖片描述

第四階段 1994:NAT(地址轉換)

需要在專用網連接到因特網的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球地址IP。所有使用本地地址的主機在和外界通信時都要在NAT路由器上將本地地址轉化成IP地址才能和因特網連接。

  • 專用/私有地址(RFC1918定義一系列私有地址)爲只用於機構內部的網絡或主機IP。Internet中的路由器不轉發目的地址爲私有地址的IP數據報
    10.0.0.0 ~ 10.255.255.255(CIDR:10.0/8)
    172.16.0.0 ~ 172.31.255.255(CIDR:172.16/12)
    192.168.0.0 ~ 192.168.255.255(CIDR:192.168/16)
  • 公有地址:全網唯一IP地址,向ISP/註冊中心申請,由因特網分配。

通過使用少量的公有IP 地址代表較多的私有IP 地址的方式,將有助於減緩可用的IP地址空間的枯竭。

  • 工作原理
    藉助於NAT,私有(保留)地址的"內部"網絡通過路由器發送數據包時,私有地址被轉換成合法的IP地址,一個局域網只需使用少量IP地址(甚至是1個)即可實現私有地址網絡內所有計算機與Internet的通信需求。
    (1)內部主機ClientA用本地地址192.168.1.2和因特網主機202.20.65.4通信所發送數據報必須經過NAT路由器
    (2)NAT路由器將數據報源地址192.168.1.2轉換成全球地址202.20.65.2,目的地址保持不變,然後發送到因特網。
    (3)NAT路由器收到因特網主機發回的數據報時,知道數據報中源地址是202.20.65.4,目的地址是202.20.65.2
    (4)根據NAT轉換表,NAT路由器將目的地址202.20.65.2轉換爲192.168.1.2,並轉發給最終的內部主機ClientA
    在這裏插入圖片描述
  • IPv6
    從計算機本身發展以及從因特網規模和網絡傳輸速率來看,IPv4已不適用。最主要的問題就是32位的IP地址不夠用。因此採用具有更大地址控件的新版本IP協議IPv6解決這個問題。(無類別編址CIDR、網絡轉換協議NAT也可解決地址耗盡問題)
    IPv6的地址長度爲128位,是IPv4地址長度的4倍,首部長度位固定40字節。於是IPv4點分十進制格式不再適用,採用十六進制表示。

相關協議

ARP 地址解析協議(Adress Resolution Protocol)

網絡層實現主機之間的通信,而鏈路層實現具體每段鏈路之間的通信。在實際網絡的鏈路上傳送數據幀時,最終使用硬件地址。因此在通信過程中,IP 數據報的源地址和目的地址始終不變,而 MAC 地址隨着鏈路的改變而改變。
ARP 實現由 IP 地址得到 MAC 地址。RARP實現由MAC地址得到IP地址。
實現(同一個局域網上路由器/主機)IP地址和MAC地址轉換。

如果目的主機和源主機不在同一個局域網,應該通過ARP找到一個位於本局域網上某個路由器的硬件地址,通過分組發送給這個路由器,讓這個路由器將分組轉發給下一個網絡。此時目的主機不變,源主機爲該路由器的硬件地址,剩下工作交給下一個網絡鏈路層處理。

在這裏插入圖片描述
每個主機都有一個 ARP 高速緩存,裏面有本局域網上的各主機和路由器的 IP 地址到 MAC 地址的映射表。
如果主機 A 知道主機 B 的 IP 地址。查找ARP 高速緩存中有沒有該 IP 地址到 MAC 地址的映射
(1)如果有,查找出對應的MAC地址,並將該硬件地址寫入MAC幀,就可以通過局域網將該MAC幀發送到此硬件地址。
(2)如果沒有,此時主機 A 通過廣播的方式發送 ARP 請求分組,主機 B 收到該請求後會通過單播的方式發送 ARP 響應分組給主機 A 告知其 MAC 地址,隨後主機 A 向其高速緩存中寫入主機 B 的 IP 地址到 MAC 地址的映射。
在這裏插入圖片描述

DHCP 動態主機設置協議(Dynamic Host Configuration Protocol)

動態主機配置協議DHCP提供即插即用連網機制。允許一臺計算機加入新的網絡和獲取IP地址而不用手工參與。

  • DHCP使用客戶服務器方式,使用UDP傳輸數據
    (1)需要IP地址的主機在啓動時就向DHCP服務器廣播發送發現報文(DHCPDISCOVER),這時主機就稱爲DHCP客戶
    (2)本地網絡上所有主機都能收到此廣播報文,但只有DHCP服務器才能回答此廣播報文。
    (3)DHCP服務器先在其數據庫中查找該計算機的配置,若找到,則返回找到的信息。若找不到則從IP 地址池(address pool)中取出一個地址分配給該計算機。DHCP服務器的回答報文叫做提供報文(DHCPOFFER)
    (4)DHCP客戶 會檢查得到的IP信息是否完整併發送廣播DHCPREQUEST通知DHCP服務器已獲得IP地址
    (5)DHCP服務端發送廣播DHCPACK確認客戶的請求,表示分配成功
    在這裏插入圖片描述
    DHCP服務器分配給DHCP客戶的IP地址是臨時的,因此DHCP客戶只能在一段有限的時間使用這個分配到的IP地址。這段有限的時間稱爲租用期。

ICMP 網絡控制報文協議(Internet Control Message Protocol)

ICMP 是爲了更有效地轉發 IP 數據報和提高交付成功的機會。ICMP允許主機活路由器報告差錯情況和提供異常情況的報告。它作爲IP數據報的數據,加上數據報的首部,封裝在 IP 數據報中,不屬於高層協議。
在這裏插入圖片描述
ICMP 報文分爲差錯報告報文和詢問報文。
在這裏插入圖片描述
(1)Ping
Ping 是 ICMP 的一個重要應用,主要用來測試兩臺主機之間的連通性。
Ping 的原理是通過向目的主機發送 ICMP Echo 請求報文,目的主機收到之後會發送 Echo 回答報文。Ping 會根據時間和成功響應的次數估算出數據包往返時間以及丟包率。
(2)Traceroute
Traceroute 是 ICMP 的另一個應用,用來跟蹤一個分組從源點到終點的路徑。

VPN 虛擬專用網

VPN 可以使用公用的互聯網作爲本機構各專用網之間的通信載體。專用指機構內的主機只與本機構內的其它主機通信;虛擬指好像是,而實際上並不是,它有經過公用的互聯網。

  • 專用地址
    由於 IP 地址的緊缺,一個機構能申請到的 IP 地址數往往遠小於本機構所擁有的主機數。並且一個機構並不需要把所有的主機接入到外部的互聯網中,機構內的計算機可以使用僅在本機構有效的 IP 地址(專用地址)。
    有三個專用地址塊:
    10.0.0.0 ~ 10.255.255.255
    172.16.0.0 ~ 172.31.255.255
    192.168.0.0 ~ 192.168.255.255
  • VPN 機制
    VPN通過在公用網絡上建立專用網絡,進行加密通訊。VPN網關通過對數據包的加密和數據包目標地址的轉換實現遠程訪問。VPN可通過服務器、硬件、軟件等多種方式實現。
    例如某公司員工出差到外地,他想訪問企業內網的服務器資源,這種訪問就屬於遠程訪問。讓外地員工訪問到內網資源,利用VPN的解決方法就是在內網中架設一臺VPN服務器。外地員工在當地連上互聯網後,通過互聯網連接VPN服務器,然後通過VPN服務器進入企業內網。爲了保證數據安全,VPN服務器和客戶機之間的通訊數據都進行了加密處理。有了數據加密,就可以認爲數據是在一條專用的數據鏈路上進行安全傳輸,就如同專門架設了一個專用網絡一樣,但實際上VPN使用的是互聯網上的公用鏈路,因此VPN稱爲虛擬專用網絡,其實質上就是利用加密技術在公網上封裝出一個數據通訊隧道。有了VPN技術,用戶無論是在外地出差還是在家中辦公,只要能上互聯網就能利用VPN訪問內網資源,這就是VPN在企業中應用得如此廣泛的原因。
    下圖中,場所 A 和 B 的通信經過互聯網,如果場所 A 的主機 X 要和另一個場所 B 的主機 Y 通信,IP 數據報的源地址是 10.1.0.1,目的地址是 10.2.0.3。數據報先發送到與互聯網相連的路由器 R1,R1 對內部數據進行加密,然後重新加上數據報的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到數據報後將數據部分進行解密,恢復原來的數據報,此時目的地址爲 10.2.0.3,就交付給 Y。
    在這裏插入圖片描述

路由協議

路由選擇協議都是自適應的,能隨着網絡通信量和拓撲結構的變化而自適應地進行調整。
自治系統(AS):一個自治系統(AS)是一個有權自主地決定在本系統中應採用何種路由協議的小型單位。這個網絡單位可以是一個簡單的網絡也可以是一個由一個或多個普通的網絡管理員來控制的網絡羣體,它是一個單獨的可管理的網絡單元(例如一所大學,一個企業或者一個公司個體)。一個自治系統有時也被稱爲是一個路由選擇域(routing domain)。

內部網關協議IGP(RIP、OSPF)

  • RIP
    RIP 是一種基於距離向量的路由選擇協議,要求網絡中每一個路由器都要維護從自己到其他每一個目的網絡的距離記錄。距離是指跳數,直接相連的路由器跳數爲 1。跳數最多爲 15,超過 15 表示不可達。
    RIP 按固定的時間間隔僅和相鄰路由器交換自己的路由表全部信息,經過若干次交換之後,所有路由器最終會知道到達本自治系統中任何一個網絡的最短距離和下一跳路由器地址。
    RIP認爲一個好的路由就是通過的路由器數目少,即距離短。
    距離向量算法:
    對地址爲 X 的相鄰路由器發來的 RIP 報文,先修改報文中的所有項目,把下一跳字段中的地址改爲 X,並把所有的距離字段加 1;
    對修改後的 RIP 報文中的每一個項目,進行以下步驟:
    若原來的路由表中沒有目的網絡 N,則把該項目添加到路由表中;
    否則:若下一跳路由器地址是 X,則把收到的項目替換原來路由表中的項目;否則:若收到的項目中的距離 d 小於路由表中的距離,則進行更新(例如原始路由表項爲 Net2, 5, P,新表項爲 Net2, 4, X,則更新);否則什麼也不做。
    若 3 分鐘還沒有收到相鄰路由器的更新路由表,則把該相鄰路由器標爲不可達,即把距離置爲 16。
    RIP 協議實現簡單,開銷小。但是 RIP 能使用的最大距離爲 15,限制了網絡的規模。並且當網絡出現故障時,要經過比較長的時間才能將此消息傳送到所有路由器。且有"壞消息傳播慢"這一問題。
  • ODPF
    開放最短路徑優先 OSPF,是爲了克服 RIP 的缺點而開發出來的。
    開放表示 OSPF 不受某一家廠商控制,而是公開發表的;最短路徑優先表示使用了 Dijkstra 提出的最短路徑算法 SPF。
    OSPF 具有以下特點:
    (1)向本自治系統中的所有路由器發送信息,這種方法是洪泛法。
    (2)發送的信息就是與相鄰路由器的鏈路狀態,鏈路狀態包括與哪些路由器相連以及鏈路的度量,度量用費用、距離、時延、帶寬等來表示。
    (3)只有當鏈路狀態發生變化時,路由器纔會發送信息。
    (4)所有路由器都具有全網的拓撲結構圖,並且是一致的(鏈路狀態數據庫的同步)。相比於 RIP,OSPF 的更新過程收斂的很快。

外部網關協議EGP(BGP)

  • BGP
    BGP(Border Gateway Protocol,邊界網關協議)
    AS 之間的路由選擇很困難,主要是由於:
    (1)互聯網規模很大;
    (2)各個 AS 內部使用不同的路由選擇協議,無法準確定義路徑的度量;
    (3)AS 之間的路由選擇必須考慮有關的策略,比如有些 AS 不願意讓其它 AS 經過。
    BGP 只能尋找一條比較好的路由,而不是最佳路由。
    每個 AS 都必須配置至少一個 BGP 發言人,兩個BGP發言人都是通過一個共享網絡連接在一起的,通過在兩個相鄰 BGP 發言人之間建立 TCP 連接來交換路由信息(使用TCP連接能提供可靠服務,保證數據可達)
    在這裏插入圖片描述

網絡層設備:路由器

路由器的組成與功能
路由器是一種具有多個輸入端口和多個輸出端口的專用計算機,其任務是路由選擇和轉發分組。

  • 轉發
    轉發就是路由器根據路由/轉發表將用戶的IP數據報從合適的端口轉發出去。
  • 路由選擇
    按照分佈式算法根據從各相鄰的路由器得到關於網絡拓撲的變化情況,動態地改變所選擇地路由。路由表是根據李由選擇算法得出地。
    在這裏插入圖片描述

四. 傳輸層

傳輸層的目標是嚮應用層應用程序進程之間的通信,提供有效、可靠、保證質量的服務;
傳輸層在網絡分層結構中起着承上啓下的作用,通過執行傳輸層協議,屏蔽通信子網(信息傳輸)在技術、設計上的差異和服務質量的不足,向資源子網(信息處理)提供一個標準的、完善的通信服務;

傳輸層提供端到端(主機的應用進程之間)的通信
網絡層提供點到點(主機之間)的通信

傳輸層尋址 && 端口

端口用一個16位端口號進行標誌,只具有本地意義,即端口號只是爲了標誌本計算機應用層中的各個進程,作爲通信的終點。

TCP && UDP

TCP/UDP 特點

  • 用戶數據報協議 UDP(User Datagram Protocol)是無連接的,盡最大可能交付,沒有擁塞控制,面向報文(對於應用程序傳下來的報文不合並也不拆分,只是添加 UDP 首部),支持一對一、一對多、多對一和多對多的交互通信。
  • 傳輸控制協議 TCP(Transmission Control Protocol)是面向連接的,提供可靠交付,有流量控制,擁塞控制,提供全雙工通信,面向字節流(把應用層傳下來的報文看成字節流,把字節流組織成大小不等的數據塊),每一條 TCP 連接只能是點對點的(一對一)。

首部格式

  • UDP 首部格式
    在這裏插入圖片描述
    首部字段只有 8 個字節,包括源端口、目的端口、長度、檢驗和。12 字節的僞首部是爲了計算檢驗和臨時添加的。
  • TCP 首部格式
    在這裏插入圖片描述
    序號 :用於對字節流進行編號,例如序號爲 301,表示第一個字節的編號爲 301,如果攜帶的數據長度爲 100 字節,那麼下一個報文段的序號應爲 401。
    確認號 :期望收到的下一個報文段的序號。例如 B 正確收到 A 發送來的一個報文段,序號爲 501,攜帶的數據長度爲 200 字節,因此 B 期望下一個報文段的序號爲 701,B 發送給 A 的確認報文段中確認號就爲 701。
    數據偏移 :指的是數據部分距離報文段起始處的偏移量,實際上指的是首部的長度。
    確認 ACK :當 ACK=1 時確認號字段有效,否則無效。TCP 規定,在連接建立後所有傳送的報文段都必須把 ACK 置 1。
    同步 SYN :在連接建立時用來同步序號。當 SYN=1,ACK=0 時表示這是一個連接請求報文段。若對方同意建立連接,則響應報文中 SYN=1,ACK=1。
    終止 FIN :用來釋放一個連接,當 FIN=1 時,表示此報文段的發送方的數據已發送完畢,並要求釋放連接。
    窗口 :窗口值作爲接收方讓發送方設置其發送窗口的依據。之所以要有這個限制,是因爲接收方的數據緩存空間是有限的。

三次握手 & 四次揮手

第五章 網絡 之 TCP/IP

TCP可靠傳輸

超時重傳

TCP 使用超時重傳來實現可靠傳輸:如果一個已經發送的報文段在超時時間內沒有收到確認,那麼就重傳這個報文段。

滑動窗口

窗口是緩存的一部分,用來暫時存放字節流。發送方和接收方各有一個窗口,接收方通過 TCP 報文段中的窗口字段告訴發送方自己的窗口大小,發送方根據這個值和其它信息設置自己的窗口大小。
發送窗口內的字節都允許被髮送,接收窗口內的字節都允許被接收。如果發送窗口左部的字節已經發送並且收到了確認,那麼就將發送窗口向右滑動一定距離,直到左部第一個字節不是已發送並且已確認的狀態;接收窗口的滑動類似,接收窗口左部字節已經發送確認並交付主機,就向右滑動接收窗口。
接收窗口只會對窗口內最後一個按序到達的字節進行確認,例如接收窗口已經收到的字節爲 {31, 34, 35},其中 {31} 按序到達,而 {34, 35} 就不是,因此只對字節 31 進行確認。發送方得到一個字節的確認之後,就知道這個字節之前的所有字節都已經被接收。
在這裏插入圖片描述

流量控制

流量控制是爲了控制發送方發送速率,保證接收方來得及接收。
接收方發送的確認報文中的窗口字段可以用來控制發送方窗口大小,從而影響發送方的發送速率。將窗口字段設置爲 0,則發送方不能發送數據。

擁塞控制

如果網絡出現擁塞,分組將會丟失,此時發送方會繼續重傳,從而導致網絡擁塞程度更高。因此當出現擁塞時,應當控制發送方的速率。這一點和流量控制很像,但是出發點不同。流量控制是爲了讓接收方能來得及接收,而擁塞控制是爲了降低整個網絡的擁塞程度。
在這裏插入圖片描述
TCP 主要通過四個算法來進行擁塞控制:慢開始、擁塞避免、快重傳、快恢復。
發送方需要維護一個叫做擁塞窗口(cwnd)的狀態變量,注意擁塞窗口與發送方窗口的區別:擁塞窗口只是一個狀態變量,實際決定發送方能發送多少數據的是發送方窗口。
爲了便於討論,做如下假設:
接收方有足夠大的接收緩存,因此不會發生流量控制;
雖然 TCP 的窗口基於字節,但是這裏設窗口的大小單位爲報文段。
在這裏插入圖片描述

  • 慢開始與擁塞避免
    發送的最初執行慢開始,令 cwnd = 1,發送方只能發送 1 個報文段;當收到確認後,將 cwnd 加倍,因此之後發送方能夠發送的報文段數量爲:2、4、8 …
    注意到慢開始每個輪次都將 cwnd 加倍,這樣會讓 cwnd 增長速度非常快,從而使得發送方發送的速度增長速度過快,網絡擁塞的可能性也就更高。設置一個慢開始門限 ssthresh,當 cwnd >= ssthresh 時,進入擁塞避免,每個輪次只將 cwnd 加 1。
    如果出現了超時,則令 ssthresh = cwnd / 2,然後重新執行慢開始。
  • 快重傳與快恢復
    在接收方,要求每次接收到報文段都應該對最後一個已收到的有序報文段進行確認。例如已經接收到 M1 和 M2,此時收到 M4,應當發送對 M2 的確認。
    在發送方,如果收到三個重複確認,那麼可以知道下一個報文段丟失,此時執行快重傳,立即重傳下一個報文段。例如收到三個 M2,則 M3 丟失,立即重傳 M3。
    在這種情況下,只是丟失個別報文段,而不是網絡擁塞。因此執行快恢復,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此時直接進入擁塞避免。
    慢開始和快恢復的快慢指的是 cwnd 的設定值,而不是 cwnd 的增長速率。慢開始 cwnd 設定爲 1,而快恢復 cwnd 設定爲 ssthresh。
    在這裏插入圖片描述

五. 應用層

網絡應用模型

在網絡應用層運行的應用程序之間通信方式可劃分成兩大類:

C/S(客戶端/服務器)方式

客戶client和服務器server都是指通信中所設計的兩個應用進程。客戶服務器方式所描述的是進程之間服務和被服務的關係。客戶是服務的請求方,服務器是服務的提供方。

P2P(peer to peer 對等)方式

對等連接是指兩個主機在通信時並不區分哪一個是服務請求方,提供方。只要兩個主機運行了對等連接軟件,它們就可以進行平等的、對等連接通信。雙方都可以下載對方已經存儲在硬盤中的共享文檔。

相關協議

DNS系統

域名系統(英文:Domain Name System,縮寫:DNS)是互聯網的一項服務。它作爲將域名和IP地址相互映射的一個分佈式數據庫,能夠使人更方便地訪問互聯網。DNS使用UDP端口53。
因特網採用層次結構的命名樹作爲主機的名字,並使用分佈式域名系統DNS。
名字到IP地址的解析是由若干個域名服務器完成。域名服務器在專設的結點上運行,運行該程序的機器稱爲域名服務器。
DNS基於UDP協議實現:DNS的一個客戶向本地域名服務器發送域名解析請求(UDP報文),其中包含待解析的域名,本地域名服務器在查找域名後,返回應答報文,其中包含對應的IP地址。

  • 層次域名空間
  • 域名
    因特網採用了層次樹狀結構的命名方法,任何一個連接在因特網上的主機活路由器,都有一個唯一的層次結構的名稱,即域名。
    域名的結構由標號序列組成,各標號分別代表不同層次的域名,每個層次只需要負責該層次級別的獨立功能(層次之間相互獨立),各標號之間用點隔開:
    在這裏插入圖片描述
  • 因特網的域名空間
    在這裏插入圖片描述
  • 域名服務器
    樹狀結構的DNS域名服務器
    在這裏插入圖片描述
    域名服務器四種類型
    (1)根域名服務器:13個(A~M)。在使用迭代查詢時,根域名服務器把下一步應當查找的頂級域名服務器的IP地址告訴本地域名服務器。
    (2)頂級域名服務器:負責頂級域名和所有國家域名。
    (3)權威DNS服務器:在因特網上具有公共可訪問主機(如Web服務器和郵件服務器)的每個組織機構必須提供公共可訪問的DNS記錄,這些記錄將這些主機的名字映射爲IP地址。
    當一個權威域名服務器還不能給出最後的查詢回答時,就會告訴發出查詢請求的DNS客戶,下一步應該查找哪一個權威域名服務器。多數大學、企業實現和維護他們自己的權威DNS服務器。
    (4)本地域名服務器:當一個主機發出DNS查詢請求時,這個查詢報文就發送給本地域名服務器。
  • 域名解析過程
    主機向本地域名服務器的查詢一般採用遞歸查詢。如果主機所詢問的本地域名服務器不知道被查詢域名的IP地址,那麼本地域名服務器就以DNS客戶的身份,向其他根域名服務器繼續發出查詢請求報文。
    本地域名服務器向根/頂級/權威域名服務器的查詢通常是採用迭代查詢。當根域名服務器收到本地域名服務器查詢請求報文時,要麼給出所要查詢的IP地址,要麼告訴本地域名服務器下一步應當向哪一個域名服務器進行查詢,然後讓本地域名服務器進行後續查詢。
    在這裏插入圖片描述

FTP

文件傳送協議FTP只提供文件傳送的一些基本的服務,它使用TCP可靠的運輸服務。FTP的主要功能是減少或消除在不同操作系統下處理文件的不兼容性。
FTP使用客戶服務器方式。一個FTP服務器進程可同時爲多個客戶進程提供服務。FTP的服務器進程由兩大部分組成:一個主進程,負責接收新的請求;另外有若干個從屬進程,負責處理單個請求。
FTP 兩個連接

  • 控制連接(20端口)
    當用戶主機與遠程主機開始一個FTP會話前,FTP的客戶機端(用戶)在21端口發起一個用於控制的與服務器(遠程主機)的TCP連接。
    控制連接在整個會話期間一直保持打開,FTP客戶發出的傳送請求通過控制連接發送給服務器端的控制進程,但控制連接不用於傳送文件。
  • 數據連接(21端口)
    當FTP服務器端從該連接上收到一個文件傳輸的命令後,就發起20端口到客戶機的數據連接。數據連接用於傳輸文件。FTP在該數據連接上準確地傳送一個文件並關閉連接。

電子郵件(SMTP、POP3、IMAP)

電子郵件系統的組成結構
在這裏插入圖片描述
(1)用戶代理(UA)
用戶與電子郵件系統的接口,是電子郵件客戶端軟件。用戶代理的功能:撰寫、顯示、處理和通信。
(2)郵件服務器(MS)
發送和接收郵件,同時還要向發信人報告郵件傳送的情況(已交付、被拒絕、丟失等)。郵件服務器按照客戶/服務器方式工作。郵件服務器需要使用發送和讀取兩個不同協議。

  • 發送郵件協議:SMTP
    使用TCP可靠數據傳輸服務,從發送方的郵件服務器向接收方的郵件服務器發送郵件,也用來將郵件從發送方的用戶代理傳送到發送方的郵件服務器。限制郵件報文主體部分只能採用簡單的7位ASCII碼錶示。
    爲發送非ASCII文本的內容,發送方的用戶代理可在報文中使用附加的首部行,即多用途因特網郵件擴展(MIME)
    MIME 在其郵件首部說明了郵件數據類型(如文本、聲音、圖像、視頻等),使用MIME可在郵件中同時傳送多種類型的數據。
  • 讀取郵件協議:POP3
    POP3允許用戶從服務器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件服務器上的郵件。
  • 讀取郵件服務器:IMAP
    IMAP全稱是Internet Mail Access Protocol,即交互式郵件存取協議,它是跟POP3類似郵件訪問標準協議之一。不同的是,開啓了IMAP後,您在電子郵件客戶端收取的郵件仍然保留在服務器上,同時在客戶端上的操作都會反饋到服務器上,如:刪除郵件,標記已讀等,服務器上的郵件也會做相應的動作。所以無論從瀏覽器登錄郵箱或者客戶端軟件登錄郵箱,看到的郵件以及狀態都是一致的。
  • POP3與IMAP區別
    POP3協議允許電子郵件客戶端下載服務器上的郵件,但是在客戶端的操作(如移動郵件、標記已讀等),不會反饋到服務器上,比如通過客戶端收取了郵箱中的3封郵件並移動到其他文件夾,郵箱服務器上的這些郵件是沒有同時被移動的 。
    而IMAP提供webmail 與電子郵件客戶端之間的雙向通信,客戶端的操作都會反饋到服務器上,對郵件進行的操作,服務器上的郵件也會做相應的動作。
    在這裏插入圖片描述
    總之,IMAP 整體上爲用戶帶來更爲便捷和可靠的體驗。POP3 更易丟失郵件或多次下載相同的郵件,但 IMAP 通過郵件客戶端與webmail 之間的雙向同步功能很好地避免了這些問題。

WWW(HTTP)

  • 萬維網
    萬維網以客戶服務器方式工作。
    瀏覽器就是在用戶計算機上的萬維網客戶程序。萬維網文檔所駐留的計算機則運行服務器程序,這個計算機也稱爲萬維網服務器。
    客戶程序向服務器程序發出請求,服務器程序向客戶程序送回客戶所需要的萬維網文檔。在一個客戶程序主窗口上顯示出的萬維網文檔稱爲頁面(page)。
    萬維網使用統一資源定位符URL來標誌萬維網上的各種文檔,使每一個文檔在整個因特網的範圍具有唯一的標識符URL。
  • HTTP
    Web的應用層協議是超文本傳輸協議HTTP。定義了HTTP報文的格式以及客戶端服務器如何進行報文交換。
    在這裏插入圖片描述
    用戶點擊鼠標後發生的事件
    在這裏插入圖片描述

Telent

Telnet協議是TCP/IP協議族中的一員,是Internet遠程登錄服務的標準協議和主要方式。它爲用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制檯上輸入一樣。可以在本地就能控制服務器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。

面試

MAC / IP地址 & 作用?

  • mac地址 & ip地址?
mac地址 ip地址
定義 物理/硬件地址,由網絡設備製造商生產時寫在硬件內部 網絡地址
格式 08:00:20:0A:8C:6D
長度爲48位(6個字節),通常表示爲12個16進制數,每2個16進制數之間用冒號隔開
192.168.0.1
長度爲32位。用點分隔開的4個8八位組構成
組成 前6位16進制數08:00:20代表網絡硬件製造商的編號,它由IEEE分配,而後3位16進制數0A:8C:6D代表該製造商所製造的某個網絡產品(如網卡)的系列號 IP地址由網絡地址和主機地址兩部分組成,分配給這兩部分的位數隨地址類(A類、B類、C類等)的不同而不同。網絡地址用於路由選擇,而主機地址用於在網絡或子網內部尋找一個單獨的主機
所屬層 數據鏈路層 網絡層
說明 每個網絡製造商必須確保它所製造的每個以太網設備都具有相同的前三個字節以及不同的後三個字節。這樣就可保證世界上每個以太網設備都具有唯一的MAC地址。MAC地址與網絡無關。 IP地址只是邏輯上的標識,用於路由器將數據從源地址傳送到目的地址。會根據網絡而變化,也可以被用戶任意修改
  • MAC地址的作用?
  • 既然每個以太網設備在出廠時都有一個唯一的MAC地址了,那爲什麼還需要爲每臺主機再分配一個IP地址呢?=> IP地址作用?
    (1)IP地址的分配是根據網絡的拓樸結構,而不是根據誰製造了網絡設置。若將高效的路由選擇方案建立在設備製造商的基礎上而不是網絡所處的拓樸位置基礎上,這種方案是不可行的。
    (2)當存在一個附加層的地址尋址時,設備更易於移動和維修。例如,如果一個以太網卡壞了,可以被更換,而無須取得一個新的IP地址。如果一個IP主機從一個網絡移到另一個網絡,可以給它一個新的IP地址,而無須換一個新的網卡。
  • 爲什麼每臺主機都分配唯一的IP地址了,爲什麼還要在網絡設備(如網卡,集線器,路由器等)生產時內嵌一個唯一的MAC地址呢?=> mac地址作用?
    這是由組網方式決定的,如今比較流行的接入Internet的方式(也是未來發展的方向)是把主機通過局域網組織在一起,然後再通過交換機和 Internet相連接。這樣一來就出現瞭如何區分具體用戶,防止盜用的問題。由於IP只是邏輯上標識,任何人都隨意修改,因此不能用來標識用戶;而 MAC地址則不然,它是固化在網卡里面的。
    基於MAC地址的這種特點,局域網採用了用MAC地址來標識具體用戶的方法。
  • 因此計算機的通信,需要 MAC地址 與 IP地址 結合 傳送數據包
    無論是局域網,還是廣域網中的計算機之間的通信,最終都表現爲將數據包從某種形式的鏈路上的初始節點出發,從一個節點傳遞到另一個節點,最終傳送到目的節點。數據包在這些節點之間的移動都是由ARP(Address Resolution Protocol:地址解析協議)負責將IP地址映射到MAC地址上來完成的(交換機內部通過"表"將MAC地址與IP地址一一對應實現綁定)。
    假設網絡上要將一個數據包(名爲PAC)由臨沭的一臺主機(名稱爲A,IP地址爲IP_A,MAC地址爲MAC_A)發送到北京的一臺主機(名稱爲B,IP地址爲IP_B,MAC地址爲MAC_B)。這兩臺主機之間不可能是直接連接起來的,因而數據包在傳遞時必然要經過許多中間節點(如路由器,服務器等等),我們假定在傳輸過程中要經過C1、C2、C3(其MAC地址分別爲M1,M2,M3)三個節點。
    A在將PAC發出之前,先發送一個 ARP(Address Resolution Protocol:地址解析協議)請求,找到其要到達IP_B所必須經歷的第一個中間節點C1的MAC地址M1,然後在其數據包中封裝(Encapsulation)這些地址: IP_A、IP_B,MAC_A和M1。當PAC傳到C1後,再由ARP根據其目的IP地址IP_B,找到其要經歷的第二個中間節點C2的MAC地址 M2,然後再將帶有M2的數據包傳送到C2。如此類推,直到最後找到帶有IP地址爲IP_B的B主機的地址MAC_B,最終傳送給主機B。在傳輸過程中, IP_A、IP_B和MAC_A不變,而中間節點的MAC地址通過ARP在不斷改變(M1,M2,M3),直至目的地址MAC_B。
    具體的通信方式:接收過程,當有發給本地局域網內一臺主機的數據包時,交換機接收下來,然後把數據包中的IP地址按照“表”中的對應關係映射成MAC地址,轉發到對應的MAC地址的主機上,這樣一來,即使某臺主機盜用了這個IP地址,但由於他沒有這個MAC地址,因此也不會收到數據包。

描述一次網絡請求的流程/瀏覽器訪問一個url網址所經歷的過程?

  1. 域名解析(DNS查找)
  2. 建立TCP連接(TCP的三次握手和四次揮手)
  3. 建立TCP連接後客戶端向服務端發起HTTP請求(HTTP請求報文:請求行、請求頭、空行、消息體)
  4. 服務器接受並處理請求,並返回HTTP響應消息,HTTP響應報文的消息體爲服務端返回給客戶端的HTML文本內容(或其他格式數據)(HTTP響應報文:狀態行、響應頭、空行、消息體)
  5. 瀏覽器解析HTML代碼,同時請求HTML代碼中的靜態資源(如js、css、圖片等)
    遇到js/css/image等靜態資源時,向服務器端發起一個HTTP請求,如果服務器端返回304狀態碼(告訴瀏覽器服務器端沒有修改該資源),那麼瀏覽器會直接讀取本地的該資源的緩存文件。否則開啓新線程向服務器端去請求下載。(這個時候就用上keep-alive特性了,建立一次HTTP連接,可以請求多個資源。)
  6. 最後瀏覽器使用請求到的靜態資源和HTML代碼對頁面進行渲染並呈現給用戶

什麼是DNS?作用是什麼?工作機制?

DNS(Domain Name System)域名系統,用於進行域名解析的服務器,即進行域名與IP地址轉換。
DNS查詢過程
以查詢 zh.wikipedia.org 爲例:

  • 輸入域名"zh.wikipedia.org",操作系統會先檢查自己的本地hosts文件是否有這個網址映射關係。如果hosts沒有這個域名的映射,則查詢本地DNS解析器緩存。如果hosts與本地DNS服務器緩存都沒有相應的網址映射關係,首先會找TCP/IP參數中設置的首選DNS服務器。
  • 客戶端發送查詢報文"query zh.wikipedia.org"至DNS服務器,DNS服務器首先檢查自身緩存,如果存在記錄則直接返回結果。
  • 如果記錄老化或不存在,則:
  1. DNS服務器向根域名服務器發送查詢報文"query zh.wikipedia.org",根域名服務器返回頂級域.org 的權威域名服務器地址。
  2. DNS服務器向 .org 域的權威域名服務器發送查詢報文"query zh.wikipedia.org",得到二級域.wikipedia.org 的權威域名服務器地址。
  3. DNS服務器向 .wikipedia.org 域的權威域名服務器發送查詢報文"query zh.wikipedia.org",得到主機 zh 的A記錄,存入自身緩存並返回給客戶端。
    從上圖可以知道,客戶端到本地DNS服務器是屬於遞歸查詢(只發送一次請求,得到一次準確結果(消耗資源)),而DNS服務器之間的交互查詢就是迭代查詢(發送多次請求,得到參考結果)
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章