计算机网络 第6章(应用层)

系列文章目录

计算机网络 第1章(概述)
计算机网络 第2章(物理层)
计算机网络 第3章(数据链路层)
计算机网络 第4章(网络层)
计算机网络 第5章(运输层)
计算机网络 第6章(应用层)


文章目录

  • 系列文章目录
  • 1. 应用层概述
  • 2. 客户/服务器方式(C/S方式)和对等方式(P2P方式)
    • 2.1 概念
    • 2.2 客户/服务器方式(C/S方式)
    • 2.3 对等方式(P2P方式)
    • 2.4 总结
  • 3. 动态主机配置协议DHCP
    • 3.1 概念
    • 3.2 DHCP的作用
    • 3.3 DHCP的工作过程
    • 3.4 DHCP中继代理
    • 3.5 总结
  • 4. 域名系统DNS
    • 4.1 概述
    • 4.2 域名解析过程
    • 4.3 总结
  • 5. 文件传送协议FTP
    • 5.1 概念
    • 5.2 文件传送协议FTP的应用
    • 5.3 FTP基本工作原理
    • 5.4 总结
  • 6. 电子邮件
    • 6.1 概念
    • 6.2 邮件发送和接收过程
    • 6.3 简单邮件传送协议SMTP(Simple Mail Transfer Protocol)的基本工作原理
    • 6.4 电子邮件的信息格式
    • 6.5 邮件读取
    • 6.6 基于万维网的电子邮件
    • 6.7 总结
  • 7. 万维网WWW
    • 7.1 概念
    • 7.2 超文本传输协议HTTP(Hyper Transfer Protocol)
      • 7.2.1 概念和传输过程
      • 7.2.2 HTTP报文格式
      • 7.2.3 使用Cookie在服务器上记录用户信息
      • 7.2.4 万维网缓存与代理服务器
    • 7.3 总结


1. 应用层概述

在这里插入图片描述

在这里插入图片描述

我们在浏览器的地址中输入某个网站的域名后,就可以访问该网站的内容,这个就是万维网WWW应用,其相关的应用层协议为超文本传送协议HTTP

在这里插入图片描述

用户在浏览器地址栏中输入的是“见名知意”的域名,而TCP/IP的网际层使用IP地址来表示目的主机,从域名到IP地址的装转换,由属于应用层范畴的域名系统DNS,在后台帮用户完成

在这里插入图片描述

常见的应用

在这里插入图片描述

总结

在这里插入图片描述

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

2.1 概念

在这里插入图片描述

2.2 客户/服务器方式(C/S方式)

在这里插入图片描述

2.3 对等方式(P2P方式)

在这里插入图片描述

2.4 总结

在这里插入图片描述

3. 动态主机配置协议DHCP

3.1 概念

  • 互联网广泛使用的动态主机配置协议 DHCP (Dynamic Host Configuration Protocol) 提供了即插即用连网 (plug-and-play networking) 的机制。
  • 这种机制允许一台计算机加入新的网络和获取 IP 地址,而不用手工配置。

3.2 DHCP的作用

在之前,如果要正常访问Web服务器,需要该主机手动配置网络的相关配置信息

在这里插入图片描述

如果主机数很多,就工作量大,容易出错

如果我们给网络中添加一台DHCP服务器

在这里插入图片描述

3.3 DHCP的工作过程

DHCP 使用客户 - 服务器方式

  • 需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文 (DHCP DISCOVER),这时该主机就成为 DHCP 客户。
  • 本地网络上所有主机都能收到此广播报文,但只有 DHCP 服务器才回答此广播报文。
  • DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的 IP 地址池 (address pool) 中取一个地址分配给该计算机。DHCP服务器的回答报文叫做提供报文(DHCP OFFER)。

DHCP 工作方式

  • DHCP 使用客户-服务器方式,采用请求/应答方式工作。
  • DHCP 基于 UDP 工作(DHCP报文在运输层会被封装成为UDP用户数据报),DHCP 服务器运行在 67 号端口, DHCP客户运行在 68 号端口。

DHCP交互过程
在这里插入图片描述

DHCP客户端将广播发送DHCP发现报文(DHCP DISCOVER)

  • 事务ID
  • DHCP客户端的MAC地址

封装该报文的IP数据报的源IP地址为0.0.0.0,这是因为主机目前还未分配到IP地址,因此使用该地址代替

目的IP地址为广播地址255.255.255.255,之所以广播发送,是因为主机现在并不知道网络中有哪几个DHCP服务器。它们的IP地址各是什么

DHCP服务器收到DHCP发现报文后,根据其中封装的DHCP客户端的MAC地址来查找自己的数据库,如果查到匹配信息,则使用这些配置信息来构建并发送DHCP提供报文,如果没有则采用默认配置信息来构建报文并发送

在这里插入图片描述

DHCP服务端将广播发送DHCP提供报文(DHCP OFFER)

  • 事务ID:DHCP客户端会与之前DHCP发现报文的事务ID做对比,来判断该DHCP提供报文是否是自己的
  • 配置信息:
    (1)IP地址:DHCP服务器从自己的IP地址池中挑选待租用给主机的IP地址(使用ARP来确保所选IP地址未被网络中其他主机占用)
    (2)子网掩码
    (3)地址租期
    (4)默认网关
    (5)DNS服务器

源IP地址:发送DHCP提供报文的DHCP服务器的IP
目的地址:因为目的主机还没分配到IP,所以使用广播地址

在本例中,DHCP客户会收到两个DHCP服务器发来的DHCP提供报文,DHCP客户从中选择一个,一般选择先到的,并向所选择的DHCP服务器发送DHCP请求报文

在这里插入图片描述

DHCP客户端将广播发送DHCP请求报文(DHCP REQUEST)

  • 事务ID
  • DHCP客户端的MAC地址
  • 接收的租约中的IP地址
  • 提供此租约的DHCP服务器端的IP地址

源地址:0.0.0.0,因为此时DHCP客户才从多个DHCP服务器中挑选一个作为自己的DHCP服务器。它首先要征得该服务器的同意,之后才能正式使用向该DHCP服务器租用的IP地址
目的地址:广播地址,这样可以一次性向所有DHCP服务器发送DHCP请求报文,来告知它们是否请求它们作为自己的DHCP服务器

在本例中,假设DHCP客户端选择DHCP服务器1作为自己的DHCP服务器,DHCP服务器1接受该请求,于是DHCP服务器1给DHCP客户端发送DHCP确认报文

在这里插入图片描述

源地址:DHCP服务器1的IP地址
目的地址:广播地址
DHCP客户收到该报文后就可以使用租用的IP地址
在使用前还会进行ARP检测
在这里插入图片描述

剩下流程图示

在这里插入图片描述

3.4 DHCP中继代理

下图的网络拓扑中的各主机是否可以通过DHCP来自动获取到网络配置?

在这里插入图片描述

使用DHCP中继代理是因为我们不用给每一个网络上都设置一个DHCP服务器,这样会使DHCP服务器的数量太多

3.5 总结

在这里插入图片描述

4. 域名系统DNS

4.1 概述

域名相比IP地址更容易记忆

在这里插入图片描述

因特网是否可以只使用一台DNS服务器?

不行

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

名称相同的域名其等级未必相同

在这里插入图片描述

在这里插入图片描述

4.2 域名解析过程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3 总结

在这里插入图片描述

5. 文件传送协议FTP

5.1 概念

在这里插入图片描述

5.2 文件传送协议FTP的应用

FTP采用C/S方式(客户/服务器方式)

FTP客户计算机可将各种类型的文件上传到FTP服务器计算机

在这里插入图片描述

FTP客户计算机也可以从FTP服务器计算机下载文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.3 FTP基本工作原理

FTP服务器监听熟知端口(端口号为 21),使客户进程能够连接上。

FTP客户随机选择一个临时端口号与其建立TCP连接,这条TCP连接用于FTP客户与服务器之间传送FTP的相关控制命令(这条连接是FTP客户与服务器之间的命令通道)

在这里插入图片描述

下图为建立数据通道的TCP连接

FTP服务器使用自己的熟知端口号20与其建立TCP连接,这条TCP连接用于FTP客户与服务器之间传送文件

在这里插入图片描述

上面例子是主动模式:建立数据通道时,FTP服务器主动连接FTP客户

下图实例为被动模式

在这里插入图片描述

两种模式对比

在这里插入图片描述

注意两种模式都是
控制连接在整个会话期间保持打开状态
数据连接传输完毕后就关闭

5.4 总结

在这里插入图片描述

6. 电子邮件

6.1 概念

在这里插入图片描述

6.2 邮件发送和接收过程

在这里插入图片描述

6.3 简单邮件传送协议SMTP(Simple Mail Transfer Protocol)的基本工作原理

在这里插入图片描述

6.4 电子邮件的信息格式

在这里插入图片描述

6.5 邮件读取

在这里插入图片描述

6.6 基于万维网的电子邮件

在这里插入图片描述

6.7 总结

在这里插入图片描述

7. 万维网WWW

7.1 概念

概述

  • 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
  • 万维网是一个大规模的、联机式的信息储藏所
  • 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
  • 这种访问方式称为“链接”。

万维网的工作方式

  • 万维网以客户 - 服务器方式工作。
  • 浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器
  • 客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档
  • 在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。

在这里插入图片描述

在这里插入图片描述

万维网应用举例

访问网页

在这里插入图片描述

怎样标志分布在整个互联网上的万维网文档?

在这里插入图片描述

万维网的文档

在这里插入图片描述

7.2 超文本传输协议HTTP(Hyper Transfer Protocol)

7.2.1 概念和传输过程

  • 在万维网客户程序与万维网服务器程序之间进行交互所使用的协议,是超文本传送协议 HTTP (HyperText Transfer Protocol)。
  • HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。

在这里插入图片描述

  • 每个万维网网点都有一个服务器进程,它不断地监听 TCP 的端口 80,以便发现是否有浏览器向它发出连接建立请求。
  • 一旦监听到连接建立请求并建立了 TCP 连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。
  • 最后,TCP 连接就被释放了。

在这里插入图片描述

7.2.2 HTTP报文格式

HTTP请求报文格式

在这里插入图片描述

HTTP响应报文格式

在这里插入图片描述

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

在这里插入图片描述

7.2.4 万维网缓存与代理服务器

在这里插入图片描述

如果该请求有缓存

在这里插入图片描述

如果该请求没有缓存

在这里插入图片描述

若WEb缓存的命中率比较高
则会大大减小了该链路上的通信量,因而减少了访问因特网的时延

假设原始服务器的文档被更改,这样代理服务器的文档就不是最新的

所以原始服务器通常会为每个响应的对象设定一个修改时间字段和一个有效日期字段

若未过期

在这里插入图片描述

若过期并且代理服务器的文档和原始服务器的文档一致,原始服务器则给代理服务器发送不包含实体主体的响应

在这里插入图片描述

若过期并且代理服务器的文档和原始服务器的文档不一致,原始服务器则给代理服务器发送封装有该文档的响应报文

在这里插入图片描述

7.3 总结

在这里插入图片描述

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

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

相关文章

WebSocket服务端数据推送及心跳机制(Spring Boot + VUE):

文章目录 一、WebSocket简介:二、WebSocket通信原理及机制:三、WebSocket特点和优点:四、WebSocket心跳机制:五、在后端Spring Boot 和前端VUE中如何建立通信:【1】在Spring Boot 中 pom.xml中添加 websocket依赖【2】…

Python + Selenium —— 元素定位函数 find_element!

WebDriver 中的 find_element() 方法用来查找元素,并返回 WebElement 对象。是 WebDriver 中最常用的方法。 前面提到的八种定位方式都有对应的方法,如find_element_by_id()。 在 WebDriver 中还有一种用法,就是单纯的find_element()。需要…

年销180万辆的特斯拉,护城河却在崩塌

文|刘俊宏 2023年率先开启汽车价格战的马斯克,伤敌一百自损八千? 在1月25日的特斯拉2023Q4财报电话会上,特斯拉CEO马斯克对中国公司的竞争力如此感叹道,“要是没有贸易壁垒,他们将摧毁(destroy…

FastDeploy项目简介,使用其进行(图像分类、目标检测、语义分割、文本检测|orc部署)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 🔥160 Text,Vision, Speech和跨模态模型📦开箱即用的部署体验,并实现🔚端到端的推理性能优化。包括 物…

Redis配置类,序列化

解释说明: 当前配置类不是必须的,因为 Spring Boot 框架会自动装配 RedisTemplate 对象,但是默认的key序列化器为JdkSerializationRedisSerializer,导致我们存到Redis中后的数据和原始数据有差别 如: 但是取是可以取出…

Linux第35步_在“移植uboot”前安装“libncurses5-dev,bison和flex”工具

在“移植uboot”前,需要在Ubuntu中安装“libncurses5-dev,bison和flex”工具,否则在“编译uboot”时,会报错。 一、了解相关知识 1、libncurses5-dev库是一个在Linux/Unix下广泛应用的图形函数库。 2、bison是用C编写的语法解析…

web蓝桥杯真题--13、水果摆盘

背景介绍 目前 CSS3 中新增的 Flex 弹性布局已经成为前端页面布局的首选方式,这次试题将利用 Flex 实现经典布局效果。 准备步骤 在开始答题前,你需要在线上环境终端中键入以下命令,下载并解压所提供的文件。 wget https://labfile.oss.a…

Vue+OpenLayers7入门到实战:快速搭建Vue+OpenLayers7地图脚手架项目。从零开始构建Vue项目并整合OpenLayers7.5.2

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章针对Vue初学者,对Vue不熟悉,甚至还不会Vue的入门学生读者。 本章会详细讲解从NodeJS环境到npm环境的各个步骤,再到使用vue-cli脚手架快速生成项目,以及添加OpenLayers7地图库依赖,编写简单的xyz高德地图显示…

AR 自回归模型

文章目录 总的代码ADF 检验(是否平稳)差分操作拟合AR 模型预测可视化总的代码 import pandas as pd import numpy as np import matplotlib.pyplot as plt from statsmodels.tsa.ar_model import AutoReg from statsmodels.tsa.stattools import adfuller# 生成一个示例时间序…

DualSPHysics源码结构解读,新手入门

DualSPHysics代码下载,进入官网:https://dual.sphysics.org/ 可以看到下载的地方有①Full package ②Source code,官方的解读是:如果你只是想运行案例的话就下载Full package,如果想要自己进行修改构建的话&#xff0…

【数据结构】72变的双端队列

双端队列 前言一、双端队列1.1 双端队列的定义1.2 输入受限的双端队列1.3 输出受限的双端队列1.5 输入输出都受限的双端队列1.6 小结 二、双端队列的使用2.1 双端队列的出队序列——暴力求解2.1.1 栈的出栈序列2.1.2 输入受限的双端队列2.1.3 输出受限的双端队列2.1.4 输入输出…

Qt基础-项目中添加文件夹及子文件

本文讲解Qt项目中添加文件夹 1、项目中新建文件夹 打开工程目录,在目录下建立文件夹,如建立文件Dialogs 2、移入文件 将需要归类的头文件.h和源文件.cpp放入该文件夹下; 3、4、项目-右键-添加现有文件 查看Pro文件 发生了改变 4、也可以采…

Spring 声明式事务讲解,和 @Transactional注解的用法

目录 一、Spring框架介绍 二、什么是声明式事务 三、如何解决并发性事务问题 四、Transactional注解的用法 一、Spring框架介绍 Spring框架是一个开源的Java应用程序开发框架,旨在简化企业级Java应用程序的开发。它提供了一种轻量级的、全面的编程和配置模型&a…

【第六课课后作业】大模型评测

大模型评测 大模型评测安装环境安装数据准备查看支持的数据集和模型 启动测评评测结果 大模型评测 安装 环境安装 conda create --name opencompass --clone/root/share/conda_envs/internlm-base source activate opencompass git clone https://github.com/open-compass/ope…

一、Lamdba 表达式与函数式接口(最终版)

一、Lamdba 表达式与函数式接口 1.1 Lamdba 表达式与函数式接口 1.1.1 Lambda 表达式概述 Lambda 表达式是 Java 8 引入的一个新特性Lambda 表达式可以被视为匿名函数允许在需要函数的地方以更简洁的方法定义功能Lambda 表达式可以完成简洁的函数定义Stream API 中大量使用了…

基于静态顺序表实现通讯录

目录 一、设计框架 1、功能要求​ 2、菜单函数的实现 二、头文件实现​ Contact.h SeqList.h 三、Test.h 四、通讯录的初始化和销毁 五、增加通讯录 六、在通讯录中查找姓名下标 七、删除通讯录 八、显示通讯录 九、查找通讯录 一、设计框架 test.c:通…

【学网攻】 第(5)节 -- Cisco VTP的使用

文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节 -- 交换机划分Vlan 前言 网络已经成为了我们生活中不可或缺的一部分,它连接了世界各地的人们,让信息和资…

重磅!证监会回应股市波动!2万亿元救市计划正在商榷!将提振比特币?

最近这段时间,国内资本市场震荡走弱、波动加大,一些投资者深感忧虑。多家机构表示,市场波动已引起高层的重视。 继1月23日,证监会党委扩大会议从宏观层面提出资本市场建设发力重点后,1月24日证监会副主席王建军的一席采…

【前端基础--4】

定位属性 position 可以将元素定位到你想要放到位置,使用方位值来进行移动(top,left,right,bottom)。 1.相对定位 position: relative; top: 20px; left: 20px; 以自身为定点进行移动,不会脱离文档流。 不会影响元素本身的性质;块级…

YOLOv5改进系列(28)——添加DSConv注意力卷积(ICCV 2023|用于管状结构分割的动态蛇形卷积)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制