我的計算機網絡(總覽篇)

總覽--網絡協議的角度

在一個龐大的網絡中,該從哪里去了解呢?我先細細的講一下我們訪問一個網站的全部流程,當我們的電腦連上網絡的時候,就會啟動DHCP協議,來進行IP地址,MAC地址,DNS地址的分配,拿到我們的IP地址后,使用UDP協議進行DNS服務器的查詢,DNS有什么?查詢什么?可以將DNS服務器理解成一個域名和IP的映射集合,通過域名進行IP的查找,查找到我們所需要訪問的網站的IP之后,再次通過UDP數據報返回給我們,然后我們就要面臨選擇了,如果我們需要實時性,就選擇UDP協議,需要安全性就選擇TCP協議,我先介紹TCP協議,因為UDP太簡單了。首先我們知道了各自的IP,但是還不知道MAC地址,MAC地址在全球具有唯一標識,跟IP地址相比更類似于一個物理標識,而IP更偏向于軟件。此時我們通過IP地址,在ARP協議中尋找對應的MAC地址,ARP協議包含了IP和MAC的映射集,然后我們就擁有了和我們目的服務器建立連接的基本條件--IP和MAC,然后就通過TCP三次握手建立連接,之后就可以通過HTTP協議進行數據的交換,但是為什么說TCP協議可以保證安全性呢?因為有HTTPS協議,那么HTTP和HTTPS有什么不同的呢?請記住一個等式:HTTPS=HTTP+SSL/TSL,HTTP協議中文就是超文本傳輸協議,而SSL/TSL協議就是一種非對稱加密協議,經過加密之后別人就別想看了,然后就可以使用HTTP協議進行數據交換了,但是交換的前提就是使用IP協議,IP協議最重要的兩個功能就是分組轉發和路由選擇,何為分組轉發?我們將分組(上一層的PDU)轉發到目的IP,何為路由選擇?我們不能只知道IP目的地,還得知道怎么走,而路由選擇就是告訴我們再去往目的IP的這個過程中怎么走,走哪些路由器。我們做完這些之后就可以進行數據交換了,但是數據交換的過程依舊提心吊膽,因為數據如果錯誤怎么辦?數據如果丟失怎么辦?數據如果超時怎么辦?該怎么保證數據的可靠傳輸呢?別急!!!針對這三個問題,偉大的前人已經想好了各種協議去解決,我們一個一個來:

面對數據的錯誤-首先我們可以使用差錯校驗去進行數據錯誤的判斷,具體的方法有奇偶校驗和循環冗余校驗,但是奇偶校驗會發生漏碼,就是特定情況下不能檢測出誤碼,但是循環冗余校驗則不會,如果發現誤碼,接收方就會丟掉。

面對數據的超時-首先進行數據交換的雙方非常的有禮貌,當他們收到數據的時候都會回復一個收到,而正是因為這個收到發送方才能知曉對方收到,而這個收到在他們的語言里叫做ACK,如果在規定時間里發送方沒有收到ACK,那么就會觸發發送方的超時重傳,所以無論是超時還是丟失,只要接收方沒有發送ACK,那么發送方就會重傳。

數據的可靠傳輸-我們之前所說的超時重傳依賴的就是ACK,而這種方式又叫做停止-等待協議(SW,顧名思義如果沒有接收到ACK,那就停止發送,等待至規定時間,然后觸發重傳,除此之外還有回退N幀協議(GBN)。

在進行完數據交換之后,就進行TCP四次揮手,至此連接斷開。

總覽--網絡分層的角度

我們現在換一個角度去理解計算機網絡,那就是分層協議,分層協議可以有兩種,一種就是法律意義上的OSI協議,總共有七層,依次是物理層,數據鏈路層網絡層傳輸層,會話層,表示層,應用層,另一個就是在商業被廣泛使用的TCP/IP四層模型:網絡接口層,網絡層,傳輸層,應用層。一個數據會經過這些層層包裝,然后轉發,轉發,之后又會層層卸掉包裝,那為什么OSI有七層,TCPIP只有四層呢?首先要說的是OSI協議已經不被使用了,因為過于復雜,而且運行效率很低,而且成本很高,缺乏實際經驗,沒有商業驅動力,所以能夠占領市場的就是標準--TCP/IP協議,OSI的表示層,會話層被合并到了TCPIP的應用層,數據鏈路層和物理層被合并到了網絡接口層。那每一層都是干嘛的呢?我們先從繁瑣的OSI七層開始講起。

OSI七層模型概述

物理層:我們熟知的光纖電纜,這種通過物理介質傳輸的就是物理層的作用

數據鏈路層:將比特流封裝成幀,而且進行流量控制,差錯檢驗,MAC尋址

網絡層:通過IP協議進行路由選擇,分組轉發,實現主機之間的連接

傳輸層:建立端口到端口的通信,使用TCP/UDP協議

會話層:管理應用之間的對話,支持斷點續傳和同步

表示層:處理數據格式之間的轉換

應用層:直接面向用戶,提供網絡服務接口,如:HTTP,HTTPS

TCP/IP四層模型概述

網絡接口層:封裝成幀,將幀轉化為比特流,在物流層面進行傳輸

網絡層:通過IP協議,進行路由選擇和分組轉發,實現主機之間的通信

傳輸層:通過TCP或者UDP協議實現端口之間的通信,也就是應用之間的通信

應用層:OSI的會話層,表示層,應用層

通過以上的介紹,我們不難發現OSI有兩層沒有和其他層整合在一起--傳輸層和網絡層,這兩層也是所有分層中最重要的。現在我們具體介紹一下,一個數據在每一層都會發生什么,又是通過什么協議發生改變的?

數據在各個分層的狀態

首先在應用層,我們的要發送的數據位于應用層,這些數據被稱為應用層的PDU,然后這些數據到了傳輸層,傳輸層建立端口之間的鏈接,將這些數據拆分成若干個報文段,將這些報文段進行改造,改造成本層的PDU,經過哪些改造呢?對原報文段增加頭部,頭部包含源端口和目的端口。然后來到了網絡層,還是得在強調一下網絡層的作用:分組轉發和路由選擇,以此實現主機之間的通信,這個分組就是指數據報,這實在是太重要了,網絡層拿到了傳輸層的PDU,然后還要改造,也是要添加頭部,頭部里包含源IP地址和目的IP地址,這就構成了網絡層的IP數據包,然后到了數據鏈路層,數據鏈路層給IP數據報添加幀首部和幀尾部,這就是數據鏈路層的分裝成幀,幀首部包含了幀開始符,幀的源地址和目的地址,而幀尾部包含了幀結束符,到了物理層,如何識別比特流中的幀呢?就是靠幀的開始符和結束符,也就是幀定界。

從網絡分層和網絡協議兩個角度去理解計算機網絡的全過程就結束了,接下來就是逐個介紹一些很重要的協議了!!!

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

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

相關文章

開源的PMPI庫實現及示例代碼

開源的PMPI庫實現及示例代碼 PMPI (Profiling MPI) 是MPI標準中定義的接口,允許開發者通過攔截MPI調用進行性能測量和調試。以下是幾個常用的開源PMPI庫實現: 1. MPICH的PMPI接口 MPICH本身提供了PMPI接口,可以直接使用。 2. OpenMPI的PM…

Unity 基于navMesh的怪物追蹤慣性系統

今天做項目適合 策劃想要實現一個在現有的怪物追蹤系統上實現怪物擁有慣性功能 以下是解決方案分享: 怪物基類代碼: ? using UnityEngine; using UnityEngine.AI;[RequireComponent(typeof(NavMeshAgent))] [RequireComponent(typeof(AudioSource))] …

PyTorch進階學習筆記[長期更新]

第一章 PyTorch簡介和安裝 PyTorch是一個很強大的深度學習庫,在學術中使用占比很大。 我這里是Mac系統的安裝,相比起教程中的win/linux安裝感覺還是簡單不少(之前就已經安好啦),有需要指導的小伙伴可以評論。 第二章…

【區塊鏈安全 | 第三十八篇】合約審計之獲取私有數據(二)

文章目錄 前言漏洞代碼代碼審計攻擊步驟修復/開發建議審計思路前言 在【區塊鏈安全 | 第三十七篇】合約審計之獲取私有數據(一)中,介紹了私有數據、訪問私有數據實例、Solidity 中的數據存儲方式等知識,本文通過分析具體合約代碼進行案例分析。 漏洞代碼 // SPDX-Licens…

《微服務與事件驅動架構》讀書分享

《微服務與事件驅動架構》讀書分享 Building Event-Driver Microservices 英文原版由 OReilly Media, Inc. 出版,2020 作者:[加] 亞當 ? 貝勒馬爾 譯者:溫正東 作者簡介: 這本書由亞當貝勒馬爾(Adam Bellemare…

小剛說C語言刷題——第22講 二維數組

昨天我們講了一維數組,今天我們來講二維數組。 1.定義 二維數組是指在數組名后跟兩個方括號的數組。 2.語法格式 數據類型 數組名[下標][下標] 例如:int a[5][9];//表示5行9列的數組 3.訪問二維數組元素 格式:數組名[行坐標][列坐標]…

Vue 大文件分片上傳組件實現解析

Vue 大文件分片上傳組件實現解析 一、功能概述 1.1本組件基于 Vue Element UI 實現,主要功能特點: 大文件分片上傳:支持 2MB 分片切割上傳實時進度顯示:可視化展示每個文件上傳進度智能格式校驗:支持文件類型、大小…

「邏輯推理」AtCoder AT_abc401_d D - Logical Filling

前言 這次的 D 題出得很好,不僅融合了數學邏輯推理的知識,還有很多細節值得反復思考。雖然通過人數遠高于 E,但是通過率甚至不到 60%,可見這些細節正是出題人的側重點。 題目大意 給定一個長度為 N N N 的字符串 S S S&#…

騰訊后臺開發 一面

一、手撕 合并升序鏈表 合并兩個排序的鏈表_牛客題霸_牛客網 順時針翻轉矩陣 順時針旋轉矩陣_牛客題霸_牛客網 二、八股 1、靜態變量和實例變量 public class House {public static String buildDate "2024-10-27"; // 靜態變量public String color; // 實…

Unity 動畫

Apply Root Motion 勾選的話就會使用動畫片段自帶的位移 Update Mode (動畫重新計算骨骼位置轉向縮放的數值): Normal : 隨Update走,每次Update都計算Animate Physics :與 fixed Update() 同步&#xff0…

NDT和ICP構建點云地圖 |【點云建圖、Ubuntu、ROS】

### 本博客記錄學習NDT,ICP構建點云地圖的實驗過程,參考的以下兩篇博客: 無人駕駛汽車系統入門(十三)——正態分布變換(NDT)配準與無人車定位_settransformationepsilon-CSDN博客 PCL中點云配…

基于HTML + jQuery + Bootstrap 4實現(Web)地鐵票價信息生成系統

地鐵票價信息表生成系統 1. 需求分析 1.1 背景 地鐵已經成為大多數人出行的首選,北京地鐵有多條運營線路, 截至 2019 年 12 月,北京市軌道交通路網運營線路達 23 條、總里程 699.3 公里、車站 405 座。2019 年,北京地鐵年乘客量達到 45.3 億人次,日均客流為 1241.1 萬人次…

EtherNet/IP 轉 Modbus 協議網關

一、產品概述 1.1 產品用途 SG-EIP-MOD-210 網關可以實現將 Modbus 接口設備連接到 EtherNet/IP 網 絡中。用戶不需要了解具體的 Modbus 和 EtherNet/IP 協議即可實現將 Modbus 設 備掛載到 EtherNet/IP 接口的 PLC 上,并和 Modbus 設備進行數…

PostgreSQL:邏輯復制與物理復制

🧑 博主簡介:CSDN博客專家,歷代文學網(PC端可以訪問:https://literature.sinhy.com/#/?__c1000,移動端可微信小程序搜索“歷代文學”)總架構師,15年工作經驗,精通Java編…

騰訊云COS與ZKmall 開源商城的存儲集成方案

ZKmall 開源商城與騰訊云對象存儲(COS)的集成,可通過云端資源托管、自動化數據同步、高性能存儲架構實現本地存儲負載降低與訪問效率提升。以下是基于搜索結果的集成路徑與核心優化點: 一、存儲架構升級:本地與云端協同…

HTML — 浮動

浮動 HTML浮動(Float)是一種CSS布局技術,通過float: left或float: right使元素脫離常規文檔流并向左/右對齊,常用于圖文混排或橫向排列內容。浮動元素會緊貼父容器或相鄰浮動元素的邊緣,但脫離文檔流后可能導致父容器高…

【軟件測試學習day1】軟件測試概念

前言 本篇學習,測試相關基礎概念、常見的開發模型測和測試模型,搞懂4個問題: 什么是需求什么是 bug什么是測試用例開發模型和測試模型 目錄 1. 什么是需求 1.1 為什么要有需求 1.2 測試人員眼里的需求 1.3 如何深入了解需求 2. 測試用例…

Flutter常用組件實踐

Flutter常用組件實踐 1、MaterialApp 和 Center(組件居中)2、Scaffold3、Container(容器)4、BoxDecoration(裝飾器)5、Column(縱向布局)及Icon(圖標)6、Column/Row(橫向/橫向布局)+CloseButton/BackButton/IconButton(簡單按鈕)7、Expanded和Flexible8、Stack和Po…

劉火良FreeRTOS內核實現與應用學習之7——任務延時列表

在《劉火良FreeRTOS內核實現與應用學習之6——多優先級》的基礎上:關鍵是添加了全局變量:xNextTaskUnblockTime ,與延時列表(xDelayedTaskList1、xDelayedTaskList2)來高效率的實現延時。 以前需要在掃描就緒列表中所…

圖像預處理-插值方法

一.插值方法 當我們對圖像進行縮放或旋轉等操作時,需要在新的像素位置上計算出對應的像素值。 而插值算法的作用就是根據已知的像素值來推測未知位置的像素值。 1.1 最近鄰插值 CV2.INTER_NEAREST 其為 warpAffine() 函數的參數 flags 的其一,表示最近…