【计网复习】应用层总结(不含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的工作流程、使用过程

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

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

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

相关文章

算法 | 用贪心求解背包动态规划、回溯、分支限界法求解0-1背包

背包问题 普通背包: 贪心时间复杂度:O(nlogn) 首先计算每种物品单位重量的价值Vi/Wi,然后,依贪心 选择策略,将尽可能多的单位重量价值最高的物品装入背包。若 将这种物品全部装入背包后,背包内的物品总重量未超过C&a…

IO流字符流(FileReader与FileWriter)

目录 FileReader 空参read方法 带参read方法👇 FileWriter void write(intc) 写出一个字符 void write(string str) 写出一个字符串 void write(string str,int off,int len) 写出一个字符串的一部分 void write(char[] cbuf) …

Web前端伯乐在线:探索技术的深度与广度

Web前端伯乐在线:探索技术的深度与广度 在浩瀚的互联网海洋中,Web前端技术犹如一艘航行在波涛汹涌的海洋中的巨轮,承载着无数的创新与可能。而在这个领域里,伯乐在线就像一座灯塔,照亮着前行者的道路,引领…

备战 清华大学 上机编程考试-冲刺前50%,倒数第5天

T1:多项式求和 小K最近刚刚习得了一种非常酷炫的多项式求和技巧,可以对某几类特殊的多项式进行运算。非常不幸的是,小K发现老师在布置作业时抄错了数据,导致一道题并不能用刚学的方法来解,于是希望你能帮忙写一个程序…

C语言 树与二叉树基础部分

树与二叉树基础部分 树的基础概念二叉树的性质二叉树的遍历前序遍历中序遍历后序遍历层序遍历根据遍历结果恢复二叉树 二叉树的创建第一种第二种 二叉树的其他典型操作查找指定元素(一般二叉树)二叉树的高度(深度)二叉树的拷贝二叉…

!力扣102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] /*** Definition for…

大模型应用工程化过程

近年来,以人工智能为代表的新一代信息技术加速应用,特 别是基于大模型、大数据、大算力的 ChatGPT 的发布,标志着人 工智能技术取得里程碑式突破,推动科技创新进入新阶段。随着 大模型技术的迅猛发展和场景价值的不断涌现&#xf…

9.2 Go 接口的实现

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Day44 代码随想录打卡|二叉树篇---找树左下角的值

题目(leecode T513): 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 方法:本题需要找二叉树左下角的值,因此该节点首先是在最后一行&#xff0…

搭建智慧互联网医院系统教学:源码解析与在线问诊APP开发

本篇文章,小编将以“源码解析与在线问诊APP开发”为切入点,详细介绍搭建智慧互联网医院系统的过程。 一、智慧互联网医院系统的架构设计 系统架构概述 -前端 -后端 -数据库 功能模块划分 -用户 -预约 -挂号 -问诊、 -病历 -管理 -药品 -配送…

Web前端发展路线:深度解析与未来展望

Web前端发展路线:深度解析与未来展望 在数字化时代的浪潮中,Web前端技术日新月异,成为推动互联网行业发展的重要引擎。本文将从四个方面、五个方面、六个方面和七个方面,深入探讨Web前端的发展路线,为您揭示这一领域的…

C++ 分治法找到第K大的数

有一个整数数组&#xff0c;请你根据快速排序的思路&#xff0c;找出数组中第 k 大的数。 例如&#xff1a; 输入 [1,3,5,2,2], 找出数组中第2大的数&#xff0c;输出 3. #include <iostream>using namespace std; #include <stack> #include <string> #i…

Pytorch 从零实现 Transformer

前言 之前虽然了解过 Transformer 架构&#xff0c;但是没有自己实现过。 最近阅读 transformers 库中 Llama 模型结构&#xff0c;于是想试着亲手实现一个简单的 Transformer。 在实现过程中加深了理解&#xff0c;同时发现之前阅读 Llama 中一些错误的地方&#xff0c;因此…

【实战项目二】Python爬取豆瓣影评

目录 一、环境准备 二、编写代码 一、环境准备 pip install beautifulsoup4 pip intall lxml pip install requests我们需要爬取这些影评 二、编写代码 我们发现每个影评所在的div的class都相同&#xff0c;我们可以从这入手 from bs4 import BeautifulSoup import request…

Java数据结构与算法(爬楼梯动态规划)

前言 爬楼梯就是一个斐波那契数列问题&#xff0c;采用动态规划是最合适不过的。 实现原理 初始化:dp[0]1;dp[1]2; 转移方程&#xff1a;dp[i]dp[i-1]d[i-2]; 边界条件:无 具体代码实现 class Solution {public int climbStairs(int n) {if(n1){return 1;}int[] dpnew i…

Qwen2大模型微调入门实战(完整代码)

Qwen2是通义千问团队的开源大语言模型&#xff0c;由阿里云通义实验室研发。以Qwen2作为基座大模型&#xff0c;通过指令微调的方式实现高准确率的文本分类&#xff0c;是学习大语言模型微调的入门任务。 指令微调是一种通过在由&#xff08;指令&#xff0c;输出&#xff09;对…

倩女幽魂手游攻略:云手机自动搬砖辅助教程!

《倩女幽魂》手游自问世以来一直备受玩家喜爱&#xff0c;其精美画面和丰富的游戏内容让人沉迷其中。而如今&#xff0c;借助VMOS云手机&#xff0c;玩家可以更轻松地进行搬砖&#xff0c;提升游戏体验。 一、准备工作 下载VMOS云手机&#xff1a; 在PC端或移动端下载并安装VM…

VS2015中配色方案

为Visual Studio 2017设置C#/C代码配色方案——Monokai风格 windows客户端开发–改变visual studio配色方案

多线程打印

1、固定运行顺序 比如&#xff0c;必须先 2 后 1 打印 1.1、wait notify 版 public class Test1 {// 先打印2&#xff0c;后打印1static final Object lock new Object();static boolean t2runned false; //表示t2是否运行过public static void main(String[] args) {Thr…

流程的控制

条件选择语句 我们一般将条件选择语句分为三类&#xff1a; 单条件双条件多条件 本篇文章将分开诉说着三类。 单条件 单条件的语法很简单&#xff1a; if (条件) {// 代码}条件这里我们需要注意下&#xff0c;可以向里写入两种&#xff1a; 布尔值布尔表达式 当然&…