計算機網絡學習筆記

計算機網絡 筆記

朝花夕拾,簡要回顧一下計算機網絡課程。html

概論

文章收藏

計算機網絡基礎知識前端

計算機網絡常見面試題面試

爲什麼要進行三次握手和四次揮手算法

產生和發展

美國國防部 -> ARPANET -> MILNET(軍事), ARPANET -> NSFNET數據庫

  • 遠程聯機系統 50s -> 60s
    前端處理機FEP,調制解調器M,終端控制器TC,主機,終端T
    1服務器

  • 計算機-計算機 網絡 60s ->70s
    通訊子網(路由器和線路),資源子網(服務器和主機) 缺點:沒法任意互聯,拓展性差
    2網絡

  • 開放式標準化網絡 80s -> now
    統一的網絡體系結構:OSI,CCITT,TCP/IP架構

計算機網絡定義

參考定義:將若干臺具備獨立功能的計算機 系統,用某種或多種通訊介質鏈接起來,經過完善的網絡協議, 在數據交換的基礎上,實現網絡資源共享的系統稱爲計算機網絡。socket

分類

  • 地理:局域網(LAN),城域網(MAN),廣域網(WAN)
  • 拓撲結構:星型,環型,總線,不規則型
  • 數據交換方式電路交換(創建,傳輸,拆除,獨佔信道資源),分組交換(化整爲零,存儲轉發)

網絡協議和網絡體系結構

網絡協議

一整套通訊規程,包括規定要交換的數據格式、 控制信息的格式和控制功能、通訊過程當中事件執行的次序等。可能涉及到:tcp

  • 物理傳輸介質
  • 數據編碼
  • 收/發端同步
  • 數據傳輸單元格式
  • 控制通訊方向
  • 路由選擇
  • 差錯控制
  • 流量控制
  • 數據加密,如何加密

網絡體系結構

  • 真正的物理通訊老是發生在除物理層。除物理層外,其他各對等層實體間都是進行虛擬通訊

  • 通訊必須在對等層進行,不容許交差通訊。

  • 虛擬通訊是一種邏輯通訊,其意義在於:

    1. 設計本層協議時,不受其餘層協議的內部實現影響。
    2. 經過層間接口調用低層提供的服務,只要得到低層足夠支 持,虛擬通訊就能得以實現。
  • n-1層爲n層提供服務。n層直接使用n-1層提供的服務,間接 使用n-2, n-3, …… 層提供的服務。

OSI參考模型

4

OSI參考模型各層功能

  • 物理層 完成原始數據位流在物理介質上傳輸,而無論位流的信息含義。
  • 數據鏈路層 完成數據幀在相鄰的結點間無差錯傳輸。
  • 網絡層 完成報文分組在源/目的結點之間傳輸。
  • 傳輸層 完成報文段在源/目的主機進程之間的透明傳輸。

網絡通訊↑ 數據處理↓

  • 會話層 進行會話管理,包括通訊方向控制(單工,半雙工,全雙工)
  • 表示層 數據格式轉化、數據加密/解密、數據壓縮/解壓。
  • 應用層 爲用戶提供各類網絡服務,包括文件,電子郵件, 數據庫,WWW,DNS等。

Internet參考模型

兩個核心協議:TCP和IP,故此模型也稱爲TCP/IP協議。

5
(Internet和OSI的參考模型比較)

  • 應用層對應OSI的應用層,表示層和會話層。主要包括:FTP, SMTP, TELNET, DNS, HTTP 等

  • 傳輸層:TCP(傳輸控制協議Transmission control protocol)
    , UDP(用戶數據報協議User Datagram protocol )

  • 互聯網層大致對應OSI的網絡層,爲IP協議。將IP分組以數據報方式從源主機發送到目的主機。

  • 子網層對應物理層和數據鏈路層:802.3, PPP, 802.5, 千兆百兆以太網等

6

物理層 (中繼器、集線器)

數據通訊基礎

  • 通訊系統模型
graph TD A[信源] -->B[變換器] B --> |發送端| C[信道] C --> |接收端| D[反變換器] D -->E[信宿]
  • 模擬通訊與數字通訊

  • 信道, 兩個重要參數:帶寬(Hz),誤碼率(bps)

  • 帶寬與數據率的關係
    1.奈奎斯特(無噪聲信道)C = 2Hlog2L
    2.香農定理(有噪聲信道,L不受限)C =Hlog2(1+S/N)
    (C:數據率,H:帶寬,L:數字信號的離散取值數,S/N:信噪比)

  • 波特率:每秒傳輸的碼元的數目 C=Blog2L (B爲波特率)

  • 誤碼率:P = Ne/N

  • 信道通訊方向:單工,半雙工,雙工

  • 數字信號的編碼 e.g. 非歸零,曼切斯特,差分曼切斯特
    調製(調幅,調頻,調相),解調(採樣,量化,編碼)。

  • 數據同步方式:字符同步位同步

  • 多路複用:頻分複用,時分複用

物理層協議


物理層協議實質上是通訊接口標準
涉及內容:機械,功能,規格,電氣特性

數據鏈路層 (交換機)

數據幀是傳送單位
做用:物理地址尋址、數據的成幀、流量控制、數據的檢錯、重發等。

差錯控制

  1. 傳輸差錯的特徵
    • 緣由:熱噪聲(持續性,小幅度),衝擊噪聲(大幅度,突發性)
    • 差錯控制方法:經過特殊的編碼使接收端可以發現甚至糾錯
    • 檢錯碼,糾錯碼
  2. 編碼效率、檢錯和糾錯
    • 碼字:信息位,校驗位(冗餘)
    • 碼距:兩個碼字的不一樣位數個數
    • 海明距離:兩個碼字之間的最小距離
    • 編碼效率:R=m/n=m/(m+r)
    • 檢測d位錯,海明距離d+1;糾正d位錯,海明2d+1
  3. 海明碼
  4. 循環冗餘碼CRC
  5. 其餘編碼:奇偶校驗碼

流量控制

  1. 停-等協議:發一幀後等應答

  2. 滑動窗口協議:連續發送若干後再等待應答

  3. 順序接受管道協議(回退N):接受窗口尺寸爲1的滑動窗口協議,某幀丟失後其後所有丟棄並返回否定。

  4. 選擇接收管道協議

上述協議均可看做滑動窗口協議,差異在於窗口尺寸的不一樣

窗口尺寸的限制:
Wt>=Wr, Wt+Wr<=2^m (幀序號的位數爲m)

網絡層 (路由器)

實現兩個主機系統之間的數據透明傳送,具體功能包括尋址和路由選擇、鏈接的創建、保持和終止

電路交換和分組交換

  • 電路交換(起源 電話)
    創建電路,傳輸數據,拆除電路
  • 分組交換
    報文,分組(分組序列 源地址 目的地址 分組類型 控制信息 長度 數據)化整爲零 存儲轉發 複用鏈路

虛電路和數據報

虛電路
通訊前發送方和接收方之間必須創建鏈接(虛電 路),因此虛電路是面向鏈接的網絡服務。

虛電路只是一種邏輯電路,而不是真正的物理電 路。報文分組在虛電路上傳輸不像再物理線路上 那樣中暢通無阻。而是要中間節點的存儲轉發。

一條鏈路上容許創建多個虛電路

一旦虛電路創建完畢,本地通訊的全部分組必須 通過該虛電路進行。所以,虛電路可以保證分組 的順序接收。

僅當創建虛電路時須要源/目的結點地址,數據分 組需分配一個虛電路號而無須源/目的結點地址。

數據報
數據報無需創建鏈接,每一個報文分組攜帶完整的源/目的地址,獨立的選擇路徑,經過 同的路徑到達目的主機

  • 無需創建鏈接就可傳輸報文分組,所以數據報稱爲無鏈接網絡服務。
  • 不一樣的報文分組能夠經過不一樣的路由到達目的主機,先發出的分組未必先,所以數 據報服務不能保證報文分組順序接收。
  • 每一個報文分組攜帶完整的源/目的地址,獨 立的選擇路徑
數據報子網 虛電路子網
延時 分組傳輸延時 電路創建,分組傳輸延時
路由選擇 每一個分組單獨選擇路由 創建虛電路時選擇路由,之後 全部分組都使用該路由
狀態信息 子網無需保存狀態信息 每一個結點要保存一張虛電路表
地址 每一個分組包括源和目的的完 整地址 每一個分組含有一個短的虛電路 號
結點失敗 的影響 除了在崩潰時正在該結點處 理的分組都丟失外,無其餘 影響 全部通過失效結點的虛電路都 要被終止
擁塞控制 若是有足夠的緩衝區分配給已 經創建的虛電路,則容易控制

路由選擇

路由選擇:根據某種策略(靜態、動態),選擇一條最佳的路徑到達目的主機,對路由器而言, 路由選擇實質上是選擇最佳 輸出端口。
虛電路:一次路由選擇
數據報:每一個分組要進行路由選擇

  • 擴散法(洪泛法)
    當結點收到一個分組後,把該分組向除進來的鏈 路外的全部其餘鏈路轉發,結果至少有一個分組 以最快的速度到達目的結點。
    問題:產生大量重複分組 解決:設置下一跳字段每次減小

  • 固定式路由選擇
    每一個結點保存一張固定的路由表,當某一分組到達時, 根據分組的目的結點,在路由表中找到其對應的輸出 鏈路,而後來分組從該鏈路轉發出去。

  • 最佳路由選擇算法

    • 通常採用最短路徑算法
    • "費用」的含義很是普遍,能夠是距離、平 均通訊量、延遲、下跳數等。
    • 將網絡當作連通圖,每條鏈路以其「費用」 爲權值,經過Dijkstra最短路徑算法求出任 意兩個結點之間的最短距離。
      動態策略:根據當前拓撲結構和流量的變化來動 態改變路由,又稱爲自適應路由
  • 孤立路由算法

    • 熱土豆算法(與固定路由算法混合使用)
    • 逆向自學習(好消息靈敏,壞消息能夠設置時間刪除未刷新記錄)
  • 集中路由算法

  • 分佈路由算法

    • 距離向量(D-V算法):每一個結點都保存一張路由表,路由表包 括三個主要字段,即目的地址,最短距離、最佳輸 出鏈路。與固定路由選擇不一樣的是:相鄰結點之間 按期交換路由信息(如每隔十秒),並根據最新路 由信息,刷新路由表。
    • 鏈路狀態路由選擇(L-S算法):按期廣播路由信息並根據最新信息刷新路由表。 發現鄰居節點,測量鏈路開銷,產生鏈路狀態分組。對網絡反應迅速
D-V L-S
交換路由信息 按期 網絡拓撲結構發生 改變(或按期)
路由更新 緩慢 迅速
適用範圍 小規模,變化緩慢 的網絡 大規模,變化較激 烈的網絡

IP協議

IP協議是Internet體系結構的核心協議,已成 爲鏈接異構網絡的工業標準。
IP提供無鏈接的數據報服務,每一個IP分組長 度≤64K字節,不能保證分組可靠的,按序到 達,這些留給高層協議解決。
IP協議須要路由協議ICMP,ARP,RARP等 協議支持
ARP: 根據IP地址獲取物理地址

報文

地址
地址

  • host-id爲零的IP地址表示該網絡自己
  • 回送地址:127.0.0.0-127.255.255.254爲回送地址。
  • 0.0.0.0:表明的是本主機地址,任何一臺主機均可以其表示 本身,僅在系統啓動時會使用,啓動完成後再也不使用。
  • 255.255.255.255:受限廣播地址,廣播範圍爲主機所在的網 絡。全部網關都不會向外廣播。
  • 保留地址:10.0.0.0 172.16~172.31 192.168.0.0~192.158.255.0

子網的規模與借用主機字段的位數有關。借用位數越多,子網規模越大。
採用子網掩碼來分離網絡號和主機號

ip尋址:每一個路由器中都保存一張路由表(不管是靜態仍是動態)。路由表 的主要項目有兩個:網絡號、下一跳地址(最佳輸出鏈路)。

其餘協議

網際控制報文協議 ICMP
差錯報告,詢問報文 ping TTL

地址解析協議ARP
是將IP地址轉化成MAC,有存則發送,沒有則發送ARP請求找相應的MAC地址。
ARP廣播

RARP與ARP相反,知道MAC不知道IP。

傳輸層 (網關)

在計算機網絡中,傳輸層處於很是重要的位置。傳輸 層,也稱爲運輸層,不管在OIS仍是在TCP/IP模型中 ,傳輸層都處於面向應用部分的最低層和麪向通訊部分的最高層。(承上啓下)進程間通訊

網絡邊緣:主機、存儲、服務器、數據庫
網絡核心:路由器、鏈路

主要功能:爲運行在網絡邊緣的不 同主機上的各應用程序之間提供通訊服務;在應用層和網絡層之間充當複用器的做用。各類各樣的網絡應用,經過傳輸層的端口被提交統一的網絡層,並由IP協議用統一的方式將它們發送到網絡中。

提供的服務

  1. 面向鏈接的服務(TCP)FTP,Telnet 可靠 開銷大
  2. 面向無鏈接的服務(UDP)SNMP,DNS 不提供可靠交付

端口與地址
進程標識符X,利用協議端口(軟件端口)。
熟知端口:0~1023
登記端口號:1024~49151
客戶端口號,短暫端口號:49152~65535

傳輸服務訪問點:當兩個不一樣主機的兩個進程須要通訊時 ,必須指明對方是哪個進程,這個標記稱爲傳輸層地 址,也稱爲傳輸服務訪問點(TSAP)
傳輸層地址(TSAP) = 主機IP地址+端口號
e.g. 192.168.10.1:80

套接字:爲了使應用程序可以方便地使用 協議棧軟件進行通訊的一種方法。{協議,本地地址,本地端口,遠程地址,遠程端口} 上聯應用,下聯網絡協議棧。

套接字

流式套接字(stream socket):提供面向鏈接、可靠的數據傳輸服務,數據無差錯、無重複 的發送,且按發送順序接收。內設流量控制,避免數據流超 限;數據被看做是字節流,無長度限制。

數據報式套接字(Datagram socket):提供無鏈接服務。數據包以獨立包形式發送,不提供無差錯 保證,數據可能丟失或重複,而且接收順序混亂。

原始套接字(Raw Socket):字容許對較低層次的協議,如IP、ICMP直接訪 問,用於檢驗新的協議的實現。

用戶數據報協議(UDP)

UDP 只在 IP 的數據報服務之上增長了不多一點的功能 ,即端口的功能和差錯檢測的功能。

  • UDP是無鏈接協議,在發送數據以前不須要創建鏈接。 不保證可靠交付,同時也不使用擁塞控制。
  • UDP是面向報文,沒有擁塞控制,很適合多媒體通訊 的要求。
  • UDP支持一對1、一對多、多對一和多對多的交互通訊。
  • UDP 的首部開銷小,只有 8 個字節。
  • 發送方 UDP 對應用程序交下來的報文,在添加首部後 就向下交付 IP 層。
  • UDP 對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界。
  • 應用層交給 UDP 多長的報文,UDP 就照樣發送,即一 次發送一個報文。
  • 接收方 UDP 對 IP 層交上來的 UDP 用戶數據報,在去 除首部後就原封不動地交付上層的應用進程,一次交付一個完整的報文。
  • 應用程序必須選擇合適大小的報文。

傳輸控制協議(TCP)

是一種面向鏈接的、可靠的、基於字節流的傳輸層通訊協議。

  • TCP 是面向鏈接的傳輸層協議。
  • 每一條 TCP 鏈接只能有兩個端點(endpoint),每一條 TCP 鏈接只能是點對點的(一對一)。
  • TCP 提供可靠交付的服務。
  • TCP 提供全雙工通訊。
  • 面向字節流。

TCP

TCP的鏈接

  • TCP把鏈接做爲最基本的抽象。
  • 每一條TCP 鏈接有兩個端點。
  • TCP鏈接的端點叫作套接字(socket)或插口。
  • 端口號拼接到(contatenated with) IP 地址即構成了 套接字
    {(IP1: port1), (IP2: port2)}
    鏈接的三個階段:鏈接創建、數據傳送、鏈接釋放

爲什麼要進行三次握手和三次揮手
鏈接須要三次握手

  1. 客戶端→服務器。客戶端向服務器提出鏈接創建請求,即發出同步請求報文。
  2. 客戶端←服務器。服務器收到客戶端的鏈接請求後,向客戶端發出贊成創建鏈接的同步確認報文。
  3. 客戶端→服務器。客戶端在收到服務器的同步確認報文後,向服務器發出確認報文。
    目的:同步雙方的序列號和確認號並交換TCP窗口大小; 讓雙方都證明對方能收到

鏈接的釋放 四次揮手

  1. 客戶端→服務器。客戶端向服務器發出一個鏈接釋放報文。
  2. 客戶端←服務器。服務器收到客戶端的釋放鏈接請求後,向客戶端發出確認報文。
    此時客戶端再也不發送數據(僅響應報文)給服務器,僅接收報文。 (半關閉狀態)
  3. 客戶端←服務器。服務器在發送完最後的數據後,向客戶端發出鏈接釋放確認報文。
  4. 客戶端→服務器。客戶端在收到服務器鏈接釋放報文後,向服務器發出確認報文。
    • 發送後客戶端再等 2*MSL (若是服務器沒收到最後的ACK 服務器會再請求一次 等待2MSL確保服務器收到了) 1MSL時間留給最後的ACK確認報文段到達服務器端,1MSL時間留給服務器端再次發送的FIN。
    • 收到後服務器CLOSED

客戶端要等待2MSL(最大報文生命)後才能夠釋放

  1. 保證 客戶端 的最後一個ACK能夠到達服務器
  2. 防止失效的鏈接請求報文出如今本鏈接中

TCP計時器:至少應該有四種計時器:重傳計時器、持久計時器、保活計時器和時間等待計時器

擁塞控制:慢開始擁塞避免

擁塞控制

應用層

在TCP/IP中,應用層對應OSI/RM中的會話層、表示層 和應用層,是應用程序與網絡傳輸的接口,是面向應用 需求的通訊協議中的最高端。

應用層協議不是應用程序,也不解決用戶的具體應用需 求,而是爲應用程序進程的網絡通訊提供服務的第一層 協議,是爲用戶的應用需求提供通訊服務。

規定了運行在不一樣端系統上的應用程序進程相互傳遞報文的規範:

  • 交換的報文類型,如請求報文和響應報文
  • 語法,如報文中的各個字段及這些字段的描述規範
  • 語義,即報文各字段的可能取值及其含義
  • 進程什麼時候、如何發送報文及對報文進行響應。

體系架構

  1. 客戶-服務器模式
  2. P2P模式 通訊各方地位平等,互爲客戶端服務器,對中心服務器依賴最小
  3. 混合模式 混合了C/S和P2P的通訊模式

TCP/IP中的應用層協議:域名,超文本傳輸,電子郵件,會話發起,文件傳輸,遠程訪問

域名解析

主機向本地域名服務器的查詢通常都是採用遞歸查詢。 若是主機所詢問的本地域名服務器不知道被查詢域名 的IP 地址,那麼本地域名服務器就以 DNS 客戶的身份,向其餘根域名服務器繼續發出查詢請求報文。

** 解析過程**

  • 首先從主機本地Hosts文件查找。沒找到就向本地 DNS發出請求
  • 若本地DNS也找不到,則將請求發給負責該域的根 域名字服務器,根服務器會返回一個相應的頂級域 名服務器地址
  • 本地域名服務器向頂級域名服務器提出請求。頂級 域名服務器會返回一個權限域名服務器地址
  • 本地域名服務器向權限域名服務器提出請求,權限域名服務器將返回目標域名的IP地址。
  • 本地域名服務器向查詢主機返回目標域名的IP地址。

電子郵件協議

發送:SMTP
讀取:POP3 IMAP(不須要所有下載 交互式)
MIME 郵件中傳輸數據
郵件

相關文章
相關標籤/搜索