主頁 > 軟體設計 > 網路協議:網路基礎

網路協議:網路基礎

2021-10-13 07:52:24 軟體設計

什么是計算機網路?

將各個分散的、具有獨立功能的計算機系統,通過網路設備(路由器)和線路(光纖)連接起來,然后通過軟體實作資源共享和資訊傳遞的系統,

一 網路指標

1.1 速率

速率: 指的是每一秒發送端和接收端傳輸的位元數量(即8位,二進制表示,1代表高電壓,0代表低電壓),或者說每一秒兩段之間傳輸的資料量,常見的單位b/s kb/s, Mb/s Gb/s等

1.2 帶寬

帶寬: 表示網路通信線路傳輸資料的能力,即最高速率,比如100.0 Mbs (百兆帶寬)1000.0 Mbs(千兆帶寬)

假設本地網卡帶寬是10Mbs,即該網卡允許每秒最多傳輸10M的資料,不能超過10M,現實中肯恩都還不能達到10M,如果你現在在下載檔案(3Mbs),看電視劇(5Mbs),打游戲(4Mbs),但是因為本地網卡最多允許10Mbs帶寬,所以你現在正在進行的網路活動的速率即使超過了10Mb,也不會在一秒內同時接收,

運營商可以通過時鐘頻率來限制帶寬,

1.3 吞吐量

吞吐量:指的是在單位時間內通過某個網路(信道、介面)的資料量,包括全部上傳和下載的流量,受網路帶寬的影響,

1.4 時延

時延:指的是資料(報文、分組、位元流)從網路的一端發送到另一端所需要的時間,也叫延遲或者遲延,單位是秒,他可以分為發送時延和傳播時延、排隊時延、處理時延等

1.4.1 發送時延

即從一個網路設備發送資料到另一個網路設備需要的時間,比如主機到交換機,交換機到路由器,路由器到路由器等,

發送時延 = (資料幀的長度(bit)) / 發送速率(bit/s)

1.4.2 傳播時延

1.4.2.1排隊時延

排隊時延: 比如網路過來的資料達到路由器,但是路由器來不及轉發,就需要在介面處排隊,等待被路由器處理,通過查路由表看走哪一個介面出去,或者說在路由器選擇了某一出口,如果來不及出去,則放入出口佇列進行排隊,等待的時間就是排隊時延,同理,交換機也會有進出口的排隊行為,

1.4.2.2 處理時延

處理時延: 路由器處理資料包,看網路層首部,看一下目標地址,查詢路由表,該怎么轉,是否需要修改首部值,比如TTL的值,重新計算校驗和等,所以處理也是需要時間的,同理,交換機也會有自己處理行為,也會耗費時間

1.4.3 總時延

總時延: 就是從源主機到目標主機所需要的(發送時延+傳播時延)的總和

二 IP地址

IP: 是Internet Protocol縮寫,即網際協議,所以IP地址也叫作網際協議地址,

IP地址是由32位二進制組成,為了方便,轉化成10進制,IP地址主要包括兩個部分:網路標識部分和主機標識部分,有的也叫作網路位和主機位,而且不同型別的IP地址,網路部分和主機部分是不同的,如圖所示:

我們需要注意:對于主機位而言,不能全是0或者全是1,全是0是給子網掩碼用的;全是1是廣播地址用的,

即C類地址不允許最后一位是0或者是255;B類地址不允許最后2位全是0或者全是255;同理A類地址不允許最后三位全是0或者是255

私網地址:(我們不能直接訪問,要么VPN要么埠映射)

A類: 10.0.0.0 255.0.0.0 總共可以有256*256*256-2臺主機

B類: 172.16.0.0 255.255.0.0 ~ 172.31.0.0 255.255.0.0, 保留了16個B類網路,可以有16*256*256 -2 臺主機

C類: 192.168.0.0 255.255.255.0 ~ 192.168.255.0 255.255.255.0,保留了256個C類地址,即256 * 256 -2 主機

三 MAC地址

MAC地址: 每一個網卡或者路由器都有自己物理地址,這個物理地址是網卡或路由器出場時候燒錄的,總共由48位16進制數表示,前24位表示IEEE廠商分配;后面24位由廠商分配,又因為資料鏈路層主要是解決媒體訪問控制的問題,所以也叫作MAC地址,

四 IP地址和MAC地址比較

4.1 所在的分層不一樣

IP地址屬于網路層地址;MAC地址屬于資料鏈路層的地址

4.2 目的不一樣

IP地址決定了資料包最終到達哪一個計算機,作用是在外網尋址;而MAC地址決定資料包下一跳該由哪一個設備接收,主要是在內網作業,比如交換機會記錄內網中設備IP地址和MAC地址,進行映射

4.3 IP地址在網路中是可以被修改的,但是MAC地址是不會的,你電腦上的網卡拔下來插入到別人的電腦上MAC地址不會改變

五 子網掩碼(subnet mask)

5.1 什么是子網掩碼

掩碼:是一串二進制,對目標進行與運算,屏蔽某些位

子網掩碼:也是一串二進制,對目標IP地址進行與運算,可以知道IP地址哪些位是網路位,哪些是主機位,

5.2子網掩碼有何作用

確定IP地址中哪些是網路地址,哪些是主機地址

5.3 IP地址和子網掩碼的關系

正常情況下,不劃分子網和超網的情況下,A類IP地址對應子網掩碼是255.0.0.0; B類IP地址對應子網掩碼是255.255.0.0; C類IP地址對應子網掩碼是255.255.255.0

5.4 如何計算IP地址屬于哪一個網段?

以192.168.3.24為例

第一:將IP地址轉化成二進制表示:

11000000 10101000 00000011 00011000

第二:將子網掩碼轉化成二進制表示:

11111111 11111111 11111111 00000000

第三:然后將這兩部分做與運算

11000000 10101000 00000011 00011000

11111111 11111111 11111111 00000000

11000000 10101000 00000011 00000000(結果)

第四:將結果轉化成10進制表示

192.168.3.0

所以以此我們在轉發資料包的時候,就可以判斷目的IP地址是不是和源主機屬于同一個網段;如果是則通過MAC地址轉發資料;不是則通過路由器轉發資料

六 子網劃分

子網劃分:就是借用現有網段的主機位做子網位,劃分出多個子網,

實作方式:就是將當前的子網掩碼主機位移動,如果劃分2個子網,可以向主機位右移1位;如果是2-4,可以向主機位右移2位,

6.1 為什么需要子網劃分

公網地址不夠用,避免資源浪費,所以需要子網劃分,讓公網地址充分利用,


什么才屬于公網IP地址浪費呢?

如果現在在弄一個交換機,交換機下又有200臺機器,現在之前分配的C類根本不夠用,然后再申請256個公網地址或者干脆申請B類地址,那么現在

6.2 等長子網劃分

就是將一個網段等分成多個網段,也就是等分成多個子網,

#1 確定子網掩碼的長度

如果劃分的網路是原來的1/(2*N),則需要向主機位移動N位,然后移動的位置置為1

比如C類地址,255.255.255.0,如果要劃分的子網是原來的1/4,則向右移動2位,

11111111 11111111 11111111 00000000

11111111 11111111 11111111 11000000(結果)

所以結果為255.255.255.192

#2 確定子網中第一個可用的IP地址和最后一個可用的IP地址

只要滿足主機位不全是0或者全是1即可,

假設目前的網路情況:

現在需要將50臺計算機位于現在的網段中,然后另外150臺位于三個不同的網段中,如何實作?劃分后子網掩碼是多少?每一個范圍內最小和最大IP地址,

6.2.1 C類地址

6.2.2 B類地址

6.2.3 A類地址

6.3 變長子網劃

以前假設網路是200臺電腦,網段是192.168.3.0. 現在需要劃分為3個子網,電腦只有170臺,每一個子網要求的電腦數不一樣,如何劃分子網?

我們計算每一個子網的最大最小區間方法:

第一步:先計算需要容納最多數量計算機,比如我們這里最多需要容納100臺,所以我們將網路2等分,主機位向右移動1位,即除以2,即128,我們就將128-255之間分配100臺計算機即可, [192.168.3.129,192.168.3.254];

第二步:然后在計算容納第二多的計算機的子網的最大最小范圍,比如我們這里需要容納50臺計算機,我們將網路四等分,即主機位向右移動2位,即64,那么我們就在64-128之間分配50臺計算機即可,即[192.168.3.65,192.168.3.126]

第三步:同理,我們將網路8等分,主機位向右移動3位,即32,那么我們在32-64之間分配20臺計算機,即[192.168.3.33,192.168.3.62]

6.4 如何判斷一個網段是超網還是子網

#1 通過左移子網掩碼合并多個網段;右移子網掩碼將一個網段劃分成多個子網,使得IP地址打破了傳統的A,B,C類的限制

#2 判斷一個網段到底是子網還是超網,首先需要判斷是哪一類網路,A類,B類

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

標籤:其他

上一篇:Nginx服務器高性能優化的配置--輕松實作10萬并發訪問量

下一篇:SpringCloud 整合 Sentinel

標籤雲
其他(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