本文章为沐一Gin的笔记&总结,转载请标明出处。
本文有下一章,如果看完后觉得有帮助就留个言呗,我会继续加油的!

OSI七层网络模型

物理层(Physical Layer):

该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。
物理层以信号的形式传输二进制数字,每一个二进制数字(0或者1)叫做比特(bit),即Binary Digit的缩写。在物理层上传输的信息是像0101001110011…这样连续的比特流,并不能区分哪一段比特是代表具体什么意义,这是上一层(数据链路层)的工作。

二进制信息传输

  1. 模拟信号(Analog Signal)是指波形为连续变化的信号。比如电模拟信号展现出连续变化的电压。正弦波就是模拟信号。

  2. 数字信号(Digital Signal)是指波形不连续而是离散地变化的信号。比如电数字信号展现出不连续的,突然变化的电压,如方形波。

  3. 将原始二进制数据转化为模拟/数字信号的设备就是调制解调器(MODEM),戏称为‘’猫”。调制解调器包括两个主要组件,调制器(MOdulator)和解调器(DEModulator)。在计算机A发送信息给计算机B的过程中,A首先将二进制数字通过调制器转化为信号,然后信号(比如电流)在介质上传输(比如导体),到达B后通过解调器转换回二进制数字,完成传输过程。

  4. FM调频;AM调幅;PM调相

传输介质和信道

传输介质是信号得以传输的媒介,广义上说可以是真空,空气,水,金属等等。信号发射端与接收端之间的介质形成的信号通道称为信道

有线网络的典型介质以前是电话线,现在更多的是同轴电缆和光纤。无线网络则可以使用不同频率/波长的电磁波,如下图所示:
电磁波的频率与波长成反向变化的关系,频率 X 波长=光速。电磁波的能量决定了它能在介质中传输多远,在空气中传输的电磁波能量的衰减正比于传输距离的平方,是衰减很快的。频率越高的电磁波波长越短,更倾向于沿直线传播,更难进行衍射和反射,就像一头红了眼的公牛只知道朝着红布方向冲过去,不管中间有什么障碍物都直接撞。不同材料的障碍物会对电磁波造成不同程度的能量损耗,比如光能轻易地穿透玻璃而无法穿透墙壁。所以频率高的电磁波适合视距范围内点到点的直接传输,发射端与接收端之间不能有障碍物。由于地球曲率的原因,高频电磁波无法直接进行超视距传输,需要设置中继站。相反,频率低的电磁波很容易通过衍射或者反射绕过障碍物,更适合在复杂地形传播

最常见的IEEE 802 (也就是WIFI)使用2.4GHz 和 5GHz两种频率。频谱上是在10的9次方,即广播电视频段和微波频段的交界处。很多偏僻的岛屿会使用微波与大陆通信

网络工程师需要根据实际情况和需求,以及各种介质的性质来决定网络的物理传输介质。

带宽

单位时间内信道可以传输的信息量。数字信号的带宽单位一般用千/兆/吉比特每秒(Kbps/Mbps/Gbps)。频率越高的电磁波单位时间内波形变化越多,所以可以携带的信息越多,带宽也就越大。目前常见的以太网局域网(LAN)带宽是100Mbps。

单工,半双工(Half Duplex),与全双工(Full Duplex)通信

单工是指信号在介质上只能以一个方向流动,即A电脑只能发送信号给B电脑而无法收取信号。

半双工是指信号在介质上可以双向流动,但同一时刻只能单向流动。

全双工是指信号在同一时刻可以在介质上双向流动,介质利用率更高。

集线器(Hub)

最后来说一下(基本上)工作在物理层的设备,集线器。先上图

集线器是最简单,最底层的网络设备。它的基本功能是对信号的放大和转发,也就是相当于多口的中继器。电信号从任何端口流入,都会被放大并转发给其他所有端口,也就是数据广播。用集线器组成的网络成为共享式网络,因为网络中的所有电脑会收到所有的数据,并且共享带宽。共享式网络的优点是简单低成本,缺点是安全性差(一台电脑发送/接受的数据能被所有电脑收到,毫无隐私可言),性能差(很容易形成广播风暴导致带宽用尽)。另外集线器一般是半双工的工作方式所以通信效率较低。

攻击集线器或者共享式网络十分简单,连接到网络中后即可以发送大量数据造成广播风暴,耗尽带宽。

数据链路层(Data Link Layer):

数据链路层的三个基本问题:封装成帧,透明传输,差错检测。

基本问题详解:

透明传输

透明传输的概念是指在数据链路层传输时,所传输的数据在数据链路层没有任何的阻挡,接收方所收到的数据和发送方发送的数据没有任何差别,也就是说,数据链路层对其传输的数据帧是完全透明的;

字节填充:在传输的过程中,为防止数据部分出现帧定界符,使得接收方误以为收到的数据提前结束,所以采用转义字符的方法,将在数据部分出现的控制字符前插入转义字符,在接收方的数据链路层将插入的转义字符删除。

差错检测

差错检测指的是在传输过程中产生的比特差错;
误码率:一段时间内,传输错误的比特占传输总数的比率;
目前在数据链路层采用的差错检验方式是循环冗余检验CRC
在数据链路层我们保证的是无比特差错,而并无传输差错,传输差错还包含帧丢失,帧重复,帧失序等;

封装成帧

物理层以连续比特流的形式传输信息,此时我们还不能分辨那一段比特代表什么意义。链路层的最基本功能就是把连续的比特流切分为一段一段固定长度的0/1序列,叫做“帧”(Frame),并把每一个帧从发送者送达接收者。链路层关心的是每个帧的长度是多少,格式如何,包括什么内容,这些都是链路层协议要规定好的。它并不关心帧里面的数据是和含义。

网卡

在链路层中各个节点是以MAC地址为唯一标识的。MAC地址, 即Media Access Control Address, 共6个字节的二进制数,是所有网络设备出厂时设置的全球唯一的地址。其中前三个字节表示由IEEE分配给厂商的地址,将烧录在每一块网络接口卡的ROM中。而制造商通常为其每一网络接口卡分配后三个字节。所以得知一个MAC地址后,就可以在网上查找这块网卡的生产商了。如这个网站。黑客则可以进一步查询这家厂商生产网卡的已知BUG,然后利用BUG进行攻击。
当网卡收到一个有差错的帧时,它就将这个帧丢弃而不必通知它所插入的计算机。当网卡收到一个正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送一个IP数据包时,它就由协议栈向下交给网卡组装成帧后发送到局域网

借用邓义兵的博客上形象的比喻:帧就像信封,而链路层则像是社区里的邮差负责把信从A户送到B户。

常见的链路层协议包括IEEE802.3也就是俗称的以太网协议(Ethernet),以及IEEE 802.11也就是俗称的WIFI。以太网协议用于有线网络传输,WIFI用于无线。不太常见的协议则包括令牌环网和SNAP。

以太网协议的具体介绍见关于以太网。以下为总结。

以太网

以太网这个术语通常是指由DEC,Intel和Xerox公司在1982年联合公布的一个标准,它是当今TCP/IP采用的主要的局域网技术,它采用一种称作CSMA/CD的媒体接入方法。几年后,IEEE802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络;此三种帧的通用部分由802.2标准来定义。这里主要讨论802.3。

以太网V2和IEEE802.3两种以太网帧的格式如下图所示:

以太网帧

整个帧的大小根据其包含的数据大小而不定,主要分为以下部分:

前导信息(Premeable):在以太网V2中是8个字节,IEEE802.3中是7个字节。内容为交替出现的1和0,即10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101010 (注意我故意加入空格方便阅读,实际比特流不包含空格)

帧起始定界符(Start Frame Delimiter, SFD):仅在802.3中有效,1个字节,格式与前导信息基本相同,最后两位都是1,即10101011

目标地址(Destination MAC Address): 接收方MAC地址。以太网V2支持6个字节的MAC地址,802.3则支持6个字节与2个字节(主要用于早期局域网,现已少见)两种格式的MAC地址。

源地址(Source MAC Address): 发送方MAC地址。

类型字段(EtherType): 2个字节的类型字段仅用于Ethernet II帧 。该字段用于标识数据字段中包含的高层协议,也就是说,该字段告诉接收设备如何解释数据字段。在以太网中,多种协议可以在局域网中同时共存,例如:类型字段取值为十六进制0800的帧将被识别为IP协议帧,而类型字段取值为十六进制8137的帧将被识别为IPX和SPX传输协议帧。因此,在 Ethernet II的类型字段中设置相应的十六进制值提供了在局域网中支持多协议传输的机制。在IEEE802.3标准中类型字段被替换为长度字段,因而Ethernet II帧和IEEE802.3帧之间不能兼容。

长度字段(Length): 用于IEEE802.3的两字节长度字段定义了数据字段包含的字节数。不论是在Ethernet II还是IEEE 802.3标准中,从前序到FCS字段的帧长度最小必须是64字节。最小帧长度保证有足够的传输时间用于以太网网络接口卡精确地检测冲突,这一最小时间是根据网络的最大电缆长度和帧沿电缆长度传播所要求的时间确定的。基于最小帧长为64字节和使用六字节地址字段的要求,意味着每个数据字段的最小长度为46字节。唯一的例外是吉比特以太网。在1000Mbit/s的工作速率下,原来的802.3标准不可能提供足够的帧持续时间使电缆长度达到100米。这是因为在1000Mbit/s的数据率下,一个工作站在发现网段另一端出现的任何冲突之前已经处在帧传输过程中的可能性很高。为解决这一问题,设计了将以太网最小帧长扩展为512字节的负载扩展方法。对除了吉比特以太网之外的所有以太网版本,如果传输数据少于46个字节,应将数据字段填充至46字节。不过,填充字符的个数不包括在长度字段值中。

同时支持以太网和IEEE802.3帧格式的网络接口卡通过这一字段的值区分这两种帧。也就是说,因为数据字段的最大长度为1500字节,所以超过十六进制数 05DC的值说明它不是长度字段(IEEE802.3).而是类型字段(Ethernet II)。

数据字段(Payload):46到1500字节不等。这是帧所包含的具体数据,一般是上一层(网络层)协议所封装的原始数据(比如IP数据包)。如前所述,数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:如果填入该该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。

校验序列字段(Frame Check Sequence, FCS): 既可用于Ethernet II又可用于IEE802.3标准的帧校验序列字段提供了一种错误检测机制,用于确保接收到的数据与发送时的数据一样。当源节点发送数据时,它执行一种称为循环冗余校验( C R C,Cyclical Redundancy Check)的算法。C R C利用帧中前面所有域的值生成一个惟一的4字节长的数,即F C S。当目标节点接收数据帧时,它使用约定好的算法重新计算CRC值并与发送的CRC值进行比较。如果这种比较失败,则接收节点认为帧已经在发送过程中被破坏并要求源节点重发该数据。CRC类似Hash算法但也有不同。相似之处在于二者都是用来检验数据在传输过程中是否被改变的。不同之处在于CRC虽然更快速但无法像Hash算法那样保证不同数据的CRC码一定不同,也就是唯一性。理论上数据可能被改变的同时CRC保持不变。这是因为CRC不像HASH一样用来防范人为的恶意修改,而主要是为了检测物理信号传送过程中因受到干扰而造成的数据扰动或者丢失。这种自然形成的扰动和丢失恰好满足CRC相等的概率微乎其微。但同时这种设计也为黑客在链路层进行攻击提供了可能。

以太网帧在物理层进行传输时称为以太包(packet),包中包含所有字段,各包之间间隔12字节。当目标设备接受到一个包之后,首先会去掉前导信息和帧起始定界符,然后对剩下的部分进行处理。

虽然IEEE802.3标准必然要取代Ethernet II ,但由于二者的相似以及Ethernet II作为IEEE802.3的基础这一事实,我们将这两者均看作以太网

关于64字节详解

CSMA/CD协议

基于以太网的广播通信方式采用的具有检测功能的协议

要点:
多点接入——即总线网络的方式

载波监听——每个站在发送前和发送的时候都不断的检测信道是否有其他站点在发送信号

碰撞检测——边发送边监听,若在信道上有至少两个站点同时发送信息便发生碰撞,使得两边发送的信息都作废;
碰撞检测的相关知识——

电磁波在1km的电缆传送的传播时延约为5μs

所以一个站点最长在发送信息之后的一个往返时间(即两倍的端到端的传播时延)内才能收到碰撞信号,所以一个站点在发送信号的一段时间内,是不确定是否会遭遇碰撞的;——即以太网发送的不确定性;而这段不确定是否会发生碰撞的时间称为争用期(或碰撞窗口);

而在争用期如果发生碰撞则双方都需要进行重传操作,而以太网使用的确定重传时间的方法称为截断二进制指数退避算法;

这是一种动态退避算法,在争用期(具体为51.2μs)内可传送512bit,即64字节,所以发生碰撞的时间就在站点发送512bit的时间内(也就是说,如果站点在发送一个完整的512字节的过程中没有检测到碰撞信号,则说明以后的发送都不会发生碰撞,可以完整的发送完整个数据帧)

具体的算法原理在这就不详细说明了,在动态退避的过程中,为了使所有的站点发送的每一个数据帧逗都能保证得到想要的发送结果信息(是否发生碰撞),则规定一个数据帧的最小长度应该为512bit,这样,每个站点在发送所有的数据帧时都能够在发送完之前知道是否发生了碰撞,是否需要重传(如果小于最小帧长64字节,则有可能在完全发送完之后才发生碰撞,这样发送站点就不知道发生了碰撞,即不会重传该帧),因此,在以太网中多点信道中,凡长度小于64 字节的帧都是由于冲突而发生异常终止的无效帧,在接收站点的适配器中即可方便判断出该结果;

规定帧间最小间隔9.6μs,是为了使刚刚收到数据帧站点能够有时间对手的数据帧作出反应

强化碰撞

——在发生碰撞之后除了立即停止发送数据之外,还要发送32bit或48bit 的人为干扰信号,目的是为了能够让所有站点都知道发生了碰撞

Wireshark

首先打开Wireshark, 选中一个正在工作的网卡开始抓包(Capture), 然后双击随便打开一个包,如下图所示:
这是一个ARP协议的包。ARP协议是第三层网络层的协议,所以Wireshark显示了第三层以下所有层的协议包。

第一行说明了这是一个42字节的帧,在interface 0, 也就是刚刚选取的网卡上所捕获。

第二行说明这是一个以太网V2格式的帧,以及源地址和目的地址。这里是一个ARP广播,所以目的地址为ff:ff:ff:ff:ff:ff,意思是所有的MAC地址全部包括。

第三行说明这是一个ARP请求包。

下面的区域以16进制显示了这个包中所有的42个字节。这里没有显示前导信息,帧起始定界符和FCS (因为我用的Windows系统不支持,Mac和Linux应该都可以捕捉到),所以以6字节的目标地址开头,然后是6字节的源地址 68:a3:c4:a2:c1:e7, 接着是2字节的类型0x0806, 也就是ARP协议的类型值,最后是数据字段的28个字节。

物理寻址

那么两个网卡是如何通过MAC地址来找到对方的呢?毕竟电信号又没长眼睛。有线网里的电流只会随着导体往前流动不是吗?

首先看看极端情况,两个网卡(两台电脑)直接连接的情形。这需要一种特殊的网线叫做以太网交叉线(Ethernet crossover cable)来实现。插上两张网卡后,网卡中Auto MDI-X技术就会自动识别网线的类型,同时知道这是两张网卡直连的情形了。

更普遍的情形是3张及以上的网卡(电脑)连成网络,形成局域网(LAN)。这时就需要额外的网络设备了。工作在链路层的设备交换机(Switch)就出场了:
交换机都有多个端口用以将多条网线连接起来。交换机内部的内存中有张MAC地址表,可以将多个MAC地址映射到其中一个端口上。所以交换机工作流程就是:

(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的; 如果这个MAC没有在表中,则它会更新表格;

(2) 再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;

(3) 如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;

(4) 如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。

用交换机可以组成局域网并在链路层工作。这个网络没有也不需要IP地址,因为MAC地址可以用来定位。计算机A在连入这个网络后,并不知道网络中还有哪些其他计算机,也不知道她们的MAC地址。这些需要人(网管)为地在网络应用程序里面设置好。当A知道MAC 12:34:56:78:9A:bc 地址是隔壁美女的电脑后,就可以对其发送信息了。

多台交换机可以互相联通形成更大的网络,假设交换机A收到消息后查询MAC地址表得知12:34:56:78:9A:bc对应着5号端口,于是将帧转发给5号端口,5号的网线连到另一台交换机B,她再查询MAC地址表继续转发,直到帧送达美女的计算机。

交换机各个端口之间是独立的,不共享带宽也不共享数据。相较于集线器,交换机更加高效,安全。

由交换机组成的网络叫做交换式网络

地址泛洪,也叫做广播风暴,是针对交换机工作机制的一种拒绝服务攻击手段。具体方法就是构造大量的帧,其中的源地址和目标地址都设置为不存在的MAC地址。这样交换机每次都无法在地址表中查询到条目,则会:

  1. 向整个网络不停地广播帧。
  2. 不停更新地址表中的源地址和端口对应关系,最终造成地址表空间全部用完。

网络层(Network Layer):

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。

在组建局域网时要先选定物理介质和链路层协议。但世界上那么多局域网,肯定会使用不同的介质和协议,比如有的是WIFI无线网而有的是有线以太网,有的有线网使用Ethernet V2协议而有的使用IEEE802.3等等。这些不同的网络就像是说不同语言的人群,互相如何通信呢?首先大家需要邮局来转发信件,其次大家要使用同一种语言。这里的邮局就是工作在网络层的设备路由器,而这同一种语言就是网络层协议(IP协议)。

假设WIFI网络里的A电脑想给另一个以太网里的B电脑发送信息,那么A首先要把信息发送给能够理解接收WIFI信号并理解WIFI协议的无线路由器,无线路由器再把消息转发给另一台懂得以太网协议的有线路由器,最后有线路由器把消息转发给B电脑。这个过程中,A电脑,两台路由器和B电脑都要使用IP协议中规定的格式来处理数据。

IP协议中的数据成为Datagram,中文译为数据报,真是个奇怪的名字。RFC791规定了IP协议的格式,如下图所示:
传输层(Transport Layer): 第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。 网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。

1> 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
2> 包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
3> 重要设备:网关。

会话层

会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。

表示层

表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。

应用层

为操作系统或网络应用程序提供访问网络服务的接口。
会话层、表示层和应用层重点:

1> 数据传输基本单位为报文;
2> 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。

本文的笔记及摘要出自:
写的超级好的!大神!⬅他没有更新完,我会自己理解后并将其续完的!

OSI七层网络模型详解!相关推荐

  1. OSI七层网络结构详解

    OSI模型的分层结构 OSI(Open System Interconnection),开放式系统互联参考模型 ,它把网络协议从逻辑上分为了7层.这7层分别为:物理层.数据链路层.网络层.传输层.会话 ...

  2. OSI七层模型详解物理层、数据链路层、网络层、传输层.....应用层协议

    OSI七层模型详解(物理层.数据链路层.网络层.传输层.....应用层协议与硬件) OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型 ...

  3. OSI七层模型详解——物理层

    在阅读本篇文章之前建议您了解信道及工作栈的基本原理,详情可以观看OSI七层模型详解--信道与协议栈 OSI模型概述 OSI全称为"Open System Interconnection&qu ...

  4. OSI七层参考模型详解

    原址 https://blog.csdn.net/qq_16093323/article/details/79582554 话不多说先上图! OSI七层模型基础知识及各层常见应用 目录 二. OSI基 ...

  5. 计算机网络发展与OSI七层模式详解

    计算机网络的发展 计算机网络最早产生于20世纪50年代初,随着计算机技术和通信技术的不断发展,计算机网络经历了从简单到复杂,从单机到多机的发展过程,计算机网络的演变过程到底是怎样的,往下看. 发展时间 ...

  6. OSI七层模型详解-开放系统互联参考模型详解

    原文链接:https://blog.csdn.net/yaopeng_2005/article/details/7064869 OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可 ...

  7. OSI七层模型详解 TCP/IP协议

    总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换, ...

  8. OSI 七层模型详解

    大家好,我是蛋蛋. 3T+技术学习视频资源,500+技术电子书,大量高效工具及网站,私信回复[资源]即可免费获取 ​ OSI(Open System Interconnect),即开放式系统互联. 一 ...

  9. 网络安全系列-十八: OSI七层模型详解

    什么是OSI七层模型? OSI七层模型:Open System Interconnect,全称开放系统互连参考模型,是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互 ...

最新文章

  1. Python3中raise用法
  2. AI一分钟 | Google因跟踪用户数据接受调查;iPhone XS真机图曝光
  3. python使用np.argsort对一维numpy概率值数据排序获取升序索引、获取的top索引(例如top2、top5、top10)索引二维numpy数组中对应的原始数据:原始数据概率最小的头部数据
  4. 编程那么苦,学习那么累,这组漫画可以治愈(慢慢品味)
  5. 悖论对计算机科学影响,引力波的发现对计算机科学有什么意义?
  6. 得到时间字符串|程序当前的目录
  7. html答题赚钱源码,WTS在线答题系统 v1.0.0
  8. python核心编程第六章练习6-12
  9. 面试官:熔断降级原理是什么?
  10. 管理小故事精髓 100例
  11. 使用Python获取键盘的输入
  12. 瀑布式项目管理软件测评!
  13. 【理解】特征值分解,理解+计算方法+代码+应用
  14. 热血江湖网通一服务器不稳定,《热血江湖》网通新服 千呼万唤始出来
  15. 重新定义RPA,重塑智能生产力 | 云扩科技RPA论坛成功举办
  16. 微信叫车系统|顺风车小程序|在线选座拼车订票APP【开发实战】
  17. RK3568-SPI
  18. 八位“Booth二位乘算法”乘法器
  19. 互联网家装是伪命题?
  20. 【python 字符判断】python 判断名字是否含有数字,英文字符和汉字

热门文章

  1. 神经网络学习(3)————BP神经网络以及python实现
  2. 一目了然——二叉树的遍历(先序,中序,后序遍历)
  3. 工欲善其事,必先利其器之—利用网上在线工具—多个地点Ping服务器以检测服务器响应情况
  4. 华为ensp模拟器及各设备镜像
  5. 【jQuery】基础知识梳理笔记
  6. 深度学习02-神经网络(MLP多层感知器)
  7. 如何更好的做线上引流
  8. 关于毕业求职的就业经验-写给我亲爱的校友们
  9. 2021春深入理解计算机系统大作业---hello的一生
  10. 学java难不难?java应该怎么学?