当前位置: 首页 > news >正文

【计算机网络-自顶向下方法】应用层(SMTP、POP3、DNS)

目录

      • 1. Electronic Mail
        • 电子邮件应用画像
        • 1.1 电子邮件系统
        • 1.2 邮件报文格式
        • 1.3 邮件访问
      • 2. DNS(Domain Name System)
        • 2.1 DNS提供的服务
        • 2.2 DNS工作机理
        • 2.3 DNS资源记录
        • 2.4 DNS协议,报文
        • 2.5 小结

1. Electronic Mail

电子邮件应用画像
  • 应用层传输对象:邮件
  • 网络应用架构:客户-服务器架构
  • 使用传输服务:TCP
  • 应用层协议:
    • 邮件传输协议:SMTP(端口号25)
    • 邮件访问协议:POP3(端口号110),IMAP(端口号143),HTTP(端口号80)
  • SMTP、POP3、IMAP采用命令/响应交互
1.1 电子邮件系统

最初由三个部分组成:

  • 用户代理
  • 邮件服务器
  • 简单邮件传输协议

用户代理

  • 编辑、阅读、回复邮件等。
  • 将要外发的邮件发送到用户的邮件服务器。
  • 从用户邮箱中取邮件。
  • 一些用户代理:Outlook, elm, Mozilla, Thunderbird

邮件服务器

  • 用户信箱:存放到来的邮件。
  • 发送报文队列:存放要发送出去的邮件。
  • 报文传输代理MTA:运行在服务器后台的系统守护进程,负责在邮件服务器之间传输邮件,即将收到的邮件放入用户信箱。

电子信箱

  • 电子信箱:
    • 由计算机上的一个存储区域(如磁盘上的一个文件)组成。
    • 每个信箱均被分配了唯一的电子邮件地址。
  • 电子邮件地址:
    • 由两个部分组成,形如:mailbox@computer。
    • 前者为标识用户信箱的字符串,后者为信箱所在的邮件服务器的名字。

简单邮件传输协议–SMTP [RFC 2821]

  • 邮件服务器之间传输邮件采用客户-服务器模式:
    • 客户: 发送邮件的邮件服务器(报文传输代理)
    • 服务器: 接收邮件的邮件服务器(报文传输代理)
  • SMTP使用TCP协议,服务器端口为25
  • 发送方和接收方的邮件服务器之间直接传输邮件
  • SMTP采用命令/响应交互方式:
    • 命令: ASCII文本
    • 响应: 状态码和短语
  • 报文只能包含简单ASCII文本,即7位ASCII码(最初仅为英文电子邮件而设计)

邮件发送示例Scenario: Alice sends message to Bob

  1. Alice使用用户代理编辑邮件,发送给bob@someschool.edu
  2. Alice的用户代理将报文发送给其邮件服务器(使用SMTP)。
  3. 邮件被置于邮件服务器的发送报文队列中。
  4. Alice的邮件服务器与Bob的邮件服务器建立TCP连接,然后发送 Alice的邮件。
  5. Bob的邮件服务器将邮件放置在Bob的信箱中。
  6. Bob调用他的用户代理阅读邮件。
    在这里插入图片描述

Q:为什么不是直接从 User Agent 直接发送到 User Agent 呢?
A:User Agent这样的终端程序并不是实时在线的,若Bob的Mail Server暂时出现了问题,Alice的 Mail Server会在一段时间内不断尝试发送,尝试多次后才宣布发布失败。User Agent 并不是一直在线的无法向 Mail Server 一样重复这样的过程。

邮件传送具体实现

  假设Alice的邮件已经从代理服务器传输到了邮件服务器上,Alice的邮件服务器试图将邮件传送到Bob的邮件服务器上。

  1. 实现连接与握手
    • MTA客户与MTA服务器在端口25建立TCP连接。
    • 服务器发送服务就绪报文。
    • 客户发送HELO报文,用域名标识自己。
    • 服务器响应。
      在这里插入图片描述
    • 若正常则回复 250 OK,不正常回复 421 Service not Available
  2. 发送邮件内容

可能出现的错误:
451:处理出错
452:存储空间不足

  1. 结束传输
  • 客户发送QUIT命令
  • 服务器响应
  • 释放TCP连接
    在这里插入图片描述

几个要点:

  • SMTP使用持久连接:
    • 可以在一条TCP连接上传输多个报文(FTP只传输一个文件,HTTP可传输一个或多个对象)
    • 一个方向的报文传输结束后,可以在另一个方向上传输报文(SMTP特有的)
  • SMTP 服务器使用 “.” 表示报文结束(FTP使用关闭连接表示文件结束,HTTP使用长度域表示报文结束)。
  • SMTP要求报文(报头和实体)只包含简单ASCII文本(HTTP无此要求)。
1.2 邮件报文格式

在这里插入图片描述
如何传输包含非ASCII文本的报文?

  • 现在的电子邮件要求能传输其它语系的文字,甚至非文本信息(如图片)。
    • 非ASCII文本形式的数据,在发送前须转换成简单ASCII文本。
  • 非ASCII文本的报文大多具有特殊的数据类型,需要特殊的邮件浏览器(如JPEG图形的解压缩软件)来阅读。
    • 需扩展报文的数据类型。

Base64编码

Base64用来将一个二进制字节序列,转换成由ASCII字符序列构成的文本。

每24比特数据划分成4个6比特的单元,每个单元编码成一个ASCII字符,其对应关系为:

  • 0~25编码成’A’~’Z’
  • 26~51编码成‘a’~‘z’
  • 52~61编码成‘0’~‘9’
  • 62和63分别编码成‘+’和‘/’
  • 若最后一组只有8比特或16比特,分别加上‘==’和 ‘=’ 后缀
  • 回车和换行忽略,可以插在任何地方
    在这里插入图片描述

quoted-printable编码

适用于绝大部分都是ASCII字符的报文实体,其编码方法是:

  • 每个ASCII字符保持不变
  • 对于非ASCII字符(大于127的字符),将该字符的十六进制表示用两个ASCII字符标记,前面冠以特殊字符“=”。
    在这里插入图片描述

多用途因特网邮件扩展协议MIME

  扩展了RFC 822,允许实体具有不同的数据类型,并规定了非ASCII文本信息在传输时的统一编码形式。

扩充了一些首部行,最重要的是:

  • Content-Transfer-Encoding:实体采用的传输编码形式。
  • Content-Type:实体的数据类型及子类型。
    在这里插入图片描述
1.3 邮件访问

邮件访问方式:

  • 早期:用户登陆到邮件服务器上,直接在服务器上运行一个邮件阅读程序来阅读邮件。
  • 今天:用户在终端上安装用户代理,获取和阅读邮件。

Q:能将用户信箱放在本地终端吗?
A:不能,用户终端不可能一直连在因特网上

Q:用户代理能用SMTP从邮件服务器获取邮件吗?
A:不能,SMTP是一个“推”协议,只能将邮件从用户代理推送到其邮件服务器,或从发送方邮件服务器推送到 收件人邮件服务器。

解决方案:设计一个新的协议从服务器获取邮件。

邮件的两阶段交付
在这里插入图片描述

  • 在具有永久因特网连接的计算机上运行一个SMTP服务器,为用户分配一个永久信箱。
  • 第一阶段:邮件被投递到收信人的永久信箱。
  • 第二阶段:用户从永久信箱中获取邮件。
  • 为此,带永久信箱的计算机必须运行两个服务器程序:
    • SMTP服务器:收发用户邮件,将收到的邮件放入用户信箱
    • 邮件访问服务器:允许用户从信箱中提取邮件

邮件访问协议
可以从服务器获取邮件的协议有:

  • POP: Post Office Protocol [RFC 1939]
    • authorization (agent <—>server) and download
  • IMAP: Internet Mail Access Protocol [RFC 1730]
    • more features (more complex)
    • manipulation of stored msgs on server
  • HTTP: gmail, Hotmail, Yahoo! Mail, etc.

POP3协议的两个阶段

1. 认证和授权阶段

  • 客户命令:
    • user: declare username
    • pass: password
  • 服务器响应
    • +OK
    • -ERR

S: +OK POP3 server ready
C: user bob
S: +OK
C: pass hungry
S: +OK user successfully logged on

2. 事务阶段

  • 客户命令:
  • list: list message numbers
  • retr: retrieve message by number
  • dele: delete
  • quit

C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 2 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off

基于web的邮件访问:HTTP

  • 用户代理为普通浏览器:
    • 发送邮件:浏览器使用 HTTP协议 将邮件发送到邮件服务器。
    • 获取邮件:浏览器使用 HTTP协议 从信箱取邮件。
    • 传输邮件:邮件服务器之间仍使用 SMTP协议 传输报文。
  • 和IMAP一样,用户可以在远程服务器上用文件夹来组织他们的邮件。
  • 下图展示了邮件传输的两种方式:
    在这里插入图片描述
    • 红色线代表为像Outlook这样的代理服务器的邮件传输方式。
    • 蓝色线代表为基于web代理服务器的邮件传输方式。

现代因特网电子邮件系统的组成

  • 用户代理
  • 邮件服务器
  • 简单邮件传输协议SMTP
  • 邮件访问协议(POP3,IMAP,HTTP)

小结

  • 电子邮件系统:
    • 4个组成部分。
  • SMTP协议:
    • 使用TCP协议,服务器端口号25。
    • “推”协议:将邮件推向用户信箱。
    • 命令/响应交互方式。
    • 信体只能包含简单ASCII文本。
  • MIME协议:
    • 允许信体包含非ASCII文本。
    • 规定传输编码类型,扩展数据类型。
  • 两阶段交付过程:
    • 邮件投递:邮件从发信方投递到用户信箱。
    • 邮件访问:收信人从用户信箱获(拉)取邮件。

理解HTTP、FTP、SMTP设计上的不同

  • HTTP、FTP、SMTP均是在TCP连接上传输文件,但是在设计上有一些不同
  • 使用持久连接或非持久连接:HTTP可在一条TCP连接上传输多个对象,SMTP可以传输多个邮件,FTP只传输一个文件。
  • 文件传输结束的标记:HTTP使用长度指示报文结束,FTP使用关闭连接表示文件结束,SMTP 使用 “.” 表示报文结束。
  • 文件内容的要求:SMTP要求邮件只包含简单ASCII文本,FTP和HTTP无此要求。
  • 客户-服务器交互方式:HTTP采用报文交互,SMTP和FTP采用命令/响应交互。

2. DNS(Domain Name System)

因特网的目录服务DNS:将主机名映射到IP地址。

DNS实现为一个应用层服务:

  • 由其它网络应用使用的服务
  • 客户-服务器模式
  • 传输服务:主要使用UDP,有时使用TCP
  • 端口号53
  • 请求/响应报文交互
2.1 DNS提供的服务
  • 主机名-IP地址转换
  • 主机别名:
    • 允许主机除了规范名外,具有一个或多个别名(易于记忆),如www.ustc.edu.cn
    • 提供主机别名到规范名的映射。
    • 迁移服务不需要修改主机名。
  • 邮件服务器别名:
    • 允许使用域名作为邮件服务器的别名,如:xxx@ustc.edu.cn
  • 负载分配:
    • 允许一个规范主机名对应一组IP地址。
    • 将服务请求在一群相同功能的服务器之间分配。
2.2 DNS工作机理

将主机名转换成IP地址:
在这里插入图片描述

  1. 应用程序(如浏览器)调用一个本地例程(解析器),主机名作为参数之一传递。
  2. 解析器向网络中的DNS服务器发送查询报文,包含要查询的主机名。
  3. 解析器收到包含IP地址的响应报文。
  4. 解析器将IP地址返回给调用者(如浏览器)。

对应用程序而言,DNS是一个提供直接转换服务的黑盒子。

DNS是一个分布式数据库

Q: 为什么不使用集中式的DNS?

  • 单点失效
  • 流量集中:单个DNS服务器需处理全部查询
  • 响应时间长:远距离的集中式数据库
  • 需要维护庞大的数据库

分布式环境中的名字空间

如何在分布式环境下避免出现名字冲突?

DNS使用名字空间来规范对主机的命名:

  • 名字空间是因特网主机名字的集合,它同时给出了命名主机的方法。
  • 概念上,因特网被划分成200多个顶级域,每个顶级域可继续划分子域,依次类推。
  • 主机名字采用分层的命名方法。

在这里插入图片描述
域名

域(domain):名字树中,以任何一个节点为根的子树构成一个域。
标记(label):树上每一个节点都有一个标记(最多63个字符),树根的标记是一个空字符串。
域名(domain name):某个域的名字表示为:从该域开始向上直到树根的标记序列,标记之间用句点隔开(类似国外邮政地址的写法)。

域名的任一后缀也是一个域,同一个机构内的主机具有相同的域名后缀。
每个节点只需保证其孩子节点的标记不重名。

顶级域

  顶级域分为组织域、国家域和反向域三种。

  • 组织域
      由美国国内及一些国际组织使用。
    在这里插入图片描述
  • 国家域
      使用二字符的国家代码,每个国家对应一个。
    在这里插入图片描述
  • 反向域

顶级域名为arpa,用来将一个IP地址映射为注册的域名,反向域名解析是为了溯源。

DNS提供了一个反向解析域in-addr.arpa:

  • 欲解析的IP地址表示成像域名一样的一个串,例如,IP地址132.34.45.121表示为 121.45.34.132.in-addr.arpa。
  • 以这个字符串作为参数调用解析器

电信运营商使用自己的DNS服务器提供相关IP地址的反向解析服务。

域名服务器的组织层次
在这里插入图片描述

客户想知道www.amazon.com的IP地址:

  • DNS客户查询根服务器,得到com域的DNS服务器地址。
  • DNS客户查询com域的DNS服务器,得到amazon.com域的DNS服务器地址。
  • DNS客户查询amazon.com域的DNS服务器,得到www.amazon.com的IP地址。

顶级域服务器,权威服务器

  • 顶级域 (Top Level Domain, TLD) 服务器:
    • 每个TLD服务器负责一个顶级域。
    • 知道其所有二级子域的域名服务器的地址。
  • 权威DNS服务器:
    • 机构的DNS服务器,提供机构内部服务器的名字映射。
    • 提供一个主域名服务器、一个或多个辅助域名服务器。
    • 可由机构维护,也可委托ISP维护。

本地DNS服务器

  • 严格来说,本地DNS服务器不属于DNS服务器的层次结构。
  • 每个ISP都有一台本地DNS服务器,也称“默认的DNS服务器”。
  • 解析器的DNS查询报文实际上发送给本地DNS服务器。
  • 本地DNS服务器起着代理的作用,负责将DNS查询报文发送到DNS层次结构中,并将查找结果返回给解析器。

域名解析的例子

Q:cis.poly.edu上的一台主机想知道gaia.cs.umass.edu的IP地址

物理服务器的层次

  一个物理服务器保存的信息可能涉及域名空间的若干层,它也可以把它的域划分成若干子域,把其中的一些子域委托给其它服务器。

  实际的物理服务器的层次与域名空间的逻辑层次不同。
在这里插入图片描述

DNS缓存

  • 每当收到一个响应报文,DNS服务器将报文中的映射信息缓存在本地(每一层的DNS都有缓存)。
  • DNS服务器首先使用缓存中的信息响应查询请求。
  • DNS缓存中的映射在一定时间后被丢弃
  • 特别地,本地DNS服务器通常会缓存TLD服务器的IP地址,因而很少去访问根服务器
2.3 DNS资源记录

DNS更准确的说法: 存储资源记录(RR)的分布式数据库。
在这里插入图片描述

  • Type=A(Address)
    • Name:主机名
    • Value:IP地址
  • Type=NS(Name Server)
    • Name:域 (e.g. foo.com)
    • value:该域的权威DNS服务器的主机名
  • Type=CNAME(Canonical Name)
    • Name:别名
    • Value:规范名
  • Type=MX
    • Name:域(e.g. foo.com)
    • Value:该域的邮件服务器名字

DNS数据库内容示例
在这里插入图片描述

2.4 DNS协议,报文

DNS协议: 定义了查询和响应两种报文,查询和响应使用相同的报文格式。
在这里插入图片描述
在这里插入图片描述
DNS报文的封装

  • DNS主要使用UDP,有时使用TCP,服务器的熟知端口都是53:
    • 当响应报文的长度小于512字节时,使用UDP
    • 当响应报文的长度超过512字节时,使用TCP
    • 当解析器事先不知道响应报文的长度时,先使用UDP;若响应报文的长度超过512字节,服务器截断这个报文,置DNS报文首部的TC标志为1;解析程序打开TCP连接,并重复这个请求,以便得到完整的响应。
  • 为什么DNS响应报文的长度小于512字节时,使用UDP,响应报文的长度超过512字节时,使用TCP?
    • 这是因为UDP没有数据分段的能力,一旦发送的报文长度过长,就需要切割成几个报文段来传送。这就有可能导致信息被分成多个报文段发送丢失,造成严重的数据损失。而TCP传输数据时,可以对数据进行分段和重组,保证数据的完整性,因此更适合传输大型的DNS响应报文。另外,DNS使用TCP的情况也不仅限于响应报文超过512字节,还包括查询应答中的TCP标识位被置位、端口53被占用等情况。

往DNS中插入资源记录

  • example: new startup “Network Utopia”。
  • 向DNS注册机构注册域名“networkutopia.com”
    • 提供权威DNS服务器(主域名服务器,辅助域名服务器)的名字和IP地址。
    • 对每个权威域名服务器,注册机构往 com TLD 服务器中插。
      入两条资源记录,例如:(networkutopia.com, dns1.networkutopia.com, NS)(dns1.networkutopia.com, 212.212.212.1, A)
  • 建立权威DNS服务器,特别是:
    • 建立www.networkuptopia.com的Type A记录。
    • 建立networkutopia.com的Type MX记录,以及相应邮件服务器的A记录。
2.5 小结
  • DNS
    • 提供了一种按层次结构命名主机的方法
    • 实现了一个由DNS服务器构成的分布式数据库
    • 提供了查询域名数据库的应用层协议
  • 域名服务器的类型和层次(逻辑层次,物理层次)
  • DNS服务的调用方法:
    • 向本地DNS代理的一个RPC调用
    • 递归+迭代的查询方式
  • DNS协议:
    • 主要使用UDP,也可以使用TCP,端口号均为53
    • 报文请求/响应交互
  • DNS缓存

相关文章:

【计算机网络-自顶向下方法】应用层(SMTP、POP3、DNS)

目录 1. Electronic Mail电子邮件应用画像1.1 电子邮件系统1.2 邮件报文格式1.3 邮件访问 2. DNS&#xff08;Domain Name System&#xff09;2.1 DNS提供的服务2.2 DNS工作机理2.3 DNS资源记录2.4 DNS协议&#xff0c;报文2.5 小结 1. Electronic Mail 电子邮件应用画像 应用…...

【Pm4py第八讲】关于Statistics

本节用于介绍pm4py中的统计函数&#xff0c;包括统计轨迹变体、案例持续时间、案例到达时间等。 1.函数概述 本次主要介绍Pm4py中一些常见的统计函数&#xff0c;总览如下表&#xff1a; 函数名说明pm4py.stats.get_start_activities()从事件日志中获取开始活动。pm4py.stats.…...

【Azure 架构师学习笔记】-Azure Data Factory (5) --Data Flow

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器 前言 Azure Data Factory&#xff0c; ADF 是微软Azure 的ETL 首选服务之一&#xff0c; 是Azure data platfor…...

uniapp之ios开发及支付整体流程爬坑记录

前言 在写这篇记录的时候&#xff0c;关于ios的支付已经对接的差不多了&#xff0c;下一步就是测试好了直接发版&#xff0c;总共花了好几周的时间&#xff0c;从0到1对于首次做ios支付来说&#xff0c;确实很多坑。 其实业务层面很简单&#xff0c;甚至比安卓支付还简单&…...

AutoDL百川大模型体验

文章目录 镜像克隆模型下载测试效果AutoDL自定义服务 感谢AutoDL和CodeWithGPU这两个平台&#xff0c;让我们能低成本&#xff0c;低门槛地部署体验这些大模型 镜像克隆 我是在CodeWithGPU上克隆的这个镜像 模型下载 codewithgpu有介绍 注意这三个文件都需要下载 把那个&quo…...

蓝桥杯每日一题2023.10.8

题目描述 七段码 - 蓝桥云课 (lanqiao.cn) 题目分析 所有的情况我们可以分析出来一共有2的7次方-1种&#xff0c;因为每一个二极管都有选择和不选择两种情况&#xff0c;有7个二极管&#xff0c;但是还有一种都不选的情况需要排除&#xff0c;故-1 枚举每个方案看是否符合要…...

jmeter,性能测试,Locust

一。性能测试的概念 1.性能&#xff1a;就是软件质量属性中的 “ 效率 ” 特性 2.效率特性&#xff1a; 时间特性&#xff1a;指系统处理用户请求的响应时间 资源特性&#xff1a;指系统在运行过程中&#xff0c;系统资源的消耗情况 CPU 内存 磁盘IO&#xff08;磁盘的写…...

opencv图像的直方图,二维直方图,直方图均衡化

文章目录 opencv图像的直方图&#xff0c;二维直方图&#xff0c;直方图均衡化一、图像的直方图1、什么是图像的直方图&#xff1a;2、直方图的作用&#xff1a;3、如何绘制图像的直方图&#xff1a;&#xff08;1&#xff09;cv::calcHist()函数原型&#xff1a;英文单词 calc…...

c++中的map和set

文章目录 1. 关联式容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set的介绍3.1.2 set的使用 3.2 map3.2.1 map的介绍3.2.2 map的使用 3.3 multiset3.3.1 multiset的介绍3.3.2 multiset的使用 3.4 multimap3.4.1 multimap的介绍3.4.2 multimap的使用 1. 关联式容器 在初阶…...

Swagger使用详解

目录 一、简介 二、SwaggerTest项目搭建 1. pom.xml 2. entity类 3. controller层 三、基本使用 1. 导入相关依赖 2. 编写配置文件 2.1 配置基本信息 2.2 配置接口信息 2.3 配置分组信息 2.3.1 分组名修改 2.3.2 设置多个分组 四、常用注解使用 1. ApiModel 2.A…...

ToBeWritten之车联网安全中常见的TOP 10漏洞

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…...

软考-密码学概述

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 by 2023年10月 密码学基本概念 密码学的主要目的是保持明文的秘密以防止攻击者获知&#xff0c;而密码分…...

windows 2003、2008远程直接关闭远程后设置自动注销会话

1、2003系统&#xff1a; 按开始—运行—输入“tscc.msc”&#xff0c;打开“终端服务配置”。 单击左边窗口的“连接”项&#xff0c;右边窗口中右击“RDP-TCP”&#xff0c;选择“属性”。 单击“会话”项&#xff0c;勾选“替代用户设置”&#xff0c;在“结束已断开的会话”…...

iOS BUG UIView转UIImage模糊失真

iOS BUG UIView转UIImage模糊失真 ##UIView转成Image - (UIImage *)capture {UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);[self.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *img UIGraphicsGetImageFromCurrentImageContext(…...

如何在10分钟内让Android应用大小减少 60%?

一个APP的包之所以大&#xff0c;主要包括一下文件 代码libso本地库资源文件&#xff08;图片&#xff0c;音频&#xff0c;字体等&#xff09; 瘦身就主要瘦这些。 一、打包的時候刪除不用的代码 buildTypes {debug {...shrinkResources true // 是否去除无效的资源文件(如…...

网络代理技术:保障隐私与增强安全

在当今数字化的世界中&#xff0c;网络代理技术的重要性日益凸显。无论您是普通用户还是网络工程师&#xff0c;了解如何使用代理技术来保护隐私和增强网络安全都是至关重要的。本文将深入探讨Socks5代理、IP代理以及它们在网络安全和隐私保护中的关键作用。 1. Socks5代理&am…...

数据结构 | (二) List

什么是 List 在集合框架中&#xff0c; List 是一个接口&#xff0c;继承自 Collection 。 Collection 也是一个接口 &#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterable 也是一个接口&#xff0c;表示实现该接口的类是可以逐个…...

[NewStarCTF 2023 公开赛道] week1 Crypto

brainfuck 题目描述&#xff1a; [>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<-]>>>>>>>.>----.<-----.>-----.>-----.<<<-.>>..…...

C语言中文网 - Shell脚本 - 0

教程目录如下&#xff1a; 第1章 Shell基础&#xff08;开胃菜&#xff09; 1. Shell是什么&#xff1f;1分钟理解Shell的概念&#xff01; 2. Shell是运维人员必须掌握的技能 3. 常用的Shell有哪些&#xff1f; 4. 进入Shell的两种方式 5. Linux Shell命令的基本格式 6.…...

Transformer预测 | Pytorch实现基于Transformer 的锂电池寿命预测(CALCE数据集)

文章目录 效果一览文章概述模型描述程序设计参考资料效果一览 文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...