osi七層協議

来源:https://www.cnblogs.com/setcreed/archive/2019/10/20/11710239.html
-Advertisement-
Play Games

[TOC] OSI七層協議 實現遠程通信具備: 1. 物理連接介質—— 網卡 2. 互聯網協議:電腦之間溝通的介質“互聯網協議” 互聯網的本質就是一系列的網路協議,這個協議就是osi。(OSI是Open System Interconnection的縮寫)。按照分工的不同,人為劃分為七層, 從下往 ...


目錄

OSI七層協議

實現遠程通信具備:

  1. 物理連接介質——> 網卡
  2. 互聯網協議:電腦之間溝通的介質“互聯網協議”

互聯網的本質就是一系列的網路協議,這個協議就是osi。(OSI是Open System Interconnection的縮寫)。按照分工的不同,人為劃分為七層,

從下往上分別是物理層,數據鏈路層,網路層,傳輸層,會話層,表示層,應用層。

物理層

物理層:物理傳輸,在不同地方的電腦想要通信必須,電腦要插一根網線、路由器,才可以實現。也就是說要有物理介質連接,

中間的物理鏈接可以是光纜、電纜、雙絞線、無線電波,基於電信號發送二進位數據0100010101。

但是一堆二進位數據沒有分組,不知道什麼意思,這就要交給數據鏈路層處理。

數據鏈路層

數據鏈路層的“乙太網協議”, 專門用於處理基於電信號發送二進位的數據。

乙太網協議:

  1. 規定好電信號數據的分組方式
  2. 每一臺連接網線的電腦都必須要有一塊網卡,發送端的和接收端的地址就是網卡的地址,即mac地址

mac地址

網卡由不同廠商生產,每塊網卡出廠都會被燒錄上實際上唯一的mac地址,由48位二進位組成,通常用12位16進位表示,前6位是廠商編號,後6位是流水線號

有了mac地址電腦就可以通信了。假設一個教室就是一個區域網,教室里有幾台電腦,電腦的通信就使用廣播的方式,靠吼。

比如說我想找老張要片,我得知道自己的mac地址和老張的mac地址,這兩個地址做數據包的頭部,再加上數據片就構成了一個數據包。

這樣發送出去,然後就通過廣播的方式,在教室的所有人都聽到了,都會拆這個數據包,看是找誰的,只要不是找自己的就丟掉,其實就是再看想找那個mac地址,找的是老張,這樣老張就會收到消息並把片發給我。這就是區域網通信。

但我有事找老王,他在隔壁教室,這樣他就聽不到我廣播了,這就得交給網路層來處理了。

網路層

IP協議

有兩種版本,一個是IPv4,另一個是IPv6

IPv4是由32位二進位組成,32位分成4組,8位一組換算成10進位顯示,採用點分制。範圍從0.0.0.0255.255.255.255

通過IP協議可以跨區域網通信。我想找隔壁教室的老王,我在自己教師廣播,他肯定是聽不到的。那麼我就得找教室負責人,把東西交給負責人,讓他去找隔壁教室負責人,說我想找你教室的老王,然後把東西交給負責人,讓負責人帶話給老王。負責人就是網關。

Mac地址是用來標識你這個教室的某個位置,IP地址是用來標識你在哪個教室(哪個區域網)。你要跨網路發包你是不是要知道對方的IP地址,比如你要訪問百度,你肯定得知道百度伺服器的IP地址。電腦在發包前,會判斷你在哪個教室,對方在哪個教室,如果在一個教室,基於mac地址的廣播發包就OK了;如果不在一個教室,即跨網路發包,那麼就會把你的包交給教室負責人(網關)來轉發。Mac地址及IP地址唯一標識了你在互聯網中的位置。

ARP協議

IP地址與mac地址的映射關係

傳輸層

傳輸層建立埠到埠的通信

埠標識主機上的應用程式,是應用程式與網卡關聯的編號

埠範圍:0-65535,前1024個埠為系統占用

有了IP地址+mac地址+埠,我們就能確定世界上唯一的電腦的應用程式

TCP協議

  • 可靠傳輸,提供的是流式協議為了方便傳輸, 將大塊數據分割成以報文段(segment) 為單位的數據包進行管理。 而可靠的傳輸服務是指, 能夠把數據準確可靠地傳給對方。 即TCP 協議為了更容易傳送大數據才把數據分割, 而且 TCP 協議能夠確認數據最終是否送達到對方。所以,TCP連接相當於兩根管道(一個用於伺服器到客戶端,一個用於客戶端到伺服器),管道裡面數據傳輸是通過位元組碼傳輸,傳輸是有序的,每個位元組都是一個一個來傳輸。

UDP協議

無連接協議,不可靠傳輸

應用層

用戶使用的程式都是應用程式,均工作於應用層,規定了應用程式的數據格式


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • package singeton;import java.security.SecureRandom;/** * @author Zero * @since 2019-08-13. * Description: */public class HungrySingleton { private sta ...
  • 一、其他註意點 1.對於帶有static的方法,我們講過需要用“類名.”的方式進行訪問,但是其實我們使用“引用.”的方式也是可以進行訪問這個方法的舉例。 2.對於上面的特性,為什麼這樣,我想用下麵這個更進一步的例子,也許可以知曉一二了,我們之前講過空指針異常。 這個空指針異常,是指空引用訪問實例相關 ...
  • 2019-10-20-23:13:52 目錄內容: 1.Scanner類 2.匿名對象 3.Random類 4.對象數組 Scanner類 功能:實現鍵盤輸入數據到程式中 使用步驟: 1.導包: import 包路徑.類名稱; 如果需要使用的目標類和當前類位於同一個包下,可以省略導包 只有java. ...
  • 需求:我們先舉個某系統驗證的列子:(A渠道系統,業務B系統,外部廠商C系統) (1)B業務系統調用A渠道系統,驗證傳入的手機、身份證、姓名三要素是否一致。 (2)A渠道系統再調用外部廠商C系統。 (3)A渠道系統將結果返回給B業務系統。 這3個過程中,(2)過程,調用外部廠商是需要計費的。 當B業務 ...
  • 新聞 "TypeShape的性能" ".NET Core 3.0包含.NET Framework API移植項目" "宣告.NET Core 3.1預覽版1" ".NET Core 3.1預覽版1中ASP.NET Core的更新" "文檔管理改善:垂直文檔標簽就在這裡!" "Gradient預覽版6 ...
  • 在進行分析EurekaClient和EurekaServer之間通信的源碼之前,我們首先需要熟悉一下幾個實體類 這個類代表著EurekaClient實例,客戶端向服務端請求註冊時就會攜帶著這個實例,這個實例中包含了當前客戶端的一些基本信息: 這個枚舉中包含了客戶端可能存在的狀態 這個類是服務端用來保 ...
  • Spring Boot中Thymeleaf對錶單處理的一些用法: (1)使用th:field屬性:進行表單欄位綁定 (2)使用ids對象:一般用於lable配合radio或checkbox使用 (3)表單提交處理 ...
  • 一、安裝python3 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc* make -y yum install zlib-devel bz ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...