北航计网课程笔记-六、应用层

news/2025/2/3 17:44:00/文章来源:https://www.cnblogs.com/qiuerOTO/p/18697596

第六章 应用层

应用层概述

应用层对应用程序的通信提供服务。

  • 应用层的功能:
    • 文件传输、访问和管理
    • 电子邮件
    • 虚拟终端
    • 查询服务和远程作业登录
  • 应用层的重要协议
    • FTP
    • SMTP、POP3
    • HTTP
    • DNS

网络应用模型

客户/服务器模型C/S

  • 客户是服务请求方,服务器是服务提供方
  • Web、FTP、远程登录、电子邮件
  • 网络中各计算机地位不平等
  • 网络的管理非常集中和方便
  • 客户机之间不直接通信
  • 可扩展性不佳
  • 服务器的性能决定了整个系统的性能

P2P模型

特点:

  • 典型的分布式计算模型

  • 每个节点都同时具有上传、下载的功能,权利和义务大体对等

  • 任意一对计算机(对等方)直接相互通信

分类:

  • 集中目录式
  • 纯P2P模式
  • 混合式

优点:

  • 减轻了服务器的计算压力,大大提高了系统效率和资源利用率
  • 多个客户机之间可以直接共享文档
  • 可扩展性好
  • 网络健壮性强

缺点:

  • 占用主机内存
  • 使网络拥塞

DNS

域名系统:用来把便于记忆的域名解析为便于机器处理的IP地址。

典型的C/S系统

多层次的、基于域的命名系统,使用分布式数据库实现这种命名机制。

层次域名空间

image-20241229215018609

域名服务器

  • 域名服务器负责把域名解析为IP地址,管辖范围称为。每个区所有节点相通。

  • 因特网上所有主机的映射分布在所有DNS上。

  • DNS域名服务器把数据复制到几个域名服务器来保存,其中的一个是主域名服务器,其他的是辅助域名服务器。

    当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断,提高域名服务器的可靠性。

  • 根域名服务器:负责管理顶级域名的服务器,知道所有顶级域名服务器的IP地址。

    IPv4根域名服务器全球一共13个。

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

  • 权限域名服务器:每台主机都必须在权限域名服务器上登记,权限服务器可以将它所管辖的主机名转化为主机的IP地址。一台主机最好有两个权限域名服务器。

  • 本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。

image-20241229215725991

域名解析过程

  • 递归查询:

    本地域名服务器向根域名服务器查询一次,其余查询递归地在其他几个域名服务器之间进行。

    根域名服务器负载过大。

  • 迭代查询:

    例:查询www.qwq.com

    • 客户机向本地域名服务器发送DNS请求报文
    • 本地域名服务器查询本地缓存,如果没有记录,则以DNS客户机的身份向根域名服务器发送解析请求报文。
    • 根域名服务器收到请求后,判断出域名属于com顶级域,返回com顶级域名服务器IP地址。
    • 本地域名服务器向com顶级域名服务器发送请求解析报文
    • com顶级域名服务器收到请求后,判断域名属于qwq.com,返回qwq.com的授权域名服务器的IP地址。
    • 本地域名服务器向qwq.com的授权域名服务器发送请求解析报文
    • 授权域名服务器收到请求后,判断域名属于www.qwq.com主机,返回这台主机的ip地址。
    • 本地域名服务器将结果保存到 本地缓存,同时返回给客户机
image-20241229215942801 image-20241230221734465 image-20241230221758019

高速缓存

提高查询效率,减少因特网上DNS查询报文数量。DNS服务器在一段时间后会丢弃高速缓存中的信息。

FTP

电子邮件

电子邮件的组成结构

image-20241229223124584

三个主要组成构件:

  • 用户代理(UA):用户与电子邮件系统的接口,通常用户代理就是一个运行在PC上的程序
  • 邮件服务器:
    • 发送和接收邮件,同时还要向发件人报告邮件传送的情况。
    • 以客户/服务器模式工作,但必须能同时充当客户和服务器
  • 电子邮件使用的协议:如SMTP(推)、POP3(拉)等
  • 电子邮件的发送过程:
    1. 发件人写邮件,用户代理用SMTP把邮件发送给发送端邮件服务器。
    2. 发送端邮件服务器把邮件放入缓存队列,等待发送
    3. 发送端SMTP客户进程发现缓存中有待发送邮件,向接收端SMTP服务器发起TCP连接的建立。
    4. TCP连接建立后,发送端SMTP客户进程开始向接收端SMTP服务器发送邮件,发送完毕后关闭TCP连接。
    5. 接收端SMTP进程收到邮件,把邮件放入收信用户邮箱。
    6. 收件人收信时,调用用户代理,使用POP3/IMAP协议将邮件从接收端邮件服务器中取回。

电子邮件格式与MIME

电子邮件格式:

  • 电子邮件由信封和内容组成,内容又分为首部和主体。
  • 首部包含首部行,首部行由关键字 + : + 值组成。最重要的关键字是 ToSubject
  • To:必须的关键字,后面填入一个或多个收件人的电子邮箱地址。格式规定为:收件人邮箱名 @ 邮箱所在主机域名,例如3239695085@qq.com,邮件地址在整个因特网上唯一
  • Subject:可选关键字,邮件的主题,反应邮件的主要内容。

MIME:

  • SMTP只能传送定长的ASCII码邮件,很多语言无法传送
  • MIME在SMTP协议的基础上,增加了主题结构,定义了非ASCII码的编码规则。
  • 内容:
    • 5个新的首部字段:MIME版本,内容描述,内容标识,传送编码和内容类型
    • 定义众多邮件内容格式,对多媒体电子邮件的表示方法进行标准化
    • 定义传送编码,可对任何内容格式进行转化。

SMTP和POP3

SMTP

  • 简单邮件传输协议SMTP:使用C/S方式,发送邮件的SMTP就是客户,接收邮件的就是服务器。
  • SMTP只支持传输7比特的ASCII码内容。
  • 连接建立:
    • 发送方使用端口号25与接收方建立TCP连接。接收方发出220 Service ready的响应,发送方发出HELO命令,并附上发送方主机名
    • 不使用中间的邮件服务器,发送方直接和接收方建立连接。
  • 邮件传送
    • 客户端从 MAIL 命令开始,后跟From首部行。
    • 服务器若准备好接收邮件,回答 250 OK550 No such user here
    • 客户端发送一个或多个 RCPT 命令,后跟To首部行。
    • 每发送一个RCPT命令,都有相应信息从服务器返回。
    • 获得回答后,即确认接收方系统已做好接收邮件准备,客户端发送 DATA 命令,告诉服务器开始传送邮件。
    • 服务器回答 354 Start mail input; end with <CRLF>.<CRLF>,之后客户端发送邮件内容,以 <CRLF>.<CRLF> 结束。
  • 连接释放:
    • 客户端发送QUIT命令,服务器回答221 Service closing transmission channel,表示SMTP同意释放TCP连接,至此邮件传送过程结束。

POP3和IMAP

  • 邮局协议POP:十分简单但功能有限的邮件读取协议。
    • POP采用 C/S工作方式,传输层使用TCP,端口号110。
    • 两种工作方式:下载并保留下载并删除(用户是否可以再次从服务器上读取)
    • 第3个版本 POP3采用拉的通信方式,即用户读取邮件时,用户代理向邮件服务器发出请求,拉取用户邮箱中的邮件。
  • 因特网报文存取协议IMAP:相比POP复杂许多
    • 为用户提供创建文件夹,移动邮件等功能,为此IMAP维护了会话用户的状态信息。
    • IMAP允许用户代理只获取报文的某些部分,例如可以只读取一个报文的首部,或多部份MIME报文的一部分。

常用的邮件读取协议:POP3、IMAP、HTTP

万维网(WWW)

万维网的概念和组成结构

  • 万维网是一个分布式的、联机式的信息存储空间,在此空间中,一样有用过的事物常称为一样资源,并使用一个全域统一资源定位符URL标识。

    这些资源通过超文本传输协议HTTP传送给使用者。

  • 万维网内核部分组成:

    • 统一资源定位符URL:标识万维网上各种文档
    • 超文本传输协议HTTP:应用层协议,使用TCP连接进行可靠传输。
    • 超文本标记语言HTML:一种文档结构的标记语言。
  • URL格式:<协议>://<主机>:<端口>/<路径>

  • 万维网以C/S方式工作,浏览器是在用户主机上的万维网客户程序,万维网文档驻留的主机则运行服务器程序,这台主机称为万维网服务器

    • Web用户用了浏览器与服务器建立连接,发送浏览请求
    • 服务器把URL转化为文件路径,并返回给Web浏览器
    • 通信完成,关闭连接

超文本传输协议HTTP

HTTP是面向事务的应用层协议,规定了浏览器和服务器之间的请求和相应的格式和规则,是万维网上能够可靠地交换文件的重要基础。

HTTP的操作过程

HTTP有两类报文:请求报文和响应报文。

例:访问www.qwq.com

  • 浏览器分析链接指向页面URL(www.qwq.com)
  • 浏览器向DNS请求解析www.qwq.com的IP地址
  • DNS解析出IP地址
  • 浏览器与该服务器建立TCP连接(默认端口80)
  • 浏览器发出HTTP请求:GET/index.htm
  • 服务器通过响应把文件index.htm发送给浏览器
  • 释放TCP连接
  • 浏览器释放文件indx.htm,并将Web页显示给用户。

HTTP的特点

  • HTTP使用TCP作为传输层协议,保证了数据的可靠性,但HTTP本身是无连接的。

  • HTTP是无状态的,同一个客户第二次访问同一个服务器上的页面时,服务器相应与第一次被访问是一样的。

  • HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。实际应用中,通常使用Cookie加数据库的方式跟踪用户的活动

  • Cookie工作原理

    • 当某个用户浏览某个使用Cookie的网站时,该网站的服务器就为用户产生一个唯一识别码,并在用户的响应报文中添加一个Set-cookie的首部行。
    • 用户继续浏览这个网站时,会取出这个网站的识别码,并放入请求报文的首部行。
    • 服务器根据请求报文中的 Cookie识别码 就能从数据库中查询到该用户的活动记录,执行一些个性化操作。
  • HTTP既可以使用非持久性连接,也可以使用持久连接

  • 对于非持久性连接,每个网页元素对象的传输都要单独建立TCP连接。每个对象的引入都要导致 2×RTT 的开销,一次用于建立TCP连接,另一次用于请求和接收文档。这使得万维网服务器的负担很重。

  • 对于持久连接,指的是服务器在发送响应后仍然保持这条连接,使同一个客户和服务器可以继续在这条连接上传送后续的HTTP请求和响应报文。

HTTP的报文结构

  • HTTP是面向文本的,因此报文中每个字段都是一些ASCII码串,且每个字段长度都是不确定的

  • 分为请求报文响应报文,两者都由三部分组成,区别在于开始行不同。

    image-20241230152258848
    • 开始行:区别报文是请求报文还是响应报文。请求报文中称为请求行,响应报文中称为状态行

    • 开始行三个字段之间以空格分隔,最后的CRLF分别表示回车和换行

    • 请求报文的请求行包含三个字段:

      • 方法:表示请求的类型,如 GETPOSTHEAD 等。
      • URL:表示请求的资源的位置。
      • HTTP版本:表示请求报文的HTTP版本。
    • 响应报文的状态行包含三个字段:

      • HTTP版本:表示响应报文的HTTP版本。
      • 状态码:表示服务器对请求的处理结果。
      • 状态码的原因短语:表示状态码的含义。
    • 首部行:用来说明浏览器、服务器或报文主体的一些信息。首部可以有几行,也可以不使用。

      每个首部行中都有首部字段和它的值,每一行结束都要有CRLF。

      整个首部行结束时,还有一个空行将它和后面的实体主体分开。

    • 实体主体:请求报文一般不用,响应报文很少用。

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

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

相关文章

北航计网课程笔记-七、一些总结

复习到最后想开摆了,也没总结啥,只是一些格式……一些总结MAC帧格式IP数据报格式 IP首部20B~60B IP总长最多65535BTCP报文格式 TCP首部20B~60B 数据部分最多65535-20-20 = 65495BUDP报文格式UDP&TCP伪首部格式HTTP报文格式

北航计网课程笔记-一、概述

写在前面:本笔记根据王道408完成,北航软院不考的内容不在其中。 总之复习期末把王道刷一遍就行了。 个人学习用,如有错误敬请指正。第一章 概述 计算机网络概念 计算机网络的定义:一些互联的、自治的计算机的集合,主体是多台计算机,媒介为通信媒介, 目的是通信与资源共享…

北航计网课程笔记-二、物理层

第二章 物理层 物理层的任务:将原始的比特流从一台机器上传输到另一台机器上。 确定与传输媒体的接口特性:机械、电气、功能、规程通信基础 一些基本概念数据,信号和码元数据是传送信息的实体;信号是数据的电气或电磁表现;码元是数字通信中数字信号的计量单位,1码元可以携…

Winform和MFC的一个区别

前段时间我嫌桌面快捷键太多,我使用C语言用MFC制作了桌面自定义系统(上图左),可是这个系统存在一些问题,比如(下图) 默认情况下它的右上角没有最大化和最小化的按钮,而Winform是有的(下图)。 还有一个问题:在任务栏,点击时MFC不能最小化,而Winform可以;还有一个很…

应用中的 PostgreSQL项目案例

title: 应用中的 PostgreSQL项目案例 date: 2025/2/3 updated: 2025/2/3 author: cmdragon excerpt: 随着大数据和云计算的兴起,企业在数据管理和数据分析方面面临着越来越复杂的挑战。PostgreSQL 作为一个开源关系型数据库,凭借其卓越的扩展性和强大的功能,逐渐成为众多企业…

来自aakennes的新年祝福

来自aakennes的新年祝福组题人: @aakennes \(A\) P888. 字符串会上树 \(AC\)基础字符串。点击查看代码 string s,t="",w=""; map<string,string>f; int main() { // #define Isaac #ifdef Isaacfreopen("in.in","r",stdin);fr…

1.3 决定程序流程的程序计数器

CPU先执行0100 CPU每执行一个指令,程序计数器的值就会自动加1 CPU的控制器就会参照程序计数器的数值,从内存中读取命令并执行。 程序计数器决定着程序的流程

【每日一题】20250203

你是万千星球的星球! 你是沸腾的准则!你是精心保存的潜伏的萌芽!你是核心!【每日一题】我国发射的“天宫一号”和“神州八号”在对接前,”天宫一号”的运行轨道高度为 \(350 \; \mathrm{km}\),“神州八号”的运行轨道高度为 \(343 \; \mathrm{km}\).它们的运行轨道均视为…

题解:P11637 Mod

题解:P11637 Mod 题目传送门 思路 一种比较简单的方法。 根据题意,我们可以发现在若干次操作后 \(a\) 能变成 \(0\) 的情况下,操作次数为 \(p-a\)。因为 \(b\) 的操作次数与 \(a\) 相同,所以 \(b\) 的值为 \(b-(p-a)\)。因为题面中要求 \(b\) 为一个自然数,所以自然就分成…

如何在markdown中写出横线除号

在 Markdown 中,您可以使用支持 LaTeX 数学公式的环境来表示“除数在上面,被除数在下面”的数学公式形式。以下是具体方法: 1. 使用分数形式 用 LaTeX 的 \frac 表达分数(除号的形式): 块级公式: $$\frac{a}{b}$$内联公式: $\frac{a}{b}$2. 使用纯文本的替代表示法 如果…

彻底搞懂分布式事务 XA 模式

原文地址: https://developer.aliyun.com/article/783796 简介: XA 协议是由 X/Open 组织提出的分布式事务处理规范,主要定义了事务管理器 TM 和局部资源管理器 RM 之间的接口。目前主流的数据库,比如 oracle、DB2 都是支持 XA 协议的。作者 | 朱晋君来源 | 阿里巴巴云原生…

.net6-jwt实现认证和自定义策略授权

场景 客户端根据用户名和密码访问登录接口获取token,服务端登录接口获取账号和密码进行验证,获取用户的角色,若角色是超级管理员则只能授权访问标记为超级管理员的接口,若角色是管理员则只能授权访问标记为管理员的接口。 实现JWT认证 安装JWT包 Microsoft.AspNetCore.Auth…