Python——計算機網絡

一.ip

1.ip的定義

????????IP是“Internet Protocol”的縮寫,即“互聯網協議”。它是用于計算機網絡通信的基礎協議之一,屬于TCP/IP協議族中的網絡層協議。IP協議的主要功能是負責將數據包從源主機傳輸到目標主機,并確保數據能夠在復雜的網絡環境中正確地路由和轉發。

2.ip地址

????????IP地址是IP協議的核心組成部分,它是一個用于唯一標識網絡設備(如計算機、服務器、路由器等)的地址。IP地址分為兩種主要版本:

(1)IPv4(Internet Protocol version 4)

  • 格式:IPv4地址是一個32位的二進制數,通常以點分十進制格式表示,例如:192.168.1.1

  • 地址范圍:IPv4地址的范圍是從0.0.0.0255.255.255.255

  • 分類

    • A類地址:范圍是1.0.0.0126.0.0.0,默認子網掩碼為255.0.0.0

    • B類地址:范圍是128.0.0.0191.255.0.0,默認子網掩碼為255.255.0.0

    • C類地址:范圍是192.0.0.0223.255.255.0,默認子網掩碼為255.255.255.0

    • D類地址:范圍是224.0.0.0239.255.255.255,用于多播(組播)。

    • E類地址:范圍是240.0.0.0255.255.255.255,目前保留未使用。

  • 特點:IPv4地址數量有限(約43億個),隨著互聯網的快速發展,IPv4地址逐漸耗盡。


ip4里面的子網掩碼是什么?

子網掩碼將ip地址劃分為網絡部分和本地部分,幫網絡設備確定ip地址所屬的子網。子網通過其二進制形式中的“1”和“0”來區分這兩個部分。

  • 網絡部分:子網掩碼中為“1”的部分表示IP地址的網絡部分,用于標識網絡。

  • 主機部分:子網掩碼中為“0”的部分表示IP地址的主機部分,用于標識網絡中的設備。

子網掩碼的分類

根據IPv4地址的分類(A、B、C類),默認子網掩碼如下:

  • A類地址:默認子網掩碼為 255.0.0.0,表示前8位為網絡部分,后24位為主機部分。

  • B類地址:默認子網掩碼為 255.255.0.0,表示前16位為網絡部分,后16位為主機部分。

  • C類地址:默認子網掩碼為 255.255.255.0,表示前24位為網絡部分,后8位為主機部分。

(2)IPv6(Internet Protocol version 6)

  • 格式:IPv6地址是一個128位的二進制數,通常以冒號分隔的十六進制格式表示,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334

  • 特點

    • 提供了幾乎無限的地址空間(約3.4×103?個地址),解決了IPv4地址不足的問題。

    • 支持更高效的路由和自動配置功能。

    • 內置了更好的安全性(如IPsec)。

  • 推廣現狀:盡管IPv6已經存在多年,但由于兼容性和成本問題,目前全球范圍內的IPv6普及率仍在逐步提高。

(3)特殊的地址 127.0.0.01

??127.0.0.1是IPv4協議中保留的本地回環地址(Loopback Address)。它被用于標識本機上的網絡服務,主要用于測試和調試網絡程序。


那么為什么我一定要用這個ip地址呢?用別的地址不行嗎?

????????使用127.0.0.1有其特定的優勢和必要性。127.0.0.1是一個特殊的回環地址,用于本地通信,可以避免網絡沖突和配置問題,確保測試環境的一致性和隔離性。因此,推薦使用127.0.0.1進行本地調試和測試。

二.?端口

1.端口的定義

????????端口是一個16位的數字,范圍從0到65535。它用于標識應用程序或服務在某個IP地址上的具體位置。每個IP地址可以有多個端口,每個端口可以運行不同的應用程序或服務。

2.端口的分類

端口可以分為以下幾類:

(1)系統端口(0-1023)

這些端口通常由系統或操作系統保留,用于運行系統服務和關鍵應用程序。例如:

  • 端口80:用于HTTP協議,提供網頁訪問服務。

  • 端口443:用于HTTPS協議,提供安全的網頁訪問服務。

  • 端口21:用于FTP協議,提供文件傳輸服務。

  • 端口25:用于SMTP協議,提供電子郵件服務。

(2)?用戶端口(1024-49151)

這些端口可以由用戶自定義或由應用程序使用。許多應用程序會使用這些端口進行網絡通信。例如:

  • 端口3306:用于MySQL數據庫服務。

  • 端口5432:用于PostgreSQL數據庫服務。

(3)動態端口(49152-65535)

這些端口通常由操作系統動態分配,用于臨時通信。例如,當你使用瀏覽器訪問一個網頁時,瀏覽器會從這些端口中選擇一個臨時端口作為通信的源端口。

三.通訊接口

1.通訊接口的定義

  • 通訊接口是一個實現通訊協議的接口,使得不同設備或應用程序能夠按照協議的規定進行通信。

  • 通訊接口可以是軟件接口(如API、庫)或硬件接口(如USB、RS-232)。

軟件接口和硬件接口之間有什么關系呢?

為什么會有軟件接口和硬件接口?-CSDN博客

?2.通訊接口分類

  • 軟件接口:如Socket、Snap7、Modbus-TCP等。

  • 硬件接口:如USB、RS-232、RS-485等。

3.接口Snap7和Socket

(1)Snap7

  • 定義

    • Snap7 是一個用于與西門子 S7 系列 PLC(可編程邏輯控制器)進行通信的開源庫。它提供了與 PLC 設備進行數據交換的接口。

  • 接口類型

    • PLC 接口:Snap7 主要用于與 PLC 設備進行通信,因此可以被視為一種 PLC 接口。

    • 軟件接口:Snap7 提供了軟件接口,允許開發者通過編程與 PLC 設備進行通信。

  • 作用

    • 提供了與西門子 PLC 設備進行高效、可靠通信的接口,適用于工業自動化領域。

(2)Socket

  • 定義

    • Socket 是計算機網絡中的一種通用通信接口,可以用于實現網絡通信。它提供了與網絡中其他設備或應用程序進行數據交換的接口。

  • 接口類型

    • 計算機軟件接口:Socket 是計算機網絡中的一種通用接口,適用于各種網絡應用。

  • 作用

    • 提供了網絡通信的接口,使得不同設備或應用程序之間可以進行數據傳輸,適用于多種網絡通信場景。

四.通訊協議

1.通訊協議的定義

  • 通訊協議是一組規則和標準,用于定義兩個或多個通信實體(如設備、應用程序)之間如何進行信息交換

  • 協議規定了通信的內容、格式、順序以及錯誤處理等細節。

2.通訊協議分類

  • 網絡協議:如TCP/IP、UDP、HTTP、FTP等。

  • 工業協議:如Modbus、Profibus、Profinet、S7等。

  • 應用層協議:如HTTP、HTTPS、SMTP、POP3等。

可是為什么會有這么多通訊協議的分類呢?

因為通訊協議的多樣性是由于不同的應用場景、歷史背景和技術發展導致的。

通訊協議的分類及原因-CSDN博客

五.UDP和TCP

  • UDP

    • 定義:UDP是一種無連接的傳輸層協議,它不提供可靠的數據傳輸服務,也不保證數據能夠成功到達接收方。它在發送數據前不需要與接收方建立連接,發送數據后也不會等待接收方的確認。

    • 特點:UDP協議簡單高效,適用于實時性要求較高的應用場景,如視頻會議、在線游戲等。

  • TCP

    • 定義:TCP是一種面向連接的傳輸層協議,它在發送數據前需要與接收方建立可靠的連接。TCP通過三次握手(SYN、ACK、SYN-ACK)來建立連接,通過四次揮手(FIN、ACK、FIN-ACK)來斷開連接。

    • 特點:TCP提供可靠的數據傳輸服務,能夠保證數據的按序到達和完整性。它適用于對數據可靠性要求較高的場景,如文件傳輸、電子郵件等。


協議的比較與區別

協議UDPTCP
連接類型無連接面向連接
可靠性不可靠,不保證數據到達可靠,保證數據按序到達
速度較快,無連接開銷較慢,有連接和確認開銷
頭部開銷較小,8字節較大,通常20-60字節
應用場景實時性要求高的場景(如視頻會議、在線游戲)數據可靠性要求高的場景(如文件傳輸、電子郵件)
傳輸方式以數據報為單位,無連接以字節流為單位,面向連接
擁塞控制無擁塞控制有擁塞控制

協議的報文格式和字段含義

  • UDP 報文格式

    • 首部:8字節,包含以下字段:

      • 源端口:2字節,發送方的端口號。

      • 目的端口:2字節,接收方的端口號。

      • 長度:2字節,UDP用戶數據報的總長度(包括首部和數據)。

      • 校驗和:2字節,用于檢測UDP用戶數據報在傳輸過程中是否有錯誤。

    • 數據區:存放實際要傳輸的數據。

  • TCP 報文格式

    • 首部:通常20-60字節,包含以下字段:

      • 源端口:2字節,發送方的端口號。

      • 目的端口:2字節,接收方的端口號。

      • 序號:4字節,用于標識TCP報文段的順序。

      • 確認號:4字節,用于確認接收到的報文段。

      • 首部長度:1字節,標識TCP首部的長度。

      • 標志位:6位,用于控制TCP連接的狀態(如SYN、ACK、FIN等)。

      • 窗口大小:2字節,用于流量控制。

      • 校驗和:2字節,用于檢測TCP報文段在傳輸過程中是否有錯誤。

      • 緊急指針:2字節,用于緊急數據的傳輸。

    • 數據區:存放實際要傳輸的數據。


協議的使用方式和編程示例

  • UDP 編程示例

    Python復制

    import socket# 創建UDP套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 綁定端口
    udp_socket.bind(('localhost', 12345))# 發送數據
    udp_socket.sendto(b'Hello, UDP!', ('localhost', 12346))# 接收數據
    data, addr = udp_socket.recvfrom(1024)
    print(f"Received from {addr}: {data.decode()}")# 關閉套接字
    udp_socket.close()
  • TCP 編程示例

    Python復制

    import socket# 創建TCP套接字
    tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 綁定端口
    tcp_socket.bind(('localhost', 12345))# 監聽連接
    tcp_socket.listen(5)# 接受連接
    conn, addr = tcp_socket.accept()
    print(f"Connected by {addr}")# 發送數據
    conn.sendall(b'Hello, TCP!')# 接收數據
    data = conn.recv(1024)
    print(f"Received from {addr}: {data.decode()}")# 關閉連接
    conn.close()
    tcp_socket.close()

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

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

相關文章

Python實例:PyMuPDF實現PDF翻譯,英文翻譯為中文,并按段落創建中文PDF

基于PyMuPDF與百度翻譯的PDF翻譯處理系統開發:中文亂碼解決方案與自動化排版實踐 一 、功能預覽:將英文翻譯為中文后創建的PDF 二、完整代碼 from reportlab.lib.pagesizes import letter from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle

xunruicms失敗次數已達到5次,已被禁止登錄怎么處理?

針對遇到的“xunruicms失敗次數已達到5次,已被禁止登錄”的問題以下是幾種處理方法: 開啟開發者模式: 您可以開啟開發者模式來忽略賬號的禁止登錄限制。具體操作步驟如下: 訪問迅睿CMS的官方文檔,找到如何開啟開發者模…

復現 MODEST 機器人抓取透明物體 單目 ICRA 2025

MODEST 單目透明物體抓取算法,來自ICRA 2025,本文分享它的復現過程。 輸入單個視角的RGB圖像,模型需要同時處理深度和分割任務,輸出透明物體的分割結果和場景深度預測。 論文地址:Monocular Depth Estimation and Se…

新手學習爬蟲的案例

首先你的電腦上肯定已經安裝了python,沒安裝的去官網安裝,我使用的是Pycharm作為操作的IDE 環境準備 安裝必要的庫 爬蟲需要用到requests和beautifulsoup4 使用命令行或者終端運行下面的命令 pip install requests beautifulsoup4 -i https://mirrors.aliyun.com/pypi/sim…

Octave3D 關卡設計插件

課程參考鏈接 這位大佬有在視頻合集中有詳細的講解,個人體驗過,感覺功能很強大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab資源管理 第一步 在場景中創建一個空物體…

【Transformer優化】Transformer的局限在哪?

自2017年Transformer橫空出世以來,它幾乎重寫了自然語言處理的規則。但當我們在享受其驚人的并行計算能力和表征能力時,是否真正理解了它的局限性?本文將深入探討在復雜度之外被忽視的五大核心缺陷,并試圖在數學維度揭示其本質。 …

SpringBoot(一)--搭建架構5種方法

目錄 一、?Idea從spring官網下載打開 2021版本idea 1.打開創建項目 2.修改pom.xml文件里的版本號 2017版本idea 二、從spring官網下載再用idea打開 三、Idea從阿里云的官網下載打開 ?編輯 四、Maven項目改造成springboot項目 五、從阿里云官網下載再用idea打開 Spri…

Python爬蟲實戰:一鍵采集電商數據,掌握市場動態!

電商數據分析是個香餑餑,可市面上的數據采集工具要不貴得嚇人,要不就是各種廣告彈窗。干脆自己動手寫個爬蟲,想抓啥抓啥,還能學點技術。今天咱聊聊怎么用Python寫個簡單的電商數據爬蟲。 打好基礎:搞定請求頭 別看爬蟲…

樂鑫打造全球首款 PSA Certified Level 2 RISC-V 芯片

樂鑫科技 (688018.SH) 榮幸宣布 ESP32-C6 于 2025 年 2 月 20 日獲得 PSA Certified Level 2 認證。這一重要突破使 ESP32-C6 成為全球首款基于 RISC-V 架構獲此認證的芯片,體現了樂鑫致力于為全球客戶提供安全可靠、性能卓越的物聯網解決方案的堅定承諾。 PSA 安全…

圖像滑塊對比功能的開發記錄

背景介紹 最近,公司需要開發一款在線圖像壓縮工具,其中的一個關鍵功能是讓用戶直觀地比較壓縮前后的圖像效果。因此,我們設計了一個對比組件,它允許用戶通過拖動滑塊,動態調整兩張圖像的顯示區域,從而清晰…

tcc編譯器教程2 編譯lua解釋器

本文主要介紹了使用tcc編譯器編譯lua解釋器源碼。 1 介紹 lua是一門編程語言,開源且源碼很容易編譯,我平時用來測試C語言編程環境時經常使用。一般能編譯成功就說明編程環境設置正常。下面用之前設置好的tcc編程環境進行測試。 2 獲取源碼 我一般有保留多個版本的lua源碼進…

Unity DOTS從入門到精通之 自定義Authoring類

文章目錄 前言安裝 DOTS 包什么是Authoring1. 實體組件2. Authoring類 前言 DOTS(面向數據的技術堆棧)是一套由 Unity 提供支持的技術,用于提供高性能游戲開發解決方案,特別適合需要處理大量數據的游戲,例如大型開放世…

comctl32!ListView_OnSetItem函數分析LISTSUBITEM結構中的image表示圖標位置

第一部分: BOOL ListView_SetSubItem(LV* plv, const LV_ITEM* plvi) { LISTSUBITEM lsi; BOOL fChanged FALSE; int i; int idpa; HDPA hdpa; if (plvi->mask & ~(LVIF_DI_SETITEM | LVIF_TEXT | LVIF_IMAGE | LVIF_STATE)) { …

【算法】大數據查重

大數據查重 哈希表 找出第一個出現重復的數字 || 找所有重復出現的數字 #include <iostream> #include <vector> #include <unordered_map> #include <unordered_set> #include <stdlib.h> #include <time.h> #include <string> …

模型微調-基于LLaMA-Factory進行微調的一個簡單案例

模型微調-基于LLaMA-Factory進行微調的一個簡單案例 1. 租用云計算資源2. 拉取 LLaMa-Factory3. 安裝依賴環境4. 啟動 LLaMa-Factory 界面5. 從 Huggingface 下載模型6. 模型驗證7. 模型微調 1. 租用云計算資源 以下示例基于 AutoDL 云計算資源。 在云計算平臺選擇可用的云計…

【單片機】ARM 處理器簡介

ARM 公司簡介 ARM&#xff08;Advanced RISC Machine&#xff09; 是英國 ARM 公司&#xff08;原 Acorn RISC Machine&#xff09; 開發的一種精簡指令集&#xff08;RISC&#xff09; 處理器架構。ARM 處理器因其低功耗、高性能、廣泛適用性&#xff0c;成為嵌入式系統、移動…

springboot的實體類字段校驗的分組校驗

分組校驗&#xff08;Group Validation&#xff09;允許在不同的場景下對同一個實體類應用不同的校驗規則。例如&#xff0c;在新增數據和更新數據時&#xff0c;可能需要對某些字段的校驗規則進行調整。以下是分組校驗的具體實現步驟&#xff1a; 一、定義分組接口 創建空的標…

vue3,Element Plus中隱藏樹el-tree滾動條

el-tree&#xff0c;節點過多&#xff0c;默認會出現垂直滾動條&#xff0c;顯得不美觀 可以使用隱藏組件 el-scrollbar 將 el-tree 包裹&#xff0c;就可以隱藏垂直滾動條 <el-scrollbar> <el-tree> ... </el-tree> </el-scrollbar> /* 滾動條禁用鼠…

mysql練習

創建數據庫db_ck&#xff0c;再創建表t_hero&#xff0c;將四大名著中的主要人物都插入這個表中&#xff0c;將實現過程中sql提交上上來 1、創建數據庫db_ck mysql> create database db_ck; 2、創建表t_hero mysql> use db_ck Database changed mysql> create table …

svn刪除所有隱藏.svn文件,文件夾脫離svn控制

新建一個文件&#xff0c;取名remove-svn-folders.reg&#xff0c;輸入如下內容&#xff1a; Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders" [HKEY_LOCAL_MACHINE\SOFTWARE\Class…