【计算机网络-应用层】域名系统 DNS、文件传输协议 FTP、电子邮件

news2025/6/18 13:57:28

文章目录

  • 1 域名系统 DNS
    • 1.1 域名结构
    • 1.2 域名服务器
      • 1.2.1 根域名服务器
      • 1.2.2 顶级域名服务器
      • 1.2.3 权限域名服务器
      • 1.2.4 本地域名服务器
    • 1.3 域名解析过程
      • 1.3.1 递归查询
      • 1.3.2 递归与迭代相结合查询
      • 1.3.3 本地域名服务器的高速缓存
  • 2 文件传输协议 FTP
    • 2.1 主动模式(建立数据通道时,FTP 服务器主动连接 FTP 客户)
    • 2.2 被动模式(建立数据通道时,FTP 服务器被动等待 FTP 客户的连接)
  • 3 电子邮件
    • 3.1 电子邮件系统
    • 3.2 电子邮件格式
    • 3.3 电子邮件协议
      • 3.3.1 简单邮件传送协议 SMTP
      • 3.3.2 多用途因特网邮件扩展 MINE
      • 3.3.3 邮局协议 POP
      • 3.3.4 因特网邮件访问协议 IMAP

1 域名系统 DNS

IP 地址很难记忆,引入域名是为了方便人们记忆与识别。

域名系统(Domain Name System,DNS):用来把域名(主机名)转换为 IP 地址的系统,采用客户/服务器(C/S)模型,运行在 UDP 协议上,端口号为 53。

客户/服务器(C/S)模型:有一个总是打开的主机称为服务器,它服务于许多来自其他被称为客户机的主机请求。

1.1 域名结构

域名结构四级域名.三级域名.二级域名.顶级域名(级别最低的域名写在最左边,而级别最高的顶级域名写在最右边)

域名空间的树状结构如下图:

在这里插入图片描述

  • 顶级域名(Top Level Domain,TLD)分为以下三类:
    • 国家顶级域名 nTLD:cn,us,uk 等
    • 通用顶级域名 gTLD:com,net,org,int,edu,gov,mil
    • 反向域 arpa:用于反向域名解析,即IP地址反向解析为域名
  • 二级域名:在国家顶级域名下注册的二级域名均由该国家自行确定。

1.2 域名服务器

域名系统的层次结构如下图:

在这里插入图片描述

1.2.1 根域名服务器

  • 根域名服务器是最高层次的域名服务器。
  • 每个根域名服务器都知道所有的顶级域名服务器的域名及其 IP 地址。
  • 根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器的IP地址。
  • 当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离该 DNS 客户最近的一个根域名服务器。

1.2.2 顶级域名服务器

  • 顶级域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
  • 当收到 DNS 查询请求时就给出相应的回答,可能是最后的结果,也可能是下一级权限域名服务器的 IP 地址。

1.2.3 权限域名服务器

  • 权限域名服务器负责管理某个区的域名。
  • 每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与 IP 地址的映射关系。
  • 另外,权限域名服务器还知道其下级域名服务器的地址。

1.2.4 本地域名服务器

  • 本地域名服务器不属于上述的域名服务器的等级结构。
  • 当一个主机发出 DNS 请求报文时,这个报文就首先被送往该主机的本地域名服务器。
  • 本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。
  • 本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中。本地域名服务器的 IP 地址需要直接配置在需要域名解析的主机中。

1.3 域名解析过程

在这里插入图片描述

1.3.1 递归查询

主机(m.xyz.com)需要查找 www.abc.uvw.com 的 IP 地址:

第几个 RTT发起接收发出内容查询类型
1主机(m.xyz.com)本地域名服务器(xyz.com)DNS 请求报文递归查询
2本地域名服务器(xyz.com)根域名服务器DNS 请求报文递归查询
3根域名服务器顶级域名服务器(com)DNS 请求报文递归查询
4顶级域名服务器(com)权限域名服务器(uvw.com)DNS 请求报文递归查询
5权限域名服务器(uvw.com)权限域名服务器(abc.uvw.com)DNS 请求报文递归查询
6权限域名服务器(abc.uvw.com)权限域名服务器(uvw.com)www.abc.uvw.com 的 IP 地址递归查询
7权限域名服务器(uvw.com)顶级域名服务器(com)www.abc.uvw.com 的 IP 地址递归查询
8顶级域名服务器(com)根域名服务器www.abc.uvw.com 的 IP 地址递归查询
9根域名服务器本地域名服务器(xyz.com)www.abc.uvw.com 的 IP 地址递归查询
10本地域名服务器(xyz.com)主机(m.xyz.com)www.abc.uvw.com 的 IP 地址递归查询

1.3.2 递归与迭代相结合查询

主机(m.xyz.com)需要查找 www.abc.uvw.com 的 IP 地址:

第几个 RTT发起接收发出内容查询类型
1主机(m.xyz.com)本地域名服务器(xyz.com)DNS 请求报文递归查询
2本地域名服务器(xyz.com)根域名服务器DNS 解析请求报文迭代查询
3根域名服务器本地域名服务器(xyz.com)顶级域名服务器 com 的 IP 地址迭代查询
4本地域名服务器(xyz.com)顶级域名服务器(com)DNS 解析请求报文迭代查询
5顶级域名服务器(com)本地域名服务器(xyz.com)权限域名服务器 uvw.com 的 IP 地址迭代查询
6本地域名服务器(xyz.com)权限域名服务器(uvw.com)DNS 解析请求报文迭代查询
7权限域名服务器(uvw.com)本地域名服务器(xyz.com)权限域名服务器 abc.uvw.com 的 IP 地址迭代查询
8本地域名服务器(xyz.com)权限域名服务器(abc.uvw.com)DNS 解析请求报文迭代查询
9权限域名服务器(abc.uvw.com)本地域名服务器(xyz.com)www.abc.uvw.com 的 IP 地址迭代查询
10本地域名服务器(xyz.com))主机(m.xyz.com)www.abc.uvw.com 的 IP 地址递归查询

1.3.3 本地域名服务器的高速缓存

为了提高 DNS 的查询效率,并减轻根域名服务器的负荷和减少因特网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

主机(m.xyz.com)需要查找 www.abc.uvw.com 的 IP 地址,而本地域名服务器的高速缓存中已存放 www.abc.uvw.com 的 IP 地址:

第几个 RTT发起接收发出内容查询类型
1主机(m.xyz.com)本地域名服务器(xyz.com)TCP 连接建立递归查询
2本地域名服务器(xyz.com)主机(m.xyz.com)www.abc.uvw.com 的 IP 地址递归查询

2 文件传输协议 FTP

文件传送协议(File Transfer Protocol,FTP):因特网上使用得最广泛的文件传送协议。采用客户/服务器(C/S)模型,运行在 TCP 协议上,端口号为 20 和 21。

2.1 主动模式(建立数据通道时,FTP 服务器主动连接 FTP 客户)

操作FTP 客户端口号FTP 服务器端口号类型
FTP 客户发起 TCP 连接临时端口号21控制连接(用于传送控制命令的 TCP 连接)
FTP 服务器发起 TCP 连接另一个临时端口号20数据连接(用于传送数据的 TCP 连接)

有数据传送时,FTP 客户通过命令通道告知 FTP 服务器自己的另一个临时端口号,FTP 服务器负责建立 TCP 连接以建立数据通道。

注意:

  • 控制连接在整个会话期间一直保持打开,用于传送 FTP 相关控制命令。
  • 数据连接用于文件传输,在每次文件传输时才建立,传输结束就关闭。

2.2 被动模式(建立数据通道时,FTP 服务器被动等待 FTP 客户的连接)

操作FTP 客户端口号FTP 服务器端口号类型
FTP 客户发起 TCP 连接临时端口号21控制连接(用于传送控制命令的 TCP 连接)
FTP 客户发起 TCP 连接另一个临时端口号客户告知的临时端口号数据连接(用于传送数据的 TCP 连接)

有数据传送时,FTP 客户通过命令通道告知 FTP 服务器开启某个临时端口,FTP 客户负责建立 TCP 连接以建立数据通道。

注意:

  • 控制连接在整个会话期间一直保持打开,用于传送 FTP 相关控制命令。
  • 数据连接用于文件传输,在每次文件传输时才建立,传输结束就关闭。

3 电子邮件

3.1 电子邮件系统

电子邮件系统采用客户/服务器(C/S)模型,有三个主要组成构件:用户代理,邮件服务器,以及电子邮件所需的协议。

在这里插入图片描述

  • 用户代理:用户与电子邮件系统的接口,又称为电子邮件客户端软件。
  • 邮件服务器:电子邮件系统的基础设施。因特网上所有的因特网服务提供者 ISP 都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱。
  • 协议:包括邮件发送协议(例如 SMTP)和邮件读取协议(例如 POP3,IMAP)。

3.2 电子邮件格式

  • 信封To(接收方,重要)、Subject(邮件主题,重要)
  • 内容:包括首部和主体
    • 首部From(发送方)、To(接收方,重要)、Subject(邮件主题,重要)
    • 主体:邮件内容

3.3 电子邮件协议

3.3.1 简单邮件传送协议 SMTP

简单邮件传送协议(Simple Mail Transfer Protocol,SMTP):使用 TCP 连接,端口号为 25。SMTP 客户机可通过 14 条 SMTP 命令通知 SMTP 服务器;相应地,SMTP 服务器可通过 21 条 SMTP 应答响应 SMTP 客户机。

SMTP 服务器和客户机建立 TCP 连接后,SMTP 的工作过程如下:

过程发送方内容接收方备注
连接建立SMTP 服务器220 Service readySMTP 客户机主动推送“服务就绪”应答
连接建立SMTP 客户机HELLO: 163.comSMTP 服务器向服务器说明身份,告知自己的域名
邮件发送SMTP 服务器250 OKSMTP 客户机若身份有效,发回应答代码 250
邮件发送SMTP 客户机MAIL FROM: xxx@163.comSMTP 服务器告知服务器邮件来自何方
邮件发送SMTP 服务器250 OKSMTP 客户机若合理,发回应答代码 250
邮件发送SMTP 客户机RCPT To: yyy@163.comSMTP 服务器告知服务器邮件去往何地
邮件发送SMTP 服务器250 OKSMTP 客户机若该邮箱存在,发回应答代码 250
邮件发送SMTP 客户机DATASMTP 服务器告知服务器自己准备发送邮件内容
邮件发送SMTP 服务器354 Start mail input; end with .SMTP 客户机若准备好接收,发回应答代码 354
邮件发送SMTP 客户机<邮件内容>SMTP 服务器向服务器发送邮件内容
邮件发送SMTP 客户机.SMTP 服务器发送完邮件内容,还要发送结束符
邮件发送SMTP 服务器250 OKSMTP 客户机若收件成功,发回应答代码 250
连接释放SMTP 客户机QUITSMTP 服务器向服务器请求断开 TCP 连接
连接释放SMTP 服务器221SMTP 客户机发回应答代码 221 并主动断开连接

【注】表示回车换行。

SMTP 协议只能传送 7 位 ASCII 码文本数据,不能传送可执行文件或其他的二进制对象。

3.3.2 多用途因特网邮件扩展 MINE

由于 SMTP 不能满足传送多媒体邮件(例如带有图片、音频或视频数据)的需要。并且许多其他非英语国家的文字也无法用 SMTP 传送。除此之外,SMTP 服务器会拒绝超过一定长度的邮件。

为解决 SMTP 传送非 ASCII 码文本的问题,提出了多用途因特网邮件扩展(Multipurpose Internet Mail Extensions,MIME)

在这里插入图片描述

  • 增加了 5 个新的邮件首部字段,这些字段提供了有关邮件主体的信息。
  • 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
  • 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

3.3.3 邮局协议 POP

  • 基于 TCP 连接的客户/服务器方式,端口号为 110。
  • POP3 是其第三个版本,是因特网正式标准,是非常简单、功能有限的邮件读取协议。
  • 用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户计算机。
  • 不允许用户在邮件服务器上管理自己的邮件(例如创建文件夹,对邮件进行分类管理等)。

3.3.4 因特网邮件访问协议 IMAP

  • IMAP4 是其第四个版本,是因特网建议标准,是功能比 POP3 强大的邮件读取协议。
  • 用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此 IMAP 是一个联机协议。

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

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

相关文章

java编译和运行带有包名的类

写在前面 对于习惯了使用ide的我们似乎早已经忘记了如何通过命令行来编译和运行java类了&#xff0c;至少我是这样的&#xff0c;本文就一起来回顾下吧&#xff01; 1&#xff1a;运行不带包的类 这种相信大多数朋友都记得&#xff0c;直接javac yourCode.java,然后java you…

Camtasia studio2023录屏和后期剪辑的软件

Camtasia 2023是专门用于屏幕录制的软件&#xff0c;功能十分丰富&#xff0c;不仅可以录制电脑屏幕、局部区域和摄像头等&#xff0c;而且还能即时编辑视频&#xff0c;给视频添加转场、旁白、字幕等&#xff0c;能够轻松制作更优秀的视频。 兼顾录屏和后期剪辑的软件—Camtas…

Oracle_EBS_核心功能(MFG)(第二部分)

BOM: Routing工艺路线应用&#xff1a;Bills of Material 职责&#xff1a;Bills of Material 基础业务学习总体说明 Routing&#xff08;工艺路线&#xff09;最终解决的问题是生产过程中加工顺序、资源和用量的标准化。准确度要求在98%以上&#xff0c;要不断与现场比对&…

【离散数学】图论

1、有n个点没有边 零图 2、有1个点没有边 平凡图 3、含有平行边的图 多重图 4、简单图 不含有平行边和自回环的图 5、任意两个结点之间都有边 完全图 6、环贡献 两度 7、所有顶点的度数之和等于边数的两倍 8、在有向图中所有顶点的出度之和 或者 入度之和 等于边数 9、度数为…

特斯拉和OpenAI的加持,马斯克简直人生赢家

赢家已定 商人行事&#xff0c;最重要的因素之一是利益驱动。这里&#xff0c;最服“马斯克”。 以马斯克为首的特斯拉公司周日宣布&#xff0c;将在上海新建一家超级工厂&#xff0c;专门生产该公司的储能产品Megapack。签约的特斯拉储能超级工厂项目也是该公司在美国本土以…

【论文笔记】CRN: Camera Radar Net for Accurate, Robust, Efficient 3D Perception

原文链接&#xff1a;https://arxiv.org/abs/2304.00670 1. 引言 本文提出两阶段融合方法CRN&#xff0c;能使用相机和雷达生成语义丰富且位置精确的BEV特征。具体来说&#xff0c;首先将图像透视特征转换到BEV下&#xff0c;该步骤依赖雷达&#xff0c;称为雷达辅助的视图变换…

大数据技术(入门篇) --- centos7安装CDH6.2集群

随着信息化时代的进步&#xff0c;业务系统的数据量出现了爆发式的增长&#xff0c;带来的不良结果就是数据库的数据量剧增&#xff0c;而部分业务系统需要实时数据&#xff0c;有些业务系统需要离线计算后的数据&#xff0c;所以就产生了大数据技术&#xff0c;因此最近在学习…

面试官:说一说mysql的varchar字段最大长度?

在mysql建表sql里&#xff0c;我们经常会有定义字符串类型的需求。 CREATE TABLE user (name varchar(100) NOT NULL DEFAULT COMMENT 名字 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 ;比方说user表里的名字&#xff0c;就是个字符串。mysql里有两个类型比较适合这个场景。 ch…

剧本拆分如何用ai人工智能辅助完成

随着现代技术的发展&#xff0c;人工智能在电影制作领域中的应用已经越来越普遍。其中&#xff0c;辅助剧本拆分是人工智能技术的一种重要应用。人工智能可以帮助电影制作人员更快速、更准确地进行剧本拆分&#xff0c;提高制作效率和创作质量。 剧本拆分是电影制作中非常重要的…

二叉树的链式结构

思维导图 二叉树的创建 先定义一个二叉树链式结构的结构体 typedef int BTDatatype; typedef struct BinaryTreeNode {struct BinaryTreeNode* left;struct BinaryTreeNode* right;BTDatatype data; }BTNode; 手搓一个二叉树&#xff08;前序遍历的方式创建二叉树放到OJ题…

nm命令 以及 C++11 编译出现找不到stringstream 以及 undefined reference to `std::runtime_error

最近在学习ZLMediaKit 源码 里面用到了很多C11 的知识 本地有一个 ubuntu18.04 的服务器 源码下下来发现 直接编译报很多错误 比如 找不到 std::runtime_error 找不到 stringstream 等等等 后来偶然的机会发现 是libstdc.so.6 太老了 找一个新的 替换掉这个就可以 …

新 Nano(五)自己写个库,读 DHT11 / DHT22

DHT11 这款温湿度传感器 几乎是所有 MCU 入门第一个传感器&#xff0c; 现在看来有些不合时宜&#xff0c; 毕竟过于廉价&#xff0c;数据不太靠谱&#xff0c;远不如 AHT10 好用。早年买了两个&#xff0c;按例程读出数据后就吃灰了。某日看到有人说自己按datasheet去读&#…

c#快速入门~在java基础上,知道C#和JAVA 的不同即可

☺ 观看下文前提&#xff1a;如果你的主语言是java&#xff0c;现在想再学一门新语言C#&#xff0c;下文是在java基础上&#xff0c;对比和java的不同&#xff0c;快速上手C#&#xff0c;当然不是说学C#的前提是需要java&#xff0c;而是下文是从主语言是java的情况下&#xff…

CloudIDE 如何提升研发效能

原文作者&#xff1a;行云创新技术总监 邓冰寒 引言 CloudIDE &#xff0c;一种基于云计算技术开发的云原生集成开发环境&#xff0c;可以帮助企业提高研发效能&#xff0c;实现数字化转型的目标。本文将探讨 CloudIDE 如何在数字化时代体现业务价值、提升研发效能。 CloudID…

【一起撸个DL框架】1 绪论

文章目录第一章 绪论 &#x1f349;1.1 在人工智能的大潮里1.2 为什么重复造轮子1.3 深度学习框架简介第一章 绪论 &#x1f349; 1.1 在人工智能的大潮里 人工智能——一个如今十分火热的话题&#xff0c;人们在生活中越来越多地使用它、谈论它。在2022年之前&#xff0c;人…

ChatGPT会取代律师这份职业吗?

如今&#xff0c;一种新型的人工智能威胁再次来袭&#xff0c;律师们可能会感到似曾相识的感觉。有人警告称&#xff0c;类似于ChatGPT的软件&#xff0c;因为具有类似于人类的语言流畅性&#xff0c;可能会取代大部分法律工作。 人工智能​的进步曾让人们预测&#xff0c;法律…

Linux 网络扫描工具:nmap,涨知识的时间到了!

在Linux系统中&#xff0c;nmap是一个非常流行的网络扫描工具。它可以用于探测主机和网络上的开放端口、操作系统类型、服务和应用程序等信息。nmap还可以与Ping命令结合使用&#xff0c;以便快速识别网络上的活动主机。本文将介绍如何在Linux上使用nmap和Ping命令进行扫描。 …

服务器部署需要注意的事项

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

在win10系统中使用EasyUEFI修复​Win10+Ubuntu双系统​引导启动项

我安装了Win10Ubuntu双系统&#xff0c;有一天电脑突然坏了开不了机&#xff0c;把硬盘拆下放到别的机器上&#xff0c;发现是直接进入Win10系统&#xff0c;而不是grub选择界面。进F12也找不到ubuntu的启动项。 之前网上的修复方法是&#xff1a; 1. 首先你需要一张ubuntu的…

多智能体强化学习论文导读

Adaptive Value Decomposition with Greedy Marginal Contribution Computation for Cooperative Multi-Agent Reinforcement Learning Dec-POMDP 本文的研究对象是 decentralized partially observable Markov decision process (Dec-POMDP), 我们首先来看一下它和经典的MDP…