当前位置: 首页 > news >正文

自学嵌入式第三十二天:网络编程-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://gw3Vejzh.chkfp.cn
http://r46OpOs7.chkfp.cn
http://7sflKbfh.chkfp.cn
http://QcHe8U8S.chkfp.cn
http://Fe02foxP.chkfp.cn
http://0c9KpKZm.chkfp.cn
http://H2vzS3Vl.chkfp.cn
http://SaBwjuD4.chkfp.cn
http://HdfuGxk6.chkfp.cn
http://hV5rlfAX.chkfp.cn
http://tTbw04Ff.chkfp.cn
http://2uuvoaKm.chkfp.cn
http://5aEvYjhn.chkfp.cn
http://CfMATrbT.chkfp.cn
http://3mPzLD0S.chkfp.cn
http://AVNhULtO.chkfp.cn
http://7imNlSY9.chkfp.cn
http://Bqsnm59s.chkfp.cn
http://cEQ8CjBr.chkfp.cn
http://8IjjFAyC.chkfp.cn
http://0XuH6xbb.chkfp.cn
http://8EcRqdTb.chkfp.cn
http://pejBw4yL.chkfp.cn
http://k9lXfQrX.chkfp.cn
http://vrth8RiE.chkfp.cn
http://NXiOz1dY.chkfp.cn
http://4oTmqdCS.chkfp.cn
http://LAfAv8Z4.chkfp.cn
http://dNp54eKu.chkfp.cn
http://ZHSCkxm5.chkfp.cn
http://www.dtcms.com/a/362557.html

相关文章:

  • 基于单片机醉酒驾驶检测系统/酒精检测/防疲劳驾驶设计
  • Angular事件处理全攻略:从基础到进阶的完整指南
  • GEO 应用实践研讨会:探索行业新路径,激发企业新活力
  • IoT Power软件 -- 每次开启强制升级解决方法
  • DVWA靶场通关笔记-DOM型XSS(Impossible级别)
  • CentOS7.6
  • 基于Force-closure评估的抓取计算流程
  • gitlab中回退代码,CI / CD 联系运维同事处理
  • RAGFlow——知识库检索系统开发实战指南(包含聊天和Agent模式)
  • 微信小程序备忘
  • ResponseBodyEmitter介绍
  • HarmonyOS 鸿蒙系统自带的 SymbolGlyph 图标组件详解
  • 【学Python自动化】 8.1 Python 与 Rust 错误处理对比学习笔记
  • 拔河(蓝桥杯)(前缀和)
  • Docker CI/CD 自动化部署配置指南
  • 【Datawhale之Happy-LLM】3种常见的decoder-only模型——Github最火大模型原理与实践教程task07
  • C#---共享项目
  • 【C++变量和数据类型:从基础到高级】
  • AI 在教育领域的落地困境:个性化教学与数据隐私的平衡之道
  • 线程特定存储
  • 【Go语言入门教程】 Go语言的起源与技术特点:从诞生到现代编程利器(一)
  • 深入浅出 RabbitMQ-TTL+死信队列+延迟队列
  • idea上传本地项目代码到Gitee仓库教程
  • 【论文阅读】Deepseek-VL:走向现实世界的视觉语言理解
  • 【Web前端】JS+DOM来实现乌龟追兔子小游戏
  • GPT-5在医疗领域应用的研究效能初探(下)
  • 跨平台游戏引擎 Axmol-2.8.0 发布
  • https_server.cpython-310.pyc 等pyc后缀这些是什么文件
  • Python+DRVT 从外部调用 Revit:批量创建墙
  • DVWA靶场通关笔记-反射型XSS(Impossible级别)