計算機網絡?自頂向下方法:網絡層介紹、路由器的組成

網絡層介紹

網絡層服務:網絡層為傳輸層提供主機到主機的通信服務

每一臺主機和路由器都運行網絡層協議

  • 發送終端:將傳輸層報文段封裝到網絡層分組中,發送給邊緣路由器
  • 路由器:將分組從輸入鏈路轉發到輸出鏈路
  • 接收終端:從邊緣路由器接收分組,取出報文段交付給傳輸層
網絡層的功能
  • 選路:確定去往目的路由器的路由
  • 轉發:路由器根據選定的路由,將分組從輸入端口轉移到輸出端口
選路和轉發的關系
  • 轉發表:記錄分組頭中某個字段與路由器輸出端口之間的映射關系
  • 選路:計算轉發表
  • 轉發:根據轉發表轉運分組
數據面和控制面

數據面(Data plane)

  • 執行數據傳輸的功能屬于數據面
  • 轉發是數據面功能,在路由器內部實施分組轉運
  • 是路由器本地功能

控制面(Control plane)

  • 控制數據傳輸的功能屬于數據面于控制面
  • 選路是控制面功能,確定分組如何去往目的節點
  • 是網絡范圍的功能

兩種控制面實現方法

  • 傳統尋路算法:在路由器中實現
  • 軟件定義網絡:在服務器中實現
網絡服務模型

定義了分組在發送終端與接收終端之間的傳輸特性

可能的網絡服務

  • 保證交付
  • 具有時延上界的保證交付
  • 有序分組交付
  • 保證最小帶寬
  • 安全性

不同架構的網絡提供的網絡層服務可能不同

同一個網絡也可以提供不同的網絡層服務

路由器的組成

路由器的兩個主要功能

  • 選路:運行選路協議,計算轉發表
  • 轉發:依據轉發表,從輸入鏈路到輸出鏈路轉發數據報

輸入端口功能

  • 物理接口:負責連接到物理鏈路(例如,以太網端口、光纖端口等),通過物理媒體(如電纜、光纖)接收數據。
  • 數據鏈路層處理:負責接收并處理從數據鏈路層(如以太網幀)接收到的數據包,檢查是否有差錯、解析MAC地址等。
  • 接收緩存:當數據包進入路由器時,它們首先會存儲在輸入端口的緩存中,以待進一步處理。

在這里插入圖片描述

交換結構

路由器中的互聯網絡,用于在輸入端口、輸出端口和選路處理器之間轉運分組

交換速率:通常是輸入/輸出鏈路速率的若干倍

三種類型的交換結構

在這里插入圖片描述

通過內存交換
  • 傳統計算機,在CPU的直接控制下完成交換
  • 數據包拷貝到系統內存中進行交換
  • 交換速率受限于內存帶寬:每個數據包穿過系統總線2次

在這里插入圖片描述

通過總線交換
  • 數據包通過一條共享總線,從輸入端口緩存轉移到輸出端口緩存
  • 每個輸入和輸出端口通過一個接口硬件連接到總線上,每個端口被分配一個內部標簽
  • 交換速率受限于總線帶寬
  • 總線競爭
    • 總線協議防止多個端口同時傳輸,比如,采用時分多路復用的方法
    • 各個輸入端口在總線上輪流廣播分組,每個輸出端口根據分組攜帶的內部標簽接收發給本端口的分組
通過互聯網絡交換
  • 交換結構控制器通過控制交叉點的開、閉,在輸入端口與輸出端口間建立內部專用電路
  • 多對端口間可以并行傳輸
  • 分阻塞型與非阻塞型,阻塞型互聯網絡會產生阻塞

輸出端口功能

  • 物理接口:負責將數據通過物理鏈路發送到目標設備。
  • 數據鏈路層處理:在數據包從路由器發送到目標時,處理數據鏈路層的相關操作(例如,封裝數據包、添加校驗和等)。
  • 發送緩存:在將數據包發送到目標設備之前,輸出端口會將數據包存儲在緩存中,以確保數據順利傳輸。

在這里插入圖片描述

網絡層處理:

  • 組裝:若需要,將交換結構輸出的信元組裝成分組
  • 排隊:若輸出端口來不及發送,分組在此排隊
  • 調度:輸出端口每次選擇一個分組發送

鏈路層處理:執行鏈路層協議,封裝

物理層處理:將比特流轉換成物理信號

輸入端口排隊與丟包

當交換結構不能及時將輸入端口的分組轉移到輸出端口時,輸入端口處形成排隊

排隊帶來的問題:

  • 隊頭阻塞: 隊頭分組阻塞其后分組的轉發
  • 丟包:當輸入隊列溢出時,發生丟包

當交換結構速率至少為端口速率的n倍時(n為輸入端口數),可以消除輸入端口的排隊,但路由器成本提高了

在這里插入圖片描述

輸出端口排隊與丟包

多個輸入端口同時向一個輸出端口發送時,在輸出端口形成排隊

當輸出隊列滿時,發生丟包

輸出端口排隊是不可避免的,設置多大的輸出隊列是一個問題:

  • 增大輸出隊列:可以減少丟包的發生,但會增加內存消耗,并增大分組延遲,延遲太大的分組最終被重傳,浪費資源
  • 輸出隊列并不是越長越好!

在這里插入圖片描述

分組丟棄

分組丟棄策略:當隊列滿時丟棄哪個分組?

  • 棄尾:丟棄到來的分組
  • 按照優先級丟棄:低優先級分組
  • 隨機丟棄:隨機選擇一個分組丟棄,如Ramdom Early Detection (RED)

隨機早期檢測(RED,Random Early Detection)

RED 是一種基于隊列長度的主動丟包策略,旨在避免擁塞的發生,并且在網絡負載增加時及時做出反應。

工作原理:

  • 當隊列的長度超過某個預設的閾值時,RED 會開始以隨機的方式丟棄一些進入隊列的數據包,而不是等到隊列滿了才丟棄。
  • RED 會根據隊列的當前長度和網絡的負載動態調整丟包的概率,隊列長度越長,丟包的概率就越高。
  • 該策略通過在網絡出現擁塞之前丟棄一些包,來減少網絡的整體負載,從而避免網絡進入嚴重擁塞的狀態。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64569.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux top指令

top指令概述 top 是 Linux 系統中用于實時監控系統性能和進程信息的命令,功能強大且靈活。它提供了系統資源的動態視圖,包括 CPU、內存、運行中的進程等。 這個指令可以說是Linux中最基本的工具了,用來監視系統的實時運行狀態,類…

Qt監控系統放大招/歷經十幾年迭代完善/多屏幕輔屏預覽/多層級設備樹/網絡登錄和回放

一、前言說明 近期對視頻監控系統做了比較大的更新升級,主要就是三點,第一點就是增加了輔屏預覽,這個也是好多個客戶需要的功能,海康的iVMS-4200客戶端就有這個功能,方便在多個屏幕打開不同的視頻進行查看&#xff0c…

網絡原理(六): UDP 協議

目錄 1. UDP 協議 1.1 協議特點 1.2 協議報文格式 1.2.1 UDP 長度 1.2.2 校驗和 1. UDP 協議 在進行網絡編程時, 我們已經對 UDP 協議進行了簡單了解. 并且應用層的很多操作, 需要調用傳輸層的提供的接口, 基于 socket api 來進行完成的. 1.1 協議特點 UDP 協議具有以…

前端頁面展示本電腦的攝像頭,并使用js獲取攝像頭列表

可以通過 JavaScript 使用 navigator.mediaDevices.enumerateDevices() 獲取電腦上的攝像頭列表。以下是一個示例代碼&#xff0c;可以展示攝像頭列表并選擇進行預覽。 HTML JavaScript 實現攝像頭列表展示和預覽 <!DOCTYPE html> <html lang"zh-CN">…

【漫話機器學習系列】028.CP

Mallows’ Cp&#xff1a;標準化公式解析與應用 Mallows’ Cp 是一種常用的模型選擇工具&#xff0c;用于在一系列候選模型中權衡擬合度和復雜性&#xff0c;幫助我們選擇性能最優的模型。本文將基于其標準化公式展開詳細解析&#xff0c;并探討其應用場景、實現方法、優點與局…

期末算法分析程序填空題

目錄 5-1 最小生成樹&#xff08;普里姆算法&#xff09; 5-2 快速排序&#xff08;分治法&#xff09; 輸入樣例&#xff1a; 輸出樣例&#xff1a; 5-3 歸并排序(遞歸法) 輸入樣例&#xff1a; 輸出樣例&#xff1a; 5-4 求解編輯距離問題&#xff08;動態規劃法&#xff09;…

深入解析 Conda 安裝的默認依賴包及其作用:conda create安裝了哪些包(中英雙語)

深入解析 Conda 安裝的默認依賴包及其作用 當我們使用 Conda 創建新環境時&#xff0c;例如執行命令&#xff1a; conda create -n olmes python3.10Conda 會自動為我們安裝一系列基礎依賴包&#xff0c;保證 Python 環境能夠正常運行。這些包不僅是我們開發的基礎工具&#…

Mac、Linux命令

Linux 查本機IP&#xff1a;ip addr 查詢文件里符合條件的字符串&#xff1a;grep Mac 查本機IP&#xff1a;ipconfig

Visual Studio 中增加的AI功能

前言&#xff1a; 人工智能的發展&#xff0c;在現在&#xff0c;編程技術的IDE里面也融合了AI的基本操做。本例&#xff0c;以微軟的Visual Studio中的人工智能的功能介紹例子。 本例的環境&#xff1a; Visual Studio 17.12 1 AI 智能變量檢測&#xff1a; 上圖展示了一…

江科大學習筆記之——HAL庫點亮一個LED燈

HAL三步走&#xff1a;1.建工程。2.設配置。3.寫代碼 一.建立工程 HAL庫寫法 點擊FinIsh 2.配置時鐘 2 、設置配置參數 把模塊.C.h單獨設置文件 生產代碼 三寫代碼 控制GPIO就三步 1.RCC時鐘使能 2.結構體配置GPIO寄存器 3.控制GPIO值 上面的步驟已經把前兩步的配置完成了接下…

Spring MVC (下)小項目實戰

1. 加法計算器 需求分析: 客戶端輸入倆個數,服務端進行相加然后返回結果. 約定前后端交互接口: 接口的概念: 接口?叫API&#xff08;ApplicationProgrammingInterface),我們?般講到 接口或者API&#xff0c;指的都是同?個東西.是指應?程序對外提供的服務的描述,?于交換信…

在K8S中,如何查看Pod狀態的詳情?事件顯示cpu不足如何處理?

在Kubernetes中&#xff0c;查看Pod狀態的詳細通常設計使用kubectl命令行工具&#xff0c;這是kubernetes提供的一個強大的管理工具。以下是如何查看Pod狀態詳情的步驟&#xff1a; 1. 查看Pod狀態詳情 列出所有Pod&#xff1a; 使用kubectl get pods命令可以查看集群所有Po…

詳細講一下React中的路由React Router

1. 基本概念 React Router 是 React 的路由管理庫&#xff0c;用于在 React 應用中實現頁面導航和路由控制。 2. 安裝 npm install react-router-dom 3. 基礎用法 // App.jsx import { BrowserRouter, Routes, Route, Link } from react-router-domfunction App() {return (…

人工智能的視覺天賦:一文讀懂卷積神經網絡

什么是CNN&#xff1f; CNN&#xff0c;全稱為卷積神經網絡&#xff08;Convolutional Neural Network&#xff09;&#xff0c;是一種模擬人類視覺感知機制的人工神經網絡。它通過層疊的卷積、池化等操作&#xff0c;從數據中提取關鍵特征&#xff0c;進而完成分類、識別或預…

【OpenGL ES】GLSL基礎語法

1 前言 本文將介紹 GLSL 中數據類型、數組、結構體、宏、運算符、向量運算、矩陣運算、函數、流程控制、精度限定符、變量限定符&#xff08;in、out、inout&#xff09;、函數參數限定符等內容&#xff0c;另外提供了一個 include 工具&#xff0c;方便多文件管理 glsl 代碼&a…

使用 ECharts 與 Vue 構建數據可視化組件

在前端開發中&#xff0c;數據可視化是非常重要的一部分。ECharts 作為一個功能強大且易于使用的開源數據可視化庫&#xff0c;被廣泛應用于各種圖表展示需求中。而 Vue.js 是當下流行的前端框架之一&#xff0c;它的數據驅動和組件化開發模式讓我們能輕松地將 ECharts 集成到 …

RPA系列-uipath 學習筆記4

使用Uipath 處理hover的問題 備注&#xff1a;使用uipath stversion&#xff1a;2024.10.6,所有學習來源自uipath Academy 首先&#xff0c;打開uipath給我們提供的一個網站 ACME,這個網站呢&#xff0c;需要提前注冊一下的哈。 今天呢&#xff0c;就是記錄一下&#xff0c;怎…

Linux:進程概念

1.馮諾依曼體系結構 結論&#xff1a; --- CPU不和外設直接打交道&#xff0c;和內存直接打交道。 --- 所有的外設&#xff0c;有數據需要收入&#xff0c;只能載入到內存中&#xff1b;內存寫出&#xff0c;也一定是寫道外設中。 --- 為什么程序要運行必須加載到內存&#xf…

活動預告 | Microsoft Azure 在線技術公開課:使用 Azure OpenAI 服務構建生成式應用

課程介紹 通過 Microsoft Learn 免費參加 Microsoft Azure 在線技術公開課&#xff0c;掌握創造新機遇所需的技能&#xff0c;加快對 Microsoft Cloud 技術的了解。參加我們舉辦的“使用 Azure OpenAI 服務構建生成式應用”活動&#xff0c;了解如何使用包括 GPT 在內的強大的…

Linux(Centos 7.6)常見基礎配置

1.網絡配置 網絡配置詳見&#xff1a;VMware安裝Linux(Centos 7.6)后網絡配置 2.yum源配置 yum源配置詳見&#xff1a;Linux(Centos 7.6)yum源配置 3.主機名配置 1.Linux(Centos 7.6)系統安裝后&#xff0c;沒有配置主機名時&#xff0c;root用戶登錄后&#xff0c;是如下…