计算机网络(六):应用层

news2024/11/14 15:29:13

参考引用

  • 计算机网络微课堂-湖科大教书匠
  • 计算机网络(第7版)-谢希仁

1. 应用层概述

在这里插入图片描述

  • 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分
    • 早期基于文本的应用 (电子邮件、远程登录、文件传输、新闻组)

    • 20 世纪 90 年代将因特网带入干家万户的万维网 WWW(使用超文本传送协议 HTTP)
      在这里插入图片描述

    • 当今流行的即时通信、P2P 文件共享及各种音视频应用

    • 动态主机配置 DHCP

2. 客户/服务器方式 (C/S方式) 和对等方式 (P2P方式)

  • 网络应用程序运行在处于网络边缘的不同的端系统上,通过彼此间的通信来共同完成某项任务
  • 开发一种新的网络应用首先要考虑的问题就是:网络应用程序在各种端系统上的组织方式和它们之间的关系,目前流行的主要有以下两种
    • 客户/服务器 (Client/Server,c/S) 方式
    • 对等 (Peer-to-Peer,P2P) 方式
2.1 客户/服务器方式 (C/S方式)
  • 客户和服务器是指通信中所涉及的两个应用进程,客户/服务器方式所描述的是进程之间服务和被服务的关系
  • 客户是服务请求方,服务器是服务提供方,服务器总是处于运行状态,并等待客户的服务请求
    • 服务器具有固定端口号 (例如 HTTP 服务器的默认端口号为 80)
    • 运行服务器的主机也具有固定的 IP 地址

在这里插入图片描述

  • C/S 方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是 C/S 方式
    • 包括万维网 WWW、电子邮件、文件传输 FTP 等
  • 基于 C/S 方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上
    • 由于一台服务器计算机要为多个客户机提供服务,在 C/S 应用中,常会出现服务器计算机跟不上众多客户机请求的情况
    • 为此,在 C/S 应用中,常用计算机群集 (或服务器场) 构建一个强大的虚拟服务器
2.2 对等方式 (P2P方式)
  • 在 P2P 方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者
  • 基于 P2P 的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑,它们通常位于住宅、校园和办公室中
  • P2P 方式的最突出特性之一就是它的可扩展性
    • 因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低
  • P2P 方式具有成本上的优势,因为它通常不需要庞大的服务器设施和服务器带宽

在这里插入图片描述

3. 动态主机配置协议 DHCP

3.1 DHCP 的作用
  • 通过 DHCP 自动获取网络配置信息
    在这里插入图片描述
3.2 DHCP 工作过程

在这里插入图片描述

4. 域名系统 DNS

4.1 域名系统 DNS 作用

在这里插入图片描述

  • ping 的是 Web 服务器的域名,但 ping 命令实际上 ping 的是 Web 服务器的 IP 地址

    • TCP/IP 体系采用 IP 地址进行寻址
    • 即使不使用域名也可以通过 IP 地址来导址目的主机,但域名与 IP 地址相比, 便于人们记忆
      在这里插入图片描述
  • 因特网是否可以只使用一台 DNS 服务器?

    • 这种做法并不可取。因为因特网的规模很大,这样的域名服务器肯定会因为超负荷而无法正常工作,而且一旦域名服务器出现故障,整个因特网就会瘫痪
    • 早在 1983 年,因特网就开始采用层次结构的命名树作为主机的名字 (即域名),并使用分布式的域名系统 DNS
      • DNS 使大多数域名都在本地解析,仅少量解析需要在因特网上通信,因此系统效率很高
      • 由于 DNS 是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行
4.2 域名系统 DNS 结构
  • 因特网采用层次树状结构的域名结构,域名的结构由若干个分量组成,各分量之间用 “点” 隔开,代表不同级别的域名

    • 每一级的域名都由英文字母和数字组成,不超过 63 个字符,不区分大小写字母
    • 级别最低的域名写在最左边,而级别最高的顶级域名写在最右边
    • 完整的域名不超过 255 个字符
  • 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构 ICANN 进行管理

  • 示例
    在这里插入图片描述

  • 顶级域名 TLD(Top Level Domain)

    • 国家顶级域名 nTLD
      • 采用 ISO 3166 的规定。如 cn 表示中国,us 表示美国,uk 表示英国等
    • 通用顶级域名 gTLD
      • 最常见的通用顶级域名有七个,即:com (公司企业)、net (网络服务机构)、org (非营利性组织)、int (国际组织)、edu (美国教育结构)、gov (美国政府部门)、mil (美国军事部门)
    • 反向域 arpa
      • 用于反向域名解析,即 IP 地址反向解析为域名
  • 在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为 jp 的日本,将其教育和企业机构的二级域名定为 ac 和 co,而不用 edu 和 com。我国则将二级域名划分为以下两类

    • 类别域名
      • 共七个:ac (科研机构)、com (工、商、金融等企业)、edu (教育机构)、gov (政府部门)、net (提供网络服务的机构)、mil (军事机构) 和 org (非营利性组织)
    • 行政区域名
      • 共 34 个,适用于我国的各省、自治区、直辖市。例如:bi 为北京市、sh 为上海市、js 为江苏省等
  • 示例
    在这里插入图片描述

这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。需要注意的是,域名只是个逻辑概念,并不代表计算机所在的物理地点

4.3 域名服务器
  • 域名和 IP 地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS 使用分布在各地的域名服务器来实现域名到 IP 地址的转换
  • 域名服务器可以划分为以下四种不同的类型
    • 根域名服务器
    • 顶级域名服务器
    • 权限域名服务器
    • 本地域名服务器
4.4 域名解析的过程

在这里插入图片描述

5. 文件传送协议 FTP

  • 文件传送协议 FTP (File Transfer Protocol) 是因特网上使用最广泛的文件传送协议

    • FTP 提供交互式的访问,允许客户指明文件的类型与格式 (如指明是否使用ASCI码),并允许文件具有存取权限 (如访问文件的用户必须经过授权,并输入有效的口令)
    • FTP 屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件.
  • 文件传送协议 FTP 的应用

    • FTP 的常见用途是在计算机之间传输文件,尤其是用于批量传输文件
    • FTP 的另一个常见用途是让网站设计者将构成网站内容的大量文件批量上传到他们的 Web 服务器

6. 万维网 WWW

  • 万维网 WWW(World Wide Web) 并非某种特殊的计算机网络。它是一个大规模的、联机式的信息储藏所,是运行在因特网上的一个分布式应用

  • 万维网利用网页之间的超链接将不同网站的网页链接成一张逻辑上的信息网

  • 万维网是欧洲粒子物理实验室的 Tim Berners-Lee 最初于 1989 年 3 月提出的

  • 目前流行的浏览器
    在这里插入图片描述

  • 浏览器最重要的部分是渲染引擎,也就是浏览器内核。负责对网页内容进行解析和显示

    • 不同的浏览器内核对网页内容的解析也有不同,因此同一网页在不同内核的浏览器里的显示效果可能不同
    • 网页编写者需要在不同内核的浏览器中测试网页显示效果
6.1 万维网应用在这里插入图片描述
  • 为了方便地访问在世界范围的文档,万维网使用统一资源定位符 URL 来指明因特网上任何种类 “资源” 的位置
  • URL 的一般形式由以下四个部分组成
    在这里插入图片描述
6.2 万维网文档

在这里插入图片描述

在这里插入图片描述

6.3 超文本传输协议 HTTP(HyperText Transfer Protocol)
  • HTTP 定义了浏览器 (即万维网客户进程) 怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器
    在这里插入图片描述

  • HTTP/1.0 采用非持续连接方式。在该方式下,每次浏览器要请求一个文件都要与服务器建立 TCP 连接当收到响应后就立即关闭连接

    • 每请求一个文档就要有两倍的 RTT 的开销。若一个网页上有很多引用对象(例如图片等),那么请求每一个对象都需要花费 2RTT 的时间
    • 为了减小时延,浏览器通常会建立多个并行的 TCP 连接同时请求多个对象。但是,这会大量占用万维网服务器的资源,特别是万维网服务器往往要同时服务于大量客户的请求,这会使其负担很重
      在这里插入图片描述
  • HTTP/1.1 采用持续连接方式。在该方式下,万维网服务器在发送响应后仍然保持这条连接,使同一个客户 (浏览器) 和该服务器可以继续在这条连接上传送后续的 HTTP 请求报文和响应报文。这并不局限于传送同一个页面上引用的对象,而是只要这些文档都在同一个服务器上就行

  • 使用 Cookie 在服务器上记录用户信息

    • 早期的万维网应用非常简单,仅仅是用户查看存放在不同服务器上的各种静态的文档。因此HTTP被设计为一种无状态的协议。这样可以简化服务器的设计。
    • 现在,用户可以通过万维网实现各种复杂的应用,如网上购物、电子商务等。这些应用往往需要万维网服务器能够识别用户

    Cookie 提供了一种机制使得万维网服务器能够 “记住” 用户,而无需用户主动提供用户标识信息。也就是说,Cookie 是一种对无状态的 HTTP 进行状态化的技术

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

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

相关文章

Boost程序库完全开发指南:1.1-C++基础知识点梳理

主要整理了N多年前(2010年)学习C的时候开始总结的知识点,好长时间不写C代码了,现在LLM量化和推理需要重新学习C编程,看来出来混迟早要还的。 1.shared_ptr 解析:shared_ptr是一种计数指针,当引…

【Linux】【网络】工具:httplib 库的安装与简单使用

文章目录 1. 下载 httplib 库2. 从 Win 传输文件到 Linux3. 解压缩 httplib 库1. struct Request 结构体源码展示2. struct Reponse 结构体源码展示3. httplib 库 Server 类4. httplib 库 Client 类5. 搭建简易 server 服务器6. 搭建简易 client 客户端 1. 下载 httplib 库 要求…

结构体和联合体

目录 一.结构体 1.1什么是结构体? 1.2结构的声明 1.3特殊声明 1.4结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7修改默认对齐数 二.联合体 2.1联合类型的定义 2.2联合的特点 2.3联合大小的计算 一.结构体 1.1什么是结构体&#xf…

【milkv】max98357a驱动添加speaker

文章目录 一、电路1.1 duo音频接口1.2 I2S2连接 二、I2S2介绍2.1 参考cv182x的dts实现2.2 参考cv1835_fpga2.3 cv180x2.4 改动——保留i2s2.5 I2S小结 三、参考资料3.1 文章3.2 手册 四、驱动路径五、添加codec驱动——max98357a5.1 config5.2 dtsi5.3 dai_driver 六、查看plat…

VUE3照本宣科——内置指令与自定义指令及插槽

VUE3照本宣科——内置指令与自定义指令及插槽 前言一、内置指令1.v-text2.v-html3.v-show4.v-if5.v-else6.v-else-if7.v-for8.v-on9.v-bind10.v-model11.v-slot12.v-pre13.v-once14.v-memo15.v-cloak 二、自定义指令三、插槽1.v-slot2.useSlots3.defineSlots() 前言 &#x1f…

Chrome之解决DevTools: Failed to load data:No resource with given identifier found

问题 使用DevTools抓包时候, 有些跨域请求无法在加载出来, 提示 Failed to load data:No resource with given identifier found 解决办法 换其他浏览器 下断点 打开DevTools, 选择源代码/来源/Sources,找到事件监听器断点/Event Listener Breakpoints, 找到加载/Load下面…

C++树详解

树 树的定义 树(Tree)是n(n≥0)个结点的有限集。n0时称为空树。在任意一颗非空树中:①有且仅有一个特定的称为根(Root)的结点;②当n>1时,其余结点可分为m&#xff08…

十天学完基础数据结构-第七天(图(Graph))

图的基本概念 图是一种数据结构,用于表示对象之间的关系。它由两个基本组件构成: 顶点(Vertex):也被称为节点,代表图中的对象或实体。 边(Edge):连接两个顶点的线&…

【setxattr+userfaultfd】SECCON2020-kstack

这个题主要还是练习 userfaultfd 的利用。说实话,userfaultfd 的利用还是挺多的,虽然在新的内核版本已经做了相关保护。 老规矩,看下启动脚本 #!/bin/sh qemu-system-x86_64 \-m 128M \-kernel ./bzImage \-initrd ./rootfs.cpio \-append …

第三章、运输层

文章目录 3.1 概述和运输层服务3.1.1 运输层和网络层的关系3.1.2 因特网运输层概述 3.2 多路复用与多路分解3.3 无连接运输:UDP3.4 可靠数据传输原理3.4.1构造可靠数据传输协议rdt1.0rdt2.xrdt3.0 3.4.2 流水线可靠数据传输协议3.4.3 回退N步3.4.4选择重传 3.5 面向…

x64内核实验1-调试环境配置

x64内核实验1-调试环境配置 这是一套x64内核实验的课程,我之前学习32位内核的时候就是在网上找的各种教程当学完32位很久之后发现在网上的64位内核相关的完整教程真的很少,所以就想着不如自己写一点方便对内核有兴趣的人能更好的入门,首先声…

哈希原理和解决哈希冲突方法

第一 哈希介绍 哈希和红黑树是我早期就听过的名词,却一直没见到真面目,实现哈希后才发现原来我早就使用过了哈希。看下面例题。 用map和set都可以轻松解决,但是在我写这题时我还不会用map和set,我用了另一种方法。看下面代码。先定…

【Java】微服务——Nacos配置管理(统一配置管理热更新配置共享Nacos集群搭建)

目录 1.统一配置管理1.1.在nacos中添加配置文件1.2.从微服务拉取配置1.3总结 2.配置热更新2.1.方式一2.2.方式二2.3总结 3.配置共享1)添加一个环境共享配置2)在user-service中读取共享配置3)运行两个UserApplication,使用不同的pr…

Office Tool Plus下载与神龙版官网下载

文章目录 一、Office Tool Plus下载二、神龙下载 Office Tool Plus简称OTP,是一款专业的Office官方镜像下载器,可以下载安装Word、Excel、Visio等。神龙用于快速激活使用。 注意:Win7系统必须要SP1或更高版本才能使用,Office Tool…

intel 一些偏门汇编指令总结

intel 汇编手册下载链接:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html LDS指令: 手册中可以找到 位于 3-588 根据手册内容猜测:lds r16 m16:16 的作用,是把位于 [m16:16] 内存地址的数…

JMeter的详细使用及相关问题

一、中文乱码问题 如果出现乱码,需要修改编码集,(版本问题有的不需要修改,就不用管) 修改后保存重启就好了。 JMeter5.5版本的按照如下修改: 二、JMeter的启动 ①建议直接用ApacheJMeter.jar双击启动…

Zabbix4自定义脚本监控MySQL数据库

一、MySQL数据库配置 1.1 创建Mysql数据库用户 [rootmysql ~]# mysql -uroot -p create user zabbix127.0.0.1 identified by 123456; flush privileges; 1.2 添加用户密码到mysql client的配置文件中 [rootmysql ~]# vim /etc/my.cnf.d/client.cnf [client] host127.0.0.1 u…

CSDN博主粉丝数突破10万:坚持分享的力量与收获

今天,我在CSDN上看到了一位好友的统计数据,他统计了CSDN上所有粉丝数量排名靠前的博主的排名。虽然这个统计可能存在一些误差,但大体上应该是准确的。我惊讶地发现,截止到2023年10月4日,我的粉丝数量已经达到了101,376…

QScrollArea样式

QScrollBar垂直滚动条分为sub-line、add-line、add-page、sub-page、up-arrow、down-arrow和handle几个部分。 QScrollBar水平滚动条分为sub-line、add-line、add-page、sub-page、left-arrow、right-arrow和handle几个部分。 部件如下图所示: /* 整个滚动…

Pikachu靶场——文件包含漏洞(File Inclusion)

文章目录 1. File Inclusion1.2 File Inclusion(local)1.2.1 源代码分析1.2.2 漏洞防御 1.3 File Inclusion(remote)1.3.1 源代码分析1.3.2 漏洞防御 1.4 文件包含漏洞防御 1. File Inclusion 还可以参考我的另一篇文章:文件包含漏洞及漏洞复现。 File Inclusion(…