【计网】应用层

应用层

  • 6.1 应用层概述
  • 6.2 客户/服务器(C/S)方式和对等(P2P)方式
  • 6.3 动态主机配置协议DHCP
  • 6.4 域名系统DNS
  • 6.5 文件传送协议FTP
  • 6.6 电子邮件
  • 6.7 万维网WWW

6.1 应用层概述

在这里插入图片描述

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

  • 开发一种新的网络应用首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系。目前流行的主要有以下两种:
    • 客户/服务器(Client/Server, C/S)方式
    • 对等(Peer-to-Peer, P2P)方式

  • 客户/服务器(Client/Server,C/S)方式
    • 客户和服务器是指通信中所涉及的两个应用进程。
    • 客户/服务器方式所描述的是进程之间服务和被服务的关系。
    • 客户是服务请求方,服务器是服务提供方。
    • 服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口号(例如HTTP服务器的默认端口号为80),而运行服务器的主机也具有固定的IP地址。
  • C/S方式是因特网上传统的、同时也是最成熟的方式,很多我们熟悉的网络应用采用的都是C/S方式。包括万维网WWW、电子邮件、文件传输FTP等。
  • 基于C/S方式的应用服务通常是服务集中型的,即应用服务集中在网络中比客户计算机少得多的服务器计算机上。
    • 由于一台服务器计算机要为多个客户机提供服务,在C/S应用中,常会出现服务器计算机跟不上众多客户机请求的情况。
    • 为此,在C/S应用中,常用计算机群集(或服务器场)构建一个强大的虚拟服务器。

在这里插入图片描述

  • 对等(Peer-to-Peer, P2P)方式
    • 在P2P方式中,没有固定的服务请求者和服务提供者,分布在网络边缘各端系统中的应用进程是对等的,被称为对等方。对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者。
  • 目前,在因特网上流行的P2P应用主要包括P2P文件共享、即时通信、P2P流媒体、分布式存储等。
  • 基于P2P的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中,这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑,它们通常位于- 住宅、校园和办公室中。
  • P2P方式的最突出特性之一就是它的可扩展性。因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者,系统性能不会因规模的增大而降低
  • P2P方式具有成本上的优势,因为它通常不需要庞大的服务器设施和服务器带宽。为了降低成本,服务提供商对于将P2P方式用于应用的兴趣越来越大。

在这里插入图片描述

6.3 动态主机配置协议DHCP

  • 动态主机配置协议DHCP(Dynamic Host Configuration Protocol)提供了一种机制,称为即插即用连网。这种机制允许一台计算机加入新网络时可自动获取IP地址等网络配置信息而不用手工参与
    在这里插入图片描述
    在这里插入图片描述

  • DHCP主要使用以下报文来实现其功能:

    • DHCP DISCOVER: DHCP发现报文
    • DHCP REQUEST: DHCP请求报文
    • DHCP NACK: DHCP否认报文
    • DHCP OFFER: DHCP提供报文
    • DHCP ACK: DHCP确认报文
    • DHCP RELEASE: DHCP释放报文
  • DHCP报文在运输层使用UDP协议封装

    • DHCP客户端使用的UDP端口号为68
    • DHCP服务器使用的UDP端口号为67
  • DHCP客户在未获取到IP地址时使用地址0.0.0.0
    在这里插入图片描述

  • 在每一个网络上都设置一个DHCP服务器会使DHCP服务器的数量太多。因此现在是使每一个网络至少有一个DHCP中继代理(通常是一台路由器),它配置了DHCP服务器的IP地址信息,作为各网络中计算机与DHCP服务器的桥梁。

在这里插入图片描述

6.4 域名系统DNS

  • DNS的作用
    在这里插入图片描述

  • 因特网采用层次树状结构的域名结构

  • 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
    在这里插入图片描述在这里插入图片描述

  • 域名解析的过程:递归查询和迭代查询
    在这里插入图片描述

  • 为了提高DNS的查询效率,并减轻根域名服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛地使用了高速缓存。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

6.5 文件传送协议FTP

  • 文件传送协议FTP(File Transfer Protocol)是因特网上使用得很广泛的文件传送协议
    • FTP提供了交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)
    • FTP屏蔽了各种机器的细节,因而适合于在异构网络中的任意计算机之间传送文件。
      在这里插入图片描述
  • FTP客户和服务器之间要建立以下两个并行的TCP连接
    • 控制连接:在整个会话期间一直保持打开,用于传送FTP相关控制命令。
    • 数据连接:用于文件传输,每次文件传输时才建立,传输结束就关闭。
  • 被动方式由服务器和客户端自行协商决定。
    在这里插入图片描述

6.6 电子邮件

  • 一个电子邮件有信封和内容两部分。而内容又由首部和主体两部分构成。
    在这里插入图片描述

  • 电子邮件系统采用客户/服务器方式三个主要组成构件:用户代理,邮件服务器,以及电子邮件所需的协议。

    • 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件

    • 邮件服务器是电子邮件系统的基础设施。因特网上所有的ISP都有邮件服务器,其功能是发送和接收邮件,同时还要负责维护用户的邮箱。

    • 协议包括邮件发送协议(例如SMTP)和邮件读取协议(例如POP3)

  • 常用的邮件发送协议是简单邮件传送协议SMTP

    • 基于TCP连接,端口号为25;
    • 只能传送ASCII码文本
    • 用于用户代理向邮件服务器发送邮件以及邮件服务器之间的邮件发送
      在这里插入图片描述
      在这里插入图片描述
  • 为解决SMTP传送非ASCII码文本的问题,提出了多用途因特网邮件扩展MIME
    在这里插入图片描述

  • 常用的邮件读取协议有以下几个:

    • 邮局协议POP3:非常简单、功能有限的邮件读取协议。用户只能以下载并删除方式或下载并保留方式从邮件服务器下载邮件到用户方计算机。不允许用户在邮件服务器上管理自己的邮件

    • 因特网邮件访问协议IMAP:功能比POP3强大的邮件读取协议。用户在自己的计算机上就可以操控邮件服务器中的邮箱,就像在本地操控一样,因此IMAP是一个联机协议。

    • POP3和IMAP4都采用基于TCP连接的客户/服务器方式。POP3使用端口110,IMAP4使用端口143。

  • 基于万维网的电子邮件

    • 通过浏览器登录(提供用户名和口令)邮件服务器万维网网站就可以撰写、收发、阅读和管理电子邮件。这种工作模式与IMAP很类似,不同的是用户计算机无需安装专门的用户代理程序,只需要使用通用的万维网浏览器。
    • 这种工作模式在用户浏览器与邮件服务器网站之间使用HTTP协议,而邮件服务器之间使用SMTP协议。
      在这里插入图片描述

6.7 万维网WWW

  • 万维网WWW(World Wide Web)是一个大规模的、联机式的信息储存所,是运行在因特网上的一个分布式应用

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

  • 万维网使用统一资源定位符URL来指明因特网上任何种类“资源”的位置。其一般形式为:<协议>://<主机>:<端口>/<路径>
    在这里插入图片描述

  • 万维网文档

    • 超文本标记语言HTML,使用多种“标签”来描述网页的结构和内容。(网页扩展名为.htm)
    • 层叠样式表CSS,从审美角度来描述网页的样式。(文件扩展名为.css)
    • 脚本语言JavaScript(与Java没有任何关系),控制网页的行为。(文件扩展名为.js)
  • 超文本传输协议HTTP(HyperText Transfer Protocol)定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及万维网服务器怎样把万维网文档传送给浏览器。
    在这里插入图片描述

    • HTTP/1.0采用非持续连接方式。每次浏览器要请求一个文件都要与服务器建立TCP连接(80端口),当收到响应后就立即关闭连接。
    • HTTP/1.1采用持续连接方式。万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。为了进一步提高效率,还可采用流水线方式,即浏览器在收到HTTP的响应报文之前就能够连续发送多个请求报文。
  • HTTP有两类报文:请求报文和响应报文。报文中的每一个字段都是一些ASCII码串,并且每个字段的长度都是不确定的。
    在这里插入图片描述
    在这里插入图片描述

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

  • 在万维网中还可以使用缓存机制以提高万维网的效率。万维网缓存又称为Web缓存,可位于客户机,也可位于中间系统上,位于中间系统上的Web缓存又称为代理服务器。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯省赛—dfs算法

一.题目 二.代码实现 public class Main {public static int max 0;//结果public static int x;//数组大小public static boolean[] b;//判断数组public static int[] array;//数组记录public static int start;public static void main(String[] args) {Scanner scan new S…

Docker 学习(四)——Dockerfile 创建镜像

Dockerfile是一个文本格式的配置文件&#xff0c;其内包含了一条条的指令(Instruction)&#xff0c;每一条指令构建一层&#xff0c;因此每一条指令的内容&#xff0c;就是描述该层应当如何构建。有了Dockerfile&#xff0c;当我们需要定制自己额外的需求时&#xff0c;只需在D…

Flink深入浅出之05:CEP复杂事件

深入浅出Flink-第五天 1️⃣深入理解Flink的CEP的机制和使用&#xff0c;Flink实时处理应用案例。 4️⃣ 要点 &#x1f4d6; 1. Flink的复杂事件处理机制CEP 1.1 CEP概念 CEP是Complex Event Processing三个单词的缩写&#xff0c;表示复杂事件处理&#xff0c;是一种基于…

指令的旋律:走进Linux系统开发工具,体悟Ubuntu系统下软件包管理器的奥秘

文章目录 引言一、软件包的基本概念二. APT2.1 更新软件包列表2.2 升级已安装的软件包2.3 安装软件包2.4 卸载软件包2.5 查找软件包2.6 显示软件包信息2.7 清理不需要的包 三、 APT的配置文件四、APT的源管理4.1 软件源4.2 添加PPA&#xff08;Personal Package Archive&#x…

队列相关练习

目录 1、用队列实现栈 2、用栈实现队列 1、用队列实现栈 oj&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 1. 入栈时&#xff0c;两个队列 哪个不为空放到哪个队列里&#xff0c;两个都是空的指定放到第一个里面 2. 出栈时&#…

全新方案80M/S,告别限速!

资源和文件转载的最佳方式是通过网盘链接分享&#xff0c;这种方式的优点在于可以避免地区、局域网和文件大小的限制。近年来&#xff0c;随着123云盘、阿里云盘和夸克网盘等网盘逐步崭露头角&#xff0c;各具优势。然而&#xff0c;依然没能撼动百度网盘老大哥的位置&#xff…

海思Hi3516DV00移植yolov5-7.0的模型转化流程说明

一、YOLOv5 YOLOv5作为单阶段检测框架的集大成者&#xff0c;凭借其卓越的实时性、高精度和易用性&#xff0c;已成为工业界实际部署的首选方案。yolov5的最新版本是7.0&#xff0c;该版本是官方最后更新的一个版本。yolov5-7.0 工程化实现卓越&#xff1a;基于PyTorch框架构…

通过Golang的container/list实现LRU缓存算法

文章目录 力扣&#xff1a;146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2. 插入元素3. 删除元素4. 遍历链表5. 获取链表长度使用场景注意事项 源代码阅读 在 Go 语言中&#xff0c;container/list 包提供了一个双向链表的实现。链表是一种常见的数据结构&#…

从零开始学机器学习——线性和多项式回归

首先给大家介绍一个很好用的学习地址&#xff1a;https://cloudstudio.net/columns 在之前的学习中&#xff0c;我们已经对数据的准备工作以及数据可视化有了一定的了解。今天&#xff0c;我们将深入探讨基本线性回归和多项式回归的概念与应用。 如果在过程中涉及到一些数学知…

【数据结构初阶第十八节】八大排序系列(上篇)—[详细动态图解+代码解析]

看似不起眼的日复一日&#xff0c;总会在某一天让你看到坚持的意义。​​​​​​云边有个稻草人-CSDN博客 hello&#xff0c;好久不见&#xff01; 目录 一. 排序的概念及运用 1. 概念 2. 运用 3. 常见排序算法 二. 实现常见排序算法 1. 插入排序 &#xff08;1&…

SPI驱动五) -- SPI_DAC上机实验(使用spidev)

文章目录 参考资料&#xff1a;一、DAC硬件1.1 原理图1.2 扩展板连接图1.3 DAC原理 二、编写APP三、编写设备树四、上机实验五、Bug分析六、总结 参考资料&#xff1a; 参考资料&#xff1a; 内核驱动&#xff1a;drivers\spi\spidev.c 内核提供的测试程序&#xff1a;tools\…

基于Asp.net的驾校管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Spring (八)AOP-切面编程的使用

目录 实现步骤&#xff1a; 1 导入AOP依赖 2 编写切面Aspect 3 编写通知方法 4 指定切入点表达式 5 测试AOP动态织入 图示&#xff1a; 实现步骤&#xff1a; 1 导入AOP依赖 <!-- Spring Boot AOP依赖 --><dependency><groupId>org.springframework.b…

阿里云CTF2025 ---Web

ezoj 啊&#xff1f;怎么整个五个算法题给CTF选手做&#xff1f;&#xff1f;这我不得不展示一下真正的技术把测评机打穿。 可以看到源码 import os import subprocess import uuid import json from flask import Flask, request, jsonify, send_file from pathlib import Pa…

WSL(ubunt)中使用ollama部署deepseek-7b

想在自己的Win11电脑上部署Linux的DeepSeek模型&#xff0c;但在网上一直没有找到合适的相应教程&#xff0c;自己查询各种网上资源&#xff0c;以及询问一些AI大模型后成功安装&#xff0c;并整理了以下步骤。仅作为个人学习笔记使用&#xff0c;由于本人对各方面知识掌握不足…

蓝桥杯国赛—路径之谜(dfs详细解法)

一.题目 二.dfs解法 使用dfs算法可以递归遍历所有可能路径&#xff0c;如果找到错误的路径就进行回溯&#xff0c;只有找到正确的路径才会输出 public class Main {static class pair{int x;int y;public pair(int x,int y){this.x x;this.y y;} }public static void bfs()…

Jenkins在Windows上的使用(二):自动拉取、打包、部署

&#xff08;一&#xff09;Jenkins全局配置 访问部署好的Jenkins服务器网址localhost:8080&#xff0c;完成默认插件的安装后&#xff0c;接下来将使用SSH登录远程主机以实现自动化部署。 1. 配置插件 选择dashboard->Manage Jenkins->plugins 安装下面两个插件  …

记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)

文章目录 记录小白使用 Cursor 开发第一个微信小程序&#xff08;一&#xff09;&#xff1a;注册账号及下载工具&#xff08;250308&#xff09;一、微信小程序注册摘要1.1 注册流程要点 二、小程序发布流程三、下载工具 记录小白使用 Cursor 开发第一个微信小程序&#xff08…

蓝耘智算 + 通义万相 2.1:为 AIGC 装上 “智能翅膀”,翱翔创作新天空

1. 引言&#xff1a;AIGC 的崛起与挑战 在过去几年中&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术突飞猛进。AIGC 涉及了文本生成、图像创作、音乐创作、视频制作等多个领域&#xff0c;并逐渐渗透到日常生活的方方面面。传统的内容创作方式已经被许多人类创…

C/C++中使用CopyFile、CopyFileEx原理、用法、区别及分别在哪些场景使用

文章目录 1. CopyFile原理函数原型返回值用法示例适用场景 2. CopyFileEx原理函数原型返回值用法示例适用场景 3. 核心区别4. 选择建议5. 常见问题6.区别 在Windows系统编程中&#xff0c;CopyFile和CopyFileEx是用于文件复制的两个API函数。它们的核心区别在于功能扩展性和控制…