计算机网络(终章)——应用层

目录

一、功能

二、应用层使用的两种应用模型------C/S和P2P模型

1.C/S模型

2.P2P模型

3.C/S和P2P模型优缺点对比

三、域名解析系统DNS

四、文件传输协议FTP

五、电子邮件系统

1.SMTP和MIME

2.POP3和IMAP

六、万维网与HTTP


一、功能

应用层为应用程序提供网络服务。主要功能有:

①支持多种应用程序,包括文件传输、信息检索、远程登录、即时通讯、电子邮件等。

②负责数据的格式转换和加密等。

二、应用层使用的两种应用模型------C/S和P2P模型

1.C/S模型

C/S模型即客户端/服务器模型,客户端即请求服务的主机,服务器负责为客户端提供服务。客户端可以随时接入和退出网络,但服务器需要一直接入网络来接收客户端的请求;客户端的IP地址通常是动态获取的,而服务器的IP地址或域名往往是固定的。此外,C/S模型中客户端之间不能直接通信,发送的数据需要先传给服务器,再由服务器转交给另一个客户端。C/S模型的应用场景主要有网页、电子邮件、文件传输、远程登录等。

2.P2P模型

P2P模型中每台主机的地位都是平等的,没有客户端和服务器之分,每台主机既可以请求服务也可以提供服务,且主机之间可以直接通信。每台主机都可以随时接入或退出网络且支持动态获取IP地址。

3.C/S和P2P模型优缺点对比

①P2P模型的资源利用率高。在C/S模型中多个客户端同时使用一台服务器的资源和带宽,而P2P模型中充分利用了每台主机的资源和带宽,每台主机都分担存储、计算和传输任务。

②P2P模型的可扩展性高。在C/S模型中客户端的增加是受服务器性能的限制的,过多的客户端可能会导致服务器崩溃。而P2P模型中新加入的主机虽然增加了请求,但也能提供网络资源,不会给系统造成负担,使得P2P能够适应网络规模的扩大。

③P2P模型的健壮性好。在C/S模型中,服务器一旦出现问题,可能会导致所有客户端的请求都无法处理。而P2P模型中即使某些主机出现了问题,网络中的其他主机也能提供通信和共享资源,只是服务的效率可能会受影响。

④P2P模型的成本低。P2P模型不需要专门的高性能服务器,降低了硬件以及维护的成本。而C/S模型需要有专门的高性能服务器,并且当客户端较多时还需要对服务器升级或建设更多的服务器来满足需求,成本较高。

⑤C/S模型的安全性高。C/S模型中虽然服务器容易成为被攻击的目标,但便于集中管理和维护网络安全。而P2P模型的安全性管理较为复杂,每个节点都可能有潜在危险,需要管理每个节点。

⑥C/S模型更能保证数据一致性。C/S模型中资源都集中在服务器上,能更好的保证数据一致性;而P2P模型中数据分布在各个节点,容易出现数据不一致的情况。

三、域名解析系统DNS

由于IP地址位数较多切不方便记忆,于是提出了容易记忆的域名,例如baidu.com。域名由根、顶级域名、二级域名、三级域名等构成。其中顶级域名包括cn、com、gov、org、net等,根表示为".",本来是跟在顶级域名后面的,但通常会省略掉;二级域名包括com、edu、gov、mil、net、org等,同时也包括自己注册的全球唯一的二级域名;然后还可以根据需要添加三级域名、四级域名等等。域名只是为了用户方便访问,实际上仍需使用IP地址访问,DNS的作用就是将域名转换成IP地址。

域名到IP地址的查询过程:

当用户输入域名后,首先会在本机的DNS缓存中查找。这个缓存中存储了近期查询过的域名和IP地址的映射关系。如果在本机的DNS缓存中找到了匹配的IP地址就可以直接使用这个IP地址通信,如果没有找到则会向本地DNS服务器发送查询请求。本地DNS服务器也会先查看自己的缓存中有无匹配的IP地址,如果有就直接返回给客户端,如果没有就开始向外查询:首先向根DNS服务器发送查询请求。根服务器不会直接提供域名对应的IP地址,因为它只知道顶级域名服务器的信息;根DNS服务器会根据域名的顶级域名来告诉本地DNS服务器应该去查询哪个顶级域名服务器。随后本地DNS服务器向指定的顶级域名服务器发送查询请求,顶级域名服务器也不会直接提供IP地址,因为它只知道权威DNS服务器的信息(权威DNS服务器是域名所有者设置的服务器,在这里记录了域名和IP地址的映射关系);顶级域名服务器会告诉本地DNS服务器应该查询哪个权威DNS服务器。然后本地DNS服务器向指定的权威DNS服务器发送查询请求,权威DNS服务器会将查询到的IP地址返回给本地DNS服务器。在收到具体的IP地址后本地DNS服务器会将这个域名及对应的IP地址的映射关系存储到缓存中,最后将IP地址返回给客户端。此时客户端就能通过这个IP地址与目标服务器通信了。

四、文件传输协议FTP

FTP是基于C/S模型的协议,主要用于在不同主机之间实现文件的上传和下载。上传是指本地计算机将文件上传到服务器,下载是指服务器将文件发送给本地计算机。

在传输文件之前需要在客户端和服务器之间分别建立一条控制连接和数据连接,这两条连接都是基于TCP的。控制连接用于传输控制命令,比如用户名和密码、要对文件进行的操作、文件传输模式等;数据连接则用于实际的文件数据传输。在建立控制连接时服务器使用的端口号为21;在建立数据连接时使用的端口号要分情况:如果是服务器主动告知客户端自己使用的端口号,则会使用端口号20;如果是客户端请求获得服务器的端口号,那么服务器会随机使用一个大于1024的端口号,并通过控制连接告诉客户端。

五、电子邮件系统

电子邮件系统是通过网络实现电子信件传输、存储、管理的系统,由用户代理、邮件服务器、邮件传输协议等构成。用户代理为用户提供交互界面,比如QQ邮箱、Outlook等邮箱应用程序。邮件服务器负责邮件接收、存储和转发,分为发送邮件服务器和接收邮件服务器;发送方通过用户代理先将电子邮件发送给发送邮件服务器,再转交给接收邮件服务器,然后接收方的用户代理就可以从接收邮件服务器下载电子邮件了。邮件传输协议包括SMTP、POP3、IMAP等。

1.SMTP和MIME

SMTP即简单邮件传输协议,发送方的用户代理向发送邮件服务器传输电子邮件以及发送邮件服务器向接收邮件服务器发送电子邮件的过程使用的都是SMTP协议。SMTP基于C/S网络模型,发送电子邮件的一方是客户端,负责接收电子邮件的是服务器。在使用SMTP协议传输电子邮件时分为三个阶段:建立连接、传输邮件、连接关闭。

建立连接:客户端在发送电子邮件之前会先和服务器建立TCP连接,服务器使用固定端口号25。在成功建立连接后服务器会发送"220"服务就绪应答,客户端使用HELLO命令标识身份,如果服务器此时有能力接收邮件则回复"250"表示确认,此时连接成功建立。

传输邮件:客户端会先用MAIL FROM命令声明发件人是谁,服务器接收到后回应"250"表示确认收到;然后客户端用RCPT命令声明收件人,服务器接收到后也回应"250"确认;随后客户端可以使用DATA命令传输具体的内容了;当数据传输完毕后服务器会回复"250"表示确认接收。如果有多个收件人,则重复RCPT和DATA步骤。

连接关闭:邮件发送完毕后,客户端会给服务器端发送QUIT命令,此时服务器会回复"221"进行确认,随后双方关闭TCP连接。

由于SMTP协议传输的内容有局限性,例如不支持传输非文本内容、只支持传输英文等,所以SMTP协议需要联合MIME来使用。MIME即多用途互联网邮件扩展,能够使电子邮件系统支持视频、图片等多种格式的文件以及多种语言。MIME协议除了在电子邮件系统中应用外,还用于HTTP协议,使得网页可以传输各类媒体资源。

2.POP3和IMAP

POP3即邮局协议版本3,是用于客户端从服务器接收邮件的基于TCP的协议,默认端口号110。POP3协议简单易实现,在建立连接与用户认证后就会下载邮件,下载结束后会将邮件从服务器删除,不支持服务器对邮件的其他操作。

IMAP即互联网消息访问协议,也是用于客户端从服务器接收邮件的基于TCP的协议,默认端口号143。IMAP协议用于对POP3协议的功能扩充,主要有三个扩充功能:

①支持多设备同步:邮件在下载后仍会保留在服务器,并且多个客户端对邮件进行的操作会同步到服务器上,保证各个客户端的邮件状态一致。

②服务器对邮件的管理更为灵活:IMAP支持在服务器创建、删除文件夹以及对邮件移动、标记等,客户端可以同步这些操作。

③支持按需获取邮件内容:IMAP允许客户端只获取邮件的部分内容,可以节省流量。

六、万维网与HTTP、HTTPS

万维网是基于互联网的信息系统,是无数个网络站点和网页的集合。万维网使用统一资源定位符URL来唯一标识图片、音视频、网页等资源,这些资源使用HTTP协议来发送给用户。在用户使用URL来请求资源时,浏览器会根据URL找到域名,随后由DNS解析出对应的IP地址,浏览器通过这个IP地址找到目标服务器来获取资源,最后将资源展现给用户。

HTTP协议即超文本传输协议,用于客户端和服务器之间传输超文本。HTTP协议是无状态的,服务器不会保留每次请求的会话信息;但可以使用Cookie等技术来记录近期的会话记录。HTTP协议使用TCP连接传输超文本数据,默认端口为80。在数据传输完毕后,可以根据连接类型来决定是否立即关闭TCP连接;连接类型分为短连接和长连接,短连接即在数据传输完毕后立即关闭TCP连接,长连接则不会立即关闭连接,当客户端下一次请求资源时可以直接使用当前连接,减少连接建立的开销。

HTTPS即超文本传输安全协议,是对HTTP的加密传输。HTTP是用明文传输数据的,没有对数据进行加密;而HTTPS在HTTP的基础上加入了一层加密层,对传输的数据进行加密,防止信息泄露和篡改。在实际传输数据时,会先通过SSL/TLS建立安全连接,双方在这个连接中协商加密算法和密钥;在正式传输数据时,客户端与服务器使用密钥来加密和解密数据。

相关推荐
chirrupy_hamal8 分钟前
ARP 表、MAC 表、路由表、跨网段 ARP
网络
致奋斗的我们3 小时前
Linux容器(初学了解)
linux·运维·服务器·网络·容器·shell·openeurler
莫非技术栈6 小时前
Java 接口安全指南
java·网络·安全
WXDcsdn6 小时前
路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)
网络·vpn·sdwan
Again_acme6 小时前
20250117面试鸭特训营第25天
网络·面试·职场和发展
牛马大师兄9 小时前
网络编程 | UDP组播通信
linux·网络·c++·网络协议·ubuntu·udp
m0_674031439 小时前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
二十雨辰10 小时前
[微服务]注册中心优化
java·服务器·网络
Swift社区11 小时前
【ELK 实战篇】日志聚合与可视化全流程详解:从部署到洞察数据的高效指南
网络
浅念同学13 小时前
网络编程-网络原理HTTP初识
java·网络·网络协议·http