计算机网络复习6

应用层

文章目录

      • 应用层
        • 网络应用模型
        • 域名系统DNS
        • 文件传输协议FTP
        • 电子邮件
        • 万维网

网络应用模型
  1. 客户/服务器模型

image.png

  1. 客户/服务器(Client/Server,C/S)模型中,有一个总是打开的主机称为服务器,它服务于许多来自其他称为客户机的主机请求。其工作流程如下:
    • 服务器始终处于接收请求的状态
    • 客户机发出服务请求,并等待接收结果
    • 服务器收到请求后,分析请求,进行必要的处理,得到结果并发送给客户
  2. 客户/服务器模型最主要的特征是:客户是服务请求方,服务器是服务提供
  3. 缺点:服务器性能的好坏决定了整个系统的性能,当大量用户请求服务时,服务器就必然成为系统的瓶颈。
  4. P2P模型

image.png

  1. 整个网络中的传输内容不再被保存在中心服务器上,每个结点都同时具有下载,上传的功能,其权利和义务都是大体对等的
域名系统DNS
  1. 层次域名空间
    1. 因特网采用层次树状结构的命名方法,采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。域是名字空间中一个可被管理的划分。

对于www.hao123.com这个域名

  • www是三级域名
  • hao123是二级域名
  • com是顶级域名
  1. 域名服务器
    1. 因特网的域名系统被设计成一个联机分布式的数据库系统,并采用客户/服务器模型。域名到IP地址的解析是由运行在域名服务器上的程序完成的
    2. 主要有4种类型的域名服务器:
      1. 根域名服务器
      2. 顶级域名服务器
      3. 权域名服务器(权限域名服务器)
      4. 本地域名服务器image.png
  2. 域名解析过程
    1. 域名解析是指把域名映射成为IP地址把IP地址映射成域名的过程。前者称为正向解析,后者称为反向解析。当客户端需要域名解析时,通过本机的DNS客户端构造一个DNS请求报文,以UDP数据报方式发往本地域名服务器
    2. 域名解析的方式
      1. 递归查询
      2. 递归与迭代相结合查询image.png
文件传输协议FTP
  1. FTP的工作原理

文件传输协议是因特网上使用得最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限
FTP采用客户/服务器的工作方式,它使用TCP可靠的传输服务。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外有若干从属进程,负责处理单个请求

  1. 工作步骤
    1. 打开熟知端口21(控制端口),使客户进程能够连接
    2. 等待客户进程发连接请求
    3. 启动从属进程来处理客户进程发来的请求。主进程与从属进程并发执行,从属进程对客户进程的请求处理完毕后即终止
    4. 回到等待状态,继续接收其他客户进程的请求
  2. 控制连接与数据连接
    1. FTP在工作时使用两个并行的TCP连接:一个是控制连接(端口号21),一个是数据连接(端口号20)
    2. 控制连接:控制连接用来传输控制信息(如连接请求,传送请求等),在整个会话期间一直保持打开状态(21端口)
    3. 数据连接:有两种传输模式,主动模式传送数据是服务器连接到客户端的端口被动模式传送数据是客户端连接到服务器的端口(20端口)
电子邮件
  1. 组成结构

一个电子邮件系统应具有三个最主要的组成构件,即用户代理,邮件服务器和电子邮件使用的协议

  1. 用户代理(UA):用户与电子邮件系统的接口。用户代理向用户提供一个很友好的接口来发送和接收邮件,用户代理至少应当具有撰写,显示和邮件处理的功能
  2. 邮件服务器:它的功能是发送和接收邮件,同时还要向发信人报告邮件传送的情况(已交付,被拒绝,丢失等)。邮件服务器采用客户/服务器方式工作,但它必须能够同时充当客户和服务器
  3. 邮件发送协议和读取协议:邮件发送协议用于用户代理向邮件服务器发送邮件 或 在邮件服务器之间发送邮件,如SMTP;邮件读取协议用于用户代理从邮件服务器读取邮件,如POP3
  4. SMTP用的是推(push)的通信方式,POP3用的是拉(pull)的通信方式image.png
  5. 电子邮件格式

From:hoopdog@wmu.edu.cn
To:abcdef@163.com 首部
Subject:Say hello to Intenet

  1. 多用途网际邮件扩充(MIME)
    1. 由于SMTP只能传送一定长度的ASCLL码,许多其他非英语国家的文字(如中文,俄文,甚至带重音符号的法文或德文)就无法传送,且无法传送可执行文件及其他二进制对象,因此提出了多用途网络邮件扩充
  2. SMTP(用推的方式将文件发送到邮件服务器)
    1. SMTP用的是TCP连接,端口号为25。SMTP通信有以下三个阶段
      1. 连接建立:发件人的邮件发送到发送方邮件服务器的邮件缓存中后,SMTP客户就每隔一定时间对邮件缓存扫描一次。如发现有邮件,建立TCP连接
      2. 邮件传送:连接建立后,就可开始传送邮件。邮件的传送从MAIL命令开始,MAIL命令后面有发件人的地址
      3. 连接释放:邮件发送完毕后,SMTP客户应发送QUIT命令。SMTP服务器返回的信息是221(服务关闭),表示SMTP同意释放TCP连接
  3. POP3(拉的方式从邮件服务器读取邮件)
    1. POP3也使用客户/服务器的工作方式,在传输层使用TCP,端口号为110。POP有两种工作方式:
      1. 下载并保留(可理解为:复制)
      2. 下载并删除(可理解为:剪切)
万维网
  1. WWW的概念与组成结构
    1. 万维网(WWW)是一个分布式,联机式的信息存储空间,在这个空间中:一样有用的事物称为一样资源,并由一个全域统一资源定位符(URL)标识。这些资源通过超文本传输协议(HTTP)传送给使用者,而后者通过单击链接来获取资源
  2. 万维网的内核部分是由三个标准构成的:
    1. 统一资源定位符URL:负责标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符URL
    2. 超文本传输协议HTTP:一个应用层协议,它使用TCP连接进行可靠的传输,HTTP是万维网客户程序和服务器程序之间交互所必须严格遵守的协议
    3. 超文本标记语言HTML:一种文档结构的标记语言,它使用一些约定的材记对页面上的各种信息(包括文字,声音,图像,视频等),格式进行描述
  3. 工作流程
    1. Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求;Web服务器把URL转换为文件路径,并返回信息给Web浏览器;通信完成,关闭连接image.png
  4. HTTP协议
    1. 操作过程:用户单击鼠标后所发生的事件顺序如下
      1. 浏览器分析链接指向页面的URL**(分析)**
      2. 浏览器向DNS请求解析IP地址**(DNS解析)**
      3. 域名系统DNS解析出该网站服务器的IP地址**(得到IP)**
      4. 浏览器与该服务器建立TCP连接**(TCP连接)**
      5. 浏览器发出HTTP请求**(HTTP请求)**
      6. 服务器通过HTTP响应把文件发送给浏览器**(发送)**
      7. 释放TCP连接**(TCP释放)**
      8. 浏览器解释文件,并将Web页显示给用户**(展现)**
    2. HTTP特点
      1. 使用TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传
      2. 无状态的。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同
      3. 既可以使用非持久连接也可以使用持久连接
        1. 非持久连接:每个网页元素对象(如jpg图形,flash等)的传输都需要单独建立一个TCP连接
        2. 持久连接:是指万维网服务器在发送响应后仍然保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求和响应报文

image.pngimage.png

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

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

相关文章

Python线程池实现的进阶知识

1.参数 max_workers 的设定 接前文 《Python多线程和线程池的下载实战用法 》中案例,继续分析 concurrent.futures.ThreadPoolExecutor() 是 Python 中的一个线程池实现,用于执行并发的任务。它可以通过参数 max_workers 来设置线程池的最大工作线程数。 在你提供的代码中,…

SLAM学习入门--编程语言

文章目录 编程语言一、C/C++C 与 C++ 的区别(面向对象的特点)C++ 与 Python的区别判断struct的字节数static 作用Const 作用extern "C"的作用多态如何实现多态?虚函数虚函数怎么实现的?析构函数虚析构函数的作用virtual函数能不能用在构造函数中&#

Java集合/泛型篇----第一篇

系列文章目录 文章目录 系列文章目录前言一、ArrayList和linkedList的区别二、HashMap和HashTable的区别三、Collection包结构,与Collections的区别四、泛型常用特点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站…

Spring系列学习四、Spring数据访问

Spring数据访问 一、Spring中的JDBC模板介绍1、新建SpringBoot应用2、引入依赖:3、配置数据库连接,注入dbcTemplate对象,执行查询:4,测试验证: 二、整合MyBatis Plus1,在你的项目中添加MyBatis …

Java 实现自动获取法定节假日

一、背景 在实现业务需求的过程中,遇到了需要计算 x 个工作日后的日期需求。由于工作日是每年国务院发布的,调休和休假都没有规律,所以无法使用算法进行计算。 一般的实现方案是自己维护一个工作日和调休的表,或者去爬取国务院发…

AutoSAR(基础入门篇)4.4-Autosar_BSW的Memory功能

Memory功能 一、Autosar_BSW的Memory 1、Memory 组件图 2、架构与术语解释 3、片内存储 4、片外存储

游戏加速器LSP/DLL导致WSL.EXE无法打开问题修复!

解决办法: https://github.com/microsoft/WSL/issues/4177#issuecomment-597736482 方法一:(管理员身份) netsh winsock reset 方法二: WSCSetApplicationCategory 函数设置LSP加载权限 bool NoLsp(const wchar_t* …

从零开始:使用 BIND 构建和管理您的 DNS 服务器

1 前言 在这篇文章中,我将详细介绍如何使用 BIND(Berkeley Internet Name Domain)软件包中的 named 程序来配置和管理一个基本的 DNS 服务器。 从安装 BIND 开始,到设置 DNS 区域文件,再到运行和测试您的服务器&#x…

Oracle 19c OCP 1z0 082考场真题解析第17题

考试科目:1Z0-082 考试题量:90 通过分数:60% 考试时间:150min 本文为云贝教育郭一军guoyJoe原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 17. Which three …

通过数字证书对PDF电子文件进行数字签名/盖章

以下代码详细说明如何使用数字证书对PDF电子文件进行数字签名/盖章。PDF文件签署主要传递PDF文件,数字证书信息,签章图片3个信息。代码中需要的文件、数字证书、签章图片可访问开放签电子签章开源系统详细了解系统的实现与效果。也可通过gitee开源社区下…

AQS之ReentrantReadWriteLock

AQS之ReentrantReadWriteLock 一. 归纳总结 ReentrantReadWriteLock适合读多写少的场景。是可重入的读写锁实现类。其中, 写锁是独占的,读锁是共享的。 支持锁降级(持有写锁、获取读锁,最后释放写锁的过程) 锁降级可以帮助我们…

2023-12-30 msys2的python包降级

点击 <C 语言编程核心突破> 快速C语言入门 msys2的python包降级 前言总结 前言 要解决问题: 调大模型, 要用python, 需要numpy安装pip结果是升级了, 对不上当前py版本, 啥都装不了, 需要降级. 想到的思路: https://repo.msys2.org/mingw/clang64/ 下载对应包 使用命令…

oracle-存储结构

文件包括 控制文件.ctl、数据文件.dbf、日志文件.log这三类放在存储上。 参数文件&#xff1a;空间的划分&#xff0c;进程的选用&#xff08;.ora&#xff09; oracle启动的时候需要读一下&#xff0c;数据库启动后&#xff0c;参数文件并不关闭&#xff0c;但即使文件丢了&a…

Python生成器 (Generators in Python)

Generators in Python 文章目录 Generators in PythonIntroduction 导言贯穿全文的几句话为什么 Python 有生成器Generator&#xff1f;如何获得生成器Generator&#xff1f;1. 生成器表达式 Generator Expression2. 使用yield定义生成器Generator 更多Generator应用实例表示无…

车牌识别技术,如何用python识别车牌号

目录 一.前言 二.运行环境 三.代码 四.识别效果 五.参考 一.前言 车牌识别技术&#xff08;License Plate Recognition, LPR&#xff09;在交通计算机视觉&#xff08;Computer Vision, CV&#xff09;领域具有非常重要的研究意义。以下是该技术的一些扩展说明&#xff1…

Day20 222完全二叉树的节点个数 110平衡二叉树 257二叉树的所有路径

222 完全二叉树的结点个数 本题先不把它当成完全二叉树来看&#xff0c;用广度优先和深度优先搜索分别遍历&#xff0c;也能达到目的&#xff0c;只要将之前的代码稍加修改即可。注意后序遍历时的result要加上自身本身的那个结点。 //后序递归遍历 class Solution { public:in…

【AI】人工智能的未来

目录 一、人工智能的未来预测 二、可信人工智能 三、多模态预训练模型 四、基于人工智能的网络安全 五、边缘计算和联合学习 六、人机协作与交互 七、从大数据转向多样化小数据 八、人工智能伦理 一、人工智能的未来预测 从技术的发展角度看&#xff0c;人工智能&…

STL——集合算法

算法简介&#xff1a; set_intersection // 求两个容器的交集set_union // 求两个容器的并集set_difference // 求两个容器的差集 1.set_intersection 函数原型&#xff1a; set_intersection(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);…

【办公技巧】怎么批量提取文件名到excel

Excel是大家经常用来制作表格的文件&#xff0c;比如输入文件名&#xff0c;如果有大量文件需要输入&#xff0c;用张贴复制或者手动输入的方式还是很费时间的&#xff0c;今天和大家分享如何批量提取文件名。 打开需要提取文件名的文件夹&#xff0c;选中所有文件&#xff0c…

iptables 防火墙(二)

目录 1. SNAT 策略及应用 1.1 SNAT策略概述 1. 只开启路由转发&#xff0c;未设置地址转换的情况 2. 开启路由转发&#xff0c;并设置SNAT转换的情况 1.2 SNAT策略的应用 1. 2.1 共享固定IP上网 &#xff08;1&#xff09;打开网关的路由转发 &#xff08;2&#xff09;…