计算机网络 | 应用层

计算机网络 | 应用层

  • 计算机网络 | 应用层
    • 应用层概述
    • 网络应用模型
      • 客户/服务器模型(Client/Server,C/S)
      • P2P模型(Peer-to-Peer)
    • 域名系统(DNS)
      • 层次域名空间
      • 域名服务器
      • 域名解析过程
    • 文件传输协议(FTP)
    • 电子邮件
      • 电子邮件格式
      • 电子邮件系统的组成结构
      • 简单邮件传输协议(SMTP)
      • 邮局协议(POP)和因特网报文存取协议(IMAP)
      • 多用途网际邮件扩充(MIME)
      • 基于万维网的电子邮件
      • 小结
    • 万维网(WWW)和超文本传输协议(HTTP)
      • 万维网的概念与组成结构
      • 超文本传输协议(HTTP)
    • 第6章总结

参考视频:王道计算机考研 计算机网络

参考书:《2022年计算机网络考研复习指导》

计算机网络 | 应用层

在这里插入图片描述

应用层概述

不同的网络应用之间需要有一个确定的通信规则。

在这里插入图片描述

网络应用模型

客户/服务器模型(Client/Server,C/S)

在这里插入图片描述

客户/服务器模型的主要特点:

  1. 网络中各计算机的地位不平等。
  2. 客户机之间不直接通信。
  3. 可扩展性不佳。

P2P模型(Peer-to-Peer)

在这里插入图片描述

网络健壮性指的是P2P模型不容易坏掉,即使一个节点坏了也没问题,可以有其他节点代替。

域名系统(DNS)

域名系统(Domain Name System,DNS)是因特网使用的命名系统,用来把特定含义的主机名(网址)转换为便于机器处理的IP地址。

域名系统(DNS)采用C/S模型,是应用层协议,运行在UDP上,端口为53。

注意:

  1. 域名与IP地址、MAC地址、主机都不是一一对应的关系。
  2. 域名在不同的时间可以解析出不同的IP地址。
  3. 因特网上的主机一定要有IP地址,不一定要有域名。

层次域名空间

因特网采用层次树状结构的命名方法。

域名从左向右,级别逐渐增高。

在这里插入图片描述

域名空间的树状结构:

在这里插入图片描述

域名服务器

因特网的域名系统是一个联机分布式的数据库系统,采用C/S模型。

DNS使用了大量的域名服务器,以层次方式组织。
根据层次结构分为三层:

  1. 根域名服务器
  2. 顶级域名服务器
  3. 授权域名服务器(权限域名服务器)

在这里插入图片描述

域名解析过程

域名解析:域名映射成IP地址或IP地址映射成域名。前者为正向解析,后者为反向解析。

域名解析过程:通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报的形式发往本地域名服务器。

域名解析的两种方法:

  1. 递归查询
  2. 递归和迭代相结合的查询

递归查询:

  1. 主机先是想本地域名服务器发送请求,如果查不到的话,
  2. 本地域名服务器向根域名服务器发送请求(找别人),如果还是查不到的话,
  3. 根域名域名服务器向顶级域名服务器发送请求(找别人),如果还是查不到的话,
  4. 顶级域名服务器向权限域名服务器发送请求(找别人)

可以看到每一次向下一个查询的服务器都变了,不是主机一个个去问,而是服务器自己一个个问下去。

递归和迭代相结合的查询:

  1. 主机先是想本地域名服务器发送请求,如果查不到的话,
  2. 本地域名服务器就去向根域名服务器发送请求,如果还是查不到的话,
  3. 根域名域名服务器让本地域名服务器去向对应的顶级域名服务器发送请求,如果还是查不到的话,
  4. 顶级域名服务器让本地域名服务器去向对应的权限域名服务器发送请求
  5. 找到IP地址,本地域名服务器传回给主机

可以看到这里是本地域名服务器一个个挨个问的地址。

在这里插入图片描述

注意:

  1. 递归查询给根域名服务器造成的负载过大,实际几乎不使用。
  2. 为了提高DNS的查询效率,减少因特网上DNS查询报文数量,在域名服务器中广泛使用高速缓存。注意,高速缓存暂存了域名和IP地址的映射,不是永久的。

文件传输协议(FTP)

文件传输协议(File Transfer Protocol,FTP)提供不同种类主机系统之间的文件传输能力。

文件传输协议(FTP)提供交互式访问,允许客户指名文件的类型和格式,并允许文件具有存取权限。

文件传输协议(FTP)采用C/S模型,使用TCP运输。

在这里插入图片描述

文件传输协议(FTP)的工作原理:

在这里插入图片描述

为什么有匿名登陆?

对于一些公共服务器来说,增加验证阶段就是增加资源开销,减少验证阶段就可以节省资源来更好地服务。

主进程和从属进程的区别:

  • 主进程是打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配各从属进程。
  • 从属进程则是单独为这些数据服务。

从属进程:

  1. 客户端和服务器端先建立TCP连接,端口是21,称为控制连接
  2. 服务器创建数据连接,然后看情况是主动建立连接还是被动建立连接。
    主动建立连接(PORT)是指服务器端主动发送请求和客户端进行连接,此时端口号固定是20。
    被动连接(PASV)是指客户端发送请求和服务器端建立数据传送连接,此时端口号是不确定的,由两者协商得到。
  3. 数据传输完成之后,数据连接断开,控制连接继续保持,直至两边发送断开请求。

无论是PORT模式还是PASV模式,选择权在客户端。
PORT是服务器连接到客户端的端口,端口号固定为20;
PASV是客户端连接到服务器的端口,端口号不确定。

在这里插入图片描述

注:这里的主进程被忽略掉了,只是没标在上面,不是没有。

文件传输协议(FTP)的传输模式:

  1. 文本模式(ASCII模式):以文本序列传输数据。
  2. 二进制模式:以二进制序列传输数据。

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一个轻量的、比较容易实现的、面对小文件的、基于UDP的文件传输协议。端口号为69。

电子邮件

电子邮件格式

电子邮件 = 信封 + 内容(首部 + 主体)。

电子邮件地址的规定格式:收件人邮箱名@邮箱所在主机的域名。

在这里插入图片描述

电子邮件系统的组成结构

  • 用户代理(User Agent,UA):用户与电子邮件系统的接口。至少具有撰写、显示、邮件处理等功能。通常情况下,UA就是一个运行在PC上的程序(电子邮件客户端软件)。
  • 邮件服务器:采用C/S模式,能够同时充当客户和服务器。具有发送和接收邮件、向发信人报告邮件传送情况等功能。
  • 邮件发送协议和读取协议:邮件发送协议,如SMTP,采用“推”的通信方式。邮件读取协议,如POP3、IMAP,采用“拉”的通信方式。

在这里插入图片描述

示例:

在这里插入图片描述

注:这三段连接都是TCP连接。

简单邮件传输协议(SMTP)

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)控制两个相互通信的SMTP进程交换信息。

简单邮件传输协议(SMTP)使用C/S模式,采用TCP连接,端口号为25。

在这里插入图片描述

简单邮件传输协议(SMTP)通信的三个阶段:

在这里插入图片描述

STMP客户和服务器不是固定的,可以也可以成为服务器,服务器也可以成为用户,由发送方和接收方决定,发送方就是客户,接收方就是服务器。

邮局协议(POP)和因特网报文存取协议(IMAP)

邮局协议(Post Office Protocol,POP)是一个简单、功能有限的邮件读取协议,现在使用第三个版本POP3。

邮局协议(POP)使用C/S模式,采用TCP连接,端口号为110。

接收方的用户代理上运行POP客户程序,接收方的邮件服务器上运行POP服务器程序。

POP的两种工作方式:

  1. 下载并保留
  2. 下载并删除

因特网报文存取协议(IMAP)为用户提供了创建文件夹、在不同文件夹之间移动邮件、在远程文件夹中查询邮件等联机命令,为此IMAP服务器维护了会话用户的状态信息。

因特网报文存取协议(IMAP)的特性:允许用户代理只获取报文的某些部分。

在这里插入图片描述

多用途网际邮件扩充(MIME)

简单邮件传输协议(SMTP)的缺点:

在这里插入图片描述

多用途网际邮件扩充(Multipurpose Internet Mail Extensions,MIME)主要包括:

  1. 5个新的邮件首部字段,包括MIME版本、内容描述、内容标识、传送编码、内容类型。
  2. 定义了许多邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化。
  3. 定义了传送编码,可对任何内容格式进行转换,而不会被邮件系统改变。

MIME和SMTP的关系:

MIME改善SMTP发送数据的缺点,是SMTP的功能性扩展(并未改变/取代SMTP)。

在这里插入图片描述

MIME协议使电子邮件系统支持声音、图像、视频、多种国家语言等等,使得传输内容变得丰富多彩。

MIME协议已经逐渐开始应用到浏览器当中,通过对不同文件类型用不同的标识符标识,来让浏览器读取通过MIME的相关文件。

基于万维网的电子邮件

在这里插入图片描述

用户浏览器与邮件服务器之间采用HTTP协议,不同的邮件服务器之间采用SMTP协议。

小结

在这里插入图片描述

万维网(WWW)和超文本传输协议(HTTP)

万维网的概念与组成结构

万维网中任意一个事物称为一个“资源”,并由一个唯一的全域“统一资源定位符”(URL)标识。

资源通过超文本传输协议(HTTP)传送给使用者,用户通过单击链接获取资源。

万维网的内核部分由3个标准构成:

  1. 统一资源定位符(URL):用来标识整个互联网当中的某一个资源(文字、视频、音频等)的位置。
  2. 超文本传输协议(HTTP):一个应用层协议,采用TCP连接,用来将这些资源传送给用户。
  3. 超文本标记语言(HTML):一种文档结构的标记语言,帮助设计者来设计页面,让不同设计者设计的页面都可以在界面上显示。

在这里插入图片描述

万维网以C/S方式工作,工作流程:

  1. Web用户使用浏览器指定URL与Web服务器建立连接,发送浏览请求。
  2. Web服务器把URL转换为文件路径,并返回信息给Web浏览器。
  3. 通信完毕,关闭连接。

超文本传输协议(HTTP)

超文本传输协议(HTTP)是面向事务的应用层协议,它规定了在浏览器和服务器之间的请求和响应的格式与规则,是万维网上能可靠地交换文件的基础。

万维网的工作流程:

在这里插入图片描述

服务器通过TCP 80端口来监听HTTP请求。

注意,超文本传输协议(HTTP)可以不一次性下载完页面的所有资源。比如,可以只下载文本部分,其他音频视频等待用户下一步请求之后再传输。

超文本传输协议(HTTP)的特点:

  1. HTTP本身是无连接的:虽然HTTP使用TCP连接,但通信双方在交换HTTP报文之前不需要先建立HTTP连接。
  2. HTTP是无状态的:服务器不记得曾经访问过的客户,也不知道曾经为该客户服务过几次。
  3. HTTP既可以使用非持久连接,也可以使用持久连接(HTTP/1.1支持)。

在这里插入图片描述

注:Cookie由服务器产生,存储在主机,作为识别用户的手段。

超文本传输协议(HTTP)的连接方式:

  • 非持久连接(Connection: Close):每个网页元素对象的传输都需要单独建立一个TCP连接。耗时就是RTT*2+文档传输时间。每次建立新的TCP连接都要分配缓存和变量,对万维网服务器的负担很大。
  • 持久连接(Connection: keep-alive):万维网服务器在发送响应后仍然保持这条连接,使得客户/服务器可以继续在该连接上传送后续的HTTP请求和响应报文。分为非流水线方式和流水线方式。

在这里插入图片描述

非持久连接和持久连接都是在TCP三次握手的第三次握手时发生,将HTTP请求作为第三次握手的数据部分发给服务器,服务器收到请求之后将HTTP响应报文传输给客户。

持久连接的两种方式:

  1. 非流水线方式:客户在收到前一个响应后才能发送新的请求。
  2. 流水线方式:客户可以逐个发送对各个引用对象的请求。连续的请求和响应共计经历一个RTT延迟。

注:HTTP/1.1的默认方式就是使用流水线的持久连接。

超文本传输协议(HTTP)的报文结构:

  1. 开始行:区分请求报文和响应报文。
  2. 首部行:说明浏览器、服务器、报文主体的信息。可用可不用。
  3. 实体主体

在这里插入图片描述

方法:

  1. GET:请求读取由URL标识的信息。
  2. HEAD:请求读取由URL标识的信息的首部。服务器会对该HTTP请求报文进行响应,但不会返回请求对象,其作用主要是调试。
  3. POST:给服务器添加信息(如注释)。
  4. CONNECT:用于代理服务器。

版本:HTTP协议版本,比如HTTP/1.1。

状态码:

在这里插入图片描述

第6章总结

在这里插入图片描述

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

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

相关文章

DevExpress WPF Pivot Grid组件,可轻松实现多维数据分析!(二)

在上文中(点击这里回顾>>)我们主要为大家介绍了DevExpress WPF Pivot Grid组件的超快速枢轴分析功能、Microsoft分析服务等,本文将继续介绍图表透视数据的处理、MVVM支持等。欢迎持续关注我们,探索更多新功能哦~ P.S&#…

【工具】利用ffmpeg将网页中的.m3u8视频文件转化为.mp4格式

目录 0.环境 1.背景 2.前提 3.详细描述 1)在网站上找到你想下载的视频的.m3u8链接 2)打开命令行,用ffmpeg命令进行转化 3)过程&结果截图 0.环境 windows64 ffmpeg 1.背景 网页上有个.m3u8格式的视频文件,…

2023高频前端面试题(含答案)

一、简单页面1、CSS选择器样式优先级2、CSS实现三列布局(左右固定宽度,中间自适应) (1)CSS浮动 第一个float:left,第二个float:right,第三个设置margin-left和margin-right (2&#…

LC-2316. 统计无向图中无法互相到达点对数(DFS、并查集)

2316. 统计无向图中无法互相到达点对数 中等 给你一个整数 n ,表示一张 无向图 中有 n 个节点,编号为 0 到 n - 1 。同时给你一个二维整数数组 edges ,其中 edges[i] [ai, bi] 表示节点 ai 和 bi 之间有一条 无向 边。 请你返回 无法互相…

pandas写入MySQL

安装好pandas、mysql pip install pandas pip install pymysql 导入pandas、mysql import pymysql as mysql import pandas as pd 建立连接 conmysql.connect(host10.10.0.221,userroot,passwordroot,databasepandas,port3306,charsetutf8) 创建游标 curcon.cursor() 读…

vite+vue3.0 使用tailwindcss

参考资料: 安装 - TailwindCSS中文文档 | TailwindCSS中文网 npm install -D tailwindcss npm install postcss npm install autoprefixer npx tailwindcss init -p 生成/src/tailwind.config.js和/src/postcss.config.js配置文件 在/src/tailwind.config.js配置文件…

《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构

为了处理这种长度可变的输入和输出, 可以设计一个包含两个主要组件的编码器-解码器(encoder-decoder)架构: 编码器(encoder):它接受一个长度可变的序列作为输入,并将其转换为具有固定…

httpd服务

文章目录 httpd服务1.安装httpd服务2.开启服务,设置服务开机自启立马生效,并查看服务状态3.查看监听端口4.关闭防火墙,设置防火墙开机不自启立马生效;关闭selinux5.写一个index.html文件,在真机浏览器访问测试效果6.查…

vue3插件开发,上传npm

创建插件 在vue3工程下,创建组件vue页: toolset.vue。并设置组件名称。注册全局组件。新建index.js文件。内容如下,可在main.js中引入index.js,注册该组件进行测试。![在这里插入图片描述](https://img-blog.csdnimg.cn/a3409d2cbeec41c797d5…

linux性能分析(四)CPU篇(一)基础

一 CPU篇 遗留: 负载与cpu关系、负载与线程的关系? ① CPU 相关概念 1、physical 物理CPU个数 --> 一般一个实体 2、cpu 核数 3、逻辑CPU个数 逻辑核 4、超线程 super thread 技术 5、各种cpu的计算方式物理 physical CPU的个数: physical id逻…

【数据结构】队列(C语言实现)

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 队列 1. 队列的概念及结构…

基于侏儒猫鼬优化的BP神经网络(分类应用) - 附代码

基于侏儒猫鼬优化的BP神经网络(分类应用) - 附代码 文章目录 基于侏儒猫鼬优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.侏儒猫鼬优化BP神经网络3.1 BP神经网络参数设置3.2 侏儒猫鼬算法应用 4.测试结果…

嵌入式养成计划-42----QT 创建项目--窗口界面--常用类及组件

一百零五、如何创建 QT 项目 创建工程 New Project / 文件–>新建。。 /ctrl N 选择一个模板–>Application -->Qt Widgets Application 选择创建的路径,以及设置文件名 下一步 输入类名,选择基类为 QWidget 下一步 选择这个玩意&a…

2020年亚太杯APMCM数学建模大赛A题激光标记舱口轮廓生成求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 A题 激光标记舱口轮廓生成 原题再现: 激光是20中的一项重要发明世纪,它被称为“最锋利的刀”、“最精确的尺子”和“最不寻常的光”。 激光已越来越多地应用于工业加工, 其中可以是就业在各种加工业务例如作…

凉鞋的 Godot 笔记 203. 变量的常用类型

203. 变量的常用类型 在上一篇,我们对变量进行了概述和简介,知识地图如下: 我们已经接触了,变量的字符串类型,以及一些功能。 在这一篇,我们尝试多接触一些变量的类型。 首先是整数类型。 整数类型 整…

Vue解决 npm -v 报错(一)

报错内容: npm WARN config global --global, --local are deprecated. Use --locationglobal instead. 解决方案: 代码: prefix -g 替换为: prefix --locationglobal 原创作者:吴小糖 创作时间:2023.1…

redis部署与管理

一、关系数据库与非关系型数据库: 1. 关系型数据库: 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种…

【异步爬虫】requests和aiohttp中代理IP的使用

前言 在进行爬虫开发时,我们常常需要使用代理IP来隐藏自己的真实IP地址,以避免被一些网站限制或封禁。requests和aiohttp是两个非常常用的工具,本文将分别介绍如何在它们中使用代理IP,希望可以帮助大家更好地进行异步爬虫开发。 …

天鹰340亿(AquilaChat2-34B-16K)本地部署的解决方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

51单片机仿真软件 Proteus 8 Pro 安装步骤

51单片机仿真软件 Proteus 8 Pro 安装步骤 学习 51 单片机的时候,如果手头没有开发板,可以使用仿真软件 Proteus。Proteus 可以仿真 51 单片机及周边元器件(例: LED) 的运行情况。 可以简单认为:Proteus …