主頁 > 軟體設計 > 計算機網路(一):網路基礎知識

計算機網路(一):網路基礎知識

2021-07-26 08:24:40 軟體設計

文章目錄

  • 1. 什么是因特網
    • 1.1 服務描述
    • 1.2 協議
  • 2. 網路邊緣
    • 2.1 接入網
    • 2.2 物理媒體
  • 3. 網路核心
    • 3.1 分組交換
    • 3.2 電路交換
    • 3.3 分組交換與電路交換的對比
  • 4. 分組交換網中的時延、丟包和吞吐量
  • 5. 協議層次
    • 5.1 OSI 參考模型
    • 5.2 TCP / IP 參考模型
    • 5.3 五層參考模型
    • 5.4 封裝

1. 什么是因特網

我們可以從兩個角度來回答這個問題:一種是描述組成它的軟硬體;另一種是將其視為為分布式應用提供基礎服務的聯網設施來描述,其實,第一種角度,是從它的組成來描述,第二種角度是從它的功能來描述,

所有這些連接進因特網的設備被稱為主機(host) 或者 端系統(end system)

端系統通過通信鏈路(communication link)分組交換機(packet switch) 連接到一起,

當一臺端系統要向另一臺端系統發送資料時,發送端系統將資料分段,并為每段加上首部位元組(一些必要資訊),由此形成的資訊包(資料包)用計算機網路的術語來說稱為分組(packet)

分組交換機從它的一條入通信鏈路接受到達的分組,并從它的一條出通信鏈路轉發該分組,分組交換機主要的型別是路由器(router)鏈路層交換機(link layer switch)

  • 鏈路層交換機通常用于接入網中
  • 路由器通常用于網路核心中

端系統通過因特網服務提供商(Internet Service Provider,ISP) 接入因特網,

1.1 服務描述

與因特網相連的端系統提供了一個套接字介面(socket interface),該介面規定了運行程式在一個端系統上的程式請求因特網基礎設施向運行在另一個端系統上的特定目的程式交付資料的方式,

簡單來說,就是提供API發送和接受資料,

1.2 協議

協議(protocol):定義了在兩個或多個通信物體之間交換保溫的格式和順序,以及報文發送或接收一條報文或其他事件所采取的動作,

通過協議,才方便讓所有不同的端系統,不同的CPU,不同的作業系統以同一種方式進行網路通信,

2. 網路邊緣

端系統,位于因特網的邊緣因此得名,端系統也成為主機,容納(即運行)應用程式,主機又被進一步分為客戶端和服務端,

2.1 接入網

接入網是指將端系統物理連接到其邊緣路由器(edge router) 的網路,

邊緣路由器是端系統到任何其他遠程端系統的路徑上的第一臺路由器,

  • 家庭接入
    • 數字用戶線(Digital Subscriber Line,DSL)
    • 電纜
    • 光纖到戶(Fiber To The Home,FTTH)
    • 撥號和衛星
  • 企業(或家庭)接入
    • 以太網和WIFI
  • 廣域無線接入
    • 3G、4G、LTE

2.2 物理媒體

位元從源到目的地傳輸時,通過一系列“發射器 - 接收器” 對,對于每個發射器-接收器對,通過一種**物理媒體(physical medium)**傳電磁波或光脈沖來發送該位元,

具體有

  • 導引型媒體(guided media):電波沿著固體媒體前行
    • 雙絞銅線
    • 同軸電纜
    • 光纖
  • 非導引型媒體(unguided media):電波在空氣或外層空間中傳播
    • 陸地無線電信道
    • 衛星無線電信道

3. 網路核心

網路核心即為由互聯端系統的分組交換機和鏈路構成的網狀網路

通過網路鏈路和交換機移動資料有兩種基本方法:電路交換和分組交換

3.1 分組交換

在各種網路應用中,端系統彼此交換報文(message),為了從源端系統向目的端系統發送一個報文,源將長報文劃分為較小的資料段,稱之為分組(packet),每個分組都通過通信鏈路和分組交換機傳送,

一些重要概念:

  • 存盤轉發傳輸
    • 指的是,在交換機能夠開始向輸出鏈路傳輸該分組的第一個位元之前,必須接收到整個分組,
    • 其實就是相當于一個緩沖區,滿了再傳輸,
  • 排隊時延和分組丟失
    • 對于每條相連的鏈路,分組交換機具有一個輸出快取(output buffer,也稱為輸出佇列),它用于存盤路由器準備發往該鏈路的分組,
    • 如果到達的分組需要傳輸到某條鏈路,該鏈路正忙于傳輸其他分組,則必須等待,稱之為排隊時延(queuing delay)
    • 到達的分組發現該快取已經被其他分組占滿了,這種情況就會出現分組丟失(丟包)(packet loss)
  • 路由轉發表和路由選擇協議
    • 每個端系統具有一個稱為IP地址的地址,當源主機向目的端系統發送一個分組時,源在該分組的首部包含了目的地的IP地址
    • 每臺路由器具有一個轉發表(forwarding table),用于將目的地址(或目的地址的一部分)映射成為輸出鏈路,
    • 路由選擇協議(routing protocol),用于自動地設定這些轉發表

3.2 電路交換

在電路交換網路中,在端系統通信會話期間,交換機會預留端系統間通信路徑上的相關資源(快取,鏈路傳輸速率),即先建立連接,然后通信;

電路交換網路中的復用

  • 時分復用(Time-Division Multiplexing TDM):是指將時間劃分為固定區間的幀,每個幀則又被劃分為固定數量的時間空隙;當網路需要建立一條連接時,網路將在每個幀中為該連接指定一個時隙;在該時隙內,鏈路用來傳輸該鏈接的資料;

  • 頻分復用(Frequency-Division Multiplexing):將頻率域劃分為頻段,然后將頻段分配給連接;此頻段被用來專門傳輸鏈接的資料,該頻段的寬度成為帶寬,

3.3 分組交換與電路交換的對比

分組交換的優點:

  • 它提供了比電路交換更好的帶寬共享;
  • 它比電路交換更簡單、更有效、實作成本更低;

分組交換的缺點:

  • 分組交換不適合實時服務,因為端到端的時延是可變、不可預測的,這和整個網路的情況相關;

電路交換的優點:

  • 提供了端對端傳輸資料的速率保證;

電路交換的缺點:

  • 電路交換存在靜默期,這是指專用電路空閑時,其占用的資源并沒有得到充分的利用;
  • 建立連接的程序比較復雜;

趨勢是朝著分組交換的方向發展,

4. 分組交換網中的時延、丟包和吞吐量

時延:

  • 處理時延:處理時延是因為節點需要決議分組的必要資訊然后決定其出鏈路(索引轉發表等操作)而產生的,通常在微秒或者更低數量級,
  • 排隊時延:當分組的出鏈路有其他分組正在進行傳輸時,該分組經受排隊時延,排隊時延是到達該佇列的流量強度和性質的函式,通常可以達到毫秒級到微秒級,
  • 傳輸時延:是將所有分組的位元推向鏈路所有需要的時間,實際的傳輸時延通常在毫秒到微秒數量級,
  • 傳播時延:位元進入鏈路后,從該鏈路的起點到下一個節點所用的時間,

傳輸和傳播的區別

  • 傳輸時延是路由器推出分組所需要的時間,是分組長度和鏈路傳輸速率的函式
  • 傳播時延是一個位元從一臺路由器傳播到另一臺路由器所需要的時間,他是兩臺路由器之間距離的函式

丟包

  • 到達的分組發現一個滿的佇列,由于沒有地方存盤這個分組,路由器將丟棄該分組,該分組將會丟失

吞吐量

  • 表示在單位時間內通過某個網路(或信道、介面)的資料量

5. 協議層次

計算機網路采用分層的體系結構,分層的體系結構因為提供模塊化而具有很高的價值,同時也易于服務實作的多樣性:某一層對其上一層提供服務,同時它可以利用下一層提供的服務,只要對上提供的服務和對下利用的服務沒有變化,其層內部的實作并不會對系統結構產生影響;對于大而復雜且需要不斷更新的系統來說,改變服務的實作而不影響系統其他組件是分層模式的另一個重要優點,

一個協議層可以使用軟硬體實作,同時某個協議層的不同部分常常位于網路組件的各部分,協議分層具有概念化和結構化的優點,模塊化使得更新系統組件更為容易,但是分層也有其缺點,就是功能上的冗余,比如許多協議堆疊針對鏈路和端到端兩種情況都提供了差錯恢復功能,第二種潛在的缺點就是某層的功能可能需要僅在其它層才出現的資訊,

5.1 OSI 參考模型

在這里插入圖片描述

  • 應用層
    • 為應用程式提供服務并規定應用程式中通信相關的細節,包括檔案傳輸、電子郵件、遠程登錄(虛擬終端)等協議,
  • 表示層
    • 將應用處理的資訊轉換為適合網路傳輸的格式,或將來自下一層的資料轉換為上層能夠處理的格式,
    • 因此它主要負責資料格式的轉換,
  • 會話層
    • 負責建立和斷開通信連接(資料流動的邏輯通路),以及資料的分割等資料傳輸相關的管理,
  • 傳輸層
    • 起著可靠傳輸的作用,只在通信雙方節點上進行處理,而無需在路由器上處理,
  • 網路層
    • 將資料傳輸到目標地址,目標地址可以是多個網路通過路由器連接而成的某一個地址,因此這一層主要負責尋址和路由選擇,
  • 資料鏈路層
    • 負責物理層面上互連的、節點之間的通信傳輸,
  • 物理層
    • 負責0、1位元流(0、1序列)與電壓的高低、光的閃滅之間的互換,

5.2 TCP / IP 參考模型

在這里插入圖片描述

  • 應用層
    • 應用層負責處理特定的應用程式細節,
  • 運輸層
    • 運輸層主要為兩臺主機上的應用程式提供端到端的通信,
  • 網路層
    • 有時也稱作互聯網層,處理分組在網路中的活動,例如分組的選路,
  • 鏈路層
    • 有時也稱作資料鏈路層或網路介面層,通常包括作業系統中的設備驅動程式和計算機中對應的網路介面卡,它們一起處理與電纜(或其他任何傳輸媒介)的物理介面細節,

5.3 五層參考模型

在這里插入圖片描述

  • 應用層
    • 應用層是網路應用程式及它們的應用層協議存留的地方,
    • 應用層協議分布在多個端系統,端系統中的應用程式使用該協議與另一個端系統中的應用程式通信,處于應用層的分組稱為報文,
  • 運輸層
    • 因特網的運輸層在應用程式端點之間傳送應用層報文,
    • 我們把運輸層的分組稱為報文段(segment)
  • 網路層
    • 網路層將稱為資料報的網路層分組從一臺主機移動到另一臺主機,
  • 鏈路層
    • 在每個節點,網路層將資料報下傳給鏈路層,鏈路層沿著路徑將資料報傳遞給下一個節點,然后在下一個節點,鏈路層將資料報上傳給網路層,
  • 物理層
    • 將幀中的位元從一個節點移動到下一個節點,與實際傳輸媒體有關,

5.4 封裝

  • 一個應用層報文(application - layer message) 被傳送到運輸層,在最簡單的情況下,運輸層收取到報文并附上附加資訊(運輸層收不資訊),
    • 該首部資訊將被接收端運輸層使用,應用層報文和運輸層首部資訊一道構成了運輸層報文段(transport-layer segment)
    • 運輸層報文段因此封裝了應用層報文,附加的資訊也許包括了下列資訊:① 如允許接收端運輸層向上向適當的應用程式交付報文的資訊;② 如差錯檢測位資訊,該資訊讓接收方能夠判斷報文中的位元是存在途中已被改變,
  • 運輸層則向網路層傳遞該報文段,網路層增加了如源和目的端系統地址等網路層首部資訊 ,產生了網路層資料報( network-layer datagram)
  • 該資料報接下來被傳遞給鏈路層,鏈路層(向然而然地)增加它自己的鏈路層首部資訊并創建鏈路層幀 (link-layer frame)

在每一層,一個分組具有兩種型別的欄位:首部宇段有效載荷欄位 (payload field) 有效載荷通常是來自上層的分組,

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/290135.html

標籤:其他

上一篇:c語言基礎筆記

下一篇:初識C語言(Ⅰ)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more