计算机网络-网络层,运输层,应用层
网络层/网际层
网络层的主要任务包括:
- 提供逻辑上的端到端通信:网络层负责确定数据的传输路径,使数据能够从源主机传输到目标主机,即实现端到端的通信。
- 数据包的路由和转发:网络层根据目标主机的地址信息,选择最佳的路径进行数据包的转发和路由,确保数据能够正确到达目标主机。
- 提供逻辑地址的分配和识别:网络层使用逻辑地址(如 IP 地址)来标识网络中的主机和设备,以便于数据包的传输和定位。
要知道,如果只在局域网内通信,是用不上网络层的,即网络层就是为了在多局域网即实现广域网中通信;
网络层基本概述


已经基本过时了,现在使用的是
无连接的数据报服务


IPv4


很基础就不说了
IPv4地址可以分为三类:A类、B类和C类,每类地址范围不同,用于满足不同规模的网络需求。
- A类地址:A类地址是用于大型网络的,其第一个字节的最高位是0,范围是1.0.0.0至126.0.0.0。A类地址的前8位用于网络号,剩余的24位用于主机号。A类地址共有2^7 个网络,每个网络可分配2^24-2个主机,减去2是因为全0和全1分别表示网络地址和广播地址,不能用于分配给主机。
- B类地址:B类地址是用于中型网络的,其第一个字节的最高位是10,范围是128.0.0.0至191.255.0.0。B类地址的前16位用于网络号,剩余的16位用于主机号。B类地址共有2^14 个网络,每个网络可分配2^16-2个主机。
- C类地址:C类地址是用于小型网络的,其第一个字节的最高位是110,范围是192.0.0.0至223.255.255.0。C类地址的前24位用于网络号,剩余的8位用于主机号。C类地址共有2^21 个网络,每个网络可分配2^8-2个主机。




测试题:
0是保留网络号,不指派
127是本地回环测试,不指派

一些不按规矩来的:

上边的是一些特殊情况
网络分配(有分类编址)
路由器是有ip地址的,并且可以分割网络
这道题中,每个路由器的接口就是一个网络,并按照主机数量+1(路由器ip)来分配合适的ipv4地址

子网掩码
子网掩码用于指示 IP 地址中哪部分是网络标识,哪部分是主机标识。它与 IP 地址一起使用,用于划分网络中的子网,以便更有效地管理和分配 IP 地址。
具体来说,子网掩码中的“1”表示对应的位是网络标识,而“0”表示对应的位是主机标识。通过将子网掩码应用到 IP 地址上,可以确定 IP 地址的网络部分和主机部分,从而确定其所在的子网。
其实就按字面意思,子网那么就是将ip地址划分,掩码就是说只显示网络号是几位,主机号是几位,而不直接说明ip地址是什么。
举个例子:

即通过子网掩码看出从网络地址借了一位,即处在这个子网下的ip地址的网络号只有7位二进制了,因为第一位被拿走充当了网络地址;
再举个生活中的例子,公司申请了一个B类地址,共6万多个ipv4,但是只使用了一小部分,还有很多用不到,为了不浪费,决定贡献出一部分到其他公司,那网络如何知道哪一部分贡献了呢?就根据子网掩码知道;

基本已经懂了,再看一道例题:

被划分为了两个子网
易错点!!!
当使用子网掩码重新划分子网后连带着广播地址和网络地址都会发生改变,比若说:主机号是真的划分给子网号了,而不是假设

多说一个概念:
ABC类地址默认子网掩码就是没有子网号,即没有借位

CIDR(无分类编址)


还是很容易理解的(感觉比划分ABC类网好用的多,如果这个早点研发,可能就不需要ABC类划分子网了)
需要知道这个和有分类编址完全不同了!!,ABC类地址在这里已经不能用了!!!
例题:

超网概念

方法就5个字:找共同前缀
地址应用规划
定长子网掩码

只能把子网掩码等分,造成有的用的多,有的用的少,甚至有的没用上,浪费掉了;
变长子网掩码

按需分配,即 2的n-1次方<每个分配的数量<=2n次方;

IP数据报转发和发送

要点较多:
几个:默认网关的值是路由器接口的ip地址,广播是不能穿过路由器到达其他网络的;
4.4 IP数据报的发送和转发过程_哔哩哔哩_bilibili

说点简单的,默认左右两侧的网络不属于同一子网内
则可以看图知道路由表左侧接口目的网络地址为192.168.0.0,右侧接口目的网络地址为192.168.0.128
(使用ip地址与掩码相与得到的)
A若与D通信路由器怎么判断,D在左还是在右,就是使用D的ip地址与子网掩码相与(只有当两个操作数的对应位都为 1 时,结果才会为 1;否则结果为 0),能很明显判断出来,结果为192.168.0.128;等于右边的目的网络,所以D应该在右侧接口。

写一道题:


静态路由配置


没什么好说的,视频和截图很详细;
出现问题:
配置错误
配置错误导致一直兜圈会有TTL字段,即多次转发还不行,直接丢弃;

聚合路由过多导致错误
右上角设置的聚合路由,包含了4个ip地址,但是真实的是只用到了其中两个ip,如果刚好查找的是另外两个不存在的ip,会出现一直找不到的情况,这时候可以设置路由条目将对应路由下一条设为null;

网络故障

和上边的比较像,都是有模糊路由,但找不到对应的最后的目的网络,都以黑洞路由来处理;
上边的都是以静态路由来分析的(因为简单)
但实际开发中其实动态的使用更多
动态路由设置

路由选择协议
协议分为内部和外部,因为距离不同,所需要的处理规则也会不同

最常考的应该是RIP协议和OSPF协议

路由信息协议RIP(重点)


要点:怎么交换路由表(很有意思)
示例:
把C的路由表复制过来,先记住一个要点(复制过来的是新表,自己的是旧表)。
第一步:下一跳全部写为C,距离全部增加1;理由:因为D和C相邻,这些节点,通过C直接到达和通过D到C再直接到达,就多了第一跳;

然后两个表进行对比,右侧四个更新规则,应该都能看懂,只有第一条规则,当下一跳都是C时,并不是取最短的,因为路由表是和C互换的,C是当事人,C的就肯定是最新和正确的,即使更长,也是正确的,因为C是当事人。


这个是无法完全解决的,只能减少;
真题:(发现这种题都好坑人,"真"做题,哎);
需要看到”均以收敛“,不然会没有思路,意思是所有能走的路径都保存好了,但是下边又说不可达,则说明是直连的,并且是该网络出现故障。只有这种情况,所以为16,然后更新给R2,R2一看不行了,直接删掉了,但是R1又传过来是2,结果就更新成2+1=3了…

开放最短路径优先OSPF基本原理(重点)
这是内部路由的另一种方式



边界网关协议BGP

所以到底是怎么找到较好路由呢?
其实就是每个自治系统找出一个BGP发言人,用它来代表这个自治系统

其实BGP内容还有和多,但不需要掌握,就不说了;
IPv4数据报的首部格式

一一介绍:
版本即ipv4
首部长度就是上边图片中使用的长度,在20到60之间,总长度是整个ip数据报的长度,那么数据载荷长度=总-首;
(ps:总长度是有限制的<最大传输单元MTU)
但是若总长大于MTU怎么办?就需要分片了,分片后如何知道这两片其实是一个ip数据报?就需要标识了


注意:片偏移只能为整数,即分给分片的字节必须能被8整除!!!
简单总结:标识可以知道哪些分片是同一个数据报,标志可以知道在这个分片后是否还有分片,片偏移可以知道这个分片在数据报中的位置;

生存时间字段TTL作用:防止进入路由环路中导致永久兜圈,时间会不断减少,为0时丢弃;
协议字段:规定是何种路由协议(可能是内部,外部的各种协议)

首部检验和

检验是否出现差错
(ipv6不再检验首部校验和,所以转发速度更快)
重点:源ip地址,目的ip地址

考点:

知道了前边说的,这道题目就很简单了,错误点是注意片偏移必须是整数;
科目聚合题:有计组和计网
)
记住:以太网帧中前14字节为
之后才为ip数据报部分

所以目的ip地址为第31字节起的四个字节;
默认网关是路由器的接口ip地址,即mac地址
第四问较为基础;
网际控制报文协议ICMP

内容总结

内容较多,最好还是看视频学习
ICMP(Internet Control Message Protocol)是用于在 IP 网络上发送控制消息的协议,常用于网络故障诊断和错误报告。
- ICMP 的作用和功能:用于在 IP 网络上发送控制消息,包括错误报告、网络故障诊断、网络可达性测试等。
- ICMP 报文格式:ICMP 报文由报头和数据字段组成,报头包含类型、代码和校验和等字段。
- ICMP 消息类型:包括回显请求和回显应答、目的不可达、超时等。
- Ping 命令原理:Ping 使用 ICMP 协议发送回显请求并等待回显应答,以测试主机之间的网络连通性和延迟。
- ICMP 工具的使用:掌握常用的 ICMP 工具,如 ping、traceroute、icmpinfo 等,以及它们的基本用法和参数含义。
- ICMP 错误消息:了解 ICMP 报文中的错误类型和代码,如目的不可达、超时等,以及它们代表的含义和可能的原因。
- ICMP 攻击与防御:了解 ICMP 协议可能存在的安全风险,如 ICMP 洪水攻击等,以及相应的防御措施。
(不用知道这么详细的)
虚拟专用网VPN

路由器的正常转发是将数据包直接从一个设备转发到另一个设备,而 VPN 则提供了一种安全的方式,在不安全的网络上建立加密的通信通道,保护你的数据安全。VPN 通常用于需要对数据安全性有较高要求的场景,如远程办公、远程访问公司资源等。
网络地址转换NAT

其实就是套娃,以前是一个设备一个ip地址,现在不够用了,成一群设备共用一个ip地址,当这群设备中的设备访问因特网时,从全球ip地址库中单独分配一个临时ip地址给设备,所以才会出现ip地址不固定一直改变;因为本地的都是私有ip地址,并不是真正的;

是的这个有一个巨大的缺点,那就是如果专用网设备都在同时访问因特网,那就得给各个设备分不同的ip地址,那么这个技术就没有意义了,并达不到节省ip的意义,所以出现了升级版
NAPT技术

我们之前的讨论并没有引入端口技术,即认为一个ip就只能当做一个用;
但实际不一样,是有端口的,引入端口是让nat的下层设备在经过路由器时分配的只是一个公有ip的一个端口,这样就可以让多个设备使用一个ip的多个端口访问因特网,达到了节省ip的目的(资本家都没有这么黑心);
一个问题:因特网能主动访问私有网么?答案是否定的;
运输层

知道运输层是端到端(端口到端口)就容易理解多了;
既然是端到端,我们先知道端口是什么:

端口
端口是用来区分不同应用程序或服务的通信终点。在一个设备上,不同的应用程序可以同时运行并与网络进行通信,每个应用程序都会被分配一个唯一的端口号,用于标识该应用程序的通信终点。这样可以确保网络上的数据正确地被传递到相应的应用程序,从而实现了应用程序之间的隔离和通信的有效管理。
大白话:电脑上不可能只接收一个设备发来的信息,为了整理和统一,端口应运而生,不同的网络信息,都要经过端口的分类传到对应的端口,比如qq消息,对方把消息传过来假设qq消息对应端口是8088,那么设备会自动把收到的发给8088端口的信息挑出来,这样就从繁杂的网络信息中找到了对应的;所以,电脑上一个端口只能有一个程序,不过很多应用都是可以改默认端口的;
复用和分用概念
在上边的ip头文件格式提到过协议不同对应数字不同;


有些固定端口已经设置好了固定的协议,比如tcp的80,当客户端(如浏览器)向服务器发起HTTP请求时,通常会使用TCP协议通过80端口与服务器建立连接,并发送HTTP请求报文。服务器收到请求后,会处理请求并发送HTTP响应报文给客户端,完成一次HTTP通信。
重点是两个运输协议TCP和UDP
TCP和UDP对比



什么意思呢,就是面向报文直接不用过多处理就给接收方了
面向字节会最后对数据进行加工:有很多过程,引出很多算法

首部比较,UDP首部较简单既是缺点也是优点,缺点是无法进行诸如流量控制,拥塞控制等功能,优点就是传输快;
TCP流量控制


假设TCP单次发送最大段为100,则只要发100,服务端都会发送序号表示自己收到了;
当客户端收到服务端的确认段后会移动到对应的窗口值;
这个过程中,右侧服务端使用了三次流量控制从400调为300又调为0

TCP拥塞控制






最后的快恢复是第一种策略,第二种策略应该是从15的地方开始拥塞避免
超时重传时间的选择

较复杂应该不会考,应该是考研必看的大题l
TCP报文段首部格式

和ip首部有点像

源端口和目的端口就不说了
TCP报文段的确认号(Acknowledgment Number)和序号(Sequence Number)是TCP协议中用于实现可靠数据传输的重要字段。
- 序号(Sequence Number):序号字段用于标识发送的数据字节在数据流中的顺序。每个TCP报文段都包含一个序号字段,用于指示该报文段所携带数据的起始字节在整个数据流中的位置。TCP使用序号来保证数据的有序传输,接收方根据序号将接收到的数据重新排序。
- 确认号(Acknowledgment Number):确认号字段用于确认接收到的数据。TCP的数据传输是双向的,接收方通过确认号来告知发送方已经成功接收到了哪些数据。确认号指示下一个期望接收的数据字节的序号。发送方根据接收到的确认号来确定哪些数据已经被成功接收,哪些数据需要重传。
这两个字段的配合使得TCP协议能够实现可靠的数据传输。发送方根据序号发送数据,接收方根据确认号确认已经接收到的数据,并通过确认号告知发送方下一个期望接收的数据位置,从而实现数据的有序传输和可靠性。
数据偏移指的是首部长度





应用层
概述

C/S方式

P2P方式

动态主机配置协议DHCP
DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动分配 IP 地址、子网掩码、网关地址以及其他网络参数给网络中的设备。它可以帮助网络管理员自动管理大量设备的 IP 地址分配,减少了手动配置 IP 地址的工作量,并且可以有效地防止 IP 地址冲突。
DHCP 主要有以下几个功能和特点:
- 自动 IP 地址分配:DHCP 可以动态地为设备分配 IP 地址,避免了手动配置 IP 地址的繁琐过程。
- 地址重用:当设备离开网络时,DHCP 服务器会回收该设备使用的 IP 地址,并可以将该地址分配给其他设备使用,提高了 IP 地址的利用率。
- 地址分配控制:DHCP 服务器可以通过设置租约时间等参数来控制 IP 地址的分配情况,例如设置 IP 地址的租用时间,防止地址过度占用。
- 动态更新:DHCP 可以动态更新设备的 IP 地址信息,当网络拓扑结构发生变化时,可以及时更新设备的 IP 地址。
- 减少 IP 地址冲突:DHCP 服务器会自动管理 IP 地址的分配,避免了手动配置 IP 地址可能带来的冲突。

相关文章:
计算机网络-网络层,运输层,应用层
网络层/网际层 网络层的主要任务包括: 提供逻辑上的端到端通信:网络层负责确定数据的传输路径,使数据能够从源主机传输到目标主机,即实现端到端的通信。数据包的路由和转发:网络层根据目标主机的地址信息,…...
Python爬虫学习
1.1搭建爬虫程序开发环境 爬取未来七天天气预报 from bs4 import BeautifulSoup from bs4 import UnicodeDammit import urllib.request url"http://www.weather.com.cn/weather/101120901.shtml" try:headers{"User-Agent":"Mozilla/5.0 (Windows …...
台式电脑黑屏无法开机怎么办 电脑开机黑屏的解决方法
经常有朋友电脑一开机,发现电脑黑屏没法用了。很多人看到黑屏就懵了,以为电脑要报废了,这是什么原因?电脑开机黑屏怎么解决?一般常说的黑屏故障分为两种,显示屏没有任何显示以及显示英文。下面小编要为大家带来的是台式电脑黑屏…...
【Docker】初学者 Docker 基础操作指南:从拉取镜像到运行、停止、删除容器
在现代软件开发和部署中,容器化技术已经成为一种常见的方式,它能够提供一种轻量级、可移植和可扩展的应用程序打包和部署解决方案。Docker 是目前最流行的容器化平台之一,它提供了一整套工具和技术,使得容器的创建、运行和管理变得…...
突破编程_C++_面试(数组(1))
面试题1:详细说明一下数组名是什么? 在 C 中,数组名代表数组首元素的地址。更具体地说,数组名是一个指向数组第一个元素的常量指针。这意味着,当使用数组名时,实际上是在使用指向数组第一个元素的指针。 例…...
基于springboot+vue的靓车汽车销售网站(前后端分离)
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
【知识整理】Git Commit Message 规范
一. 概述 前面咱们整理过 Code Review 一文,提到了 Review 的重要性,已经同过gitlab进行CodeReview 的方式,那么本文详细说明一下对CodeReivew非常重要的Git Commit Message 规范。 我们在每次提交代码时,都需要编写 Commit Mes…...
HarmonyOS学习--三方库
文章目录 一、三方库获取二、常用的三方库1. UI库:2. 网络库:3. 动画库: 三、使用开源三方库1. 安装与卸载2. 使用 四、问题解决1. zsh: command not found: ohpm 一、三方库获取 在Gitee网站中获取 搜索OpenHarmony-TPC仓库,在t…...
【服务器数据恢复】FreeNAS+ESXi虚拟机数据恢复案例
服务器数据恢复环境: 一台服务器通过FreeNAS(本案例使用的是UFS2文件系统)实现iSCSI存储,整个UFS2文件系统作为一个文件挂载到ESXi虚拟化系统(安装在另外2台服务器上)上。该虚拟化系统一共有5台虚拟机&…...
【GPT-2】论文解读:Language Models are Unsupervised Multitask Learners
文章目录 介绍zero-shot learning 零样本学习 方法数据Input Representation 结果 论文:Language Models are Unsupervised Multitask Learners 作者:Alec Radford, Jeff Wu, Rewon Child, D. Luan, Dario Amodei, I. Sutskever 时间:2019 介…...
基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022
基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022 摘要关键词 1 绪论2 数据与方法2.1 数据2.2 机器学习算法2.3 Penman-Monteith方程2.4 Medlyn公式2.5 模型性能评估 3 基于机器学习算法的混合模型估算农田蒸散量的评价与比较4 利用人工神经网络算法…...
博客 cn 站搭建 v3 v3.1
1. 架构设计 v3.1 版本 2. v2.x 存在的痛点 在v2.x版本中,围绕 服务器 遇到了两个主要的问题: 服务器成本高:博客以静态页面为主,理论上可以实现无服务器部署,但是为了防止恶意攻击,不得不使用服务器进…...
2024全国水科技大会暨流域水环境治理与水生态修复论坛(六)
论坛召集人 冯慧娟 中国环境科学研究院流域中心研究员 刘 春 河北科技大学环境与工程学院院长、教授 一、会议背景 为深入贯彻“山水林田湖是一个生命共同体”的重要指示精神,大力实施生态优先绿色发展战略,积极践行人、水、自然和谐共生理念&…...
Python实战:读取MATLAB文件数据(.mat文件)
Python实战:读取MATLAB文件数据(.mat文件) 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅…...
spring boot3登录开发-3(账密登录逻辑实现)
⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途。 目录 前置条件 内容简介 用户登录逻辑实现 创建交互对象 1.创建用户登录DTO 2.创建用户登录VO 创建自定义登录业务异…...
Django后端开发——ORM
文章目录 参考资料ORM-基础字段及选项字段类型练习——添加模型类应用bookstore下的models.py数据库迁移——同步至mysqlmysql中查看效果字段选项Meta类定义示例:改表名应用bookstore下的models.py终端效果练习——改表名+字段选项修改应用bookstore下的models.py终端效果ORM基…...
AI模型训练的初步整理
明天会有人来给我们讲AI方面的课,我也一直想整理一下这方面的知识,今天也趁着这个机会做一下功课,算是预习。 首先,AI的模型训练可以分为: 增量学习(Incremental Learning) 增量学习允许模型在…...
【Java从入门到精通】Java Number Math 类
Java Number & Math 类 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 实例 int a 5000; float b 13.65f; byte c 0x4a; 然而,在实际开发过程中,我们…...
SQL字符集
目标:了解字符集的概念,掌握MySQL数据库存储数据的字符集逻辑以及设置方式 字符集概念 MySQL字符集关系 解决乱码问题 字符集设置原理 1、字符集概念 目标:了解字符集概念,掌握字符集存储和读取的实现原理 概念 字符集:charset或者character set&am…...
openssl 生成nginx自签名的证书
1、命令介绍 openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书。 主要参数 主要命令选项: -new :说明生成证书请求文件 -x509 :说明生成自签名证书 -key :指定已…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
