自學嵌入式第三十三天:網絡編程-UDP

一、OSI模型(open system interconnect)

? ? ? ? 開放系統互聯模型,分為7層

? ? ? ? 應用層:為網絡用戶提供各種服務,例如電子郵件、文件傳輸等;

? ? ? ? 表示層:為不同主機間的通信提供統一的數據表示形式。加密解密,壓縮;

? ? ? ? 會話層:負責信息傳輸的組織和協調,管理進程會話過程;

? ? ? ? 傳輸層:管理網絡通信兩端的數據傳輸,提供可靠或不可靠的傳輸服務。tcp、udp;

? ? ? ? 網路層:負責數據傳輸的路由選擇和網際互聯。ip;

? ? ? ? 鏈路層:負責物理相鄰(通過網絡介質相連)的主機間的數據傳輸,主要作用包括物理地址尋址、數據幀封裝、差錯控制等。該層可分為邏輯鏈路控制子層(LLC)和介質訪問子層(MAC);

? ? ? ? 物理層:純硬件,負責把主機中的數據轉換成電信號,再通過網絡介質(雙絞線、光纖、無線信道等)來傳輸。該層描述了通信設備的機械電氣功能等特性。有線傳輸短距離用網線,長距離用光纖。無線局域網民用2.4G-5G,無線廣域網叫蜂窩網絡;

二、TCP/IP模型

? ? ? ? 網際互聯模型,分為4層;

? ? ? ? 應用層:應用程序;

????????傳輸層:端口號,tcp,udp;

????????網絡層:IP地址;

????????接口層:網卡驅動;

三、dns域名解析服務

? ? ? ? 是一個服務器,記載網站對應的ip

? ? ? ? DHCP動態主機配置協議,分配ip地址;

? ? ? ? Windows:ipconfig;Linux:ifconfig;查看當前ip;

? ? ? ? 應用層:HTTP(超文本傳輸協議) TFTP FTP (文件傳輸協議)SNMP?DNS(域名解析服務) DHCP(動態主機配置協議)

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

? ? ? ? 網絡層:IP ICMP(互聯網控制管理協議ping) RIP(最佳路徑) OSPF(最短路徑) IGMP(網絡組播協議)

? ? ? ? 接口層:ARP(地址解析協議,通過ip找MAC) RARP(逆向地址解析協議)

四、網絡基礎

? ? ? ? ip地址是網絡位加主機位;

? ? ? ? ip地址的分類:點分十進制?

? ? ? ? ? ? ? ? A類地址:超大規模型網絡

????????????????????????????????1.0.0.0-126.255.255.255

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 私有:10.0.0.0-10.255.255.255/127.0.0.1

? ? ? ? ? ? ? ? B類地址:中大規模型網絡

????????????????????????????????128.0.0.0-191.255.255.255

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 私有:172.16.0.0-172.31.255.255

? ? ? ? ? ? ? ? C類地址:中小規模型網絡

????????????????????????????????192.0.0.0-223.255.255.255

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 私有:192.168.0.0-192.168.255.255

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 靜態路由:

????????????????????????????????192.168.0.0代表網絡

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.0.1網關

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.0.255廣播

? ? ? ? ? ? ? ? D類地址:廣播和組播

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 224.0.0.0-239.255.255.255

? ? ? ? ? ? ? ? E類地址:實驗

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 240.0.0.0-255.255.255.255

五、配置網絡設置

? ? ? ? 1.ifconfig ensX X.X.X.X/24 up

????????ifconfig ens33 192.168.0.13/24 up //24:是從左往右數的1的個數,等價于255.255.255.0

? ? ? ? 臨時性的,虛擬機重啟會恢復

? ? ? ? 2.ping?

? ? ? ? 3.netstat -anp

六、網絡接口

? ? ? ? 1.socket :BSD socket 用于網絡通信的一組接口函數;

? ? ? ? 會得到打開網絡設備的文件描述符,叫套接字,socket api application interface;

? ? ? ? 2.ip地址+port端口

? ? ? ? ip地址用來找主機;port端口號用來找進程;

? ? ? ?port分為TCP port、UDP port范圍都是1-65535

? ? ? ? 約定1000以內的端口為系統使用。
3.網絡字節序-大端存儲

????????主機字節序:計算機是小端存儲的;

? ? ? ? 小端存儲:數據的低位放到存儲的低地址;

? ? ? ??ip地址和端口號需要大小端轉換一下;

七、UDP(用戶數據報)

? ? ? ? 1.特性:無鏈接,不可靠,大數據

? ? ? ? 2.socket

? ? ? ?#include <sys/types.h> ? ? ? ? ?/* See NOTES */

? ? ? ?#include <sys/socket.h>

? ? ? ?int socket(int domain, int type, int protocol);

? ? ? ? domain:AF_INET,ipv4互聯網;

? ? ? ? type:SOCK_DGRAM

? ? ? ? protocol:0

? ? ? ? 3.bind

? ? ? ? #include <sys/types.h> ? ? ? ? ?/* See NOTES */

? ? ? ? #include <sys/socket.h>

? ? ? ? int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

? ? ? ? sockfd標識符;addr地址結構體;addrlen結構體大小;

? ? ? ? 做地址和端口的大小端轉換:

? ? ? ? htons? ?//host to net short,端口轉換

? ? ? ? in_addr_t inet_addr(const char *cp);? ? ?//地址轉換

????????#include <sys/socket.h>

????????#include <netinet/in.h>

????????#include <arpa/inet.h>

? ? ? ? 4.recvfrom

? ? ? ? 接收函數,
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);

? ? ? ? flags:0默認阻塞;MSG_DONTWAIT非阻塞,無數據則停止并設置error;MSG_PEEK窺探數據但不從緩沖區移除;MSG_WAITALL阻塞直到讀滿;

? ? ? ? 成功返回收到的字節;

? ? ? ? 5.sendto

? ? ? ? 發送函數

????????ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);

? ? ? ? 成功返回發出的字節數;

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

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

相關文章

A*(Astar)算法詳解與應用

算法背景A*&#xff08;A-Star&#xff09;算法是一種在圖形平面上&#xff0c;有多個節點的路徑中&#xff0c;求出最低通過成本的算法。其歷史可以追溯到早期的圖搜索算法&#xff0c;如Dijkstra算法和貪心最佳優先搜索&#xff08;Greedy Best-First Search&#xff09;。是…

word刪除指定頁面

常規程序因為wps的 .docx 文件是基于段落和節的結構&#xff0c;而不是“物理頁”&#xff0c;所以無法直接按“第幾頁”刪除在普通程序里面無法讀取到他的頁碼&#xff0c;但是在宏編程里面他能讀取到頁碼&#xff0c;我們就根據宏編程來這樣刪除。程序會自動打開選擇要刪除的…

RK3568平臺開發系列講解:瑞芯微平臺4G模塊篇移植

更多內容可以加入Linux系統知識庫套餐(教程+視頻+答疑) ??返回專欄總目錄 文章目錄 一、硬件圖片 二、功能宏 三、增加PID/VID 支持 3.1、usb_device_id 結構體 3.2、usb_device_id 的注冊 沉淀、分享、成長,讓自己和他人都能有所收獲!?? 一、硬件圖片 目標: 結果…

面試 (一)

目錄 1. HashMap是怎么解決沖突的 是用什么數據結構實現的 2. 為什么hashmap的初始長度為16 3. 多線程的核心參數 4. 多線程怎么工作的 5. CISCS是怎么實現的 6. JUC知識 7. C和java的區別 8. JVM底層編譯的東西 9. 公平鎖和非公平鎖 10. 有人惡意攻擊你的平臺每秒發送…

計算機畢設選題:基于Python+Django的健康飲食管理系統設計【源碼+文檔+調試】

精彩專欄推薦訂閱&#xff1a;在 下方專欄&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主頁&#xff1a;計算機畢設木哥&#x1f525; &#x1f496; 文章目錄 一、項目介紹二…

vscode terminal遠程連接linux服務器GUI圖形界面

看了很多教程&#xff0c;不清楚具體原理&#xff0c;但總之自己是摸索出來了&#xff1a; 1.下載vcxsrv&#xff0c;最后雙擊exe程序啟動&#xff1a; 每一步的配置如下&#xff1a;2.修改配置 vscode中按下“ctrlshiftp”&#xff0c;然后輸入“Remote-SSH: Open SSH Configu…

文檔外發管理產品哪個品牌強?安全與效率雙優產品推薦

在企業間協作日益加深的今天&#xff0c;企業對文檔外發管理相關產品的安全性和效率要求越來越高。無論是日常業務協作&#xff0c;還是跨組織數據交換&#xff0c;如何確保文件在傳輸過程中不被泄露、篡改&#xff0c;同時又能高效流轉&#xff0c;成為企業IT管理的重要課題。…

【教程】2025 IDEA 快速創建springboot(maven)項目

第一步&#xff1a;【新建】-【module】&#xff0c;左邊選擇springboot&#xff0c;右邊填寫相關信息。第二步&#xff1a;選擇相關依賴。第三步&#xff1a;刪掉一些無關的文件&#xff0c;保持項目簡潔創建springboot項目已經結束了&#xff0c;下面是構建項目的架構以及環境…

【小白筆記】移動硬盤為什么總比電腦更容易滿?

我明明只復制了10個G的文件&#xff0c;為什么我的移動硬盤就滿了&#xff1f; 大家好&#xff0c;我是個剛入門的小白&#xff0c;最近遇到了一個讓我百思不得其解的問題。我把電腦里的一些文件&#xff0c;總共加起來也就10個G左右&#xff0c;心想移動硬盤還有幾十個G的空位…

單獨一篇云原生介紹

云原生&#xff08;Cloud Native&#xff09;?不是單一技術&#xff0c;而是一套構建和運行應用程序的完整方法論?&#xff0c;旨在充分利用云計算的優勢&#xff08;彈性、按需資源、分布式環境&#xff09;來構建?高韌性、可擴展、易于管理的應用?。它的核心思想是讓應用…

Git如何查看提交行數與刪除行數:統計代碼貢獻量的完整指南

Git如何查看提交行數與刪除行數&#xff1a;統計代碼貢獻量的完整指南 在軟件開發中&#xff0c;代碼行數統計是衡量團隊協作效率和項目進度的重要指標。通過Git的命令行工具&#xff0c;開發者可以輕松查看提交的代碼行數、刪除的代碼行數以及凈增行數。本文將詳細介紹多種方…

DVWA靶場通關筆記-SQL注入(SQL Injection Impossible級別)

目錄 一、源碼分析 1、index.php 2、impossible.php 二、SQL注入防范分析 1、Anti-CSRF 令牌 2、參數化查詢 3、輸入驗證 本系列為通過《DVWA靶場通關筆記》的SQL Injection 關卡(low&#xff0c;medium&#xff0c;high&#xff0c;impossible共4關&#xff09;滲透集合…

MySQL中事務的作用和定義

在 MySQL 中&#xff0c;??事務&#xff08;Transaction&#xff09;?? 是一組數據庫操作的邏輯單元&#xff0c;這些操作要么??全部成功執行??&#xff0c;要么??全部失敗回滾??&#xff0c;以確保數據庫從一個一致狀態轉換到另一個一致狀態。事務是關系型數據庫&…

華為Fit4:腕間助手,守護你的健康,帶你開啟智慧生活

清晨被鬧鐘吵醒&#xff0c;想要關掉卻怎么也找不到手機&#xff1f;經常睡很久卻還是很困&#xff1f;重要的事情常常因為沒有被記錄和規劃清楚最終變得手忙腳亂&#xff1f;人流擁擠的地鐵上半天找不到刷碼信息&#xff1f;這些問題是不是生活中常常遇到&#xff0c;別擔心&a…

【交易系統系列36】揭秘幣安(Binance)技術心臟:從公開信息拼湊“MatchBox”撮合引擎架構

一、 核心概覽:從白皮書的豪言到監管文件的“實錘” 要理解幣安的架構,我們首先要抓住幾個關鍵的、有據可查的事實: 性能目標:在其早期白皮書中,幣安宣稱其撮合引擎能夠達到每秒140萬筆訂單的處理能力。這串數字,無論是在當時還是現在,都代表著對系統吞吐量和低延遲的極…

SpringBoot08-Spring Boot 多環境配置

方式一&#xff1a;純 Spring Profile&#xff08;最常用&#xff0c;官方推薦&#xff09;思路&#xff1a;用 application-{profile}.yml 切分配置&#xff0c;運行時指定用哪個 profile。 如何做&#xff1a;src/main/resources/application.ymlapplication-dev.ymlapplicat…

蒼穹外賣項目筆記day04--Redis入門

Redis 概念 Redis 是一個開源的、高性能的鍵值存儲系統&#xff0c;常被歸類為NoSQL數據庫。它支持多種數據結構&#xff0c;如字符串、列表、哈希、集合和有序集合&#xff0c;適用于緩存、消息隊列、實時分析等多種場景。Redis是一個基于內存的key-value結構數據庫。Redis …

OpenCV 圖像處理實戰與命令行參數配置:從輪廓檢測到模板匹配

在計算機視覺領域&#xff0c;OpenCV 是一款功能強大且應用廣泛的開源庫&#xff0c;它提供了豐富的 API&#xff0c;支持圖像讀取、預處理、特征檢測等多種操作。本文將結合實際代碼案例&#xff0c;詳細講解如何使用 OpenCV 實現輪廓檢測、輪廓近似、模板匹配等常用功能&…

深度學習---pytorch卷積神經網絡保存和使用最優模型

在深度學習模型訓練過程中&#xff0c;如何提升模型性能、精準保存最優模型并實現高效推理&#xff0c;是每個開發者必須攻克的關鍵環節。本文結合實際項目經驗與完整代碼示例&#xff0c;詳細拆解模型訓練優化、最優模型保存與加載、圖像預測全流程&#xff0c;幫助大家避開常…

FPGA實現Aurora 64B66B圖像視頻點對點傳輸,基于GTY高速收發器,提供2套工程源碼和技術支持

目錄 1、前言Aurora 64B66B是啥&#xff1f;官方有Example&#xff0c;為何要用你這個&#xff1f;工程概述免責聲明 2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目我這里已有的 GT 高速接口解決方案本方案在Aurora 8B10B上的應用 3、工程詳細設…