计算机网络基础
- 应用层
- FTP 与 EMail
- 文件传输协议 FTP
- 电子邮件 EMail
- 主要组成部分
- SMTP
- 概述
- SMTP 与 HTTP1.1
- 邮件报文格式
- 报文格式
- 多媒体扩展 MIME
- 邮件访问协议
- 概述
- POP3
- IMAP
- DNS
- 概述
- 域名结构
- 工作机理
- 集中式设计
- 分布式、层次数据库
- 根 DNS 服务器
- 顶级域 DNS 服务器
- 权威 DNS 服务器
- 本地DNS服务器
- DNS 缓存
- 记录和报文
- 资源记录
- 报文
大家好呀!我是小笙,本章我主要分享计算机网络基础 - 应用层(2)学习总结,希望内容对你有所帮助!!
应用层
FTP 与 EMail
文件传输协议 FTP
- 有状态的协议
- 向远程主机上传输文件或从远程主机接收文件
- ftp服务器端口号为 21
FTP客户端与FTP服务器上传下载过程
- FTP客户端与FTP服务器通过端口 21 联系,并使用TCP作为传输协议
- 客户端通过控制连接获得身份确认
- 客户端通过控制连接发送命令浏览远程目录并上传/下载文件
- 收到一个文件传输命令时,服务器打开一个到客户端的数据连接
- 一个文件传输完成后,服务器关闭连接
- 服务器打开第二个TCP数据连接用来传输另一个文件
注意:建立的控制连接和数据连接不在同一个进程端口上
建立数据连接的模式
- 主动模式时,服务器的20号端口主动与客户端的随机端口建立传递数据的连接
- 被动模式时,服务器告知客户端,让其与服务器的某一指定端口建立数据连接,但客户端的端口依然是随机的
电子邮件 EMail
电子邮件是一种异步通信媒介,现代电子邮件具有许多强大的特性,包括具有附件、超链接、 HTTP 格式文本和图片的报文
主要组成部分
-
用户代理 又名 “邮件阅读器”
- 撰写、编辑和阅读邮件 如Outlook、Foxmail
- 输出和输入邮件保存在服务器上
-
邮件服务器
- 邮箱中管理和维护发送给用户的邮件
- 输出报文队列保持待发送邮件报文
-
简单邮件传输协议 SMTP
- 客户:发送方邮件服务器
- 服务器:接收端邮件服务
SMTP
概述
SMTP 是因特网电子邮件的核心,用于从发送方的邮件服务器发送报文到接收方的邮件服务器
-
持久性链接
-
报文必须为7位 ASCII 码
-
使用TCP在客户端和服务器之间传送报文,端口号:25
-
直接传输:从发送方服务器到接收方服务器,传输的3个阶段
- 握手
- 传输报文
- 关闭
SMTP 与 HTTP1.1
相同点是两者都使用持续连接的方式
不同点:
- HTTP 协议主要是一个 PULL 的协议,STMP 基本上是一个 PUSH 的协议
- SMTP 要求每个报文采用7位 ASCII 码,而 HTTP 并没有这种限制
- SMTP 可以将一个既包含文本又包含图片的文件放在同一个报文中,但是 HTTP 不行
邮件报文格式
报文格式
报文的首部行:每个首部必须含有一个 From 首部行和一个 To 首部行;一个首部也许包含一个 Subject: 首部行以及其他可选的首部行
多媒体扩展 MIME
一种用于扩展电子邮件消息功能的标准,允许电子邮件不仅限于文本,还可以包含各种格式的内容如图像、音频、视频等
-
它在多媒体内容传输和Web应用中也被广泛应用
-
MIME定义了内容类型(如
text/html
、image/png
、audio/mpeg
等)以及内容编码方式,从而使得浏览器和其他应用程序能够正确处理和显示这些内容 -
报文的格式
邮件访问协议
概述
- SMTP: 传送到接收方的邮件服务器
- 邮件访问协议:从服务器访问邮件
- POP3:邮局访问协议(Post Office Protocol) ;用户身份确认 (代理 <=> 服务器) 并下载
- IMAP:Internet 邮件访问协议(Internet Mail Access Protocol);在服务器上处理存储的报文
- HTTP
POP3
一个极为简单的邮件访问协议(本地管理文件夹)
工作过程
当用户代理打开了一个到邮件服务器(服务器)端口 110 上的 TCP 连接后, POP3就开始工作了
- 用户代理发送(以明文形式)用户名和口令以鉴别用户
- 用户代理取回报文,同时在这个阶段用户代理还能进行如下操作,对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息
- 在客户发出了 quit 命令之后,目的是结束该 POP3 会话;这个时候该邮件服务器删除那些被标记为删除的报文
注意
- 可以使用下载并删除、下载并保留两种模式
- 下载并删除模式:如果改变客户机,客户就不能阅读邮件
- 下载并保留模式:不同客户机上为报文进行拷贝
- 在用户代理与邮件服务器之间的POP3会话期间,该POP3服务器保留了一些状态信息,特别是记录了哪些用户报文被标记为删除了;然而,POP3服务器并不在POP3会话过程中携带状态信息,会话中不包括状态信息大大简化了POP3服务的实现(在会话中是无状态的)
IMAP
一种用于电子邮件客户端与邮件服务器之间通信的协议(远程管理文件夹)
它允许用户在服务器上管理和访问电子邮件,而不仅仅是下载到本地客户端;IMAP特别适合于需要在多个设备上访问相同邮箱的场景,例如在手机、电脑和其他设备上查看邮件
- IMAP 服务器将每个报文与一个文件夹联系起来
- 允许用户用目录来组织报文
- 允许用户读取报文组件
- 在会话过程中保留用户状态: 目录名、报文ID与目录名之间映射
DNS
概述
为其他应用提供服务的应用
- 运行在UDP之上端口号为53的应用服务
- 核心的 Internet 功能,但以应用层协议实现,在网络边缘处理复杂性
DNS 主要用来做什么?
主要目的
ip 地址(ip 地址标识主机、路由器)不好记忆,不便人类使用,一般倾向于使用一些有意义的字符串来标识 Internet上的设备,例如:百度 https://www.baidu.com/baidu
然而路由器则喜欢定长的、有着层次结构的 ip 地址,例如:127.0.0.1
因此为了折中这些不同的方式,需要一种能进行主机名到 ip 地址转换的应用服务
其它目的
- 主机别名到规范名字的转换
- 邮件服务器别名到邮件服务器的正规名字的转换
- 负载均衡:当客户对映射到某地址集合的名字发出一个 DNS 请求时,即服务器用 ip 地址的整个集合进行响应,但在每个回答中循环这些地址次序
域名结构
-
每个(子)域下面可划分为若干子域,树叶是主机
-
域名:从本域往上,直到树根;中间使用 “.” 间隔不同的级别,例如:www.baidu.com
域与物理网络无关
- 域遵从组织界限,而不是物理网络
- 一个域的主机可以不在一个网络
- 一个网络的主机不一定在一个域
- 域的划分是逻辑的,而不是物理的
工作机理
集中式设计
客户直接将所有查询直接发往单一的 DNS 服务器,同时该 DNS 服务器直接对所有的查询客户做出响应。尽管这种设计的简单性非常具有吸引力,但它不适用于当今的因特网,因为因特网有着数量巨大的主机,存在如下问题
- 单点故障:如果该 DNS 服务器崩溃,整个因特网随之瘫痪
- 通信容量:单个 DNS 服务器不得不处理所有的 DNS 查询(上亿台)
- 远距离的集中式数据库:单个 DNS 服务器不可能"邻近"所有查询客户
- 维护:单个 DNS 服务器将不得不为所有的因特网主机保留记录
分布式、层次数据库
为了处理扩展性问题, DNS 使用了大量的 DNS 服务器 ,它们以层次方式组织,并且分布在全世界范围内。大致分成3种类型的 DNS 服务器,根 DNS 服务器、顶级域 DNS 服务器和权威 DNS 服务器
根 DNS 服务器
根名字服务器由 13个不同的组织管理(根名字服务器提供 TLD 服务器的 ip 地址)
顶级域 DNS 服务器
对于每个顶级域和所有国家的顶级域都有 TLD 服务器(或服务器集群) (TLD 服务器提供了权威 DNS 服务器的 ip 地址)
- 通用的(.com、.edu、.int 等等)
- 国家的(.cn、.us、.nl等等)
权威 DNS 服务器
组织机构的DNS服务器, 提供组织机构服务器(如Web和mail)可访问的主机和 ip 之间的映射(组织机构可以选择实现自己维护或由某个服务提供商来维护)
本地DNS服务器
严格说来,一个本地DNS服务器并不属于该服务器的层次结构,但它对DNS层次结构是至关重要
主机的本地DNS服务器通常“邻近”本主机。当主机发出DNS请求时,该请求被发往本地DNS服器,它起着代理的作用,并将该请求转发
到DNS服务器层次结构中,详细的调用过程如下两种
递归查询
名字解析负担都放在当前联络的名字服务器上,解决方式: 迭代查询
迭代查询
- 根(及各级域名)服务器返回的不是查询结果,而是下一个 DNS 的地址
- 最后由权威名字服务器给出解析结果
DNS 缓存
为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用了缓存技术
- DNS缓存的原理非常简单。在一个请求链中,当某DNS服务器接收一个DNS回答(包含某主机名到 ip 地址的映射)时,它能将映射缓存在本地存储器中
- 由于主机和主机名与 ip 地址间的映射并不是永久的,DNS服务器在一段时间后(通常设置为两天)将丢弃缓存的信息
记录和报文
资源记录
- 作用:维护域名 - ip 地址(其它)的映射关系
- 位置:Name Server的分布式数据库中
- RR格式: (Domain_name,Ttl,Type,Class,Value)
- Domain_name: 域名
- Ttl: time to live : 生存时间,决定了资源记录应当从缓存中删除的时间
- Class 类别 :对于Internet,值为 IN
- Value 值:可以是数字,域名或ASCII串
- Type 类别:资源记录的类型
对于不同的 Type 类型,转换的方式不同,如下
- Type = A:Name 为主机;Value 为 ip 地址
- Type = CHAME:Name 为规范名字的别名;Value 为规范名字
- Type = NS:Name 为域名;Value 为该领域的权威服务器的域名
- Type = MX:Name 为邮件服务器的规范名字的别名;Value 为邮件服务器的规范名字
报文
DNS 只有这两种报文,并且查询和回答报文有着相同的格式
- 前 12 个字节是首部区域。第一个字段(标识符)是一个 16 比特的数,用于标识该查询(类似于订单号的作用)
- 问题区域包含着正在进行的查询信息该区域包括:①名字字段 ②类型字段
- 回答区域包含了对最初请求的名字的资源记录
- 权威区域包含了其他权威服务器的记录