計算機網絡_期末複習

目錄html

總結

TCP/IP的體系結構

1559977841411

1559977870893

1559977689664

segment:TCP報文段git

第一章概述

計算機網絡的定義

資源共享觀點的定義:以可以相互共享資源的方式互連起來的自治計算機系統的集合。github

網絡創建的主要目的是實現計算機資源的共享;
互連的計算機是分佈在不一樣地理位置的多臺獨立的「自治計算機系統」;
連網計算機在通訊過程當中必須遵循相同的網絡協議。算法

計算機網絡由若干結點和鏈接這些結點的鏈路數據庫

計算機網絡的分類

  1. 按照網絡的做用範圍分類編程

    廣域網 WAN(Wide Area NetWork)瀏覽器

    城域網 MAN(Metroploitan Area NetWork)緩存

    局域網 LAN(Local Area NetWork)安全

    我的區域網PAN(Personal Area Network)服務器

  2. 按照網絡的使用者分類

    公用網(public network)

    專用網(private network)

  3. 通訊介質

    有線網

    無線網

  4. 拓撲結構

    星型網絡,環型網絡,樹型網絡,網狀網絡

互聯網的組成

  1. 邊緣部分(資源子網)

    由全部鏈接在因特網上的主機組成

    用戶直接使用,用來進行通訊和資源共享

  2. 核心部分(通訊子網)

    由大量的網絡和鏈接這些網絡的路由器組成

    爲邊緣部分提供服務

互聯網的邊緣部分

端系統(主機):運行應用程序

計算機間的通訊:

客戶-服務器方式(C/S方式):客戶端主機請求,接收服務器的服務

資源主要存放在服務器端,服務器端須要強大的硬件和高級操做系統的支持,客戶端通常不須要特殊的硬件和複雜的操做系統

對等方式(P2P):對等鏈接中的每個主機既是客戶又同時是服務器

互聯網核心部分

報文(message):咱們把發送的整塊數據稱爲一個報文(message)

基本問題:數據如何經過網絡傳輸?

  • 電路交換
  • 報文交換
  • 分組交換

交換(switching):按照某種方式動態地分配傳輸線路的資源,就像電話交換機爲通話雙方接續線路同樣,這個過程被稱爲交換

電路交換

交換設備在通訊雙方找出一條實際的物理線路的過程

  • 特色:數據傳輸前須要創建一條端到端的通路

  • 三個階段:創建鏈接-通話-釋放鏈接

  • 優缺點:

    創建鏈接的時間長

    一旦創建鏈接就獨佔線路,線路利用率(進行數據傳輸的時候,因爲計算機數據具備突發性的特色,一條鏈接的大部分時間都是空閒的,線路的利用率很低)

    無糾錯機制

    創建鏈接後,傳輸延遲小

報文交換

整個報文做爲一個總體一塊兒發送

存儲轉發:交換過程當中,交換設備將接受到的報文先存儲,待信道空閒時再轉發出去,一級一級中轉,直到目的地

  • 缺點:

    報文大小不一,形成緩衝區管理複雜

    大報文形成存儲轉發的延時過長

    出錯後整個報文所有重發

  • 優勢

    能夠多個用戶同時在一條線路上傳送,能夠實現不一樣速率的通訊

分組交換

  • 將報文劃分紅若干個大小相等的分組(Packet)進行存儲轉發
  • 每一個分組包含了部分用戶信息和一些由必要的控制信息組成的首部(header)
  • 控制信息:路由信息(如目的地址,源地址)

中間結點對分組進行存儲並傳遞給下一個結點 ; 路由器主要任務轉發分組,即進行分組交換

優勢:

高效:動態分配傳輸帶寬,對通訊鏈路是逐段佔用

靈活:爲每一個分組獨立地選擇最適合地轉發路由

迅速:沒必要先創建鏈接就能向其餘主機發送分組

可靠:完善的網絡協議 ; 自適應的路由選擇協議使網絡有很好的生存性

問題:

分組再各個存儲結點須要排隊,形成必定的時延

分組必須攜帶首部(有必不可少的控制信息),在成必定開銷

1559443746065

計算機網絡性能指標

速率

即數據率或比特率

單位:b/s kb/s Mb/s Gb/s

每每指額定速率或標稱速率

帶寬(bandwidth)

單位時間內網絡的某個信道所能經過的最高數據率

數字信道所能傳送的最高數據率

單位:b/s

1559461222685

吞吐量(throughput)

單位時間內經過某個網路(或信道,接口)的實際的數據量.即在發送者和接收者之間傳送比特的速率

瞬時:接受時的速率

平均:一段時間內的速率

時延

  1. 發送時延

    發送數據時,數據塊從結點進入到傳輸媒體所須要的時間

    也就是從發送數據幀的第一個比特算起,到該幀的最後一個比特發送完畢所需的時間

    1559444992013

  2. 傳播時延

    電磁波在信道中須要傳播必定距離而花費的時間

    信號傳輸速率(即發送速率)和信號在信道上的傳播速率是徹底不一樣的概念

    1559445081004

  3. 處理時延:結點爲存儲轉發而進行一些必要的處理所花費的時間

  4. 排隊時延:結點緩存隊列中分組排隊所經歷的時延。
    排隊時延的長短每每取決於網絡中當時的通訊量

總時延 = 發送時延+傳播時延+處理時延+排隊時延

1559445821399

對於高速網絡鏈路,咱們提升的僅僅是數據的發送速率而不是比特在鏈路上的傳播速率。

提升鏈路帶寬減少了數據的發送時延。

不一樣的時延成分所起的做用變化很大,以車隊進入收費站爲例。

利用率

信道利用率:指出某信道有百分之幾的時間是被利用的(有數據經過)。徹底空閒的信道的利用率是零。

網絡利用率:是全網絡的信道利用率的加權平均值

信道利用率並不是越高越好

吞吐量和帶寬

一條路每秒最多能過100輛車(寬帶就至關於100輛/秒)。
而並非每秒都會有100輛車過,假如第一秒有0輛,第二秒有10輛...,(可是最多不能超過100輛)。
因此有第1秒0輛/秒,第2秒10輛/秒,第3秒30輛/秒,這不能說帶寬多少吧,因而就用吞吐量表示具體時間經過的量有多少(也有可能等於帶寬的量)。
由此可知帶寬是說的是最大值速率,吞吐量說的是某時刻速率。但吞吐量不能超過最大速率

計算機網絡基礎結構發展的三個階段

第一階段:ARPANET向互聯網發展;(從單個網絡向互聯網)
第二階段:三級結構的因特網(主幹網,地區網,校園網)
第三階段:多層次ISP(Internet Service Provider)結構的因特網

計算機網路體系結構

分層

如何組織網路體系結構?

「分層」可將龐大而複雜的問題,轉化爲若干較小的局部問題,而這些較小的局部問題就比較易於研究和處理。

分層的優勢:

  • 各層之間相互獨立 某一層不須要知道它的下一層時如何實現的,而只須要知道該層經過層間接口提供的服務.因爲每一層只實現一種相對獨立的功能,於是可將難處理的複雜問題分解成若干較容易處理的小問題
  • 靈活性好 任何一層發生變化,只要層間接口關係保持不變,則上下各層不受影響
  • 各層均可以採用最適合的技術實現
  • 易於實現和維護
  • 有利於促進標準化

層次結構方法要解決的問題

  1. 網絡應該具備哪些層次?每一層的功能是什麼?(分層與功能
  2. 各層之間的關係是怎樣的?它們如何進行交互?(服務與接口
  3. 通訊雙方的數據傳輸要遵循哪些規則?(協議

計算機網絡體系結構

計算機網絡的體系結構(architecture)是計算機網絡的各層及其協議的集合

體系結構 : 就是這個計算機網絡及其部件所應完成的功能的精肯定義

實現(implementation) : 是遵循這種體系結構的前提下用何種硬件或軟件完成這些功能的問題。

體系結構是抽象的,而實現則是具體的,是真正在運行的計算機硬件和軟件。

  • 實體:任何可發送或接受信息的硬件或軟件進程

  • 協議:控制兩個對等實體進行通訊的規則的集合

    協議三要素:

    • 語義:須要發出何種控制信息,完成何種動做以及作出何種響應,即「講什麼」
    • 語法:數據與控制信息的結構或格式,即「怎麼講」
    • 同步:事件實現順序的詳細說明。
  • 對等層 :在網絡體系結構中 ,通訊雙方實現一樣功能的層

  • 協議數據單元 :對等層實體進行信息交換的數據單位 .

  • 服務訪問點:同一系統相鄰兩層實體進行交互的地方,稱爲服務訪問點SAP(Service Access Point)

協議與服務的區別

  • 關係
    協議的控制下,兩個對等實體間的通訊使得本層可以向上一層提供服務,而要實現本層協議,還須要使用下面一層提供服務。
  • 協議和服務的概念的區分
    一、協議的實現保證了可以向上一層提供服務。本層的服務用戶只能看見服務而沒法看見下面的協議。下面的協議對上面的服務用戶是透明的。
    二、協議是 「水平的 」,即協議是控制兩個對等實體進行通訊的規則。但服務是 「垂直的 」,即服務是由下層經過層間接口向上層提供的。上層使用所提供的服務必須與下層交換一些命令,這些命令在 OSI 中稱爲服務原語

網絡體系結構的兩種標準

  • 法律上的國際標準 OSI/RM(開放系統互聯參考模型) 並無獲得市場的承認。
    • Open Systems Interconnection Reference Model
  • 而非國際標準的 TCP/IP 如今得到了最普遍的應用。
    TCP/IP 常被稱爲事實上的國際標準。

OSI/RM模型

七層從下至上:物理層,數據鏈路層,網絡層,運輸層,會話層,表示層,應用層

1559447706549

評價

層次數量與內容選擇不是很好,會話層不多用到,表示層幾乎是空的,數據鏈路層與網絡層有不少的子層插入;
尋址、流控與差錯控制在每一層裏都重複出現,下降系統效率;
數據安全性、加密與網絡管理在參考模型的設計初期被忽略了;
參考模型的設計更可能是被通訊的思想所支配,不適合於計算機與軟件的工做方式;
嚴格按照層次模型編程的軟件效率很低

各層功能

物理層:在物理介質上透明地傳輸比特流
數據鏈路層:爲穿越物理鏈路的信息提供可靠的傳輸手段,爲數據塊發送提供必要的同步,差錯控制和流量控制
網絡層:主要任務是如何將分組從源傳送到目的地

運輸層:提供可靠的、透明的端到端數據傳輸,並提供端點間的錯誤校訂和流量控制
會話層:爲應用程序間的通訊提供對話控制機制
表示層:定義了兩個應用之間進行交換的數據格式
應用層:提供給用戶訪問OSI環境的手段

TCP/IP協議

特色

開放的協議標準;
獨立於特定的計算機硬件與操做系統;
獨立於特定的網絡硬件,能夠運行在局域網、廣域網,更適用於互連網中;
統一的網絡地址分配方案,使得整個TCP/IP設備在網中都具備惟一的地址;
標準化的高層協議,能夠提供多種可靠的用戶服務

分層

應用層

運輸層

網際層

網絡接口層

1559458427756

TCP/IP 四層協議的表示方法舉例

1559458487388

評價

在服務、接口與協議的區別上不很清楚,一個好的軟件工程應該將功能與實現方法區分開,參考模型不適合於其它非TCP/IP協議族;
TCP/IP參考模型的網絡接口層自己並非實際的一層;
物理層與數據鏈路層的劃分是必要和合理的,而TCP/IP參考模型卻沒有作到這點

五層協議

應用層 application layer

運輸層 transport layer

網絡層 network layer

數據鏈路層 data link layer

物理層 physical layer

各層功能:

  1. 應用層:經過應用進程之間的交互完成特定的網絡應用
  2. 運輸層:向兩臺主機中進程之間的通訊提供通用的數據傳輸服務
    1. 提供可靠的、透明的端到端數據傳輸,並提供端點間的錯誤校訂和流量控制。
  3. 網絡層:負責爲分組交換網上的不一樣主機提供通訊服務
  4. 數據鏈路層:爲穿越物理鏈路的信息提供可靠的傳輸手段,爲數據塊發送提供必要的同步,差錯控制和流量控制
  5. 物理層 :在物理介質上透明地傳輸比特流

我估計純粹理論的東西你都有,談談感覺吧,這5層就是人爲的從邏輯上分出來的五個層面,也就是說一樣是傳來了一堆一樣的數據,站在不一樣的層面關心和實現不一樣的事情,若是你站在物理層,你就只須要關心把每一個比特流傳送到對方就好了;
若是你站在數據鏈路層,你會想辦法把這些比特流組合成塊,加上一些手段保證能正確傳輸;
若是你站在網絡層,你就能看到這些數據是由一個個數據包組成的,這些數據包都經過網絡地址標示着來自哪裏和要發往哪裏;
若是你站在傳輸層,你就能透過龐大的網絡直接看到你對放的有服務鏈接的計算機,是一種端到端的鏈接了

發送數據的順序

1559458827405

第二章物理層

物理層基本概念

物理層考慮的是怎樣才能在鏈接各類計算機的傳輸媒體上傳輸數據比特流,而不是指具體的傳輸媒體。
物理層的做用是要儘量地屏蔽掉不一樣傳輸媒體和通訊手段的差別。
用於物理層的協議也常稱爲物理層規程 (procedure)。

物理層接口

主要任務:肯定與傳輸媒體地接口有關的一些特性

機械特性:指明接口所用接線器的形狀和尺寸、引線數目和排列、固定和鎖定裝置等。

電氣特性:指明在接口電纜的各條線上出現的電壓的範圍。

功能特性:指明某條線上出現的某一電平的電壓表示何種意義

過程特性:指明對於不一樣功能的各類可能事件的出現順序。

全雙工,半雙工,單工

單工:只能有一個方向的通訊,而沒有反方向的交互

半雙工:通訊雙方均可以發送信息,但不能雙方同時發送

雙工:通訊雙方可同時發送和接受消息

數據通訊的基礎知識

數據通訊系統模型

一個數據通訊系統包括三大部分:源系統(或發送端、發送方)、傳輸系統(或傳輸網絡)和目的系統(或接收端、接收方)。

源系統包括兩部分:源點,發送器

目的系統:接收器,終點

通訊的目的:傳送信息(message)

1559463190270

經常使用術語

數據 (data) —— 運送消息的實體。
信號 (signal) —— 數據的電氣的或電磁的表現。
模擬信號 (analogous signal) —— 表明消息的參數的取值是連續的。
數字信號 (digital signal) —— 表明消息的參數的取值是離散的。

信道的基本概念

信道 —— 通常用來表示向某一個方向傳送信息的媒體。
單向通訊(單工通訊)——只能有一個方向的通訊而沒有反方向的交互。
雙向交替通訊(半雙工通訊)——通訊的雙方均可以發送信息,但不能雙方同時發送(固然也就不能同時接收)。
雙向同時通訊(全雙工通訊)——通訊的雙方能夠同時發送和接收信息。

奈式準則(無噪聲信道)

  • 奈式準則:理想低通訊道的最高碼元傳輸速率=2W Baud

    W:理想低通訊道的帶寬,單位Hz

    1559463752950

    每赫帶寬的理想低通訊道的最高碼元傳輸速率是每秒 2 個碼元。
    Baud 是波特,是碼元傳輸速率的單位,1 波特爲每秒傳送 1 個碼元

  • 波特和比特

    波特是碼元傳輸的速率單位(每秒傳多少個碼元)。碼元傳輸速率也稱爲調製速率、波形速率或符號速率。
    比特是信息量的單位(bps,b/s) 。

  • 波特率和比特率

$$
1 \text { Baud }=\left(\log _{2} M\right) bps
$$

碼元(code) —— 在使用時間域(或簡稱爲時域)的波形表示數字信號時,表明不一樣離散數值的基本波形。

在使用二進制編碼時,只有兩種不一樣的碼元,一種表明0狀態而另外一種表明1狀態

M表示離散性信號或電平的個數

一個信號每每能夠攜帶多個二進制位,因此在固定的信息傳輸速率下,比特率每每大於波特率。換句話說,一個碼元中能夠傳送多個比特(bit)。

我的理解:碼元是傳輸時,縱軸能夠表示的離散數值個數,好比8,就表明從底層到高層,有8種高度,轉化爲比特,由於比特是01二進制,所以對2求對數,這是表示3比特

香農公式(有噪聲信道)

香農(Shannon)用信息論的理論推導出了帶寬受限且有高斯白噪聲干擾的信道的極限、無差錯的信息傳輸速率。
信道的極限信息傳輸速率 C 可表達爲
$$
C=W \log _{2}(1+S / N) \quad \mathrm{b} / \mathrm{s}
$$
W爲信道帶寬 Hz

S爲信道內所傳信號的平均功率

N爲信道內部的高斯噪聲功率

信噪比(dB)=10 $\log _{10}(\mathrm{S} / \mathrm{N})$(dB)

  • 香農公式代表:

信道的帶寬或信道中的信噪比越大,則信息的極限傳輸速率就越高。
只要信息傳輸速率低於信道的極限信息傳輸速率,就必定能夠找到某種辦法來實現無差錯的傳輸。
若信道帶寬 W 或信噪比 S/N 沒有上限(固然實際信道不多是這樣的),則信道的極限信息傳輸速率 C 也就沒有上限。
實際信道上可以達到的信息傳輸速率要比香農的極限傳輸速率低很多。

  • 調製解調

    從以上所講的不難看出,對於頻帶寬度己肯定的信道,若是信噪比也不能再提升了,而且碼元傳輸速率也達到了上限值,那麼還有什麼辦法提升信息的傳輸速率呢?這就是用編碼的方法讓每個碼元攜帶更多比特的信息量。咱們能夠用個簡單的例子來講明這個問題。

    1559466973552

  • ;例題

    1559464818464

傳輸媒體

傳輸媒體分類

傳輸介質能夠分爲有線和無線傳輸介質

  • 有線介質 : 電磁波沿着物理通路呈導向性傳播
  • 無線介質 : 能夠傳播電磁波,但並不爲它們導向

有線介質有:雙絞線、同軸電纜、光纖等
無線介質通常指自由空間(大氣、真空)

雙絞線

  1. 非屏蔽雙絞線 (UTP) Unshielded Twisted Pair

    優勢:一、容易安裝且比其它類型的網絡介質便宜;二、尺寸較小,節省空間;
    缺點:一、易受電磁信號干擾;二、傳輸距離短

  2. 屏蔽雙絞線 (STP) Shielded Twisted Pair

    優勢:屏蔽雙絞線能對全部類型的外界干擾更有效地進行阻止
    缺點:在安裝費用和難度方面,它比非屏蔽雙絞線要昂貴和更困難

同軸電纜

  1. 粗纜
    鏈接距離長,可靠性高但安裝難度大,造價高
  2. 細纜
    安裝較簡單,造價也低,但需切斷電纜安裝網絡鏈接頭BNC,當接頭多時容易產生接觸不良的現象

光纖

  • 優勢:
    抗電磁干擾能力強
    低損耗
    高傳輸速率

  • 缺點:
    費用高
    不易安裝和維護
    質地脆易斷裂,機械性能差

  • 分類:

    1. 多模光纖

      不一樣的光線以不一樣的反射角傳播,能夠認爲每一束光線有一個不一樣的模式

      存在色散現象,適於中短距離中小容量的通訊

    2. 單模光纖

      光纖的直徑被減少到一個光波波長大小,光在其中沒有反射,而是沿直線傳播

      傳輸距離遠;衰減少;傳輸速率高;但價格昂貴;適於大容量遠距離通訊

信道複用技術

因爲一條傳輸線路的能力遠遠超過傳輸一個用戶信號所需的能力,爲了提升線路利用率,常常讓多個信號同時共用一條物理線路。
在同一介質上,同時傳輸多個有限帶寬信號的方法,被稱爲多路複用。

1559465380054

頻分複用 FDM(Frequency Division Multiplexing)

「帶寬」(bandwidth)原本是指信號具備的頻帶寬度,單位是赫(或千赫、兆赫、吉赫等)

載頻的定義:載波或者載頻(載波頻率)是一個物理概念,其實就是一個特定頻率的無線電波,單位Hz。在無線通訊技術上咱們使用載波傳遞信息,將數字信號調製到一個高頻載波上而後再在空中發射和接收。

調製的「對象」是載波信號的幅度、頻率,相位,或者這三者的混合。

  • 實現:

    頻帶被劃分爲若干個邏輯信道(頻帶,即帶寬,指信號所佔據的頻帶寬度)
    每一個信號被調製到不一樣的載波頻率
    載波頻率之間有間隙,保證信號不會重疊

  • 特色:全部用戶在一樣的時間佔用不一樣的帶寬資源

    1559465953309

時分複用 TDM(Time Division Multiplexing)

  • 實現

    時分複用則是將時間劃分爲一段段等長時分複用幀(TDM 幀)。每個時分複用的用戶在每個 TDM 幀中佔用固定序號的時隙
    每個用戶所佔用的時隙是週期性地出現(其週期就是 TDM 幀的長度)。
    TDM 信號也稱爲等時(isochronous)信號。

  • 特色

    時分複用的全部用戶是在不一樣的時間佔用一樣的頻帶寬度

1559466028511

時分複用可能會形成線路資源的浪費

1559466065119

時分複用和頻分多路複用的比較

FDM系統效率較高,充分利用了傳輸媒介的帶寬,實現也相對容易,但FDM系統所需載波量大,所需設備隨着輸入信號的增多而增多
TDM直接提供數字傳輸信道,很是適合於數據傳輸和其餘數字信號的傳輸;抗干擾能力強

第三章 數據鏈路層

鏈路層基本概念

數據鏈路層概述

節點:主機和路由器
鏈路:沿着通訊路徑鏈接相鄰節點的通訊信道。
數據鏈路: 除了物理鏈路外,還必須有通訊協議來控制這些數據的傳輸。若把實現這些協議的硬件和軟件加到鏈路上,就構成了數據鏈路。

第2層數據封裝單元:

數據鏈路層 負責從一個節點到一個相鄰節點的鏈路上傳輸數據幀

數據鏈路控制要解決地問題:如何在有差錯的線路上,進行無差錯傳輸

兩種鏈路類型

點對點信道:使用一對一的點對點通訊方式

廣播信道:使用一對多的廣播通訊方式

  • 點到點

    PPP 撥號訪問
    在以太網交換機與主機間的點到點鏈路

  • 廣播

    傳統以太網
    802.11 無線局域網
    衛星通訊

數據鏈路層主要功能

  1. 鏈路管理
  2. 成幀
  3. 流量控制
  4. 差錯控制
  5. 透明傳輸

數據鏈路層三個基本問題

  1. 封裝成幀

    封裝成幀(framing)就是在一段數據的先後分別添加首部和尾部,而後就構成了一個幀。肯定幀的界限

    首部和尾部的一個重要做用就是進行幀定界

  2. 透明傳輸

    設法使數據中可能出現的控制字符"SOH","EOT"再接收端不被解釋成爲控制字符

    使用字節填充的方法,即再控制字符前加轉義字符

  3. 差錯檢測

圖解:

封裝成幀

1559470953097

1559471032177

使用點對點信道的數據鏈路層

透明傳輸

1559471050026

發送端的數據鏈路層在數據中出現控制字符「SOH」或「EOT」的前面插入一個轉義字符「ESC」(其十六進制編碼是 1B)。
字節填充(byte stuffing)或字符填充(character stuffing)——接收端的數據鏈路層在將數據送往網絡層以前刪除插入的轉義字符。
若是轉義字符也出現數據當中,那麼應在轉義字符前面插入一個轉義字符。當接收端收到連續的兩個轉義字符時,就刪除其中前面的一個

1559471116811

差錯檢測(CRC)

在傳輸過程當中可能會產生比特差錯:1 可能會變成 0 而 0 也可能變成 1。
在一段時間內,傳輸錯誤的比特佔所傳輸比特總數的比率稱爲誤碼率 BER (Bit Error Rate)。
誤碼率與信噪比有很大的關係。

爲了保證數據傳輸的可靠性,在計算機網絡傳輸數據時,必須採用各類差錯檢測措施

僅用循環冗餘檢驗 CRC 差錯檢測技術只能作到無差錯接受(accept)。
「無差錯接受」是指:「凡是接受的幀(即不包括丟棄的幀),咱們都能以很是接近於 1 的機率認爲這些幀在傳輸過程當中沒有產生差錯」。
也就是說:「凡是接收端數據鏈路層接受的幀都沒有傳輸差錯」(有差錯的幀就丟棄而不接受)。
要作到「可靠傳輸」(即發送什麼就收到什麼)就必須再加上確認重傳機制

  • 糾錯碼:
    每一個傳輸的分組帶上足夠的冗餘信息;
    接收端能發現並自動糾正傳輸差錯。

  • 檢錯碼:
    分組僅包含足以使接收端發現差錯的冗餘信息;
    接收端能發現出錯,但不能肯定哪一比特是錯的,而且本身不能糾正傳輸差錯。

  • 循環冗餘校驗碼CRC

    添加r個0是爲了給添加餘數留位置

    這樣取r個0也能夠理解了,就像你除二進制,餘數的位數不可能超過除數

    模2除法,位數相同就取1不然0,運算時

    1559474705676

1559474661983

PPP協議

應用場景:用戶要鏈接到ISP才能接入互聯網,PPP協議是用戶和ISP通訊時使用的數據鏈路層協議

PPP協議三個組成部分

  1. 一個將IP數據報封裝到串行鏈路的方法
  2. 一個用來創建,配置和測試數據鏈路的鏈路控制協議LCP(Link Control Protocol)
  3. 一套網絡控制協議NCP(Network Control Protocol)

PPP幀格式

標誌字段 F 仍爲 0x7E (符號「0x」表示後面的字符是用十六進制表示。十六進制的 7E 的二進制表示是 01111110)。
地址字段 A 只置爲 0xFF。地址字段實際上並不起做用。
控制字段 C 一般置爲 0x03。
PPP 是面向字節的,全部的 PPP 幀的長度都是整數字節

1559477331049

透明傳輸問題

  1. 字節填充

    例題3-09 只需記住前兩條

  • 將信息字段中出現的每個 0x7E 字節轉變成爲 2 字節序列(0x7D, 0x5E)。
  • 若信息字段中出現一個 0x7D 的字節, 則將其轉變成爲 2 字節序列(0x7D, 0x5D)。
  • 若信息字段中出現 ASCII 碼的控制字符(即數值小於 0x20 的字符),則在該字符前面要加入一個 0x7D 字節,同時將該字符的編碼加以改變。
  1. 零比特填充

    每出現5個1添加一個0

使用廣播信道的數據鏈路層

共享信道的方法

  1. 靜態劃分信道 如前面提到的頻分複用,時分複用
  2. 動態媒體接入 信道並不是在用戶通訊時固定分配給用戶
    • 隨機接入 全部用戶能夠隨機地發送信息,若是恰巧有兩個或更多用戶在同一時刻發信息,共享媒體發生碰撞(衝突),使得用戶發送都失敗
    • 受控接入 用戶不能隨機發送信息,必須接受必定控制

局域網

  • 局域網特色:

    網絡爲一個單位所擁有,且地理範圍和站點數目均有限。

  • 主要優勢:

    具備廣播功能,從一個站點可很方便地訪問全網

    局域網上的主機可共享鏈接在局域網上的各類硬件和軟件資源。

    便於系統的擴展和逐漸地演變,各設備的位置可靈活調整和改變。

    提升了系統的可靠性、可用性和生存性

拓撲

  • LAN典型拓撲:(只有這三種,其餘沒有使用)

    總線型: 全部結點都直接鏈接到共享信道
    星型 : 全部結點都鏈接到中央結點
    環型 : 結點經過點到點鏈路與相鄰結點鏈接

  • 以太網拓撲

    以太網:採用星形拓撲,中心增長一種可靠性很是高的設備集線器

    1561712781863

IEEE802參考模型

1561379552963

  • LAN數據鏈路層的兩個子層:

    爲了使數據鏈路層能更好地適應多種局域網標準,802 委員會就將局域網的數據鏈路層拆成兩個子層:
    邏輯鏈路控制 LLC (Logical Link Control)子層
    媒體接入控制 MAC (Medium Access Control)子層。
    與接入到傳輸媒體有關的內容都放在 MAC子層,而 LLC 子層則與傳輸媒體無關,無論採用何種傳輸媒體和MAC子層的局域網對 LLC 子層來講都是透明的

1559477936704

  • 現狀:
    • 因爲 TCP/IP 體系常用的局域網是 DIX Ethernet V2 而不是 802.3 標準中的幾種局域網,所以如今 802 委員會制定的邏輯鏈路控制子層 LLC(即 802.2 標準)的做用已經不大了
    • 不少廠商生產的適配器上就僅裝有 MAC 協議而沒有 LLC 協議

以太網(Ethernet)

以太網基礎

以太網是一種基帶總線局域網

  • 兩種標準:

    Ethernet V2

    IEEE的802.3標準(設計一開始適應多種局域網標準,但發展到最後基本只剩以太網,以致於以太網成了局域網的代名詞)

802.3佈線介質標準

1559479002454

IEEE802.3和Ethernet幀格式

1559479355776

兩點區別:

  • IEEE802.3在12字節的地址後面是2字節的長度,而以太網數據幀的是2字節的類型值——能夠經過這個地方區分是IEEE802.3仍是以太網數據幀(由於IEEE802.3的長度值和以太網的類型值沒有相同的)
    • IEEE802.3沒有類型字段是由於它有LLC層負責識別網絡層協議
    • 而以太網幀沒有LLC層,直接面對網路層
  • 當"長度/類型"字段值小於0x0600(1536)時,數據字段必須裝入上面的邏輯鏈路控制LLC子層的LLC幀

介質訪問(媒體接入)控制方法

  1. CSMA:載波監聽多路訪問

    發送前監聽(先聽後說)。每一個站點在發送數據以前要監聽信道上是否有數據在傳送。如有,則此站不能發送,需等待一段時間後重試

  2. CSMA/CD(Carrier Sense Multiple Access with Collision Detection ):帶衝突檢測的載波監聽多路訪問

    工做原理

    發送數據之間監聽信道,空閒就發送

    忙則等待,直到空閒

    發送數據時邊發送邊監聽信道,若一直未檢測到碰撞,就順利把這個幀成功發送完畢

    一旦發生衝突,則中止發送

    按二級制指數算法退避,衝突數次後放棄發送

發前先偵聽,空閒即發送,
邊發邊檢測,衝突時退避

  1. 二進制指數退避算法

    當衝突發生後,時間被分紅離散的時槽。時槽長度等於在傳輸介質上來回傳輸的時間。802.3標準中規定時槽長度爲512比特時間即51.2$\mu s$。第一次衝突產生後,每一個站點等待0或1個時槽後嘗試從新發送;第二次衝突時從0、一、二、3中隨機挑選一個做爲等待的時槽數;第三次衝突將從$0-2^{3}-1$中挑選一個等待的時槽數。當衝突次數大於10次後,隨機等待的最大時槽數固定爲1023。在16次衝突後,站點放棄傳輸並報告一個錯誤

  2. CSMA/CD協議的以太網不太可能進行全雙工通訊而只能進行雙向交替通訊(半雙工通訊)

  3. CSMA/CD和CSMA和區別

    CSMA/CD中CD是碰撞檢測的意思

    邊發送邊檢測是否發生衝突,進而當即中止發送,省得進行無效的發送

衝突窗口

  • 注意
    • r*爭用期時間(這裏固定傳輸512bit花費的時間)

1559478797190

1559478849391

爭用期和最短幀長

  • 爭用期
    • 以太網的端到端往返時間
  • 最短幀長是爭用期時間發送的長度

一、假定1km長的CSMA/CD 網絡的數據率爲1G/s。設信號在網絡上的傳播速度爲200 000km/s,求可以使用此協議的最短幀長?

答:對於1km電纜,單程傳播時間爲1/200000=5爲微秒,來回路程傳播時間爲10微秒,爲了可以按照CSMA/CD工做,最小幀的發射時間不能小於10微秒,以Gb/s速率工做,10微秒能夠發送的比特數等於1010^-6/110^-9=10000,所以,最短幀是10000位或1250字節長

MAC地址

MAC地址(硬件地址或物理地址):

IEEE802標準爲每一個DTE規定了一個48位的全局地址,它是站點的全球惟一的標識符,與其物理位置無關
MAC地址爲6Byte(48位)。
MAC地址的前3個字節(高24位)由IEEE統一分配給廠商,低24位由廠商分配給每一塊網卡。
網卡的MAC地址能夠認爲就是該網卡所在站點的MAC地址。

1559479253997

拓展以太網

  1. 在物理層擴展以太網
    光纖
    中繼器、集線器
  2. 在數據鏈路層擴展以太網
    網橋
    交換機

集線器:傳統10Mbit/s 10個用戶 每一個1Mbit/s

交換機:每一個用戶獨佔 依舊10Mbit/s

局域網網絡設備工做原理

中繼器和集線器

  • 集線器是物理層網絡設備,也稱多端口中繼器
  • 對信號進行再生而且把它放大到全部的端口
  • 中繼器和集線器都是第1層的設備,所以它們不會對網絡流量進行過濾,中繼器會把一個端口收到的信號轉發到全部的端口
  • 擴展衝突域的範圍

交換機

數據鏈路層設備
也稱多端口網橋

  • 功能

    網絡分段、流量過濾

    分割衝突域,不能分割廣播域

    相互通訊的主機都是獨佔傳輸媒體,無碰撞地傳輸數據

三種功能:

地址學習(自學習):

在轉發過程當中採用自學習(也叫逆向學習)算法收集MAC地址。網橋經過分析幀的源MAC地址獲得MAC地址與端口的對應關係,並寫入地址/端口對應表;

轉發/過濾
避免環路

  • 工做原理:和網橋同樣
    • 網橋工做在混雜(promiscuous)方式,接收全部的幀;
    • 網橋接收到一幀後,經過查詢地址/端口對應表來肯定是丟棄仍是轉發;
    • 網橋剛啓動時,地址/端口對應表爲空,採用洪泛(flooding)方法轉發幀;
    • 在轉發過程當中採用自學習(也叫逆向學習)算法收集MAC地址。網橋經過分析幀的源MAC地址獲得MAC地址與端口的對應關係,並寫入地址/端口對應表;
    • 網橋軟件對地址/端口對應表進行不斷的更新,並定時檢查,刪除在一段時間內沒有更新的地址/端口項;
    • 幀的路由過程
      目的LAN與源LAN相同,則丟棄幀;
      目的LAN與源LAN不一樣,則轉發幀;
      目的LAN未知,則洪泛幀。

交換機自學習

1561471021058

衝突和衝突域

  • 在同一個網絡上,當兩個比特同時在進行傳輸時,就可能會發生衝突。
  • 一個網絡上如有過多的網絡流量則會致使嚴重的問題
  • 在網絡內部,數據分組產生和發生衝突的這樣一個區域被稱爲衝突域
  • 全部共享介質環境都是衝突域,一條線路可經過接插電纜、收發器、中繼器和集線器與另外一條線路進行鏈接,全部這些第1層互連設備都是衝突域的一部分
  • 當衝突發生的時候,捲入到衝突的數據分組會受到逐位的破壞

中繼器、集線器和衝突域

中繼器會對比特進行再生和重定時,可是中繼器不能對經過它們的業務流量進行過濾。中繼器會把一個端口收到的信號轉發到全部的端口
使用中繼器會擴展衝突域的範圍,在中繼器兩端的網絡是一個大的衝突域
集線器也稱多端口中繼器,進入集線器一個端口的任何信號都會再生、重定時並且被髮送到其他的全部端口
中繼器和集線器都是第1層的設備,所以它們不會對網絡流量進行過濾。

衝突域和廣播域的區別

  • 衝突域:
    • 物理層
    • 比特同時傳輸就會發生衝突
    • 以太網中,衝突域是由hub組織的。一個hub就是一個衝突域。交換機的每一個端口都是一個衝突域。
    • 一個站點向另外一個站點發出信號。除目的站點外,有多少站點能收到這個信號。這些站點就構成一個衝突域。
    • 交換機存儲的是MAC地址-端口號
  • 廣播域:
    • 鏈路層
    • 廣播域就是說若是站點發出一個廣播信號後能接收到這個信號的範圍。一般來講一個局域網就是一個廣播域。
    • 維護路由表

網橋

定義:網橋(bridge)是工做在數據鏈路層的一種網絡互連設備,它在互連的LAN之間實現幀的存儲和轉發。

爲何使用網橋?
學校和企業的各個部門分別擁有本身獨立管理的LAN,爲了進行交互,須要使用網橋來實現互連;
一個企業分佈在相隔很遠的不一樣建築物內,在每一個建築物內組建單獨的LAN,並使用網橋將這些LAN鏈接起來,是比較經濟的方案;
將一個負載很重的大LAN分隔成使用網橋互連的幾個LAN以減輕負擔;
LAN上的兩臺機器其距離超過2500米,必須使用網橋將這個 LAN 分隔以保證網絡的正常工做;
網橋能夠隔離負載,防止出故障的站點損害全網;
網橋能夠有助於安全保密。

以太網分段

  • 共享信道LAN的缺點:
    多個站點同時發送會形成衝突;
    網絡中站點越多,衝突現象越嚴重;
    每一個站點的平均擁有帶寬爲W/n;
  • 解決的方法:
    網段分割,在各段之間分離流量
    經過建立更小的衝突域,使每一個用戶能夠獲取更多的帶寬

1559480145055

1559480195615

1559480203943

虛擬局域網

  • 利用以太網交換機能夠很方便地實現虛擬局域網 VLAN (Virtual LAN)
  • 虛擬局域網 VLAN 是由一些局域網網段構成的與物理位置無關的邏輯組,而這些網段具備某些共同的需求。每個 VLAN 的幀都有一個明確的標識符(VLAN標記),指明發送這個幀的計算機是屬於哪個 VLAN。
  • 虛擬局域網其實只是局域網給用戶提供的一種服務,而並非一種新型局域網。

1559479573536

虛擬局域網限制了接收廣播信息的工做站數,使得網絡不會因傳播過多的廣播信息(即「廣播風暴」)而引發性能惡化。

第四章網絡層

網絡層提供的兩種服務

網絡如何處理分組?
兩種方式:數據報(datagram)和虛電路(virtual circuit)

無鏈接的網絡服務 數據報

面向鏈接的網絡服務 虛電路

數據報

  1. 每一個分組獨立選擇路由進行轉發
  2. 分組能夠不按序到達接收方,等到所有分組到達接收方後再從新對分組排序
  3. 每一個分組均帶有全稱網絡地址(源、目的),可走不一樣的路徑。
  4. 網絡盡最大努力地將分組交付給目的主機,但網絡對源主機沒有任何承諾

網絡不保證所傳送的分組不丟失
也不保證按源主機發送分組的前後順序
以及在時限內必須將分組交付給目的主機

數據報提供的服務是不可靠的

虛電路

  1. 發送任何分組以前,首先創建一條預約的路由
  2. 呼叫請求分組呼叫接受分組創建鏈接(邏輯鏈接)
  3. 在邏輯鏈接期間該路由是固定的,就好象電路交換中的一條電路,故稱爲虛電路
  4. 每一個分組中除數據外還包含虛電路號而不是目的地址
  5. 使用同一虛電路的分組只須要作一次路由選擇
  6. 清除請求分組能夠終止鏈接

1559481997666

數據報服務與虛電路的對比

1559482033145

1559482086001

網際協議IP

Internet Protocol

TCP/IP協議分層

1559482157473

1559482171425

IP概要

地位:

  1. IP協議是TCP/IP協議的核心
  2. IP以包(數據報)的形式傳輸數據,實現不可靠無鏈接的數據服務

用處:提供不可靠,無鏈接的數據報傳送服務

不可靠(unreliable):它不能保證IP數據報能成功地到達目的地。IP僅提供最好的傳輸服務。若是發生某種錯誤時,如某個路由器暫時用完了緩衝區, IP有一個簡單的錯誤處理算法:丟棄該數據報,而後發送ICMP消息報給信源端。任何要求的可靠性必須由上層來提供(如TCP)。
無鏈接(connectionless):IP並不維護任何關於後續數據報的狀態信息。每一個數據報的處理是相互獨立的。這也說明, IP數據報能夠不按發送順序接收。若是一信源向相同的信宿發送兩個連續的數據報(先是A,而後是B),每一個數據報都是獨立地進行路由選擇,可能選擇不一樣的路線,所以B可能在A到達以前先到達。

IP尋址

咱們把整個因特網當作爲一個單一的、抽象的網絡。IP 地址就是給每一個鏈接在因特網上的主機(或路由器)分配一個在全世界範圍是唯一的32 bit 的標識符

IP編址

分類的IP地址

每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號 net-id,它標誌主機(或路由器)所鏈接到的網絡,而另外一個字段則是主機號 host-id,它標誌該主機(或路由器)

1559482473890

指派範圍

1559482693401

1559482772264

IP地址的重要特色

  1. IP地址是一種分等級的地址結構

第一,IP 地址管理機構在分配 IP 地址時只分配網絡號,而剩下的主機號則由獲得該網絡號的單位自行分配。這樣就方便了 IP 地址的管理
第二,路由器僅根據目的主機所鏈接的網絡號來轉發分組(而不考慮目的主機號),這樣就能夠使路由表中的項目數大幅度減小,從而減少了路由表所佔的存儲空間。

  1. 實際上IP地址是標誌一個主機和一條鏈路的接口

當一個主機同時鏈接到兩個網絡上時,該主機就必須同時具備兩個相應的 IP 地址,其網絡號 net-id 必須是不一樣的。這種主機稱爲多歸屬主機 (multihomed host)。
因爲一個路由器至少應當鏈接到兩個網絡(這樣它才能將 IP 數據報從一個網絡轉發到另外一個網絡),所以一個路由器至少應當有兩個不一樣的 IP 地址。

  1. 用轉發器或網橋鏈接起來的若干個局域網仍爲一個網絡,所以這些局域網都具備一樣的網絡號 net-id
  2. 全部分配到網絡號 net-id 的網絡,不管是範圍很小的局域網,仍是可能覆蓋很大地理範圍的廣域網,都是平等的

1559483128313

子網劃分

子網掩碼:說明IP地址中的主機地址如何被劃分紅子網地址和本地主機地址兩部分。掩碼是一個32 bit的值,其中值爲1的比特留給網絡號和子網號,爲0的比特留給主機號
將目標IP地址與子網掩碼相「與」得到目標網絡/子網的地址

1559483520784

子網地址&主機地址範圍&廣播地址&子網位數

1559483536409

1559483804500

構造超網(無分類編址CIDR)

Classless Inter-Domain Routing

特色:

  • CIDR徹底放棄了固定的IP地址類型,使用網絡前綴來代替網絡類別,這個前綴能夠是任何長度
    例如:192.125.61.8/20 標識了一個網絡地址長度爲20位的CIDR地址,使用CIDR的路由器會查看斜槓後面的數字以肯定網絡號

  • 路由聚合

    • CIDR把網絡前綴都相同的連續的IP地址組成一個CIDR地址塊
    • 一個 CIDR 地址塊能夠表示不少地址,這種地址的聚合常稱爲路由聚合,它使得路由表中的一個項目能夠表示不少個(例如上千個)原來傳統分類地址的路由。
      極大地減小了路由表空間,提升了可擴展性。
  • 構造超網

    超網就是使用C類地址空間的連續區域來模擬一個單獨的、比較大的地址空間。
    設計超網的主要目的是爲了提供一種更靈活的替換方式來減輕B類地址空間的迅速枯竭而帶來的壓力。
    超網也可以減小路由選擇表的規模。

IP地址與硬件地址

  • 從層次的角度看,
    硬件地址(或物理地址)是數據鏈路層和物理層使用的地址。
    IP 地址是網絡層和以上各層使用的地址,是一種邏輯地址(稱 IP 地址是邏輯地址是由於 IP 地址是用軟件實現的)。
  • IP地址四個字節32位,MAC地址6個字節48位
  • MAC地址與位置無關,IP地址會隨位置變化
  • IP地址放在IP數據報首部,而MAC地址在MAC幀首部
  • IP地址主要用於網絡尋址,MAC地址主要用於識別站點

1559483201409

IP數據報流動

1559483232628

MAC幀流動

1561385539718

IP數據報格式

分爲首部數據部分

1559484969522

版本——佔 4 bit,指IP協議的版本,目前的 IP 協議版本號爲 4 (即 IPv4)

首部長度——佔 4 bit,可表示的最大數值是 15 個單位(一個單位爲 4 字節)
所以 IP 的首部長度的最大值是60字節

區分服務——佔 8 位,用來得到更好的服務在舊標準中叫作服務類型,但實際上一直未被使用過。1998 年這個字段更名爲區分服務。只有在使用區分服務(DiffServ)時,這個字段才起做用。在通常的狀況下都不使用這個字段

總長度——佔 16 bit,指首部和數據之和的長度,單位爲字節,所以數據報的最大長度爲 65535 字節。總長度必須不超過最大傳送單元 MTU。

標識(identification) 佔 16 bit,它是一個計數器,用來產生數據報的標識

標誌(flag) 佔 3 bit,MF=1表示後面還有分片,DF=1表示不能分片

片偏移(13 bit)指出:較長的分組在分片後某片在原分組中的相對位置。片偏移以 8 個字節爲偏移單位

生存時間(8 bit)記爲 TTL (Time To Live)數據報在網絡中的壽命

協議(8 bit)字段指出此數據報攜帶的數據使用何種協議以便目的主機的 IP 層將數據部分上交給哪一個處理進程

1559485320386

首部檢驗和(16 bit)字段只檢驗數據報的首部不包括數據部分。這裏不採用 CRC 檢驗碼而採用簡單的計算方法。

1559485397659

源地址和目的地址都各佔 4 字節

IP數據報分片

  • 爲何要分片

    IP層下面的每一種數據鏈路層協議都規定了數據幀的數據字段的最大長度,稱爲最大傳送單元MTU(Maximum Transfer Unit),當數據報總長度超過MTU時,就須要分片

  • 分片注意

    • 每一個分片的長度必定是8的整數倍
    • 片偏移的計算只是用數據字段,不使用首部長度(固定20字節),但考慮最大長度時要注意
  • 舉例

1559485100667

1559485267657

標識(identification) 佔 16 bit,它是一個計數器,用來產生數據報的標識

標誌(flag) 佔 3 bit,MF=1表示後面還有分片,DF=1表示不能分片

片偏移(13 bit)指出:較長的分組在分片後某片在原分組中的相對位置。片偏移以 8 個字節爲偏移單位

TTL

Time to live

  • 佔8位
  • 目的:防止沒法交付地數據報無限制地在互聯網中存在
  • 單位:跳數,路由器每次轉發數據報以前將TTL減一

協議

佔8位

指出該數據報攜帶的數據使用何種協議,以便使目的主機的IP層(網絡層)知道應將數據部分上交給哪一個協議處理

ICMP

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

用處:

  1. 爲了更有效地轉發 IP 數據報和提升交付成功的機會,在網際層使用了網際控制報文協議ICMP (Internet Control Message Protocol)。
  2. ICMP 容許主機或路由器報告差錯狀況和提供有關異常狀況的報告。

ICMP 是互聯網的標準協議。但 ICMP 不是高層協議(看起來好像是高層協議,由於 ICMP 報文是裝在 IP 數據報中,做爲其中的數據部分),而是 IP 層的協議。

ICMP報文有兩種,ICMP差錯報告報文ICMP詢問報文

4種差錯報告

終點不可達
時間超過
參數問題
改變路由(重定向)(Redirect)

1559485780027

ping

ping(Packet InertNet Groper)

目的:測試兩臺主機的連通性

步驟:

使用ICMP的回送請求報文,若是服務器正常工做,就會響應回送回答報文,從中能夠獲得分組丟失狀況

tracert

目的:跟蹤一個分組從源點到終點的路徑

步驟:

  • 從源主機向目的主機發送一連串IP數據包,數據報封裝沒法交付的UDP報文
  • 第一個數據報TTL設爲1,則P1到達第一個路由器時,TTL減爲0,丟棄,並向源主機發送ICMP時間超過差錯報文
  • 下一次比上一次TTL加一,一直到數據報傳送到目的主機時TTL=1,這時由於沒法交付,回傳給源主機ICMP終點不可達差錯報文

地址解析協議ARP

ARP:地址解析協議(Address Resolution Protocol)

已經知道了一個機器(主機或路由器)的IP地址,如何找出其相應的硬件地址
地址解析協議 ARP 就是用來解決這樣的問題的。

1559485929514

1559485973000

ARP要點

無論網絡層使用的是什麼協議,在實際網絡的鏈路上傳送數據幀時,最終仍是必須使用硬件地址。
每個主機都設有一個 ARP 高速緩存 (ARP cache),裏面有所在的局域網上的各主機和路由器的 IP 地址到硬件地址的映射表。

  • 當主機 A 欲向本局域網上的某個主機 B 發送 IP 數據報時,就先在其 ARP 高速緩存中查看有無主機 B 的 IP 地址。

  • 若有,就可查出其對應的硬件地址,再將此硬件地址寫入 MAC 幀,而後經過局域網將該 MAC 幀發往此硬件地址。

  • 如沒有, ARP 進程在本局域網上廣播發送一個 ARP 請求分組。收到ARP 響應分組後,將獲得的 IP 地址到硬件地址的映射寫入 ARP 高速緩存。

    IP數據報和MAC幀

  • ARP請求分組:包含發送方硬件地址 / 發送方 IP 地址 / 目標方硬件地址(未知時填 0) / 目標方 IP 地址。

  • 本地廣播 ARP 請求(路由器不轉發ARP請求)。

  • ARP 響應分組:包含發送方硬件地址 / 發送方 IP地址 / 目標方硬件地址 / 目標方 IP 地址。

  • ARP 分組封裝在物理網絡的幀中傳輸。

1559486120378

注意

ARP 是解決同一個局域網上的主機或路由器的 IP 地址和硬件地址的映射問題。
若是所要找的主機和源主機不在同一個局域網上,那麼就要經過 ARP 找到一個位於本局域網上的某個路由器的硬件地址,而後把分組發送給這個路由器,讓這個路由器把分組轉發給下一個網絡。剩下的工做就由下一個網絡來作。

從 IP 地址到硬件地址的解析是自動進行的,主機的用戶對這種地址解析過程是不知道的。
只要主機或路由器要和本網絡上的另外一個已知 IP 地址的主機或路由器進行通訊,ARP 協議就會自動地將該 IP 地址解析爲鏈路層所須要的硬件地址。

路由器

主要任務:進行分組轉發

路由器是工做在第三層(網絡層)上的網絡設備,它將網段或整個網絡鏈接起來
路由器基於第三層地址對數據包進行轉發
路由器具備必定的智能,可以決定在網絡上轉發數據包的最佳路徑

功能

  • 路由器可以把多個段分紅各自的衝突域和廣播域
  • 路由器基於第三層的包頭信息來轉發數據包
  • 路由器可根據它們的配置來執行橋接和路由選擇的功能
  • 其它功能:
    流量過濾
    路由表維護
    數據包格式轉換

劃分組網的狀況下轉發

(1)從分組的首部提取目的IP地址D

(2)先用與該路由器直接相連的網絡的子網掩碼與D進行與運算,看結果是否與相應的網絡
地址相匹配。若匹配,則進行直接交付。
不然就是間接交付,立刻執行(3)

(3)若路由表中有一條到目的主機D的特定路由,則將分組轉發給其指明的下一跳路由器。
不然執行(4)

(4)對路由表中每一行的子網掩碼和D進行與運算,若結果與該行的目的網絡地址匹配,則將
分組傳給該行指明的下一跳路由器。
不然執行(5)

(5)若路由表中有一個默認路由,則將分組傳給路由表中指明的默認路由器。
不然執行(6)

(6)報告轉發分組出錯。

廣播域

當一個網絡設備想訪問另一個不知道具體位置的網絡設備的時候,它就會對全部的網絡設備進行廣播,全部能接收到這些的廣播的設備所組成的區域稱爲廣播域
若是網絡中發送的廣播過多的話,就會產生廣播風暴,會形成網絡超時及流量的速度變慢,從而大大下降了網絡的工做效率
因爲網橋工做在第2層,所以它會轉發廣播幀,網橋的兩端是一個大的廣播域
隔離廣播域的方法是使用第三層設備,如路由器

1559486324582

動態路由和靜態路由

靜態路由的信息是手工管理的,網絡管理員將其輸入到路由器的配置中。當網絡拓撲結構發生改變時,網絡管理員必須手工更新靜態路由信息
動態路由採起了不一樣的工做方式,網絡管理員經過配置命令啓動了動態路由以後,路由進程就能自動地使用從網絡上收到的信息來更新本身的路由信息

路由選擇算法_距離向量路由算法

屬於動態路由算法
基本思想
每一個路由器維護一張表,表中給出了到每一個目的地的已知最佳距離和線路,並經過與相鄰路由器交換距離信息來更新表;
以子網中其它路由器爲表的索引,表項包括兩部分:到達目的結點的最佳輸出線路,和到達目的結點所需時間延遲或距離;
每隔一段時間,路由器向全部鄰居結點發送它到每一個目的結點的距離表,同時它也接收每一個鄰居結點發來的距離表;
鄰居結點X發來的表中,X到路由器i的距離爲Xi,本路由器到X的距離爲m,則路由器通過X到i的距離爲Xi + m。根據不一樣鄰居發來的信息,計算Xi + m,並取最小值,更新本路由器的路由表

1559486553507

自治系統

  • 定義

    自治系統又稱爲路由域、自治域,它是若干個能夠交換內部路由信息的路由器的集合;多個自治系統能夠經過邊界路由器互聯起來。

  • 目的:

    互聯網太大,若是全部路由器都知道全部網路該怎麼到達,代價太大

    許多單位不但願外界瞭解子集單位網絡的佈局細節和路由選擇協議,同時但願能鏈接到互聯網

    將互聯網劃分紅許多較小的自治系統

1562150606373

路由選擇協議分類

  1. 內部網關協議ICP(Interior Gateway Protocol)

    在一個自治系統內部使用的選擇協議,而與其餘自治系統使用的選擇協議無關

  2. 外部網關協議(External Gateway Protocol) 當前使用BGP()

    若源主機和目的主機處在不一樣的自治系統,當數據報傳到一個自治系統的邊界就須要使用一種協議將路由選擇信息傳遞到另外一個自治系統,這樣的協議就是外部網關協議

RIP和OSPF的主要特色

都是內部網關協議

  • 距離向量路由協議 RIP(RoutingInformationProtocol)
    1. 和相鄰的路由器交換信息
    2. 交換本路由器全部信息,即本身如今的路由表(到全部網路的距離和下一跳路由器)
    3. 按固定時間間隔交換信息
    4. 最優通路依據跳數
  • 鏈路狀態路由協議 OSPF(OpenShortestPathFirst)開放最短路徑優先
    1. 向本自治系統全部路由器發送信息,使用洪泛法
    2. 發送信息相鄰全部路由器的鏈路狀態 , 「鏈路狀態」就是說明本路由器都和哪些路由器相鄰,以及該鏈路的」度量「。對於RIP協議,發送的信息是:「到全部網絡的距離和下一跳路由器」。
    3. 當鏈路狀態發生變化時,才交換信息
    4. 最優通路依據代價
    5. 全部路由器都保存一個全網的拓撲結構圖

IPV6

image

版本——4bit。指明瞭協議的版本,對IPV6該字段老是6
通訊量類——8bit。用來區分不一樣的IPV6數據報的類別或優先級
流標號(flow label)—— 20 bit。「流」是互聯網絡上從特定源點到特定終點的一系列數據報, 「流」所通過的路徑上的路由器都保證指明的服務質量。 全部屬於同一個流的數據報都具備一樣的流標號
有效載荷長度——16bit。它指明IPV6數據報除基本首部之外的字節數,其最大值爲64kb
下一個首部——8bit。至關於IPV4的協議字段或可選字段
跳數限制——8bit。源站在數據報發出時即設定條數限制。每通過路由器的轉發就減1,爲0時就要將該數據報丟棄。

IPV6地址

  • 128位,16個字節

  • 冒號16進制記法:

    68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF

  • 零壓縮

    • 零壓縮(zero compression),即一連串連續的零能夠爲一對冒號所取代。
    • FF05:0:0:0:0:0:0:B3 能夠寫成:FF05::B3

IPV6數據報首部

IPv6 將首部長度變爲固定的 40 字節,稱爲基本首部(base header)。
將沒必要要的功能取消了,首部的字段數減小到只有 8 個。
取消了首部的檢驗和字段,加快了路由器處理數據報的速度。
在基本首部的後面容許有零個或多個擴展首部。
全部的擴展首部數據合起來叫作數據報的有效載荷(payload)或淨負荷。

IPV6拓展首部

  • IPv6 將原來 IPv4 首部中選項的功能都放在擴展首部中,並將擴展首部留給路徑兩端的源站和目的站的主機來處理。
  • 數據報途中通過的路由器都不處理這些擴展首部(只有一個首部例外,即逐跳選項擴展首部)。
  • 這樣就大大提升了路由器的處理效率。
  1. 逐跳選項
  2. 路由選擇
  3. 分片
  4. 鑑別
  5. 封裝安全有效載荷
  6. 目的站選項

IPV4到IPV6兩種過渡策略

  • 雙協議棧(dual stack)是指在徹底過渡到 IPv6 以前,使一部分主機(或路由器)裝有兩個協議棧,一個 IPv4 和一個 IPv6。
  • 隧道技術(tunneling):將IPv6數據報封裝成爲IPv4 數據報。

第五章 運輸層

運輸層協議概述

從通訊和信息處理的角度看,運輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層,同時也是用戶功能中的最低層。

1559962546521

應用進程的通訊

兩個主機進行通訊實際上就是兩個主機中的應用進程互相通訊。
應用進程之間的通訊又稱爲端到端的通訊。
運輸層的一個很重要的功能就是複用分用。應用層不一樣進程的報文經過不一樣的端口向下交到運輸層,再往下就共用網絡層提供的服務。
運輸層提供應用進程間的邏輯通訊」。「邏輯通訊」的意思是:運輸層之間的通訊好像是沿水平方向傳送數據。但事實上這兩個運輸層之間並無一條水平方向的物理鏈接。

1559962699126

運輸層協議和網絡層協議的區別

1559963185519

運輸層的主要功能

  • 運輸層爲應用進程之間提供端到端的邏輯通訊(但網絡層是爲主機之間提供邏輯通訊)。
  • 運輸層還要對收到的報文進行差錯檢測。IP數據報中的校驗和字段只校驗首部不校驗數據部分
  • 運輸層須要有兩種不一樣的運輸協議,即面向鏈接的 TCP無鏈接的 UDP

運輸層向上提供可靠的和不可靠的邏輯通訊信道

1559963352894

運輸層兩個協議

TCP/IP的運輸層有兩個不一樣的協議:

(1) 用戶數據報協議 UDP

(2) 傳輸控制協議 TCP

1559963425561

兩個對等運輸實體在通訊時傳送的數據單位叫做運輸協議數據單元 TPDU (Transport Protocol Data Unit)。

  • TCP 傳送的協議數據單位是 TCP 報文段(segment)
  • UDP 傳送的協議數據單位是 UDP 報文或用戶數據報
  • UDP 在傳送數據以前不須要先創建鏈接。對方的運輸層在收到 UDP 報文後,不須要給出任何確認。雖然 UDP 不提供可靠交付,但在某些狀況下 UDP 是一種最有效的工做方式。
  • TCP 則提供面向鏈接的服務。TCP 不提供廣播或多播服務。因爲 TCP 要提供可靠的、面向鏈接的運輸服務,所以不可避免地增長了許多的開銷。這不只使協議數據單元的首部增大不少,還要佔用許多的處理機資源。
  • 運輸層的 UDP 用戶數據報與網際層的IP數據報有很大區別。IP 數據報要通過互連網中許多路由器的存儲轉發,但 UDP 用戶數據報是在運輸層的端到端抽象的邏輯信道中傳送的。
  • TCP 報文段是在運輸層抽象的端到端邏輯信道中傳送,這種信道是可靠的全雙工信道。但這樣的信道殊不知道究竟通過了哪些路由器,而這些路由器也根本不知道上面的運輸層是否創建了 TCP 鏈接。

端口

  • 端口就是運輸層服務訪問點 TSAP。
  • 端口的功能:就是讓應用層的各類應用進程都能將其數據經過端口向下交付給運輸層,以及讓運輸層知道應當將其報文段中的數據向上經過端口交付給應用層相應的進程。
  • 從這個意義上講,端口是用來標誌應用層的進程
  • 端口用一個 16 bit 端口號進行標誌。
  • 端口號只具備本地意義,即端口號只是爲了標誌本計算機應用層中的各進程。在因特網中不一樣計算機的相同端口號是沒有聯繫的。因而可知,兩個計算機中的進程要互相通訊,不只必須知道對方的 IP 地址(爲了找到對方的計算機),並且還要知道對方的端口號(爲了找到對方計算機中的應用進程)。

1559963829112

端口複用分用

每一個孩子都是經過名字來識別的,當Bill從郵差那裏收到一批信件,他就會進行一個分用工做——看每封信是郵寄給誰而且送到收信人手上,Ann會進行一個複用工做——從孩子們那裏收集信件並把這些信件交給郵差

端口就是郵差這一角色 應用層的數據就是信 收信人就是進程

傳輸層的數據包:segment(段)

分用是把運輸層segment(段)中的信息發送給正確的socket的服務
複用是把全部socket中的數據集中並加頭信息封裝,而後發送到網絡層的服務(網絡上的兩個程序經過一個雙向的通訊鏈接實現數據的交換,這個鏈接的一端稱爲一個socket。)

:

複用是指發送方不一樣的應用進程均可以使用同一個運輸層協議

分用:接收方的運輸層剝去報文的首部後,可以把這些數據正確的交付目的進程

端口號及其分類

  • (1) 服務器端使用的端口號
    • 熟知端口,數值通常爲 0~1023
    • 登記端口號,數值爲 1024~49151,爲沒有熟知端口號的應用程序使用的。使用這個範圍的端口號必須在 IANA 登記,以防止重複。
  • (2) 客戶端使用的端口號
    • 又稱爲短暫端口號,數值爲 49152~65535,留給客戶進程選擇暫時使用。
    • 當服務器進程收到客戶進程的報文時,就知道了客戶進程所使用的動態端口號。通訊結束後,這個端口號可供其餘客戶進程之後使用。

1559964302696

UDP(UserDatagramProtocol)

用戶數據報

  • UDP 只在 IP 的數據報服務之上增長了不多一點的功能,即端口的功能和差錯檢測的功能。
  • 雖然 UDP 用戶數據報只能提供不可靠的交付,但 UDP 在某些方面有其特殊的優勢。

UDP的主要特色

  • UDP 是無鏈接的,即發送數據以前不須要創建鏈接。
  • UDP 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制。
  • UDP 是面向報文的。UDP 沒有擁塞控制,很適合多媒體通訊的要求。
  • UDP 支持一對1、一對多、多對一和多對多的交互通訊。
  • UDP 的首部開銷小,只有8個字節。

面向報文

1559964753470

UDP首部格式

用戶數據報 UDP 有兩個字段:數據字段和首部字段。首部字段有 8 個字節,由 4 個字段組成,每一個字段都是兩個字節。

僞首部:在計算檢驗和時,臨時把「僞首部」和 UDP 用戶數據報鏈接在一塊兒。僞首部僅僅是爲了計算檢驗和。

1559964796065

端口分用

1559964905057

TCP(TransmissionControlProtocol)

傳輸控制協議

  • TCP是一種面向鏈接的協議
  • TCP的目的:用於在不可靠的互連網絡上(不一樣的拓撲結構、帶寬、延遲、分組大小及其它參數)實現可靠的端-端字節流服務
  • IP層不保證報文正確傳輸,TCP進行超時重傳控制
  • 報文不必定按順序到達,TCP進行從新裝配

TCP特色

  • TCP 是面向鏈接的運輸層協議。
  • 每一條 TCP 鏈接只能有兩個端點(endpoint),每一條 TCP 鏈接只能是一對一的。
  • TCP鏈接的端點是套接字
  • TCP 提供可靠交付的服務。
    • 經過確認和重傳機制
    • 自動重傳請求協議ARQ(Automatic Repeat reQuest)
  • TCP 提供全雙工通訊。
  • 面向字節流

TCP報文段的首部格式

1559965395693

1559965509181

源端口和目的端口字段——各佔 2 字節。端口是運輸層與應用層的服務接口。運輸層的複用分用功能都要經過端口才能實現。

序號字段——佔4 字節。TCP 鏈接中傳送的數據流中的每個字節都編上一個序號。序號字段的值則指的是本報文段所發送的數據的第一個字節的序號。

1559979506874

確認號字段——佔 4 字節,是指望收到對方的下一個報文段的數據的第一個字節的序號。

1559979605915

數據偏移(即首部長度)——佔 4 位,它指出 TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠。「數據偏移」的單位是 32 位字(以 4 字節爲計算單位)。

1559979736161

保留字段——佔 6 位,保留爲從此使用,但目前應置爲 0。

緊急 URG —— 當 URG = 1 時,代表緊急指針字段有效。它告訴系統此報文段中有緊急數據,應儘快傳送(至關於高優先級的數據)。

確認 ACK(acknowledgment) —— 只有當 ACK = 1 時確認號字段纔有效。當 ACK = 0 時,確認號無效。

推送 PSH (PuSH) —— 接收 TCP 收到 PSH = 1 的報文段,就儘快地交付接收應用進程,而再也不等到整個緩存都填滿了後再向上交付。

復位 RST (ReSeT) —— 當 RST = 1 時,代表 TCP 鏈接中出現嚴重差錯(如因爲主機崩潰或其餘緣由),必須釋放鏈接,而後再從新創建運輸鏈接。

同步 SYN —— 同步 SYN = 1 表示這是一個鏈接請求或鏈接接受報文。

1559979823749

終止 FIN (FINis) —— 用來釋放一個鏈接。FIN = 1 代表此報文段的發送端的數據已發送完畢,並要求釋放運輸鏈接。

窗口字段 —— 佔 2 字節,用來讓對方設置發送窗口的依據,單位爲字節。

1559979890674

檢驗和 —— 佔 2 字節。檢驗和字段檢驗的範圍包括首部數據這兩部分。在計算檢驗和時,要在 TCP 報文段的前面加上 12 字節的僞首部。僞首部格式與UDP用戶數據報的僞首部格式一致

緊急指針字段 —— 佔 16 位,指出在本報文段中緊急數據共有多少個字節(緊急數據放在本報文段數據的最前面)。

以上前20各字節固定,後面4n字節根據需求增長

選項字段 —— 長度可變。TCP 最初只規定了一種選項,即最大報文段長度 MSS。MSS 告訴對方 TCP:「個人緩存所能接收的報文段的數據字段的最大長度是 MSS 個字節。」

MSS (Maximum Segment Size)是 TCP 報文段中的數據字段的最大長度。數據字段加上 TCP 首部纔等於整個的 TCP 報文段。

中止等待協議及其信道利用率

中止等待:

發送完分組後就中止發送,等待對方確認.在收到確認後再發送下一個分組

信道利用率:
$$
U=\frac{T_D}{T_D+RTT+T_A}
$$
U:信道利用率

$T_D$:發送分組時間

$RTT$:往返時間

$T_A$:發送確認時間

連續ARQ協議

  • 發送方維持滑動窗口,它的意義:窗口內部的5個分組均可以連續發出,不須要等待確認
  • 發送方每收到一個確認就把發送窗口向前滑動一個分組
  • 接收方通常採起累計確認,再收到幾個分組後,對按序到達的最後一個分組發送確認
    • 累計確認優勢是:容易實現,即便確認丟失也沒必要重傳

TCP的鏈接控制

TCP 是面向鏈接的協議。
運輸鏈接有三個階段:

  • 鏈接創建
  • 數據傳送
  • 鏈接釋放

運輸鏈接的管理就是使運輸鏈接的創建和釋放都能正常地進行。

客戶-服務器方式

  • TCP鏈接的創建採用客戶服務器方式。
  • 主動發起鏈接創建的應用進程叫作客戶(client),
  • 被動等待鏈接創建的應用進程叫作服務器(server)。

鏈接創建

TCP 創建鏈接的過程叫作握手
握手須要在客戶和服務器之間交換三個 TCP 報文段。稱之爲三報文握手
採用三報文握手主要是爲了防止已失效的鏈接請求報文段忽然又傳送到了,於是產生錯誤。

1559980933851

ACK確認位

ack確認號

  1. A 的 TCP 向 B 發出鏈接請求報文段,其首部中的同步位 SYN = 1,並選擇序號 seq = x,代表傳送
    數據時的第一個數據字節的序號是 x。
  2. B 的 TCP 收到鏈接請求報文段後,如贊成,則發回確認。B 在確認報文段中應使 SYN = 1,使 ACK = 1,
    其確認號ack = x +1,本身選擇的序號 seq = y。
  3. A 收到此報文段後向 B 給出確認,其 ACK = 1,確認號 ack = y + 1。A 的 TCP 通知上層應用進程,鏈接已經創建。

加一,不知道你說的是SYN標誌位佔據sequence的一個序號,仍是對方確認加一?

若是是前者,那是由於SYN是創建鏈接的關鍵字段,而爲了確保對方接收到,使用超時重傳機制,TCP規定,只爲有數據的TCP報文重傳,SYN佔據一個序號(能夠認爲只有一個字節數據的報文),因此TCP會重傳SYN報文。

TCP鏈接釋放

TCP 鏈接釋放過程比較複雜。
數據傳輸結束後,通訊的雙方均可釋放鏈接。
TCP 鏈接釋放過程是四報文握手

1559982328867

  1. 數據傳輸結束後,通訊的雙方均可釋放鏈接。如今 A 的應用進程先向其 TCP 發出鏈接釋放報文段,並中止再發送數據,主動關閉 TCP 鏈接。A 把鏈接釋放報文段首部的 FIN = 1,其序號seq = u,等待 B 的確認。
  2. B 發出確認,確認號 ack = u+1,而這個報文段本身的序號 seq = v。TCP 服務器進程通知高層應用進程。從 A 到 B 這個方向的鏈接就釋放了,TCP 鏈接處於半關閉狀態。B 若發送數據,A 仍要接收。
  3. 若 B 已經沒有要向 A 發送的數據,其應用進程就通知 TCP 釋放鏈接。
  4. A 收到鏈接釋放報文段後,必須發出確認。 在確認報文段中 ACK = 1,確認號 ack = w + 1,本身的序號 seq = u + 1。

TCP 鏈接必須通過時間 2MSL(最長報文段壽命) 後才真正釋放掉。防止B沒接受到最後ACK,重傳FIN

流量控制

流量控制:讓發送方的發送速率不要太快,要讓接收方來得及接收。
TCP 採用大小可變的滑動窗口進行流量控制。窗口大小的單位是字節
在 TCP 報文段首部的窗口字段寫入的數值就是當前給對方設置的發送窗口數值的上限。
發送窗口在鏈接創建時由雙方商定。但在通訊的過程當中,接收端可根據本身的資源狀況,隨時動態地調整對方的發送窗口上限值(可增大或減少)。

1559983164144

發送端要發送 900 字節長的數據,劃分爲 9個 100 字節長的報文段,而發送窗口肯定爲 500 字節。
發送端只要收到了對方的確認,發送窗口就可前移。(須要確認才移動,而不是發送)
發送 TCP 要維護一個指針。每發送一個報文段,指針就向前移動一個報文段的距離。

1559983345018

發送端已發送了 400 字節的數據,但只收到對前 200 字節數據的確認,同時窗口大小不變。
如今發送端還可發送 300 字節。

1559983409329

發送端收到了對方對前 400 字節數據的確認,但對方通知發送端必須把窗口減少到 400 字節。
如今發送端最多還可發送 400 字節的數據。

擁塞控制

擁塞:當加載到網絡上的載荷超過其處理能力時,擁塞便會出現。

擁塞的後果:

分組丟失形成超時的緣由:

  • 傳輸線路的噪聲干擾
  • 擁塞的路由器丟棄了分組

目前互聯網上發生的大多數超時現象都是因爲擁塞形成的,傳輸錯誤形成的分組丟失較少。

擁塞控制:防止過多數據注入到網絡中,這樣能夠使網絡中的路由器或鏈路不致過載。

  • 擁塞控制是一個全局性的過程。涉及到全部的主機,全部的路由器,以及與下降網絡傳輸性能有關的因素,而流量控制是點對點通訊量的控制
  • 解決擁塞最切實的辦法是下降數據傳輸速率。
  • 擁塞控制大部分是由TCP完成的。TCP試圖經過動態地控制滑動窗口的大小來達到控制擁塞地目的。
  • 幾種擁塞控制方法:慢開始、擁塞避免、快重傳和快恢復。

擁塞窗口

發送方維持一個叫作擁塞窗口 cwnd (congestion window)的狀態變量。擁塞窗口的大小取決於網絡的擁塞程度,而且動態地在變化。發送方讓本身的發送窗口等於擁塞窗口。如再考慮到接收方的接收能力,則發送窗口還可能小於擁塞窗口。
發送方控制擁塞窗口的原則是:只要網絡沒有出現擁塞,擁塞窗口就再增大一些,以便把更多的分組發送出去。但只要網絡出現擁塞,擁塞窗口就減少一些,以減小注入到網絡中的分組數。

單位:其實是字節數,但爲了敘述方便書本使用報文段個數

慢開始算法

在主機剛剛開始發送報文段時可先設置擁塞窗口 cwnd = 1,即設置爲一個最大報文段 MSS 的數值。
在每收到一個對新的報文段的確認後,將擁塞窗口加 1,即增長一個 MSS 的數值。
用這樣的方法逐步增大發送端的擁塞窗口 cwnd,能夠使分組注入到網絡的速率更加合理。

1559984544400

發送方每收到一個對新報文段的確認(重傳的不算在內)就使 cwnd 加 1。

每通過一個傳輸輪次(transmission round),擁塞窗口cwnd加倍

傳輸輪次所經歷的時間就是往返時間:RTT(Round-TripTime),即將擁塞窗口所有發送出去,並收到對已發送的最後一個字節的肯定

設置慢開始門限狀態變量ssthresh

慢開始門限 ssthresh 的用法以下:
當 cwnd < ssthresh 時,使用慢開始算法。
當 cwnd > ssthresh 時,中止使用慢開始算法而改用擁塞避免算法。
當 cwnd = ssthresh 時,既可以使用慢開始算法,也可以使用擁塞避免算法。
擁塞避免算法的思路是讓擁塞窗口 cwnd 緩慢地增大,即每通過一個往返時間 RTT 就把發送方的擁塞窗口 cwnd 加 1,而不是加倍,使擁塞窗口 cwnd 按線性規律緩慢增加。

不管在慢開始階段仍是在擁塞避免階段,只要發送方判斷網絡出現擁塞(其根據就是沒有按時收到確認),就要把慢開始門限 ssthresh 設置爲出現擁塞時的發送方窗口值一半(但不能小於2)。
而後把擁塞窗口 cwnd 從新設置爲 1,執行慢開始算法。
這樣作的目的就是要迅速減小主機發送到網絡中的分組數,使得發生擁塞的路由器有足夠時間把隊列中積壓的分組處理完畢。

1559986759689

快重傳和快恢復

快重傳算法首先要求接收方每收到一個失序的報文段後就當即發出重複確認。這樣作可讓發送方及早知道有報文段沒有到達接收方。
發送方只要一連收到三個重複確認就應當當即重傳對方還沒有收到的報文段。
不難看出,快重傳並不是取消重傳計時器,而是在某些狀況下可更早地重傳丟失的報文段。

1559986813162

快恢復

(1) 當發送端收到連續三個重複的確認時,就執行「乘法減少」算法,把慢開始門限 ssthresh 減半。但接下去不執行慢開始算法。
(2)因爲發送方如今認爲網絡極可能沒有發生擁塞,所以如今不執行慢開始算法,即擁塞窗口 cwnd 如今不設置爲 1,而是設置爲慢開始門限 ssthresh 減半後的數值,而後開始執行擁塞避免算法(「加法增大」),使擁塞窗口緩慢地線性增大。

1559986873383

擁塞控制VS流量控制

擁塞控制:全局性過程

流量控制:端到端問題

第六章 應用層

應用層概述

地位和做用

  • 應用層是計算機網絡體系結構中的最高層,也是惟一面向用戶的一層。
  • 應用層爲用戶提供經常使用的應用程序,並實現網絡服務的各類功能。
  • 經常使用的電子郵件、上網瀏覽等網絡服務都是應用層的程序

應用層協議

1560826229064

應用層協議的特色

  • 每一個應用層協議都是爲了解決某一類應用問題,而問題的解決又每每是經過位於不一樣主機中的多個應用進程之間的通訊和協同工做來完成的。應用層的具體內容就是規定應用進程在通訊時所遵循的協議。
  • 應用層的許多協議都是基於客戶服務器方式。客戶(client)和服務器(server)都是指通訊中所涉及的兩個應用進程。客戶服務器方式所描述的是進程之間服務和被服務的關係。客戶是服務請求方,服務器是服務提供方。

域名系統DNS(Domain Name System)

早期:hosts

  • Hosts文件保存每臺主機鏈接Internet的有關信息,包括主機的IP地址和名字
  • 文件是平面結構,沒有任何分類等級,要求分配給主機的名字是惟一的
  • 主要問題:名字衝突 不易管理

域名系統

域名系統DNS(Domain Name System)就是完成域名地址和IP地址之間相互轉換的程序

  • 特色

    • 許多應用層軟件常常直接使用域名系統 DNS (Domain Name System),但計算機的用戶只是間接而不是直接使用域名系統。
    • 因特網採用層次結構的命名樹做爲主機的名字,並使用分佈式的域名系統 DNS。
    • 名字到 IP 地址的解析是由若干個域名服務器程序完成的。域名服務器程序在專設的結點上運行,運行該程序的機器稱爲域名服務器。
  • 域名結構

    • 因特網採用了層次樹狀結構的命名方法。

    • 任何一個鏈接在因特網上的主機或路由器,都有一個惟一的層次結構的名字,即域名

    • 域名的結構由標號序列組成,各標號之間用點隔開:

      1560827516817

    • 各標號分別表明不一樣級別的域名。

  • 域名只是邏輯概念

    • 域名只是個邏輯概念,並不表明計算機所在的物理地點。
    • 變長的域名和使用有助記憶的字符串,是爲了便於人來使用。而 IP 地址是定長的 32 位二進制數字則很是便於機器進行處理。
    • 域名中的「點」和點分十進制 IP 地址中的「點」並沒有一一對應的關係。點分十進制 IP 地址中必定是包含三個「點」,但每個域名中「點」的數目則不必定正好是三個。

頂級域名

(1) 國家頂級域名 nTLD:如: .cn 表示中國,.us 表示美國,.uk 表示英國,等等。

(2) 通用頂級域名 gTLD:最先的頂級域名是:
.com (公司和企業)
.net (網絡服務機構)
.org (非贏利性組織)
.edu (美國專用的教育機構()
.gov (美國專用的政府部門)
.mil (美國專用的軍事部門)
.int (國際組織)

(3) 基礎結構域名(infrastructure domain):這種頂級域名只有一個,即 arpa,用於反向域名解析,所以又稱爲反向域名。

域名空間

1560827799217

域名服務器

  • 一個服務器所負責管轄的(或有權限的)範圍叫作區(zone)
  • 各單位根據具體狀況來劃分本身管轄範圍的區。但在一個區中的全部節點必須是可以連通的。
  • 每個區設置相應的權限域名服務器,用來保存該區中的全部主機的域名到IP地址的映射。
  • DNS 服務器的管轄範圍不是以「域」爲單位,而是以「區」爲單位。

區的不一樣劃分方法舉例

1560827984909

樹狀DNS域名服務器

分類:

  1. 根域名服務器
  2. 頂級域名服務器
  3. 權限域名服務器
  4. 本地域名服務器

1560828112004

根域名服務器

  • 根域名服務器是最重要的域名服務器。全部的根域名服務器都知道全部的頂級域名服務器的域名和 IP 地址。
  • 無論是哪個本地域名服務器,若要對因特網上任何一個域名進行解析,只要本身沒法解析,就首先求助於根域名服務器。
  • 在因特網上共有13 個不一樣 IP 地址的根域名服務器,它們的名字是用一個英文字母命名,從a 一直到 m(前13 個字母)。
  • 根域名服務器共有 13 套裝置(不是 13 個機器)
  • 到 2006 年末全世界已經安裝了一百多個根域名服務器機器,分佈在世界各地。
  • 這樣作的目的是爲了方便用戶,使世界上大部分 DNS 域名服務器都能就近找到一個根域名服務器
  • 根域名服務器並不直接把域名直接轉換成 IP 地址。在使用迭代查詢時,根域名服務器把下一步應當找的頂級域名服務器的 IP 地址告訴本地域名服務器

頂級域名服務器

  • 這些域名服務器負責管理在該頂級域名服務器註冊的全部二級域名。
  • 當收到 DNS 查詢請求時,就給出相應的回答(多是最後的結果,也多是下一步應當找的域名服務器的 IP 地址)。

權限域名服務器

  • 這就是前面已經講過的負責一個的域名服務器。
  • 當一個權限域名服務器還不能給出最後的查詢回答時,就會告訴發出查詢請求的 DNS 客戶,下一步應當找哪個權限域名服務器

本地域名服務器

  • 本地域名服務器對域名系統很是重要。
  • 當一個主機發出 DNS 查詢請求時,這個查詢請求報文就發送給本地域名服務器
  • 每個因特網服務提供商 ISP,或一個大學,甚至一個大學裏的系,均可以擁有一個本地域名服務器,
  • 這種域名服務器有時也稱爲默認域名服務器

域名解析

  • 主機向本地域名服務器的查詢通常都是採用遞歸查詢。若是主機所詢問的本地域名服務器不知道被查詢域名的 IP 地址,那麼本地域名服務器就以 DNS 客戶的身份,向其餘根域名服務器繼續發出查詢請求報文。
  • 本地域名服務器向根域名服務器的查詢一般是採用迭代查詢。當根域名服務器收到本地域名服務器的迭代查詢請求報文時,要麼給出所要查詢的 IP 地址,要麼告訴本地域名服務器:「你下一步應當向哪個域名服務器進行查詢」。而後讓本地域名服務器進行後續的查詢。

1560829191513

壓力最大的是本地域名服務器

本地域名服務器採用遞歸查詢(比較少用)

1560829277618

壓力最大的是根域名服務器

萬維網www

  • 萬維網 WWW (World Wide Web)並不是某種特殊的計算機網絡。
  • 萬維網是一個大規模的、聯機式的信息儲藏所。
  • 萬維網用連接的方法能很是方便地從因特網上的一個站點訪問另外一個站點,從而主動地按需獲取豐富的信息。
  • 這種訪問方式稱爲「連接」。

萬維網提供分佈式服務

1560829515636

超媒體與超文本

  • 萬維網是分佈式超媒體(hypermedia)系統,它是超文本(hypertext)系統的擴充。
  • 一個超文本由多個信息源連接成。利用一個連接可以使用戶找到另外一個文檔。這些文檔能夠位於世界上任何一個接在因特網上的超文本系統中。超文本是萬維網的基礎。
  • 超媒體與超文本的區別是文檔內容不一樣。超文本文檔僅包含文本信息,而超媒體文檔還包含其餘表示方式的信息,如圖形、圖像、聲音、動畫,甚至活動視頻圖像。

萬維網工做方式

  • 萬維網以客戶-服務器方式工做。
  • 瀏覽器就是在用戶計算機上的萬維網客戶程序。萬維網文檔所駐留的計算機則運行服務器程序,所以這個計算機也稱爲萬維網服務器
  • 客戶程序向服務器程序發出請求,服務器程序向客戶程序送回客戶所要的萬維網文檔。
    在一個客戶程序主窗口上顯示出的萬維網文檔稱爲頁面(page)

萬維網工做過程

1560839748424

用戶點擊鼠標後發生的事件

(1) 瀏覽器分析超鏈指向頁面的 URL。

(2) 瀏覽器向 DNS 請求解析 www.tsinghua.edu.cn 的 IP 地址。

(3) 域名系統 DNS 解析出清華大學服務器的 IP 地址。

(4) 瀏覽器與服務器創建 TCP 鏈接

(5) 瀏覽器發出取文件命令:
GET /chn/yxsz/index.htm。

(6) 服務器給出響應,把文件 index.htm 發給瀏覽器。

(7) TCP 鏈接釋放。

(8) 瀏覽器顯示「清華大學院系設置」文件 index.htm 中的全部文本。

萬維網必須解決的問題

(1) 怎樣標誌分佈在整個因特網上的萬維網文檔?

  • 使用統一資源定位符 URL (Uniform Resource Locator)來標誌萬維網上的各類文檔。
  • 使每個文檔在整個因特網的範圍內具備惟一的標識符 URL。

(2) 用何協議實現萬維網上各類超鏈的連接?

  • 在萬維網客戶程序與萬維網服務器程序之間進行交互所使用的協議,是超文本傳送協議 HTTP (HyperText Transfer Protocol)
  • HTTP 是一個應用層協議,它使用 TCP 鏈接進行可靠的傳送。

(3) 怎樣使各類萬維網文檔都能在因特網上的各類計算機上顯示出來,同時使用戶清楚地知道在什麼地方存在着超鏈?

  • 超文本標記語言 HTML (HyperText Markup Language)使得萬維網頁面的設計者能夠很方便地用一個超鏈從本頁面的某處連接到因特網上的任何一個萬維網頁面,而且可以在本身的計算機屏幕上將這些頁面顯示出來。

(4) 怎樣使用戶可以很方便地找到所需的信息?

  • 爲了在萬維網上方便地查找信息,用戶可以使用各類的搜索工具(即搜索引擎)。

URL

  • 統一資源定位符 URL 是對能夠從因特網上獲得的資源的位置和訪問方法的一種簡潔的表示。
  • URL 給資源的位置提供一種抽象的識別方法,並用這種方法給資源定位。
  • 只要可以對資源定位,系統就能夠對資源進行各類操做,如存取、更新、替換和查找其屬性。
  • URL 至關於一個文件名在網絡範圍的擴展。所以 URL 是與因特網相連的機器上的任何可訪問對象的一個指針。

(1) URL的通常格式

  • 由以冒號隔開的兩大部分組成,而且在 URL 中的字符對大寫或小寫沒有要求。
  • URL 的通常形式是:

1560830355337

主機:存放資源的主機在因特網的域名

省略:路徑項,則URL指向因特網的某個主頁

HTTP

(1)HTTP的操做過程

  • 爲了使超文本的連接可以高效率地完成,須要用 HTTP 協議來傳送一切必須的信息。
  • 從層次的角度看,HTTP 是面向事務的(transaction-oriented)應用層協議,它是萬維網上可以可靠地交換文件(包括文本、聲音、圖像等各類多媒體文件)的重要基礎。

(2)HTTP報文結構

HTTP 有兩類報文:

  • 請求報文——從客戶向服務器發送請求報文。
  • 響應報文——從服務器到客戶的回答。
  • 因爲 HTTP 是面向正文的(text-oriented),所以在報文中的每個字段都是一些 ASCII 碼串,於是每一個字段的長度都是不肯定的。

請求報文:
1560840069537

報文由三個部分組成,即開始行首部行實體主體
在請求報文中,開始行就是請求行。

方法」是面向對象技術中使用的專門名詞。所謂「方法」就是對所請求的對象進行的操做,所以這些方法實際上也就是一些命令。所以,請求報文的類型是由它所採用的方法決定的。

HTTP請求報文的一些方法:

1560840271478

「URL」是所請求的資源的URL。

「版本」是 HTTP 的版本。

響應報文

1560840389505

響應報文的開始行是狀態行。
狀態行包括三項內容,即 HTTP 的版本,狀態碼,以及解釋狀態碼的簡單短語。

狀態碼

1xx 表示通知信息的,如請求收到了或正在進行處理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成請求還必須採起進一步的行動。
4xx 表示客戶的差錯,如請求中有錯誤的語法或不能完成。
5xx 表示服務器的差錯,如服務器失效沒法完成請求。

HTML

萬維網的文檔

  • 超文本標記語言 HTML 中的 Markup 的意思就是「設置標記」。
  • HTML 定義了許多用於排版的命令(即標籤)。
  • HTML 把各類標籤嵌入到萬維網的頁面中。這樣就構成了所謂的 HTML 文檔。HTML 文檔是一種能夠用任何文本編輯器建立的 ASCII 碼文件。
  • 僅當 HTML 文檔是以.html 或 .htm 爲後綴時,瀏覽器纔對此 文檔的各類標籤進行解釋。
  • 如 HTML 文檔改換以 .txt 爲其後綴,則 HTML 解釋程序就不對標籤進行解釋,而瀏覽器只能看見原來的文本文件。
  • 當瀏覽器從服務器讀取 HTML 文檔後,就按照 HTML 文檔中的各類標籤,根據瀏覽器所使用的顯示器的尺寸和分辨率大小,從新進行排版並恢復出所讀取的頁面。

信息檢索系統

  • 全文檢索搜索和分類目錄搜索
  • 在萬維網中用來進行搜索的程序叫作搜索引擎
  • 全文檢索搜索引擎是一種純技術型的檢索工具。它的工做原理是經過搜索軟件到互聯網上的各網站收集信息,找到一個網站後能夠從這個網站再連接到另外一個網站。而後按照必定的規則創建一個很大的在線數據庫供用戶查詢。
    • 用戶在查詢時只要輸入關鍵詞,就從已經創建的索引數據庫上進行查詢(並非實時地在互聯網上檢索到的信息)。
  • 分類目錄搜索引擎並不採集網站的任何信息,而是利用各網站向搜索引擎提交的網站信息時填寫的關鍵詞和網站描述等信息,通過人工審覈編輯後,若是認爲符合網站登陸的條件,則輸入到分類目錄的數據庫中,供網上用戶查詢。
    • 分類目錄搜索也叫作分類網站搜索
  • 最著名的全文檢索搜索引擎:
    Google(谷歌)(www.google.com)
    百度 (www.baidu.com)
  • 最著名的分類目錄搜索引擎:
    雅虎 (www.yahoo.com)
    雅虎中國 (cn.yahoo.com)
    新浪 (www.sina.com)
    搜狐 (www.sohu.com)
    網易 (www.163.com)

電子郵件

  • 電子郵件概述:歷史和基本概念。
  • 電子郵件系統的構成:用戶代理、郵件服務器、郵件發送協議和郵件讀取協議。
  • 電子郵件的格式
    RFC 822
    MIME
  • 電子郵件的傳輸協議
    簡單郵件傳輸協議SMTP
    郵件接收協議:POP3和IMAP
  • 電子郵件的工做流程
    郵件的收發

電子郵件 Electronic Mail (E-mail)

包含了實現用戶之間非實時通訊的應用程序和發送、接收、中繼(中轉)電子郵件的處理程序。

每一個用戶首先應擁有一個電子郵箱。所謂的電子郵箱就是在一臺提供了郵件服務的主機上爲每一個人提供一個用戶名。

電子郵件的地址表示爲: 用戶名@域名。
gqkong@gzu.edu.cn
地址不區分大小寫。

郵件系統構成

電子郵件系統由三個部分組成:

  • 用戶代理(UA):容許用戶閱讀、發送/接收電子郵件。
  • 郵件服務器(mail server):爲用戶提供電子郵箱,發送和接收郵件。
  • 郵件發送協議(SMTP)和郵件讀取協議(POP3)

1560842198766

SMTP

簡單郵件傳輸協議SMTP (Simple Mail Transfer Protocol)的協議標準爲RFC821,佔用的TCP端口號爲25 。
SMTP在目的和源郵件主機(Mail Host)之間進行基於TCP鏈接的郵件傳輸。

  • SMTP的實現過程爲:
    • 尋址:向DNS發送請求,獲得接收方的IP地址。
    • 創建鏈接:源郵件主機向目的郵件主機TCP端口25請求建鏈,TCP握手成功,目的郵件主機回送確認(220)。
    • 傳輸郵件:完成郵件的傳送。
    • 拆除鏈接:源郵件主機請求斷鏈,目的郵件主機回送確認(221)。

POP3和IMAP

  • POP3協議:
    因爲用戶在大多數狀況下不能工做在發送和接收電子郵件的主機(mail server)上,因此須要一種從遠程郵箱中讀取電子郵件的簡單協議郵局協議3(Post Office Protocol 3)的支持。
    POP3支持用戶登陸、讀取信息、刪除信息和退出功能。
  • IMAP協議:
    交互式郵件訪問協議,收信人使用多個用戶代理訪問同一郵箱,郵件始終保持在郵箱中。

基於萬維網的電子郵件

電子郵件從 A 發送到網易郵件服務器是使用 HTTP 協議。
兩個郵件服務器之間的傳送使用 SMTP。
郵件重新浪郵件服務器傳送到 B 是使用 HTTP 協議。

1560843020711

相關文章
相關標籤/搜索