Linux学习记录——삼십구 数据链路层协议

文章目录

  • 1、了解数据链路层
  • 2、认识以太网
  • 3、认识MAC地址
  • 4、以太网报文
  • 5、局域网通信原理
    • 1、基本原理
    • 2、数据碰撞
    • 3、交换机
    • 4、ARP协议
    • 5、RARP协议
    • 6、局域网中间人
  • 6、DNS(简单介绍)
  • 7、ICMP协议
    • 1、报文
    • 2、traceroute命令
  • 7、NAT技术
    • 1、基本过程
    • 2、NAPT
    • 3、缺陷
  • 8、代理服务器


应用层(HTTP,HTTPS) → 传输层(TCP,UDP) → 网络层(IP) → 数据链路层

1、了解数据链路层

实际上IP协议提供的路由功能,路径选择,比如从主机D到路由器F,从路由器F到路由器G。链路层解决的就是如何将数据从D送到F。D和F属于同一个子网,F和G属于同一子网,所以链路层解决了在同一子网内发送数据的问题。同一子网内,两台设备可以直接连接,直接通信,跨网络就是在不同的子网之间不断发送,通过这些同子网的设备跨多个子网,而走哪些路线就是网络层IP协议决定的,怎样走是由链路层的MAC帧来决定的,这两层共同决定了如何将数据从一个主机跨网络送到B主机的能力,如果这两层有问题就让TCP来解决。

链路层属于驱动层,底层的网络有很多不一样的网络,网络的差异就体现在网卡、设备、软件驱动上,所以这个东西无法做到操作系统里。

2、认识以太网

以太网是一个局域网(子网)的技术标准,既包含链路层的内容,也包含了一些物理层的内容,是当前应用最广泛的局域网技术,和以太网并列的还有令牌环网、无线LAN等,以太网的网线必须使用双绞线。

3、认识MAC地址

局域网中,当来到消息时,每个主机都去检查是否是自己的信息,不是就丢掉,是就匹配上了。虽然两个主机都会认为在和对方通信,但其它主机也都知道一个主机发信息了。每个主机都有网卡,网卡有MAC地址,标准长度6个字节。

在这里插入图片描述

ether后面的一串就是mac地址。

4、以太网报文

在这里插入图片描述

MAC帧的报头是目的地址 + 源地址 + 类型 + CRC,有效载荷就是中间的数据,大小范围是46 ~ 1500字节,所以上层给的报文最多不超过1500字节,要超过46个字节,如果不够就填充PAD字段,实际上就填充一些垃圾数据。

报头部分,目的地址是MAC地址,源地址是发送方地址,都占6个字节,类型占2个,CRC校验码占4个字节。MAC帧的报头是定长报头,总共18个字节,有效载荷也有长度范围。类型是帧类型,表示数据类型,填的是0800,就是IP数据报,0806就是ARP请求/应答,8035则是RARP请求/应答。后两种原理相似,本篇只写ARP。

5、局域网通信原理

1、基本原理

假设主机ABCD,主机的mac地址假设为macABCD,路由器R,路由器也是局域网主机。主机A要给主机D发信息。

A的网络层发现A和D在同一子网内,在MAC帧的报文中,目的地址是macD,源地址是macA,类型是0800,数据是IP报文,以及CRC校验码。链路层将这个MAC帧报文发送到局域网中,BCDR各自的链路层都收到了这个MAC帧报文,比如主机C,C将MAC帧的报头和有效载荷分离,拿到报头这个结构体中的目的地址macD,发现不是macC,那么在链路层C就丢弃了这个报文,BR也是这样的操作,D也一样,不过D发现目的地址就是它自己的MAC地址,然后就交付给网络层,传输层,应用层,而其它几个,只有链路层知道这个报文,网络层及之上的都不知情。网卡中也可以设置一个混杂模式,不对报文的目标MAC地址进行认证。直接向上层交付,这也就是大部分局域网抓包软件的原理。要想不被抓包,在应用层对数据加密,因为其它层都是公开的代码。

D给A响应的时候,目的地址就是macA,源地址是macD,类型是0800,数据是IP报文,以及CRC校验码,然后发送到局域网,一样的过程,最终A得到了响应。

2、数据碰撞

局域网是共享的资源,有可能出现多个主机给多台主机通信,这时候会出现数据碰撞,网络都是光电信号,如果碰撞的话光波就会互相干扰,数据就不对了,所以局域网也叫碰撞域。任何时刻,只能有一台主机在给另一台主机发送数据帧。

为了预防这个问题发生,主机的网卡通过校验码来做碰撞检测,如果会发生碰撞就sleep上几秒,再重新发,避免碰撞。局域网内的所有主机都有这个机制,不过每个主机休息的时间不一样,所以就能错开发送;以及都在休息,没在休息的主机就可以发送了。所以局域网内主机越少越好,碰撞概率越低。现实中,很多人聚集在一起,或者像下班期间这样的网络使用高峰期,网络会变得卡,就是因为碰撞概率大了,很多设备都在丢包等待重发中。

如果要黑掉局域网,就发送大量垃圾数据,就有可能和所有主机碰撞,不过发送垃圾数据的主机得绕开以太网的驱动程序,让自己没有碰撞测试,通过某种方式直接去干扰局域网。

链路层也有重传,这是为了保证把数据发送到另一台主机。在OS角度,局域网是临界资源,因为一次只能让一个主机发送消息,其它都得等,碰撞检测和碰撞避免就是在保护临界资源的安全。而令牌环网有一些数据当作令牌,只有拿着令牌的主机才可以发送数据,发完后交给另一台主机,这台主机才能发数据,这个令牌就相当于互斥锁。

3、交换机

交换机工作在数据链路层,周围的设备也都在一个局域网内。假设局域网分为左右两部分,中间有交换机,左部分发生碰撞,交换机就不会把碰撞产生的垃圾数据传到右部分,不影响右部分的主机,这里交换机的作用就是划分碰撞域。

左部分正常交互,但数据有可能扩散到右部分,交换机也会收到这些数据就会丢掉,不会转发到右部分,减少右部分的碰撞概率。

一个区域内使用网络的设备很多时就得使用交换机。

4、ARP协议

在整个传输过程中,IP地址和目标MAC地址一直不变,源MAC地址一直在变。对方的IP地址是可以知道的,那么对方的MAC地址如何知道?

因为IP地址,目的MAC地址不变,底层网络的差异就会缩小。

ARP协议的主要功能是建立了IP地址和MAC地址的映射,工作在链路层,可以控制MAC帧报文的发送。MAC帧正常通信时直接将报文交给网络层,除非不知道对方的MAC地址才用ARP协议来获得。链路层有MAC帧和ARP层。

APR的工作流程是将IP地址发送到局域网内,对应的主机收到后返回带有自己的MAC地址的响应。

ARP报头

在这里插入图片描述

图中以太网首部就是MAC帧的报头,ARP总共28字节,存在于MAC帧的有效载荷里。以太网地址是MAC地址,如果不知道,就写成全F,这时候就是在局域网内的广播地址,帧类型是0806。硬件类型表明是网络类别,比如以太网,令牌环网,设为1就是以太网;协议类型是要转换的地址类型,也就是IP地址,写为0x0800…,硬件地址长度这里固定为6字节,因为是以太网的MAC地址,协议地址长度这里就固定为IPv4地址,所以是4字节,op为1表示ARP请求,为2是ARP应答,目的以太网地址为全F,表示不知道。

一个局域网内,任何一台主机都可能向别的主机发送ARP请求,收到其它主机发送的ARP请求,也都可以发送ARP应答。因此,一个主机可能既收到ARP应答,又收到APR请求。

还是之前的例子,好几台主机ABCDEF,MAC地址就是macB这样的形式。主机A是一台入口路由器,收到了一个IP报文,里面有目的IP:ipF。此时入口路由器要获取F的MAC地址,就构建一个ARP报文,除去以太网首部,填充剩下的部分,1,0800,6,4,1,macA,ipA,全F,ipF。将填充好的部分,也就是不包括上图的以太网首部的部分,拿着这个,去封装进MAC帧报文,先不管CRC校验和,MAC帧报头填充全F,macA,0806,有效载荷就是刚才构建的ARP报文,整个就构成一个MAC帧报文,发送到局域网中。

所有的主机都收到了这个MAC帧报文,都去分离报头和数据,看到目的MAC地址是全F,就交给ARP层,ARP层拿到除去报头的MAC帧的有效载荷,也就是之前构建的ARP报文,先看到op是1,就知道是请求,再看到目的IP地址是ipF,不是对应主机,那就在ARP层丢弃。当F收到并做同样的步骤后,发现是要询问的是自己的,F就知道A主机在广播询问我的MAC地址,于是构建ARP应答,1,0806,6,4,2,macF,ipF,macA,ipA,然后封装进MAC帧报文,报头是macA,macF,0806,然后F将ARP应答发送到局域网中,其它主机都能收到,但在链路层中的MAC帧层,没有去到链路层的ARP层,就能看到目的MAC地址是macA,不是自己就在MAC帧层丢弃。A也收到,在MAC帧层知道只发给自己的,又看到0806,于是交给ARP层,看到ARP报文,先看op,是2应答,所以就提取发送端以太网地址macF。

所以顺序就是,收到ARP报文后,先看op,因为主机在发送ARP请求后就忘记这码事,所以得先看看来者何人。所以ARP请求和ARP响应是相互独立的。为了防止碰撞,主机内会在得知结果后就把这个关系维护起来。ARP大量存在于各个子网之间的路由器之间,比如传输过程中有什么路由器换了,那就得ARP一下。局域网内要想知道各个主机的IP地址,比如在192.168.1.0子网内。0
位置最多变为255,所以192.168.1.1主机就全都发一遍请求,有应答的就说明对应IP地址有主机,也就拿到了这个主机的IP地址,然后在本主机中保存起来。

Windows下命令arp -a可以看到主机保存的MAC地址,也就是物理地址。想得到对端主机的MAC地址,要发送ARP请求,只需要发送IP协议往上层的任何一个报文即可;或者用ping命令,ping后面加上网址,可以测试网络连通性,会发送IP报文,并且必须给应答,在发ping之前,主机就会发送ARP报文。

主机之间在局域网内发送的单个数据帧体积越小越好。如果碰撞的话,数据帧更长,重发成本就更高。

5、RARP协议

ARP是地址信息协议,RARP是逆地址信息协议。RARP在知道MAC地址时找到IP地址,这个很简单,直接封装MAC帧报文,发送过去询问就可。

6、局域网中间人

在一个局域网内,ABCDE主机和路由器R,E可以和C发消息,E可以发消息到R,由R发到别的子网中。主机的IP地址是公开的,在应用层就知道了。IP地址知道了,就可以ARP找到MAC地址。ARP有缓存,用来维护最新的IP地址和MAC地址。

现在有中间人接入这个局域网,有ipM和macM。主机构建ARP请求时,可以作假,所以中间人可以构建一个ARP请求,表明IP地址是ipR,MAC地址是macM。中间人将ARP请求发给主机A,A的ARP缓存就以为主机R的MAC地址变了,ipR应当对应着macM,而不是之前的macR。之后A每次要发消息给路由器R,都会发给M而不是R。

中间人M给路由器R发送ARP请求,写明IP地址ipA,MAC地址macM。R会发送大量应答冲刷,防止应答丢失,保证应答发送成功。R收到假报文后,就改变了映射关系,将ipA和macM对应起来,这样每次R以为发送给A,其实发送给了M。

像这样的做法叫做ARP欺骗。

6、DNS(简单介绍)

域名解析系统。能把域名转为IP地址,在应用层工作,使用UDP协议来进行DNS请求。IP地址不利于互联网推广宣传,因为全是数字,所以出现域名。域名和IP地址都可以访问同一个网页。浏览器收到输入的域名后,向内置的域名解析服务器发送DNS请求,得到IP地址,再开始和厂商服务器交互。浏览器还会保存一些常见的域名和IP地址的映射关系。当上不了网时,有可能是域名解析服务器挂掉了。

但域名其实并不是大众使用的点,而是搜索引擎,所以需要搜索引擎去做域名。大众打开电脑,打开浏览器,在搜索框内输入内容就可以访问网页,浏览器就通过域名服务来找到相应的网页。

命令cat /etc/hosts,域名解析时会优先查看hosts文件的内容。

一级域名是.后的,比如com,edu,cn等。二级域名是中间的那部分,比如www.baidu.com,baidu就是二级域名。不同的一级域名对应的域名解析也会有所不同。

7、ICMP协议

ICMP在应用层,它可以让应用层协议绕过传输层,直接使用ICMP协议。网络传输中,IP协议只负责传输报文,IP协议不提供传输可靠性,并不知道是否丢包等问题。ICMP协议用来解决IP协议产生的问题,双方ICMP进行交流,如果有丢包对方就得发送报文告知。

确认IP包是否成功到达目标地址
通知在发送过程中IP包被丢弃的原因
ICMP基于IP协议工作
ICMP只能搭配IPv4使用,IPV6得用ICMPv6。

假如对方主机挂掉,发送方多次重发后,对端主机就会发送一个ICMP报文告知发送方出现的问题原因。ICMP既可以通知出错原因,也可以用于诊断查询。

1、报文

在这里插入图片描述

ICMP报文在IP报文的有效载荷中,就像ARP报文在MAC帧的有效载荷中。

在这里插入图片描述

ping命令是C/C++写的工作在应用层的软件,用的就是ICMP协议。发送路径上任何一个主机出问题,都需要给应答,就会被ICMP收到。发送出去的IP报文,报文中有一个TTL字段,一开始设为1,如果中间被丢弃,那么不能直接丢弃,要给应答,这样TTL逐渐增加,就知道一个主机到一个主机时需要多少个中间主机,也就是跳数。

ICMP没有端口号,因为端口号是传输层的内容。

2、traceroute命令

基于ICMP协议实现,能够打印出可执行程序主机,一直到目标主机之前经历多少路由器。

7、NAT技术

解决IPv4地址不足的问题。从运营商内网到公网,通过不断地LAN口和WAN口转换,就是NAT技术。之前已经写过,从内网一个设备发送出去,要能够转换到公网;从公网再回到内网时也要能转换回来。NAT路由器就是做转换工作。

1、基本过程

在这里插入图片描述

当内网一个设备发送请求时,有源IP地址和目的IP地址,NAT路由器对内网有LAN口,对公网有WAN口,请求到达NAT路由器时,源IP地址换成NAT路由器在公网的IP地址,目的地址不变,这就是从内网到公网的过程。

NAT路由器有一个映射表NAPT。从内网到公网会经过一次映射得到公网IP地址,回来的时候也会通过这个映射表来得到内网的源IP地址。

2、NAPT

内网内会有多个设备要访问一个公网的服务器,NAT在转化回来的时候要分清楚是哪个主机,主机的哪个进程。所以IP地址,端口号都得知道,NAT路由器其实甚至能工作到应用层。

图中可以看出,每个主机的源IP地址通过NAT路由器发送到公网时都会变成WAN口的IP地址,但端口号也会不同,所以就出现了上图灰框类似的映射表。IP地址和端口号都换就是因为有多个主机的多个程序在发送消息,需要给所有程序都返回应答。在NAT角度下,内网里就可以没有主机这个概念,而是看作一个个网络客户端进程,而公网里就是一个个网络服务器进程,无论是公网还是内网,ip + port就是它们唯一的进程ID。在一个内网和一个公网的交互过程中,两个网内的ID都是唯一的,放在一起,就是这组网络的唯一,所以NAT路由器就是将唯一做到了现实。

不过映射表中还维护了目的IP。这是因为防止有别的服务器发错信息,映射关系中有目的IP,就能保证接收的是目的服务器的信息,而不是哪个服务器都收。

家里设备上网时,经过的家用路由器,运营商路由器都使用NAPT。

3、缺陷

无法从NAT外部向内部服务器建立连接,转换表的生成和销毁都需要额外开销,通信过程中一旦NAT设备异常,即使存在热备,所有的TCP连接也都会断开。

从外网访问到内网,外网可以发消息到和这个内网NAT路由器相连的网,通过这个网去访问内网。

8、代理服务器

正向代理:在客户端与服务器之间再加一个代理服务器,客户端发给这个代理服务器,代理服务器发给服务器,发送后,传回来的资源也经过代理服务器,代理服务器再发送给客户端,资源也会存在代理服务器,如果有客户端需要曾经某个客户端请求的资源,那么代理服务器就直接把这个资源给客户端,不需要再去访问服务器。正向代理服务器和厂商服务器之间还有路由器。正向代理可以起到缓存资源、提高访问效率的作用。正向代理需要认证,不能让所有人都可以访问,它只是一个区域的方案。正向代理也会过滤非法请求。

反向代理:一个代理服务器不可能面对太多客户端,所有就建立多个代理服务器,提供一样的服务,这些代理服务器就是集群。但这需要客户端发送时要挑选代理服务器吗?这个任务再叫一个代理服务器去做,它通常都是高并发服务器,用来接收所有客户端的请求,然后再分发给集群里的各个代理服务器,要让这些服务器的负载达到均衡。只接受请求并发送出去,所以它的负担不算重,但也需要高并发。这样的高并发的代理服务器就是反向代理服务器。每个集群都有反代理。当有多个集群时,不需要再用一个服务器来接收所有请求,然后分发给所有集群。当客户端要访问某个资源时,每个集群的反代理都有自己的IP地址,所以就通过平衡各集群压力,让这个请求去合适的反代理服务器,再发送到集群中,通过代理服务器去访问资源。

NAT和代理服务器的区别:
NAT解决IPv4地址不足的问题,代理服务器贴近具体应用,比如通过代理来翻墙,迅游加速器也是利用了代理服务器
NAT工作在应用层,直接对IP地址进行替换,代理服务器工作在应用层1
NAT一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网,也可以跨网
NAT一般集成在防火墙、路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上

代理服务器广泛用于翻墙(广域网中的代理)和负载均衡(局域网中的代理)中。

结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO项目自动化-根据库表字段自动生成API

根据库表字段自动生成API 一个项目开发离不开数据库的增删改查,API功能也基本围绕着表的CRUD:增加(Create)、读取(Read)、更新(Update)和删除(Delete)。每个表写一个CRUD,方法都差不多,逻辑也非常相似。 那么有没有可能根据表结构…

C++力扣题目111--二叉树的最小深度

力扣题目链接(opens new window) 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最小深度 2 思路 看完了这篇104.二…

Java入门IDEA基础语法

1:Java入门 1.1 Java简介 Java是什么: Java是一门非常优秀的计算机语言 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java之父:詹姆斯高斯林(James Gosli…

履践致远 载誉前行 | 甄知科技获评多项荣誉资质认定!

砥砺深耕 履践致远 甄知科技不断精进 持续成长 获评多项荣誉资质认定 23年4月 甄知成功入库科技型中小企业名单 2023年4月,上海市科技技术委员会公布2023年第二批入库科技型中小企业名单,依据《科技型中小企业评价办法》等要求,经各级评价工…

《尚贤达猎头网站流量统计模块》,通过HTTP自定义模块实时获取asp.net网站访问流量,并保存到数据库

开发了个网站流量统计模块,实时获取asp.net网站访问流量,并保存到数据库。 一、功能: 通过HTTP自定义模块实时获取网站流量 二、支持平台:windowsIIS 三、安装方法: 1、将文件www.sunsharer.cn.dll复制到网站bin目录下…

汽车出海业务专业术语

引言 本文是笔者在做中国汽车出口欧洲业务的信息化建设过程,积累的一些专业术语注解,供诸位参考交流。 专业术语清单 报关   报关是指出口货物的所有者或其代理人,根据中国海关法和相关法规,向海关申报货物的出口情况,并提交相关单证,以便海关对货物进行监管和征税。…

什么是算法的时间复杂度?

一、问题 算法的时间复杂度是评测算法好坏的主要指标,那么什么是算法的时间复杂度呢? 二、解答 算法的时间复杂度度量主要是计算⼀个算法所⽤的时间,算法所⽤的时间主要包括程序编译时间和运⾏时间。由于⼀个算法⼀旦编译成功就可以多次运⾏…

孩子用什么样的灯对眼睛没有伤害?分享最合适孩子的护眼台灯

为人父母以后,孩子健康成长一定是摆放在首位的,随着孩子慢慢长大,步入更高的年级,作业课程也在随之增多。不少孩子哪怕夜色已经降临,仍就伏案在桌子上完成没有做完的功课,作为父母的我们不得不担心孩子的视…

记录一下Canal的错误,主要是top.javatool.canal.client.util下的StringConvertUtil引起的

项目场景: 提示:这里简述项目相关背景: 由于数据库的一个localdatetime字段是空的, 然后修改数据库数据同步canal的时候报了这个错误: Caused by: java.lang.IllegalArgumentException: Can not set java.time.LocalD…

浏览器输入一个域名的解析过程

目录 从输入一个域名的解析过程 以www.baidu.com为例子 本地缓存和hosts文件 mDNS和LLMNR NBT-NS 路由器广播 Root域名服务器 顶级域名服务器 目标域名服务器 DNS解析完成 操作系统发起TCP连接: TCP三次握手: TCP连接的建立采用经典的三次握手过程&#…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷③

单元测试 一、任务要求 题目1:输入一个大写字母一个小写字母。根据输入的第一个字母和英文周几单词的第一个大写字母判断是周几,如果无法根据第一个大写字母判断,则继续根据输入的第二个小写字母进行判断,最终返回正确的英文周几…

第88讲:XtraBackup实现增量数据备份以及故障恢复的应用实践

文章目录 1.XtraBackup增量备份恢复的概念2.XBK增量备份语法3.使用XBK实现数据库的增量备份3.1.周日全量备份数据库3.2.周一产生增量数据并进行增量备份3.3.周二产生增量数据并进行增量备份3.4.查看两次增量以及全量的备份文件3.5.核对全量和增量备份的准确性 4.使用XBK通过增量…

Python的运算符和数据类型转换

Python的运算符&#xff1a; 算术运算符: 加法&#xff1a;减法&#xff1a;-乘法&#xff1a;*除法&#xff1a;/取余&#xff1a;%幂运算&#xff1a;**整除&#xff1a;// 比较运算符: 等于&#xff1a;不等于&#xff1a;!大于&#xff1a;>小于&#xff1a;<大于等于…

WPF真入门教程27--项目案例--设备数据实时监测

1、上图看效果 今天要做的一个案例是这样的效果&#xff0c;它能实时监测车间设备有关数据&#xff0c;并以表格和图形显示在界面上&#xff0c;这个比上个案例要复杂些&#xff0c;颜值也高些&#xff0c;通过这个来巩固wpf的技能&#xff0c;用到了命令绑定&#xff0c;样式…

【数据库】视图索引执行计划多表查询笔试题

文章目录 一、视图1.1 概念1.2 视图与数据表的区别1.3 优点1.4 语法1.5 实例 二、索引2.1 什么是索引2.2.为什么要使用索引2.3 优缺点2.4 何时不使用索引2.5 索引何时失效2.6 索引分类2.6.1.普通索引2.6.2.唯一索引2.6.3.主键索引2.6.4.组合索引2.6.5.全文索引 三、执行计划3.1…

uniapp运行自定义底座到真机没反应

同步资源失败&#xff0c;未得到同步资源的授权&#xff0c;请停止运行后重新运行&#xff0c;并注意手机上的授权提示。 如果此时手机没有任何反应&#xff0c;请检查自定义基座是否正确;如果是离线制作的自定义基座包&#xff0c; 请检查离线包制作是否正确。 网上各种查找报…

C++力扣题目513找树左下角的值

给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 思路 本题要找出树的最后一行的最左边的值。此时大家应该想…

C#Stopwatch类高精度计时功能

Stopwatch 是 C# 中的一个类&#xff0c;用于测量时间间隔的工具。它提供了高精度的计时功能&#xff0c;可以用于性能测试、调试和其他需要测量时间的场景。 使用 Stopwatch 类&#xff0c;你可以执行以下操作&#xff1a; 启动计时器&#xff1a;使用 Start 方法启动计时器…

Verilog 状态机 示例

状态机设计&#xff1a;3 段式&#xff08;推荐&#xff09; 状态机设计如下&#xff1a; (0) 首先&#xff0c;根据状态机的个数确定状态机编码。利用编码给状态寄存器赋值&#xff0c;代码可读性更好。 (1) 状态机第一段&#xff0c;时序逻辑&#xff0c;非阻塞赋值&#xf…

okcc呼叫系统如何配置呼入?

配置OKCC的呼入需要进行以下步骤&#xff1a; 1. 登录OKCC管理界面&#xff1a;使用管理员账号和密码登录OKCC的管理界面。通常可以在浏览器中输入OKCC的IP地址或域名来访问管理界面。 2. 确认网关配置&#xff1a;在OKCC管理界面中&#xff0c;确认已正确配置了网关&#xf…