24、網絡編程基礎概念

網絡編程基礎概念

        • 網絡結構模式
        • MAC地址
        • IP地址
        • 子網掩碼
        • 端口
        • 網絡模型
        • 協議
        • 網絡通信的過程(封裝與解封裝)

網絡結構模式
  • C/S結構,由客戶機和服務器兩部分組成,如QQ、英雄聯盟

  • B/S結構,通過瀏覽器與服務器進程交互,如4399網頁游戲

MAC地址
  • 網卡是計算機上用于通信的硬件,而MAC地址就是網卡的地址,每個網卡都有唯一一個MAC地址。MAC地址 由6個部分組成:每個部分 都是一個字節,包含兩個16進制數,如 00-16-EA-AE-3C-40
  • 另外,MAC地址又稱為 局域網地址、 以太網地址、物理地址或硬件地址
IP地址
  • IP地址是主機或網絡的邏輯(虛擬)地址,它 由4個部分組成:每個部分都是一個字節,包含一個10進制數,如:100.4.5.6。它也可以轉換為二進制形式:01100100.00000100.00000101.00000110
  • 編碼方式
    • A類IP地址:1字節的網絡地址,3字節的主機地址。可表示的主機數為256^3 - 2,常用于大型網絡。網絡地址的第一個位必須為0,因此A類最多表示126個網絡(B、C類沒有這個限制)
    • B類IP地址:2字節的網絡地址,2字節的主機地址。可表示的主機數為256^2 - 2
    • C類IP地址:3字節的網絡地址,1字節的主機地址。可表示的主機數為256 - 2=254
    • 特殊網址數字:
      • 0:表示自己,如0.0.0.0
      • 255:廣播地址,如(A類)126.123.45.255、(B類)129.123.255.255;或者是用于子網掩碼
      • 127:IP地址不能以127作為開頭,因為這群IP地址專門用于回路測試,如:127.0.0.1可以代表本機IP地址
子網掩碼
  • 作用:屏蔽IP地址的一部分,從而區分它的網絡部分和主機部分
  • 分類:
    • 255一類,如255.255.255.0
    • 其他:192.126.130.66/24,表示 192.126.130.66的子網掩碼有24個1即255.255.255.0;192.126.130.66/26,表示 192.126.130.66的子網掩碼有26個1
  • 具體方法:
    • 求網絡部分:對(C類)255.255.255.0 求交集(即&umask)
    • 求主機部分:對(C類)255.255.255.0 取反后求交集(即&~umask)
  • 子網掩碼的大小與正常IP地址一樣
端口
  • 一般指的是虛擬端口,是主機通信的進出口。由 端口號 來標記,范圍是從 0 到 65535(2^16-1)
  • 端口本質上其實是 內存的一個緩沖區,里面運行一個進程。比如,在一個緩沖區(端口)內運行QQ進程,這個緩沖區有一個端口號,外界就可以通過這個端口號與QQ進行通信
  • 類型:
    • 周知端口:范圍 從 0 到 1023,表示 已經綁定的端口,用戶不能使用。也叫知名端口、公認端口或者常用端口
    • 注冊端口:范圍 從 1024 到 49151,是用戶進程可以使用的端口
    • 動態端口:范圍是從 49152 到 65535,它的端口號不是認為指定的,而是系統自動(動態)分配的
  • 注意,一個應用程序可以有多個端口,比如:QQ即可以打電環,也可以發消息,那么QQ就會有多個端口
網絡模型
  • OSI七層參考模型(物數網傳會表應)

  • TCP/IP四層模型(TCP/IP協議族)

在這里插入圖片描述

  • 在 應用層寫程序,然后直接調用 傳輸層和網絡層API即可
協議
  • 本質上就是 封裝數據的規則,也就是 傳輸的數據包的格式。雙方遵守同一套規則,按相同的方法封裝和拆解數據

  • 常見協議:

    • 應用層常見的協議有:

      • FTP協議(File Transfer Protocol 文件傳輸協議)
      • HTTP協議(Hyper Text Transfer Protocol 超文本傳輸協議,一般用從 瀏覽器 向 服務器 請求數據,數據類型包括文本、圖片、音頻等)
      • NFS(Network File System 網絡文件系統)
      • SSH
    • 傳輸層常見協議有:

      • TCP協議(Transmission Control Protocol 傳輸控制協議)
      • UDP協議(User Datagram Protocol 用戶數據報協議)
    • 網絡層常見協議有:

      • IP 協議(Internet Protocol 因特網互聯協議)

      • ICMP 協議(Internet Control Message Protocol 因特網控制報文協議,如 ping

        在網絡層就使用ICMP)

    • 網絡接口層常見協議有:

      • ARP協議(Address Resolution Protocol 地址解析協議,用于查找IP地址對應的MAC地址)
      • RARP協議 (Reverse Address Resolution Protocol 反向地址解析協議,與ARP相反)
  • UDP協議:

在這里插入圖片描述

  1. 源端口號即發送數據的端口的端口號
  2. 目的端口號即接收方端口號
  3. 長度:UDP用戶數據報的長度,單位是字節,最小值是8 (也就是只有首部)
  4. 校驗和:用于檢測UDP數據報傳輸之后是否有錯,有錯就丟棄
  • TCP協議:

在這里插入圖片描述

  • IP協議:

在這里插入圖片描述

  • 以太網幀協議

    在這里插入圖片描述

    • 中間的數據可以是IP協議,也可以是ARP協議

    • 如果是ARP協議

      • ARP請求:目的物理地址是 廣播地址,即ff-ff-ff-ff-ff-ff

      • ARP應答:目的地址就是 原來發出請求的地址

  • ARP協議

在這里插入圖片描述

  • ARP協議還需要封裝在以太網幀中,才能在以太網中傳遞
網絡通信的過程(封裝與解封裝)
  • 封裝的過程:

在這里插入圖片描述

  • 分用(解封裝)的過程:

在這里插入圖片描述

  • 具體過程

在這里插入圖片描述

  • 如何知道目的地的MAC地址?答:根據目的地的IP地址,利用ARP協議得出 目的地的MAC地址,并緩存在主機中,具體過程如圖:

    在這里插入圖片描述

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

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

相關文章

【超詳細】講解Ubuntu上如何配置分區方案

Ubuntu 的分區方案 一、通用分區方案(200G為例) EFI系統分區(僅UEFI啟動模式需要,) 大小:512MB–1GB類型:主分區(FAT32格式)掛載點:/boot/efi說明&#xff1…

函數的局部變量和全局變量的區分,Kimi的回答

這段代碼的目的是通過計算 2**i 和 5**i 的首位數字,并將這兩個首位數字的乘積添加到一個集合中,最終返回這些乘積的總和。下面是具體的解釋和問題的分析。 sum_t的角色: sum_t 是一個累加器,用來存儲所有獨特的(不重復…

RNN模型及NLP應用(5/9)——多層RNN、雙向RNN、預訓練

聲明: 本文基于嗶站博主【Shusenwang】的視頻課程【RNN模型及NLP應用】,結合自身的理解所作,旨在幫助大家了解學習NLP自然語言處理基礎知識。配合著視頻課程學習效果更佳。 材料來源:【Shusenwang】的視頻課程【RNN模型及NLP應用…

【3.軟件工程】3.4 原型及相關模型

軟件開發模型進化論:從原型驅動到混合模型的完整指南 🔄 一、模型進化關系全景圖 #mermaid-svg-GcOFjt54gUs4oPeu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GcOFjt54gUs4oPeu .error-i…

硬件與軟件的邊界-從單片機到linux的問答詳解

硬件與軟件的邊界——從單片機到 Linux 設備驅動的問答詳解 在嵌入式開發和操作系統領域,經常會有人問: “如果一個設備里沒有任何代碼,硬件是不是依然會工作?例如,數據收發、寄存器數據存儲、甚至中斷觸發&#xff…

瑪卡巴卡的k8s知識點問答題(七)

25. 說明 Job 與 CronJob 的功能 Job 功能: 用于運行一次性任務(批處理任務),確保一個或多個 Pod 成功完成任務后退出。 適用于數據處理、備份、測試等場景,任務完成后 Pod 不會自動重啟。 特點: 任務…

【NLP 51、一些LLM模型結構上的變化】

目錄 一、multi-head 共享 二、attention結構 1.傳統的Tranformer結構 2.GPTJ —— 平行放置的Transformer結構 三、歸一化層位置的選擇 1.Post LN: 2.Pre-LN【目前主流】: 3.Sandwich-LN: 四、歸一化函數選擇 1.傳統的歸一化函數 LayerNorm …

VS+Qt配置QtXlsx庫實現execl文件導入導出(全教程)

一、配置QtXlsx 1.1 下載解壓QtXlsxWriter(在github下載即可) 網址:https://github.com/dbzhang800/QtXlsxWriter 1.2 使用qt運行 點擊qtxlsx.pro運行QtXlsxWriter 選擇DesktopQt51211MSVC201564bit編譯器(選擇自己本地電腦qt…

Golang的文件處理優化策略

Golang的文件處理優化策略 一、Golang的文件處理優化策略概述 是一門效率高、易于編程的編程語言,它的文件處理能力也非常強大。 在實際開發中,需要注意一些優化策略,以提高文件處理的效率和性能。 本文將介紹Golang中的文件處理優化策略&…

自學-C語言-基礎-數組、函數、指針、結構體和共同體、文件

這里寫自定義目錄標題 代碼環境:?問題思考:一、數組二、函數三、指針四、結構體和共同體五、文件問題答案: 代碼環境: Dev C ?問題思考: 把上門的字母與下面相同的字母相連,線不能…

VMware+Ubuntu+VScode+ROS一站式教學+常見問題解決

目錄 一.VMware的安裝 二.Ubuntu下載 1.前言 2.Ubuntu版本選擇 三.VMware中Ubuntu的安裝 四.Ubuntu系統基本設置 1.中文更改 2.中文輸入法更改 3. 輔助工具 vmware tools 五.VScode的安裝ros基本插件 1.安裝 2.ros輔助插件下載 六.ROS安裝 1.安裝ros 2.配置ROS…

PostgreSQL pg_repack 重新組織表并釋放表空間

pg_repack pg_repack是 PostgreSQL 的一個擴展,它允許您從表和索引中刪除膨脹,并可選擇恢復聚集索引的物理順序。與CLUSTER和VACUUM FULL不同,它可以在線工作,在處理過程中無需對已處理的表保持獨占鎖定。pg_repack 啟動效率高&a…

5G_WiFi_CE_射頻輸出功率、發射功率控制(TPC)和功率密度測試

目錄 一、規范要求 1、法規目錄: (1)RF Output Power (2)Transmit Power Control (TPC) (3)Power Density 2、限值: 二、EIRP測試方法 (1)測試條件 (2&#xff…

掃描線離散化線段樹解決矩形面積并-洛谷P5490

https://www.luogu.com.cn/problem/P5490 題目描述 求 n n n 個四邊平行于坐標軸的矩形的面積并。 輸入格式 第一行一個正整數 n n n。 接下來 n n n 行每行四個非負整數 x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1?,y1?,x2?,y2?,表示一個矩形的四個…

Java項目之基于ssm的簡易版營業廳寬帶系統(源碼+文檔)

項目簡介 簡易版營業廳寬帶系統實現了以下功能: 此營業廳寬帶系統利用當下成熟完善的SSM框架,使用跨平臺的可開發大型商業網站的Java語言,以及最受歡迎的RDBMS應用軟件之一的Mysql數據庫進行程序開發。實現了營業廳寬帶系統基礎數據的管理&…

從入門到入土,SQLServer 2022慢查詢問題總結

列為,由于公司原因,作者接觸了一個SQLServer 2022作為數據存儲到項目,可能是上一任的哥們兒離開的時候帶有情緒,所以現在項目的主要問題就是,所有功能都實現了,但是就是慢,列表頁3s打底,客戶很生氣,經過幾周摸爬滾打,作以下總結,作為自己的成長記錄。 一、索引問題…

PDF處理控件Aspose.PDF教程:在Python、Java 和 C# 中旋轉 PDF 文檔

您是否希望快速輕松地在線旋轉PDF文檔?無論您需要修復文檔的方向還是只想重新排列頁面,本指南都能滿足您的需求。有簡單的方法可以解決此問題 - 無論您喜歡在線工具還是編程解決方案。 在本指南中,我們將向您展示如何免費在線旋轉 PDF&#…

編譯原理:first集和follow

一、First 集(首符號集) 定義: 對于符號(非終結符或終結符)或符號串,First 集是該符號串能夠推導出的所有可能開頭的終結符的集合。若符號串可以推導出空串(ε),則 ε 也…

python實現簡單fast-cgi服務,對接到nginx

python代碼 import socket import struct import threading# FastCGI 頭格式(8 字節) FCGI_HEADER_FORMAT "!BBHHBx" FCGI_VERSION 1 FCGI_TYPE_BEGIN_REQUEST 1 FCGI_TYPE_PARAMS 4 FCGI_TYPE_STDIN 5 FCGI_TYPE_STDOUT 6 FCGI_TYPE_E…

vue開始時間小于等于結束時間,且開始時間小于等于系統時間,時間格式:年月日時分

// 日期配置 export const DATA_CONFIGS [{itemKey: "startDate",startDateKey: "startDate",endDateKey: "endDate",isStart: true,},{itemKey: "endDate",startDateKey: "startDate",endDateKey: "endDate",is…