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

应用层概述:

功能:

常见协议

应用层与其他层的关系

网络应用模型

C/S模型:

优点

缺点

P2P模型:

优点

缺点

DNS系统:

基本功能

系统架构

域名空间:

[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 协议在默认情况下,数据传输是明文的,包括用户名、密码和文件内容等,容易被黑客窃取和篡改,存在较大的安全风险。

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

相关推荐
蒸蒸yyyyzwd1 小时前
cpp选手秋招准备 学习笔记day7 webserver
笔记·学习
Chen—LSN3 小时前
C语言——数据在内存中的存储
c语言·开发语言·经验分享·笔记
bitbrowser14 小时前
giffgaff突然停用?先分清闲置停用和长期境外断开
笔记
九硕智慧建筑一体化厂家14 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
编程之路,妙趣横生14 小时前
IP 协议
计算机网络
AI云海14 小时前
天幕红尘笔记
笔记
青山是哪个青山17 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
蒸蒸yyyyzwd18 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
DeviceHub21 小时前
硬件工程师选型笔记:ALPS SKPMAPE010 与 Tonevee TS-3025 贴片轻触开关 PIN TO PIN 评估指南
笔记
nnerddboy21 小时前
LoRa自学笔记01:原理与学习路线
笔记·学习