平時不學習,期末火葬場。算法
一週時間靠王道考研和各路 pdf 自學計網,留下的提綱都在這裏了。全是乾貨。全文 pdf 能夠在這裏下載:http://cloud.billc.io/s/xNHarppQPGi3gSz數據庫
文章很長,建議在左側打開目錄導航。
水平有限,若有錯誤,敬請指正。祝你備考愉快。
Collected by Bill Chen, 2019.12, East China Normal University緩存
原文地址:https://billc.io/2020/01/computer-networks-final-review/服務器
Chapter 1 Overview
7 – layer OSI Modelcookie

- 計算機網絡:將分散的,具備獨立功能的計算機系統經過通訊設備與線路鏈接起來有完整的軟件實現資源共享和信息傳遞
- 計算機網絡是互聯的,自治的
概念和組成
計算機網絡的功能
- 數據通訊
- 資源共享
- 分佈式處理
- 提升可靠性
- 負載均衡(多臺計算機能夠更親密的溝通)
計算機網絡的組成
- 硬件、軟件、協議
- 工做方式 – 邊緣部分、核心部分
- 功能組成 – 通訊子網(OSI下三層通訊子網)、資源子網網(上三層的處理)
分類
- 廣域網WAN、城域網MAN、局域網WAN、我的區域網PAN
- 按照使用者分類:公用網、專用網(軍隊、政府、鐵路、公安)
- 按照交換技術:電路交換、報文交換、分組交換
- 按照拓補結構分:
- 按傳輸方式:廣播式、點對點
標準化
標準化相關工做
- 法定標準:Eg. OSI
- 事實標準:Eg. TCP/IP
- 指定標準的流程:
- RFC (Request For Comments):通過四個階段
- Internet Draft > Proposed Standard > (Draft Standard) > Internet Standard
- 因特爾草案 – 建議標準 – 因特爾草案
組織
- 國際標準化組織 ISO
- 國際電信聯盟 ITU
- 國際電氣電子工程師協會 IEEE – 學術標準、IEE802相關標準
- Internet 工程任務組 IETF
傳輸指標
- 速率:數據傳輸率 / 比特率 b/s kb/s Mb/s Gb/s Tb/s
- 帶寬:本來:某個信號具備的頻帶寬度,即最高頻率與最低頻率之差
- 計算機網絡中:指傳送數據的能力,最高數據率,網絡設備所支持的最高速度
- 單位:比特率 b/s kb/s Mb/s
- 帶寬變大:指的是可以注入的數據變多了,不能說是比特傳輸的速度變快了
- 吞吐量 (throughput):單位時間內經過某個網絡或接口的數據量
- 受到網絡的帶寬或網絡的額定速率的限制
- 吞吐量指的是實際的數據量(不是最大承載能力
- 時延:Latency,數據從網絡一端到另外一端所須要的時間
- 發送時延(數據長度/信道帶寬),傳播時延(信道長度/電磁波的傳播速率),排隊時延(等待輸出/輸入鏈路可用的時間),處理時延(校驗、尋找出口的時間)
- 高速鏈路只能改變發送時延
- 時延帶寬積:實驗帶寬積=傳播時延 * 帶寬
- 往返時延:RTT
- 指的是從發送方發送數據開始,到發送發收到接收方的確認,總共經歷時延
- 能夠經過
ping
命令測試RTT
- RTT 越大,能夠發送的數據越多(在等待收到接收方的確認以前)
- = 末端處理時間 + 傳播時延 * 2
- 利用率:分爲信道利用率 & 網絡利用率
- 信道利用率:有數據經過的時間 / 有+無數據經過的時間
- 網咯利用率:信道利用率的加權平均值
- 一般:利用率特別高的時候會增長時間,反倒會下降速度
分層結構
- Background:將網絡通訊的問題化爲小問題解決
-
基本原則:每層之間相互獨立網絡
- 每層之間界面自容清晰
- 結構上能夠分隔開
- 保持下層對上層的獨立性
- 促進標準化工做
- 實體第 n 層活動元素稱爲第 n 層實體
- 協議:爲進行對等實體的交換而創建的交換規則,標準或約定
- 接口(訪問服務點SAP),上層使用下層服務的入口
- 服務:下層相鄰上層提供的功能調用,僅僅在相鄰層之間提供服務,具體的硬件軟件沒有規定
- 計算機網絡體系結構是計算機網絡的各層及其協議的集合
通用分層模型
OSI
- History:DEC公司的DNA,美國國防部的TCP/IP等以前的許多網絡體系結構
- 只能實現公司內部的網絡通訊,不能實現全球的互聯互通
- ISO 於 1984 提出的開放系統互聯(OSI)參考模型
- ISO 提出的參考模型和互聯互通參考模型
- 理論成功,市場失敗(沒有辦法進入市場,某些功能會在多個層次重複出現,多個層次重複出現的功能)
- 物聯網淑慧試用(自下向上傳的七層結構的名稱)
- 通訊過程

- 上四層端到端(客戶端和客戶端之間的通訊),下三層點到點(某一箇中介系統可能會傳播到下一個節點)
- 各層:應用層:全部能和用戶產生網絡流量的程序
- 表示層:處理兩個通訊系統中交換信息的方式
- 數據格式交換
- 數據加密解密
- 數據壓縮和恢復
- 會話層:有序地傳輸數據,創建同步
- 使用校驗點在通訊失效的時候繼續恢復通訊,實現數據的同步傳送
- 傳輸層:用處:
- 提供可靠傳輸(須要確認機制)、不可靠傳輸(不須要確認機制)
- 差錯控制
- 流量控制
- 複用分用:
- 複用:多個應用層進程能夠同時使用下面傳輸層的服務(對於發送方)
- 分用:傳輸0層把收到的信息分別交付給上面應用層中的相應進程(對於接收方)
- 網絡層:
- 路由選擇(最佳路徑)
- 流量控制
- 差錯控制
- 擁塞控制(採起措施緩解全部節點都來不及接受)
- 數據鏈路層:
- 把網絡層傳下來的數據組裝成幀
- 數據鏈路層/鏈路層的傳輸單位是幀
- 物理層:
- 在物理媒體上實現的比特流的透明傳輸(單純地轉化成物理數據)
- 定義接口特性、定義傳輸模式(單工、雙工、半雙工)
- 定義傳輸速率
- 比特同步、比特編碼(曼切斯特編碼等等)
TCP/IP
Chaper 2 Physical Layer
通訊基礎
-
一個典型的數據通訊模型:分佈式

一些概念
- 數據:傳送信息的實體
- 信號:數據電氣/電磁的表現(數字信號&模擬信號)
- 信源:產生和發送數據的源頭
- 信宿:信號傳送的終點
- 信道:信號傳輸的媒介。
- 通訊方式:單工、半雙工、全雙工
通訊相關:學習
- 碼元:一個固定時長的信號波形(數字脈衝),表明不一樣離散數值的基本波形
- 數字通訊中數字信號的計量單位
- 1 碼元能夠攜帶多個比特的信息量
- K進制的碼元 – 碼元的離散狀態的個數(一樣的一個波形能夠對應幾個比特
- 速率:碼元傳輸速率:1s傳輸多少個碼元
- 信息傳輸速率:別名比特率、信息速率 – 1s傳輸多少個 比特
- 若一個碼元攜帶 nbit 的信息量,M baud 的碼元傳輸速率對應的信息傳輸速率 = M*n bit/s
- 波特:碼元傳輸速率的單位,每秒鐘內通訊線路狀態改變的次數。
- 帶寬:表示在單位時間內從網絡的某一點到另外一點所能經過的最高數據率(理想中的)
- Eg.

⭐️ 奈氏準則和香農定理
失真
- 現實中的信道干擾對信號源形成的干擾,部分干擾可恢復,部分不可恢復
- 碼間串擾:碼元傳輸速度過快的時候讓碼元不清楚
奈氏準則(奈奎斯特定理)/ Nyquist’s Theorem
- 在無噪聲條件下,爲了不碼間串擾,極限碼元傳輸速率爲$2W Baud$,其中W爲信道帶寬,Hz
- 極限數據傳輸速率 = $2Wlog_2Vb/s$,其中 W 爲帶寬,V 爲碼元進制數
香農定理 / Shannon’s Theorem
- 考慮了噪聲的影響
- 信噪比 = $10log_{10}(S/N)dB$ (若是不是給定的分貝的形式通常能夠直接代入計算,若是給定的分貝單位須要手動計算$S/N$)
- 信道的極限傳輸速率 = $Wlog_2(1 + S/N)$,W爲帶寬
- 只要信息的傳輸速率低於信道的極限傳輸速率,就必定能找到方法來實現無差錯的信息傳送
- ==:exclamation:在計算時要算兩個定理取最小值==
⭐️ 編碼與調製
-
信道:傳輸媒介
-
信號:分爲基帶信號和寬帶信號
- 基帶信號:將數字 1 和 0 直接用兩種不一樣的電壓來表示,再送到數字信道上去傳輸(基帶傳輸)。
- 寬帶信號:將基帶信號進行調製以後造成的頻分複用模擬愛信號,再傳送到模擬信道上去傳輸
- SUM:數字信道 – 基帶信號;模擬信道 – 寬帶信號
- 傳輸距離比較近的時候,使用基帶傳輸(信號不容易變化),傳輸距離較遠時,使用寬帶傳輸
-
將數據轉換爲:數字信號:編碼;模擬信號:調製
-
數字數據編碼爲數字信號:

- NRZ – 非歸零編碼(編碼容易實現,沒有檢錯功能,須要創建一個信道確立時鐘週期
- 1 傳輸完以後不歸零
- 不歸零逆轉編碼 —— 對於全 0 沒有問題,對於全 1 有問題
- 曼徹斯特編碼:自同步的編碼方式
- 數據傳輸速率只有調製速率的1/2

- 利用數據的上升沿或降低沿表示 0 或 1
- 差分曼徹斯特:同 1 異 0,前半個碼元的電平與上一個碼元
-
數字數據調製爲模擬信號
- 調幅 – 2ASK;調頻 – 2FSK;調相 – 2PSK
- 調幅 + 調相(QAM)
- 在第一種調製的基礎上再對第二種進行調製
- 根據不一樣的進制和相位計算波特率(求信號狀態種數)
-
模擬數據編碼爲數字信號
- PCM:可以達到最高保真水平的脈衝編碼調製
- 抽樣:對模擬數據進行週期性掃描, $f{採樣頻率}>2f{信號最高頻率}$
- 量化:把抽樣的電頻幅度按照標準轉化爲數字
- 編碼:把量化的結果轉換成對應的二進制編碼進行傳送
-
模擬數據調製爲模擬信號
物理設備
傳輸介質
- 傳輸媒體 ≠ 物理層
- 主要的傳輸介質
- 雙絞線 – 絞合能夠減小對相鄰導線的電磁干擾
- 同軸電纜:寬帶同軸電纜(數字信號) & 寬帶同軸電纜(模擬信號)
- 抗干擾性比雙絞線更好
- 光纖:利用傳遞光脈衝進行通訊,帶寬超級大
- 多模光纖(近距離)& 單模光纖(遠距離)
物理層設備
- 中繼器:對信號進行再生和還原,對衰減的信號進行放大
- 中繼器的兩端鏈接的是網段,而不是子網;在兩端使用的是同一個協議
- 集線器(多口中繼器):對信號再次進行放大轉發,接着轉發到其餘全部處於工做狀態愛的端口上,增長信號傳輸的距離,延長網絡的長度
Chapter 3 Data Link Layer
Overview
- 數據鏈路層的功能:在物理層的基礎上爲網絡提供無差錯的服務
- 無確認無鏈接服務、有確認無鏈接服務、有確認面向鏈接服務等
- 鏈路管理
- 成幀 / Framing
- 流量控制
- 差錯控制
一些概念
- 結點:主機和路由器
- 鏈路:兩個結點之間的物理通道,鏈路的
- 數據鏈路:網絡中的兩個結點之間的邏輯通道,實現控制數據傳輸協議的硬件和軟件加到鏈路上的有效線路
⭐ 成幀
- 在數據先後添加首部和尾部
- MTU 最大數據傳輸單元 = 幀中的載荷大小
- 透明傳輸:無論傳送的什麼樣的比特組合,都應該在數據鏈路成上順利傳輸
- 幾種方法:
- 字符計數法:幀首部使用一個計數字段來代表字符數

- 字符填充法:
SOH
和EOT
填充爲 Start of header 和 End of transmission
- 傳輸的是二進制代碼可能會出現結束字符同樣的比特組合的時候,須要用字符填充法解決
- 在控制信息的字符前添加
ESC
轉義字符
- 零比特填充法:在發送方只要連續 5 個 1,就填入 1 個 0。
- 在接收端收到一個幀時,先找到標誌字段肯定邊界,再掃描,5 個 1 就去掉 1 個 0。
- 違規編碼法:對於曼徹斯特編碼使用「高高」、「低低」來肯定幀的起始和終止
⭐️ 差錯控制
流量控制與可靠傳輸協議
Background
- 爲了控制發送方的發送速度
- 和傳輸層的區別:數據鏈路層的流量控制是點對點的,傳輸層的流量控制是端到端的。
- 數據鏈路層的手段:接收方收不下就不回覆確認
- 傳輸層的流量控制手段:接收端給發送端一個窗口公告
- 主要方法:中止-等待協議、滑動窗口協議(GBN & SR)
- 停等協議:發送窗口 = 1 接受窗口 = 1
- 後退 N :發送窗口 > 1,接收窗口 = 1
- 選擇重傳:發送窗口 > 1,接收窗口 > 1
- 滑動窗口主要解決的問題:流量控制和可靠傳輸
中止-等待協議 / Stop-Wait Protocol
- 是哪一層的問題?
- 計算機網絡發展前期質量很差,鏈路層要負責可靠傳輸,須要使用這些協議
- 如今鏈路層能夠暫時拋棄可靠傳輸,交給傳輸層解決
- 關於協議
- 解決的問題:爲了解
- 決丟包的問題
- 研究的前提:僅討論單工通訊
- 協議細節:

- 每次發送以後都啓動一個計時器,超時計時器應當比 RTT 更長一些(自動重傳)
- 發送完後必須保留副本
回退 N 協議 / Go Back N Protocol
- 中止等待協議信道利用率太低
- 協議中的窗口:
- 發送窗口:發送方維持一組連續的容許發送的幀序號
- 接收窗口:接收方維持一組連續的容許接收幀的序號
- 累計確認:GBN協議採用了累計確認的方式,代表接收方已經收到了 n 號幀和它以前的所有幀
- 超時事件:出現超時的時候,發送方會重傳全部已發送但沒有被確認的幀
- 協議細節:

- 對於發送方:確認窗口,開啓計時器,超時回退重傳
- 對於接收方:若正確,發送 ACK,並將數據交付上層
- 若錯誤,則直接丟棄幀,而且按照最近接收到的幀從新發送 ACK,接收方無需緩存任何失序幀,只須要維護一個
expectedseqnum
- 規定窗口的大小不能超過$2^{(n)}-1$,其中n爲有多少個比特來標誌了序號。
選擇重傳協議 / Selectve Repeat Protocol
- 解決問題:對於 GBN 算法中可能會出現批量重傳的問題(一次性損失太大)
- 只重傳出錯的幀,設置單個確認而不是累計確認,設置接收緩存,緩存亂序的幀
- 協議中的窗口:
- 發送窗口 & 接收窗口均大於 0,若是下界未收到確認,將不會滑動
- 接收窗口:只有窗口下界接收到纔會滑動,後面爲收到的處於等待接狀態

- 協議細節:

- 調用:檢查下一個幀序號,若是位於窗口中則發送,不然緩存數據或者先返回上層
- 發送方:收到 ACK,則幀將會標記爲已接收,若是是窗口下界則前進窗口
- 超時則重傳未收到確認的幀
- 接收方:對於窗口內的幀來者不拒(無論其順序)
- 失序的幀將會被緩存,而且向發送方發送確認幀。
- 若是收到了窗口以外的幀,說明==ACK 在傳輸過程當中丟失==,而且從新發送確認幀
- 滑動窗口的長度:
- 發送窗口最好等於接收窗口(大了會溢出,小了沒意義)
- 規定窗口的大小不能超過$2^{(n-1)}$,其中n爲有多少個比特來標誌了序號。(爲了不出現二義性)
Chapter 4 Media Access Control
一些術語
- DCF: Distributed Coordination Function — ad hoc architecture
- PCF: Point Coordination Function (Optional)
- OFDM: Orthodox Frequency Division Multiplexing (正交頻分多路複用)
- DSSS: Direct-Sequence Spread Spectrum(直接擴頻)
- FHSS: Frequency-Hopping Spread Spectrum (跳頻擴頻技術)
- BSS: Basic Server Set
- ESS: Extent Server Set (服務集)
- 發展歷史: 802.11b (QPSK 2.4GHz) -> 802.11a (OFDM 5.0GHz) -> 802.11g (OFDM .4GHz)
一些概念
-
點對點鏈路:PPP 協議,用於廣域網,相鄰節點經過一個鏈路相連
-
廣播式鏈路:全部主機共享通訊介質
-
介質訪問控制:==採起必定措施,使得兩對節點之間的通訊不會發生互相干擾==
-
多路複用:用一條廣播信道,把多條信道放在一個信道上
靜態信道劃分方式
- FDM 頻分多路複用:全部用戶佔用不一樣的帶寬,根據頻率的不一樣(相似於並行)
- TDM 時分多路複用:把時間劃分爲一段段等長的時分複用幀(相似於併發)
- STDM 統計時分複用:顯著提升時間利用率,分配時間片
- WDM 波分多路複用:光的頻率多路複用
- CDMA 碼分多路複用:將 1 個比特片分爲多個碼片 / 芯片,每個站點被指定一個惟一的 m 位的芯片序列,要求各個站點的芯片序列相互正交 (一般把 0 寫成 -1)
- 發送 1 時爲芯片序列,發送 0 爲反碼序列
- 合併方式:各路信道在信道中線性相加
- 分離方式:合併的數據和來源的芯片序列規格化內積,即對應位數相乘以後 / 8
- 結果爲 1 – 發送 1;結果爲 -1 – 發送 0;結果爲 0 – 未發送數據
動態信道劃分方式
-
令牌傳遞協議(輪詢訪問介質訪問控制)
- 令牌環網中具備多臺設備
- TCU (轉發器):傳遞全部接入的幀,
- 傳遞 token 獲取發送權限:令牌爲一個特殊的 MAC 控制幀,不含任何信息
- 主機獲得令牌後:修改令牌的標誌位,在令牌以後加入數據併發送數據
- 令牌會沿着令牌環傳遞
- 每一個節點都會在必定時間內得到發送數據的權力,並不無限持有令牌
- 主要問題:令牌開銷、等待延遲、單點故障
- 主要適用環境:負載較重、通訊量較大的網絡
-
ALOHA 協議(如下爲隨機訪問介質訪問控制)
- 純 ALOHA 協議:隨機從新發送,不按時間槽發送

- 若是發生了衝突,則從新發送(接收方會檢測是否發生了衝突,若發送方在一段時間內接受不到,則認定爲衝突發生)
- 分槽 ALOHA 協議:分時間內槽發送,全部用戶在時間片開始的時候同步接入網絡信道,若發生衝突,則必須等到下一個時間片開始的時候才發送
- 相比純 ALOHA:發生碰撞的機率更小,吞吐量和效率更高
-
CSMA 協議 /Carrier Sense Multiple Access
- CS 載波偵聽:每個站在發送數據前先檢測是否有其餘計算器在發送數據
- MA 多點接入:多個計算器接入同一根總線
- 堅持 CSMA / persistent CSMA:
- 空閒則直接傳輸,無需等待;忙則一直監聽,一空閒立刻傳輸
- 非堅持 CSMA / non-persistent CSMA:
- 空閒則直接傳輸,無需等待;忙則等待一個隨機的時間以後再監聽
- p-堅持 CSMA / p-persistent CSMA:
- 空閒則以 p 機率直接傳輸,機率 1-p 等到下一個時間槽開始的時候傳輸;
- 忙則等待一個隨機的時間以後再監聽
- 既能減小衝突,又能夠減小空閒等待時間
-
CSMA/CD / Carrier Sense Multiple Access / Collision Detection
- 傳播時延對載波偵聽的影響:當出現數據碰撞的時候中止發送
- 最遲檢測碰撞的時間:2t,其中 t 爲單程傳播時延(2t = 碰撞窗口/衝突窗口/爭用期)
- 確認重傳時機的細節:
- 確認退避時間(2t)> 定義參數 $k = min{重傳次數, 10}$
- 從離散的整數集合 ${0, 1, 2, …, 2^k -1}$選擇一個數 r,退避時間即爲 r 倍的基本退避時間
- 當重傳了 16次 仍然然不成功,說明網絡太擁擠,拋棄。
- 最小幀長問題:
- 爲了能使協議檢測到碰撞的時候數據尚未傳輸完成
- 幀的傳輸時延至少要兩倍於信號在總線中的傳輸時延
- *最小幀長 = 總線傳播時延 數據傳輸速率 2 = 2t 數據傳輸速率**
- 以太網規定的最短幀長爲 64B,長度更小的會被認定爲衝突幀。因此在發送前須要進行字節填充。
-
CSMA/CA / Carrier Sense Multiple Access / Collision Avoidance
- 主要用於無線局域網,沒法作到全面檢測,解決隱蔽站問題
- 讓周圍的全部節點都可以知道某個信道要發送數據
- 協議細節
- 發送數據前,先檢測信道是否空閒。發送
RTS
幀(Request to send),等待接收端發送CTS
(Clear to send)
- 發送端
CTS
後會預定信道,告訴其餘信道本身要傳送多少數據
- 接收端收到數據後用 CRC 檢驗數據是否正確,正確則響應 ACK
- 發送方收到 ACK以後能夠進行下一個幀的發送(二進制退避算法計算推遲時間)
- 和 CSMA/CD 相比:
- CSMA/CD 用於以太網,CSMA/CA 用於無線局域網
- 載波檢測不一樣
具體應用
局域網
- LAN Local Area Network
- 特色:覆蓋地理範圍小,使用專門的傳輸介質,通訊延遲時間短,各站爲平等關係,共享傳輸信道,各站平等關係,廣播信道
- 拓補結構:

- 局域網介質訪問控制的方法
- 使用 CSMA/CD:適用於總線型局域網
- 令牌總線:適用與總線型局域網,將總線型網絡中的各個工做站按照順序排列好發送
- 令牌環:適用於環型局域網
- 局域網的分類:
- 使用的標準:IEEE 802 標準,具備一系列的標準
- IEEE 802.3 以太網
- IEEE 802.5 令牌環網
- IEEE 802.8 光纖技術諮詢組,提供有關光纖聯網的技術諮詢
- IEEE 802.11 WLAN
- MAC 子層和 LLC 子層:LLC負責識別網絡協議,MAC子層負責數據幀的封裝
⭐️ 以太網
- Ethernet,使用 CSMA/CD 技術,在各類技術中佔統治性地位
- 網絡速率快,造價低廉
- 提供無鏈接、不可靠的傳輸服務(盡最大努力交付,只實現無差錯接受)
- 拓補結構:邏輯上總線型,物理上星型(因爲集線器的引入)
- 適配器與 MAC 地址:
- 計算機與外界局域網的鏈接經過通訊適配器實現,每一個適配器含有全球惟一的 MAC 地址
- 以太網 MAC 幀:(V2格式)

- 數據段含義:
- 目的地址:若是是全 f 則爲廣播地址
- 類型:數據的協議類型
- 因爲至少須要 64 字節,數據部分的長度在 46~1500 字節之間
- FCS:循環冗餘校驗碼
無線局域網
- 802.11 的 MAC 幀頭格式:
- 基礎服務集 BSS,拓展服務集 ESS (有限和無限服務集)
- 服務器標識符:WIFI名稱
鏈路層設備
- 網橋:根據 MAC 地址轉發,肯定將幀轉發到哪個端口
- 透明網橋:不知道通過了哪一個網橋,自學習
- 源路由網橋:肯定最佳路由放到幀的首部
- 交換機(多接口網橋)
- 直通式交換機(可靠性低)/ 存儲轉發式交換機(能夠檢查正確)
Chapter 5 Network Layer
- 主要功能
- 路由轉發與分組轉發、異構網絡互連、擁塞控制
- 擁塞控制:開環控制(靜態) & 閉環控制(動態)
數據報文交換
電路交換
- 在打電話的時候使用的交換方式
- 創建鏈接 — 通訊 — 釋放鏈接
- 特色:使用多路複用劃分電路,支持全部人可以同時使用資源
- 注意電路交換中每一條線路是獨佔的形式
- 優勢:數據直接傳輸,會按照順序發送,有序傳輸,且不會發生衝突,具備很強的實時性
- 缺點:創建時間差、線路使用效率低、靈活性差、沒有差錯控制能力
報文交換
- 報文發送到交換設備中(一般爲交換機),通過交換機之間的溝通交付給目的主機
- 有點:無需提早創建鏈接,動態分配線路,線路可靠性高,利用率高,多目標服務
- 缺點:有存儲轉發時延、報文大小不定
分組交換
- 分組:把大的數據塊分割爲小的數據塊
- 源主機報文切割爲等大的分隔片斷,依次發送到交換設備中
- 相對於報文交換,存儲管理更容易,線路的可靠性也有所提升(報文變短)
- 缺點:亂序到達,須要增大排序開銷
- 上述三種方式的比較:

數據報(因特網使用)
- 無鏈接服務
- 不事先爲分組的傳輸肯定路徑,每一個分組獨立肯定傳輸路徑,不用的路由器傳輸路徑不一樣
- 每一個分組攜帶源地址和目的地址
- 基於路由協議/算法創建轉發表,檢索轉發表並選擇線路
虛電路方式
- 鏈接服務
- 結合數據包和電路交換方式結合
- 協議細節:
- 記錄了一條源主機到目的主機的相似於電路的路徑(邏輯鏈接),路徑上的全部節點都要維持這條虛電路的創建,維持一張虛電路表
- 數據分組傳送,全雙工通訊(以分組的方式轉發)
- 和數據報的對比:

:star: 路由算法
- 分類
靜態路由算法:管理員手動配置路由信息
- 動態路由算法:彼此交換信息,按照路由算法算出表項
- 分層次的路由算法:使用自治系統處理(AS),由內部行政單位來管轄
- 每一個單位內部使用網關協議(如RIP、OSPF)
- 外部使用網關協議(BGP-4)進行交換
RIP 距離矢量路由
- 和相鄰路由器交換信息(直接交換路由表)
- 一個示例:
鏈路狀態路由
- OSPF:開放最短路徑優先協議
- 每隔 30min 刷新一次鏈路狀態
- 公開發表,不受某一個廠商控制
- 和全部路由器發送信息,只發送臨近的路由器的信息(對比 RIP,RIP 發送來自全部路由器的信息)
- 使用廣播的方式,和周圍的路由器發送路由器的狀態(和相鄰路由器交換鏈路狀態)
- 只有當鏈路狀態發生變化的時候泛洪發送信息
- 路由算法細節
- 發現他的鄰居節點並瞭解鄰居節點的網絡地址
- 設置到每一個鄰居的成本 metric
- 構造數據庫描述分組,向鄰站發送
- 若是都有則不做處理,若是沒有或者更新的則發送 LSR 請求更新信息
- 收到 LSR 分組後發送 LSU 進行更新,並返回 LSAck 鏈路狀態確認分組進行確認
逆向路徑轉發
生成樹算法
邊界網關 BGP
- 支持 CIDR,路由表包括網絡前綴
- 用於和其餘自治系統 AS 的鄰站 BGP 發言人交換信息
- 交換網絡可達性的信息,即要到達某個網絡索要通過的一系列 AS (用於層次路由)
IP / Internet Protocol
報文格式
- 報文中的單位:==總長度單位 1B,片偏移長度 8B,首部長度單位 4B==
- 總長度:首部 + 數據(單位爲 1B)
- 可選字段的範圍:0-40字節,用來支持未知特性
- 填充:補 0,保證首部長度爲 4 的整數倍
- 分組相關:
- MTU 最大傳送單元(以太網的 MTU 爲 1500 字節)
- 每個片都使用同一個標識
- 標誌位:
DF
Don’t Fragment;MF
More Fragment
- 片偏移:指出片在原分組中的相對位置,以 8 字節爲單位(除了最後一個分片,每一個分片都是 8 字節的整數)
- 該值爲每個數據分片下限和元數據報 0 字節位的偏移
- Eg.

IPv4 地址
-
給每個主機一個標識符,=網絡號,主機號
-
分類的 IP 地址:
-
(如今已幾乎不使用這種方式)主要使用子網劃分和 CIDR

-
一些特殊 IP 地址:
-
全爲 0,表示默認路由
-
全爲 1:本網廣播地址
-
網絡號爲特定值,主機號全 0,表示一個網絡
-
網絡號爲特定值,主機號全 0,表示一個直接廣播地址,能夠對特定主機進行廣播
-
主機號爲 127:本地軟件環回測試,環回地址
-
私有 IP 地址:

-
各種地址能夠劃分的網絡個數:

-
減 2:不能爲全 0(本機地址),不能爲全 1(廣播地址)
-
網絡地址轉換 NAT
- 在專用網和因特網上安裝 NAT 軟件,路由器至少應具備一個外部全球 IP 地址
- 同一個專用網中的全部主機經過 NAT 路由器進行地址轉換,轉換成外部 IP 地址
- 路由器存儲有 NAT 轉換表(WAN 到 LAN)
-
子網劃分和子網掩碼
- 分類地址對 IP 地址浪費過多
- 原理:將主機號分爲子網號和主機號(子網號和主機號不能全 0),使用三級地址
- 子網掩碼和源地址做與運算爲子網
-
無分類編址 CIDR
-
原理:使用二級地址:使用網絡前綴+主機號
-
融合了子網地址與子網掩碼,方便子網劃分
- 構成超網:若是前綴相同,則能夠將前綴縮短減小路由表的冗餘
- 在路由表中使用最長前綴匹配,即有多個網絡號符合要求則匹配更精確的一個
- 在 CIDER 技術中,子網號和前綴號均可以全 1 和全 0
其餘協議
- ARP(Address Resolution Protocol)地址解析協議,使用 mac 地址查找 IP 地址
- DHCP 動態主機配置協議:獲取動態配置地址,應用層
- ICMP(Internet Control Message Protocol)Internet 控制報文協議,在 IP 主機,路由器之間傳遞控制消息
網絡層設備
- 路由器:轉發,分組,具備多個輸入口多個輸出口的專用計算機
- 包含有路由表與轉發表,轉發表由路由表得來,能夠用軟件實現
- 和其餘層次的區別:
- 路由器(能夠互聯兩個不一樣網絡層協議的網段),網橋(能夠互聯兩個物理層和鏈路層的不一樣網段),集線器(不能互聯兩個物層的不一樣網段)
Chapter 6 Transport Layer
UDP 協議
TCP 協議特色
TCP 報文格式

- TCP首部必須爲 4字節的整數倍(填充位的做用)
- 序號字段:第一個字節使用的編號是多少(TCP會把每一個字節都編號)
- 確認號:指望收到對方下一個報文的字節數
- 加了長度字段以後會有一個字段固定首部多長
- 窗口:反映了發送方本身能夠容納的最多字節流
- 數據偏移:TCP報文段的數據距離起始部分有多遠,(會 x4
- 校驗和:檢驗 首部+TCP數據,對於頭部使用 ip僞頭部 + TCP頭
- 把僞首部、TCP報頭、TCP數據分爲16位的字,若是總長度爲奇數個字節,則在最後增添一個位都爲0的字節。
- 把TCP報頭中的校驗和字段置爲0。
- 用反碼相加法累加全部的16位字(進位也要累加)。
- 對計算結果取反,做爲TCP的校驗和。
- 僞首部共有12字節,包含以下信息:源IP地址、目的IP地址、保留字節(置0)、傳輸層協議號(TCP是6)、TCP報文長度(報頭+數據)。(和 UDP 相同)
- 緊急指針:之處緊急數據的字節數
- 6個控制位
- URG 緊急位:高優先級(移到發送方緩存的最前方
- ACK 確認爲:在鏈接創建後全部位設置爲 1
- PSH 推送爲:接收方應該及時交付給上層(及時從接收方的緩存移走
- RST 復位:代表出現嚴重差錯,必須釋放練級誒
- SYN 同步位:表示是一個請求鏈接或接受鏈接的報文
- 終止位 FIN:代表報文發送完畢,須要終止
- 選項:MSS、SACK、擴大等
:star: TCP 創建鏈接
-
三次握手創建鏈接

-
SYN = 1, seq = x(報文段是序號x
-
SYN = 1, ACK = 1, seq = y, ack = x + 1 (服務器收到的確認就是客戶端的x + 1)
-
服務器分配緩存和變量,並向客戶端返回確認報文
-
SYN = 0, ACK = 1, sqe = x + 1, ack = y + 1
-
客戶端分配緩存和變量
-
SYN 洪泛攻擊
黑客發送大量請求字段,使客戶端沒法完成鏈接的創建(Solution. SYN cookie)
-
服務原語

TCP 鏈接釋放
- 釋放鏈接的兩種方式
- 對稱釋放:兩方做爲單獨的鏈接控制斷開與鏈接 (TCP使用的方式)
- 非對稱釋放:一旦一方斷開鏈接兩側都斷開
- 四次揮手

- 客戶端:FIN = 1, seq = u
- 服務器:ACK = 1, seq = v, ack = u + 1(服務器端關閉,已經處於 CLOSE-WAIT 狀態)
- 服務器(發完數據):FIN = 1, ACK = 1, seq = w, ack = u + 1(這段時間客戶端不可能發送任何數據因此確認位相同)
- 客戶端:回覆一個確認報文段,再等待計時器設置的 2MSL 後完全關閉鏈接
- MSL: Maximum Survival Time 數據包的最長生存時間
TCP 差錯控制
- 確認機制:發送方把緩存發送給客戶端以後,等待接收方的確認
- 在收到接收方的確認以後從緩存中刪除
- 接收方使用累計確認的方式把已經收到的數據發送回發送方
- 以後接收方能夠從緩存中刪除
- 若是少了位,接收方 ack 將不會前進
- 重傳機制:發送條件複雜,不可簡單設置超時重傳(會增大網絡負荷
- RTTs:Round Trip Time (smooth):加權的平均往返
- 超時重傳(可能會等待時間過長)
- 冗餘 ACK:每當比指望小大的時候發送一個冗餘 ACK,代表期待的下一個字節的序號
- 好比連續收到多個將來的包,會發送多個 ACK,而接收方確認了多個冗餘的 ACK 以後,則認定該包丟失,會重傳(快重傳)
TCP 流量控制
TCP 擁塞控制
-
解決問題:網絡中的資源不夠用(解決客戶端之間的問題
-
XCP – eXplicit Congestion Protocol 顯示擁塞協議
-
ECN – Explicit Congestion Notification 顯示擁塞通知
- TCP 協議使用,使用比特位告知發送者是否擁塞但不控制具體擁塞的成都和量
-
AIMD – Additive Increase Multiplicative Decrease 加法遞增乘法遞減法則
- 達到有效和公平(收斂原則)

-
四種算法
-
收到冗餘 ACK 的時候執行快重傳算法,在重傳以後 快恢復
- 恢復不用下降到1,只用下降到新的 ssthresh 值,線性加法增大。
-
TCP Reno 已被棄用
The End.