網絡編程—網絡概念

目錄

1 網絡分類

1.1 局域網

1.2 廣域網

2 常見網絡概念

2.1 交換機

2.2 路由器

2.3 集線器

2.4 IP地址

2.5 端口號

2.6 協議

3 網絡協議模型

3.1 OSI七層模型

3.2 TCP/IP五層模型

3.3 每層中常見的協議和作用

3.3.1 應用層

3.3.2 傳輸層

3.3.3 網絡層

3.3.4 數據鏈路層


1 網絡分類

1.1 局域網

????????局域網Local Area Network,簡稱LAN,是一種本地的私有網絡(內網),通過網線、交換機、路由器等設備組成的能讓主機間進行網絡通信的網絡結構。

1.2 廣域網

????????廣域網Wide Area Network,簡稱WAN,是通過路由器把多個局域網組建成大規模網絡范圍的網絡結構。

????????局域網和廣域網是一對相對的概念,沒有明顯的主機數量界限之分。即如果把各個城市組建的網絡看成局域網,那整個國家把各個城市互聯起來,就組成廣域網。同時國家組成的網絡看成局域網,那么整個世界組成的網絡就是廣域網(這種情況下就是我們所說的互聯網(Internet))。

2 常見網絡概念

2.1 交換機

????????交換機的出現解決了主機間僅通過網線互聯的復雜網絡結構和成本高昂的問題,主要用于主機間的數據幀的轉發問題。簡而言之就是交換機把多臺設備組建成局域網。

2.2 路由器

????????路由器相信大家都熟悉,有WAN口(一般藍色,一個口)和LAN口(一般黃色,多個口),WAN口接入外部公網,LAN口實現局域網的主機互聯。因此路由器主要是實現不同網絡的通信問題,即可以組建廣域網。

2.3 集線器

????????早期的局域網內主機互聯工具,但是功能非常有限,通信通道是獨占式,即兩個主機通信時,其他主機無法通信。

2.4 IP地址

????????網絡設備在網絡中的地址,因為網絡中設備繁多,傳輸的數據只有知道地址才知道傳給哪個設備。常見有IPv4版本(32位二進制數)和IPv6版本(128位二進制數)。

2.5 端口號

????????端口號主要用來定位進程,因為數據根據IP地址傳入到主機后,主機中的進程同時可能有多個,因此需要通過端口號(0-65535)綁定。不同進程不能同時綁定一個端口號,一個進程能同時綁定多個端口號(比如子進程)

2.6 協議

????????如果說IP地址、端口號解決了通信設備和進程的定位問題,物理設備比如網線、無線設備等解決了通信設備的數據傳輸方式問題(光信號和電信號),那么協議解決的問題就是如何統一數據格式的規范問題(數據如何解析,如何建立傳輸數據的連接等等),即是一種約定,共同遵守這個約定才能通信。

????????協議三要素:語法、語義、時序。語法:數據與控制信息的結構或格式。語義:需要發出何種控制信息,完成何種動作以及做出何種響應。時序:事件實現順序的詳細說明。

????????比如在物理設備傳輸的信號中,如果是光信號,那就約定不同的頻率表示不用的信息,高頻1,低頻0。如果是電信號,那就約定高電平是1,低電平是0。通過這種協議就可以進行二進制編碼,從而可以讓主機進行識別。

3 網絡協議模型

????????由于協議種類太多,但是協議之間的作用很多都是相似的,因此對協議進行分層,就有了我們經常聽到的OSI七層模型和TCP/IP五層模型。

3.1 OSI七層模型

????????OSI七層模型實際上在會話層、表示層和應用層過于復雜,不實用,因此是僅存于理論層面的模型,實際上應用最廣泛的是TCP/IP五層模型。

3.2 TCP/IP五層模型

????????TCP/IP五層模型把OSI七層模型中的會話層、表示層和應用層統一為應用層。物理層和數據鏈路層是物理設備和驅動程序的范疇,網絡層和傳輸層是操作系統所負責的,應用層是應用程序所負責的,因此軟件開發人員的主要工作就是在應用層進行網絡編程。

????????封裝:像上圖一樣,數據發送方把數據從上層開始,層層包裝成數據包傳遞給下層的過程就是封裝。

????????分用:當數據接收方接收到數據后,從下層開始層層拆解其中對應部分的信息的過程就是分用。

????????注意:這里討論的交換機和路由器是傳統的2層交換機和3層路由器,隨著技術進步,現在已經出現了3層、4層交換機和4層路由器等等。即考慮交換機和路由器的工作場景:交換機工作在數據鏈路層(封裝分用到數據鏈路層),路由器工作在網絡層(封裝分用到網絡層)。

????????分層后,協議的使用方(上層)不需要知道協議是如何實現的,只需要使用協議提供的接口即可;而協議提供方(下層)不需要暴露所有實現細節,只需要提供接口即可。就好像發送方在某層直接把數據發送給接收方對應的層,即實現了封裝的特性。

3.3 每層中常見的協議和作用

3.3.1 應用層

????????HTTP和HTTPS:采用TCP協議傳輸,用于在客戶端和服務器之間傳輸超文本數據,通常用于Web瀏覽器和Web服務器之間的通信,HTTP協議引入加密機制(SSL/TLS)就變成了HTTPS。

????????DNS:通常采用UDP傳輸,地址解析協議,將域名解析為對應的IP地址。

????????DHCP:動態主機配置協議,采用UDP作為傳輸協議,允許服務器向客戶端動態分配IP地址和配置信息。

????????FTP:采用TCP協議作為傳輸協議,用于在客戶端和服務器之間傳輸文件,支持上傳和下載文件的功能。

????????SMTP:采用TCP協議作為傳輸協議,用于在郵件服務器之間傳輸電子郵件,負責發送郵件。

????????POP3:采用TCP協議作為傳輸協議,用于從郵件服務器上下載郵件到本地計算機,負責接收郵件。

????????SSH:基于TCP,用于遠程登錄和執行命令,提供了加密的網絡連接,保證了通信的安全性。

3.3.2 傳輸層

????????TCP:提供可靠的、面向字節流、有連接的數據傳輸服務,確保數據的可靠性、順序性和完整性。TCP適用于對數據傳輸質量要求較高的場景,如文件傳輸、網頁瀏覽等。

????????UDP:提供無連接的數據傳輸服務,面向數據報,不保證數據的可靠性,也不保證數據的順序性和完整性。UDP適用于實時性要求較高、對數據傳輸質量要求不那么嚴格的場景,比如音視頻傳輸、在線游戲(地圖實時加載出現不完整)等。

3.3.3 網絡層

????????IP:是互聯網中最基本的協議,用于在網絡中傳輸數據包。IP協議定義了數據包的格式、尋址方式和路由選擇等信息,是整個互聯網的基礎。

????????RIP:路由信息協議,是基于距離矢量算法的路由協議,利用跳數來作為計量標準。

????????OSPF:開放式最短路徑優先協議,是一個內部網關協議(自治系統AS)內決策路由,隸屬內部網關協議(IGP),故運作于自治系統內部。Dijkstra算法被用來計算最短路徑樹。兩個相鄰的路由器通過發報文的形式成為鄰居關系,鄰居再相互發送鏈路狀態信息形成鄰接關系,之后各自根據最短路徑算法算出路由,放在OSPF路由表,OSPF路由與其他路由比較后優的加入全局路由表。

????????ICMP:網際控制報文協議,用于在IP網絡中傳遞控制消息和錯誤信息。ICMP通常用于網絡設備之間的通信,如路由器和主機之間的通信,以及用于檢測網絡連通性和故障診斷。

????????BGP:邊界網關協議,是一種外部網關協議,與OSPF(計算AS內部最優路由)不同,主要功能是和其他的 BGP 系統交換網絡可達信息。網絡可達信息包括列出的自治系統(AS)的信息。

????????ARP:用于將IP地址映射為MAC地址(物理地址)。ARP協議在局域網內部使用,通過發送ARP請求獲取目標設備的MAC地址,從而實現數據包的傳輸。注意,ARP協議既不屬于網絡層,又不屬于數據鏈路層,介于兩層之間。

3.3.4 數據鏈路層

????????MAC:媒介訪問控制協議,負責控制設備如何訪問共享的通信介質(如以太網、無線電波等),確保在多臺設備共享同一傳輸媒介時能夠有效地進行數據傳輸,避免沖突、控制流量,并確保數據的有序傳遞。

????????CSMA/CD:載波偵聽多路訪問/碰撞檢測協議,用于以太網,載波偵聽:設備首先檢測共享信道是否空閑。如果信道是空閑的,設備就可以發送數據。多路訪問:所有設備共享同一個傳輸介質,因此必須協調訪問。碰撞檢測:在數據發送過程中,設備會繼續監聽信道。如果發生碰撞(即兩個設備同時發送數據),它們會停止傳輸,并在隨機延時后重新嘗試發送。

????????CSMA/CA:載波偵聽多路訪問/碰撞避免,用于Wi-Fi(IEEE 802.11)。碰撞避免:如果信道空閑,設備會等待一段時間后再發送數據(稱為退避時間),以減少碰撞的概率。競爭和退避算法:使用隨機退避算法(如二進制指數退避)來避免設備同時發送數據。當發生碰撞時,設備會隨機等待一段時間再重試。

下篇文章:

網絡編程—Socket套接字(UDP)https://blog.csdn.net/sniper_fandc/article/details/146923670?fromshare=blogdetail&sharetype=blogdetail&sharerId=146923670&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

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

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

相關文章

4月3日工作日志

一個樸實無華的目錄 今日學習內容:1.關系數據庫 今日學習內容: 1.關系數據庫

git commit Message 插件解釋說明

- feat - 一項新功能 - fix - 一個錯誤修復 - docs - 僅文檔更改 - style - 不影響代碼含義的更改(空白、格式化、缺少分號等) - refactor - 既不修復錯誤也不添加功能的代碼更改 - perf - 提高性能的代碼更改 - build - 影響構建系統或外部依賴項…

ngx_open_file

定義在 src\os\unix\ngx_files.h #define ngx_open_file(name, mode, create, access) \open((const char *) name, mode|create, access) name:文件名(通常是一個字符串)。mode:文件打開模式&#x…

23種設計模式-行為型模式-責任鏈

文章目錄 簡介問題解決代碼核心改進點: 總結 簡介 責任鏈是一種行為設計模式,允許你把請求沿著處理者鏈進行發送。收到請求后,每個處理者均可對請求進行處理,或將其傳遞給鏈上的下個處理者。 問題 假如你正在開發一個訂單系統。…

注意力機制在大語言模型中的原理與實現總結

注意力機制在大語言模型中的原理與實現總結 1. 章節介紹 在大語言模型的學習中,理解注意力機制至關重要。本章節旨在深入剖析注意力機制的原理及其在大語言模型中的應用,為構建和優化大語言模型提供理論與實踐基礎。通過回顧神經網絡基礎及傳統架構的局…

kafka消息可靠性傳輸語義

Kafka提供了多種消息傳遞語義,以適應不同的業務需求和可靠性要求。以下是Kafka消息傳輸的可靠性語義及其實現機制: 1. At Most Once(至多一次) 語義:消息可能會丟失,但不會被重復傳遞。 實現機制&#xf…

NLP高頻面試題(三十三)——Vision Transformer(ViT)模型架構介紹

Transformer架構在自然語言處理領域取得了顯著成功,激發了研究人員將其應用于計算機視覺任務的興趣。Vision Transformer(ViT)應運而生,成為圖像分類等視覺任務中的新興架構。本文將介紹ViT的基本架構、工作原理,并與傳…

Oracle數據庫數據編程SQL<3.6 PL/SQL 包(Package)>

包是Oracle數據庫中一種重要的PL/SQL程序結構,它將邏輯相關的變量、常量、游標、異常、過程和函數組織在一起,提供了更好的封裝性和模塊化。在大型項目中,可能有很多模塊,而每一個模塊又有自己的存過、函數等。而這些存過、函數默認是放在一起的,如果所有的存過函數都是放…

機器學習 分類算法

【實驗名稱】 實驗:分類算法 【實驗目的】 1.了解分類算法理論基礎 2.平臺實現算法 3. 編程實現分類算法 【實驗原理】 分類(Categorization or Classification)就是按照某種標準給對象貼標簽(label),再根據標簽來區分歸類。 【實驗環境】 OS:Ubuntu16.0…

HTML5 Canvas繪畫板項目實戰:打造一個功能豐富的在線畫板

HTML5 Canvas繪畫板項目實戰:打造一個功能豐富的在線畫板 這里寫目錄標題 HTML5 Canvas繪畫板項目實戰:打造一個功能豐富的在線畫板項目介紹技術棧核心功能實現1. 畫板初始化與工具管理2. 多樣化繪畫工具3. 事件處理機制 技術要點分析1. Canvas上下文優化…

【YOLOv8】YOLOv8改進系列(12)----替換主干網絡之StarNet

主頁:HABUO🍁主頁:HABUO 🍁YOLOv8入門改進專欄🍁 🍁如果再也不能見到你,祝你早安,午安,晚安🍁 【YOLOv8改進系列】: YOLOv8結構解讀 YOLOv8…

1Panel 面板 寶塔面板 Ubuntu 24.04

1Panel 面板 寶塔面板 Ubuntu 24.04 https://1panel.cn/ 1Panel 是一款開源的 Linux 服務器運維管理面板,它就像是給服務器配上了一個智能管家,讓我們能通過 Web 端輕松管理服務器。以往我們管理 Linux 服務器,常常需要在命令行中輸入各種復…

Node.js全局生效的中間件

目錄 1. 目錄結構 2. 代碼實現 2.1 安裝Express 2.2 app.js - 主文件 2.3 globalMiddleware.js - 全局中間件 3. 程序運行結果 4. 總結 在Node.js的Express框架中,全局生效的中間件是指應用程序啟動后,對所有請求都有效的中間件。它通常用于日志記…

WiFi(無線局域網)技術的多種工作模式

WiFi(無線局域網)技術支持多種工作模式,以滿足不同的網絡需求和應用場景。以下是主要的WiFi工作模式及其詳細說明: 1. 基礎設施模式(Infrastructure Mode) [無線接入點 (AP)]/ | \ [客戶端…

PHP 8.x:現代Web開發的性能與效率革命

隨著PHP 8.x系列的持續演進,這門誕生于1995年的“古老”語言正煥發新生。通過引入革命性的JIT編譯器、類型系統增強及一系列現代化語法特性,PHP 8.x不僅鞏固了其在Web開發領域的統治地位,更將性能與開發者體驗推向新高度。 一、JIT編譯器&am…

【扣子agent入門】搭建計算熱量工作流

一、食物熱量知識庫 1. 創建知識庫 工作空間——資源庫——創建資源>知識庫 2. 自動采集網頁數據 文本格式>在線數據 自動采集 找一個食物熱量網站進行采集。 一定要讓知識按條數分段,不然不好查詢。 二、 意圖識別節點 意圖識別(In…

腦影像分析軟件推薦 | JuSpace

目錄 1. 軟件界面 2.工具包功能簡介 3.軟件安裝注意事項 參考文獻: Dukart J, Holiga S, Rullmann M, Lanzenberger R, Hawkins PCT, Mehta MA, Hesse S, Barthel H, Sabri O, Jech R, Eickhoff SB. JuSpace: A tool for spatial correlation analyses of magne…

微信小程序喚起app

1、前提 1、app與小程序主體需一致&#xff0c;可以前往微信公眾平臺關聯。 2、小程序的場景值為1069&#xff0c;也就是得從app打開小程序&#xff0c;小程序才能喚起app。 2、vue3代碼示例 <template><view class"maxBox bgc"><button open-typ…

jarvisoj API調用 [JSON格式變XXE]

http://web.jarvisoj.com:9882/ 題目要求&#xff1a;請設法獲得目標機器 /home/ctf/flag.txt 中的flag值 抓包得到&#xff1a; POST /api/v1.0/try HTTP/1.1 Host: web.jarvisoj.com:9882 Content-Length: 36 Accept-Language: zh-CN,zh;q0.9 User-Agent: Mozilla/5.0 (W…

3. 矩陣置零

leetcode Hot 100系列 文章目錄 一、核心操作二、外層配合操作三、核心模式代碼總結 一、核心操作 根據行和列檢測出0所在位置&#xff0c;并將行和列數組的對應位置改為true如果遍歷到某一行列時&#xff0c;只要行和列數組里面有一個是true&#xff0c;就置為0 提示&#…