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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...