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

一键免费创建论坛网站wordpress 微视频主题

一键免费创建论坛网站,wordpress 微视频主题,网站结构设计的内容,微信关注公众号目录 0. 预备知识 1. 端口号的划分范围 2. 认识知名端口号 3. netstat 命令 4. pidof 命令 二.UDP 0.协议的学习思路 1. UDP 协议报文格式 报头与端口映射#xff1a; 2. UDP 的特点 面向数据报#xff1a; 3. UDP 的缓冲区 4. UDP 使用注意事项 5. 基于 UDP 的…目录 0. 预备知识 1. 端口号的划分范围 2. 认识知名端口号 3. netstat 命令 4. pidof 命令 二.UDP 0.协议的学习思路 1. UDP 协议报文格式 报头与端口映射 2. UDP 的特点 面向数据报 3. UDP 的缓冲区 4. UDP 使用注意事项 5. 基于 UDP 的应用层协议 STM32 微控制器 ARM 架构 应用层告一段落我们在前面学习到了 序列化和反序列化守护进程正确的读取和写入怎么定制协议协议和序列化的区别加密... 国庆后写个小结(∀) 这篇文章我们就开始 传输层 的讲解啦 思维导图如下 0. 预备知识 1. 端口号的划分范围 端口号(Port)标识了一个主机上进行通信的不同的应用程序。 在TCP/IP协议中用 “源IP”“源端口号”“目的IP” “目的端口号” “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看)这里协议号就相当于具体一个协议的名称也就是标识客户端和服务器用什么协在通信。其实目的端口号就已经确定了用那个协议如22 ssh协议。 实际上不管是用同一个客户端上不同的请求或者不同的客户端去请求同一个服务器都能够准确区分清楚这个请求时从哪来的。全都是得益于完整的报文。 TCP解决通信双方端口问题IP解决通信双方IP地址问题所以TCP/IP解决网络通信的问题。 端口号长度为16位因此范围是 0 ~ 65535。 0 ~ 1023知名端口号 例如HTTP、FTP、SSH等广泛使用的应用层协议其端口号是固定的。 1024 ~ 65535操作系统动态分配的端口号 客户端程序的端口号由操作系统在这个范围内动态分配。 2. 认识知名端口号 常用的服务器端口号有固定分配为了使用方便常见服务器通常使用以下固定端口号 SSH 服务器22 端口FTP 服务器21 端口Telnet 服务器23 端口HTTP 服务器80 端口HTTPS 服务器443 端口 通过执行 vim /etc/services 可以查看知名端口号的详细信息。 注意 有可能是由于某种原因如误删除或系统配置问题该文件确实不在你的系统中。你可以通过重新安装相关的软件包来恢复这个文件。对于基于Debian的系统如Ubuntu可以使用如下命令 sudo apt-get install --reinstall netbase 对于基于RHEL的系统如CentOS可以尝试 sudo yum reinstall initscripts 一个进程是否可以bind多个端口号? ✔️一个端口号是否可以被多个进程bind? ✖️ 数据一定是自底向上交付的一定是从端口号唯一交付给进程所以我们要保持从端口号到进程的唯一关系。因此2错。 一个进程绑定多个端口号并不破坏端口号到进程的唯一性从任何端口号到进程都是唯一的如一个进程绑定两个端口号一个端口号用来发数据一个端口号用来发指令因此1对。 3. netstat 命令 netstat 是用于查看网络状态的重要工具常见选项如下 n显示数字格式不转换为别名。l仅列出处于监听LISTEN状态的服务。p显示建立相关链接的程序名。t仅显示 TCP 相关选项。u仅显示 UDP 相关选项。a显示所有选项默认不显示 LISTEN 相关。 4. pidof 命令 pidof 命令可以通过进程名查看对应的进程 ID。xargs把管道上一个进程输入的管道的内容以命令行参数的方式拼接在后接命令的后面 二.UDP 0.协议的学习思路 我们未来学习协议都要带着这两个问题去学习 学习所有的协议都有它的报头和有效载荷如何解包(如何将报头和有效载荷进行分离)如何分用 报头和有效载荷如何分离有效载荷应该交付给哪一个上层协议对应的协议字段方案认识报头学习该协议周边的问题 之后学习 tcp 协议格式也是这个思路~ 1. UDP 协议报文格式 UDP 报文的宽度为 0-31前 8 个字节4 个字段为 UDP 报头剩余部分为有效载荷。报文包含以下信息 16 位源端口号表示数据的来源端口。16 位目的端口号表示数据的目的端口。16 位 UDP 长度表示整个数据报的长度UDP 首部 UDP 数据。16 位 UDP 校验和用于检测 UDP 报文是否在传输中损坏校验失败时报文会被丢弃。 ⭕UDP 报头的封装与解包 发送数据时传输层为数据前面添加 8 字节的 UDP 报头。接收数据时从报文中提取前 8 个字节作为报头其余为有效载荷。 所以所谓的报头其实就是一种结构化数据对象 一般在定协议的时候采用的是结构体或者位端的方式。 所谓的添加报头当程序员在应用层调用sendto发送数据这个sendto其实并没有把数据直接发送到网络里而是把数据拷贝UDP这个协议中。 在看到UDP报文这张图脑海中要立即想到协议就是一个结构化的数据添加报头就是把数据放在缓冲区里然后在缓冲区前面把报头相关字段拿过来这个报文就构建好了继续向下交付就好了 报头与端口映射 每个应用层进程绑定一个端口号服务端进程显式绑定客户端由系统动态分配。内核通过哈希表维护端口号与进程 ID 之间的映射传输层通过端口号找到对应的应用层进程。 2. UDP 的特点 UDP 传输类似于寄信具有以下特点 无连接不需要建立连接直接通过 IP 和端口号传输数据。不可靠没有确认和重传机制传输失败不会反馈给应用层。面向数据报报文有明确边界数据不会被拆分或合并。 面向数据报 报文有 16 位长度标识UDP 按原样发送报文接收端必须按相同方式接收。对方调sendto发送10次报文对方必须调用recvfrom接收10次报文次数是1:1的。 例用UDP传输100个字节的数据 如果发送端调用一次sendto发送100个字节那么接收端也必须调用对应的一次recvfrom接收100个字节而不能循环调用10次recvfrom每次接收10个字节 3. UDP 的缓冲区 发送缓冲区UDP 没有真正的发送缓冲区sendto 直接将数据交给内核处理。接收缓冲区UDP 有接收缓冲区但不能保证接收顺序与发送顺序一致缓冲区满时会丢弃数据。全双工UDP 的 socket 既能读也能写支持全双工通信。 实际上我们用的网络IO接口其实并不直接是发送和接收窗口是拷贝窗口 关于上面这句话我们通过 TCP 来理解 网络IO接口与缓冲区 实际使用的网络IO接口并非直接操作发送和接收窗口而是拷贝窗口。客户端和服务器通过TCP协议通信时在各自的传输层维护着发送和接收缓冲区。 数据发送过程 应用层使用send/write接口并不是直接将数据发送到网络中而是先拷贝到操作系统OS管理的发送缓冲区。OS决定何时及如何从发送缓冲区向网络发送数据以及发送多少数据。发送的数据经过网络后到达对方的接收缓冲区。 数据接收过程 接收方使用recv/read接口读取数据时实际上是将接收到的数据从接收缓冲区拷贝到应用层定义的缓冲区。这一过程也是由OS控制而非直接从网络读取。 接口的本质 read, write, sendto, recvfrom, send, recv等接口本质上执行的是内存拷贝操作。 全双工通信 客户端到服务器客户端的发送缓冲区至服务器的接收缓冲区。服务器到客户端服务器的发送缓冲区至客户端的接收缓冲区。双方都拥有独立的发送和接收缓冲区对使得同时双向通信成为可能。 缓冲区的作用 提供全双工通信支持。增强发送效率允许应用层在数据拷贝完成后立即返回并继续执行其他任务。缓冲区处理包括数据发送时机、数量及丢包情况等这些都由TCP协议自动管理。 生产者-消费者模式 数据的产生和消费类似于生产者-消费者模式其中一方放入数据生产另一方负责将数据刷新到网络或取出消费。此模式支持了系统中的解耦合能够应对不同时间段内产生的负载不均问题。在正常发送情况下通过拷贝行为代替实际发送减少了客户端等待时间提高了整体性能。 什么是以TCP来讲的那UDP呢 UDP没有真正意义上的 发送缓冲区. 调用sendto会直接交给内核, 由内核将数据传给网络层协议进行后续的传输动作;UDP没有真正意义上的 发送缓冲区这是因为它不需要因为UDP把报头一加直接交给下层它没有可靠性机制也不需要把数据暂存下来。UDP具有接收缓冲区. 但是这个接收缓冲区不能保证收到的UDP报文的顺序和发送UDP报文的顺序一致; 如果缓冲区满了, 再到达的UDP数据就会被丢弃UDP的socket既能读, 也能写, 这个概念叫做 全双工 理解 UDP 先描述再组织的管理 下三层传输网络数据链路都在内核中用 C语言写的都是先描述再组织的管理 4. UDP 使用注意事项 UDP 报头中的长度字段为 16 位因此单个 UDP 报文的最大长度为 64KB包含 UDP 报头。 传输超过 64KB 的数据时需在应用层手动分包传输并在接收端拼装数据。 5. 基于 UDP 的应用层协议 NFS网络文件系统TFTP简单文件传输协议DHCP动态主机配置协议BOOTP启动协议用于无盘设备启动DNS域名解析协议 当然, 也包括你自己写UDP程序时自定义的应用层协议 下篇文章讲对 TCP 协议进行讲解~ 一些方向的了解 STM32是由STMicroelectronics意法半导体生产的基于ARM Cortex-M内核的32位微控制器系列。而ARM本身是一个架构它提供了多种处理器设计从低功耗的Cortex-M系列到高性能的Cortex-A系列广泛应用于嵌入式系统、移动设备和服务器等领域。 下面将分别简要介绍STM32和ARM在嵌入式软件方向的应用 STM32 微控制器 特点 基于ARM Cortex-M内核。提供了广泛的性能选项包括不同的处理速度、内存大小以及外设集。支持多种开发工具链和IDE如Keil, IAR, 以及开源的GCC工具链。拥有丰富的生态系统包括官方的STM32CubeMX配置工具、HAL库硬件抽象层、LL库底层库等。 软件开发方向 固件开发使用C/C语言编写控制微控制器及其外设的代码。RTOS集成可以与实时操作系统例如FreeRTOS, RT-Thread结合以实现多任务管理。驱动程序开发为各种传感器和其他外部设备编写驱动程序。中间件开发开发或集成网络协议栈、文件系统、图形用户界面等中间件。安全应用利用STM32的安全特性来实现加密算法、安全启动等功能。物联网(IoT)应用通过Wi-Fi, Bluetooth, LoRa等无线技术连接互联网。 ARM 架构 特点 广泛应用于从智能手机到服务器的各种计算平台。ARM提供不同级别的处理器设计适用于不同的应用场景。强调低功耗设计适合电池供电的便携式设备。开放性架构允许第三方厂商根据ARM架构设计自己的处理器。 软件开发方向 裸机编程直接针对特定的ARM处理器进行编程不依赖任何操作系统。嵌入式Linux/Android开发对于更高性能需求的嵌入式系统可以运行完整的操作系统比如Linux或者Android。实时操作系统(RTOS)用于需要确定响应时间的应用场景例如工业自动化。安全关键系统在汽车电子、医疗设备等对安全性要求极高的领域中应用。高级应用程序开发如果是在带有操作系统的ARM平台上工作则涉及到应用程序层面的开发这可能包括GUI开发、多媒体处理等。 无论是在STM32还是更广泛的ARM平台上嵌入式软件工程师都需要具备良好的编程技能、理解硬件原理并且熟悉相关的开发工具和技术文档。随着技术的发展对于网络安全、云服务集成等方面的知识也越来越重要。
http://www.hkea.cn/news/14355575/

相关文章:

  • 设计网站 知乎国外设计欣赏
  • 上海建设安全生产协会网站脑叶公司
  • 建设科技信息 网站建设电子商务企业网站建设发展论文
  • 靖江网站建设公司dw制作网站网页模板
  • 芜湖镜湖区做网站公司东营远见网站建设公司
  • 建设个人网站多少钱河南省汝州市建设网站
  • 做二手房网站食堂网站建设方案
  • 技术支持 桂林网站建设优秀企业网站案例
  • 个人网站怎么盈利手机商城网站设计
  • 网站建设项目流程图广州网站建设高端
  • 口碑好网站建设多少钱深圳wap网站建设
  • 网站域名 空间中国施工企业协会官网
  • 公司网站建设怎么做账微网站预约网站开发
  • 企业网站制作哪家好王也天与葛优
  • jquery网站开发教程织梦网站提示保存目录数据时报
  • php网站开发实例教程简介北京网站建设外包公司
  • 郑州企业网站制作怎么做国内做网站的大公司有哪些
  • 专业管道疏通网站建设图片犀牛云做网站推广怎么样
  • 网站推广软件赚钱难吗?重庆可视化网站制作
  • 网站后台 请示网页设计学编程吗
  • 做网站代理拉别人网站品牌营销策略包括哪些内容
  • 山东专业的网站建设建设网站之前都需要准备什么东西
  • 网站管理员权限设置权限设置顺企网杭州网站建设
  • 如何做展示型网站四川省建设厅网站
  • 上海网站建设公司 红威新网站前期如何做seo
  • 大连网站推广价格王者荣耀是哪家公司开发的
  • 世界著名办公室设计太原网站搜索优化
  • cms网站后台管理系统官方网站作用
  • 高水平网站运营托管怎么在搜索引擎里做网站网页
  • 给网站做视频怎么赚钱室外绿化工程施工方案久久建筑网