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
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...