因特网包含大量的软硬件系统,以及大量的应用程序和协议,各种类型的端系统、分组交换机,分层的好处如下:
1.各层之间相互独立、相关隔离。每层只考虑当前层如何实现,无需考虑其他层
2.提高整体结构的灵活性,层次之间结构解耦合
3.大问题变小,复杂问题变简单
(uniform resource xxx)
uri(identifier) 统一资源标识符
url(location) 统一资源定位符,指绝对路径
urn(name) 统一资源名
三者之间关系为, url 和 urn 分别是 URI 的子集
假设一个主机上的一个应用向另一个主机的一个应用发送数据:
1.在发送数据的主机端,应用层报文被传送到传输层。
2.传输层收取到报文并附上附加信息,该首部被接收端的传输层使用。
3.应用层报文和传输层首部信息共同构成了传输层报文段。
附加的信息可能包括:允许接收端的传输层向适当的应用程序交付报文的信息以及差错检测位信息。该信息让接收端能够判断报文中的比特是否在途中已被改变。
4.传输层向网络层传递该报文段,网络层增加了网络层首部信息,生成网络层数据报文。
5.该数据报文被传递给链路层,在数据链路层添加发送端 MAC 地址和接收端 MAC 地址后被封装成数据帧。
6.在物理层数据帧被封装成比特流,之后通过传输介质传送到对端。
在接收数据的主机端,整个过程相反
1. 查询递归:当用户在浏览器中输入一个域名时,操作系统首先会向本地DNS解析器发出查询请求。如果本地解析器没有缓存该域名对应的IP地址,则会进行递归查询。
2. DNS递归解析:本地DNS解析器向根域名服务器发送查询请求,根域名服务器返回顶级域名服务器的地址。
3. 顶级域名解析:本地解析器向顶级域名服务器发送查询请求,顶级域名服务器返回该域名的权威域名服务器的地址。
4. 权威域名解析:本地解析器向权威域名服务器发送查询请求,权威域名服务器返回该域名对应的IP地址。
5. 结果返回:本地解析器将获取到的IP地址返回给操作系统,操作系统将其缓存,并将IP地址返回给浏览器,使浏览器可以与目标服务器建立连接。
主要解析过程:
dns 解析:访问一个网站时,浏览器获得一个域名,通过 dns 服务将域名解析为 ip 地址。
tcp 连接:向 Web 服务器发起 tcp 连接请求。
发送 http 请求:浏览器向 Web 服务器发起http 请求,http 协议建立在 tcp 协议上的应用层协议,其本质是在建立起的 tcp连接中,按照 http 协议标准发送一个索要网页的请求。
处理请求并返回:服务器获取到客户端的 http 请求后,会根据请求中的内容来决定如何获取相应的文件,并将文件发送给浏览器。
浏览器渲染:浏览器根据响应开始显示页面,首先解析 html 文件构建 DOM 树,然后解析 CSS 文件构建渲染树,等渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。
断开连接:客户端和服务器断开连接。
浏览器缓存 -> DNS 域名解析 -> URL 编码 -> 使用 HTTP 或者使用 HTTPS 协议发送请求 ->
CDN:内容分发网络 OSS:操作支持系统
对于访问静态资源的 HTTP 请求:CDN -> CDN 回源到对象存储 OSS 或者源服务器
对于访问动态资源的 HTTP 请求:负载均衡器 Nginx -> 应用服务器【API 网关(Zuul、GateWay 等)-> 内部服务(微服务,Controller、Service、DAO)】-> 缓存系统(Redis、EhCache 等) -> 存储系统(MySQL、PostgreSQL、MongoDB 等)
通用头部:请求和响应都可以使用的头部
Connection:浏览器想优先使用的连接类型
Date:构建报文时间
Cache-Control:是否使用缓存机制
请求头部:只能在请求中使用的头部
Host:端口号
User-Agent:身份识别字符串
Accept:允许的媒体类型
Accept-Charset:允许的字符串
Authorization:认证资源的认证信息
响应头部:只能在响应中使用的头部
Server:客户端服务器信息
Vary:缓存机制
Location:重定向后的URL
Retry-After:客户端多久后再发请求
实体头部:应对实体部分的头部。一般对实体内容进行说明
Content-encoding/length/language/MD5/Type
编码方式、长度、语言、MD5校验值、MIME类型
扩展头部
http报文格式
HTTP的请求报文包括:请求行、请求头部、空行 和 请求数据四个部分组成
请求行包括: 请求方法,URL,协议版本
HTTP的响应报文包括:状态行,响应头,空行,数据(响应体)
状态行包括:HTTP版本号,状态码,状态值
GET(读取数据具体信息)
HEAD(获取报头)
POST(向指定资源提交数据,数据被包含在请求体里) eg.提交表单、上传文件
PUT(替换指定资源,没有就新增)
DELETE(请求服务器删除URL标识的数据)
CONNECT(服务器作为代理,代替用户访问)
OPTIONS(得到指定资源的HTTP请求方法)
PATCH(对已知资源进行局部更新)
TRACE(服务器返回自己收到的数据,用于测试和诊断)
电梯直达
http://t.csdn.cn/dMrOL
1.get请求参数会以 url 的形式保留在浏览器的记录里,存在安全问题。
post 数据放在请求主体body中,数据不会被浏览器记录。
总结:get 方法对于服务器更安全,post 方法对于客户端更安全。
2.post 可以进行复杂的加密,get 不可以。
3.get 只支持 ASCII 字符格式的参数, post 方法没有限制。
4.get 提交的数据大小有限制,post 方法提交的数据理论上没限制。
5.get 方法具有幂等性,post 方法不具有。
幂等性:同样的请求被执行一次与连续执行多次的效果一样,服务器状态也一样。
6.post方法有时会发送两个 tcp 数据包(先发送 Header 再发送 Data),与浏览器有关(火狐)。
GET 方法 Header 和 Data 一起发送。
http 使用过程中存在安全性问题
使用明文通信,内容可能会被窃听
不验证通信方的身份,通信方的身份有可能遭遇伪装
无法证明报文的完整性,报文有可能遭篡改
https通过 ssl安全套接层 或tls安全传输层协议 的方式使 http 变成了安全的 https
http 数据发送时 request 直接通过 tcp 发送;数据接收时,tcp 接收的数据作为 response
https数据发送时 request 通过 ssl/tls 进行处理,然后再通过 tcp 进行发送;数据接收时,同样也是要通过 ssl/tls 进行处理。相当于在应用层 http 和传输层 tcp 之间多加了一步处理
https会数据加密,数字证书认证,通过 ssl/tls 报文摘要功能检验报文完整性
加密过程详解:http://t.csdn.cn/s2FMN
对称加密:加密和解密使用同一密钥
非对称加密:公钥加密,私钥解密
可以通过非对称加密,传输对称加密所需的密钥,使用密钥进行通信加密(存在第一步发送方获取的公开密钥可能被篡改,利用数字证书解决)
使用数字证书机构的公开密钥验证数据和数字签名是否合法,可以验证通信方身份和实现安全加密
一般通过客户端轮训服务端,客户端不断向服务器发起请求,这样会占用大量资源且效率低下。Websocket是web浏览器与web服务器之间全双工通信标准,即双向同时传输
http 0.9:没有正式标准确立,相当于http 1.0的前身
http 1.0:第一个正式版本
http 1.1:
文本传送
客户端需要使用多个连接才能实现并发和缩短延迟
支持虚拟主机不会压缩请求和响应首部
不支持有效的资源优先级
http 2.0:
二进制传送
支持多路复用
头部压缩
支持服务器推送
http 1.1:文本传送。默认长连接,支持流水线,支持同时打开多个 TCP 连接,
客户端需要使用多个连接才能实现并发和缩短延迟。
支持虚拟主机,新增状态码 100,支持分块传输编码,新增缓存处理指令 max-age。
不会压缩请求和响应首部,占用不必要的网络流量。
不支持有效的资源优先级,底层 TCP 连接的利用率低。
http 2.0:二进制传送。客户端和服务器传输数据时把数据分成帧,帧组成了数据流,流具有流 ID 标识和优先级,通过优先级以及流依赖能够一定程度上解决关键请求被阻塞的问题。支持多路复用。因为流 ID 的存在,同一个 http 请求可以实现多个 http 请求传输,客户端和服务器可以通过流 ID 来标识是哪个流,从而定位到是哪个 http 请求。
头部压缩。通过 gzip 和 compress 压缩头部,然后再发送,同时通信双方会维护一张头信息表,所有字段都记录在这张表中,在每次 http 传输时只需要传头字段在表中的索引即可,大大减小了重传次数和数据量。
支持服务器推送。 服务器在客户端未经请求许可的情况下,可预先向客户端推送需要的内容,客户端在退出服务时可通过发送复位相关的请求来取消服务端的推送。
http 3.0:是在 quic 基础上发展起来的,其底层使用 udp 进行数据传输,上层仍然使用 http/2.0。在 udp 与 http/2.0 之间存在一个 quic 层,其中 tls 加密过程在该层进行处理。
http/3.0 主要有以下几个特点:
使用 UDP 作为传输层进行通信。
在 UDP 之上的 QUIC 协议保证了 HTTP/3 的安全性。QUIC 在建立连接的过程中就完成了 TLS 加密握手。
建立连接快,正常只需要 1 RTT 即可建立连接。如果有缓存之前的会话信息,则直接验证和建立连接,此过程 0 RTT。建立连接时,也可以带有少量业务数据。
不和具体底层连接绑定,QUIC 为每个连接的两端分别分配了一个唯一 ID,上层连接只认这对逻辑 ID。网络切换或者断连时,只需要继续发送数据包即可完成连接的建立。
使用 QPACK 进行头部压缩,因为 在 HTTP/2 中的 HPACK 要求传输过程有序,这会导致队头阻塞,而 QPACK 不存在这个问题。
确认双方得知,双方都没有要传输的数据
第一次挥手:客户端向服务端请求关闭连接
第二次挥手:服务端收到客户端的请求,并且告知客户端等我处理完毕数据
第三次挥手:服务端处理完毕数据,告知客户端,服务端数据处理完毕
第四次挥手:客户端得知服务端数据处理完毕,双方数据都处理完毕,可断开连接
四次挥手的问题:
如果四次挥手的过程中出现问题,客户端和服务端都可能在一段时间内处于半连接状态,此时无法开启新的连接。如果大量连接都处于这种状态,将会浪费大量连接资源。可以根据具体情况,修改系统内核参数,减少处于这种状态的时间。
四次挥手后,客户端要等待2MSL时间,因为要确认服务端收到了第四次挥手,如果服务端没有收到第四次挥手,就会重新发送第三次挥手,此时客户端再次发送第四次挥手,等待2MSL时间,如果2MSL 时间没收到,则认为服务端收到了请求。
确认客户端和服务端都可以正常发送接收数据
第一次握手:确认客户端可以正常发送数据
第二次握手:确认客户端可以正常发送数据,确认服务端可以正常接收数据
第三次握手:确认客户端可以正常发送+接收数据,确认服务端可以正常接收+发送数据
握手/挥手失败会触发超时重传机制
握手 |
客户端 |
服务端 |
第一次握手 |
客户端发送SYN报文后,进入SYN-SENT状态,等待接收第二次握手。如果在一定时间内没有收到第二次握手,客户端会触发超时重传机制,重新发送SYN报文。 | 服务端没有任何感知,一直处于LISTEN状态。 |
第二次握手 |
服务端收到第一次握手后进入SYN-RECEIVED状态,等待接收客户端的第二次握手。 |
如果在一定时间内没有收到第二次握手,服务端会触发超时重传机制,重新发送第二次握手请求。 |
第三次握手 |
客户端处于ESTABLISHED状态,等待服务器发送数据。 | 如果服务端在超时后没有收到第二次握手,会再次发送第二次握手请求,直到建立成功或达到最大重试次数。 |
挥手 |
客户端 |
服务端 |
第一次挥手 |
第一次挥手失败,客户端触发超时重传机制,再次发送请求,直到发送成功。如果发送次数到达上限仍然失败,直接关闭连接。 |
无任何感知 |
第二次挥手 |
如果在超时重传的过程中仍然失败,客户端直接关闭连接。 | 无任何感知 |
第三次挥手 |
客户端处于FIN-WAIT2状态一段时间后关闭连接。 | 服务端等待一段时间后继续进行挥手或超时后主动关闭连接。 |
第四次挥手 |
在第三次挥手失败的情况下,客户端和服务端无法感知挥手失败。 |
因为客户端不知道服务端是否能收到ACK应答数据包,服务端如果没有收到ACK,会进行重传FIN,考虑最坏的一种情况:第四次挥手的ACK包的最大生存时长(MSL)+服务端重传的FIN包的最大生存时长(MSL)=2MSL
确保被动关闭TCP连接的一端能收到第四次挥手的ACK
避免上一次TCP连接的数据包影响到下一次的TCP连接
注:MSL是报文最大生存时间,可为30s,1min或2min。如果超过这个时间,这个TCP报文就会被丢弃。2MSL,即两个最大报文段生存时间。
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,即在收发数据前,必须和对方建立可靠的连接(三次握手)。
UDP(User Datagram Protocol,用户数据报协议)是一个面向无连接的协议,它以数据报(Datagram)的形式传输数据。在传输数据之前,源端和终端不需要建立连接。
UDP的信息头部为8个字节,TCP的头部为20个字节。
UDP使用 "尽最大努力交付" 的方式,导致了UDP不保证可靠交付。
1. 数据分块和编号:
TCP确实会将数据分割为适合发送的数据块,这些数据块被称为TCP段。每个TCP段都有自己的序列号,用于在接收端进行数据整理。
接收方会发送确认应答(ACK报文),其中包含对应的确认序列号,用于通知发送方已成功接收到哪些数据。
如果数据丢失或发送重复的情况发生,接收方可以根据序列号来组装数据块和删除重复数据,要求发送方重新发送丢失的数据块。
2. 校验和:
TCP和UDP都使用校验和来验证数据在传输过程中是否发生了错误。发送方计算校验和并将其添加到数据包中,在接收方进行校验时,如果检测到校验和错误,则丢弃该数据包。
3. 流量控制:
TCP使用滑动窗口协议来进行流量控制,确保发送方发送的数据不超过接收方的处理能力。接收方通过通知发送方可用的接收窗口大小来控制发送速率。
4. ARQ协议、超时重传和拥塞控制:
TCP使用自动重传协议(Automatic Repeat Request,ARQ)来实现可靠的数据传输。当发送方发出一个TCP段后,它会启动一个定时器,如果定时器超时仍未收到确认,发送方就会重新发送该段。
TCP还采用拥塞控制算法,包括慢开始、拥塞避免、快重传和快恢复机制。这些算法旨在检测和避免网络拥塞,通过动态调整发送速率和拥塞窗口大小来保持网络的稳定性和高效性。
TCP 报文是 TCP 传输的的数据单元,也叫做报文段
TCP报文由首部和数据两部分组成。数据部分是可选的,即TCP报文可以不包含数据(IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。
1、源端口号
源端口字段包含初始化通信的端口号。源端口和IP地址的作用是标识报文的返回地址。
2、目的端口号
目的端口字段定义传输的目的,指明接收方计算机上的应用程序接口。
3、序列号
用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。
4、确认号
TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。确认号的字段只在ACK标志被设置时才有效。
5、首部长度
长度为4位
6、保留位
长度为6位,必须是0,它是为将来定义新用途保留的。
7、标志
长度为6位, 6位从左到右依次为:
• URG:紧急标志位,说明紧急指针有效;
• ACK:确认标志位,多数情况下空,说明确认序号有效; 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。
• PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层;
• RST:复位标志,用于重建一个已经混乱的连接,用来复位产生错误的连接,也会用来拒绝错误和非法的数据包。
• SYN:同步标志,该标志仅在三次握手建立TCP连接时有效
• FIN:结束标志,表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。
8、窗口大小
TCP流量控制由连接的每一端通过声明的窗口大小来提供。
9、检验和
该字段覆盖整个TCP报文端,是个强制性的字段,是由发送端计算和存储到接收端后,由接收端进行验证。
10、紧急指针
指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。
11、选项
长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小、窗口扩大选项、时间戳选项、选择性确认等。
12、数据
可选报文段数据部分。
源端口:
发送数据报的应用程序所使用的 udp 端口
目的端口:
接收端计算机上 udp 软件使用的端口
长度:
表示 udp 数据报长度,包含 udp 报文头和 udp 数据长度。因为数据包越大,丢包率越高,所以传输标准将这个数据包的大小限制的更小一点。
校验值:
可以检验数据在传输过程中是否被损坏
定义:IP指网际互连协议(Internet Protocol),是 TCP/IP 体系中的网络层协议
主要作用:是在网络中提供分组交换的服务,它负责将数据分割为适当的数据包(称为数据报),并将这些数据包从源主机发送到目标主机。IP协议使用IP地址来标识不同主机和网络之间的通信。
IP协议提供以下功能:
1. 简单灵活:IP协议提供了灵活的分组交换机制,使得在网络中传输的数据可以按照不同的路径和方式进行传递。
2. 无连接:IP协议是一种无连接的协议,在数据传输之前不需要建立连接状态。
3. 尽最大努力交付:IP协议通过 “尽最大努力交付” 的方式传输数据,但不保证数据的可靠性和顺序。这意味着IP协议不提供重传、确认和流量控制等机制,因此数据在传输过程中可能会出现丢失、乱序或重复。
4. 路由选择:IP协议使用路由选择算法确定数据在网络中的传输路径,使得数据能够跨越多个网络节点进行传递。
5. IP地址:IP协议使用IP地址来标识网络中的主机和设备,IP地址由一系列数字组成,用于唯一标识每个设备。
1. IPv6协议:IPv6(Internet Protocol version 6)采用128位的地址空间,相比IPv4的32位地址空间大大增加了地址数量。
2. NAT(Network Address Translation):NAT将一个公有IP地址与多个私有IP地址进行映射,使得多个设备可以共享一个公有IP地址上网。可以有效减少对公有IP地址的需求,提高IPv4地址的利用率。
3. 子网划分和地址分配策略:通过合理划分子网,并采用有效的地址分配策略,可以更有效地利用现有的IPv4地址。例如,使用CIDR(无类型域间选路)可以实现更精细的地址划分和分配。
4. IP地址重用:合理管理IPv4地址资源,避免浪费。当一个设备释放了一个IPv4地址时,可以及时将该地址重新分配给其他需要的设备,避免资源的浪费。
5. IPv6和IPv4的双协议栈支持:在过渡期间,可以同时支持IPv4和IPv6协议栈,以便兼容和过渡到IPv6网络,同时保证IPv4地址的有效利用。
ICMP(internet control message protocol)
因特网控制报文协议
该协议不传输数据,只传输控制信息来辅助网络层通信。
其主要的功能是验证网络是否畅通(确认接收方是否成功接收到 IP 数据包)以及辅助 IP 协议实现可靠传输(若发生 IP 丢包,ICMP 会通知发送方 IP 数据包被丢弃的原因,之后发送方会进行相应的处理。)
ping 和 traceroute 都是通过ICMP协议实现的。
ping(packet internet groper):因特网包探测器,是一种工作在网络层的服务命令,主要用于测试网络连接质量。
traceroute:用来跟踪一个分组从源点耗费最少 TTL到达目的地的路径。
MAC(media access control)地址,也称为局域网地址,以太网地址或物理地址。
用来确认网络设备位置的地址:在 OSI 模型中,网络层负责 IP 地址,数据链路层则负责 MAC 地址。IP 地址用来区别网络上的计算机。
互联网中主机之间相互传递数据的逻辑是,先通过 ip 地址找到对应的局域网,然后再找到对应的主机。
如果只采用 ip 地址,不用mac 地址:不安全,同一个ip 地址可能绑定多个主机,而无论何时mac 地址和主机是一一对应的。
如果只采用mac 地址,不用ip 地址:没法使用ip 通过网段寻找目标主机,需要在全网段内没有规律的找一个主机,效率慢。
封装成帧:将网络层传的分组添加首部和尾部,用于标记帧的开始和结束。
透明传输:帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
差错检测:数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。
物理层确保原始的数据可在各种物理媒体上传输。
单工通信:单向通信,发送方和接收方是固定的,消息只能单向传输。
例如采集气象数据、家庭电费,网费等数据收集系统,打印机等应用主要采用单工通信。
半双工通信:也叫双向交替通信,通信双方都可以发送消息,但同一时刻同一信道只允许单方向发送数据。例如传统的对讲机使用的就是半双工通信。
全双工通信:也叫双向同时通信,全双工通信允许通信双方同时在两个方向上传输,其要求通信双方都具有独立的发送和接收数据的能力。例如打电话。
因为在一般情况下,通信信道带宽远远大于用户所需的带宽,使用信道复用技术可以提高信道利用率,共享信道资源,降低网络成本。
频分复用 (FDM,Frequency Division Multiplexing)
将信道的总带宽划分为多个独立的子带宽,并将不同的信号分配到不同的子带宽中进行传输。每个子带宽可以看作是一个独立的信道。广泛应用于无线通信、有线电视等领域。
时分复用 (TDM,Time Division Multiplexing)
将时间分为若干个时隙,将不同信号分配到不同的时隙中进行传输。每个时隙可以看作是一个独立的信道。可以应用于有线和无线通信系统,如电话系统、数字信号传输等。
码分复用 (CDM,Code Division Multiplexing)
又称为码分多址(CDMA,Code Division Multiple Access),它通过使用不同的码片序列对信号进行编码和解码,实现信号在同一信道上的同时传输。码分复用具有抗干扰能力强、频谱利用率高等特点,广泛应用于移动通信、卫星通信等领域
波分复用 (WDM,Wavelength Division Multiplexing)
主要应用于光纤通信,通过将光信号分为不同的波长进行传输,实现在同一光纤中同时传输多路信号。可以大大提高光纤的传输容量,降低传输成本。
DoS(Denial of Service,拒绝服务) 攻击和 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击都是网络安全领域常见的攻击手段。它们的目的是通过消耗目标系统的资源(如带宽、处理能力、内存等),使目标系统无法正常提供服务。
1.DoS 攻击:通常由单个攻击者发起,通过向目标系统发送大量请求或特制的恶意数据包,使目标系统的资源耗尽,从而导致正常用户无法访问目标系统。常见的 DoS 攻击类型包括 SYN Flood、ICMP Flood、UDP Flood 等。
DoS 攻击的缺点是攻击者的IP 地址容易被识别,从而受到追踪和制裁。
2.DDoS 攻击:是 DoS 攻击的一种升级形式,它利用多个受控制的计算机(僵尸网络)同时发起攻击,使攻击更难以防御和追踪。DDoS 攻击可以同时从多个方向消耗目标系统的资源,导致目标系统瘫痪。由于涉及的攻击来源众多,DDoS 攻击的防御难度要大于DoS 攻击。
防御 DoS 和 DDoS 攻击的方法包括:
1.限制单个 IP地址的请求速率。
2.使用防火墙、入侵检测系统(IDS)和入侵预防系统(IPS) 等安全设备。
3.采用负载均衡技术分散请求压力。
4.与互联网服务提供商(ISP)合作,进行流量清洗和封锁恶意IP 地址。
攻击者通过伪造 ARP
请求和应答报文,使目标设备与网络中其他设备之间的通信受到干扰,从而达到窃取、篡改数据或拒绝服务的目的
AES:对称加密算法,即加密和解密使用相同的密钥。AES 的加密过程包括多轮的重复操作,包括置换、替换、行移位和列混合等。AES算法具有较高的安全性和运算效率,广泛应用于保护数据的机密性。
RSA:非对称加密算法,即加密和解密使用一对不同的密钥,公钥加密,私钥解密。RSA 算法的安全性基于大数分解问题。RSA 算法用于保护数据的机密性、确保数据的完整性和实现数字签名等功能。
AES 和 RSA 的主要区别如下:
1.AES 是对称加密算法,加密和解密使用相同的密钥。
RSA 是非对称加密算法,加密和解密使用不同的密钥。
2.效率:AES 加密和解密的运算速度较快,消耗资源较少;
RSA 算法涉及大数计算,运算速度较慢,消耗资源较多。
3.应用场景:AES 适用于加密大量数据,如文件加密、网络通信加密等;
RSA 常用于加密较小的数据,如密钥交换、数字签名等。
在安全通信中,先使用 RSA 算法交换 AES 密钥,然后使用 AES 密钥加密通信数据,实现高效且安全的数据传输。