Linux網絡編程-osi、udp

網絡:不同主機,進程間通信

達到不同主機之間的困難:

? ? ? ? 解決主機之間的硬件層面的互聯互通

? ? ? ? 解決主機之間的軟件層面的互聯互通

廣域網:進行大范圍網絡數據交換

IP地址:區分不同主機 唯一的(軟件地址)

MAC地址:硬件地址

端口號:區分同一主機上的不同進程

網絡字節序:大端(逆序)

主機字節序:小端(順序)

1.osi七層模型

? OSI:開放系統互聯模式

? ? ? ? ? ? ? ? 應用層 :要傳輸的數據信息,如文件傳輸,電子郵件等;

? ? ? ? ? ? ? ? 表示層:數據加密,解密操作,壓縮,解壓縮;

? ? ? ? ? ? ? ? 會話層:建立數據傳輸通道;

? ? ? ? ? ? ? ? 傳輸層:傳輸的方式UDP TCP 端口號

? ? ? ? ? ? ? ? 網絡層:實現數據路由 路由器 ip

? ? ? ? ? ? ? ? 數據鏈路層:封裝成幀,點對點通信(局域網內通信),差錯檢測 交換機 ARP

? ? ? ? ? ? ? ? 物理層:定義物理設備標準,比如網線,光纖等傳輸介質 ?比特流 ?bit ?0 1

2.TCP/IP模型 ? ? ? ? ??

????????2.1五層模型

????????????????應用層:HTTP(超文本傳輸協議)、HTTPS(比HTTP多一層加密協議)、FTP(文件傳輸協議)、TFTP(簡單文件傳輸協議,下層選擇不一樣)、MQTT(消息隊列遙測傳輸協議)

? ? ? ? ? ? ? ? 傳輸層:TCP(傳輸控制協議)、UDP(用戶數據報協議)
網絡層:

? ? ? ? ? ? ? ? 數據鏈路層:封裝成幀,點對點通信(局域網內通信),差錯檢測 ? 交換機

? ? ? ? ? ? ? ? 物理層:定義物理設備標準,比如網線,光纖等傳輸介質 ? 比特流 ?bit

? ? ? ? 2.2四層模型

?????????????????應用層:HTTP、HTTPS、FTP、TFTP、MQTT

? ? ? ? ? ? ? ? 傳輸層:TCP(傳輸控制協議)、UDP(用戶數據報協議)

? ? ? ? ? ? ? ? 網絡層: IP

? ? ? ? ? ? ? ? 網絡接口層: 網絡接口層既是傳輸數據的物理媒介,也可以為網絡層提供一條準確無誤的線路

3.網絡層協議

? ? ? ? 3.1IP(ipv4"32bie"\ipv6"64bit")

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 網絡位:子網掩碼全為1的位是ip地址的網絡位

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.1.0(網段號:IP地址網絡位不變,主機位全為0,則為該P地址的網段號)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 廣播號:192.168.1.255:IP地址網絡位不變,主機位全為1
網關號:192.168.1.1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 主機位:子網掩碼全為1的位是ip地址的主機位

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 子網掩碼: ?255.255.255.0(前三個是網絡位,最后一位是主機位)

? ? ? ? 3.2端口號:區分同一主機上的不同進程

????????????????*16位的數值 0-65535作用:唯一的標識一個進程每一個應用進程都有一個端口號;通訊時用來區分數據包屬于哪一個進程。
Mtp :80

????????????????FTP:20/21

????????????????TFPT: 69

????????????????HTTPS: 443

????????????????MQTT:1883

ip是面向計算機的,域名是面向人的(將域名解析為ip地址? DNS"域名解析服務”)

4.udp編程常用接口

客戶端:

? ? ? ? socket():創建網絡套接字

? ? ? ? sendto():發送數據包

? ? ? ? recvfrom():接受數據包

? ? ? ? close():關閉套接字

int socket(int domain,int type,int protocol)
功能:創建一個通信套接字
參數:

domain:ip層協議族

? ? ? ? AF_INET ?IP4

? ? ? ? AF_INET6 ?IP6

type:傳輸層使用的協議類型

? ? ? ? SOCK_DGRAM UDP

? ? ? ? SOCK_STREAM TCP

protocol:

? ? ? ? 0按照默認協議返回值

返回值:

成功:返回套接字

失敗:-1

size_t ?sendto(int sockfd,const void *buf,sizeof_t len,int flags,const struct sockaddr *dest_addr,socklen_t addrlen);
功能:向通信套接字發送數據
參數:

sockfd:套接字

buf:要發送的數據的首地址

len:發送的數據的大小

flags:默認方式 0

dest_addr:保存接受方地址信息的指針

.sin_port = htons(50000)//

.sin_addr.s_adde =inet_addr("ip地址")//將地址轉為un int ?inet_ntoa(int 轉char)

addrlen:接收方地址變量的大小

返回值:

成功:實際發送的字節數

失敗:-1

服務端:

? ? ? ? socket()

? ? ? ? bind():綁定服務器當前主機的身份(IP+PORT)

? ? ? ? recvfrom():接收

? ? ? ? sendto():發送

? ? ? ? close():關閉

bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen)
功能:綁定當前主機的ip和進程的端口
參數:

?sockfd:套接字

addr:自己信息的地址

addrlen:地址信息的大小

返回值:

成功:0

失敗:-1

?ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);
功能:從套接字接受數據
參數:

sockfd:套接字

buf:存儲接收到的數據的位置的首地址

len:期待接收到的字節數

flags::默認方式:0
src_addr:送發地址信息的首地址

addrlen:送發方地址變量的大小

返回值:

成功:返回接收到的字節數

失敗:-1

B/S模型:browser/server 客戶端(通用)(瀏覽器)/服務端(專用)

C/S模型:client/server 客戶端(專用)/服務端(專用)

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

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

相關文章

刪除 XML 格式中雙引號內的空格

要使用 Shell 命令刪除 XML 格式中雙引號內的空格(僅處理屬性值中的空格,保留標簽外的空格),可以使用以下 sed 命令: sed -i :loop; s/\("[^"]*\) \([^"]*"\)/\1\2/g; t loop filename.xml命令詳解…

電腦聲音修復?【圖文詳解】電腦沒有聲音?聲音異常

一、問題背景 在使用電腦的過程中,聲音異常是很常見的問題。比如明明打開了音頻文件,卻聽不到任何聲音;或者聲音忽大忽小、伴有雜音;或者更新了聲卡驅動后,電腦播放不了聲音了;還有可能是插入耳機后&#x…

【文獻筆記】ARS: Automatic Routing Solver with Large Language Models

ARS: Automatic Routing Solver with Large Language Models https://github.com/Ahalikai/ARS-Routbench/ ARS:基于大語言模型的自動路由求解器 1. 概述 1.1. 研究背景 車輛路徑問題(VRP)是一類經典的組合優化問題,廣泛應用于…

RK3568筆記九十:基于web顯示RTSP流

若該文為原創文章,轉載請注明原文出處。 在網上看到個方案,使用web顯示RTSP視頻流,思路是前端傳入RTSP地址,cgi通過FFMPEG接收RTSP流并保存成avi文件,在通過ffmpeg 命令把avi文件保存成mp4文件,前端在播放mp4文件。此方案需要先保存文件,在轉換文件,無法實時播放。 所以…

2025年Flutter開發主流技術棧

2025年Flutter開發主流技術棧 Flutter作為一種高效、跨平臺的移動應用開發框架,近年來在開發者社區中越來越受歡迎。以下是2025年Flutter開發的主流技術棧,涵蓋了從核心框架到開發工具、狀態管理、數據存儲等多個方面。 1. 核心框架 Flutter:…

Qt 常用控件 - 1

控件概述 編程講究的是 --- 站在巨人的肩膀上 --- 不是編寫一個圖形化界面上的內容 --- Qt 已經提供了很多控件了!!!提高圖形化界面的開發效率!!!重點變成我們怎么使用這些已有的控件! Widge…

springdoc-openapi-ui的使用教程

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.14</version> </dependency>springdoc-openapi-ui 是一個用于生成 OpenAPI 文檔的庫&#xff0c;它與 Swagger 的關…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-3,(運放/三極管)

目錄 1、題目 2、解答 【硬件-筆試面試題】硬件/電子工程師&#xff0c;筆試面試題-3&#xff0c;&#xff08;運放/三極管&#xff09; 這是一道大疆的筆試題 1、題目 2、解答

SQL Server 數據類型的含義、特點及常見使用場景的詳細說明

數值類型 bigint 含義:用于存儲大范圍的整數,是 8 字節(64 位)有符號整數類型。 范圍:-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 。 場景:適合存儲像訂單編號(可能很大)、系統中需要大范圍計數的標識等,比如大型系統中大量數據的主鍵自增列(數據量極…

WPF的一些基礎知識學習記錄

路由事件 路由事件(Routed Event)是WPF事件系統的核心&#xff0c;它允許事件在元素樹中傳播&#xff0c;而不僅僅局限于引發事件的對象。包含以下三類&#xff1a;類型方向觸發順序典型用途示例事件??直接事件(Direct Event)??不路由只在源元素觸發類似傳統.NET事件MouseE…

【補題】Codeforces Round 1000 (Div. 2) C. Remove Exactly Two

題意&#xff1a;給一個樹&#xff0c;可以從里面刪去兩個點&#xff0c;使連通塊數量最大 思路&#xff1a;題解&#xff1a;CF2063C Remove Exactly Two - 洛谷專欄 這道題很容易想到&#xff0c;直接刪去度最多的兩個點就行了&#xff0c;但是這并不對&#xff0c;因為相鄰…

基于php的校園招聘平臺

學生&#xff1a;注冊&#xff0c;登錄&#xff0c;個人中心&#xff0c;學生應聘管理&#xff0c;面試邀請管理企業&#xff1a;登錄&#xff0c;個人中心&#xff0c;招聘信息管理&#xff0c;學生應聘管理&#xff0c;面試邀請管理管理員&#xff1a;登錄&#xff0c;個人中…

在 Ubuntu 22.04 上運行 cAdvisor 時遇到 mountpoint for cpu not found 錯誤

通常是由于 cgroup v2 導致的兼容性問題。Ubuntu 22.04 默認使用 cgroup v2&#xff0c;而舊版本的 cAdvisor 可能不完全支持它。以下是解決方案&#xff1a;方法 1&#xff1a;啟用 cgroup v1&#xff08;推薦&#xff09;臨時切換回 cgroup v1&#xff08;cAdvisor 兼容性更好…

如何讓RAGFLow每次知識檢索都是返回知識庫中的所有文檔?

在使用raglfow過程中,有時候輸入的文本檢索為空,要么就是只返回幾條.如果想要看到所有知識庫里文本返回,就得需要去到源碼里修改這個參數minimum_should_match(路徑:rag/utils/es_conn.py),將其設置為0%,即可返回所有文本!!

「iOS」——KVO

源碼學習iOS底層學習&#xff1a;KVO 底層原理KVO注冊 KVO 監聽 實現 KVO 監聽 移除 KVO 監聽 處理變更通知 手動KVO(禁用KVO)關閉自動通知手動實現 setter 方法KVO 和線程如果 KVO 是多線程的**單線程的保證**如果沒有 prior 選項**prior 選項的作用**KVO 實現原理派生類重寫的…

Unreal5從入門到精通之使用 Python 編寫虛幻編輯器腳本

文章目錄 前言 如何運行Python 1.控制臺 2.藍圖調用python python 入門 變量 數據類型 運算符 條件判斷 循環 函數 模塊引用 類型轉換 類 類方法 繼承 構造函數 unreal API 創建材質 創建材質實例 獲取Content下選中資源 獲取關卡中選中Actors 放置Cube 編輯器進度條 展示對話框…

Django3 - Web前端開發基礎 HTML、CSS和JavaScript

網站開發可以分為前端開發和后端開發&#xff0c;前端開發是指網頁設計&#xff0c;我們在瀏覽器看到網站的圖片、文字、音樂視頻等內容排版都是由前端開發人員實現的&#xff1b;后端開發是為前端開發提供實際的數據內容和業務邏輯&#xff0c;比如提供文字內容、圖片和音樂視…

Nginx和Apache的區別

一。Nginx和Apache的優缺點和對比Nginx 優點Apache 優點性能與并發采用事件驅動模型&#xff0c;支持 10 萬 高并發連接&#xff0c;資源&#xff08;CPU / 內存&#xff09;占用極低生態成熟&#xff0c;內置模塊可直接處理動態內容&#xff0c;無需依賴第三方程序配置與部署…

前端實現可編輯腦圖的方案

前端實現可編輯腦圖的方案 實現可編輯腦圖(Mind Map)在前端有多種方案&#xff0c;以下是一些主流的技術方案&#xff1a; 1. 基于現有開源庫的方案 JavaScript 庫 MindElixir: 輕量級開源腦圖庫&#xff0c;支持節點增刪改、拖拽、導入導出等 GitHub: https://github.com/sssh…

7-大語言模型—指令理解:指令微調訓練+模型微調

目錄 1、指令微調的訓練過程 2、指令微調數據 2.1、“指令輸入” 2.2、“答案輸出” 3、指令微調數據的構建方法 3.1、手動構建&#xff1a;純人工 “出題 寫答案” 3.1.1、構建流程 3.1.1.1、定義任務類型 3.1.1.2、設計指令模板 3.1.1.3、人工標注響應 3.1.2、工…