计算机网络基础 - 应用层(2)

news2024/11/13 16:21:02

计算机网络基础

  • 应用层
    • 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

    • 客户:发送方邮件服务器
    • 服务器:接收端邮件服务
image-20240822222417842
SMTP
概述

SMTP 是因特网电子邮件的核心,用于从发送方的邮件服务器发送报文到接收方的邮件服务器

  • 持久性链接

  • 报文必须为7位 ASCII 码

  • 使用TCP在客户端和服务器之间传送报文,端口号:25

  • 直接传输:从发送方服务器到接收方服务器,传输的3个阶段

    • 握手
    • 传输报文
    • 关闭
SMTP 与 HTTP1.1

相同点是两者都使用持续连接的方式

不同点:

  • HTTP 协议主要是一个 PULL 的协议,STMP 基本上是一个 PUSH 的协议
  • SMTP 要求每个报文采用7位 ASCII 码,而 HTTP 并没有这种限制
  • SMTP 可以将一个既包含文本又包含图片的文件放在同一个报文中,但是 HTTP 不行
邮件报文格式
报文格式

报文的首部行:每个首部必须含有一个 From 首部行和一个 To 首部行;一个首部也许包含一个 Subject: 首部行以及其他可选的首部行

image-20240823131820135
多媒体扩展 MIME

一种用于扩展电子邮件消息功能的标准,允许电子邮件不仅限于文本,还可以包含各种格式的内容如图像、音频、视频等

  • 它在多媒体内容传输和Web应用中也被广泛应用

  • MIME定义了内容类型(如 text/htmlimage/pngaudio/mpeg 等)以及内容编码方式,从而使得浏览器和其他应用程序能够正确处理和显示这些内容

  • 报文的格式

    image-20240824105017006
邮件访问协议
概述
image-20240823132238282
  • SMTP: 传送到接收方的邮件服务器
  • 邮件访问协议:从服务器访问邮件
    • POP3:邮局访问协议(Post Office Protocol) ;用户身份确认 (代理 <=> 服务器) 并下载
    • IMAP:Internet 邮件访问协议(Internet Mail Access Protocol);在服务器上处理存储的报文
    • HTTP
POP3

一个极为简单的邮件访问协议(本地管理文件夹)

工作过程

当用户代理打开了一个到邮件服务器(服务器)端口 110 上的 TCP 连接后, POP3就开始工作了

  1. 用户代理发送(以明文形式)用户名和口令以鉴别用户
  2. 用户代理取回报文,同时在这个阶段用户代理还能进行如下操作,对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息
  3. 在客户发出了 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 服务器

image-20240825141335109
根 DNS 服务器

根名字服务器由 13个不同的组织管理(根名字服务器提供 TLD 服务器的 ip 地址)

顶级域 DNS 服务器

对于每个顶级域和所有国家的顶级域都有 TLD 服务器(或服务器集群) (TLD 服务器提供了权威 DNS 服务器的 ip 地址)

  • 通用的(.com、.edu、.int 等等)
  • 国家的(.cn、.us、.nl等等)
image-20240824151117670
权威 DNS 服务器

组织机构的DNS服务器, 提供组织机构服务器(如Web和mail)可访问的主机和 ip 之间的映射(组织机构可以选择实现自己维护或由某个服务提供商来维护)

image-20240825142055334
本地DNS服务器

严格说来,一个本地DNS服务器并不属于该服务器的层次结构,但它对DNS层次结构是至关重要

主机的本地DNS服务器通常“邻近”本主机。当主机发出DNS请求时,该请求被发往本地DNS服器,它起着代理的作用,并将该请求转发
到DNS服务器层次结构中,详细的调用过程如下两种

递归查询

名字解析负担都放在当前联络的名字服务器上,解决方式: 迭代查询

image-20240825143810226

迭代查询

  • 根(及各级域名)服务器返回的不是查询结果,而是下一个 DNS 的地址
  • 最后由权威名字服务器给出解析结果

image-20240825143430490

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 只有这两种报文,并且查询和回答报文有着相同的格式

image-20240826130110784
  • 前 12 个字节是首部区域。第一个字段(标识符)是一个 16 比特的数,用于标识该查询(类似于订单号的作用)
  • 问题区域包含着正在进行的查询信息该区域包括:①名字字段 ②类型字段
  • 回答区域包含了对最初请求的名字的资源记录
  • 权威区域包含了其他权威服务器的记录

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

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

相关文章

公司的企业画册如何制作?

企业画册是公司形象和产品服务展示的重要载体&#xff0c;一个制作精良的企业画册不仅能展示公司的实力&#xff0c;也能提升客户对公司专业度的认可。以下是制作企业画册的步骤和要点&#xff0c;帮助你的公司画册既美观又实用。 1.要制作电子杂志,首先需要选择一款适合自己的…

OpenCV结构分析与形状描述符(7)计算轮廓的面积的函数contourArea()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 计算轮廓的面积。 该函数计算轮廓的面积。与 moments 类似&#xff0c;面积是使用格林公式计算的。因此&#xff0c;返回的面积与你使用 drawCo…

Mysql中的隐式COMMIT以及Savepoints的作用以及MySQL的Innodb分空间存储、设计优化、索引等几个小知识点整理

一、Mysql中的隐式COMMIT以及Savepoints的作用 Mysql默认是自动提交的&#xff0c;如果要开启使用事务&#xff0c;首先要关闭自动提交后START TRANSACTION 或者 BEGIN 来开始一个事务&#xff0c;使用ROLLBACK/COMMIT来结束一个事务。但即使如此&#xff0c;也并不是所有的操作…

零知识证明在BSV网络上的应用

​​发表时间&#xff1a;2023年6月15日 2024年7月19日&#xff0c;BSV区块链主网上成功通过使用零知识证明验证了一笔交易。 零知识证明是一种技术&#xff0c;它允许一方&#xff08;证明者&#xff09;在不透露任何秘密的情况下&#xff0c;向另一方&#xff08;验证者&…

TP-link-路由器上网设置(已有路由器再连接新的网线)

一、192.168.0.1进入管理界面&#xff0c;比如密码&#xff1a;D804D804。 二、这是设置连接账户和密码&#xff08;比如账户&#xff1a;TP-LINK_F56C 比如密码&#xff1a;D804D804&#xff09;登录后台管理、移动设备连接。比较固定。 三、 有的网络是分&#xff1a;&#…

JS面试真题 part1

JS面试真题 part1 1、说说JavaScript中的数据类型&#xff0c;储存上的差别2、说说你了解的js数据结构3、DOM常见的操作有哪些4、说说你对BOM的理解&#xff0c;常见的BOM对象你了解哪些5、 和 区别&#xff0c;分别在什么情况使用 1、说说JavaScript中的数据类型&#xff0c;…

K8s的Pv和Pvc就是为了pod数据持久化

一、 1.pv&#xff08;persistent volume&#xff09;&#xff1a;是k8s虚拟化的存储资源&#xff0c;实际上就是存储&#xff0c;列如本地的硬盘、网络文件系统&#xff08;Nfs&#xff09;、lvm、RAID、云存储。 2.pvc&#xff1a;pod对存储资源的请求&#xff0c;定义了需…

MyBatis:解决数据库字段和Java对象字段不匹配问题及占位符问题

MyBatis&#xff1a;解决数据库字段和Java对象字段不匹配问题及占位符问题 文章目录 MyBatis&#xff1a;解决数据库字段和Java对象字段不匹配问题及占位符问题一、数据库字段和Java对象字段不匹配问题1、问题描述2、解决方案2.1、方案12.2、方案22.3、方案3 二、占位符问题1、…

ELK在Linux上部署教程

Docker Compose搭建ELK Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足&#xff0c;我们可以使用下面这条命令来增加内存 sysctl -w vm.max_map_count262144创建Elasticsearch数据挂载路径 mkdir -p /echola/elasticsearch/data对…

Day 3 - 5 :线性表 — 单链表

存储结构 将线性表中的各元素分布在存储器的不同存储块&#xff0c;称为结点。 结点的data域存放数据元素ai&#xff0c;而next域是一个指针&#xff0c;指向ai的直接后继ai1所在的结点。 如果要删除a1&#xff0c;只要修改a1前手元素指针的指向即可。 例如&#xff1a;需要找到…

案例——Mysql主从复制与读写分离

目录 一、为什么需要主从复制 二、主从复制原理 2.1复制类型 2.2mysql主从复制的工作过程 2.2.1mysql主从复制延迟 2.3mysql的三种同步方式 2.3.1异步复制 2.3.2同步复制 2.3.3半同步复制 2.4mysql应用场景 三、主从复制实验 3.1主从服务器事件同步 3.1.1master服务…

Web 地图服务 简介

网络地图服务 网络地图服务 由通过互联网托管的地理空间数据组成&#xff0c;其标准由开放地理空间联盟 (OGC) 制定。WMS 支持在 Web 浏览器中以地图或图像的形式交换空间信息并通过 Web 查看。 网络地图服务有很多种类型。例如&#xff0c;一些最常见的格式是 WMS、WFS、WCS…

C140 杨辉三角

C140 杨辉三角 题目题解(94)讨论(102)排行面经 new 简单 通过率&#xff1a;29.57% 时间限制&#xff1a;1秒 空间限制&#xff1a;256M 知识点C工程师牛客 校招时部分企业笔试将禁止编程题跳出页面&#xff0c;为提前适应&#xff0c;练习时请使用在线自测&#xff0c;…

tomato靶场攻略

1.使用nmap扫描同网段的端口&#xff0c;发现靶机地址 2.访问到主页面&#xff0c;只能看到一个大西红柿 3.再来使用dirb扫面以下有那些目录&#xff0c;发现有一个antibot_image 4.访问我们扫到的地址 &#xff0c;点金目录里看看有些什么文件 5.看到info.php很熟悉&#xff0…

Java对象拷贝的浅与深:如何选择?

在日常开发中&#xff0c;我们经常需要将一个对象的属性复制到另一个对象中。无论是使用第三方工具类还是自己手动实现&#xff0c;都会涉及到浅拷贝和深拷贝的问题。本文将深入讨论浅拷贝的潜在风险&#xff0c;并给出几种实现深拷贝的方式&#xff0c;帮助大家避免潜在的坑。…

SpringBoot开发——整合Logbook进行HTTP API请求响应日志输出

文章目录 1. 简介依赖管理2. 实战案例2.1 基本用法2.2 结合Logback日志记录到文件2.3 自定义核心类Logbook2.4 自定义日志输出Sink2.5 与RestTemplate集成1. 简介 记录HTTP API请求响应日志对于监控、调试和性能优化至关重要。它帮助开发者追踪API的使用情况,包括请求来源、参…

基于ssm+vue+uniapp的“健康早知道”小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

好尴尬,借用的轮子在我这里还是没有运行起来

前期引用flask框架&#xff0c;由于版本不兼容&#xff0c;像是捅了flask-bug的窝。一开始是减低版本&#xff0c;然后一换卡一环&#xff0c;直接百度&#xff0c;试了很多办法都没有成功。 之后添加语句 下面展示一些 内联代码片。 # -*— coding:utf-8 -*— from datetime…

四战搜索,抖音难造“百度”

转载&#xff1a;新熵 原创 作者丨余寐 编辑丨九犁 抖音搜索野心暴露无遗&#xff01;接连4次发起猛攻&#xff0c;这是要颠覆搜索市场的节奏&#xff1f;还是因为流量触顶&#xff0c;急寻新入口&#xff1f; 执念太深&#xff01;抖音还是没放弃搜索&#xff0c;并发起一场…

人工智能在C/C++中的应用

随着技术的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为我们日常生活中不可或缺的一部分。从智能手机的语音助手到自动驾驶汽车&#xff0c;AI的应用无处不在。在众多编程语言中&#xff0c;C和C因其高性能和灵活性&#xff0c;成为实现复杂AI算法的理想选…