华为数通HCIA-网络参考模型(TCP/IP)

网络通信模式

作用:指导网络设备的通信;

OSI七层模型:

7.应用层:由应用层协议(http、FTP、Telnet.)为应用程序产生对应的数据;

6.表示层:将应用层产生的数据转换成网络设备看得懂的语言

5.会话层:为应用数据产生一个独立的会话,放置不同数据之间的相互干扰

4.传输层:为应用数据封装一层传输层头部,用于为数据提高传输服务;

TCP--可靠、传输效率慢;

UCP--不可靠、传输效率高;

文字、文件--采用TCP封装

语音、视频--采用UDP封装

3.网络层:为数据封装网络层头部:

封装sip以及dip;

sip:发送端的ip地址;

dip:目的端的ip地址;

2.数据链路层:为数据封装数据链路层头部

一般会封装smac、dmac;

smac:发送端的mac地址;

dmac接收端的mac地址;

1.物理层:将已经打包好的数据转换成适合在物理链路上进行传递的信号进行发送;

TCP/IP常见协议

应用层

HTTP(Hypertext Transfer Protocol,超文本传输协议):用来访问在网页服务器上的各种页面。

FTP(File Transfer Protocol,文件传输协议):为文件传输提供了途径,它允许数据从一台主机传送到另一台主机上。

DNS(Domain Name Service,域名称解析服务):用于实现从主机域名到IP地址之间的转换。

传输层

TCP (Transmission Control Protocol,传输控制协议) :为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。

UDP(User Datagram Protocol,用户数据报协议):提供了无连接通信,且不对传送数据包进行可靠性的保证。

网络层

IP(Internet Protocol,互联网协议):将传输层的数据封装成数据包并完成源站点到目的站点的转发,提供无连接的、不可靠的服务。

IGMP(Internet Group Management Protocol,因特网组管理协议):负责IP组播成员管理的协议。它用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

ICMP(Internet Control Message Protocol,网际报文控制协议):基于IP协议在网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈。通过这些信息,使管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

数据链路层

PPP(Point-to-Point Protocol,点对点协议):一种点对点模式的数据链路层协议,多用于广域网。

Ethernet( 以太网协议 ):一种多路访问广播型数据链路层协议,是当前应用最为广泛的局域网技术。

PPPoE(Point-to-Point Protocol over Ethernet,以太网承载PPP协议):PPPoE提供通过简单桥接访问设备(接入设备)把一个网络的多个主机连接到远程访问集中器的功能。常见的应用有家庭宽带拨号上网。

应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。
应用层的PDU被称为Data(数据)。

 TCP/IP每一层都让数据得以通过网络进行传输,这些层之间使用PDU(Packet Data Unit,协议数据单元)彼此交换信息,确保网络设备之间能够通信。
不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。

常见应用层协议 - FTP

FTP(File Transfer Protocol)是一个用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,它采用C/S(Client/Server)结构。

 常见应用层协议 - Telnet

Telnet是数据网络中提供远程登录服务的标准协议。 Telnet为用户提供了在本地计算机上完成远程设备工作的能力。

 用户通过Telnet客户端程序连接到Telnet服务器。用户在Telnet客户端中输入命令,这些命令会在服务器端运行,就像直接在服务端的控制台上输入一样。

常见应用层协议 - HTTP

HTTP(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

 传输层

传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。
传输层的PDU被称为Segment(段)。

网络层头部(ip头)

封装协议:ip协议

关键内容:

版本:v4、v6、默认为v4

TOS:服务类别,用于对流量进行分类,实现QOS;

分片字段:分片id、flags、偏移量;

分片:当网络设备需要发送的数据大小,超出了接口MTU(最大发送单元,默认为1500B)时,需要将数据分成若干个小的数据发送出去,接收端收到后进行重组;

分片id:用于标记一个数据是否为分片数据,如果是的话,分片id不为0;

flags:其中更多段位用于标识分片是否为最后一个分片,如果不是则为1,如果是则为0,当接收端收到flags位为0的分片时,即可开始进行重组;

偏移量:用于标识分片的重组顺序,以防分片在传输过程中,出现顺序互换,导致数据包错乱的情况,

eg:

4500B数据,分片1 1500B

2 1500B

3 1500B

偏移量: 0 1499 分片1

1500 2999 分片2

3000 4499 分片2

TTL (生存时间)

范围: 0~255,初始值为255;

作用: 1、标识数据包经过了多少台三层设备(路由器、三层交换机、防火墙);

2、防止数据包无限转发,

原理: 当一个数据包被发出时,TTL为255,每经过一台三层设备转发,就会减1

当数据包中的TTL被减为0时,失去被发送的资格;

协议号

作用: 用于标识上层协议类型,

可以实现设备在处理网络层头部时,得知上层协议类型,提前调用对应的协议出来处理数据:

TCP--6

UDP--17

sip:发送端的ip地址

dip:接受端的IP地址

TCP/IP

传输层协议

TCP(传输控制协议)

作用:为数据封装TCP头部,提供可靠的传输服务;

封装内容:

端口号;

定义:大小16bit,范围为0~65535,其中0~1023属于知名端口号,1024~65535属于自定义端口号;

作用:源端口号随机从自定义端口号中生成,没有特殊含义;

目的端口号用于标识上层协议;(http-80、FTP-20、21、telnet-23)

序列号、确认号;

控制位:常见SYN、ACK、FIN位,代表TCP的报文类型,比如SYN报文的SYN位=1;

window(窗口值):代表同一时间内,最多可以发送以及接收多大的数据,最多16bit;

可靠性机制

1、面向连接

当需要传输基于TCP的流量时,需要先建立TCP连接通道,通过三次握手的方式建立;

(1)主动端发送SYN报文给被动端,其中会携带随机生成的序列号(a),用于请求建立TCP连接

(2)被动端收到后,会产生一份SYN以及ACK同时置位的TCP报文,其中ack号为a+1,用于确认跟主动端建立连接,另外还会产生一个随机的序列号(b),用于请求被动端到主动端的TCP连接;

(3)主动端收到被动端的报文后,产生一份ACK报文,其中ack=b+1,用于对被动端向主动端的连接请求进行确认;

(4)被动端收到后,双向连接建立完成;

2、确认机制/重传机制

所有基于TCP的流量都会携带一个序列号,当设备发出一份基于TCP的流量后,必须收到对端的ACK报文进行确认,才会继续发送下一份,否则会进行重传;

3、流控机制/窗口滑动机制

作用:确保被发送出去的基于TCP的流量,不会因为双方的窗口值有差异,而出现丢包现象;

原理:被发送的TCP流量,会携带发送端的窗口值,如果接收端的窗口值,小于发送端的窗口值,则会在进行确认时,通过ack号以及window值告知发送端,发送端会根据接收端的窗口值,调整自己的发送窗口;

4、关闭连接

当需要停止传输TCP流量时,需要把第一步建立的TCP连接进行关闭,通过四次挥手的方式进行关闭;

(1)主动端发送FIN以及ACK位同时置位的TCP报文,其中序列号以及ack号均为随机产生的,假设序列号为a,ack号为b

(2)被动端收到后,先产生一份ACK报文,其中ack号为a+1,发送出去,用于确认关闭主动端到被动端的连接;

(3)被动端再产生一份FIN报文,其中序列号为b,发送出去,用于请求关闭被动端到主动端的连接;

(4)主动端收到后,产生ACK报文,其中ack号为b+1,发送出去,用于确认关闭被动端到主动端的连接;

至此,双向连接关闭成功;

特点:可靠性高、效率低下;

应用:适用于对丢包率要求较高的流量,如文本类流量;

UDP(用户数据包协议)

作用:为数据封装UDP头部,提供效率高的传输服务;

封装内容:主要就是端口号;

可靠性机制:无

特点:效率高、可靠性差;

应用:适用于语音、视频等一些对时延比较敏感、连续要求较高的流量;

TCPUDP 端口号

 客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;
源端口号一般为系统中未使用的,且大于1023;
目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80。

TCP的建立 - 三次握手

任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接

TCP连接建立的详细过程如下:
        由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;
        接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;
        PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1。PC2收到之后,TCP双向连接建立。

TCP的序列号与确认序列号

TCP 使用序列号和确认序列号字段实现数据的可靠和有序传输。 

假设PC1要给PC2发送一段数据,传输过程如下:
1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为“a+1”,第二个字节的序号为“a+2”,依次类推。
2. PC1会把每一段数据的第一个字节的编号作为序列号(Sequence  number),然后将TCP报文发送出去。
3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号( a+1 )+载荷长度=下一段数据的第一个字节的序号(a+1+12)
4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“a+1+12” ,说明“a+1”到“a+12”这一段的数据已经被接受,需要从“a+1+12”开始发送。
为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。
 

TCP的窗口滑动机制

TCP通过滑动窗口机制来控制数据的传输速率

 1. 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。
2. 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。
3. 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。
4. 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。
5. 发送方根据接收方当前的Window大小发送相应数量的数据。

TCP的关闭 - 四次挥手

当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。

TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。如图所示:
1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;
2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。
3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个FIN置位的TCP报文去关闭连接。
4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。

网络层

传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。
网络层的PDU被称为Packet(包)。

 IPv4( Internet Protocol Version 4),简称IP,是目前应用最广泛的网络层协议。

网络层协议工作过程

 

当采用IP作为网络层协议时,通信的双方都会被分配到一个“独一无二”的IP地址来标识自己。IP地址可被写成32位的二进制整数值形式,但为了方便人们阅读和分析,它通常被写成点分十进制的形式,即四个字节被分开用十进制表示,中间用点分隔,比如192.168.1.1。
IP数据包的封装与转发:
网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。
中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。
IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。
IP协议工作时,需要如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。


数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。
以太网(Ethernet)是最常见的数据链路层协议。

 以太网与MAC地址

 

MAC地址(物理地址)

 MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F

作用:唯一标识一张网卡(全球唯一)

特点:设备天生就有,并且无法后期更改;

格式:十六进制;

大小:48bit

分类:根据通信类型进行分类:

单播mac:用于唯一标识一张网卡,实现1对1通信,二进制角度的第8bit固定为0;

组播mac:用来标识一组设备,实现一对多通信,二进制角度的第8bit固定为1;

广播mac:用于实现1对所有通信,mac地址为F(十六进制角度),在二进制角度全为1

地址解析协议 (ARP)

ARP (Address Resolution Protocol)地址解析协议:
根据已知的IP地址解析获得其对应的MAC地址。

作用:
ARP是根据IP地址获取数据链路层地址的一个TCP/IP协议,从而完成数据封装。
ARP是IPv4中必不可少的一种协议,它的主要功能是:
将IP地址解析为MAC地址;
维护IP地址与MAC地址的映射关系的缓存,即ARP表项;
实现网段内重复IP地址的检测。

报文:

ARP层——数据链路层

ARP层:源ip、目标ip(target ip)、源mac、目标mac;

ARP缓存表

用于记录ip地址与mac地址的对应关系;

查看 终端——>arp -a

路由器、交换机——>display arp

arp工作过程

1、广播请求阶段;

当一台设备需要封装dmac时,先查看自身的arp缓存表中是否存在对应的mac地址,如果存在则直接完成封装,如果没有则发送ARP请求报文进行请求;

ARP请求

ARP层

sip:自己

tip:请求的对象的ip地址

smac:自己

tmac:空

数据链路层

smac:自己

dmac:全F(广播发送)

2、单播回应阶段:

当一台设备收到ARP请求后,拆除数据链路层头部,看到ARP层,判断目标ip是否为自己,如果不是,则直接丢弃,如果是,则执行以下操作:

(1)将ARP层中sip以及smac的对应关系学习进自身的ARP缓存表,供日后使用;

(2)将对端请求的mac地址填进ARP请求的目标mac中,然后产生ARP回应报文单播发送出去;

其中ARP层的sip、tip、smac、tmac为ARP请求的源目互换,数据链路层的smac以及dmac直接复制ARP层的,进行单播发送;

3、请求端收到ARP回应后,将ARP层的sip以及smac的对应关系学习进ARP缓存表中,完成数据封装;

免费ARP(特殊的ARP请求)

特点:ARP层的sip以及tip一致,均为自身的ip地址;

作用:检测ip地址的冲突性;

发送时机:当一台网络设备刚获取到一个新的ip地址时就会发送;

原理:当发出一个免费ARP后,如果收到回应,则说明ip地址存在冲突,则不能使用该ip;

物理层

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。
物理层的PDU被称为比特流(Bitstream)。
 

 常见传输介质

双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:
STP-屏蔽双绞线
UTP-非屏蔽双绞线
光纤传输,按照功能部件可分为:
光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。
光模块:将电信号与光信号互转的器件,产生光信号。
串口电缆在WAN(Wide Area Network,广域网)中大规模使用,根据WAN线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI接口等。
无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据传输。

中间网络数据传输

封装好的完整数据,将会在网络中被传递。
一般情况下:
网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。
网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。
注:“交换”和“路由”的详细细节和原则,将会在后面的课程中详细介绍。

 接收方数据解封装

5 应用层:相当于OSI模型中的5~7层的功能; data

4 传输层 段

3 网络层 包

2 数据链路层 帧

1 物理层 bit流

数据发送:将应用层产生的数据,基于TCP/IP五层模型,由上往下进行逐层的封装,然后发送出去的过程

数据接收:网络设备收到数据后,进行基于TCP/IP五层模型,由下往上逐层解除封装,直至看到应用层数据为止的过程

数据转发:数据从发送端发出,到接收端之间,经过的网络设备负责将数据进行转发

其中路由器工作在网络层,根据网络层头部进行转发;

交换机工作在数据链路层,根据数据链路层头部进行转发;

 

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

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

相关文章

C语言文件io操作

一、fopen 在C语言中&#xff0c;操作文件之前应该先打开文件。使用<stdio.h>头文件中的fopen()函数可以打开文件&#xff0c;因为FILE也是结构体&#xff0c;我们通过返回一个文件指针就可以对文件进行操作。在用完fopen之后要记得关闭该文件流。 用法&#xff1a; F…

【多模态】20、OVR-CNN | 使用 caption 来实现开放词汇目标检测

文章目录 一、背景二、方法2.1 学习 视觉-语义 空间2.2 学习开放词汇目标检测 三、效果 论文&#xff1a;Open-Vocabulary Object Detection Using Captions 代码&#xff1a;https://github.com/alirezazareian/ovr-cnn 出处&#xff1a;CVPR2021 Oral 一、背景 目标检测数…

Redis系列一:介绍

介绍 The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. 相关资源 Redis 官网&#xff1a;https://redis.io/ 源码地址&#xff1a;https://github.com/redis/redis Redis 在线测试&#…

学习使用axios,绑定动态数据

目录 axios特性 案例一&#xff1a;通过axios获取笑话 案例二&#xff1a;调用城市天气api接口数据实现天气查询案例 axios特性 支持 Promise API 拦截请求和响应&#xff08;可以在请求前及响应前做某些操作&#xff0c;例如&#xff0c;在请求前想要在这个请求头中加一些…

springboot 整合tx-mybaits 实现crud操作

一 操作案例 1.1 工程结构 1.2 pom文件的配置 <!--spring boot的依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId…

【机器学习】Multiple Variable Linear Regression

Multiple Variable Linear Regression 1、问题描述1.1 包含样例的X矩阵1.2 参数向量 w, b 2、多变量的模型预测2.1 逐元素进行预测2.2 向量点积进行预测 3、多变量线性回归模型计算损失4、多变量线性回归模型梯度下降4.1 计算梯度4.2梯度下降 首先&#xff0c;导入所需的库 im…

Reinforcement Learning with Code 【Code 1. Tabular Q-learning】

Reinforcement Learning with Code 【Code 1. Tabular Q-learning】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation o…

Windows 10 中无法最大化任务栏中的程序

方法1&#xff1a;仅选择选项 PC 屏幕 如果您使用双显示器&#xff0c;有时这可能会发生在您的 1 台计算机已插入但您正在访问的应用程序正在另一台计算机上运行的情况下&#xff0c;因此您看不到任何选项。因此&#xff0c;请设置仅在主计算机上显示显示的 PC 屏幕选项。 第…

搭建自己第一个golang程序

概念&#xff1a; golang 和 java有些类似&#xff0c;配置好环境就可以直接编写运行了&#xff1b;这里分两种&#xff1a; 一.shell模式 创建一个go类型的文件 往里面编写代码 二.开发工具模式 这里的开发工具 我选用goland package mainimport "fmt"func mai…

Ubuntu 20.04.4 LTS安装Terminator终端(Linux系统推荐)

Terminator终端可以在一个窗口中创建多个终端&#xff0c;并且可以水平、垂直分割&#xff0c;运行ROS时很方便。 sudo apt install terminator这样安装完成后&#xff0c;使用快捷键Ctrl Alt T打开的就是新安装的terminator终端&#xff0c;可以使用以下方法仍然打开ubuntu默…

【数据结构】实验四:循环链表

实验四 循环链表 一、实验目的与要求 1&#xff09;熟悉循环链表的类型定义和基本操作&#xff1b; 2&#xff09;灵活应用循环链表解决具体应用问题。 二、实验内容 题目一&#xff1a;有n个小孩围成一圈&#xff0c;给他们从1开始依次编号&#xff0c;从编号为1的小孩开…

Prometheus中的关键设计

1、标准先行&#xff0c;注重生态 Prometheus 最重要的规范就是指标命名方式&#xff0c;数据格式简单易读。比如&#xff0c;对于应用层面的监控&#xff0c;可以要求必须具备这几个信息。 指标名称 metric Prometheus 内置建立的规范就是叫 metric&#xff08;即 __name__…

ICMP协议(网际报文控制协议)详解

ICMP协议&#xff08;网际报文控制协议&#xff09;详解 ICMP协议的功能ICMP的报文格式常见的ICMP报文差错报文目的站不可达数据报超时 查询报文回送请求或回答 ICMP协议是一个网络层协议。 一个新搭建好的网络&#xff0c;往往需要先进行一个简单的测试&#xff0c;来验证网络…

小白到运维工程师自学之路 第六十集 (docker的概述与安装)

一、概述 1、客户&#xff08;老板&#xff09;-产品-开发-测试-运维项目周期不断延后&#xff0c;项目质量差。 随着云计算和DevOps生态圈的蓬勃发展&#xff0c;产生了大量优秀的系统和软件。软件开发人员可以自由选择各种软件应用环境。但同时带来的问题就是需要维护一个非…

spring-authorization-server (1.1.1)自定义认证

前言 注意&#xff1a;我本地没有生成公钥和私钥&#xff0c;所以每次启动项目jwkSource都会重新生成&#xff0c;导致之前认证的token都会失效&#xff0c;具体如何生成私钥和公钥以及怎么配置到授权服务器中&#xff0c;网上有很多方法自行实现即可 之前有个项目用的0.0.3的…

Vue(待续)

概念 一套用于构建用户界面的渐进式JavaScript框架 Vue可以自底向上逐层的应用&#xff1a; 简单应用:只需一个轻量小巧的核心库。 复杂应用:可以引入各式各样的Vue插件。 1.采用组件化模式&#xff0c;提高代码复用率、且让代码更好维护。 2.声明式编码&#xff0c;让编码人员…

【设计模式——学习笔记】23种设计模式——装饰器模式Decorator(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 生活案例咖啡厅 咖啡定制案例 装饰者模式介绍介绍出场角色 案例实现案例一&#xff08;咖啡厅问题&#xff09;类图代码实现咖啡样式拓展代码实现 案例二类图代码实现 装饰着模式在IO流源码的应用总结什么是父类和子类的一致性如何让自己和被委托对象有一致性 文章说明…

深度学习和神经网络

人工神经网络分为两个阶段&#xff1a; 1 &#xff1a;接收来自其他n个神经元传递过来的信号&#xff0c;这些输入信号通过与相应的权重进行 加权求和传递给下个阶段。&#xff08;预激活阶段&#xff09; 2&#xff1a;把预激活的加权结果传递给激活函数 sum :加权 f:激活…

【Linux】UDP协议

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《学会Linux》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录 &#x1f449;传输层&a…

Mysql的锁

加锁的目的 对数据加锁是为了解决事务的隔离性问题&#xff0c;让事务之前相互不影响&#xff0c;每个事务进行操作的时候都必须先加上一把锁&#xff0c;防止其他事务同时操作数据。 事务的属性 &#xff08;ACID&#xff09; 原子性 一致性 隔离性 持久性 事务的隔离级别 锁…