第五章网络互联技术
網絡互聯技術
一. 網絡互聯概述
- 網絡互聯技術是所有能在物理和邏輯上實現不同網絡相互連接技術的總稱,對應ISO/OSI模型的各個層次
- 互聯
- 包括不同網絡之間在功能和應用上看起來像一個完整的網絡
- 自由順暢的運行
- 互連
- 將網絡通過有線或無線介質在物理上連接在一起
- 異構網絡
- 采用不同通信技術和運行協議的網絡
- 隧道技術可以兩個異地以太網的互聯
二. 網際協議(IP)
1. IP概述
- IP的功能對應OSI參考模型的網絡層
- 地址解析協議 ARP
- 網際控制報文協議 ICMP
- 網際組管理協議 IGMP
- IP網絡采用 路由器 作為網絡互聯的 中間設備
- 將不同的網絡連接在一起
- 在 網絡層 實現數據的 路由和轉發
- IP的特點
- IP是面向無連接的,不可靠的分組傳輸協議
- 沒有擁塞控制機制
- 對數據分組不保證不丟失,按序到達
- IP屏蔽了數據鏈路層和物理層的差異
- 使得數據的傳輸和轉發更方便
- 只要遵守網絡層的協議就可以轉發
- IP是點對點式網絡通信協議
- 點對點通信是指網絡中建立通信的兩臺計算機由一條物理信道相連接
- IP是面向無連接的,不可靠的分組傳輸協議
2. IPV4協議報文格式
-
版本號字段
- 4個字節
- 表示IP的版本號,IPV4的版本號字段值為 0100
-
首部長度字段
- 4個字節
- IP分組首部長度最大值為60個字節
-
區分服務字段
- 8個字節
- 指示期望獲得哪種類型的服務
- 只有在網絡提供區分服務時使用
-
總長度字段
- 16個字節
- 給出IP分組的總字節數,包括首部和數據部分
- 實際網絡中不會有這么大的IP分組
-
標識字段
- 16個字節
- 在IP分組分片和重組過程中,標識屬于同一源的IP分組
-
標志位字段
-
3個字節
-
DF為禁止分片標志
- =0 表示允許分片
- =1為禁止
-
MF為更多分片標志
- =0 表示未被分片的IP分組或者被分片的最后一片
- =1 表示該分組一定是一個IP分組的分片,并且不是最后一個
-
片偏移字段
-
13個字節
-
封裝的數據從哪個字節開始
-
以8個字節為單位
-
-
生存時間字段
- 8個字節
- 源主機在生成IP分組時設置TTL值
- 每經過路由器轉發一次,TTL就-1
- 如果等于0,則丟棄該IP分組
-
協議字段
- 8個字節
- 封裝的是哪個協議的數據包
- 利用該字段實現復用與解復用功能
-
首部校驗和字段
-
16個字節
-
對IP分組首部的差錯檢測
-
-
源IP地址字段
- 32個字節
- 源主機的IP地址
-
目的IP地址字段
- 需要送達的主機的IP地址
-
選項字段
- 范圍在1到40字節之間
- 可攜帶時間戳,路由記錄等內容
-
填充字段
- 0到3個字節
- 補齊整個首部
- 保證首部長度是4B的倍數
三. IP地址
1.什么是IP地址
- 目前普遍使用的IP地址是IPv4,用32位二進制表示
- 十進制數字間用點號隔開,點分十進制法
2. 分類的IP地址
-
分類的IP地址
- IP地址::{<網絡號>,<主機號>}
-
不同的網絡號和主機號的設置決定了IP地址的分類
- 包括 A B C D E 5類
-
A類地址
-
-
網絡號字段占1個字節
-
第一位固定位為0
-
可指派的網絡號個數為 2的7次方-2=126個
- 全0表示本地網絡
- 全1,用于回環測試,沒有意義
-
最大主機網絡數 2的24次方-2=16777214
-
全0表示本主機連接到單個網絡地址
-
全1表示該網絡上的所有主機
-
-
-
B類地址
-
-
網絡號占兩個字節
-
前兩位固定為10
-
128.0.0.0不可以指派
-
網絡號最大為 2的14次方-1=16383
-
最大主機數 2的16次方-2=65534
-
-
C類地址
-
網絡號占3個字節
-
前兩位固定為110
-
192.0.0.0不能用于指派
-
網絡號個數為 2的21次方-1=2097151
-
主機數位 2的8次方-2=254
-
D類與E類
- D類最高4位1110 用于IP多播
- E類最高4位1111 作為保留使用
-
子網劃分
-
劃分子網純屬一個單位內部的事情
- 單位對外仍然表現為沒有劃分子網的網絡
-
從主機號借用若干比特作為子網號,而主機號 也就減少了相應個比特
- IP地址:{<網絡號>,<子網號>,<主機號>}
-
子網劃分的好處
- 避免IP資源的浪費
- 增加靈活性
-
舉例
- 有一個C類地址,網絡地址為 202.194.20.0
- 則所有目的IP地址為 202.194.20. x 的IP數據報都會發送到與此網絡相連的路由器R上,該單位講主機號中的3位作子網號使用,剩下的5位做主機號,則最多可以在齊單位內部劃分出8個子網
- 202.194.20.0(子網號為 000)
- 202.194.20.32(子網號為 001)
- 202.194.20.64(子網號 010)
- 202.194.20.96(子網號 011)
- 202.194.20.128(子網號 100)
- 202.194.20.244(子網號 111)
- 每個子網可以容納 2的5次方-2=30 個主機數
- 劃分子網后,對外表現為一個網絡
-
子網掩碼
-
使得路由器能夠正確將IP數據報發送給網絡內部不同的子網
-
子網掩碼也是一個 32位 的二進制數
-
子網掩碼中的1對應IP地址中的網絡號和子網號字段
-
0對應主機號字段
-
A類地址默認的子網掩碼
- 255.0.0.0 (11111111 00000000 00000000 00000000)
-
B類地址的默認子網掩碼
- 255.255.0.0(11111111 11111111 00000000 00000000 )
-
C類地址的子網掩碼
- 255.255.255.0(11111111 11111111 11111111 00000000)
-
子網掩碼與目的IP地址配合起來,可知道該IP地址所在子網的網絡地址
-
將IP地址與子網掩碼按位進行 邏輯與(AND)運算
-
結果為所在子網的網絡地址
-
-
-
-
無分類編址CIDR
-
CIDR不再按照A B C類的類型區分IP地址
-
把32位的IP地址劃分為兩部分
-
前面的部分稱為 網絡前綴,用來指明網絡
-
后面的部分用來指明主機
-
無分類的兩級編址方式
- IP地址::={<網絡前綴>,<主機號>} 201.194.20.138/27 // 前27個比特用來表示前綴
-
-
網絡前綴位數就是 地址掩碼中的個數,地址掩碼的其余位為0
-
CIDR的主要作用
- 簡化路由器中的路由表
- 路由聚合,可以減少路由表條目
-
劃分子網
- 地址塊大小相等
- 先確定子網號,主機位數都一樣
- 地址塊大小不相等
- 先劃分地址數多的地址塊
- 先確定主機號所占位數,再確定子網號
- 地址塊大小相等
-
最長前綴匹配
- 為了充分利用路由聚集帶來的好處,又需要避免路由錯誤
- 可以在同一路由器中并列關于到達大子網和小子網的路由
- 小子網的網絡前綴 比 大子網的要長
- 使用CIDR進行路由選擇時,應該從匹配結果中選擇具有最長網絡前綴的路由
-
私有IP地址
- 在IP地址中劃出一部分地址作為保留使用
- 這部分地址可以在某個網絡內部使用,形成一個專用網
- 不能在公共互聯網上使用
-
NAT網絡地址轉換
- 基本思想
- 需要在專用網連接因特網的路由器上安裝NAT軟件
- 每個NAT路由器至少具有一個有效的全球IP地址
- 所有使用本地地址的主機在和外界通信時都要在NAT路由器上將其本地地址轉換才能和因特網連接
- 基本思想
-
四. IP路由概述
- 當Internet中的每一個參與通信的設備都被賦予有效的IP地址之后
- IP數據報就可以按照 IP地址 進行發送和接收
- IP路由
- 在整個網絡中為IP數據報尋找合適的通信路徑并且將其轉發出去的過程
- 由路由器實現的
1. 路由器的結構及功能
- 路由器
- 具有多個輸入 輸出端口的專用計算機
- 主要任務
- 獲取與維護路由信息及轉發分組
- 路由器從功能結構分為
- 輸入端口
- 輸出端口
- 交換結構
- 路由處理器
2. 路由表與路由轉發
- 路由 和 轉發 是路由器的兩項基本功能
- 通過靜態 或者 動態 獲取的路由信息被保存在路由表中,供數據轉發時使用
- 路由表以 路由項(入口) 來存儲路由信息的
*- 其中目的網絡與子網掩碼可以合并,采用CIDR地址形式表示
- 目的網絡與子網掩碼描述了一個 目的網絡
- 下一跳 表示 到達 下一個接口IP地址
- 如果是直連網絡,下一跳取值為空
- 接口是將 IP分組從哪個接口發出去
- 路由器有特殊的路由項
- 默認路由
- 特定主機路由
- 路由器的工作過程
- 收到IP分組,查找路由器,轉發IP分組
- 如果多條路由條目匹配,則選擇網絡前綴最長的
3. 路由算法
- 靜態路由與動態路由
- 靜態路由
- 人工配置的路由
- 路由信息被記錄到路由表后,下次被更改之前,一直保持不變
- 優先級最高
- 動態路由
- 路由信息根據網絡當前狀態,周期性的計算和更新路由信息
- 需要路由器運行路由協議動態收集信息,然后根據路由算法計算
- 靜態路由
- 距離-向量路由算法
- 異步,迭代,分散式的路由算法
- 周期性的向鄰居通告本路由信息,根據通告更新主機的路由表
- 并與鄰居交換路由信息
- 鏈路狀態路由算法
- 每個路由器根據其鏈路狀態,依據Dijkstra算法求出到達每個網絡的最短路徑
- 層次路由
- 層次化路由
- 按主機的策略和方法實現自己網絡的管理和路由
- 自治系統路由協議
- 選擇不同自治系統內的路由協議
- 按照不同的路由算法計算路由
- 網關路由器
- 每個自治系統存在一個或多個與其他自治系統互聯的路由器
- 層次路由分為
- 自治系統內路由
- 自治系統間路由
- 層次化路由
4. 路由協議
-
自治系統
- 采用的是統一技術管理下的一組路由器
-
域內路由與域間路由
-
內部網關協議IGP
- RIP OSPF
-
外部網關協議EGP
- BGP4
- 實現跨越不同自治協議交換
-
RIP路由協議
- 距離向量的IGP
- 直連網絡跳數為1,每經過一個路由器跳數+1,最大15跳
- 16跳表示不可達
-
OSPF路由協議
- 開放最短路徑優先協議
- 為了用于大規模自治系統網絡,提出區概念(主干區域為0.0.0.0)
-
BGP協議
-
外部網關協議
-
不同自治系統的路由器交換路由信息的協議
-
BGP會話交換包括以下4種
- 打開報文
- 更新報文
- 保活報文
- 通知報文
-
-
五. IP中的其他重要協議
1. 地址解析協議(ARP)
- 將 IP地址 轉換為 MAC地址的協議,在局域網內運行的
- ARP的基本思想
- 在每一臺的主機中設置專用內存區域(ARP高速緩存)
- 里面有該主機所在局域網中各個主機和路由器的 IP地址 與 硬件地址(MAC地址)的映射表
- 并且這個映射表要經常更新
- ARP的過程
- 主機A向本局域網中廣播發送一個ARP請求分組,本局域網中的所有運行ARP的主機都會收到這個請求
- 主機B收到后,IP地址不一致則丟棄,發現IP地址一致,則收下該分組,并將主機A的硬件地址和IP地址寫入自己的ARP高速緩存中
- 創建一個ARP響應分組,將自己的硬件地址寫入,發給主機A
- 主機A收到ARP響應后,將其中B的硬件地址寫入ARP高速緩存中的映射表
2. 動態主機配置協議(DHCP)
- DHCP采用的是客戶機/服務器模式
- 基本思想
- 在一個網絡內部設置一個DHCP服務器
- 當一臺計算機新接入該網絡時,還沒有配置IP地址
- 在開機啟動后向該網絡廣播發送一個DHCP發現報文
- DHCP服務器收到這個報文后,從IP地址數據庫中取出一個IP
- 與其他配置信息一起,通過DHCP提供報文發送給這臺計算機
3.網際控制報文協議ICMP
- 數據報在傳輸過程中出現延遲,丟失等異常情況
- 如果通信的雙方可以知道這些情況,就能及時調整和控制
- 提高網絡傳輸的效率和成功率
- ICMP報文有兩種類型
- ICMP差錯報告報文
- 終點不可達
- 當路由器或主機幫你交付數據報時,向源點發生終點不可達報文
- 其中報文類型值為3
- 源點抑制
- 當由于擁塞而丟棄數據報時,告知源點降低發生速率
- 類型值為4
- 時間超時
- 收到生存時間TTL值為0時,除丟棄該報文外,還要發送一個時間超時報文
- 類型值為11
- 參數問題
- 收到的報頭有不正確字段時,丟棄該報文,罰死你參數問題報文
- 類型值為12
- 改變路由
- 當路由器的路由表發生改變時,自己的也要改變,要向主機發送改變路由報文
- 類型值為5
- 終點不可達
- ICMP詢問報文
- 回答請求和回答
- 測試目的站是否可以到達
- 分組間探測ping命令
- 類型值分別是 8(回送報文) 0(回送回答)
- 時間戳請求和回答
- 在網絡中進行時鐘同步和測量時間
- 類型值 13(時間戳請求),14(時間戳回答)
- 回答請求和回答
- ICMP差錯報告報文
4. 網際組管理協議(IGMP)
- IGMP是網絡層協議,用于IP多播提供管理服務
- IP多播也稱為IP組播,針對Internet上一個源點向多個終點發送數據的業務而設計的(視頻點播,視頻會議…)
- 采用組播可以節省網絡資源
- 基本思想
- 利用多播IP地址標識一個多播組
- 當向一個多播IP地址發送IP分組時
- 該多播組內的所有成員都可以收到
- 加入新多播組
- 該主機需要向多播組的多播地址發送一個IGMP報文,表明自己想加入
- 本地的多播路由器收到后,根據多播路由協議將組員信息告知其他多播路由器
- 路由器詢問
- 各局域網所連接的多播路由器要周期性的探尋本地局域網的主機
- 確定這些主機是否還是某多播組成員
六. IPV6協議
1. IPV6采用了新的IP首部格式
-
包括基本首部和多個可選擴展首部
-
基本首部為固定的 40B長度
-
將IP地址設置為128位
- 用一個冒號十六進制數表示IPV6地址
- 一共8段 16個字節
-
- 版本號字段
- 指明了IP的版本,0110
- 通信業務類型
- 區分不同的IPv6數據報的類別或優先級
- 流標號
- IPv6中提出了數據業務流的概念,將(視頻,音頻等)定義為流
- 屬于同一個流的數據報,流標號是一樣的
- 有效載荷長度
- 除基本首部外的字節數,最大值為 64kb
- 下一個首部
- 當沒有擴展首部時,值用于指明基本首部后面的數據所屬的上層協議
- 有擴展首部時,表示后面的第一個擴展首部的類型
- 跳數限制
- 防止數據報在網絡中無限制的被轉發
- 每經過一個路由就-1,為0時,則丟棄
- 版本號字段
-
IPv6與IPv4的區別
- 去掉了 選項字段
- 校驗和字段
- 增加了流標號字段
- 基本首部變得簡潔
- 有利于快速路由
2. 壓縮IPV6
- 冒號十六進制表示方法還可以采用壓縮方式
- 對連續的多部分0,采用::代替
- 但在一個IPV6地址中只能用一次
- 例如:
- BC83:0000:0000:0000:0000:315A:0000:0000
- 壓縮為:BC83::315A:0000:0000
3. IPv6分類
- 單播地址
- 唯一標識網絡中的一個主機
- 可以用作源地址和目的地址
- 組播地址
- 只能用作目的地址
- 向一個組播地址發送IP分組,該組播地址標識的多播組每個成員都能收到
- 任播地址
- 標識網絡中的一組主機
- 只能用作目的地址
- 當向一個任播地址發送IP分組時,只有被標識的任播組的某成員收到該分組
總結
- 上一篇: 用python爬取智联招聘
- 下一篇: java74-GUL面板