计算机网络【应用层】邮件和DNS

文章目录

  • 电子邮件
  • DNS
    • DNS提供的服务:
    • 域名分级
    • 域名解析流程
    • DNS资源记录
    • DNS服务器类型

电子邮件

在这里插入图片描述

  • 使用SMTP协议发送邮件之前,需要将二进制多媒体数据编码为ASCII码
  • SMTP一般不使用中间邮件服务器发送邮件,如果收件服务器没开机,那么会保留在发送方的服务器上进行尝试,不会在中间进行保留
  • SMTP使用的25端口
  • SMTP是推的动作,HTTP的拉的动作

SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议的缩写,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过 SMTP 协议所指定的服务器,就可以把 E-mail 寄到收信人的服务器上了,整个过程只要几分钟。SMTP 服务器则是遵循 SMTP 协议的发送邮件服务器,用来发送或中转你发出的电子邮件。

以下是关于 SMTP 的重要学习内容:

  1. 基本工作原理

    • SMTP 是一个基于文本的协议,用于在邮件服务器之间传输电子邮件。
    • 邮件从发件人的邮件客户端发送到发件人的 SMTP 服务器(也称为出站服务器)。
    • 然后,SMTP 服务器通过 Internet 将邮件发送到收件人的 SMTP 服务器(也称为入站服务器)。
    • 最后,收件人的邮件客户端从收件人的 SMTP 服务器上接收邮件。
  2. 邮件格式

    • SMTP 协议定义了邮件的头部和正文格式,通常使用 MIME(多用途互联网邮件扩展)来定义邮件内容类型和编码。
  3. SMTP 命令和响应

    • SMTP 协议使用命令和响应来建立连接、发送邮件和关闭连接。例如,HELO、MAIL FROM、RCPT TO、DATA、QUIT 等命令。
    • 响应代码以三位数字开头,后跟一个空格和文本描述。例如,250 表示成功,550 表示请求的用户不存在。
  4. 安全性

    • SMTP 是一个不加密的协议,因此传输的邮件内容可以被任何在传输路径上的设备读取。
    • 为了提高安全性,可以使用 SMTPS(SMTP over SSL)或提交邮件时使用 STARTTLS 命令将连接升级到加密的 TLS/SSL 连接。
  5. 认证

    • 许多 SMTP 服务器要求用户在发送邮件之前进行身份验证。这通常通过用户名和密码或其他认证机制来完成。
  6. 邮件中继和路由

    • SMTP 协议定义了邮件如何从一个服务器转发到另一个服务器,直到到达目标服务器。
    • 邮件服务器使用 DNS 中的 MX 记录来确定目标服务器的地址。
  7. 反垃圾邮件和过滤

    • 许多 SMTP 服务器实现了反垃圾邮件措施,如 IP 信誉检查、域名信誉检查、内容过滤等。
  8. SMTP 客户端和服务器软件

    • 邮件客户端软件(如 Outlook、Gmail 网页版等)使用 SMTP 协议将邮件发送到 SMTP 服务器。
    • 邮件服务器软件(如 Postfix、Sendmail、Exchange Server 等)实现了 SMTP 协议,用于接收、存储和转发邮件。

了解和掌握 SMTP 协议对于开发邮件客户端软件、配置邮件服务器以及进行网络故障排除都是非常重要的。

邮件报文格式:
在这里插入图片描述
在这里插入图片描述
POP3和IMAP,用来接收邮件的协议。取报文是一个拉的动作。

DNS

识别主机的两种方式,主机名和IP地址
从主机名到IP地址的目录服务,这就是DNS;

DNS(Domain Name System)是域名系统的缩写,它是互联网中用于将人类可读的域名(如 www.example.com)转换为计算机可读的IP地址(如 192.0.2.1)的系统。以下是关于DNS的一些详细解释:

  1. 工作原理

    • 当你在浏览器中输入一个网址(如 www.example.com)时,你的计算机首先会查询DNS服务器来找到与该域名对应的IP地址。
    • DNS服务器是一个分布式的数据库系统,它存储着域名和IP地址之间的映射关系。
    • 查询过程可能涉及多个DNS服务器,从根域名服务器开始,逐级向下查询,直到找到目标域名的IP地址。
  2. DNS记录类型

    • A记录(Address Record):将域名映射到IPv4地址。
    • AAAA记录(IPv6 Address Record):将域名映射到IPv6地址。
    • CNAME记录(Canonical Name Record):将一个域名映射到另一个域名,通常用于将子域名映射到主域名。
    • MX记录(Mail Exchange Record):指定哪个邮件服务器负责处理该域名的电子邮件。
    • NS记录(Name Server Record):指定哪些DNS服务器负责该域名的DNS解析。
    • TXT记录(Text Record):用于存储文本信息,常用于SPF(Sender Policy Framework)等安全验证。
  3. DNS解析过程

    • 递归查询:客户端向DNS服务器发送查询请求,DNS服务器负责查询整个DNS系统,直到找到目标IP地址,并将结果返回给客户端。
    • 迭代查询:客户端向DNS服务器发送查询请求,DNS服务器只返回下一级DNS服务器的地址,客户端再向该服务器发送查询请求,如此迭代,直到找到目标IP地址。
  4. DNS缓存

    • 为了提高查询效率,DNS查询结果通常会被缓存起来。缓存可以在客户端、本地DNS服务器或上级DNS服务器中进行。
    • 当缓存中的记录过期或需要更新时,会重新进行DNS查询。
  5. DNS安全

    • DNSSEC(DNS Security Extensions):一套扩展DNS安全性的协议,它提供了数据的来源验证、数据完整性检查和否认存在性证明。
    • DNS污染/劫持:攻击者通过修改DNS解析结果,将用户引导到错误的IP地址,从而实现欺诈、窃取信息等目的。使用HTTPS、VPN等加密通信方式可以降低这种风险。
  6. DNS提供商

    • 大多数域名注册商都提供DNS服务,但也有一些专门的DNS提供商,如Cloudflare、Google Domains等,它们提供了更丰富的功能和更好的性能。

总之,DNS是互联网中至关重要的一个系统,它确保了人们可以使用易于记忆的域名来访问网站和其他互联网服务。了解DNS的工作原理和常见安全威胁有助于更好地使用和保护你的网站和服务。

DNS提供的服务:

DNS(域名系统,Domain Name System)是互联网上用于将域名和IP地址相互映射的一个分布式数据库系统。它提供的服务主要包括:

  1. 域名解析:将用户输入的域名(如 www.example.com)转换为机器可以理解的IP地址(如 192.0.2.1)。

  2. 负载均衡:通过将一个域名解析到多个IP地址,DNS可以用于实现负载均衡,将请求分发到不同的服务器。

  3. 故障转移:当一个服务器出现故障时,DNS可以配置为将流量重定向到备用服务器。

  4. 缓存:DNS服务器会缓存查询结果,减少对权威DNS服务器的请求次数,加快解析速度。

  5. 安全性增强:通过DNSSEC(域名系统安全扩展),可以提供数据完整性校验和来源验证,增强DNS的安全性。

  6. 邮件服务器发现:DNS提供MX记录(Mail Exchange records),用于确定负责处理某个域名电子邮件的邮件服务器。

  7. 别名管理:使用CNAME(Canonical Name records)记录,可以将多个域名映射到同一个IP地址,实现别名管理。

  8. 地理定位:通过基于用户地理位置的DNS解析,可以将用户重定向到最近的服务器,改善服务体验。

  9. 反向DNS查找:DNS还支持将IP地址解析为域名,这称为反向DNS查找。

  10. 服务发现:在某些环境中,DNS可以用于服务发现,允许客户端通过域名自动发现服务的位置。

  11. 区域管理:DNS允许网络管理员定义网络的逻辑结构,通过区域(zones)来管理不同部分的DNS信息。

  12. 动态DNS:DDNS(动态DNS)服务允许用户动态地将变化的IP地址与域名关联起来,特别适用于拨号上网和移动设备。

  13. IPv6支持:随着IPv6的推广,DNS支持AAAA记录,用于IPv6地址的解析。

DNS是互联网基础设施的关键部分,它的服务对于网络的稳定运行和用户体验至关重要。

域名分级

  1. TLD:Top Level Domain 顶级域名
    组织域:.com, .net, .org, .gov, .edu, .mil
    国家域:.iq, .tw, .hk, .jp, .cn, …

  2. 域名分级
    根域名: .
    顶级域名:.com .edu .gov .int .net .cn .us .jp …
    二级域名:baidu.com microsoft.com jd.com qq.com aliyun.com edu.cn
    三级域名:map.baidu.com nankai.edu.cn
    四级域名:www.nankai.edu.cn cs.nankai.edu.cn

在这里插入图片描述

域名解析流程

在这里插入图片描述作者:wuxinliulei
在这里插入图片描述
1、首先客户端位置是一台电脑或手机,在打开浏览器以后,比如输入http://www.zdns.cn的域名,它首先是由浏览器发起一个DNS解析请求,如果本地缓存服务器中找不到结果,则首先会向根服务器查询,根服务器里面记录的都是各个顶级域所在的服务器的位置,当向根请求http://www.zdns.cn的时候,根服务器就会返回.cn服务器的位置信息。

2、递归服务器拿到.cn的权威服务器地址以后,就会寻问cn的权威服务器,知不知道http://www.zdns.cn的位置。这个时候cn权威服务器查找并返回http://zdns.cn服务器的地址。

3、继续向http://zdns.cn的权威服务器去查询这个地址,由http://zdns.cn的服务器给出了地址:202.173.11.10

4、最终才能进行http的链接,顺利访问网站。

5、这里补充说明,一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再这样一层一层查了,因为本地服务器里面已经有缓存了,这个时候就直接把http://www.zdns.cn的A记录返回给客户端就可以了。

DNS资源记录

在这里插入图片描述

记录一条域名信息映射关系,称之为资源记录(RR)。

当我们查询域名http://www.zdns.cn的时候,查询结果得到的资源记录结构体中有如下数据:

1、TTL,就是生存周期,是递归服务器会在缓存中保存该资源记录的时长。

2、网络/协议类型,它的代表的标识是IN,IN就是internet,目前DNS系统主要支持的协议是IN。

3、type,就是资源记录类型,一般的网站都是都是A记录(IPv4的主机地址)。

4、rdata是资源记录数据,就是域名关联的信息数据。

DNS服务器类型

DNS服务器一般分三种,根DNS服务器,顶级DNS服务器,权威DNS服务器
在这里插入图片描述

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

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

相关文章

【iOS】多线程

文章目录 前言一、多线程的选择方案二、GCD和NSOperation的比较二、多线程相关概念任务队列 三、死锁情况主队列加同步任务 四、任务队列组合主队列异步并发队列异步 前言 这两天将iOS的多线程的使用都看了一遍,iOS的多线程方案有许多,本篇博客主要总结…

流畅的python-学习笔记_符合python风格的对象

对象表示形式 查看对象说明,可以通过__repr__和__str__方法,前者主要用于开发者,后者主要用于用户,这两个方法分别对内置函数repr和str函数提供支持 向量类 备选构造方法 classmethod和staticmethod staticmethod用的不是特别…

基于鸢尾花数据集的四种聚类算法(kmeans,层次聚类,DBSCAN,FCM)和学习向量量化对比

基于鸢尾花数据集的四种聚类算法(kmeans,层次聚类,DBSCAN,FCM)和学习向量量化对比 注:下面的代码可能需要做一点参数调整,才得到所有我的运行结果。 kmeans算法: import matplotlib.pyplot a…

音视频开发3 视频基础,图片基础

图片像素(Pixel) 一张图片是由多少个 像素 构成的。 例如一张图片是由60x50组成的。 位深度 bit depth RGB表示法 红(Red)、绿(Green)、蓝(Blue) 除了24bit,常见的位深…

electron 通信总结

默认开启上下文隔离的情况下 渲染进程调用主进程方法: 主进程 在 main.js 中, 使用 ipcMain.handle,添加要处理的主进程方法 const { ipcMain } require("electron"); 在 electron 中创建 preload.ts 文件,从 ele…

在Linux上使用Selenium驱动Chrome浏览器无头模式

大家好,我们平时在做UI自动化测试的时候,经常会用到Chrome浏览器的无头模式(无界面模式),并且将测试代码部署到Linux系统中执行,或者平时我们写个爬虫爬取网站的数据也会使用到,接下来和大家分享…

Elasticsearch初步认识

Elasticsearch初步认识 ES概述基本概念正向索引和倒排索引IK分词器ik_smart最少切分ik_max_word为最细粒度划分 ES索引库基本操作对索引库操作对文档操作 ES概述 Elasticsearch,简称为 ES,是一款非常强大的开源的高扩展的分布式全文检索引擎&#xff0c…

神经网络中的归一化

我们今天介绍一下神经网络中的归一化方法~ 之前学到的机器学习中的归一化是将数据缩放到特定范围内,以消除不同特征之间的量纲和取值范围差异。通过将原始数据缩放到一个特定的范围内,比如[0,1]或者[-1,1],来消除不同特征之间的量纲和取值范围…

【前沿模型解析】一致性模型CM(一)| 离散时间模型到连续时间模型数学推导

文章目录 1 离散时间模型2 连续时间模型 得到 SDE 随机微分方程2.1 从离散模型到SDE的推理步骤 3 补充:泰勒展开近似 1 − β i \sqrt{1-\beta_i} 1−βi​ ​ CM模型非常重要 引出了LCM等一系列重要工作 CM潜在性模型的数学公式推导并不好理解 一步一步&#xf…

Springboot框架web开发实用功能-02

在些模块中汇总了一些web开发常用的配置和功能。 涉及的模块 springboot-common-config, 端口号:17000 Springboot框架web开发常用功能 Restful接口定义 查询参数 Data public class QueryParam {private String key;private String value; }Control…

C#上位机源程序 下位机单片机实现控制电机

基于C#的上位机编程程序&#xff0c;通过上位机控制下位机实现电脑操作控制步进电机的转动 程序 #include<reg52.h>#define uchar unsigned char#define uint unsigned int#include "2401.h"#include "delay.h"#include "ds18b20.h"sbit I…

力扣每日一题110:平衡二叉树

题目 简单 给定一个二叉树&#xff0c;判断它是否是 平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,3,3,null,null,4,4] 输出&#xff1a;false示例 3&#xff1a; …

python从0开始学习(四)

目录 前言 1、算数运算符 1.1 //:整除运算符 1.2 %:取模操作 1.3 **&#xff1a;幂运算 2、赋值运算符 3、比较运算符 4、逻辑运算符 5、位运算符 5.1 &&#xff1a;按位与 5.2 |&#xff1a;按位或 5.3 ^&#xff1a;按位异或 5.4 ~&#xff1a;按位取反 5.5…

Linux学习笔记(3)---- Debian测试网速指令及查看是否千兆网卡

测试网速指令 在Debian系统中&#xff0c;测网速的指令主要有以下几种方法&#xff1a; 使用speedtest-cli工具&#xff1a; speedtest-cli是一个常用的网络速度测试工具&#xff0c;可以通过命令行进行安装和运行。首先&#xff0c;需要安装speedtest-cli&#xff1a; sud…

工业物联网技术在生产流程中的应用及优势与挑战——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断发展&#xff0c;物联网技术逐渐渗透到各个行业中&#xff0c;尤其是在工业领域&#xff0c;工业物联网的应用正在逐步重塑生产流程。本文将探讨工业物联网如何影响生产流程&#xff0c;并分析其带来的优势和挑战。 一、工…

k8s保持pod健康

存活探针 Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。如果探测失败&#xff0c;Kubemetes 将定期执行探针并重新启动容器。 Kubemetes 有以下三种探测容器的机制&#xff1a; HTTP GET 探针对容器的 IP 地…

java学习记录最后一篇

面向对象编程 封装 该露的露&#xff0c;该藏的藏 我们程序设计要追求“高内聚&#xff0c;低耦合”。高内聚就是类的内部数据细节由自己完成&#xff0c;不允许外部干涉&#xff1b;低耦合&#xff1a;仅暴露少量的方法给外部使用。 封装&#xff08;数据的隐藏&#xff0…

AI部署指南

部署指南 建议大家尽可能的自己去部署&#xff0c;如果实在懒得搞&#xff0c;可以找我来帮你部署&#xff0c;详情参考 服务器代部署说明。 由于时间仓促&#xff0c;文档可能尚未详尽&#xff0c;我将在后续逐步补充详细的说明文档。 架构草图 项目依赖 必选依赖 MySQ…

5月3日江苏某厂冷却塔清洗工作汇报-智渍洁

5月3日 施工人员&#xff1a;张能超&#xff0c;张伟&#xff0c;刘平&#xff0c;曾巧 施工事项&#xff1a;空冷器脱脂 今日工作进度&#xff0c;清洗6台遇到的问题&#xff0c;就是那个喷雾器不经用&#xff0c;一会儿又坏了 重庆智渍洁环保科技有限公司专注于工业清洗&…

记录创建项目java version 没有8的问题

问题&#xff1a; 解决方案 java版本选择21&#xff08;21可以兼容jdk8&#xff09; SpringBoot选择3.2.5 进入项目后手动在pom.xml中修改版本