第四章 網路層
- 第四章 網路層
- 4.1 網路層概述
- 4.2 網路層提供的兩種服務
- 面向連接的虛電路服務
- 無連接的資料報服務
- 4.3 IPv4地址
- 4.3.1 概述
- 4.3.2 分類編址
- A類
- B類
- C類
- 其他
- 總結規律
- 4.3.3 劃分子網
- 例題
- 4.3.4 無分類編址
- CIDR(無分類編址)
- 路由聚合
- 4.3.5 IPv4地址的應用規劃
- 4.4 IP層轉發分組程序
- IP資料報的格式
- IP資料報的發送和轉發程序
- 4.5 網際控制報文協議ICMP
- 4.6 IPv6
- 基本首部
- 地址型別:
- 從 IPv4 到 IPv6 的過度
- 雙協議堆疊
- 隧道技術
- 4.7 路由選擇協議
- 路由器的基本結構
- 路由資訊協議RIP
- 開放最短路徑優先OSPF
- 4.8 虛擬專用網VPN與網路地址轉換NAT
- 虛擬專用網VPN(Virtual Private Network)
- 網路地址轉換NAT(Network Address Translation)
4.1 網路層概述
網路層的主要任務是實作網路互連,進而實作資料包在各網路之間的傳輸,
要實作網路層任務,需要解決以下主要問題:
- 網路層向運輸層提供怎樣的服務(”可靠傳輸”還是 “不可靠傳輸”)
- 網路層尋址問題
- 路由選擇問題
因特網(Internet): 是目前全世界用戶數量最多的互聯網,它使用TCP/IP協議堆疊,
由于TCP/IP協議堆疊的網路層使用網際協議IP,它是整個協議堆疊的核心協議,因此在TCP/IP協議堆疊中網路層常稱為網際層,
4.2 網路層提供的兩種服務

面向連接的虛電路服務
- 可靠通信由網路來保證
- 必須建立網路層的連接——虛電路VC(Virtual Circuit)
- 通信雙方沿著已建立的虛電路發送分組
- 目的主機的地址僅在連接建立階段使用,之后每個分組的首部只需攜帶一條虛電路的編號(構成虛電路的每一段鏈路都有一個虛電路編號),
- 這種通信方式如果再使用可靠傳輸的網路協議,就可使所發送的分組最終正確到達接收方(無差錯按序到達、不丟失、不重復),
- 通信結束后,需要釋放之前所建立的虛電路,
- 很多廣域分組交換網都使用面向連接的虛電路服務,例如,曾經的X.25和逐漸過時的幀中繼FR、異步傳輸模式ATM等,
無連接的資料報服務
- 可靠通信應當由用戶主機來保證
- 不需要建立網路層連接
- 每個分組可走不同的路徑
- 每個分組的首部必須攜帶目的主機的完整地址
- 這種通信方式所傳送的分組可能誤碼、丟失、重復和失序,
- 由于網路本身不提供端到端的可靠傳輸服務,這就使網路中的路由器可以做得比較簡單,而且價格低廉(與電信網的交換機相比較),
- 因特網采用了這種設計思想,也就是將復雜的網路處理功能置于因特網的邊緣(用戶主機和其內部的運輸層),而將相對簡單的盡最大努力的分組交付功能置于因特網核心,
4.3 IPv4地址
4.3.1 概述
IPv4地址就是給因特網(Internet) 上的每一臺主機(或路由器)的每一個介面分配一個在全世界范圍內是唯一的32位元的識別符號,
IP地址由因特網名字和數字分配機構 ICANN進行分配,
32位元的IPv4地址不方便閱讀、記錄以及輸入等,因此IPv4地址采用點分十進制(每八位2進制轉為10進制)表示方法以方便用戶使用,
- 我國用戶可向亞太網路資訊中心APNIC(Asia Pacific Network Information Center)申請|P地址,需要繳費,
- 2011年2月3日,互聯網號碼分配管理局IANA (由ICANN行使職能)宣布,IPv4地址已經分配完畢,
- 我國在2014至201 5年也逐步停止了向新用戶和應用分配IPv4地址,同時全面開展商用部署IPv6,
IPv4地址的編址方法經歷了如下三個歷史階段:
- 分類編址
- 劃分子網
- 無分類編址
4.3.2 分類編址

注意:
◇ 只有A、B、C 類地址可分配給網路中的主機或路由器的各介面,
◇ 主機號全為0的地址是網路地址,不進行分配
◇ 主機號全為1的地址是廣播地址,不分配
A類

- 最小網路號為0,最大網路號為127(本地環回測驗地址),都不分配,
- 本地環回測驗地址:最小 127.0.0.1 (24位主機號除最后一位為1,其余為0)
最大 127.255.255.254(24位主機號除最后一位為0,其余為1) - 第一個可指派的網路號為1(網路地址為1.0.0.0),最后一個可指派的網路號為126(網路地址為126.0.0.0)
- 可指派網路數量 126 = 28-1 - 2(只有A類特殊,這里減2)
- 可分配的IP地址數量:224 - 2
B類

- 最小網路號 = 第一個可指派的網路號 = 128.0(網路地址:128.0.0.0)
- 最大網路號 = 最后一個可指派網路號 = 191.255(網路地址:191.255.0.0)
C類

其他


總結規律

目的地址和源地址:
源IP地址:發送請求的IP地址,
目的IP地址:被請求的主機IP地址,
廣播地址
是目的地址,非源地址
應為廣播是對全體主機,被請求時,是全體主機,
發送請求時,并不知道到底是那臺主機的請求,所以不能作為源地址,
1.根據地址左起第一個十進制數的值,可以判斷出網路類別,
小于127的為A類,128 ~ 191的為B類,192 ~ 223的為C類
2.根據網路類別,就可找出地址中的網路號部分和主機號部分
A類地址網路號為左起第一個位元組,B類地址網路號為左起前兩個位元組,C類地址網路號為左起前三個位元組
3.以下三種情況的地址不能指派給主機或路由器介面:
( 1)A類網路號0和127
(2)主機號為“全0”,這是網路地址
(3)主機號為“全1”,這是廣播地址

4.3.3 劃分子網
為新增網路 申請新的網路號會帶來以下弊端:
需要等待時間和花費更多的費用
會增加其他路由器中路由表記錄的數量
浪費原有網路號中剩余的大量IP地址
所以可以從主機號部分借用一部分位元作為子網號
32位元的子網掩碼可以表明分類IP地址的主機號部分被借用了幾個位元作為子網號
- 子網掩碼使用連續的1來對應網路號和子網號
- 子網掩碼使用連續的0來對應主機號
- 將劃分子網的IPv4地址與其相應的子網掩碼進行邏輯與運算就可得到IPv4地址所在子網的網路地址
給定一個分類的IP地址和其相應的子網掩碼,就可知道子網劃分的細節:
- 劃分出的子網數量
- 每個子網可分配的IP地址數量
- 每個子網的網路地址和廣播地址
- 每個子網可分配的最小和最大地址
默認的子網掩碼是指在未劃分子網的情況下使用的子網掩碼,
A類: 255.0.0.0
B類:255.255.0.0
C類:255.255.255.0

例題

4.3.4 無分類編址
前面的劃分子網也不夠用了,數量巨大的C類網因為其地址空間太小并沒有得到充分使用,而因特網的IP地址仍在加速消耗,整個IPv4地址空間面臨全部耗盡的威脅, 為此,因特網工程任務組IETF又提出了采用無分類編址的方法來解決IP地址緊張的問題,同時還專門成立IPv6作業組負責研究新版本IP以徹底解決IP地址耗盡問題,
1993年,IETF發布了無分類域間路由選擇CIDR(Classless Inter-Domain Routing)的RFC檔案:
- CIDR消除了傳統的A類. B類和C類地址,以及劃分子網的概念;
- CIDR可以更加有效地分配IPv4的地址空間, 并且可以在新的IPv6使用之前允許因特網的規模繼續增長,
CIDR(無分類編址)
■ CIDR使用 “ 斜線記法 ” ,或稱CIDR記法,即在IPv4地址后面加上斜線"/”,在斜線后面寫上網路前綴所占的位元數量,
■ CIDR實際上是將網路前綴都相同的連續的IP地址組成一個“CIDR地址塊”,
■ 我們只要知道CIDR地址塊中的任何一個地址,就可以知道該地址塊的全部細節:
- 地址塊的最小地址
- 地址塊的最大地址
- 地址塊中的地址數量
- 地址塊聚合某類網路 (A類、B類或C類) 的數量
- 地址掩碼 (也可繼續稱為子網掩碼)

路由聚合
■ 路由聚合(構造超網)的方法是找共同前綴
■ 網路前綴越長,地址塊越小,路由越具體;
■ 若路由器查表轉發分組時發現有多條路由可選,則選擇網路前綴最長的那條,這稱為最長前綴匹配,因為這樣的路由更具體,

例題:

4.3.5 IPv4地址的應用規劃
定長的子網掩碼FLSM:
Fixed Length Subnet Mask
- 使用同一個子網掩碼來劃分子網
- 子網劃分方式不靈活:只能劃分出2n個子網(n是從主機號部分借用的用來作為子網號的位元數量)
- 每個子網所分配的IP地址數量相同,容易造成IP地址浪費,
變長的子網掩碼VLSM:
Variable Length Subnet Mask
- 使用不同的子網掩碼來劃分子網
- 子網劃分方式靈活:可以按需分配
- 每個子網所分配的IP地址數量可以不同,盡可能減少對IP地址的浪費
4.4 IP層轉發分組程序
IP資料報的格式

版本:占4位元,表示IP協議的版本,通信雙方使用的IP協議的版本必須-致,目前廣泛使用的IP協議版本號為4 (即IPv4),
首部:占4位元,表示IP資料報首部的長度,該欄位的取值以4位元組為單位,
- 最小十進制取值為5,表示IP資料報首部只有20位元組固定部分;
- 最大十進制取值為15,表示IP資料報首部包含20位元組固定部分和最大40位元組可變部分,
可選欄位:1個位元組到40個位元組不等,用來支持排錯,測量及安全等措施,
- 可選欄位增加了IP資料報的功能,但這同時也使得IP資料報的首部長度成為可變的,這就增加了每一個路由器處理IP資料報的開銷,實際上可選欄位很少被使用,
填充欄位:確保首部長度為4位元組的整數倍,使用全0進行填充,
區分服務:8位元,用來獲得更好的服務,
- 利用該欄位的不同數值可提供不同等級的服務質量,只有在使用區分服務
時,該欄位才起作用,一般情況下都不使用該欄位,
總長度:16位元,表示IP資料報的總長度( 首部+資料載荷 ),最大取值為十進制的65535.以位元組為單位,
標識:16位元, 屬于同個資料報的各分片資料報應該具有相同的標識,IP軟體維持一個計數器,每產生一個資料報, 計數器值加1,并將此值賦給標識欄位,
標志:3位元,各位元含義如下:
- DF位: 1表示不允許分片, 0表示允許分片;
- MF位: 1表示“后面還有分片”, 0表示“這是最后一個分片”;
- 保留位:必須為0,
片偏移:13位元, 指出分片資料報的資料載荷部分偏移其在原資料報的位置有多少個單位,片偏移以8個位元組為單位,
生存時間TTL:占8位元,表示IP資料報的生存時間,
- 最初以秒為單位,最大生存周期為255秒
- 路由器轉發IP資料報時,將IP資料報首部中的該欄位的值減去IP資料報在本路由器上所耗費的時間,若不為0就轉發,否則就丟棄,
- 現在以“跳數”為單位,路由器轉發IP資料報時,將IP資料報首部中的該欄位的值減1,若不為0就轉發,否則就丟棄,
- IP資料報每經過- -個路由器,路由器都要重新計算首部檢驗和,因為某些欄位(生存時間、標志片偏移等)的取值可能發生變化,
協議:8位元,指明IPv4資料報的資料部分是何種協議資料單元,常用的一些協議和相應的協議欄位值如下,

首部檢驗和:16位元,用來檢測首部在傳輸程序中是否出現差錯,比CRC檢驗碼簡單,稱為因特網檢驗和,
- 由于IP層本身并不提供可靠傳輸的服務,并且計算首部校驗和是一項耗時的操作,因此在IPv6中,路由器不再計算首部校驗和,從而更快轉發IP資料報,
源IP地址和目的IP地址:各占32位元,用來填寫發送該IP資料報的源主機的IP地址和接收該IP資料報的目的主機的IP地址,
IP資料報的發送和轉發程序
主機發送IP資料報
①判斷目的主機是否與自己在同一個網路
若在同一個網路,則屬于直接交付;
若不在同一個網路,則屬于間接交付,
②傳輸給主機所在網路的默認網關(路由器),由默認網關幫忙轉發;

路由器轉發IP資料報
① 檢查IP資料報首部是否出錯:
若出錯,則直接丟棄該IP資料報并通告源主機;
若沒有出錯,則進行轉發;
② 根據IP資料報的目的地址在路由表中查找匹配的條目
(查找方法請參看本節課相關示例) :
若找到匹配的條目,則轉發給條目中指示的下一-跳;
若找不到,則丟棄該|P資料報并通告源主機;
4.5 網際控制報文協議ICMP

■ 為了更有效地轉發IP資料報和提高交付成功的機會,在網際層使用了網際控制報文協議
ICMP(Internet Control Message Protocol),
■ 主機或路由器使用ICMP來發送差錯報告報文和詢問報文,
■ ICMP報文被封裝在IP資料報中發送,
■ ICMP差錯報告報文共有以下五種:
- 終點不可達
- 源點抑制
- 時間超過
- 引數問題
- 改變路由(重定向)
■ 以下情況不應發送ICMP差錯報告報文:
- 對ICMP差錯報告報文不再發送ICMP差錯報告報文
- 對第一個分片的資料報片的所有后續資料報片都不發送ICMP差錯報告報文
- 對具有多播地址的資料報都不發送ICMP差錯報告報文
- 對具有特殊地址(如127.0.0.0或0.0.0.0) 的資料報不發送ICMP差錯報告報文
■ 常用的ICMP詢問報文有以下兩種:
回送請求和回答 時間戳請求和回答
■ICMP應用:
- 分組網間探測PING:測驗兩臺主機直接的連通性
- 跟蹤路由traceroute:跟蹤一個分組從原點到終點的路徑
4.6 IPv6
IPv6仍支持無連接的傳送,但將協議資料單元PDU稱為分組,而不是IPv4 的資料
報,(但后面將兩者看成同義詞)
基本首部
IPv6所引進的主要變化如下:
(1) 更大的地址空間,IPv6 把地址從IPv4的32位增大到4倍,即增大到128位,使地址空間增大了29倍,
(2) 擴展的地址層次結構,
(3) 靈活的首部格式,
(4) 改進的選項,IPv6允許資料報包含有選項的控制資訊,因而可以包含一些新的選
項,但IPv6的首部長度是固定的,其選項放在有效載荷中,IPv4 所規定的選項是固定不變的,其選項放在首部的可變部分,
(5) 允許協議繼續擴充,IPv4 的功能是固定不變的,
(6) 支持即插即用(即自動配置),因此IPv6不需要使用DHCP,
(7) 支持資源的預分配,IPv6支持實時視像等要求保證一定的帶寬和時延的應用,
(8) IPv6 首部改為8位元組對齊(即首部長度必須是8位元組的整數倍),IPv4首部是4位元組對齊,

■ 版本(version): 占4位,它指明了協議的版本,對IPv6該欄位是6,
■ 通信量類(raffic class): 占8位,這是為了區分不同的IPv6資料報的類別或優先級,
■ 流標號(low label):占20位,流標號對實時音頻/視頻資料的傳送特別有用,對于傳統的電子郵件或非實時資料,流標號則沒有用處,把它置為0即可,
■ 有效載荷長度(payload length): 占 16位,它指明IPv6資料報除基本首部以外的位元組數(所有擴展首部都算在有效載荷之內),這個欄位的最大值是64 KB (65535位元組),
■ 下一個首部(next header):占 8位,它相當于IPv4的協議欄位或可選欄位,
- 當 IPv6資料報沒有擴展首部時,下一個首部欄位的作用和IPv4的協議欄位一樣,
- 當出現擴展首部時,下一個首部欄位的值就標識后面第一個擴展首部的型別,
■ 跳數限制(hop limit): 占 8位,和IPv4的TTL一樣,
■ 源地址:占128 位,是資料報的發送端的 IP地址,
■ 目的地址: 占128位,是資料報的接收端的IP地址,
地址型別:
地址分為單播、多播和任意播,
- 單播:傳統的點對點通信,
- 多播:一對多通信,
- 任播:任播的終點是一組計算機,但資料報之交付其中的一個,通常是距離最近的一個,
地址表示:冒號十六進制法,
- 允許零壓縮
- CIDR的斜線表示法仍可以使用,
- 若一組中全是0,可以省略三個,
- 若存在連續多組0,可以使用冒號取代,但只能壓縮一次 FF05:0:0:0:0:0:0:B3 可以壓縮為FF05::B3 1090:0:0:0:8:800:200C:417A 可以壓縮為 1090::8:800:200C:417A 全零可記為
::- 最后的2組可以使用IPv4的點分十進制表示 0:0:0:0:0:0:128.10.2.1 可表示為 ::128.10.2.1
地址分類:

從 IPv4 到 IPv6 的過度
雙協議堆疊
一個主機能夠理解兩個版本的內容,這樣主機也要有2個版本對應的IP地址.具有雙協議堆疊的主機, 可以通過DNS系統知道目的主機使用的協議版本,
隧道技術
隧道技術的原理是,在IPv6的資料需要進入IPv4網路時,將IPv6的資料報(準確的說是PDU)當成IPv4資料報的資料部分,使用IPv4版本傳輸,在離開IPv4網路時在此組裝成IPv6的資料,發往目的地,
4.7 路由選擇協議



路由器的基本結構
- 路由表一般僅包含從目的網路到下一跳的映射
- 路由表需要對網路拓撲變化的計算最優化
- 轉發表是從路由表得出的
- 轉發表的結構應當使查找程序最優化
路由資訊協議RIP
路由資訊協議RIP(Routing Information Protocol)是內部網關協議IGP中最先得到廣泛使用的協議之一, 其相關標準檔案為RFC 1058,
RIP要求自治系統AS內的每一個路由器都要維護從它自己到AS內其他每一個網路的距離記錄,這是一組距離, 稱為“距離向量”,
RIP使用跳數(Hop Count)作為度量(Metric)來衡量到達目的網路的距離,
- 路由器到直連網路的距離定義為1,
- 路由器到非直連網路的距離定義為所經過的路由器數加1,
- 允許一條路徑最多只能包含15個路由器,“距離” 等于16時相當于不可達,因此,RIP只適用于小型互聯網,
RIP認為好的路由就是“距離短”的路由,也就是所通過路由器數量最少的路由,
當到達同一目的網路有多條“距離相等”的路由時,可以進行等價負載均衡,
RIP包含以下三個要點:
- 和誰交換資訊 : 僅和相鄰路由器交換資訊
- 交換什么資訊 : 自己的路由表
- 何時交換資訊 : 周期性交換
RIP的基本作業程序
①路由器剛開始作業時,只知道自己到直連網路的距離為1,
②每個路由器僅和相鄰路由器周期性地交換并更新路由資訊,
③若干次交換和更新后,每個路由器都知道到達本AS內各網路的最短距離和下一-跳地址,稱為收斂,
RIP的路由條目的更新規則
- 發現了新的網路,添加
- 到達目的網路,相同下一跳,最新訊息,更新
- 到達目的網路,不同下一跳, 新路由優勢,更新
- 到達目的網路,不同下一跳,新路由劣勢,不更新
- 到達目的網路,不同下一跳,等價負載均衡

RIP存在“壞訊息傳播得慢”的問題
“壞訊息傳播得慢”又稱為路由環路或距離無窮計數問題,這是距離向量演算法的一一個固有問題,
可以采取多種措施減少出現該問題的概率或減小該問題帶來的危害,
- 限制最大路徑距離為15 (16表示不可達)
- 當路由表發生變化時就立即發送更新報文(即“觸發更新”) ,而不僅是周期性發送
- 讓路由器記錄收到某特定路由資訊的介面,而不讓同一路由資訊再通過此介面向反方向傳送(即“水平分割”)
開放最短路徑優先OSPF
開放最短路徑優先OSPF(Open Shortest Path First),是為克服RIP的缺點在1989年開發出來的,
- “開放” 表明OSPF協議不是受某家廠商控制,而是公開發表的,
- “最短路徑優先” 是因為使用了Djkstra提出的最短路徑演算法SPF,
OSPF是基于鏈路狀態的,而不像RIP那樣是基于距離向量的,
OSPF采用SPF演算法計算路由, 從演算法上保證了不會產生路由環路,
OSPF不限制網路規模,更新效率高,收斂速度快,
鏈路狀態是指本路由器都和哪些路由器相鄰,以及相應鏈路的“代價”(cost) ,
- “代價”用來表示費用、距離、時延、帶寬,等等,這些都由網路管理人員來決定,
使用OSPF的每個路由器都會產生鏈路狀態通告LSA(Link State Adverisemen),LSA中包含以下內容:
- 直連網路的鏈路狀態資訊
- 鄰居路由器的鏈路狀態資訊
LSA被封裝在鏈路狀態更新分組LSU中,采用洪泛法發送,
使用OSPF的每個路由器都有一個鏈路狀態資料庫LSDB,用于存盤LSA,
通過各路由器洪泛發送封裝有自己LSA的LSU分組,各路由器的LSDB最終將達到一致,
使用OSPF的各路由器基于LSDB進行最短路徑優先SPF計算,構建出各自到達其他各路由器的最短路徑,即構建各自的路由表,
OSPF有以下五種分組型別
- 問候(Hello) 分組
- 資料庫描述(Database Description)分組
- 鏈路狀態請求 (Link State Request)分組
- 鏈路狀態更新 (Link State Update)分組
OSPF在多點接入網路中路由器鄰居關系的建立
- 鏈路狀態確認 (Link State Acknowledgment)分組
- 選舉指定路由器DR(designated router)和備用的指定路由器BDR(backup designated router)
- 所有的非DR/BDR只與DR/BDR建立鄰居關系
- 非DR/BDR之間通過DR/BDR交換資訊
為了使OSPF能夠用于規模很大的網路,OSPF把一個自治系統再劃分為若干個更小的范圍 ,叫做區域 (Area),
- 劃磁區域的好處就是把利用洪泛法交換鏈路狀體資訊的范圍局限于每一 個區域而不是整個自治系統 ,這就減少了整個網路上的通信量,


4.8 虛擬專用網VPN與網路地址轉換NAT
虛擬專用網VPN(Virtual Private Network)

- 利用公用的因特網作為本機構各專用網之間的通信載體,這樣的專用網又稱為虛擬專用網,
- 同一機構內不同部門的內部網路所構成的虛擬專用網VPN又稱為行內網VPN,
- VPN要保證傳輸資料的安全性,會將原始的內部資料報進行加密,然后再將其封裝成為在因特網上發送到的外部資料報,
- 有時一個機構的VPN需要有某些外部機構(通常就是合作伙伴)參加進來,這樣的VPN就稱為外聯網VPN,
- 在外地作業的員工需要訪問公司內部的專用網路時, 只要在任何地點接入到因特網,運行駐留在員工PC中的VPN軟體, 在員工的PC和公司的主機之間建立VPN隧道,即可訪問專用網路中的資源,這種VPN稱為遠程接入VPN,
網路地址轉換NAT(Network Address Translation)
- 由于IP地址的緊缺,一個機構能夠申請到的IP地址數量往往遠小于本機構所擁有的主機數量,因此,虛擬專用網中的各主機所分配的地址應該是本機構可自由分配的專用地址,而不是需要申請的、在因特網.上使用的公有地址,
- 雖然因特網采用了無分類編址方式來級訓IP地址空間耗盡的速度,但由于因特網用戶數目的激增,特別是大量小型辦公室網路和家庭網路接入因特網的需求不斷增加,IPv4地址空間即將面臨耗盡的危險仍然沒有被解除,
- 1994年提出了一 種網路地址轉換NAT的方法再次緩解了IP地址空間耗盡的問題,
- NAT能使大量使用內部專用地址的專用網路用戶共享少量外部全球地址來訪問因特網 上的主機和資源,
- 由于絕大多數的網路應用都是使用運輸層協議TCP或UDP來傳送資料,因此可以利用運輸層的埠號和IP地址一起進行轉換,這樣用一個全球IP地址就可以使多個擁有本地地址的主機同時和因特網上的主機進行通信,這種將埠號和IP地址一起進行轉換的技術叫作網路地址與埠號轉換NAPT(Network Address and Port Translation),
- 對于一些P2P網路應用,需要外網主機主動與內網主機進行通信,在通過NAT時會遇到問題,需要網路應用自己使用一些特殊的NAT穿越技術來解決問題,
- 由于NAT對外網屏蔽了內網主機的網路地址,能為內網的去機提供一定的安全保護,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/356281.html
標籤:其他
上一篇:如何確認用戶/通過http授權?
