计算机网络--第六章应用层

news/2024/9/17 9:33:59/ 标签: 计算机网络, 考研

image-20220815215237265

应用层概述

image-20220815215251033

虚拟终端可以使个人计算机的用户直接使用他人的个人计算机来和大型计算机进行联系而不必使用一些专门的终端,从而方便地使用大型计算机的一些功能

一、网络应用模型

①客户/服务器模型(Client/Server)

image-20220815215256456

有一个总是打开的服务器,用于服务其余客户机的请求。

特点:

  • 服务器处于接收状态
  • 客户机发出服务请求,并等待接收结果
  • 服务器收到请求后,分析请求,进行必要的处理,得到结果发送给客户机
  • 客户是服务请求方,服务器是服务提供方(最主要特征)
  • 服务器可以通过权限限制客户机
  • 客户机之间不可以相互通信
  • 可扩展性不强

②P2P模型(Peer-to-Peer)

没有服务器,任意计算机称为对等方。

image-20220815215302697

特点:

  • 无服务器
  • 客户机之间可以共享文档
  • 可扩展性好
  • 网络健壮性强

二、域名解析系统DNS系统

用户访问网站就是主机和另一台主机进行远程通信和资源交换,用户的主机通过IP地址找到对方网站的主机

但现实中通常访问网站时是通过域名,而不需要知道网站服务器的IP地址、

1.层次域名空间

因特网采用树状命名方式。任何一个主机连接到因特网主机或路由器都有一个唯一的层次结构名称。

一个域名由被点. 分割开的标号组成

每个标号可以有英文字母和数字,还可以有横杠-。不超过63个字符(一般不超过12字符),不区分大小写字母,标号自左向右级别由低到高。

image-20220815215310521

image-20220815215318685

以上就是用域名树的形式表示的整个域名系统。分布在各地的域名服务器实现域名系统

2.域名服务器

域名到IP地址的解析是由运行在域名服务器上的程序完成的。

DNS服务器根据树形结构的域名系统进行层次划分,按照层次划分为几种不同的类型

  1. 根域名服务器:最高层次,最重要的域名服务器,知道所有顶级域名服务器的域名和对应IP地址。因特网上任何一个域名服务器只要自己无法解析,就首先求助于根域名服务器。一共有13个根域名服务器。

  2. 顶级域名服务器:管理在该顶级域名服务器注册的所有二级域名。

  3. 权限域名服务器:负责一个区的域名服务器,每台主机都要在权限域名服务器处登记。能将其管辖的主机名转化为该主机的IP地址

  4. 本地域名服务器(实际上不属于域名服务器的层次结构,但对域名系统非常重要):当主机发出DNS查询请求时,将查询报文发送给本地域名服务器。

image-20220815215326500

3.域名解析过程

image-20220815215338751

①递归查询

主机向本地域名服务器的查询都是递归查询

当主机所询问的本地域名服务器不知道被查询的域名IP时,本地域名服务器以DNS客户的身份向根域名服务器发出查询。递归查询中本地域名服务器只要查询一次

②迭代查询:

本地域名服务器向其他服务器查询采用递归查询(靠别人)和迭代查询(靠自己

为了调高DNS查询的效率引入高速缓存的概念,高速缓存用来存放最近查过的域名的相关映射信息。(首先访问高速缓冲)

题目:

最短时间为其高速缓冲中含有对应的映射信息,直接查找高速缓冲没有延时,注意本题是还需要进行http的连接,也就是需要三次握手,其中三次握手包含有1.5个RTT,同时,页面数据的传输需要0.5个RTT,所以总共需要2RTT也就是20ms。

最长时间为高速缓冲中没有数据,则需要访问域名服务器,注意是迭代查询首先主机向本地域名服务器发送请求,本地域名服务器高速缓冲中没有,(同时注意题干,本地域名服务器与主机处于局域网中,不考虑延时)就需要向根域名服务器发送请求,根域名服务器返回;③本地域名服务器在向顶级域名服务器发送请求,顶级域名服务器返回;本地域名服务器在向权限域名服务器发送,权限域名服务器返回对应信息。最后进行三次握手,数据传输,总共5个RTT,也就是50ms。

三、文件传送协议FTP

是因特网上使用最为广泛的文件传输协议。提供交互式访问,允许客户指明文件的类型与格式,并允许文件具有存取权限

1.FTP工作原理

功能:

提供不同种类主机系统之间的文件传输能力(硬件软件体系均可以不同)

FTP协议可以屏蔽不同操作系统之间的差异性

注意!!!!:

 采用客户/服务器工作方式,使用TCP的可靠传输服务。

FTP服务器的数据流程: 应用层-->传输层--->网络层--->数据链路层--->物理层

FTP服务器和用户端

image-20220819095332883

image-20220815215402695

FTP服务器和客户端都可以有一个或多个,一个FTP服务器或者说一个FTP服务器的进程可以同时为多个客户进程提供服务,FTP服务器的进程由1个唯一的主进程和n nn个从属进程两大部分组成。

主进程负责接收新的请求,工作时首先打开服务器实现文件传输的熟知端口21,端口打开后客户进程才可以成功连接。然后它只需要等待客户进程发出连接请求,新请求分配相应的从属进程处理,每一个从属进程都可以处理单个的客户请求。

2.控制连接与数据连接

image-20220819102056190

控制进程和数据传送进程都属于从属进程,上图中并没有画出主进程

①控制连接

服务器监听21端口,等待客户连接,此端口上的连接称为控制连接。FTP客户发出的传送请求,通过控制连接发送给服务器端的控制进程。控制连接客户端和服务器端只要建立会话并且会话还未结束控制连接就会始终保持。

②数据连接

服务器端的控制进程会在接收到FTP客户端发来的文件传输请求之后创建数据传送进程并且创建数据连接,数据连接才是实际用于传送文件的连接文件传输完毕之后就会关闭。端口为20

控制连接和数据连接相互区分,因此FTP的控制信息带外传送

3.数据传输模式 

①主动方式(PORT)

客户进程向服务器进程发出建立连接请求,寻找连接服务器进程的熟知端口21,同时告知自身进程的端口号用于建立数据连接。服务器端使用自身传送数据的熟知端口20与客户进程刚刚提供的端口号建立数据连接

何为主动?建立控制连接后服务器端主动告知客户端自身的端口是20。

②被动方式(PASV)

前半部分相同,建立控制连接后客户端会向服务端请求一个端口号,服务器返回一个>1024的端口

四、电子邮件

image-20220815215426905

电子邮件是一种异步通信的方式。 

1.电子邮件系统的组成结构

image-20220820174113862

注意!!!!!!!!:
用户代理--邮件服务器:STMP
邮件服务器--邮件服务器:STMP
邮件服务器--用户代理:POP3

①用户代理(UA)

用户和电子邮件系统的接口含有撰写,显示,邮件处理的功能

②邮件服务器

功能:发送接收邮件,向发件人报告邮件的传送的情况(已交付,被拒绝,丢失)。
长时间运作。采用C/S方式,可同时充当服务器和客户。

相关协议(TCP协议):
SMTP:发送方主机 → \to→ 发送方邮件服务器、发送方邮件服务器 → \to→ 接收方邮件服务器
POP3、IMAP:接收方邮件服务器 → \to→ 接收方主机

都使用TCP连接 

image-20220815215451759

2. 电子邮件格式与MIME

①电子邮件格式

image-20220820173434647

一个电子邮件分为信封内容两部分,内容分为首部和主体两部分。  

  • 首部:包含一些首部行,每行由一个关键字后跟值。最重要的关键字式to与subject
  • to:必填关键字,后填收件人邮箱地址    收件人邮箱名@邮箱所在主机的域名
  • subject:可选关键字,为邮件内容
  • From:必填关键字,由邮件系统自动生成。
  • 首部和主体之间有空行。

②多用途因特网邮件扩展(MIME) 

SMTP的缺点:

  1. 不能传送可执行文件/二进制对象
  2. 仅限于传送7位ASCII码,不能传送非英语国家的文字
  3. 会拒绝超过一定长度的邮件

image-20220815215512269

3.SMTP与POP3

①SMTP简单邮件传输协议 

提供可靠且有效电子邮件传输协议

特点如下:

  1. SMTP规定了在两个相互通信的SMTP进程之间应如何交换信息。

  2. 负责发送邮件的SMTP进程就是SMTP客户负责接收邮件的进程就是SMTP服务器。

  3. SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。

  4. 建立在TCP连接之上,使用端口号25C/S方式。

  5. SMTP通信三个阶段连接建立 → \to→ 邮件传送 → \to→ 连接释放

    image-20220815215504079

    A表示SMTP客户端,B表示SMTP服务器端

②邮局协议POP3

image-20220815215527148

接收端邮件服务器作为POP3服务器,接收方作为POP3客户

特点: 

  • TCP
  • C/S
  • 110端口
  • 两种工作方式:下载并保存下载并删除

下载并保存:用户从邮件服务器上读取邮件后,邮件依旧保存在邮件服务器上。 

下载并删除:用户从邮件服务器上读取邮件后,邮件从邮件服务器上删除。 

传输层中以明文形式传输 。基于ASCII码,不可以传输二进制数(MIME转化

③网际报文存取协议IMAP

同样是接收端邮件服务器到用户代理环节所使用的协议,IMAP协议比POP协议复杂,其为用户提供了创建文件在不同文件之间移动邮件远程文件夹中查询等联机命令

IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件,还允许只读取邮件中的某一个部分(先看正文,有WiFi的时候再下载附件)

基于万维网的电子邮件

image-20220815215539706

五、万维网和HTTP协议

1.万维网概述

image-20220821163858856

万维网内核的三个标准:

  1. 统一资源定位符(URL):每个文档在整个万维网的范围内的唯一标识符
  2. 超文本传输协议(HTTP):一个应用层协议,使用TCP连接的可靠传输,是万维网客户程序和服务器程序之间所必须严格遵守的协议。
  3. 超文本标记语言(HTML):文档结构的标记语言,对页面上的各种信息(文字,图像,声音,视频),格式进行描述。

URL的格式: 协议类型://服务器地址[:端口]/路径。

2.超文本传输协议HTTP

HTTP协议定义了浏览器(万维网客户端进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。

①HTTP的操作过程

image-20220821170432096

每一个万维网的网点都会有对应的服务器进程,这个进程会不断监听TCP的80端口当监听到连接请求后便与浏览器建立TCP连接

访问web的顺序:
用户要浏览一个界面,可以输入URL或者在界面上点击相关的超链接请求服务。一旦服务器监听到连接建立请求并且和客户之间建立好TCP连接之后,浏览器就可以开始向万维网服务器发出浏览界面的请求,也就是开始发送一个HTTP请求报文来请求相关的文档。
服务器收到请求报文后就会把请求的资源以文档的形式放入HTTP响应报文返回给客户端,最后就可以释放TCP连接并且在客户机的界面上显示。

②HTTP的特点

  • 使用TCP作为传输层的协议,但本身无连接的(通信双方在交换HTTP报文之前不需要建立HTTP)
  • HTTP是无状态的:同一个客户第二次访问同一个服务器上的页面,服务器的响应与第一次被访问时相同(服务器不记得曾今访问过这个客户)
  • 实际应用中使用cookie+数据库来跟踪用户活动。cookie原理:用户初次浏览某个使用cookie的网站,该网站服务器就会为该用户生成一个唯一的cookie识别码,并建立一个项目来记录用户访问该网站的各种信息。
  • HTTP既可以使用非持续连接(HTTP/1.0),也可以使用持续连接(HTTP/1.1)

image-20220815215611277​ image-20220821172833056

非持久连接:

  1. 第一个RTT进行三次握手的前两部分
  2. 客户端在第二个RTT进行三次握手的第三部分(HTTP请求报文作为数据)
  3. 由于HTTP响应报文有长度,因此总时间为 2RTT+文档传输时间

如果万维网客户要再发送HTTP请求报文,需要重新建立TCP连接。(每个网页元素对象的传输都需要单独建立一个TCP连接)

持久连接:

持久连接同样要经过三次握手,但服务器发送响应后在一定时间内仍然保持连接。如果要再次发送新的请求报文就不需要重新建立TCP连接,直接在之前建立的连接基础上继续请求新的元素。

持续连接又分为非流水线流水线

  • 非流水线:客户接收前一个响应后才能发出下一个请求。
  • 流水线:客户可以连续发出对各个对象的请求,服务器可以响应这些请求。

上图右边为非流水线式,只有收到了响应后才能继续发送新的请求

如下图同时发送多个请求,服务器收到后依次返回相应的请求即为流水线式。客户访问所有的对象只需要花费大概一个RTT时间
image-20220815215631301

③HTTP报文结构

image-20220815215641688

具体例子:

image-20220815215647687

GET方法请求读取URL所标识的信息

Host: www.test.edu.cn表示现在要请求的html存放在该域名

Connection指的是具体的连接方式,Close是非持续连接

Cookie: 123456说明用户的识别码是123456,存在该字段说明浏览器之前访问过www.test.edu.cn

状态码由3个数字构成,有5种类型,具体有33种。状态码和短语相结合说明响应报文的特点。常见状态码和短语的组合:202 Accepted、301 Moved Permanently(现在请求的网页转移到了新的地址,会在首部行当中标识location首部字段名,并把网页的新URL放到值当中指明新的定位)、404 Not Found

改题目较难,首先http请求与http建立tcp连接需要1.5个RTT,但是第三次握手的时可以传输数据,也就是可以传输页面请求,所以第三次握手到文件的传输为1个RTT,tcp除去第三次握手是1个RTT;接着获取图像文件,首先图像文件窗口大小为2(之前传输文件a时为1),只能传输2MSS,还剩1MSS,传输一次之后窗口大小变为了4(拥塞控制中)第二次传输直接可以将图像文件传输完,所以传输图像文件一共是2个RTT。总共就是4个RTT。 


http://www.ppmy.cn/news/1523028.html

相关文章

Windows下Python和PyCharm的应用(三)__Numpy与矩阵

1、背景介绍 矩阵运算是Python语言的基石。 而支持矩阵运算的基础语言包就是Numpy。 参考链接: Python中Numpy的使用_numpy在python中的用法-CSDN博客 这篇博客介绍的numpy比我的这篇博客介绍的更加的详细。本博客只是根据本人 的实际应用,对最关键的…

如何挑选白酒,中秋怎么送?

中秋佳节马上就要到了,这时候喝白酒也比较多,下面小编告诉你几种方法,让你轻松挑选白酒,大家一起学起来吧!

开放API接口时要注意的安全处理总结

开发API接口:开放给别人调用的接口。未经过安全处理的开发API接口安全弱点:数据窃取(密码等信息被窃取,盗刷,敏感信息的等)——RSA/DES加密: 签名机制在API接口中的应用:签名用于验证…

基于 BiLSTM+Attention 实现降雨预测多变量时序分类——明日是否降雨

前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对…

vue axios发送post请求跨域解决

跨越解决有两种方案,后端解决,前端解决。后端解决参考Django跨域解决-CSDN博客 该方法之前试着可以的,但是复制到其他电脑上报错,所以改用前端解决 1、main.js做增加如下配置 import axios from axios Vue.prototype.$axios a…

24、xilinx zynq启动流程

1、第零阶段 BootROM,读取ROM中固化的程序, 完成对SD卡、NAND、NOR、QSPI Flash的初始化,使得ARM可以访问这些外设; 读取MIO[6:2],获取从那个存储设备加载阶段1需要的启动镜像; 获取启动镜像&#xff0…

C语言预处理详解

文章目录 一、预定义符号二、#define定义符号(常量)三、#define定义宏四、带有副作用的宏参数五、宏替换的规则六、宏和函数的对比七、#和##1. #运算符2. ##运算符 八、命名约定九、#undef十、命令行定义十一、条件编译十二、头文件的包含1.头文件被包含的方式①本地文件包含②…

ELK日志服务收集SpringBoot日志案例

第一步:准备docker-compose文件 首先准备 docker-compose.yaml 文件 version: "3" services:elasticsearch:image: elasticsearch:7.17.2container_name: elasticsearch-servernetworks:- hostenvironment:- "cluster.nameelasticsearch" #设…

python socket TCP/UDP/MULTICAST 收发示例

python socket TCP/UDP/MULTICAST 收发示例 一、接收端 import socket import structdef tcp_onece_receiver(port):"""只接收一次 TCP 消息"""# 创建 TCP 套接字sock socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定到本地端口soc…

WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率

介绍 随着互联网数据的爆炸式增长,爬虫技术成为了获取信息的重要工具。在实际应用中,如何提升浏览器自动化的效率是开发者常常面临的挑战。Chrome DevTools Protocol(CDP)与Selenium WebDriver相结合,为浏览器自动化提…

【828华为云征文|华为云Flexus X实例:从选购到登录,一站式指南】

华为云Flexus X实例:从选购到登录,一站式指南 华为云Flexus X实例的优势大揭秘操作指南:一步步带你开通华为云Flexus X实例注册与登录华为云账号选择配置并购买选择Flexus X实例配置选择基础配置实例规格镜像存储网络弹性公网IP您可能需要&am…

C++入门基础篇

引言 说到编程语言常常听到的就是C语言C Java 。C语言是面向过程的,C是和Java是面向对象的,那么什么是面向对象呢?什么又是面向过程呢?C是什么?封装、继承、多态是什么?且听我絮絮叨叨。 C入门基础 1.命名…

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(六):Blender烘培和UE5导入

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博…

学习记录:js算法(二十七):重排链表、删除链表的倒数第 N 个结点

文章目录 重排链表我的思路网上思路 删除链表的倒数第 N 个结点我的思路网上思路 总结 重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln 请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 …

漫谈设计模式 [10]:享元模式

引导性开场 菜鸟:老鸟,我最近在做一个游戏开发项目,发现内存占用特别大,尤其是一些重复对象,非常浪费资源。你有什么建议吗? 老鸟:这个问题很常见。你听说过设计模式中的“享元模式”吗&#…

JENV版本管理工具

下载地址&#xff1a;https://github.com/jenv/jenv 安装步骤 将其添加到PATH中 使用方法&#xff08;注意&#xff1a;局部配置会覆盖全局配置。使用命令可覆盖局部&#xff09; 添加新的Java环境&#xff08;需提供绝对路径&#xff09; jenv add <名称> <路径>…

洗车店系统电脑版多项目可绑定车牌扣次数 佳易王洗车会员管理系统操作教程

一、前言 洗车店系统电脑版多项目可绑定车牌扣次数 佳易王洗车会员管理系统操作教程 1、洗车店专用的会员管理软件&#xff0c;可绑定车牌号&#xff0c; 2、会员充值或消费的时候&#xff0c;可用手 机号或车牌号或者姓名搜索&#xff0c;扣次或充值 二、软件程序部分功能图…

# 又一现象级智能体上线,会不会是下一个王炸?

大家好&#xff0c;我是墨云&#xff0c;一位不太像搞IT的程序员&#xff01; 不久前&#xff0c;我仅用3天时间就开发出了一款名为"超级图文大师"的智能体&#xff0c;并且开启了实战营项目&#xff0c;这个项目取得了惊人的成功。许多用户通过它获得了显著收益&…

three.js使用3DTilesRendererJS加载3d tiles数据

原生的 three.js 目前不支持 3d tiles 数据的加载&#xff0c;不过开源社区已经给出了一些解决方案&#xff0c;其中最活跃的要属 3DTilesRendererJS。它为 three.js 提供了加载和调度 3d tiles 数据的基本能力&#xff0c;虽说和 Cesium.js 对 3d tiles 的支持相比还有很大的差…

SpringCloudAliaba生成式JavaAI应用开发文生问答音像

采用SpringCloudAliabaAI型式大模型LLM&#xff0c;进行生成式JavaAI应用开发&#xff0c;实现文生问答、图像和语音合成&#xff0c;Web应用页面交互展现。SpringBootGradle软件框架&#xff0c;Idea集成开发环境&#xff0c;API_Post嵌入插件一体测试。 1 工效展示[文生-答/图…