计算机网络 应用层 笔记1(C/S模型,P2P模型,FTP协议)

news2025/2/3 13:35:38

应用层概述:

功能:

常见协议

应用层与其他层的关系

网络应用模型

C/S模型:

优点

缺点

P2P模型:

优点

缺点

DNS系统:

基本功能

系统架构

域名空间:

DNS 服务器

根服务器:

顶级域名服务器:

权限域名服务器:

递归/迭代(本地)域名服务器:

FTP协议:

基本概念

工作原理

连接建立

控制连接:

数据连接:

文件传输

上传:

下载:

命令与响应

传输模式

优点

缺点


应用层概述:

应用层是计算机网络体系结构中的最高层,它直接面向用户,为用户提供各种网络应用服务,是网络与用户之间的接口。

功能:

提供网络应用接口:为用户和应用程序提供与网络交互的接口,使用户无需了解网络的底层细节,就能方便地使用各种网络服务,如通过浏览器访问网页、使用电子邮件客户端收发邮件等。

数据处理与表示:对应用程序产生或需要的数据进行处理和表示,包括数据的编码、加密、压缩等操作,以确保数据在网络传输中的安全性、完整性和高效性。例如,将图像数据进行压缩后再通过网络传输,以减少传输带宽和时间。

应用协议处理:负责处理各种应用层协议,根据不同的应用需求,按照特定的协议规则进行数据的封装、解析和交互。如 HTTP 协议用于网页的请求和响应,SMTP 协议用于电子邮件的发送等。

常见协议

HTTP(超文本传输协议):用于在 Web 浏览器Web 服务器之间传输超文本信息,是万维网的核心协议。它定义了客户端如何向服务器发送请求以及服务器如何向客户端返回响应,支持获取网页、图片、视频等各种资源。

SMTP(简单邮件传输协议):主要用于发送电子邮件,负责将邮件从发件人的邮件服务器传输到收件人的邮件服务器。与之相关的还有 POP3(邮局协议版本 3)和 IMAP(互联网消息访问协议),用于接收和管理电子邮件。

FTP(文件传输协议):用于在网络上进行文件的传输,允许用户在不同的计算机之间上传和下载文件,提供了可靠的文件传输服务,常用于文件共享、软件分发等场景。

DNS(域名系统):将人类易于记忆的域名转换为计算机能够识别的 IP 地址,实现了网络资源的方便访问。用户只需输入域名,如www.example.com,DNS 系统就能将其解析为对应的 IP 地址,使得计算机能够在网络中找到目标服务器。

DHCP(动态主机配置协议):用于自动为网络中的设备分配 IP 地址等网络配置信息,简化了网络管理,使得设备能够快速、方便地接入网络,无需用户手动进行复杂的网络配置。

应用层与其他层的关系

与传输层的关系:应用层依赖传输层提供的端到端通信服务来传输数据。传输层为应用层提供了 TCP 和 UDP 两种不同的传输协议,应用层根据自身的需求选择合适的传输协议。例如,HTTP 协议通常使用 TCP 协议来保证数据的可靠传输,而实时视频流应用可能会选择 UDP 协议以追求低延迟。

与网络层的关系:应用层的数据需要通过网络层进行路由和转发,网络层负责将数据从源主机传输到目标主机。应用层并不关心网络层的具体路由过程,只需要将数据交给传输层,由传输层再交给网络层进行处理。

与链路层和物理层的关系:应用层数据最终要通过链路层和物理层在物理介质上进行传输。链路层负责将数据帧在本地网络中进行传输,物理层则负责将数据转换为物理信号在物理介质上传输,如光纤、电缆等。应用层数据经过层层封装后,最终在物理介质上进行传输,到达目标主机后再进行层层解封装,最终被应用层接收和处理。

网络应用模型

C/S模型:

一种常用的计算机网络架构模式,用于在网络环境中实现客户端和服务器之间的信息交互和资源共享。

客户端是用户与系统交互的接口,通常安装在用户的本地设备上,如个人电脑、手机等。它的主要功能是向服务器发送请求,并接收服务器返回的响应结果,然后将结果呈现给用户。客户端可以是各种应用程序,如浏览器、电子邮件客户端、游戏客户端等。(和服务器通信并用其的服务,间歇接入网络,使用动态IP地址)

服务器:是为客户端提供服务和资源的设备或程序,通常具有强大的计算能力、存储能力和网络通信能力。服务器负责接收客户端发送的请求,根据请求的内容进行相应的处理,如查询数据库、执行计算任务等,然后将处理结果返回给客户端。服务器可以是物理服务器,也可以是虚拟服务器,常见的服务器软件有 Apache、IIS 等。(永久提供服务,永久性访问地址)

优点

强大的交互能力:客户端和服务器之间可以进行频繁的交互,客户端能够实时向服务器发送请求,服务器也能及时响应客户端的请求,实现了高效的信息交互和业务处理。

良好的安全性:客户端和服务器之间的通信可以进行加密处理,保证数据在传输过程中的安全性。同时,服务器可以对客户端的访问进行严格的权限控制,只有经过授权的客户端才能访问服务器上的资源,提高了系统的安全性。

可扩展性强:C/S 模型可以方便地进行扩展,当系统的业务需求增加或用户数量增多时,可以通过增加服务器的数量或升级服务器的硬件配置来提高系统的处理能力和性能。

缺点

客户端维护成本高:由于客户端需要安装在用户的本地设备上,当客户端软件需要升级或更新时,需要用户手动下载和安装更新包,这给用户带来了不便,也增加了软件维护的成本。

跨平台兼容性差:不同操作系统和设备上的客户端可能需要进行专门的开发和适配,以确保客户端能够在各种平台上正常运行。这增加了开发的难度和成本,也限制了系统的应用范围。

服务器压力较大:随着用户数量的增加,服务器需要处理大量的客户端请求,这可能会导致服务器的负载过高,影响系统的性能和响应速度。

P2P模型:

网络中的节点(Peer)既可以作为客户端向其他节点请求服务,也可以作为服务器为其他节点提供服务,各节点地位平等,没有中心服务器的控制。

节点P2P 网络中的每个参与者都被称为节点,这些节点具有相同的功能和地位,没有主从之分。每个节点都可以同时扮演客户端和服务器的角色,既可以发起请求获取其他节点的资源或服务,也可以响应其他节点的请求,提供自己的资源或服务。节点可以是个人电脑、服务器、移动设备等各种联网设备。

网络连接:节点之间通过网络相互连接,形成一个分布式的网络结构。这些连接可以是基于互联网的有线网络连接,也可以是无线网络连接。节点之间通过特定的协议和算法来发现彼此、建立连接并进行数据传输和交互。

优点

去中心化:没有中心服务器来控制整个网络,避免了单点故障和性能瓶颈问题。即使部分节点出现故障或离线,也不会影响整个网络的正常运行。

可扩展性强:随着节点数量的增加,P2P 网络的性能和资源容量也会相应增加。新节点可以随时加入网络,为网络带来更多的资源和计算能力,而无需对整个系统进行大规模的改造。

资源共享高效:节点可以直接从其他节点获取所需资源,无需通过中间服务器进行转发,大大提高了资源的传输效率。特别是在大规模文件共享等场景下,P2P 网络能够充分利用节点的带宽资源,实现快速的数据传输。

缺点

安全性挑战:由于没有中心服务器进行统一的管理和认证,P2P 网络中的节点身份难以严格验证,容易受到恶意攻击,如病毒传播、黑客入侵、数据篡改等。

网络管理复杂:节点的动态加入和离开使得网络拓扑结构不断变化,难以进行有效的网络管理和监控。同时,由于节点之间的协作和数据传输依赖于分布式的协议和算法,网络中的数据流量和资源使用情况难以准确统计和控制。

知识产权问题:在一些 P2P 文件共享网络中,可能存在大量未经授权的版权内容传播,这给知识产权保护带来了很大的挑战。

DNS系统:

DNS 系统即域名系统(Domain Name System),是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。

基本功能

域名解析:这是 DNS 系统最主要的功能,即将域名转换为对应的 IP 地址。当用户在浏览器中输入一个域名时,如www.example.com,DNS 系统会根据域名查找对应的 IP 地址,如 192.0.2.1,然后浏览器才能通过该 IP 地址与服务器建立连接,获取相应的网页内容。

反向解析:与域名解析相反,是将 IP 地址转换为域名。这在一些需要根据 IP 地址查找域名的场景中非常有用,比如服务器在记录访问日志时,可能会根据访问者的 IP 地址反向解析出域名,以便更好地分析访问来源。

负载均衡:通过将多个服务器的 IP 地址与一个域名关联,DNS 系统可以根据一定的算法,如轮询、加权轮询等,将用户的请求分配到不同的服务器上,实现负载均衡,提高系统的性能和可靠性。

域名管理:DNS 系统还负责管理域名的注册、更新、删除等操作,确保域名的唯一性和合法性,维护域名系统的正常运行。

系统架构

域名空间:

是一个树形结构,根在最顶层,向下分支为各个顶级域名(TLD),如.com、.org、.net 等,顶级域名下又可以有二级域名、三级域名等。每个域名在这个树形结构中都有唯一的位置,形成了一个层次化的命名空间。

www(三级).example(二级).com(顶级)

DNS 服务器

根服务器:

是 DNS 系统的核心,全球共有 13 组根服务器,以字母 A 到 M 命名。根服务器知道所有顶级域名服务器的地址,当 DNS 服务器在本地无法解析域名时,会向根服务器查询,根服务器会返回相应顶级域名服务器的地址,引导查询进一步进行。

顶级域名服务器:

负责管理顶级域名,如.com 域名服务器负责解析所有以.com 为后缀的域名。它知道该顶级域名下所有二级域名服务器的地址信息。

权限域名服务器:

由域名所有者自行管理或委托管理,负责存储和提供特定域名的权威解析记录,如某个企业的域名example.com的权威域名服务器,会保存该域名对应的 IP 地址等解析信息。

递归/迭代(本地)域名服务器:

通常由互联网服务提供商(ISP)或企业内部网络部署,它接受用户的域名解析请求并将最终结果返回给用户。本地域名服务器会缓存已经解析过的域名信息,以提高后续查询的效率。

递归查询和迭代查询

递归是本地作为客户把任务交给别人让别人告诉答案,迭代是让别人指路,自己去找

FTP协议:

文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的标准协议
 

基本概念

FTP 协议属于应用层协议,它基于客户 / 服务器(C/S)模型,使用 TCP 可靠的运输服务,允许用户从一个主机向另一个主机传输文件,并且能够保证文件传输的可靠性和完整性,广泛应用于网站维护、文件共享等场景。

工作原理

连接建立

控制连接

FTP 客户端与服务器之间首先建立控制连接(登录, ftp地址 + 用户名&密码),默认使用 TCP 的 21 端口。客户端通过该连接向服务器发(进程包括1个主进程和n个从属进程)送命令,服务器则通过此连接返回响应信息,如用户登录验证、文件操作指令等。

数据连接:

在需要传输数据时,客户端和服务器之间会建立数据连接。数据连接可以使用主动模式或被动模式。在主动模式下,服务器会主动连接客户端指定的数据端口(通常为 20 端口)来传输数据;在被动模式下,服务器会监听一个临时端口,并将该端口号告知客户端,由客户端主动连接服务器的这个临时端口进行数据传输。

文件传输

上传:

当客户端要向服务器上传文件时,通过控制连接发送上传文件的命令,然后在数据连接上按照规定的格式和顺序将文件数据发送给服务器,服务器接收并存储文件。

下载:

客户端通过控制连接发送下载文件的命令,服务器在数据连接上把文件数据传输给客户端,客户端接收并保存文件。

(控制链接一直打开,数据连接用时打开,同时如果主动传输,链接端口为20,被动的由客户端决定)

命令与响应

命令:FTP 协议定义了一系列命令,用于实现各种文件操作和连接管理功能。常见的命令有:

USER:用于向服务器发送用户名,进行登录验证的第一步。

PASS:在发送用户名后,用于发送密码完成登录。

LIST:请求服务器返回当前目录下的文件和目录列表。

RETR:用于从服务器下载文件,后面跟随要下载的文件名。

STOR:用于向服务器上传文件,后面跟随要上传的文件名。

响应:服务器接收到客户端的命令后,会返回相应的响应代码和信息。例如:

200:表示命令执行成功。

331:表示用户名正确,需要输入密码。

425:表示无法打开数据连接。

550:表示文件操作失败,如文件不存在等。

传输模式

文本模式:主要用于传输文本文件,在传输过程中,会根据不同的操作系统对文本文件的格式进行转换,例如将 Windows 系统中的回车换行符(CRLF)转换为 Unix 系统中的换行符(LF)等,以确保文件在不同系统上的可读性。

二进制模式:用于传输非文本文件,如图像、音频、视频等。在二进制模式下,文件以字节流的形式进行传输,不会对文件内容进行任何转换,保证文件的原始数据完整无误地传输到目标主机。

优点

简单易用:FTP 协议的操作相对简单,用户只需要掌握一些基本的命令,就可以方便地进行文件传输操作。

高效传输:能够支持大文件的传输,并且在传输过程中可以保证数据的完整性和准确性,传输效率较高。

跨平台性好:可以在不同操作系统的主机之间进行文件传输,如 Windows 与 Linux 系统之间,具有良好的兼容性。

缺点

安全性问题:FTP 协议在默认情况下,数据传输是明文的,包括用户名、密码和文件内容等,容易被黑客窃取和篡改,存在较大的安全风险。

被动模式下的防火墙问题:在使用被动模式时,由于服务器会监听一个临时端口用于数据连接,这可能会导致防火墙配置的复杂性增加,需要对防火墙进行特殊配置才能允许数据通过。

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

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

相关文章

MATLAB的数据类型和各类数据类型转化示例

一、MATLAB的数据类型 在MATLAB中 ,数据类型是非常重要的概念,因为它们决定了如何存储和操作数据。MATLAB支持数值型、字符型、字符串型、逻辑型、结构体、单元数组、数组和矩阵等多种数据类型。MATLAB 是一种动态类型语言,这意味着变量的数…

[SAP ABAP] SE11 / SE16N 修改标准表(慎用)

1.SE16N修改标准表 使用事务码ME16N进入到查询页面,填入要修改的标准表MARA,在事务码输入框中填入/H,回车之后点击按钮,进入Debug调试界面 把GD-SAPEDIT 与 GD-EDIT 的值更改为X然后点击按钮(快捷键按F8)进行下一步操作 可以在此…

Arduino大师练成手册 -- 控制 AS608 指纹识别模块

要在 Arduino 上控制 AS608 指纹识别模块,你可以按照以下步骤进行: 硬件连接 连接指纹模块:将 AS608 指纹模块与 Arduino 连接。通常,AS608 使用 UART 接口进行通信。你需要将 AS608 的 TX、RX、VCC 和 GND 引脚分别连接到 Ardu…

maven mysql jdk nvm node npm 环境安装

安装JDK 1.8 11 环境 maven环境安装 打开网站 下载 下载zip格式 解压 自己创建一个maven库 以后在idea 使用maven时候重新设置一下 这三个地方分别设置 这时候maven才算设置好 nvm 管理 npm nodejs nvm下载 安装 Releases coreybutler/nvm-windows GitHub 一键安装且若有…

Java实现LFU缓存策略实战

LFU算法原理在Java中示例实现集成Caffeine的W-TinyLFU策略缓存实战总结LFU与LRU稍有不同,LFU是根据数据被访问的频率来决定去留。尽管它考虑了数据的近期使用,但它不会区分数据的首次访问和后续访问,淘汰那些访问次数最少的数据。 这种缓存策略主要用来处理以下场景: 数据…

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可查看源码) 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…

基于改进的强跟踪技术的扩展Consider Kalman滤波算法在无人机导航系统中的应用研究

在无人机组合导航系统中,精确的状态估计对于任务的成功执行至关重要。然而,系统面临的非线性特性和不确定性,如传感器的量测偏差和动态环境变化,常常导致传统Kalman滤波算法失效。因此,提出一种鲁棒且有效的滤波算法&a…

1.初识beamer

系列文章目录 初识beamer 文章目录 系列文章目录前言一、什么是beamer1.1 定义和背景1.2 使用场景1.3 Beamer优势 二、overleaf 入门beamer三、开始使用beamer3.1 新建一个beamer文件3.2 创建beamer页/帧3.3 目录页3.4 配置beamer整体风格 结束语 前言 工欲善其事&#xff0c…

DeepSeek R1本地化部署 Ollama + Chatbox 打造最强 AI 工具

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 Ollama 🦋 下载 Ollama🦋 选择模型🦋 运行模型🦋 使用 && 测试 二:🔥 Chat…

《基于Scapy的综合性网络扫描与通信工具集解析》

在网络管理和安全评估中,网络扫描和通信是两个至关重要的环节。Python 的 Scapy 库因其强大的网络数据包处理能力,成为开发和实现这些功能的理想工具。本文将介绍一个基于 Scapy 编写的 Python 脚本,该脚本集成了 ARP 扫描、端口扫描以及 TCP…

基于Python的药物相互作用预测模型AI构建与优化(上.文字部分)

一、引言 1.1 研究背景与意义 在临床用药过程中,药物相互作用(Drug - Drug Interaction, DDI)是一个不可忽视的重要问题。当患者同时服用两种或两种以上药物时,药物之间可能会发生相互作用,从而改变药物的疗效、增加不良反应的发生风险,甚至危及患者的生命安全。例如,…

Linux环境下的Java项目部署技巧:环境安装

安装 JDK: 第上传 jdk 压缩安装包到服务器 将压缩安装包解压缩: tar -xvf jdk-8uXXX-linux-x64.tar.gz 配置环境变量: 编辑 /etc/profile 文件,在文件末尾添加以下内容: export JAVA_HOME/path/to/jdk //JAVA_HOME…

【系统迁移】将系统迁移到新硬盘中(G15 5520)

文章目录 前言问题描述解决步骤(红色为 debug 步骤)参考文献 前言 参数: 电脑 dell g15 5520硬盘:1T 自带硬盘 海力士 2230 -> 2T 西数蓝盘 2280 问题描述 电脑硬盘过小(且只有一个接口),将…

小智 AI 聊天机器人

小智 AI 聊天机器人 (XiaoZhi AI Chatbot) 👉参考源项目复现 👉 ESP32SenseVoiceQwen72B打造你的AI聊天伴侣!【bilibili】 👉 手工打造你的 AI 女友,新手入门教程【bilibili】 项目目的 本…

MySql运维篇---008:日志:错误日志、二进制日志、查询日志、慢查询日志,主从复制:概述 虚拟机更改ip注意事项

#先登录mysql mysql -uroot -p1234#通过此系统变量,查看当前mysql的版本中默认的日志格式是哪个 show variables like %binlog\_format%;1.2.3 查看 由于日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具 mysqlbinlog 来查…

理解DeepSeek源代码之如何安装triton包

DeepSeek选择了开源路线,在github上可以下载到所有的源代码还有参数(数据集应该没有开源),大语言模型的源代码规模其实非常小,DeepSeek V3的模型函数不过804行,阅读源代码有助于更好理解大语言模型。 1. D…

C++ Primer 标准库类型string

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

为AI聊天工具添加一个知识系统 之83 详细设计之24 度量空间之1 因果关系和过程:认知金字塔

本文要点 度量空间 在本项目(为AI聊天工具添加一个知识系统 )中 是出于对“用”的考量 来考虑的。这包括: 相对-位置 力用(“相”)。正如 法力,相关-速度 体用 (“体”)。例如 重…

如何配置Java JDK

步骤1:点击资源,点击Java下载 https://www.oracle.com/ 步骤2:点击java下载、JDK23下载,下载第一行第一个 步骤3:解压到一个空文件夹下,复制lib地址 步骤4:在设置里面搜索“高级系统设置”;点击…

CodeGPT使用本地部署DeepSeek Coder

目前NV和github都托管了DeepSeek,生成Key后可以很方便的用CodeGPT接入。CodeGPT有三种方式使用AI,分别时Agents,Local LLMs(本地部署AI大模型),LLMs Cloud Model(云端大模型,从你自己…