計算機網絡 1

兩臺主機想通信,其實本質就是兩個文件的資源交換,但是長距離的通信,面臨的是很多的問題。這個時候需要通過一些方式來保證可靠性
在這里插入圖片描述

什么是協議

這樣一個例子,我是住在農村,我讀高中了我需要去縣里面讀書。這個時候呢,本來給的生活費就不多,我不想把生活費浪費在打電話上。我就和家里面有一個約定。說,如果電話響了一聲,證明我安全達到學校,如果電話響了兩聲,就證明我沒有生活費了,你需要給我打錢,如果電話響了兩聲以上,就是證明我有其他事情找你,你必須接電話了。

但是這樣就行了嗎?

這個是代表我們能夠正常的聊天,但是在真正聊天之前我們還需要做一些事情的。
比如說我們是一個幫派,很大很大。就是全國各地都有,我們為了確認對方是不是跟我們是一個幫派的,這個幫派的軍師定了一個暗號,說“天王蓋地虎” -》回答“小雞燉蘑菇”才算正確。這個跟我們上面講的協議差不多,但是有各種各樣的人啊。方言對于軍師來說聽得懂,但是對于那些普通的小跟班,聽不懂啊!怎么辦?就不把對方當成一派的,殺了、。后面軍師怪罪下來,說你為什么把對方殺了,對方回答正確了,那個小跟班說我聽不懂啊我確認不了。軍事一想確實是這樣,但是就要求只是要這個幫派的都要學習普通話,用普通話會答暗號。這樣就沒問題啦。

這就是傳說中的網絡分層模型

在這里插入圖片描述

為什么要分層,想想我們上面的兩個例子。

在這里插入圖片描述

協議 = 報頭+有效載荷

協議我知道了,這個報頭和有效載荷是什么呢?
我們想一下我們在網上購物,我們買了一個東西,但是商家發快遞的時候會包裝一個紙盒,順豐快遞呢會包裝一個快遞單在紙盒上。那我明明就只是買了東西(有效載荷),為什么要給我一個快遞單子(報頭呢)?這個快遞單就是一個報頭。使用倆區分是哪家快遞公司的。同樣,這里的每一層都有對應的協議。

在這里插入圖片描述
在這里插入圖片描述

mac的理解

我們要知道,ipv4現在已經不夠用了,但是為了保證全國的機器可用,就會先給一個區域的位置的分一個地址,這個地址叫ip地址,然后,我們對這個區域的機器里面是公用一個ipv4地址的。然后但是我們又要區分這個區域里面的每一個機器,這個地址就是mac地址。到時候我們通信的時候,大多數都是由路由轉到這個地址(mac地址)
在這里插入圖片描述

這是一個用戶A給用戶b發送請求的過程,每一層都需要加一個報頭。

在這里插入圖片描述
在這里插入圖片描述

有兩個關鍵的問題

1 如何判斷哪里是報頭,哪里是有效載荷?
2 如何判斷自己的有效載荷要交給上層的哪一個協議呢?

如何找這個問題很簡單,就是一個倒著的多叉樹,往上每一個節點一一比對就行。
針對第一個問題,可以用一個特殊額分隔符作為切分(這里后面會自己實現)

在這里插入圖片描述

局域網的類別

在這里插入圖片描述

西游記的例子
首先我們會有一個例子,唐僧的目的地是從東土大唐到西方如來佛主哪兒去,但是他到女兒國的時候,這樣給女兒國國王說,女兒國國王給他說你的下一步是去黑風嶺。
在這里插入圖片描述

那么接下來我們要理解一下傳輸的過程了

在同一個局域網中,這個并不會完整的這樣進行。當我們訪問127.0.0.1的時候,直接從連路層直接就回到本機了。
在這里插入圖片描述

令牌環網機制就是鎖(后續了解一下)

跨網段的主機的文件傳輸. 數據從一臺計算機到另一臺計算機傳輸過程中要經過一個或多個路由器.
在這里插入圖片描述
簡要的敘述一下流程,首先我們跟上面的西游記一樣,有一個初始ip 和 目標ip 但是網絡這么大,不可能一下就從A發到B 。這時候我們用一些圖的深度優先啊,廣度優先啊算法之類。搜索目標路徑。我們從物理層開始傳輸,傳輸到下一個節點的時候,物理層要往上開始分解之前的報頭,分解之前的ip。到了這一步判斷ip對不對。不對,就往下封裝自己的報頭,在物理層這樣一步一部的往下發送,直到ip正確。

數據包封裝和分用

不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報 (datagram),在鏈路層叫做幀(frame).
應用層數據通過協議棧發到網絡上時,每層協議都要加上一個數據首部(header),稱為封(Encapsulation).
首部信息中包含了一些類似于首部有多長, 載荷(payload)有多長, 上層協議是什么等信息.
數據封裝成幀后發到傳輸介質上,到達目的主機后每層協議再剝掉相應的首部, 根據首部中的 “上層協議字段” 將數據交給對應的上層協議處理

下圖為數據封裝的過程

在這里插入圖片描述

解封過程

在這里插入圖片描述

網絡中的地址管理

認識IP地址

IP協議有兩個版本, IPv4和IPv6. 我們整個的課程, 凡是提到IP協議, 沒有特殊說明的, 默認都是指IPv4
IP地址是在IP協議中, 用來標識網絡中不同主機的地址;
對于IPv4來說, IP地址是一個4字節, 32位的整數;
我們通常也使用 “點分十進制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用點分割的每一個數字表示一個字節, 范圍是 0 - 255;

認識MAC地址

MAC地址用來識別數據鏈路層中相連的節點;
長度為48位, 及6個字節. 一般用16進制數字加上冒號的形式來表示(例如: 08:00:27:03:fb:19)在網卡出廠時就確定了, 不能修改. mac地址通常是唯一的(虛擬機中的mac地址不是真實的mac地址, 可能會沖突; 也有些網卡支持用戶配置mac地址)

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

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

相關文章

VL15 優先編碼器Ⅰ

兩種思路 module encoder_83(input [7:0] I ,input EI ,output wire [2:0] Y ,output wire GS ,output wire EO );reg [4:0] temp1 ; always (*) begincasex({EI,I}) 9b0_xxxx_xxxx:begin temp1 5b000_0_0;…

冒泡排序和遞歸排序

目錄 一.冒泡排序 1.1概念: 1.2原理: 1.3簡單示例講解: 二.遞歸排序 1.1概念: 1.2原理: 1.3簡單示例講解: 一.冒泡排序 1.1概念: 冒泡排序是一種最基礎的交換排序。 通過反復交換相鄰…

Jupyter Lab 軟件安裝與使用

軟件簡介 Jupyter Lab 軟件是一個基于web 的交互式開發環境,集成了代碼編輯器、終端、文件管理器等功能,使得開發者可以在一個界面中完成各種任務。JupyterLab是Jupyter Notebook的全面升級,是一個集文本編輯器、終端以及各種個性化組件于一…

Java進階學習筆記29——Math、System、Runtime

Math: 代表的是數學,是一個工具類,里面提供的都是對數據進行操作的一些靜態方法。 示例代碼: package cn.ensourced1_math;public class MathTest {public static void main(String[] args) {// 目標:了解Math類提供…

那智不二越機器人維修案例分享

那智不二越工業機器人在工業范圍內廣泛應用于各種生產領域。其示教器作為人機交互的重要設備,常常需要定期維護和Nachi不二越機械手示教盒修理。 【Nachi不二越機器人示教器維修步驟】 1. 關閉電源 在進行任何那智不二越機器人維修操作之前,務必確保機器…

<商務世界>《75 微課堂<茶葉(1)-質量分級>》

1 中國茶葉分級 中國的10級標準是按照茶葉的外觀、香氣、滋味、湯色、葉底五個方面進行評分,分別用10分制進行評分,總分為50分,得分越高,茶葉的品質就越高。具體的分數和等級如下表所示: 2 每級的特點 茶葉的質量等級…

OceanBase SQL 診斷和調優實踐——【DBA從入門到實踐】第七期

數據庫作為絕大多數應用系統儲存數據的核心系統,在用戶系統需要訪問數據時,有著至關重要的作用。在這些交互中,SQL 語言是應用與數據庫系統之間“溝通”的橋梁,它負責將應用的指令傳達給數據庫。因此,SQL 的性能好壞直…

弱類型解析

php中 轉化為相同類型后比較 先判斷數據類型后比較數值 var_dump("asdf"0);#bool(true) var_dump("asdf"1);#bool(false) var_dump("0asdf"0);#bool(true) var_dump("1asdf"1);#bool(true)1、md5撞庫 例&#xff1a; <?php incl…

【智能算法應用】模擬退火算法求解多車型車輛路徑問題HFVRP

目錄 1.算法原理2.多車型車輛路徑HFVRP數學模型3.結果展示4.參考文獻5.代碼獲取 1.算法原理 模擬退火算法&#xff08;Simulated Annealing, SA&#xff09;是一種通用概率算法&#xff0c;用于在給定一個大的搜索空間內尋找問題的近似最優解。這種算法受到物理中退火過程的啟…

ffplay 使用文檔介紹

ffplay ffplay 是一個簡單的媒體播放器,它是 FFmpeg 項目的一部分。FFmpeg 是一個廣泛使用的多媒體框架,能夠解碼、編碼、轉碼、復用、解復用、流化、過濾和播放幾乎所有類型的媒體文件。 ffplay 主要用于測試和調試,因為它提供了一個命令行界面,可以方便地查看媒體文件的…

消息隊列拉模式下的訂閱關系不一致問題及解決方法

引言 在分布式系統中&#xff0c;消息隊列&#xff08;Message Queue&#xff0c;MQ&#xff09;是一種常用的組件&#xff0c;用于解耦生產者和消費者&#xff0c;緩解系統負載&#xff0c;提升系統的可靠性和可擴展性。在Java行業中&#xff0c;常見的消息隊列中間件有Apach…

煙囪ERP系統

一、煙囪系統定義 “煙囪式”系統&#xff0c;來自維基百科的解釋是&#xff1a;一種不能與其他系統進行有效協調工作的信息系統&#xff0c;又稱為孤島系統。 二、煙囪系統的案例 比如&#xff1a;就像以下一樣&#xff0c;各個系統之間是獨立的&#xff0c;所有對接是通過…

深度學習復盤與小實現

文章目錄 一、查漏補缺復盤1、python中zip()用法2、Tensor和tensor的區別3、計算圖中的迭代取數4、nn.Modlue及nn.Linear 源碼理解5、知識雜項思考列表6、KL散度初步理解 二、處理多維特征的輸入1、邏輯回歸模型流程2、Mini-Batch (N samples) 三、加載數據集1、Python 魔法方法…

【Android】安卓設備上的Fastboot模式詳解與使用指南

原諒把你帶走的雨天 在漸漸模糊的窗前 每個人最后都要說再見 原諒被你帶走的永遠 微笑著容易過一天 也許是我已經 老了一點 那些日子你會不會舍不得 思念就像關不緊的門 空氣里有幸福的灰塵 否則為何閉上眼睛的時候 又全都想起了 誰都別說 讓我一個人躲一躲 你的承諾 我竟然沒懷…

c++筆記3

優先隊列 普通的隊列是一種先進先出的數據結構&#xff0c;元素在隊列尾追加&#xff0c;而從隊列頭刪除。優先隊列是一種按照優先級決定出隊順序的數據結構&#xff0c;優先隊列中的每個元素被賦予級別&#xff0c;隊首元素的優先級最高。 例如&#xff1a;4入隊&#xff0c…

多文件和靜態/動態鏈接以及虛擬內存管理

多目標文件鏈接 //stack.c char stack[512]; int top -1; void push(char c){stack[top] c; }char pop(void){return stack[top--]; }int is_empty(void){return top 1; }// main.c #include <stdio.h> int a,b 1; int main(){ push(a); push(b); push(c); while(!is…

Vue項目中npm run build 卡住不執行的幾種情況(實戰版)

方法一 一&#xff1a;比較常見是鏡像導致的原因 我們可以找到build/check-versions文件 將這段代碼注釋,重新運行就可以解決這個問題 if (shell.which(npm)) {versionRequirements.push({name: npm,currentVersion: exec(npm --version),versionRequirement: packageConfig.en…

MySQL 存儲過程返回更新前記錄

在MySQL中&#xff0c;如果我們想在存儲過程中返回更新前的記錄&#xff0c;這通常不是直接支持的&#xff0c;因為UPDATE語句本身不返回更新前的數據。但是&#xff0c;我們可以通過一些策略來實現這個需求。 1.MySQL 存儲過程返回更新前記錄常用的方法策略 以下是一個常見的…

應用程序圖標提取

文章目錄 [toc]提取過程提取案例——提取7-zip應用程序的圖標 提取過程 找到需要提取圖標的應用程序的.exe文件 復制.exe文件到桌面&#xff0c;并將復制的.exe文件后綴改為.zip 使用解壓工具7-zip解壓.zip文件 在解壓后的文件夾中&#xff0c;在.rsrc/ICON路徑下的.ico文件…

代碼隨想錄-Day20

654. 最大二叉樹 給定一個不重復的整數數組 nums 。 最大二叉樹 可以用下面的算法從 nums 遞歸地構建: 創建一個根節點&#xff0c;其值為 nums 中的最大值。 遞歸地在最大值 左邊 的 子數組前綴上 構建左子樹。 遞歸地在最大值 右邊 的 子數組后綴上 構建右子樹。 返回 nums…