【计网复习】应用层总结(不含HTTP和错题重点解析)

  • 应用层总结(不含HTTP和错题重点解析)
    • 应用层简介
      • 应用层的主要功能
      • 常见的应用层协议
      • 小林对于应用层通常的解释
    • 网络应用模型
      • 客户端-服务器模型(Client-Server Model, C/S)
        • 特点
        • 优点
        • 缺点
        • 应用场景
      • 对等网络模型(Peer-to-Peer Model, P2P)
        • 特点
        • 优点
        • 缺点
        • 应用场景
      • 比较
      • 总结
    • 域名系统DNS
      • 层次域名空间(Hierarchical Domain Name Space)
    • 域名查询方式
      • 递归查询(Recursive Query)
        • 递归查询步骤
      • 迭代查询(Iterative Query)
        • 迭代查询步骤
        • 递归查询和迭代查询的比较
        • 总结
      • 次UDP报文总共来自哪里?看前面的内容。
    • 文件传输协议 FTP File Transport Protocol
      • FTP提供的功能
      • FTP在传输层所使用的协议
      • 控制连接
      • 数据连接
      • 主动模式和被动模式
    • 电子邮件
      • 电子邮件系统
      • 邮件发送协议和读取协议的应用
      • 电子邮件格式
      • 关注错题、关注STMP和POP3的工作流程、使用过程

应用层总结(不含HTTP和错题重点解析)

应用层简介

计算机网络的应用层是OSI模型和TCP/IP模型的最高层,负责提供网络服务给应用软件。这一层直接面向用户和应用程序,是用户与网络之间的接口。

应用层的主要功能

  1. 应用协议支持:提供各种网络服务协议,如HTTP(用于网页浏览)、FTP(用于文件传输)、SMTP(用于电子邮件)、DNS(用于域名解析)等。
  2. 数据表示:处理数据格式的转换、编码和解码,使得不同的应用可以互相理解和使用数据。
  3. 会话管理:管理应用之间的会话,包括会话的建立、维持和终止。
  4. 服务广告和服务发现:帮助用户发现和连接网络服务。

常见的应用层协议

  1. HTTP(Hypertext Transfer Protocol):用于传输网页数据,是万维网的基础协议。
  2. HTTPS(HTTP Secure):HTTP的安全版本,通过SSL/TLS加密数据传输,确保数据的安全性。
  3. FTP(File Transfer Protocol):用于文件在网络上的传输。
  4. SMTP(Simple Mail Transfer Protocol):用于发送电子邮件。
  5. POP3(Post Office Protocol 3)和IMAP(Internet Message Access Protocol):用于接收电子邮件。
  6. DNS(Domain Name System):将域名解析为IP地址。

小林对于应用层通常的解释

最上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都是在应用层实现。那么,当两个不同设备的应用需要通信的时候,应用就把应用数据传给下一层,也就是传输层。

所以,应用层只需要专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。

应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。

而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。

网络应用模型

客户端-服务器模型(Client-Server Model, C/S)

客户端-服务器模型是一种常见的网络架构,应用程序被分为两个主要部分:客户端服务器。这种模型的核心思想是通过服务器为客户端提供服务和资源。
在这个模型中,有一个总是打开的主机称为服务器,它处理很多来自其他被称为客户机的主机请求。

特点
  1. 集中控制:服务器集中管理资源和服务,客户端通过请求访问这些资源。
  2. 明确分工:客户端负责用户接口和请求处理,服务器负责处理请求和管理数据。
  3. 安全性:服务器集中存储和管理数据,便于实现集中安全策略。
优点
  • 易于管理:集中管理使得系统维护和升级更为方便。
  • 安全性好:数据集中存储,便于实施安全策略和数据备份。
  • 性能稳定:服务器可以通过负载均衡和冗余设计来提高性能和可靠性。
缺点
  • 单点故障:服务器出现问题时,整个系统可能无法正常工作。
  • 可拓展性不佳:随着客户端数量的增加,服务器需要更高的性能和带宽支持。
  • 服务器压力大:所有客户端请求集中到服务器,可能导致服务器负载过高。
  • 客户机相互之间不能通信:例如,web应用中两个浏览器并不能直接通信。
应用场景
  • Web应用:如网页浏览(浏览器和Web服务器)。
  • 电子邮件系统:如邮件客户端和邮件服务器。
  • 数据库系统:如数据库客户端和数据库服务器。

对等网络模型(Peer-to-Peer Model, P2P)

对等网络模型是一种去中心化的网络架构,每个节点(peer)在网络中既可以充当客户端,也可以充当服务器。节点之间可以直接进行通信和资源共享。

特点
  1. 去中心化:没有中央服务器,所有节点具有相同的地位
  2. 资源共享:每个节点既可以提供资源,也可以请求资源。
  3. 高扩展性:节点数量增加时,网络容量也随之增加。
  4. 自组织:网络可以自动适应节点的加入和离开。
优点
  • 抗故障能力强:没有单点故障,网络更加健壮。
  • 资源利用率高:每个节点都可以贡献带宽和存储资源,分担负载。
  • 扩展性好:随着节点的增加,网络性能和容量也增加。
缺点
  • 安全性较差:由于没有中央控制,难以统一管理和保障安全。
  • 一致性问题:数据的分布和更新需要复杂的协议来保持一致性。
  • 复杂性高:节点的动态变化和资源分布管理相对复杂。
应用场景
  • 文件共享:如BitTorrent、eDonkey等P2P文件共享网络。
  • 分布式计算:如SETI@home,利用闲置的计算资源进行科学计算。
  • 即时通讯:部分P2P即时通讯应用,如Skype的早期版本。

比较

特性客户端-服务器模型(C/S)对等网络模型(P2P)
结构中心化去中心化
控制集中管理分布式管理
扩展性依赖服务器性能和带宽节点增加带来性能提升
安全性高安全性安全性较差
抗故障能力单点故障风险高抗故障能力
资源利用服务器集中提供资源每个节点共享资源

总结

客户端-服务器模型适用于需要集中控制和管理的应用场景,具有良好的安全性和管理性。而对等网络模型则适用于分布式资源共享和高扩展性的应用场景,具有高抗故障能力和资源利用率。选择哪种模型取决于具体的应用需求和网络环境。

域名系统DNS

参考链接
特别说明:DNS系统采用客户/用户端

层次域名空间(Hierarchical Domain Name Space)

www.server.com为例。
这是层次树状的命名方法,任何一个连接到因特网的主机或者路由器都有一个唯一的层次结构名称。这句话非常难以理解?没关系因为根本不用理解,只要记住是层次树状结构即可。Man!What can I say?
www.server.com这个域名由三个.分开的组成。
每个都由标号组成。
从右到左分别是顶级域名、二级域名、三级域名。

域名查询方式

域名解析过程中,递归查询和迭代查询是两种不同的查询方式。下面我们详细介绍它们的区别,并列出各自的步骤。

域名解析过程中,递归查询和迭代查询是两种不同的查询方式。下面我们详细介绍它们的区别,并列出各自的步骤。

递归查询(Recursive Query)

在递归查询中,DNS服务器接收到查询请求后,如果不能直接回答请求,它将代表客户端继续查询其他DNS服务器,直到获得最终答案,然后将结果返回给客户端。

递归查询步骤
  1. 用户请求:用户在浏览器中输入 www.example.com,请求发送到递归DNS服务器。
  2. 递归DNS服务器查询根域名服务器:如果递归DNS服务器没有缓存结果,它向根域名服务器发送查询请求。
  3. 根域名服务器响应:根域名服务器返回 .com 顶级域名服务器的地址。
  4. 递归DNS服务器查询顶级域名服务器:递归DNS服务器向 .com 顶级域名服务器发送查询请求。
  5. 顶级域名服务器响应:顶级域名服务器返回 example.com 的权威DNS服务器地址。
  6. 递归DNS服务器查询权威DNS服务器:递归DNS服务器向 example.com 的权威DNS服务器发送查询请求。
  7. 权威DNS服务器响应:权威DNS服务器返回 www.example.com 的IP地址。
  8. 返回结果:递归DNS服务器将 www.example.com 的IP地址返回给用户的设备。

迭代查询(Iterative Query)

在迭代查询中,DNS服务器接收到查询请求后,如果不能直接回答请求,它将返回一个指向其他DNS服务器的地址,客户端(或中间DNS服务器)需要继续查询这些服务器,直到获得最终答案。

迭代查询步骤
  1. 用户请求:用户在浏览器中输入 www.example.com,请求发送到本地DNS服务器。UDP查询
  2. 本地DNS服务器查询本地缓存,若没有记录,则查询根域名服务器:本地DNS服务器向根域名服务器发送查询请求。UDP查询
  3. 根域名服务器响应:根域名服务器返回 .com 顶级域名服务器的地址。UDP响应
  4. 本地DNS服务器查询顶级域名服务器:本地DNS服务器向 .com 顶级域名服务器发送查询请求。UDP查询
  5. 顶级域名服务器响应:顶级域名服务器返回 example.com 的权威DNS服务器地址。UDP响应
  6. 本地DNS服务器查询权威DNS服务器:本地DNS服务器向 example.com 的权威DNS服务器发送查询请求。UDP查询
  7. 权威DNS服务器响应:权威DNS服务器返回 www.example.com 的IP地址。UDP响应
  8. 返回结果:本地DNS服务器将 www.example.com 的IP地址返回给用户的设备.UDP响应
递归查询和迭代查询的比较
  • 查询方式:

    • 递归查询:DNS服务器替客户端完成所有查询工作。
    • 迭代查询:客户端或中间DNS服务器逐步查询每一级DNS服务器。
  • 负担:

    • 递归查询:递归DNS服务器负担较重,需要处理整个查询过程。
    • 迭代查询:客户端或中间DNS服务器负担较重,需要逐步处理每一级查询。
  • 响应速度:

    • 递归查询:客户端等待时间较长,因为递归DNS服务器处理所有查询。
    • 迭代查询:每次查询的响应速度较快,但整体查询过程由客户端或中间DNS服务器处理。
  • 缓存:

    • 递归查询:递归DNS服务器可以缓存查询结果,提高后续查询效率。
    • 迭代查询:每一级DNS服务器可以缓存部分结果,但整体查询过程可能不会缓存所有结果。
总结

递归查询和迭代查询在DNS解析过程中各有优劣,递归查询由递归DNS服务器完成整个查询过程,适合减少客户端的复杂性和负担,而迭代查询由客户端或中间DNS服务器逐步查询,每一级查询结果都返回给客户端或中间服务器,适合分布式查询和减轻单个服务器的负担。选择哪种查询方式取决于具体的网络配置和需求。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

次UDP报文总共来自哪里?看前面的内容。

本地域名服务器根域名服务器查询通常是采取迭代查询
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文件传输协议 FTP File Transport Protocol

FTP提供的功能

  • 提供不同种类主机系统之间的文件传输能力
  • 以用户权限管理的方式提供用户对远程FTP服务器上的文件管理能力
  • 以匿名FTP的方式提供公用文件共享的能力

FTP在传输层所使用的协议

FTP采用 C/S 服务器的工作方式,使用TCP可靠的传输服务。
一个FTP故武器进程可同时为多个客户进程提供服务。
FTP的服务器进程由两大部分组成:一个主进程负责接收新的请求;另外若干从属进程负责处理单个请求

工作步骤:

  • 代开熟知端口(控制端口) Port 21,使得客户进程能够链接。
  • 等待用户进程发送链接需求。
  • 启动从属进程处理客户进程发来的请求。 从属进程对客户进程的请求处理完毕后即终止。
  • 回到等待状态,继续接受其他客户进程的请求。主进程与从属进程是并发执行的。

在FTP(文件传输协议)中,控制连接和数据连接有不同的作用和过程:

控制连接

作用

  • 控制连接用于传递FTP命令和服务器的响应。它主要负责管理会话、用户认证以及控制命令的发送和接收。

过程

  1. 建立连接:客户端与服务器之间建立控制连接,通常使用TCP端口21。
  2. 用户认证:客户端发送用户名和密码进行认证。
  3. 命令传输:客户端发送各种FTP命令(如USERPASSLISTRETRSTOR等),服务器响应这些命令。
  4. 会话管理:控制连接始终保持打开状态,直到客户端发送QUIT命令终止会话。

数据连接

作用

  • 数据连接用于传输实际的文件数据,如上传、下载文件以及获取目录列表等。

过程

  1. 建立连接:根据客户端和服务器之间的约定(主动模式或被动模式),数据连接在需要传输数据时临时建立。
  2. 传输数据
    • 主动模式:客户端在控制连接中发送PORT命令,指示服务器连接到客户端指定的端口。服务器主动连接客户端的数据端口,传输数据。
    • 被动模式:客户端在控制连接中发送PASV命令,服务器响应一个端口号,客户端主动连接服务器的该端口进行数据传输。
  3. 关闭连接:数据传输完成后,数据连接自动关闭。

主动模式和被动模式

  • 主动模式(Active Mode)

    • 客户端发送PORT命令,指定数据端口。
    • 服务器从端口20主动连接到客户端指定的数据端口。
    • 这种模式下,客户端需要打开防火墙以允许外部连接到指定端口。
  • 被动模式(Passive Mode)

    • 客户端发送PASV命令,请求服务器打开一个数据端口。
    • 服务器响应一个端口号,客户端主动连接这个端口。
    • 这种模式下,服务器需要打开防火墙以允许客户端连接到指定端口。

电子邮件

电子邮件系统

电子邮件系统由以下组成部分:

  1. 用户代理(User Agent)

    • 用户与电子系统的接口。
  2. 邮件服务器

    • 他的功能是发送和接受文件。,同时还要向发件人报告邮件传送的情况(已交付、被拒绝、丢失等)。
    • 服务器以 C/S 模式工作,蛋挞必须能够同时担任服务器和客户。
  3. 邮件访问协议

    • POP3:一种简单的邮件访问协议,允许用户从邮件服务器下载邮件到本地设备。
    • IMAP:一种更复杂的协议,允许用户在服务器上管理和访问邮件,同时支持多个设备同步。
    • SMTP:主要用于发送邮件,但也用于从用户代理传输邮件到 MTA。

邮件发送协议和读取协议的应用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • SMTP服务器是采取的通信方式,POP3是采取的通信方式

电子邮件格式

form:XXX@XXX
to:XXX@XXX
subject:XXXX

这是电子邮件首部的格式,to是必填的关键字。subject是选填的,内容是可选的关键词。
电子邮件首部和主体。

额外说明:MIME(Multipurpose Internet Mail Extensions)
MIME是出于SMTP无法传递非英语的、7位ASCII码文本邮件设计的。

关注错题、关注STMP和POP3的工作流程、使用过程

这我随后会在本章的做题总结中详细写出来。

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

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

相关文章

中文文案写作有哪些合适的AIGC工具?

这是计育韬老师第 8 次开展面向全国高校的新媒体技术公益巡讲活动了。而在每场讲座尾声,互动答疑环节往往反映了高校师生当前最普遍的运营困境,特此计老师在现场即兴答疑之外,会尽量选择有较高价值的提问进行文字答疑梳理。 *本轮巡讲主题除了…

8.数砖数

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/879 题目描述 给定一种 2222 规格的瓷砖,…

标准发布实施 | 《村镇污水处理一体化集成装备技术规范》

根据《中华人民共和国标准化法》以及国家标准化管理委员会、民政部联合制定的《团体标准管理规定》,依据全国团体标准信息平台和《中华环保联合会团体标准管理办法(试行)》,全国团体标准《村镇污水处理一体化集成装备技术指南》&a…

Scanpy(3)单细胞数据分析常规流程

单细胞数据分析常规流程 面对高效快速的要求上,使用R分析数据越来越困难,转战Python分析,我们通过scanpy官网去学习如何分析单细胞下游常规分析。 数据3k PBMC来自健康的志愿者,可从10x Genomics免费获得。在linux系统上,可以取消注释并运行以下操作来下载和解压缩数据。…

【下篇】从 YOLOv1 到 YOLOv8 的 YOLO 物体检测模型历史

YOLO 型号之所以闻名遐迩,主要有两个原因:其速度和准确性令人印象深刻,而且能够快速、可靠地检测图像中的物体。上回我解释了YoloX, 今天从Yolov6开始。 YOLOv6:面向工业应用的单级物体检测框架 美团视觉人工智能事业部(Meituan Vision AI Department)于 2022 年 9 月在…

公众号首图次图封面设计工具

制作图 介绍 《制作图》是一款用来设计封面的工具,比如你可以为你的博客、视频、公众号等设计你自己喜欢的封面。 预览 网址 https://wuxianqiang.github.io/fabritor/ 公众号首图、次图,按尺寸标准一键生成 该工具为公众号等自媒体创作者的提效神…

Photoshop版本选择及系统要求

1、ps2018cc/2020cc版本 适合新手,增加了很多智能化操作,非常方便好上手。 2020: 2、ps2015版本 cc2015版本不论是功能还是硬件上,都是不二选择,适合于配置较低的电脑,该有的基本功能它都有。 3、2021/2…

【Centos】深度解析:CentOS下安装pip的完整指南

【Centos】深度解析:CentOS下安装pip的完整指南 大家好 我是寸铁👊 总结了一篇【Centos】深度解析:CentOS下安装pip的完整指南✨ 喜欢的小伙伴可以点点关注 💝 方式1(推荐) 下载get-pip.py到本地 sudo wget https://bootstrap.p…

代码随想录——修建二叉搜素树(Leetcode669)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

HTTP 协议详解(史上最全)

目录 1. HTTP 协议介绍 2. HTTP 协议的工作过程 3. Fiddler 抓包工具介绍 3.1 抓包工具的使用 3.2 抓包结果 3.3 抓包工具原理 4. HTTP 协议格式总览 5. HTTP 请求(Request) 5.1 认识 URL URL 基本介绍 URL 基本格式 URL 参数介绍 URLencod…

【Java 百“练”成钢】Java 基础:带参数的方法

Java 基础:带参数的方法 01.求和02.字符串输出03.寻找最大值04.寻找最小值05.字符串拼接06.求平均值07.数组排序08.累乘09.存在的字符串10.长整型求和11.寻找字符串索引12.字符串拼接(StringBuilder) 01.求和 public class SumCalculator {s…

C#操作MySQL从入门到精通(15)——分组数据

前言 我们有时候需要对数据库中查询的数据进行分组,所谓分组就是将相同的数据分为一组,本次测试使用的数据库数据如下: 1、分组 分组使用group by关键词,下面的代码的意思是对查询的结果按照student_age进行分组,student_age相同的划分为同一组 string sql = string.E…

《软件定义安全》之四:什么是软件定义安全

第4章 什么是软件定义安全 1.软件定义安全的含义 1.1 软件定义安全的提出 虚拟化、云计算、软件定义架构的出现,对安全体系提出了新的挑战。如果要跟上网络演进的步伐和业务快速创新的速度,安全体系应该朝以下方向演变。 𝟭 安全机制软件…

【C++关键字】auto的使用(C++11)

auto的使用(C11) auto关键字auto的使用细则auto使用场景 随着程序的复杂化,程序中用到的类型也越来越复杂化,经常体现在: 1.类型难以拼写 2.含义不明确导致容易出错 在C语言阶段处理这类问题的方法,可以使…

【Python机器学习】NMF——模拟数据

与使用PCA不同,我们需要保证数据是正的,NMF能够对数据进行操作。这说明数据相对于原点(0,0)的位置实际上对NMF很重要。因此,可以将提取出来的非负向量看作是从(0,0)到数据的方向。 举例:NMF在二维玩具数据上的结果: …

【Git】远程操作 -- 详解

一、理解分布式版本控制系统 我们目前所说的所有内容(工作区、暂存区、版本库等等)都是在本地,也就是在我们的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统。 上面这段话是什么意思呢? 可以简单理解为&#xff1…

8款高效电脑维护与多媒体工具合集!

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://h5.cxyhub.com/?invitationhmeEo7 1. 系统安装利器——WinNTSetup 系统安装利器,目前最好用的系统安装器,Windows系统安装部署工具。支持所…

Langchain 新玩法:LangGraph 赋能 RAG Agent,自适应、自校正、Self-RAG

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

【React】json-server

1.安装到开发环境 npm install json-server -D2.在根目录下下,新建db.json文件 {"list": [{"rpid": 3,"user": {"uid": "13258165","avatar": "http://toutiao.itheima.net/resources/images/9…

评书下载到u盘,下载到内存卡,下载到手机或电脑的方法

评书下载的方法有很多种,无论是通过什么方法,我们都可以快速的获取喜爱的评书。下面将详细介绍常见的评书下载方法,帮助您快速上手。 1、搜索“十方评书网”。 2、要下载那个评书家的选择那个评书家就可以。 3、点击进去后可以一键下载单部评…