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

news2024/10/2 12:15:05

系列文章目录

计算机网络 第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 总结

在这里插入图片描述

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

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

相关文章

MySQL十部曲之一:MySQL概述及手册说明

文章目录 数据库、数据库管理系统以及SQL之间的关系关系型数据库与非关系型数据库手册语法约定 数据库、数据库管理系统以及SQL之间的关系 名称说明数据库(Database)即存储数据的仓库,其本质是一个文件系统。它保存了一系列有组织的数据。数…

【第四天】蓝桥杯备战

题 1、求和2、天数3、最大缝隙 1、求和 https://www.lanqiao.cn/problems/1442/learning/ 解法:字符串方法的应用 import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Scann…

xshell无法连接linux,查询本机ip时出现<NO-CARRIER,BROADCAST,MULTICAST,UP>

在用xshell连接虚拟机VMware中的linux时&#xff0c;发现昨天还能连通的&#xff0c;今天连接不了了 我寻思应该是网卡配置出问题了&#xff0c;就去终端ip addr试了一下&#xff0c;果然发现问题&#xff0c;ip 查看网卡ens33就发现出现ens33:<NO-CARRIER,BROADCAST,MULTI…

操作符详解(上)

目录 操作符的分类 二进制和进制转换 2进制转10进制 10进制转2进制数字 2进制转8进制 2进制转16进制 原码、反码、补码 移位操作符 左移操作符 右移操作符 位操作符&#xff1a;&、|、^、~ 单目操作符 逗号表达式 操作符的分类 • 算术操作符&#xff1a; …

无法获得dpkg前端锁、Linux之E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?(解决方法)

无法获得dpkg前端锁的解决方法 sudo rm /var/lib/dpkg/lock sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/cache/apt/archives/lock 输入以上三个命令即可解除占用。解除后&#xff0c;继续运行apt命令&#xff0c;已经顺利运行了。解除前端锁后&#xff0c;Linux之E: 无…

自动写作软件有哪些?一次性分享5个好用软件

自动写作软件有哪些&#xff1f;随着科技的不断发展&#xff0c;自动写作软件逐渐进入了人们的视野。这些软件能够根据用户提供的关键词和主题&#xff0c;自动生成一篇完整的文章。这对于需要大量内容创作者来说&#xff0c;无疑是一个福音。下面介绍一些知名的自动写作软件&a…

鸿蒙开发实战-手写文心一言AI对话APP

运行环境 &#xff08;后面附有API9版本&#xff0c;可修改后在HarmonyOS4设备上运行&#xff09; DAYU200:4.0.10.16 SDK&#xff1a;4.0.10.15 IDE&#xff1a;4.0.600 在DAYU200:4.0.10.16上运行 一、创建应用 1.点击File->new File->Create Progect 2.选择模版…

D. Gargari and Permutations

很好玩的一道类似LCS的DP 问题 定义dp(i) 为考虑最后一个字符串&#xff0c;且选择a&#xff08;i&#xff09;得到的最大LIS值 然后枚举所有小于i的位置&#xff0c;可以更新的条件是 所有的字符串中都有a[j]<a[i] 这个用map一处理就好了 #include<bits/stdc.h> usi…

EasyCVR视频融合平台雪亮工程视频智能监控方案设计与应用

随着科技的不断发展&#xff0c;视频监控已经成为城市安全防范的重要手段之一。为了提高城市安全防范水平&#xff0c;各地纷纷开展“雪亮工程”&#xff0c;即利用视频智能监控技术&#xff0c;实现对城市各个角落的全方位、全天候监控。本文将介绍一种雪亮工程视频智能监控方…

机器人学论文——智能施药机器人调研报告

目录 摘 要 Abstract 第一章&#xff1a;引言 1.1研究背景 1.2 研究意义 1.3文章架构 第二章&#xff1a;智能施药机器人发展现状 2.1引言 2.2 大田智能施药机器人发展现状 2.3 果园智能施药机器人发展现状 2.4 设施农业智能施药机器人发展现状 第三章&#xff1a;智能施药机器…

PCL-IO输入输入模块

IO输入输入模块 一、概述二、点云数据格式1. PCD 格式2. PLY 格式3. OBJ 格式4. STL 格式5. OFF 格式 三、读取3D文件1. API 总览2. 示例 四、保存3D文件1. API 总览2. 示例 一、概述 PCL 库提供了一个模块用来对3D数据进行读写操作&#xff0c;这个库提供了一个模块&#xff…

sony ps3 eye 摄像头win10、win11directShow补丁驱动,补充CL5.3驱动无法外部程序调用问题

最近把几年前&#xff0c;淘的sony ps3 eye 摄像头拿出来测试&#xff0c;发现升值了。原来4个打算做动捕用&#xff0c;结果发现安装完CL-Eye-Driver-5.3.0.0341驱动后&#xff0c;无法用外部程序驱动摄像头&#xff0c;后来知乎里发现有人解决了这个为题&#xff0c;是win10下…

2982. 找出出现至少三次的最长特殊子字符串 II

字典树思路 用字典树搞一下就好了&#xff0c;比如aaaaa &#xff1a; a存5次 aa 4次以此类推&#xff5e; 字典树板子复习&#xff1a;P8306 【模板】字典树 这里这个清空方式 很好 因为很多时候memset T #include<iostream> #include<cstring> using namesp…

1. MySQL 数据库

本章内容 关系型数据库基础 安装 MySQL 管理数据库和表 用户和权限管理 函数&#xff0c;存储过程&#xff0c;触发器和事件 MySQL 架构 存储引擎 服务器选项&#xff0c;系统和状态变量 优化查询和索引管理 锁和事务管理 日志管理 备份还原 MySQL 集群 压力测试…

Tensorflow2.0笔记 - tensor排序操作

本笔记主要记录sort,argsort,以及top_k操作&#xff0c;加上一个求Top K准确度的例子。 import tensorflow as tf import numpy as nptf.__version__#sort,argsort#对1维的tensor进行排序 tensor tf.random.shuffle(tf.range(10)) print(tensor) #升序 print("tf.sort(d…

晨曦记账本,你的账目整理专家

传统的账目明细记录和整理方式不仅费时费力&#xff0c;还容易出错。在数字化时代&#xff0c;【晨曦记账本】为你提供了一个全新的账目明细整理模式。它不仅能让你的账目明细变得井井有条&#xff0c;更能让你在管理财务的过程中得心应手。 所需工具&#xff1a; 一个【晨曦…

Ubuntu18编译jdk8源码

环境 系统 ubuntu18 Linux ubuntu 5.4.0-150-generic #167~18.04.1-Ubuntu SMP Wed May 24 00:51:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux jdk源码openjdk-8u41-src-b04-14_jan_2020.zip bootJdk jdk-8u391-linux-x64.tar.gz ps -e|grep ssh sudo apt-get install ssh…

BabylonJS 6.0文档 Deep Dive 摄像机(六):遮罩层和多相机纹理

1. 使用遮罩层来处理多个摄影机和多网格物体 LayerMask是分配给每个网格&#xff08;Mesh&#xff09;和摄像机&#xff08;Camera&#xff09;的一个数。它用于位&#xff08;bit&#xff09;级别用来指示灯光和摄影机是否应照射或显示网格物体。默认值为0x0FFFFFFF&#xff…

语义分割(2) :自定义Dataset和Dataloader

文章目录 1. 数据处理1.1 标签转换(json2mask和json2yolo)1.1.1 json2mask1.1.2 json2yolo 1.2 划分数据集1.2 不规范的标签图片处理1.3 批量修改图片后缀 2 自定义Dataset 和 Dataloader2.1 自定义Dataset2.1.1 数据增强(1) 对图像进行缩放并且进行长和宽的扭曲(2) 随机翻转图…

【C++中STL】map/multimap容器

map/multimap容器 map基本概念map构造和赋值map的大小和交换map插入和删除map的查找和统计 map排序 map基本概念 map中的所有元素都是pair对组&#xff0c;高效率&#xff0c;pair中的第一个元素为key&#xff08;键值&#xff09;&#xff0c;起到索引作用&#xff0c;第二个…