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

news/2024/5/7 16:10:04/文章来源:https://blog.csdn.net/baidu_39514357/article/details/130070728

文章目录

  • 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.luyixian.cn/news_show_96330.aspx

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

相关文章

CSDN,感谢遇见【我的一周年创作纪念日】

机缘 第一次遇见CSDN已经是7年前的事了&#xff0c;那时的我还是一名初二的学生&#xff0c;由于沉迷于玩具战争这款游戏&#xff08;很遗憾这款游戏已经停服&#xff09;&#xff0c;里面有许多大佬利用各种手段去开挂&#xff0c;所以我意外的接触到了浏览器抓包等计算机技术…

Kafka消费者组和分区再均衡

应用程序使用KafkaConsumer向Kafka订阅主题&#xff0c;并从订阅的Topic上接收消息。 要想知道如何从Kafka读取消息&#xff0c;需要先了解消费者和消费者组的概念。 1、消费者和消费者组 原因&#xff1a;假设我们有一个应用程序需要从一个Kafka Topic中读取消息并验证&…

C++实现前缀树

文章目录1. 什么是前缀树2. 前缀树的实现2.1 前缀树的基本结构2.2 插入2.3 word出现了几次2.3 word作为前缀出现几次2.4 删除1. 什么是前缀树 假设这里有一个字符串数组&#xff0c;和一个树的根结点&#xff1a; 这个结点的pass意思是&#xff1a;有几个字符通过了这个结点。…

(学习日记)2023.4.10

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

Jetpack Compose之对话框和进度条

概述 对话框和进度条其实并无多大联系&#xff0c;放在一起写是因为两者的内容都不多&#xff0c;所以凑到一起&#xff0c;对话框是我们平时开发使用得比较多的组件&#xff0c;像隐私授权&#xff0c;用户点击删除时给用户提示这是一个危险操作等&#xff0c;进度条的使用频…

npm与node版本不匹配问题解决思路

1.报错 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: ‘electron-packager17.1.1’, npm WARN EBADENGINE required: { node: ‘> 14.17.5’ }, npm WARN EBADENGINE current: { node: ‘v12.22.9’, npm: ‘8.5.1’ } npm WARN EBADENGINE } np…

3款免费好用的电脑录屏工具

案例&#xff1a;电脑录屏工具哪款免费又好用&#xff1f; “我想要挑选一款适合自己的好用的电脑录屏软件&#xff0c;但是我尝试了很多款录屏软件结果都不尽人意。免费版的软件功能少&#xff0c;录制效果差&#xff0c;想要高级功能需要付费解锁。想问问大家有没有免费好用…

Mybatis操作Oracle中的Clob和Blob字段

文章目录Mybatis操作Oracle中的Clob和Blob字段1. Oracle中创建测试的表结构&#xff1a;Byte_Array_Test2. Mybatis配置MapperXml&#xff0c;用Map<String, Object>接受Clob和Blob的数据&#xff0c;如下图&#xff1a;3. 代码中获取Clob和Blob的值3-1 接收Blob和Clob数…

每日做题总结——day01

目录 选择题 for循环 指针数组 位段 getchar 大小端存储 进制与格式控制符 位运算 数组指针 二维数组的存储 计算二进制中1的个数 斐波那契数列求递归次数 编程题 删除公共字符 排序子序列 倒置字符串 选择题 for循环 解析&#xff1a;该题主要看for…

el-form, 时间选择器,不管选择什么时间范围,值一直是当月一号

yyyy-MM-DD 修改为 yyyy-MM-dd 就好了&#xff0c;bug千奇百怪 修改前 修改后

极致低延迟收集器ZGC探索——亚毫秒级,常数级暂停O(1)原理

ZGC 收集器 ZGC收集器&#xff08;Z Garbage Collector&#xff09;是由Oracle公司为HotSpot JDK研发的&#xff0c;最新一代垃圾收集器。有说法使用这个名目标是取代之前的大部分垃圾收集器&#xff0c;所以才叫ZGC&#xff0c;表示极致的Extremely&#xff0c;或者最后的&am…

RHCE——shell脚本练习

一.实验要求 1、判断web服务是否运行&#xff08;1、查看进程的方式判断该程序是否运行&#xff0c;2、通过查看端口的方式判断该程序是否运行&#xff09;&#xff0c;如果没有运行&#xff0c;则启动该服务并配置防火墙规则。 ​2、使用curl命令访问第二题的web服务&#xff…

Vulnhub靶场DC-1练习

目录0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用0x00 准备 下载链接&#xff1a;https://download.vulnhub.com/dc/DC-1.zip 介绍&#xff1a;There are five flags in total, but the ultimate goal is to find and read the flag in root’s home dir…

Linux宝塔安装msyql服务,默认密码,允许远程登录问题解决

一、首先我在宝塔安装mysql服务是5.7 1.1MySQL数据库5.6之前&#xff08;不包括&#xff09;默认密码为空&#xff0c;用户不用输入密码&#xff0c;直接回车登陆 mysql -uroot -p password:(空) 1.2.MySQL数据库5.6之后&#xff08;包括&#xff09;默认密码是MySQL数据库随机…

Springboot基础学习之(十四):修改使用数据库中的数据源,修改为Druid:通过Druid实现后台监控

文章的顺序&#xff0c;是本人学习Springboot这个框架的先后顺序 这一篇文章讲解的是如何整合数据库中的数据源 Java程序很大一部分要操作数据库&#xff0c;为了提高性能操作数据库的时候&#xff0c;又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实…

web综合

一&#xff0c;基于域名访问www.openlab.com 在文件当中写入IP与域名的映射关系 在windows中写入 也可以在客户端的/etc/hosts下写入映射关系 创建目录 [rootserver ~]# mkdir -pv /www/openlab 将所需要的内容写入对应目录当中 [rootserver ~]# echo welcome to openlab ! &…

五分钟排查Linux的健康状态

五分钟排查Linux的健康状态1. CPU1.1 top命令1.2 什么是负载1.3 vmstat2. 内存2.1 观测命令2.2 CPU缓存2.3 HugePage2.4 预先加载3. I/O3.1 观测命令3.2 零拷贝4. 网络参考&#xff1a;《Linux运维实战》、xjjdog 操作系统作为所有程序的载体&#xff0c;对应用的性能影响是非常…

华为运动健康服务Health Kit 6.10.0版本新增功能速览!

华为运动健康服务&#xff08;HUAWEI Health Kit&#xff09;6.10.0 版本新增的能力有哪些&#xff1f; 阅读本文寻找答案&#xff0c;一起加入运动健康服务生态大家庭&#xff01; 一、 支持三方应用查询用户测量的连续血糖数据 符合申请Health Kit服务中开发者申请资质要求…

初识掌控板2.0、官方拓展板和配套编程软件mpython

不是广告&#xff01;&#xff01;不是广告&#xff01;&#xff01; 一、掌控板2.0概览 掌控板又名掌上联网计算机&#xff0c;是一款为青少年学习Python编程和创意制造&#xff0c;特别是物联网应用而设计的开源硬件。内置microPython开源嵌入式Python运行环境&#xff0c;可…

查询优化器:选择最优的查询路径

当我们通过解析器理解了SQL语句要干什么之后&#xff0c;接着会找查询优化器&#xff08;Optimizer&#xff09;来选择一个最优的查询路径。 可能有同学这里就不太理解什么是最优的查询路径了&#xff0c;这个看起来确实很抽象&#xff0c;当然&#xff0c;这个查询优化器的工…