讀書筆記| 計(jì)算機(jī)網(wǎng)絡(luò)知識(shí)要點(diǎn)總結(jié)

一、基本概念


數(shù)據(jù)包結(jié)構(gòu)

image.png

相關(guān)設(shè)備

  • 中繼器

    • 功能
      • 物理層
      • 連接同一網(wǎng)絡(luò)的多個(gè)網(wǎng)段
  • 集線器

    • 是一個(gè)多端口的中繼器
    • 特點(diǎn)
      • 物理層,共享型設(shè)備
      • 安全性低
      • 容易引發(fā)廣播風(fēng)暴
  • 網(wǎng)橋

    • 定義
      • 二層路由器,根據(jù)MAC地址轉(zhuǎn)發(fā)幀
      • 將兩(多)個(gè)局域網(wǎng)連起來
    • 網(wǎng)橋通常用于聯(lián)接數(shù)量不多、同一類型的網(wǎng)段
  • 交換機(jī)

    • 特點(diǎn)
      • 數(shù)據(jù)鏈路層
      • 根據(jù)mac地址進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)
      • 有效抑制廣播風(fēng)暴
      • 轉(zhuǎn)發(fā)延遲小,效率高
    • 與集線器對(duì)比
      • 交換機(jī)每個(gè)端口屬一個(gè)沖突域
      • 集線器所有端口都屬一個(gè)沖突域
    • 交換機(jī)的前身是網(wǎng)橋
      • 交換機(jī)用硬件完成
      • 網(wǎng)橋用軟件完成
      • 過濾/學(xué)習(xí)/轉(zhuǎn)發(fā)幀的任務(wù)
  • 網(wǎng)關(guān)

    • 定義
      • 協(xié)議轉(zhuǎn)換器
      • 實(shí)現(xiàn)不同協(xié)議網(wǎng)絡(luò)之間的互連
      • 一個(gè)網(wǎng)絡(luò)連接到另一個(gè)網(wǎng)絡(luò)的關(guān)口
      • 實(shí)質(zhì)上是一個(gè)網(wǎng)絡(luò)通往其他網(wǎng)絡(luò)的關(guān)口(IP地址)
    • 路由器有多個(gè)網(wǎng)關(guān)(地址)
  • 路由器

    • 功能
      • 連接多個(gè)網(wǎng)絡(luò)的設(shè)備
      • 將不同網(wǎng)絡(luò)的數(shù)據(jù)信息進(jìn)行轉(zhuǎn)換
      • 為IP包傳輸分配最合適的路徑
      • 數(shù)據(jù)通道功能
        • 轉(zhuǎn)發(fā)決定
        • 背板轉(zhuǎn)發(fā)
        • 輸出鏈路調(diào)度
      • 數(shù)據(jù)控制功能
        • 與相鄰路由器之間的信息交換
        • 系統(tǒng)配置
        • 系統(tǒng)管理
    • 特點(diǎn)
      • 網(wǎng)絡(luò)層
      • 根據(jù)IP進(jìn)行尋址轉(zhuǎn)發(fā)數(shù)據(jù)包

二、物理層


功能

  • 通過物理手段將計(jì)算機(jī)連接起來
    • 光纜
    • 電纜
    • 雙絞線
    • 無線電波
  • 規(guī)定網(wǎng)絡(luò)的電氣屬性,負(fù)責(zé)傳送0和1的電信號(hào)
  • 電腦網(wǎng)卡接口
    • 收發(fā)點(diǎn)信號(hào)
    • 解讀成0/1序列

三、數(shù)據(jù)鏈路層


功能 & 定義

  • 位于物理層上方,確定了0和1的分組方式
    • 單獨(dú)的0和1沒有意義
    • 須規(guī)定解讀方式
      • 多少電信號(hào)算一組
      • 每個(gè)信號(hào)位有何意義
  • 負(fù)責(zé)解讀電信號(hào)0和1組成的分組數(shù)據(jù)包(即幀)

以太網(wǎng)協(xié)議

  • 規(guī)范電信號(hào)分組方式 / 解讀方式的協(xié)議

  • 協(xié)議規(guī)定

    • 一組電信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包(幀)
    • 幀組成
      • 標(biāo)頭
      • 數(shù)據(jù)
      • 尾部
    • 整個(gè)幀長度
      • min: 64字節(jié)
      • max: 1518字節(jié)
    • 數(shù)據(jù)過長,須分割成多個(gè)幀發(fā)送
  • 標(biāo)頭

    • 組成:包含數(shù)據(jù)包的一些說明項(xiàng)
      • 發(fā)送者
      • 接受者
      • 數(shù)據(jù)類型
    • 長度:固定18字節(jié)
    • 最初7個(gè)字節(jié)稱序言
      • 每個(gè)字節(jié)內(nèi)容都是0xAA
      • 作用
        • 讓接收設(shè)備調(diào)整接收頻率
        • 以便與發(fā)送設(shè)備頻率一致
        • 時(shí)鐘復(fù)原
  • 數(shù)據(jù)

    • 內(nèi)容:數(shù)據(jù)包的具體內(nèi)容
    • 長度
      • min: 46字節(jié)
      • max: 1500字節(jié)
  • 尾部

    • 檢驗(yàn)序列
    • 檢驗(yàn)數(shù)據(jù)傳輸是否發(fā)生錯(cuò)誤
    • 類型
      • CRC:循環(huán)冗余校驗(yàn)碼
      • 奇偶校驗(yàn)

MAC地址

  • 定義
    • 又稱硬件地址(物理地址)
    • 即是網(wǎng)卡的地址
      • 網(wǎng)卡出產(chǎn)都有一個(gè)唯一的mac地址
      • 長度48位,通常用12十六進(jìn)制數(shù)表示
    • 有了mac地址,就可以定位網(wǎng)卡和數(shù)據(jù)包的路徑
  • 如何將數(shù)據(jù)包從發(fā)送方送到接收方
    • 原始方式: 廣播
      • 向局域網(wǎng)內(nèi)所有計(jì)算機(jī)發(fā)送
      • 讓每臺(tái)機(jī)判斷,是否為接收方
    • 轉(zhuǎn)發(fā)表

PPP協(xié)議

  • 定義
    • 用戶PC和ISP進(jìn)行通信時(shí)所使用的數(shù)據(jù)鏈路層系惡意

問題

  • 是只有交換機(jī)維護(hù)一張mac轉(zhuǎn)發(fā)表,還是局域網(wǎng)中每臺(tái)機(jī)都有轉(zhuǎn)發(fā)表
  • mac地址與ip地址

四、網(wǎng)絡(luò)層


網(wǎng)絡(luò)層由來

  • 單純靠mac地址,廣州的網(wǎng)卡即可找到北京的網(wǎng)卡
  • mac地址的設(shè)計(jì)無層次性
    • 即無類似ip地址的網(wǎng)絡(luò)號(hào)設(shè)計(jì)
      • 多個(gè)局域網(wǎng)無法順暢連接
      • 交換機(jī)mac地址與局域網(wǎng)內(nèi)的計(jì)算機(jī)mac地址毫無關(guān)聯(lián)
      • 判斷數(shù)據(jù)包是否在該局域網(wǎng),需遍歷轉(zhuǎn)發(fā)表或廣播
    • 一旦網(wǎng)絡(luò)中的計(jì)算機(jī)太多
      • 要么維護(hù)一張很大的轉(zhuǎn)發(fā)表
      • 要么造成廣播風(fēng)暴
  • 尋找問題的方案:必須區(qū)分哪些mac地址屬于同一個(gè)網(wǎng)絡(luò)
    • mac地址做不到的原因
      • mac地址本身只與產(chǎn)商有關(guān)
      • mac地址與所處網(wǎng)絡(luò)無關(guān)
    • 網(wǎng)絡(luò)層解決了該問題
  • mac地址與ip地址邏輯上無聯(lián)系
    • MAC地址綁定在網(wǎng)卡上
    • ip是管理員/運(yùn)營山分配

網(wǎng)絡(luò)層的作用

  • 引進(jìn)一套新的地址
  • 區(qū)分不同的計(jì)算機(jī)(mac地址)是否屬于同一個(gè)子網(wǎng)絡(luò)
  • 尋找確定計(jì)算機(jī)所在的子網(wǎng)絡(luò)
    • mac則將數(shù)據(jù)包送到該子網(wǎng)絡(luò)中的目標(biāo)網(wǎng)卡
    • 先ip選擇網(wǎng)絡(luò),再mac選擇目標(biāo)網(wǎng)卡

IP協(xié)議

  • 定義

    • 規(guī)定網(wǎng)絡(luò)地址的協(xié)議
  • 作用

    • 為每臺(tái)計(jì)算機(jī)分配ip地址
    • 確定哪些地址在同一個(gè)網(wǎng)絡(luò)
  • 協(xié)議類別

    • IPV4
    • IPV6
  • 地址分類概要


    • ( A B C D E )
    • 主機(jī)號(hào)全為0
      • 表示本網(wǎng)絡(luò)本身
    • 主機(jī)號(hào)全為1
      • 表示本網(wǎng)絡(luò)的廣播地址
    • 32位全為0
      • 表示本網(wǎng)絡(luò)上的本主機(jī)
    • 32位全為1
      • 表示整個(gè)tcp/ip網(wǎng)絡(luò)的廣播地址


  • 特點(diǎn)(主要討論IPv4)

    • 32位組成
      • 0.0.0.0 -- 255.255.255.255
    • 地址分網(wǎng)絡(luò)號(hào)、主機(jī)號(hào)
  • 相關(guān)概念

    • 子網(wǎng)掩碼

      • 作用
        • 判斷兩臺(tái)計(jì)算機(jī)是否屬于同一個(gè)子網(wǎng)絡(luò)
        • 將ip地址的網(wǎng)絡(luò)部分全部置1,主機(jī)部分置0
      • 每個(gè)ip有一個(gè)子網(wǎng)掩碼
      • 如何判斷兩個(gè)ip地址屬同一網(wǎng)絡(luò)
        • ip地址與各自的子網(wǎng)掩碼進(jìn)行AND運(yùn)算
        • 將兩個(gè)and運(yùn)算結(jié)果進(jìn)行比較
          • 結(jié)果相同則在同一網(wǎng)絡(luò)
          • 反之,不在同一網(wǎng)絡(luò)
    • 劃分子網(wǎng)




      image.png
    • CIDR

    • NAT

      • 定義
        • 網(wǎng)絡(luò)地址轉(zhuǎn)換
        • 專用網(wǎng)絡(luò)地址 轉(zhuǎn) 公用地址
        • 在局域網(wǎng)中使用私有地址,聯(lián)網(wǎng)時(shí)轉(zhuǎn)而使用全局ip地址的技術(shù)
      • 特點(diǎn)
        • 大大節(jié)省ip地址的消耗
        • 隱藏內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu),降低內(nèi)部網(wǎng)絡(luò)受攻擊的風(fēng)險(xiǎn)
      • 私有ip地址網(wǎng)段
        • A類: 1個(gè) =》 10.0.0.0 - 10.255.255.255
        • B類:16個(gè) =》 172.16.0.0 - 172.31.255.255
        • C類:256個(gè)=》 192.168.0.0 - 192.168.255.255
    • VPN


IP數(shù)據(jù)包

  • 組成

    • 標(biāo)頭(首部)
      • 首部前半部分
      • 首部后半部分
        • 可選字段,長度可變
        • 提供錯(cuò)誤檢測(cè)及安全等機(jī)制
      • 長度為20 - 60字節(jié)
    • 數(shù)據(jù)
      • 最長65515字節(jié)
  • IP數(shù)據(jù)包總長度最長為65535字節(jié)

  • IP數(shù)據(jù)包直接放在以太網(wǎng)數(shù)據(jù)包的“數(shù)據(jù)”部分

  • IP數(shù)據(jù)包傳輸

    • 需通過路由器的接力
    • 每個(gè)主機(jī)和路由都存在有一個(gè)路由表
      為IP包指明路線
    • 路由選擇算法:生成路由表
      RIP
      BGP
  • 由于以太網(wǎng)數(shù)據(jù)包中的數(shù)據(jù)部分,最長1500字節(jié)

    • IP數(shù)據(jù)包大于1500字節(jié),則需拆包,分開發(fā)送
  • 首部前半部分
    • 固定長度,20字節(jié)
    • 首部格式重要字段
      • 版本
        • ip協(xié)議的版本
        • 占4位
      • 首部長度
        • 占四位,最大進(jìn)制數(shù)值是15
        • 該字段所表示數(shù)的單位:32位字
          • 一個(gè)32位字長是4字節(jié)

          • 1111 : 15 * 4 = 60字節(jié)
            0101 : 5 * 4 = 20字節(jié)
      • 總長度
        • 定義: 首部長度 + 數(shù)據(jù)長度
        • 占16位,最大長度 2^16 - 1 = 65535字節(jié)
      • 標(biāo)識(shí)
        • 占16位
        • 一個(gè)計(jì)數(shù)器
          • 每產(chǎn)生一個(gè)數(shù)據(jù)報(bào)就加1
          • 并不是序號(hào)
      • 標(biāo)志
        • 占三位,目前只有兩位有意義
        • 最低位記為MF
          • 1:表示后面還有分片
          • 0
            • 表示后面沒有分片
            • 該片為最后一片
        • 中間位為DF
          • 1
            • 不允許分片
          • 0
            • 允許分片
      • 片偏移
        • 占13位
        • 以8個(gè)字節(jié)為偏移單位
        • 指出該片在原分組中的相對(duì)位置
        • 每個(gè)分片長度是8字節(jié)的整數(shù)倍
      • 首部檢驗(yàn)和
        • 占16位
        • 只校驗(yàn)分組的首部
        • 不校驗(yàn)數(shù)據(jù)部分
      • 生存時(shí)間TTL
        • 占8位
        • 數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中可通過的路由器數(shù)的最大值
        • TTL被減為0,則該分組必須被丟棄
      • 協(xié)議
        • 占8位
        • 指出分組是使用何種協(xié)議
          • 6:TCP
          • 17:UDP
      • 源地址字段
        • 4字節(jié)
      • 目的地址字段
        • 4字節(jié)
    • 三個(gè)長度標(biāo)記
      • 首部長度:4B
      • 總長度:1B
      • 片偏移:8B

相關(guān)協(xié)議

  • ARP協(xié)議
    • 在局域網(wǎng)中,通過目標(biāo)ip地址得到目標(biāo)mac地址的協(xié)議
  • ICMP協(xié)議
    • 特點(diǎn)
      • ip協(xié)議的補(bǔ)充
      • 介于網(wǎng)絡(luò)層和傳輸層
      • 基于ip協(xié)議
        • icmp包封裝在IP包中
    • 功能
      • 傳輸網(wǎng)絡(luò)診斷信息
    • ICMP包類型
      • 錯(cuò)誤信息
        • 源頭冷卻
          • 源主機(jī)向目的主機(jī)傳送數(shù)據(jù)過快
          • 目的主機(jī)無法快速處理
          • 此時(shí)發(fā)送該類型ICMP包,請(qǐng)求源主機(jī)溫柔點(diǎn)~
        • 目的地?zé)o法到達(dá)
          • 路由器接收到一個(gè)沒法進(jìn)一步接力的ip包時(shí)發(fā)出該類型ICMP包
        • 超時(shí)
          • TTL(IPv4)隨經(jīng)過的路由器而遞減
          • 當(dāng)TTL值減為0時(shí),IP包超時(shí)
        • 重新定向
          • 路由器收到不應(yīng)該收的ip包
          • 此時(shí)路由器向源主機(jī)發(fā)送該類型ICMP包
          • 提醒源主機(jī)修改路由表
      • 咨詢信息
        • 回音
          • ping
          • 使用流程
            1、使用ping命令
            2、向目標(biāo)主機(jī)發(fā)送ICMP包(Echo詢問類型)
            3、目標(biāo)主機(jī)接收到ICMP包
            4、目標(biāo)主機(jī)回復(fù)ICMP(Echo詢問類型)
  • 路由選擇協(xié)議
    • 內(nèi)部網(wǎng)關(guān)協(xié)議IGP

      • 目標(biāo)
        • 路由器之間不斷交換路由信息
      • RIP
        • 定義
          • 基于距離向量的路由選擇協(xié)議
        • 優(yōu)劣
          • 簡(jiǎn)單
          • 只適用于小型互聯(lián)網(wǎng)
        • 特點(diǎn)
          • 僅和相鄰路由器交換信息

          • 交換的信息:自己的路由表

          • 按固定時(shí)間間隔交換路由信息:30秒

          • 工作原理

            • 剛工作時(shí),只知道直接連接的網(wǎng)絡(luò)的距離
          • 若干次更新后,所有路由都知道各個(gè)網(wǎng)絡(luò)的路徑地址

          • 通過路由收斂,得到正確的路由選擇信息

      • OSPF
        • 定義
          • 開放最短路徑優(yōu)先
          • 克服RIP缺點(diǎn)
          • 原理簡(jiǎn)單,實(shí)現(xiàn)復(fù)雜
        • 與RIP的不同
          • 向域內(nèi)系統(tǒng)所有路由器發(fā)送信息
          • 發(fā)送的信息
            • 與本路由器相鄰所有路由器的鏈路狀態(tài)
          • 鏈路狀態(tài)發(fā)生變化時(shí),用洪泛法發(fā)送信息
          • 全局
            • RIP知道
              • 所有網(wǎng)絡(luò)的距離
              • 下一條路由器
            • RIP不知道
              • 全網(wǎng)的拓?fù)浣Y(jié)構(gòu)
          • OSPF更新過程收斂得快
        • 流程


    • 外部網(wǎng)關(guān)協(xié)議EGP

      • BGP

五、傳輸層

  • 傳輸層的由來

    • mac和ip解決了在互聯(lián)網(wǎng)任意兩臺(tái)機(jī)上建立通信的問題
    • 但沒有解決在兩臺(tái)機(jī)上的進(jìn)程間建立通信的問題
  • 傳輸層的功能

    • 建立端口到端口的通信
      • 順序控制
      • 重發(fā)控制
      • 流量控制
      • 擁塞控制
      • 提高網(wǎng)絡(luò)利用率
    • 對(duì)比:網(wǎng)絡(luò)層
      • 建立主機(jī)到主機(jī)的通信
    • 識(shí)別TCP/IP或UDP/IP通信
      • 五個(gè)信息
        • 源ip
        • 目標(biāo)ip
        • 協(xié)議號(hào)
        • 源端口號(hào)
        • 目標(biāo)端口號(hào)
      • 五個(gè)有一個(gè)不同,視為其他通信
  • 傳輸層協(xié)議

    • UDP協(xié)議

      • 組成
        • 標(biāo)頭: 定義了發(fā)出端口/接收端口
        • 數(shù)據(jù)
      • udp數(shù)據(jù)包全放在IP數(shù)據(jù)包的數(shù)據(jù)部分
      • 長度
        • 標(biāo)頭
          • 8個(gè)字節(jié)
        • udp數(shù)據(jù)包總長度不超過65535字節(jié)
      • 優(yōu)點(diǎn)
        • 簡(jiǎn)單
        • 易實(shí)現(xiàn)
      • 缺點(diǎn)
        • 可靠性差
          • 數(shù)據(jù)包發(fā)送后,無法知道對(duì)方是否收到
    • TCP協(xié)議

      • 組成
        • 標(biāo)頭
        • 數(shù)據(jù)
      • 長度
        • TCP數(shù)據(jù)包沒有長度限制
        • 通常tcp數(shù)據(jù)包不會(huì)超過IP數(shù)據(jù)包
      • 可近似認(rèn)為,是有確認(rèn)機(jī)制的UDP協(xié)議
        • 每發(fā)一個(gè)數(shù)據(jù)包,都要求確認(rèn)
        • 收不到確認(rèn),則重發(fā)
      • 優(yōu)點(diǎn)
        • 可靠性高: 能確保數(shù)據(jù)不會(huì)遺失
      • 缺點(diǎn)
        • 過程復(fù)雜
        • 實(shí)現(xiàn)困難
        • 耗較多資源
    • TCP VS. UDP

      • 可靠 —— 不可靠
      • 面向連接 —— 面向無連接
      • udp:用于對(duì)高速傳輸和實(shí)時(shí)性有較高要求的通信
        • IP電話
        • 多播與廣播通信
        • 基于廣播的協(xié)議
          • RIP
          • DHCP
      • tcp
        • 傳輸控制協(xié)議
      • udp
        • 用戶數(shù)據(jù)包協(xié)議
    • 常用端口號(hào)

      • 20:FTP-DATA
      • 21:FTP-CONTROL
      • 22:SSH
      • 23:TELNET
      • 25:SMTP
      • 53:DNS
      • 80:HTTP
  • TCP流通信

    • 背景
      • 計(jì)算機(jī)數(shù)據(jù)本質(zhì)是有序的0/1序列
      • 0/1序列如以byte為單位,就叫做文本流
    • 目標(biāo)
      • 實(shí)現(xiàn)端到端的可靠通信
      • 確保數(shù)據(jù)到達(dá)的順序與文本流順序相符
    • 實(shí)現(xiàn)形式
      • 虛擬了文本流的通信
      • 在不同計(jì)算機(jī)間進(jìn)行文本流的交互
    • 流的要點(diǎn):次序
      • 保持TCP包的次序
      • 防止片段碎片化
    • 如何確??煽?& 順序
      • ACK回復(fù) & 重傳
        • 接收方每收到一個(gè)片段后,發(fā)送一個(gè)ACK回復(fù)片段給發(fā)送方
          • 收到片段序號(hào)為L
          • 則ACK回復(fù)片段的回復(fù)號(hào)為L + 1
        • 發(fā)送方一定時(shí)間內(nèi)未收到ACK回復(fù),則重新發(fā)送該片段
      • 滑動(dòng)窗口
        • 特點(diǎn)
          • 同時(shí)應(yīng)用于接收方和發(fā)送方,收發(fā)雙方各有一個(gè)滑動(dòng)窗口
          • 片段位于滑窗中時(shí),表示tcp正在處理該片段
          • 滑窗越大,同時(shí)處理的片段數(shù)目越多
          • 對(duì)于“不那么亂”的片段
            • 利用緩存保存下來
            • 期望在一定時(shí)間內(nèi)補(bǔ)充上之前的片段
          • 對(duì)于“亂得厲害”的片段
            • 拒絕,不發(fā)送對(duì)應(yīng)的ack
          • 實(shí)現(xiàn):滑窗
    • 滑動(dòng)窗口
      • 累計(jì)ACK回復(fù)
        • tcp協(xié)議并不是每個(gè)片段都發(fā)送ACK回復(fù)
        • 一般利用一個(gè)ack回復(fù)通知連續(xù)多個(gè)片段的成功接收
        • 收到片段且應(yīng)該回復(fù)ack時(shí),會(huì)故意延遲一段時(shí)間
      • 滑窗結(jié)構(gòu)
      • 流量控制
      • 窗口
    • 重新發(fā)送
      • 目的
        • 實(shí)現(xiàn)tcp片段傳輸?shù)目煽啃?/li>
      • 重新發(fā)送機(jī)制
        • 超時(shí)重新發(fā)送
        • 快速重新發(fā)送
    • tcp擁塞控制
    • tcp片段頭部格式
      • 組成
        • 出發(fā)端口、目的地端口
        • 序號(hào):使數(shù)據(jù)片段整理成文本流
        • ack位:設(shè)定后,回復(fù)號(hào)才有效
        • ack回復(fù)號(hào)
          • 說明接收方期待接收的下一個(gè)片段
          • 最后接收到的片段序號(hào) + 1
        • SYN,占一位
        • FIN,占一位


  • TCP控制

    • 組成

      • 重傳控制



      • 連接管理


      • 滑窗




      • 流量控制


      • 擁塞控制



    • Nagle算法

      • 目的
        • 提高網(wǎng)絡(luò)利用率
        • 解決糊涂窗口綜合癥
      • 定義
        • 發(fā)送端有該發(fā)送的數(shù)據(jù)
        • 該發(fā)送的數(shù)據(jù)很少
        • 進(jìn)行延遲發(fā)送的一種處理機(jī)制
      • 滿足條件則發(fā)送
        • 已發(fā)送的數(shù)據(jù)都已經(jīng)收到確認(rèn)應(yīng)答時(shí)
      • 可以發(fā)送最大段長度(MSS)的數(shù)據(jù)時(shí)
    • 流量控制 vs. 擁塞控制

        • 收發(fā)雙方點(diǎn)對(duì)點(diǎn)通信量的控制
        • 抑制發(fā)送端數(shù)據(jù)的速率,以便接收端來得及接收
        • 點(diǎn)對(duì)點(diǎn)的局部性問題
        • 確保通信子網(wǎng)有傳送待傳數(shù)據(jù)的能力
          • 防止過多數(shù)據(jù)注入到網(wǎng)絡(luò)中
          • 絡(luò)不至于過載
        • 全局性問題
          • 前提:網(wǎng)絡(luò)能承受現(xiàn)有網(wǎng)絡(luò)負(fù)荷
        • 控制網(wǎng)絡(luò)傳輸?shù)男?/li>
    • 擁塞控制方法

      • 慢開始 & 擁塞避免


      • 快重傳 & 快恢復(fù)
  • tcp連接的建立與斷開

    • 建立連接
      • 目的
        • 連接雙方交換初始序號(hào)ISN
          • 第一個(gè)片段序號(hào)隨機(jī)生成
          • 交換實(shí)現(xiàn)形式
            • 通過SYN片段實(shí)現(xiàn)
      • 過程:三次握手
        • 本質(zhì):雙方互發(fā)含有自己的ISN的syn片段


      • 總結(jié)
        • SYN = 1, seq = x
        • SYN = 1, ACK = 1, seq = y, ack = y + 1
        • ACK = 1, seq = x + 1, ack = y + 1
    • 連結(jié)通信
      • 功能
        • 兩段進(jìn)程利用該連接進(jìn)行通信
    • 斷開連接
      • 連接終結(jié)通過特殊片段FIN

      • 為什么要四次,而不合并

        • tcp連接允許單向關(guān)閉
        • 某端已經(jīng)可以關(guān)閉,但另一端不一定可以
      • 為什么要等2MSL

        • 保證A發(fā)送的最后一個(gè)ACK報(bào)文段能夠到達(dá)B
        • 防止已失效的連接請(qǐng)求報(bào)文段 出現(xiàn)在本連接中
      • 過程:四次握手

        • 連接雙方交換了四個(gè)片段
          • 兩個(gè)FIN
          • 個(gè)ACK


      • 總結(jié)

        • FIN = 1, seq = u
        • ACK = 1, seq = v, ack = u + 1
        • FIN = 1, ACK =1, seq = w, ack = u + 1
        • ACK = 1, seq = u + 1, ack = w + 1
      • ACK, SYN, FIN都一定等于1

    • tcp連接狀態(tài)管理




      image.png

六、應(yīng)用層

  • 應(yīng)用層協(xié)議

    • email
    • www
    • ftp
    • DHCP
    • DNS
      • 功能:將網(wǎng)址轉(zhuǎn)為ip地址
      • DNS服務(wù)器
        • 網(wǎng)絡(luò)中進(jìn)行域名解析的一些服務(wù)器
      • 特點(diǎn)
        • 基于udp,應(yīng)用層
    • HTTP
  • dhcp

    • 基本概念
      • 工作在應(yīng)用層,基于udp協(xié)議
    • 功能 & 作用
      • 動(dòng)態(tài)分配IP地址
    • 協(xié)議規(guī)定
      • 每個(gè)子網(wǎng)絡(luò),會(huì)有一臺(tái)機(jī)負(fù)責(zé)管理本網(wǎng)絡(luò)的所有IP地址
      • 新的計(jì)算機(jī)加入網(wǎng)絡(luò)
        • 向dhcp服務(wù)器發(fā)送一個(gè)dhcp請(qǐng)求
        • 申請(qǐng)IP地址和相關(guān)網(wǎng)絡(luò)參數(shù)
        • 申請(qǐng)步驟
  • dhcp申請(qǐng)步驟:

    • 發(fā)dhcp包
      • 幀頭部
        • 發(fā)出方MAC地址
        • 接收方MAC地址
          • 未知,填入FF-FF-FF-FF-FF-FF
      • ip頭部
        • 發(fā)出方ip
          • 未知,填入0.0.0.0
        • 接收方ip
          • 未知,填入255.255.255.255
      • udp頭部
        • 發(fā)出方端口: 68
        • 接收方端口: 67
      • 以廣播形式發(fā)送
    • dhcp服務(wù)器接收包
      • 檢測(cè)到ip
        • 發(fā)出方:0.0.0.0
        • 接收方:255.255.255.255
        • 明白該包是發(fā)給自己的
    • 讀取dhcp包
    • 分配ip地址
    • 回送一個(gè)DHCP響應(yīng)包
      • 幀頭部
        • 發(fā)出方mac地址
        • 接收方mac地址
          • 已知
      • ip頭部
        • 發(fā)出方ip
          • 已知
        • 接收方ip
          • 已知,但尚未配置
          • 仍填入255.255.255.255
      • udp頭部
        • 發(fā)出方端口:67
        • 接收方:68
  • http


    • 目的: 解決文件傳輸?shù)膯栴}

    • 定義: web文檔傳輸協(xié)議

    • 特點(diǎn): 明確區(qū)分哪端是客戶端,哪端是服務(wù)器端

    • 實(shí)現(xiàn)

      • 請(qǐng)求: 生成針對(duì)目標(biāo)web服務(wù)器的http請(qǐng)求報(bào)文
      • 回復(fù): 對(duì)請(qǐng)求的內(nèi)容的處理,并回傳
      • 過程
    • URI vs. URL

      • URI
        • Uniform Resource Identifier
        • 統(tǒng)一資源標(biāo)識(shí)符
        • 符串表示某一互聯(lián)網(wǎng)資源
      • URL
        • Uniform Resource Locator
        • 統(tǒng)一資源定位符
        • 表示資源的地點(diǎn)
      • URL 是 URI的子集
    • 格式

      • 起始行
        • 只有一行
        • 是請(qǐng)求/回復(fù)最重要的信息
          • 請(qǐng)求起始行:想要什么
          • 回復(fù)起始行:發(fā)生什么
      • 頭信息
        • 多行
        • 每行含一對(duì)鍵值對(duì)
      • 主體
        • 具體的資源
      • http協(xié)議請(qǐng)求
    • 請(qǐng)求方法類別

      • GET
        • 將特定資源傳送給客戶端
        • 傳輸一些不重要的數(shù)據(jù)
          • url?變量名 = 變量值
      • POST
        • 向服務(wù)器端提交數(shù)據(jù)
        • 使用post,url不再被改寫,且數(shù)據(jù)位于http請(qǐng)求主體
      • PUT
        • 傳輸文件
        • 類似FTP文件上傳
        • 要求在請(qǐng)求報(bào)文的主體包含文件內(nèi)容
        • 并保存到請(qǐng)求URI指定的位置
        • 不帶驗(yàn)證機(jī)制
      • DELETE
        • 刪除文件
        • 與put相反
        • 不帶驗(yàn)證機(jī)制
      • HEAD
        • 和GET方法一樣
        • 獲得報(bào)文首部
        • 不返回報(bào)文主體部分
        • 用于確認(rèn)URI的有效性及資源更新的日期時(shí)間
      • OPTIONS
        • 用來查詢針對(duì)請(qǐng)求URI指定的資源支持的方法
        • 查詢支持的請(qǐng)求方法
      • TRACE
        • 追蹤路徑
    • 報(bào)文類別

      • 請(qǐng)求報(bào)文
        • 組成
          • 請(qǐng)求方法
          • 請(qǐng)求URI
          • 協(xié)議版本
          • 可選的請(qǐng)求首部字段
          • 內(nèi)容實(shí)體
      • 響應(yīng)報(bào)文
        • 組成
          • 協(xié)議版本
          • 狀態(tài)碼
          • 原因短語
            • 用以解釋狀態(tài)碼
          • 可選的響應(yīng)首部字段
          • 實(shí)體主體
    • 狀態(tài)碼類別

      • 1XX
        • 信息性狀態(tài)碼
        • 接收的請(qǐng)求正在處理
      • 2XX
        • 成功狀態(tài)碼
        • 請(qǐng)求正常處理完畢
        • 相關(guān)狀態(tài)碼
          • 200:ok
            • 請(qǐng)求被正常處理
          • 204:No Content
            • 請(qǐng)求處理成功
            • 但沒有資源需要返回
          • 206:Partial Content
            • 范圍請(qǐng)求
            • 對(duì)資源某一部分的請(qǐng)求
      • 3XX
        • 重定向狀態(tài)碼
        • 需要進(jìn)行附加操作以完成請(qǐng)求
        • 相關(guān)狀態(tài)碼
          • 301:Moved Permanently
            • 永久性重定向
            • 資源的URI已更新
            • 客戶端請(qǐng)更新書簽引用
          • 302:Found
            • 臨時(shí)性重定向
            • 表示資源的URI已臨時(shí)定位到其他位置
            • 希望用戶本次能使用新URI訪問
      • 4XX
        • 客戶端錯(cuò)誤狀態(tài)碼
        • 服務(wù)器無法處理請(qǐng)求
        • 相關(guān)狀態(tài)碼
          • 400:Bad Request
            服務(wù)器無法理解請(qǐng)求
            表示報(bào)文中存在語法錯(cuò)誤
          • 401:Unauthorized
            • 表示請(qǐng)求需通過http認(rèn)證
            • 第一次返回401,本頁面需認(rèn)證
            • 第二次返回401,認(rèn)證失敗
          • 403:Forbidden
            • 對(duì)請(qǐng)求資源的訪問被拒絕訪問
          • 404:Not Found
            • 服務(wù)器上沒有請(qǐng)求的資源
      • 5XX
        • 服務(wù)器錯(cuò)誤狀態(tài)碼
        • 服務(wù)器處理請(qǐng)求出錯(cuò)
        • 相關(guān)狀態(tài)碼
          • 500:Internal Server Error
            • 內(nèi)部資源出現(xiàn)故障
          • 503:Service Unavailable
            • 服務(wù)器暫處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù)
      • 302:重新定向
        • 資源這里沒有,但知道另一個(gè)地方有
      • 404:無法找到
        • 找不到想要的資源
    • 無狀態(tài)

      • 定義
        • 每次請(qǐng)求-回復(fù),都重新建立tcp
          • 盡管已做優(yōu)化,但依然保持無狀態(tài)特性
        • 致使服務(wù)器無法知道上次請(qǐng)求和本次請(qǐng)求來自同一個(gè)客戶端
        • 每次請(qǐng)求都是一個(gè)全新的請(qǐng)求
        • 協(xié)議自身不對(duì)請(qǐng)求和響應(yīng)之間的通信狀態(tài)進(jìn)行保存
    • 使http保持狀態(tài)

      • Cookie
    • 使http持久連接

      • 目的
        • 節(jié)省流量
        • 防止造成無謂的tcp連接的建立和斷開
      • 持久連接宗旨
        • 一次tcp連接后可進(jìn)行多次請(qǐng)求和響應(yīng)
      • 管線化
        • 一次發(fā)送多個(gè)請(qǐng)求,不等待響應(yīng)
  • Socket抽象層

    • 定義
      • 傳輸層之上,應(yīng)用層之下
    • 連接過程



七、串聯(lián)總結(jié)

  • 網(wǎng)絡(luò)通信就是交換數(shù)據(jù)包
    • 發(fā)送包需要兩個(gè)地址
      • 對(duì)方的mac地址
      • 對(duì)方的ip地址
    • 發(fā)送包需判斷對(duì)方是否在同一個(gè)子網(wǎng)絡(luò)
      • 同一子網(wǎng)
        • 對(duì)方的mac地址
        • 對(duì)方的ip地址
      • 不同子網(wǎng)
        • 網(wǎng)關(guān)的ip地址
        • 對(duì)方的ip地址


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容