【基础计算机网络】应用层

一、网络应用模型

1.1 客户/服务器模型

1.1.1 工作流程

  • 服务器处于接收请求的状态,
  • 客户机发出服务请求,并等待接收结果,
  • 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户机
  • 客户程序必须知道服务器程序的地址

1.1.2 最主要的特征:

  • 客户是服务请求方,服务器是服务提供方,
  • 网络中各计算机的地位是不平等的,服务器可以通过对用户权限的限制来达到管理客户机的目的,使他们不能随意存储/删除数据,或进行其他受限的网络活动。整个网络的管理工作由少数服务器担当,因此网络的管理非常集中和方便
  • 客户机之间不能直接通信
  • 可扩展性不高,受服务器硬件和网络带宽的限制,服务器支持的客户机的数量是有限的,服务器接入的客户机越多,我的服务器的效率就会越低

1.1.3 常见的使用客户/服务器模型的应用

       Web,文件传输协议(FTP),远程登录和电子邮件 

1.2 P2P模型

       在C/S模型中,服务器性能的好坏决定了整个系统的性能,而P2P模型的思想是整个网络中的传输内容不再被保存在中心服务器中,每一个结点都同时具有下载、上传的功能,其权利和义务都是大体对等的。

1.2.1 P2P模型的优点:

  • 减轻了服务器的计算压力,消除了对某个服务器的完全依赖,可以将任务分配到各个结点中,因此大大提高了系统效率和资源利用率
  • 多个客户机之间可以直接共享文档
  • 可扩展性好
  • 网络健壮性好,单个结点的失效不会影响其他部分的结点

1.2.2 P2P模型的缺点

       在获取任务的同时,还要给其他结点提供服务,因此会占用较多的内存,影响整机的速度。

二、域名系统(DNS)

       域名系统是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名转化为便于机器处理的IP地址。DNS系统采用客户/服务器模型,其协议运行在UDP之上,使用53号端口。从概念上,DNS分为3部分:层次域名空间,域名服务器和解析器。

2.1 层次域名空间

2.2 域名服务器

2.3 解析器

三、文件传输协议(FTP)

3.1 FTP的工作原理

       FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限,屏蔽了计算机系统的细节,适合于在异构网络中的任意计算机之间发送文件。FTP使用客户/服务器模型,使用TCP可靠的传输服务。

3.1.1 FTP提供的功能

  • 提供不同种类主机系统之间的文件传输能力
  • 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
  • 以匿名FTP的方式提供公用文件共享的能力

3.1.2 FTP的工作原理

       FTP的服务器进程有两大部分组成:一个主进程:负责接收新的请求;若干个从属进程:负责处理单个请求。

工作的步骤是:

  • 打开熟知端口21(控制端口),使客户进程能够连接上
  • 等待客户进程发连接请求
  • 启动从属进程来处理客户进程发来的请求
  • 回到等待状态,继续接收其他客户进程的请求

FTP服务器必须在整个会话期间保留用户的状态信息。

3.2 控制连接和数据连接

       FTP在工作时使用两个并行的TCP连接:一个是控制连接(21),一个是数据连接(20)。

3.2.1 控制连接

       服务器监听21号端口,等待客户的连接,建立在这个端口的连接称为控制连接,控制连接用来传输控制信息,并且控制信息都以7位ASCII格式发送。

3.2.2 数据连接

四、电子邮件

4.1 电子邮件系统的组成结构

       用户代理:用户与电子邮件系统的接口,用户代理具有撰写、显示和邮件处理的功能,通常情况下,用户代理就是一个运行在PC端的程序。

       邮件服务器:其功能是发送和接收邮件,同时还要向发信人报告邮件传送情况(已交付,被拒绝,丢失等)。邮件服务器采用客户/服务器模型,但它必须能够同时充当客户和服务器。

       电子邮件使用的协议:SMTP是邮件发送协议,POP3是邮件接收协议

4.2 电子邮件格式与MIME

4.2.1 电子邮件格式

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

       由于STMP只能发送一定长度的ASCII码邮件,许多其他非英语国家的文字就无法传送,且无法传送可执行文件及其他二进制对象,因此提出MIME,MIME增加了邮件主题的结构。

MIME主要包括三个部分:

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

4.3 SMTP和POP3

4.3.1 SMTP

SMTP使用客户/服务器模式,用的是TCP连接,端口号为25。

SMTP通信有以下三个阶段:

  • 连接建立
  • 邮件传送
  • 连接释放

4.3.2 POP3和IMAP

       邮局协议(POP)是一个非常简单但功能有限的邮件读取协议,使用客户/服务器模型,在传输层上使用TCP,端口号为110,

       IMAP是因特网报文存取协议,Wie用户提供了创建文件夹,在不同的文件夹之间移动邮件及在远程文件夹中查询邮件等联机命令。

       随着万维网的流行,出现了很多基于万维网的电子邮件,如Hotmail、Cmail等。这种电子邮件的特点是:用户浏览器与Hotmail或Cmail的邮件服务器之间的邮件发送或者接收使用的是Http,而仅在不同邮件服务器之间传送邮件时才使用SMTP。

五、万维网(WWW) 

5.1 WWW的概念与组成结构

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

  • 统一资源定位符(URL)
  • 超文本传输协议(HTTP)
  • 超文本标记协议(HTML)

万维网以客户/服务器模型方式工作的,万维网的工作流程:

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

5.2 超文本传输协议

5.2.1 HTTP的操作过程

       从协议执行过程来说,浏览器要访问WWW服务器时,首先要完成对WWW服务器的域名解析。一旦获得了服务器的IP地址,浏览器就通过TCP向服务器发送连接建立请求

万维网的大致工作流程:

       每一个万维网站点都有一个服务器进程,它不断地监听TCP的端口(80),当监听到连接请求后,便于浏览器建立TCP连接。然后,浏览器就向服务器发送请求获取某个Web页面的HTTP请求。服务器收到请求后,将构建所请求的Web页的必需信息,并通过HTTP响应返回给浏览器。浏览器再将信息进行解释,然后将Web页面显示给用户。最后,TCP连接释放。     

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

5.2.2 HTTP的特点

  • HTTP本身是无连接的,虽然HTTP使用TCP连接,但是通信的双方在交换HTTP报文之前不需要进行建立HTTP连接
  • HTTP是无状态的,服务器不记得访问过几次客户
  • HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求
  • HTTP既可以使用非持久化连接,也可以使用持久化连接,非持久化连接:对于每一个网页元素对象的传输都需要单独建立一个TCP连接;持久连接:万维网服务器在发送响应后仍然保持这条连接。持久连接又分为:非流水线和流水线

5.2.3 HTTP的报文结构

  • 请求报文:从客户向服务器发送的请求报文
  • 响应报文:从服务器到客户的回答
  • 开始行:用于区分是请求报文还是响应报文,在请求报文中的开始行称为请求行,在响应报文中的响应行为状态行。
  • 首部行:用于说明浏览器、服务器或报文主体的一些信息
  • 实体主体:在请求报文中一般不用这个字段,在响应报文中也可能没有这个字段

六、总结

6.1 常见应用层协议小结

  • FTP数据连接:使用的协议是TCP,端口号为20
  • FTP控制连接:使用的协议是TCP,端口号为21
  • TELNET:使用的协议是TCP,端口号为23
  • SMTP:使用的协议是TCP,端口号为25
  • DNS:使用的协议是UDP,端口号为53
  • TFTP:使用的协议是UDP,端口号为69
  • HTTP:使用的协议是TCP,端口号为80
  • POP3:使用的协议是TCP,端口号为110
  • SNMP:使用的协议是TCP,端口号为161

6.2 如何理解客户进程端口号与服务器进程端口号

       我们通常所说的熟知端口号是指应用层在服务器端的默认端口号,而客户端进程的端口号是由客户端进程任意指定的。

       当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口号,同时还有告诉服务器进程自己的临时端口号,接着,服务器进程就用自己的熟知端口号与客户进程提供的端口号建立连接。

6.3 互联网、因特网和万维网的区别

       互联网泛指由多个计算机网络按照一定的通信协议相互连接而成的一个大型计算机网络

       因特网是指在ARPA网基础上发展而来的世界上最大的全球性互联网络。因特网和其他类似的由计算机相互连接而成的大型网络系统,都可算为“互联网”。

       万维网是由无数个网络站点和网页的集合,他们一起构成了因特网最主要的部分。

6.4 域名的高速缓存是什么

       每一个域名服务器都维护一个告诉缓存,存放最近用过的名字以及从何处获得名字映射信息的记录,可大大减轻根域名服务器的负荷,使因特网上的DNS查询请求和回答报文的数量大为减少。

       为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器,并处理超过合理时间的项。

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

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

相关文章

变种水仙花

变种水仙花 题干要求: 变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于…

Ollama 本地大模型框架

该篇教程主要讲解*Ollama的安装和简单使用* Ollama: 在本地启动并运行大型语言模型。 主要流程目录: 1.安装 2.使用 2.1.下载模型 2.2.简单使用 2.3.中文模型 2.4.中文社区 3.总结 1.安装 创建一个容器 切换”高级视图“ 参考填写 ollama oll…

java家政上门系统源码,App端采用uniapp开发编写,可打包H5 、微信小程序、微信公众号、Android、IOS等。

家政上门系统是一种通过互联网或移动应用平台,为用户提供在线预约、下单、支付和评价家政服务的系统。该系统整合了家政服务资源,使用户能够便捷地找到合适的服务人员,同时也为家政服务人员提供了更多的工作机会。 本套家政上门系统源码&…

Golang | Leetcode Golang题解之第120题三角形最小路径和

题目&#xff1a; 题解&#xff1a; func minimumTotal(triangle [][]int) int {n : len(triangle)f : make([]int, n)f[0] triangle[0][0]for i : 1; i < n; i {f[i] f[i - 1] triangle[i][i]for j : i - 1; j > 0; j-- {f[j] min(f[j - 1], f[j]) triangle[i][j]…

旅游行业:解锁收入增长的新策略!

随着科技的飞速发展和人们生活水平的提高&#xff0c;旅游行业已成为全球范围内最具活力和潜力的行业之一。然而&#xff0c;在这个充满机遇与挑战的市场中&#xff0c;如何确保收入的持续增长&#xff0c;成为每一家旅游企业都必须面对的问题。在这个背景下&#xff0c;用友BI…

虚拟现实环境下的远程教育和智能评估系统(七)

在后端代码的基础上&#xff0c;利用vue框架设计前端界面&#xff0c;至此&#xff0c;用户界面基本成型&#xff0c;后续添加其他进阶功能&#xff1b; 另&#xff0c;前后端交互相关&#xff1a; UsersVO.java package com.roncoo.education.user.feign.interfaces.vo;impor…

Llama改进之——分组查询注意力

引言 今天介绍LLAMA2模型引入的关于注意力的改进——分组查询注意力(Grouped-query attention,GQA)1。 Transformer中的多头注意力在解码阶段来说是一个性能瓶颈。多查询注意力2通过共享单个key和value头&#xff0c;同时不减少query头来提升性能。多查询注意力可能导致质量下…

易联众智能自动办理平台,AI赋能让数字政务服务“触手可及”

“城乡居民参保怎么办”“要去XX省工作了,帮我办理异地就医备案”……通过口语化的文字、语音提问,易联众智能自动办理平台的AI助理都可以准确理解对话,并依据政策文件给出详细回答,人机对话像聊天一样轻松。 近日,宁德市民王先生高兴地说:“过去办理医保业务不懂流程,容易走弯…

Vue常用自定义指令、纪录篇

文章目录 一、元素尺寸发生变化时二、点击元素外自定义指令三、元素拖拽自定义指令四、防抖自定义指令五、节流自定义指令六、权限判断自定义指令 一、元素尺寸发生变化时 使用场景&#xff1a; 当元素的尺寸发生变化时需要去适配一些元素时。 或者在元素尺寸发生变化时要去适配…

C# 命名空间和 using 指令详解

在C#编程中&#xff0c;命名空间&#xff08;Namespaces&#xff09;用于组织代码元素&#xff0c;如类、接口、枚举等&#xff0c;以避免命名冲突。using 指令用于导入命名空间&#xff0c;使得代码中可以方便地引用其中的类型&#xff0c;而不必每次都使用完整的命名空间路径…

WPS/Office(Word、Excel、PPT) 自动测评方法

在各高等、中等院校的计算机类课程中,计算机基本应用技能的上机操作考试,广受重视,大为盛行。其中,office(word、excel、ppt)上机考试最为普遍。于是,实现这类Office文档操作的自动阅卷评分,很有必要。本人最近项目上刚好遇到需要解决这种自动评分的问题,所以再次记录下解决的…

TiDB学习9:Ti Cloud简介

目录 1. 为什么选择TiDB 2. 多租户 3. TiDB架构 4. 什么是TiDB Cloud 5. TiDB Cloud Provider Region 6. TiDB Cloud 入门 6.1 在浏览器中打开TiDB Cloud 6.2 创建您的账户 6.3 Developer Tier 与Dedicated Tier 6.3.1 Developer Tier 6.3.2 Dedicated Tier 6.3.2.…

[HUBUCTF 2022 新生赛]RSAaaa

题目&#xff1a; EXP 就你小子是黑客&#xff1f; 我忘记怎么解密了&#xff01; 靠你了&#xff0c;大黑阔&#xff01;(536970330703, 65537) message: 473878130775 40132555282 40132555282 94619939727 72818765591 208015808884 42561234694 159353248388 27748063975 1…

逆天工具一键修复图片,视频去码。简直不要太好用!

今天&#xff0c;我要向您推荐一款功能强大的本地部署软件&#xff0c;它能够在您的计算机上一键修复图片和视频&#xff0c;去除令人不悦的码赛克&#xff08;轻度马赛克&#xff09;。这款软件是开源的&#xff0c;并在GitHub上公开可用&#xff0c;您可以免费下载并使用。 …

Scala 柯里化、sortBy方法

Scala高级特性 小白的Scala学习笔记 2024/5/30 8:42 文章目录 Scala高级特性柯里化sortBy方法 柯里化 参数可以写在两个括号里面 object TestKeli {def add(a:Int)(b:Int)abdef main(args: Array[String]): Unit {val res add(22)(33)println(res)} }可以填隐式参数&#x…

vector的功能讲解与底层实现

本文主要介绍vector的内容以及使用和模拟实现。 vector在英文翻译中是矢量的意思&#xff0c;但在c中他的本质是一个顺序表&#xff08;容器&#xff09;&#xff0c;是一个类模板&#xff0c;&#xff08;用模板创建变量就要参考我们之前的实例化内容了&#xff09;用可以改变…

dnsrecon一键开始负载平衡检测(KALI工具系列十四)

目录 1、KALI LINUX简介 2、lbd工具简介 3、在KALI中使用lbd 3.1 测试目标域名是否存在负载不平衡 4、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版&#xff0c;广泛用于网络安全社区。它具有全面的预安装工具和功能集&#xff0c;使其成为…

杭州服务器的性能如何?

挥洒激情&#xff0c;开启杭州服务器的无限可能&#xff01; 互联网时代&#xff0c;服务器的性能就如同一艘航空母舰&#xff0c;承载着企业的发展梦想&#xff0c;指引着行业的发展方向。而对于杭州服务器&#xff0c;其性能究竟如何&#xff1f;让我来告诉您。 杭州服务器…

撸广告赚金币小游戏app开发

在app上投放广告有哪些注意事项&#xff1f; 在app上投放广告需要注意以下几个方面。 首先&#xff0c;要选择合适的广告形式。根据自己的需求和目标受众&#xff0c;选择合适的广告形式&#xff0c;如横幅广告、插屏广告、视频广告等。不同的广告形式适用于不同的场景和目标…

TCP协议详解及其相关的10个核心机制(面试重点)

TCP协议的报文格式 TCP协议有连接&#xff0c;可靠性传输&#xff0c;面向字节流&#xff0c;全双工。 他的数据格式如图&#xff1a; 根据他的数据格式&#xff0c;在这里我们只知道 16位源端口号&#xff08;表示客户端这里的端口号&#xff09;&#xff0c;16位目的端口号&…