Python基礎之網路編程:2、OSI七層協議

来源:https://www.cnblogs.com/kangssssh/archive/2022/11/15/16893058.html
-Advertisement-
Play Games

Python基礎之網路編程 一、網路編程前戲 1.什麼是網路編程: ​ 網路編程是指基於網路編寫代碼,能夠實現數據的遠程交互 2.學習網路編程的目的: ​ 能夠開發基於網路,實現與多用戶交互的C/S架構的軟體 3.網路編程的起源: ​ 最早起源於美國軍事領域,早期人們想要實現不同電腦內的數據交互只 ...


目錄

Python基礎之網路編程

一、網路編程前戲

1.什麼是網路編程:

​ 網路編程是指基於網路編寫代碼,能夠實現數據的遠程交互

2.學習網路編程的目的:

​ 能夠開發基於網路,實現與多用戶交互的C/S架構的軟體

3.網路編程的起源:

​ 最早起源於美國軍事領域,早期人們想要實現不同電腦內的數據交互只能使用硬碟拷貝,為了能夠更快、更為便捷的實現數據交互,於是就誕生了網路編程

4.網路編程的必備條件:

​ 數據的遠程交互

​ 1.早期的電話:需要通過電話線

​ 2.大屁股電腦:需要通過網線

​ 3.筆記本電腦、行動電話:需要通過網卡

實現數據的遠程交互必備的基礎條條件是:物理連接介質

二、OSI七層協議

簡介:

  • OSI七層協議:
    • 規定了所有的電腦在遠程數據交互的時候必須經過相同的處理流程、在製造過程中必須擁有相同的功能硬體
  • 包含:
    • 應用層:
      • 與其他電腦進行溝通的應用,它是對應應用程式的通信服務的
    • 表示層:
      • 這一層的主要功能是定義數據格式及加密
    • 會話層:
      • 它定義瞭如何開始、控制和結束一個會話,包括對多個雙向消息的控制和管理,以便在只完成連續消息的一部分時可以通知應用,從而使表示層看到的數據是連續的
    • 傳輸層:
      • 對傳輸的數據進行處理、排序
    • 網路層:
      • 對端到端的包傳輸進行定義
    • 數據鏈路層:
      • 定義了在單個鏈路上如何傳輸數據
    • 物理連接層:
      • 電腦之間需要用到光纜、電纜以及無線電波

最常見的是整合之後的五層或者四層:

​ 五層:應用層、傳輸層、網路層、數據鏈路層、物理連接層

​ 四層:應用層、傳輸層、網路層、網路介面層

接收消息:數據由下往上傳遞

發送消息:數據由上往下傳遞

1、物理連接層

主要用於確保電腦之間的物理連接介質
接收數據(bytes類型、二進位)

2、數據鏈路層

1、規定了電信號的分組方式
2、乙太網協議
	規定了電腦在出廠的時候都必須有一塊網卡、網卡上有一串數字
	該數字相當於是電腦的身份證號碼,是獨一無二的
	數字特征: 12位16進位數據
    	前6位:廠商編號   後6位:流水線號
	該數字稱為:乙太網地址/MAC地址

網路相關專業名詞

​ 電腦之間想要實現數據交互必須要‘連接’到一起

1、交換機

​ 能夠將所有的電腦彼此互聯起來

2、廣播

​ 首次查找接入同一個交換機的其他電腦 需要向交換機內‘吼一嗓子’

3、單播

​ 首次被查找的電腦回應查找它的電腦,並附帶自己的MAC地址

4、廣播風暴

​ 接入同一臺交換機的多台電腦同時發廣播

5、區域網

​ 可以簡單理解為由單個交換機組成的網路

​ 在區域網內可以直接使用MAC地址通訊

6、廣域網

​ 可以理解為範圍更大的區域網

7、互聯網

​ 由所有的區域網、廣域網連接到一起組成的網路

8、路由器

​ 不同的區域網電腦之間是無法直接實現數據交互的,需要由路由器進行連接

3、網路層

IP協議:規定了所有接入互聯網的電腦都必須擁有一個IP地址,類似於身份證
	MAC地址可以看成是物理地址,永遠也無法修改
	IP地址:是動態分配的,連接到不同場所的網路時IP地址就會改變
 
IP地址特征:
	IPV4:
     點分十進位,由四個點分開的十進位數,單個最大數能夠達到255,組合在一起就是255的4次方
    	0.0.0.0
    	255.255.255.255
	IPV6:能夠給地球上的每一粒沙子都分配一個IP地址
	IP地址能夠跨區域網進行傳輸

當前的IP地址可以用來標識地球上一臺獨一無二的電腦

4、傳輸層

PORT協議(埠協議)
	用來標識一臺電腦上面的某一個程式
	範圍:0-65535
	特征:動態分配(類似於每一次去洗浴中心,拿到的手牌號碼)
	建議: 在我們以後編寫程式需要使用到埠號時,建議使用8000之後的
    	0-1024      系統預設需要使用
		1024-8000    常見的軟體埠號
        
URL:統一資源定位符(網址)
	網址的本質是由IP和PORT組成的

IP+PORT:能夠定位到全世界獨一無二的一臺電腦上的某一個程式

功能變數名稱解析:將網址解析成IP+PORT

IP:PORT  實際使用冒號連接

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

-Advertisement-
Play Games
更多相關文章
  • # 1.公共操作 # del 刪除 刪除變數或指定容器內數據 變數,容器裡面的值 # + 將兩個相同類型序列進行連接 字元串,列表,元組 print('1.公共操作') print('a' + 'b') print(['a'] + ['b']) print(('a',)+('b',)) # 元組,要 ...
  • 小伙伴們曾經可能都經歷過整天寫著CURD的業務,都沒寫過一些組件相關的東西,這篇文章記錄一下SpringBoot如何自定義一個Starter。 原理和理論就不用多說了,可以在網上找到很多關於該方面的資料,這裡主要分享如何自定義。 原文鏈接:SpringBoot怎麼自定義一個Starter ?一隻小C ...
  • 使用 .editorconfig 統一規範 Visual Studio 編碼格式,使用 /utf-8 編譯選項指定源碼文件解碼格式,使得整個團隊文件編碼、代碼格式保持一致。 ...
  • 類的生命周期 首先我們先看類的生命周期 類的載入過程包含了載入、驗證、準備、解析、初始這五個階段,其中除瞭解析階段其他四個階段的發生順序都是確定的,因為解析階段在某些情況下會在初始階段之後開始,同時這些階段都是按順序開始的不是按順序進行或結束,因為這些階段通常都是互相交叉的混合進行。以下為類的生命周 ...
  • 引入課程和Maven 1.Maven maven中央倉庫:Maven Repository: Search/Browse/Explore (mvnrepository.com) maven倉庫是國外的一個網站,由於網路問題,我們也常使用maven倉庫的鏡像 maven的原理和java程式操作資料庫, ...
  • hello,大家好呀,我是既寫 Java 又寫 Go 的小樓,在寫 Go 的過程中經常對比這兩種語言的特性,踩了不少坑,也發現了不少有意思的地方,今天就來聊聊 Go 自帶的 HttpClient 的超時機制。 Java HttpClient 超時底層原理 在介紹 Go 的 HttpClient 超時 ...
  • 這篇文章主要介紹列表的一些知識。 函數list 首先需要說明的是,列表與元組、字元串一樣都是一種序列,但不同的是列表是可變的,即可修改其內容。 因為不能像修改列表那樣修改字元串,所以有些情況下使用字元串來創建列表很有幫助,函數list可以用來創建列表。 >>> list('hello') ['h', ...
  • 一、前言 是這樣的,之前手機備份圖片到電腦,由於蘋果拍照開了Live模式,所以它導出的圖片有一個2秒的視頻(.mov) 跟一張靜態圖(.jpg / .heic),靜態圖輸出取決當時導出的選項。 現在想恢復到手機,導入發現Live圖不能動了。 欸 無非就是找到兩個同名的,然後移到另一個文件夾嘛,一開始 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...