讀書筆記-《圖解 TCP/IP》

一、網(wǎng)絡(luò)基礎(chǔ)知識

1. OSI 參考模型

  1. OSI 模型中,每個分層都接受由它下一層所提供的特定服務(wù),并且負責(zé)為自己的上一層提供特定的服務(wù)。上下層之間進行交互時所遵循的約定叫做 接口。同一層之間的交互所遵循的約定叫做 協(xié)議
  • OSI 七層模型

  • 應(yīng)用層 : 應(yīng)用層協(xié)議會在所要傳送數(shù)據(jù)的前端附加一個首部信息,這一附有首部信息的數(shù)據(jù)傳送給主機 B 后有該主機的軟件獲取內(nèi)容。

  • 表示層 : 將數(shù)據(jù)從主機特有的格式轉(zhuǎn)換為網(wǎng)絡(luò)標(biāo)準(zhǔn)傳輸格式。

  • 會話層 : 對何時建立連接、何時發(fā)送數(shù)據(jù)等問題進行管理,負責(zé)決定建立連接和斷開連接的時機。

  • 傳輸層 : 進行建立或斷開連接的處理,在兩個主機之間創(chuàng)建邏輯上的通信連接。為確保所傳輸?shù)臄?shù)據(jù)到達目標(biāo)地址,會在通信兩端的計算機之間進行確認,如果數(shù)據(jù)沒有到達,它會負責(zé)進行重發(fā),保證數(shù)據(jù)傳輸?shù)目煽啃浴?/p>

  • 網(wǎng)絡(luò)層 : 在網(wǎng)絡(luò)與網(wǎng)絡(luò)互相連接的環(huán)境中,將數(shù)據(jù)從發(fā)送端主機發(fā)送到接收端主機。負責(zé)將數(shù)據(jù)發(fā)送至最終目標(biāo)地址(端對端)。

    網(wǎng)絡(luò)層與傳輸層 : 在不同的網(wǎng)絡(luò)體系結(jié)構(gòu)下,網(wǎng)絡(luò)層有時也不能保證數(shù)據(jù)的可達性。TCP/IP 中,網(wǎng)絡(luò)層與傳輸層相互協(xié)作以確保數(shù)據(jù)包能夠傳送到世界各地,實現(xiàn)可靠傳輸。

  • 數(shù)據(jù)鏈路層 : 通信傳輸實際上是通過物理的傳輸介質(zhì)實現(xiàn)的。數(shù)據(jù)鏈路層的作用就是在這些通過傳輸介質(zhì)互連的設(shè)備之間進行數(shù)據(jù)處理。只負責(zé)發(fā)送一個分段內(nèi)的數(shù)據(jù)(區(qū)別于網(wǎng)絡(luò)層)。

  • 物理層 : 將數(shù)據(jù)的 0、1 轉(zhuǎn)換為電壓和脈沖光傳輸給物理的傳輸介質(zhì),而相互直連的設(shè)備之間使用地址實現(xiàn)傳輸。這種地址被稱為 MAC 地址,也可以成為物理地址或硬件地址。將0、1 比特流轉(zhuǎn)換為電壓的高低、燈光的閃滅之間的轉(zhuǎn)換。傳輸方式上大體可以分為模擬和數(shù)字兩種。

2. 傳輸方式的分類

  • 面向有連接性和面向無連接性

  • 面向有連接型 : 在發(fā)送數(shù)據(jù)之前,需要在收發(fā)主機之間建立一條通信線路。

  • 面向無連接型 : 不要求建立和斷開連接。

  • 電路交換和分組交換

  • 根據(jù)接收端數(shù)量分類

    • 單播
    • 廣播
    • 多播
    • 任播

3. 網(wǎng)絡(luò)的構(gòu)成要素

  1. 網(wǎng)卡 : 任何一臺計算機連接網(wǎng)絡(luò)時,必須要使用網(wǎng)卡(網(wǎng)絡(luò)接口卡)。有時被叫做網(wǎng)絡(luò)適配器、網(wǎng)卡、 LAN 卡。
  2. 中繼器 : 是在 OSI 模型的第 1 層 -- 物理層面上延長網(wǎng)絡(luò)的設(shè)備。對減弱的信號進行放大和發(fā)送集線器也可以看做多口中繼器,每個端口都可以成為一個中繼器。
  3. 網(wǎng)橋/2層交換機 : 是在 OSI 模型的第 2 層 -- 數(shù)據(jù)鏈路層面上連接兩個網(wǎng)絡(luò)的設(shè)備。能夠識別數(shù)據(jù)鏈路層中的數(shù)據(jù)幀,并將這些數(shù)據(jù)幀臨時存儲于內(nèi)存,再重新生成信號作為一個全新的幀發(fā)給相連的一個網(wǎng)段。能夠連接傳輸速率完全不用的數(shù)據(jù)鏈路,并且不限制網(wǎng)段的個數(shù)。還能通過地址自學(xué)機制和過濾功能控制網(wǎng)絡(luò)流量。自學(xué)式網(wǎng)橋能判斷是否將數(shù)據(jù)報文轉(zhuǎn)發(fā)給相鄰的網(wǎng)段。具有網(wǎng)橋功能的 Hub 叫做交換集線器,現(xiàn)在也基本屬于網(wǎng)橋的一種。
  4. 路由器/3層交換機 : 是在 OSI 模型的第 3 層 -- 網(wǎng)絡(luò)層面上連接兩個網(wǎng)絡(luò)、并對分組報文進行轉(zhuǎn)發(fā)的設(shè)備。網(wǎng)橋是根據(jù)物理地址進行處理,而路由器/3 層交換機則是根據(jù) IP 地址進行處理的。路由器還有分擔(dān)網(wǎng)絡(luò)負荷的作用,有些甚至具備一定的網(wǎng)絡(luò)安全功能。
  5. 4~7 層交換機 : 負責(zé)處理 OSI 模型中從傳輸層至應(yīng)用層的數(shù)據(jù)。負載均衡器就是其中一種。
  6. 網(wǎng)關(guān) : 是 OSI 參考模型中負責(zé)將從傳輸層到應(yīng)用層數(shù)據(jù)進行轉(zhuǎn)換和轉(zhuǎn)發(fā)的設(shè)備。而且通常會使用一個表示層或應(yīng)用層網(wǎng)關(guān)負責(zé)協(xié)議的轉(zhuǎn)換。防火墻就是一款通過網(wǎng)關(guān)通信,針對不同應(yīng)用提高安全性的產(chǎn)品。

二、TCP/IP 基礎(chǔ)知識

1. TCP/IP 協(xié)議分層模型

  1. 硬件(物理層) : 最底層,負責(zé)數(shù)據(jù)傳輸?shù)挠布?/li>
  2. 網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層) : 利用以太網(wǎng)中的數(shù)據(jù)鏈路層進行通信,因此也屬于接口層。
  3. 互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層) : 使用 IP 協(xié)議,相當(dāng)于 OSI 模型中的第 3 層網(wǎng)絡(luò)層。IP 協(xié)議基于 IP 地址轉(zhuǎn)發(fā)分包數(shù)據(jù)。
  • IP
  • ICMP
  • ARP
  1. 傳輸層 : 能夠讓應(yīng)用程序之間實現(xiàn)通信。必須分清是哪些程序與哪些程序在進行通信。識別這些應(yīng)用程序的是端口號。
  • TCP
  • UDP
  1. 應(yīng)用層(會話層以上的分層) : 將 OSI 參考模型中的會話層、表示層、應(yīng)用層的功能都集中到了應(yīng)用程序中實現(xiàn)。
  • WWW (HTTP)
  • 電子郵件(SMTP)
  • 文件傳輸(FTP)
  • 遠程登錄(TELNET / SSH)
  • 網(wǎng)絡(luò)管理(SNMP)

三、IP協(xié)議

  1. IP 即網(wǎng)際協(xié)議
  • 網(wǎng)絡(luò)層的主要作用是“實現(xiàn)終端節(jié)點之間的通信”。數(shù)據(jù)鏈路層的主要的作用是在互連同一種數(shù)據(jù)鏈路的節(jié)點之間進行包傳遞。網(wǎng)絡(luò)層可以跨越不同的數(shù)據(jù)鏈路,即使是在不同的數(shù)據(jù)鏈路上也能實現(xiàn)兩端節(jié)點之間的數(shù)據(jù)包傳輸
  • 網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層的關(guān)系 :
    • 數(shù)據(jù)鏈路層提供直連兩個設(shè)備之間的通信功能
    • 網(wǎng)絡(luò)層的 IP 則負責(zé)在沒有直連的兩個網(wǎng)絡(luò)之間進行通信傳輸
  1. IP 基礎(chǔ)知識
  • 一跳 是指利用數(shù)據(jù)鏈路層以下分層的功能傳輸數(shù)據(jù)幀的一個區(qū)間。是指從源 MAC 地址到目標(biāo) MAC 地址的一個區(qū)間。在一跳的區(qū)間內(nèi),電纜可以通過網(wǎng)橋或集線器相連,不會通過路由器或網(wǎng)關(guān)相連。
  • IP 地址基礎(chǔ)知識
    • IP 地址 : 由 網(wǎng)絡(luò)地址 和 主機地址 兩部分組成。不同網(wǎng)段網(wǎng)絡(luò)地址不同,同一網(wǎng)段內(nèi)主機地址各不相同。

    • IP 地址的分類

      • A 類地址 : 首位以“0”開頭,從第 1 位到第 8 位是它的網(wǎng)絡(luò)標(biāo)識。0.0.0.0 ~ 127.0.0.0
      • B 類地址 : 前兩位以“10”開頭,從第 1 位到第 16 位是它的網(wǎng)絡(luò)標(biāo)識。128.0.0.0 ~ 191.255.0.0
      • C 類地址 : 首位以“110”開頭,從第 1 位到第 24 位是它的網(wǎng)絡(luò)標(biāo)識。192.0.0.0 ~ 223.255.255.0
      • D 類地址 : 首位以“1110”開頭,從第 1 位到第 32 位是它的網(wǎng)絡(luò)標(biāo)識。224.0.0.0 ~ 239.255.255.255
    • 廣播地址 : 將 IP 地址中的主機地址部分全部設(shè)置為 1

    • IP 組播

    • 子網(wǎng)掩碼 : 將原來的 A、B、C 類等分類中的主機地址部分用作子網(wǎng)地址,可以講原網(wǎng)絡(luò)分為多個物理地址的一種機制

    • CIDR 與 CLSM : 無類型域間選路、可變長子網(wǎng)掩碼

    • 全局地址與私有地址 : 私有 IP 地址結(jié)合 NAT 技術(shù)已成為現(xiàn)在解決 IP 地址分配問題的主流方案

  1. 路由控制
  • 靜態(tài)路由控制 動態(tài)路由控制
  • 路由控制表中記錄著網(wǎng)絡(luò)地址與下一步應(yīng)該發(fā)送至路由器的地址
  • 路由控制表的聚合
  1. IPv6
  • 地址長度 : 128 bits,一般寫成 8 個 16 位字節(jié)
  • 全局單播地址 : 是指世界上唯一的一個地址。前 64 比特為網(wǎng)絡(luò)標(biāo)識,后 64 比特為主機標(biāo)識
  • 鏈路本地單播地址 : 指在同一個數(shù)據(jù)鏈路內(nèi)唯一的地址
  • 唯一本地地址 : 是不進行互聯(lián)網(wǎng)通信時所用的地址
  1. IPv4 首部
  • 版本
  • 首部長度(IHL:Internet Header Length):在沒有可選項時,IP 首部的長度為 20 字節(jié)
  • 區(qū)分服務(wù)(TOS:Type Of Service):有人提出將 TOS 字段本身再劃分為 DSCP 和 ECN 兩個字段
  • 總長度 : IP 包的最大長度為 65535 字節(jié)
  • 標(biāo)識 : 用于分片重組
  • 標(biāo)志 :標(biāo)識被分片的相關(guān)信息
  • 片偏移
  • 生存時間(TTL):每經(jīng)過一個路由器,TTL 會減少 1,直到變成 0 則丟棄該包
  • 協(xié)議 : 表示 IP 首部的下一個首部隸屬于哪個協(xié)議
  • 首部校驗和 : 只校驗數(shù)據(jù)包的首部,不校驗數(shù)據(jù)部分
  • 源地址
  • 目標(biāo)地址
  • 可選項
  • 填充
  • 數(shù)據(jù)
  1. IPv6 首部格式
  • 版本
  • 通信量類
  • 流標(biāo)號 : 準(zhǔn)備用于質(zhì)量服務(wù)
  • 有效載荷長度 : 包的數(shù)據(jù)部分
  • 下一個首部 : 相當(dāng)于 IPv4 的協(xié)議字段。通常標(biāo)識 IP 的上一層協(xié)議是 TCP 或 UDP。不過在有 IPv6 擴展首部的情況下,該字段表示后面第一個擴展首部的的協(xié)議類型
  • 跳數(shù)限制
  • 源地址
  • 目的地址
  • IPv6 擴展首部 : 首部長度固定,無法將可選項加入其中。通過擴展首部對功能進行了有效擴展,可以是任意長度,當(dāng)中還可以包括擴展首部協(xié)議以及下一個擴展首部字段。在需要對 IP 數(shù)據(jù)進行分片時,可以使用擴展首部。
IP 首部.png

四、IP協(xié)議相關(guān)技術(shù)

  1. DNS : 解析器為了調(diào)查 IP 地址,向域名服務(wù)器進行查詢處理。接受這個查詢請求的域名服務(wù)器首先會在自己的數(shù)據(jù)庫進行查找,如果有該域名所對應(yīng)的 IP 地址就返回,如果沒有則域名服務(wù)器再向上一層域名服務(wù)器進行查詢處理。直到找到指定的域名服務(wù)器,并由這個域名服務(wù)器返回想要的數(shù)據(jù)。
  2. ARP
  • 概要 : 以目標(biāo) IP 地址為線索,用來定位下一個應(yīng)該接受該數(shù)據(jù)分包的網(wǎng)絡(luò)設(shè)備對應(yīng)的 MAC 地址。如果目標(biāo)主機不在同一個鏈路上,則可用過 ARP 查找下一跳路由器的 MAC 地址。只適用于 IPv4 。
  • 工作機制 : ARP 借助 ARP 請求包ARP 響應(yīng)包 確定 MAC 地址
  • RARP
  1. ICMP
  • 主要功能 : 確認 IP 包是否成功送達目標(biāo)地址,通知在發(fā)送過程當(dāng)中 IP 包被廢棄的具體原因,改善網(wǎng)絡(luò)設(shè)置等。可以獲得網(wǎng)絡(luò)是否正常,設(shè)置是否有誤以及設(shè)備有何異常等信息,從而便于進行網(wǎng)絡(luò)上的問題診斷。
  • 主要的 ICMP 消息
    • ICMP 目標(biāo)不可達消息
    • ICMP 重定向消息
    • ICMP 超時消息
    • ICMP 回送消息
  • 其他 ICMP 消息
    • ICMP 原點抑制消息
    • ICMP 路由器探索消息
    • ICMP 地址掩碼消息
  • ICMPv6 : IPv6 所必須的
    • 大致分為: 錯誤消息、信息消息
    • 鄰居探索消息 : 融合了 IPv4 的 ARP、ICMP重定向以及 ICMP 路由選擇消息等功能于一體
  1. DHCP
  • 功能 : 實現(xiàn)自動設(shè)置 IP 地址、統(tǒng)一管理 IP 地址分配
  • 工作機制
    • 首先要架設(shè)一臺 DHCP 服務(wù)器
    • 然后將 DHCP 所要分配的 IP 地址設(shè)置到服務(wù)器上
    • 需要將相應(yīng)的子網(wǎng)掩碼、路由控制信息以及 DNS 服務(wù)器的地址等設(shè)置到服務(wù)器上
    • 家庭網(wǎng)大多數(shù)情況下都由寬帶路由器充當(dāng) DHCP 的角色,而在較大規(guī)模組織機構(gòu)的網(wǎng)絡(luò)環(huán)境中,往往需要將 DHCP 統(tǒng)一管理,可以設(shè)置一個 DHCP 中繼代理
  1. NAT
  • 定義 : 用于在本地網(wǎng)絡(luò)中使用私有地址,在連接互聯(lián)網(wǎng)時轉(zhuǎn)而使用全局 IP 地址的技術(shù)
  • 可以轉(zhuǎn)換 TCP、UDP 端口號的 Network Address Port Translation (NAPT) ,實現(xiàn)用一個全局 IP 地址與多個主機的通信
  1. IP 隧道
  • 在網(wǎng)絡(luò)層的首部后面繼續(xù)追加網(wǎng)絡(luò)層首部的通信方法
  1. 其他 IP 相關(guān)技術(shù)
  • IP 多播相關(guān)技術(shù) : 確認接收端是否存在非常重要,需要通過 MLD(IGMP)實現(xiàn),有兩大作用:

  • 向路由器表明想要接收多播消息(并通知想接受多播的地址)

  • 向交換集線器通知想要接收多播的地址

  • IP 任播 : 為那些提供同一種服務(wù)的服務(wù)器配置同一個 IP 地址,并與最近的服務(wù)器進行通信

  • 通信質(zhì)量控制 : 包括帶寬、延遲、時延波動等內(nèi)容 RSVP

  • IntServ 點對點的詳細優(yōu)先控制 : 針對特定應(yīng)用(源 IP 地址、目標(biāo) IP 地址、源端口、目標(biāo)端口以及協(xié)議號五項完全內(nèi)容一致)之間的通信進行質(zhì)量控制的一種機制

  • DiffServ 相對較粗粒度的優(yōu)先控制 : 針對特定的網(wǎng)絡(luò)進行較粗粒度的通信質(zhì)量控制,內(nèi)部的路由根據(jù) IP 首部的 DSCP 字段的值有選擇性地進行優(yōu)先處理,在發(fā)生網(wǎng)絡(luò)擁塞時還可以丟棄優(yōu)先級低的包

  • 顯式擁塞通知 : 在 IP 層新增了一種使用顯式擁塞通知的機制 ECN,將 IP 首部的 TOS 字段置換為 ENC 字段,并在 TCP 首部的保留位中追加 CWR 標(biāo)志和 ECE 標(biāo)志,兩層的互相協(xié)助實現(xiàn)了擁塞通知的功能

  • Mobile IP : 在主機所連接的子網(wǎng) IP 發(fā)生變化時,主機 IP 地址仍保持不變

五、TCP 與 UDP

  1. 傳輸層的作用
  • 使用端口號這樣一種識別碼識別在傳輸層上一層的應(yīng)用層所要進行處理的具體程序
  • 通信處理 : 超級守護進程收到客戶端請求以后會創(chuàng)建新的進程并轉(zhuǎn)換為各個守護進程
  • 兩種傳輸層協(xié)議 TCP 與 UDP
  • TCP : 是面向連接的、可靠的協(xié)議,具備順序控制、重發(fā)控制等機制
  • UDP : 是不具有可靠性的數(shù)據(jù)報協(xié)議
  • 區(qū)別 :TCP 用于在傳輸層有必要實現(xiàn)可靠傳輸?shù)那闆r,UDP 主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信
  1. 端口號 : 傳輸層中類似地址的概念,用來識別同一臺計算機中進行通信的不同應(yīng)用程序,也被稱為程序地址
  • 根據(jù)端口號識別應(yīng)用
  • FTP 服務(wù)器 : TCP 21
  • SSH 服務(wù)器 : TCP 22
  • TELNET 服務(wù)器 : TCP 23
  • SMTP 服務(wù)器 : TCP 25
  • HTTP 服務(wù)器 : TCP 80
  • FTP 客戶端 : TCP 2000
  • HTTP 客戶端 : TCP 2001
  • TCP/IP 或 UDP/IP 通信中通常采用 5 個信息來標(biāo)識一個通信 :
  • 源 IP 地址
  • 目標(biāo) IP 地址
  • 協(xié)議號
  • 源端口號
  • 目標(biāo)端口號
  • 端口號的確定
  • 標(biāo)準(zhǔn)既定的端口號
  • 時序分配法
  • 端口號與協(xié)議 : 端口號由其使用的傳輸層協(xié)議決定,不同的傳輸協(xié)議可以使用相同的端口號,那些知名端口號與傳輸層協(xié)議并無關(guān)系
  1. UDP (User Datagram Protocol) : 不提供復(fù)雜的控制機制,利用 IP 提供面向無連接的通信服務(wù),將部分控制轉(zhuǎn)移給應(yīng)用程序去處理,自己只提供作為傳輸層協(xié)議的最基本功能
  2. TCP : 充分地實現(xiàn)了數(shù)據(jù)傳輸時各種控制功能
  • 連接 : 指各種設(shè)備、線路,或網(wǎng)絡(luò)中進行通信的兩個應(yīng)用程序為了相互傳遞消息而專有的、虛擬的通信線路,也叫作虛擬電路。TCP 負責(zé)連接的建立、斷開、保持等管理工作。
  • TCP 的特點 : 通過檢驗和、序列號、確認應(yīng)答、重發(fā)控制、連接管理以及窗口控制等機制實現(xiàn)可靠性傳輸
  1. 通過序列號與確認應(yīng)答提高可靠性
  • 當(dāng)發(fā)送端的數(shù)據(jù)到達接收主機時,接收端主機會返回一個已收到消息的通知,這個消息叫做 確認應(yīng)答(ACK)
  • TCP 通過肯定的確認應(yīng)答(ACK)實現(xiàn)可靠的傳輸,在一段時間內(nèi)沒有等到確認應(yīng)答,發(fā)送端就可以認為數(shù)據(jù)已經(jīng)丟失,并進行重發(fā)
  • 未收到確認應(yīng)答并不意味著數(shù)據(jù)一定丟失,也有可能是數(shù)據(jù)對方已經(jīng)收到,只是返回的確認應(yīng)答在途中丟失,這種情況也會導(dǎo)致發(fā)送端因沒有收到確認應(yīng)答,而認為數(shù)據(jù)沒有達到目的地,從而進行重新發(fā)送,當(dāng)再有相同數(shù)據(jù)送達時它會放棄,所以必須引入一種機制,它能夠識別是否已經(jīng)接收數(shù)據(jù),又能夠判斷是否需要接收。
  • 上述這些確認應(yīng)答處理、重發(fā)控制以及重復(fù)控制等功能都可以通過序列號實現(xiàn),序列號是按順序發(fā)送給數(shù)據(jù)的每一個字節(jié)都標(biāo)上號碼的編號
  • 接收端查詢接收數(shù)據(jù) TCP 首部中的序列號和數(shù)據(jù)的長度,將自己下一步應(yīng)該接受的序號作為確認應(yīng)答返送回去。通過序列號和確認應(yīng)答號,TCP 可以實現(xiàn)可靠傳輸。
  1. 重發(fā)超時如何確定
  • 重發(fā)超時 : 再重發(fā)數(shù)據(jù)之前,等待確認應(yīng)答到來的那個特定時間間隔
  • 重發(fā)超時都是 0.5 秒的整數(shù)倍,一般設(shè)置為 6 秒左右,之后若還是收不到確認應(yīng)答,會再次發(fā)送,等待確認應(yīng)答的時間將會以 2 倍、4 倍的指數(shù)函數(shù)延長,達到一定重發(fā)次數(shù)之后,如果仍沒有任何確認應(yīng)答返回,就會判斷為網(wǎng)絡(luò)或?qū)Χ酥鳈C發(fā)生了異常,強制關(guān)閉連接。
  1. 連接管理 :TCP 在數(shù)據(jù)通信之前,通過 TCP 首部發(fā)送一個 SYN 包作為建立連接的請求等待確認應(yīng)答。如果對端發(fā)來確認應(yīng)答,則認為可以進行數(shù)據(jù)通信。如果對端的確認應(yīng)答未能到達,就不會進行數(shù)據(jù)通信。此外,在通信結(jié)束時會進行斷開連接的處理(FIN 包)。可以使用 TCP 首部用語控制的字段來管理 TCP 連接(三次握手)。一個連接的建立與斷開,正常過程至少需要來回發(fā)送 7 個包才能完成。
TCP:IP的建立與斷開.png
  1. TCP 以段為單位發(fā)送數(shù)據(jù)
  • 最大消息長度 MSS : 在建立 TCP 連接的同時可以確定發(fā)送數(shù)據(jù)包的單位,是在三次握手的時候,在兩端主機之間被計算得出。兩端主機在發(fā)出建立連接的請求時,會在 TCP 首部中寫入 RSS 選項,告訴對方自己的接口能夠適應(yīng)的 MSS 的大小,會在兩者之間選擇一個較小的值投入使用。
  • TCP 在傳送大量數(shù)據(jù)時,是以 MSS 的大小將數(shù)據(jù)進行分割發(fā)送
  1. 利用窗口控制提高速度
  • 發(fā)送端主機在發(fā)送了一個段以后不必要一直等待確認應(yīng)答,而是繼續(xù)發(fā)送
  • 窗口大小 : 無需等待確認應(yīng)答而可以繼續(xù)發(fā)送數(shù)據(jù)的最大值
  • 使用了大量的緩沖區(qū),通過對多個段同時進行確認應(yīng)答的功能
  • 滑動窗口機制
  1. 窗口控制與重發(fā)機制 : 接收端在沒有收到自己所期望的數(shù)據(jù)時,會對之前收到的數(shù)據(jù)進行確認應(yīng)答。發(fā)送端則一旦收到某個確認應(yīng)答后,又連續(xù) 3 次收到同樣的確認應(yīng)答,則認為數(shù)據(jù)段已經(jīng)丟失,需要進行重發(fā)。
  2. 流控制 : 讓發(fā)送端根據(jù)接收端的實際接收能力控制發(fā)送的數(shù)據(jù)量。接收端主機向發(fā)送端主機通知自己可以接受數(shù)據(jù)的大小,于是發(fā)送端會發(fā)送不超過這個限度的數(shù)據(jù)。該大小限度就被稱作窗口大小。
  3. 擁塞控制 : 為了在發(fā)送端調(diào)節(jié)所要發(fā)送數(shù)據(jù)的量,定義了一個叫做“擁塞窗口”的概念,慢啟動,每收到一個確認應(yīng)答,窗口的值會增加 1 個字段。TCP 通信開始以后,網(wǎng)絡(luò)吞吐量會逐漸上升,但是隨著網(wǎng)絡(luò)擁堵的發(fā)生吞吐量也會急速下降,于是會再次進入吞吐量慢慢上升的過程。
  4. 提高網(wǎng)絡(luò)利用率的規(guī)范
  • Nagle 算法
  • 延遲確認應(yīng)答 : 每收到兩個數(shù)據(jù)段發(fā)送一次的確認應(yīng)答
  • 捎帶應(yīng)答 : TCP 的確認應(yīng)答和固執(zhí)數(shù)據(jù)可以通過一個包發(fā)送,必須得等到應(yīng)用處理完數(shù)據(jù)并將作為回執(zhí)的數(shù)據(jù)返回為止,才能進行捎帶應(yīng)答
  1. 其他傳輸層協(xié)議
  • UDP-Lite(輕量級用戶數(shù)據(jù)報協(xié)議)
  • SCTP(流控制傳輸協(xié)議)
  • DCCP(數(shù)據(jù)報擁塞控制協(xié)議 )
  1. UDP 首部的格式 (8 字節(jié))
  • 源端口號 : 發(fā)送端端口號,字段長 16 位
  • 目標(biāo)端口號
  • 包長度 : 保存了 UDP 長度跟數(shù)據(jù)的長度之和,單位為字節(jié)
  • 校驗和 : 為了提供可靠的 UDP 首部和數(shù)據(jù)而設(shè)計,需要驗證一個通信中必要的 5 項識別碼是否正確,為此,在校驗和的計算中就引入了偽首部的概念。校驗和字段里保存著除本字段以外其他部分的和的補碼值,因此如果計算校驗和字段在內(nèi)的所有數(shù)據(jù)的 16 位和以后,得出的結(jié)果是“16 位全部為 1”說明所收到的數(shù)據(jù)是正確的。
  1. TCP 首部格式 (20 字節(jié),包括選項字段 24 字節(jié))
TCP首部.png

六、路由協(xié)議

  1. 路由控制的定義
  • 路由器根據(jù)路由控制表轉(zhuǎn)發(fā)數(shù)據(jù)包
  • 路由控制分為靜態(tài)動態(tài),使用動態(tài)路由的情況下,管理員必須設(shè)置好路由協(xié)議
  1. 路由控制范圍
  • IGP(內(nèi)部網(wǎng)關(guān)協(xié)議)
  • EGP(外部網(wǎng)關(guān)協(xié)議)
  • 自治系統(tǒng)(AS):制定自己的路由策略,并以此為準(zhǔn)在一個或多個網(wǎng)絡(luò)群體中采用的小型單位叫做自治系統(tǒng)路由選擇域。 自治系統(tǒng)內(nèi)部動態(tài)路由采用的協(xié)議是域內(nèi)路由協(xié)議,而自治系統(tǒng)之間的路由控制采用的是域間路由協(xié)議。
  1. 路由算法
  • 距離向量算法
  • 鏈路狀態(tài)算法
  1. RIP(路由信息協(xié)議)
  • 廣播路由控制信息 : RIP 定期將路由控制信息定期向全網(wǎng)廣播
  • 根據(jù)距離向量算法決定路徑
  • 使用子網(wǎng)掩碼時的 RIP 處理
  • 如果主網(wǎng)一樣,那么就以接口的網(wǎng)絡(luò)地址長度為準(zhǔn)
  • 如果主網(wǎng)不同,那么以 IP 地址的分類所確定的網(wǎng)絡(luò)地址長度為準(zhǔn)
  • RIP 中路由變更時的處理
  • 將自己所知道的路由信息進行廣播
  • 一旦認為網(wǎng)絡(luò)被斷開,數(shù)據(jù)將無法路過此路由器,其他路由器也就可以得知網(wǎng)絡(luò)已經(jīng)斷開
  • 問題 :
  • 無限計數(shù) : 解決 (1)最長距離不超過 16 (2)水平分割 : 規(guī)定路由器不再把所受收到的路由消息原路返還給發(fā)送端
  • 帶有環(huán)路的網(wǎng)絡(luò) : 解決 :毒性逆轉(zhuǎn)、觸發(fā)更新 * RIP2
  • 使用多播(RIP 使用廣播)
  • 支持子網(wǎng)掩碼
  • 路由選擇域
  • 外部路由標(biāo)志
  • 身份驗證秘鑰
  1. OSPF(開放最短路徑優(yōu)先)
  • OSPF 是鏈路狀態(tài)型路由協(xié)議
  • 路由器之間交換鏈路狀態(tài)生成網(wǎng)絡(luò)拓撲信息,然后根據(jù)這個拓撲信息生成路由控制表
  • OSPF 可以給每條鏈路賦予一個權(quán)重,而 RIP 要求途中所經(jīng)過的路由器個數(shù)越少越好。RIP 是選擇路由器個數(shù)最少的路徑,而 OSPF 是選擇總的代價較小的路徑。
  • OSPF 基礎(chǔ)知識
  • 在一個比較復(fù)雜的網(wǎng)絡(luò)中,確定一個指定路由器,并以它為中心交換路由信息
  • 根據(jù)作用的不同分為 5 種類型的包,使得可以大大地減少網(wǎng)絡(luò)流量,還可以達到迅速更新路由信息的目的
  • 問候
  • 數(shù)據(jù)庫描述
  • 鏈路狀態(tài)請求
  • 鏈路狀態(tài)更新
  • 鏈路狀態(tài)確認應(yīng)答
  • 區(qū)域分層化進行細分管理
  • 區(qū)域是指將連接在一起的網(wǎng)絡(luò)和主機劃分為小組,使一個自治系統(tǒng)內(nèi)可以擁有多個區(qū)域。不過具有多個區(qū)域的自治系統(tǒng)必須要有一個主干區(qū)域,并且所有其他區(qū)域都與這個主干區(qū)域相連接
  • 每個區(qū)域內(nèi)的路由器都持有本區(qū)域網(wǎng)絡(luò)拓撲的數(shù)據(jù)庫,關(guān)于區(qū)域之外的路徑信息,都只能從區(qū)域邊界路由器那里獲知它們的距離,所以內(nèi)部路由器所持有的網(wǎng)絡(luò)拓撲數(shù)據(jù)庫就會明顯變小。
  • 該機制不僅可以有效地減少路由控制信息,還能減輕處理的負擔(dān)。
  1. BGP(邊界網(wǎng)關(guān)協(xié)議)
  • 是連接不同組織機構(gòu)(自治系統(tǒng))的一種協(xié)議,因此屬于外部網(wǎng)關(guān)協(xié)議
  • BGP 與 AS 號 : ISP、區(qū)域網(wǎng)絡(luò)等會將每個網(wǎng)絡(luò)域編配成一個個自治系統(tǒng)進行管理,它們?yōu)槊總€自治系統(tǒng)分配一個 16 比特的 AS 編號,BGP 就是根據(jù)這個編號進行相應(yīng)的路由控制。
  • BGP 是路徑向量協(xié)議
  • BGP 中數(shù)據(jù)包送達目標(biāo)網(wǎng)絡(luò)時,會生成一個中途經(jīng)過所有 AS 的編號列表 ——— AS 路徑信息訪問列表。BGP 用 AS 進行度量標(biāo)準(zhǔn),一般選擇 AS 數(shù)最少的路徑。
  • AS 路徑信息訪問列表不僅包含轉(zhuǎn)發(fā)方向和距離,還涵蓋了途徑所有 AS 的編號,因此它不是一個距離向量協(xié)議。這種根據(jù)所要經(jīng)過的路徑信息訪問列表進行路由控制的協(xié)議屬于路徑型相連。
  • 路由控制是跨越整個互聯(lián)網(wǎng)的分布式系統(tǒng)
  1. MPLS(多協(xié)議標(biāo)記交換)
  • 只需要關(guān)注它與下面一層 IP 層之間的功能和協(xié)議即可,轉(zhuǎn)發(fā)時根據(jù)標(biāo)記轉(zhuǎn)發(fā)
  • MPLS 網(wǎng)絡(luò)中實現(xiàn) MPLS 功能的路由器叫做標(biāo)記交換路由器(LSR),與外部網(wǎng)絡(luò)連接的那部分LSR叫做標(biāo)記邊緣路由器(LER),MPLS 正是在 LER 上對數(shù)據(jù)包進行追加標(biāo)記和刪除標(biāo)記的操作
  • MPLS 中目標(biāo)地址和數(shù)據(jù)包都要通過由標(biāo)記決定的同一個路徑,這個路徑叫做標(biāo)記交換路徑(LSP)
  • MPLS 的優(yōu)點
  • 轉(zhuǎn)發(fā)速度快 : 使用固定長度的標(biāo)記信息,使得處理更簡單,可以通過高速的硬件實現(xiàn)轉(zhuǎn)發(fā)
  • 利用標(biāo)記生成虛擬的路徑,并在它的上面實現(xiàn) IP 等數(shù)據(jù)包的通信,IP 網(wǎng)可以提供基于 MPLS 的通信質(zhì)量控制、帶寬保證和 VPN 等功能

七、應(yīng)用協(xié)議

  1. 遠程登錄
  • TELNET
  • 利用 TCP 的一條連接,通過這一條連接向主機發(fā)送文字命令并在主機上執(zhí)行。本地用戶好像直接與遠端主機內(nèi)部的 Shell 相連著似的。
  • 兩類基本服務(wù)
  • 仿真終端功能
  • 協(xié)商選項機制
  • 行模式
  • 透明模式
  • SSH
  • 加密的遠程登錄系統(tǒng)
  • 可以使用更強的認證機制
  • 可以轉(zhuǎn)發(fā)文件
  • 可以使用端口轉(zhuǎn)發(fā)功能
  1. 文件傳輸
  • FTP 的工作機制

  • 使用兩條 TCP 連接:

  • 一條用來控制

  • 另一條用于數(shù)據(jù)的傳輸

  • 通過 ASCII 碼字符串進行的交互處理

  1. 電子郵件
  • 工作機制 : 引進了一種一直會連接電源的郵件服務(wù)器,發(fā)送和接收端通過郵件服務(wù)器進行收發(fā)郵件,接收端從郵件服務(wù)器接收郵件時使用 POP3 協(xié)議。由 3 部分組成 :
  • 郵件地址
  • 數(shù)據(jù)格式
  • 發(fā)送協(xié)議
  • MIME : 廣泛用于互聯(lián)網(wǎng)并極大地擴展了數(shù)據(jù)格式
  • SMTP(簡單郵件傳輸協(xié)議) : 支持的是發(fā)送端主機的行為
  • POP(郵局協(xié)議) : 用于接收電子郵件的協(xié)議,郵件由客戶端進行管理
  • IMAP(網(wǎng)絡(luò)信息接入?yún)f(xié)議) : 與 POP 類似,郵件由服務(wù)器進行管理,可以不必從服務(wù)器上下載所有的郵件也可以閱讀
  1. WWW
  • URI(統(tǒng)一資源標(biāo)識符)
  • URL(統(tǒng)一資源定位符):常被用來表示互聯(lián)網(wǎng)中資源(文件)的具體位置
  • URI :不局限于表示互聯(lián)網(wǎng)資源,可以作為所有資源的識別碼。URI 的 http 方案的具體格式: http://主機名 : 端口號/路徑?訪問內(nèi)容#部分信息
  • HTML(超文本標(biāo)記語言)
  • HTTP(超文本傳輸協(xié)議)
  • JavaScript、CGI、Cookie
  • JavaScript :嵌入在 HTML 中的編程語言
  • CGI : 是 Web 服務(wù)器調(diào)用外部程序時所使用的一種服務(wù)端應(yīng)用的規(guī)范,利用 CGI 可以針對用戶的操作返回給客戶端有各樣變化的信息
  • Cookie : 在客戶端保存信息,從 Web 服務(wù)器檢查 Cookie 可以確認是否為同一對端的通信
  1. 網(wǎng)絡(luò)管理
  • SNMP
  • 網(wǎng)絡(luò)管理可以使用 SNMP 收集必要的信息,它是一款基于 UDP/IP 的協(xié)議
  • 管理端叫做管理器(網(wǎng)絡(luò)監(jiān)控終端),被管理端叫做代理(路由器、交換機等)
  • 消息處理,8 中操作:
  • 查詢請求
  • 上次要求的下一個信息的查詢請求
  • 應(yīng)答
  • 設(shè)置請求
  • 批量查詢請求
  • 向其他管理器發(fā)送消息通知
  • 時間通知
  • 用管理系統(tǒng)定義的命令
  • MIB :是在樹形結(jié)構(gòu)的數(shù)據(jù)庫中為每個項目附加編號的一種信息結(jié)構(gòu)
  • RMON(Remote Monitoring MIB) :MIB 由監(jiān)控網(wǎng)絡(luò)中某個設(shè)備接口的眾多參數(shù)構(gòu)成
  1. 其他應(yīng)用層協(xié)議
  • 多媒體通信實現(xiàn)技術(shù)
  • H.323
  • SIP
  • RTP
  • 數(shù)字壓縮技術(shù)
  • P2P
  • LDAP(輕量級目錄訪問協(xié)議)

八、網(wǎng)絡(luò)安全

  1. 網(wǎng)絡(luò)安全構(gòu)成要素
  • 防火墻 :暴露給危險的主機和路由器的個數(shù)要有限,限制從互聯(lián)網(wǎng)那個訪問的主機個數(shù)
  • IDS(入侵檢測系統(tǒng)):檢查已經(jīng)侵入內(nèi)部網(wǎng)絡(luò)進行非法訪問的情況,并及時通知給網(wǎng)絡(luò)管理員的系統(tǒng)
  • 反病毒/個人防火墻
  1. 加密技術(shù)基礎(chǔ)
  • 對稱密碼體制與公鑰密碼體制
  • 對稱加密方式包括:AES、DES等加密標(biāo)準(zhǔn)
  • 公鑰加密方法包括:RSA、DH、橢圓曲線等加密算法
  • 身份認證技術(shù)
  • 根據(jù)所知道的信息進行認證
  • 根據(jù)所擁有的信息進行認證
  • 根據(jù)獨一無二的體態(tài)特征進行認證
  1. 安全協(xié)議
  • IPSec 與 VPN
  • 在構(gòu)建 VPN 時,最常被使用的是 IPSec。它是指在 IP 首部的后面追加“封裝安全有效載荷”和“認證首部”,從而對此后的數(shù)據(jù)進行加密。
  • 傳輸模式 : 加密 TCP 首部和數(shù)據(jù)部分
  • 隧道模式 : 包括 IP 首部在內(nèi)對整個 IP 包進行加密,并追加 IP 首部
  • TLS/SSL 與 HTTPS
  • TLS(Transport Layer Security)
  • SSL(Secure Sockets Layer)
  • 使用 TLS/SSL 的 HTTP 通信叫做 HTTPS 通信,HTTPS 中采用加密方式,而在發(fā)送其公共秘鑰時采用的則是公鑰加密方式
  • IEEE802.1X :為了能夠介入 LAN 交換機和無線 LAN 接入點而對用戶進行認證的技術(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內(nèi)容

  • 協(xié)議基礎(chǔ) 協(xié)議就是計算機之間通過網(wǎng)絡(luò)實現(xiàn)通信時實現(xiàn)所達成的一種“約定”,這種約定使得那些由不同廠商的設(shè)備,不同的C...
    d9fc24a0c9a9閱讀 2,390評論 0 6
  • 個人認為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,083評論 0 8
  • 1.這篇文章不是本人原創(chuàng)的,只是個人為了對這部分知識做一個整理和系統(tǒng)的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,110評論 6 174
  • 同樣的,本文篇幅也比較長,先來一張思維導(dǎo)圖,帶大家過一遍。 一、 計算機網(wǎng)絡(luò)體系結(jié)構(gòu)分層 二、 TCP/IP 基礎(chǔ)...
    滌生_Woo閱讀 65,127評論 38 1,038
  • 今天語文課上老師默寫了,八個字。田禾手火蟲山云耳。我這八個字都寫上來了。但云和火兩個字,筆畫占位不對。沒有按照老師...
    張佳藝閱讀 856評論 0 1