余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

网络应用层(http/p2p/ftp/smtp/pop3协议说明)

xiyangw 2022-11-24 17:08 37 浏览 0 评论

前言:

看到有小伙伴留言,说专业用语太多了.可能看得会比较无聊,大家读了这么多年的书应该也知道学习都是枯燥,乏味,无聊的.学习永远都不会快乐,那我们为什么还要学习呢?有人为了文聘,有人为了工作,但是我觉得学习是为了让世界和我坦诚相待.

网络应用层(http/p2p/ftp/smtp/pop3协议说明)

下面就正式开始今天的内容了,大家有没有遇到过这种情况,你随意在淘宝浏览了一个东西,其他软件就开始疯狂的开始给你推荐这些东西,甚至相关的东西?你点过的外卖店,下次打开美团,他就会排到最前面?所谓的大数据杀熟到底是怎么回事呢?看完你就会得到解答了

应用层的功能:文件传输,访问和管理.电子邮件 虚拟终端 查询服务和远程作业登录.下面就开始介绍这些功能的实现,原理.

网络应用模型(客户/服务器模型 C/S模型)

在客户/服务器模型中,有一个总是打开的主机成为服务器,它服务于许多来自其他称为客户机的主机请求.服务器永远提供服务,永久性访问地址/域名.(域名是啥下面说)

工作流程如下:服务器处于接受请求的状态,客户机发出服务请求并等待接收结果,服务器收到请求后,分析请求进行必要的处理,得到结果并发送给客户机.

客户程序必须知道服务器程序的地址,客户机上一般不需要特殊的硬件和复杂的操作系统,而服务器上运行的软件则是专门用来提供某种服务的程序,可同时处理多个远程或本地客户的要求,系统启动后即自动调用,并一直不断地运行着,被动的等待并接受来自各地客户的请求。因此,服务器程序不需要知道客户程序的地址

客户/服务器模型最主要的特征是客户是服务,请求方,服务器是服务提供方,如web应用程序,其中总是打开web服务器服务于运行在客户机上的浏览器的请求。当web服务器接收到来自客户机,对某对象的请求时,他向该客户机发送所请求的对象已作出响应。常见的使用客户服务器模型的应用包括web文件传输协议、远程登录和电子邮件等

客户/服务器模型的主要特点:

1)网络中各计算机的地位不平等,服务器可以通过对用户权限的限制来达到。管理客户机的目的是他们不能随意存储、删除数据或进行其他受限的网络活动。整个网络的管理工作有少数服务器担当。网络的管理非常集中和方便.

2)客户机相互之间不直接通信。如在web应用中,两个浏览器并不直接通信

3)可拓展性不佳。受服务器硬件和网络带宽的限制,服务器支持的客户基数有限(可拓展性就是当有大量的主机涌入的时候,能不能把这些主机的需求都处理好.举个简单的例子,我们去人多的地方,网络就不好了,这就是因为,请求的人太多了,每个人分配的网络带宽就一点点,所以网不好啊)

上面说的客户/服务器不是绝对概念,是一个相对概念

P2P模型(peer to peer对等模型)

不难看出,在客户服务器模型中,服务器性能的好坏决定了整个系统的性能。当大量用户请求服务时,服务器就必然成为系统的瓶颈。P2P模型的思想是,整个网络中的传输内容不再被保存在中心服务器上,每个节点都具有下载上传的功能,其权利和义务都是大体对等的.

在P2P模型中,各计算机没有固定的客户和服务器划分,相反,任意一对计算机称为对等方,直接相互同行。实际上,P2P模型,从本质上来讲仍然使用客户/服务器方式,每个节点及作为客户访问其他节点的资源,也作为服务器提供资源给其他节点访问。

P2P模型的优点主要体现如下:减轻了服务器的计算压力,消除额对某个服务器的完全依赖,可以将任务分配到各个节点上,因此大大提高了系统效率和资源利用率,多个客户机之间可以直接共享存档,可拓展性好。

传统服务器有响应和带宽的限制,因此只能接受一定数量的请求,包括健壮性强,单个节点的失效不会影响其他部分节点。(简单的说,你和五个小伙伴约好了下班一起打王者荣耀,可是有个人突然要加班,但是那你们四个就打不了了吗?当然不会,你们会在随机的匹配一个,然后把把都超神,比那你那个菜鸡朋友强多了)

P2P模型也有缺点,在获取服务的同时还要给其他节点提供服务,因此会占用更多的内存,影响整机速度比如说,经常使用P2P下载,还会对硬盘造成较大的损伤。据某互联网调研机构统计,当前P2P程序已占互联网百分之五十到百分之九十的流量,使网络变得非常拥塞,因此各大ISP(ISP是啥?就是互联网提供商 ,比如电信)。通常都对P2P应用持反对态度.

域名系统(DNS)

在前面传输层出现了很多次,但是这究竟是个啥?域名 地址 网址到底有啥区别?现在来详细说.

域名系统是因特网使用的命名系统,用于把便于人们记忆的具有特定含义的主机名,比如说万维网,转化为便于机器处理的IP地址。相对于IP地址,人们更喜欢使用具有特定含义的字符串来标识,因特网上的计算机。值得注意的是,DNS系统采用客户服务器模型,其协议运行在UDP之上,使用53号端口

从概念上可以将DNS分为三部分层次,域名空间、域名服务器和解析器

因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器都有一个唯一的层次结构,即域名.域是名字空间中一个可被管理的划分。域还可以划分为子域而子域还可以划分为子域的子域,这样就形成了顶级域、二级域、三级域等每个域名都由标号序列组成。而各标号之间用点隔开.

举个栗子吧

www.xxx.com

com(顶级域名 com(公司) 不只有这个,还有很多)

xxx(二级域名 就是这个公司叫啥了)

www(万维网 三级域名)

关于域名中的标号,有以下几个点需要注意:标号中的英文不区分大小写,标号中除连字符外不能使用其他的标点符号,每个标号不超过63个字符,多标号组成的完整域名,最长不超过二255个字符。但是为了方便于人们记忆,一般的标号不会超过12个字符。级别最低的域名写在最左边,级别最高的域名写在最右边.

域名解析过程

这个其实展开讲挺复杂的,我也懒得画图 我就简单说说吧.

递归查询(就是靠别人,我自己啥啥不知道,你给我查吧,我不管,查好了告诉我)

本地主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份向根域名服务器继续发出查询,请求报文,而不是让主机自己进行下一步的查询。这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询,都是递归在其他几个域名服务器之间进行的

迭代查询(靠自己,我谁不也求.我就自己去找,你要不告诉我,要不就告诉我,谁知道,然后我自己去找)

本地主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份向根域名服务器继续发出查询,请求报文,而不是让主机自己进行下一步的查询。这种情况下,本地域名服务器只需向根域名服务器查询一次,后面的几次查询,都是递归在其他几个域名服务器之间进行的

文本传输协议(FTP)

文本传输协议是因特网上使用得最广泛的文本传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。他屏蔽了各计算机系统的细节,因而,适合于在异构网络中的任意计算机之间传送文件.(异构网络(Heterogeneous Network)是一种类型的网络,其是由不同制造商生产的计算机,网络设备和系统组成的,大部分情况下运行在不同的协议上支持不同的功能或应用。)

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

FTP服务器必须在整个会话期间保留用户的状态信息,特别是服务器必须把指定的用户帐户与控制联系。连接起来,服务器必须追踪用户在远程目录树上的当前位置.

电子邮件

自从有了因特网,电子邮件就在因特网上流行起来。电子邮件是一种异步通信方式,通信时不需要双方同时在场。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中收件人邮箱中,收件人可以随时上网到自己使用的邮件服务器进行读取.

由于SMTP只能传送一定程度的ASCII,许多其他非英语国家的文字,比如说中文、俄文就无法传送,且无法传送可执行文件及其二进制对象,因此提出了多用途网络邮件,扩充MIME

MIME主要包括以下三部分内容

1)五个新的邮件首部字段。包括MIME版本,内容描述内容标识,内容传送编码和内容类型

2)定义了许多邮件内容的格式对多媒体电子邮件的表示方法进行一个标准化

3)定义了传送编码可对任何内容格式进行转换,而不会被邮件系统改变

简单邮件传输协议SMTP

是一种提供可靠且有效的电子邮件传输协议,他控制两个相互通信的SMTP进程交换信息。由于SMTP使用客户/服务器方式,因此负责发送邮件的SMTP进程就是SMTP客户。负责接收邮件的SMTP进程就是SMTP服务器,SMTP用的是TCP连接

使用SMTP通信一般情况下有三个阶段,分别是连接建立、邮件传送和连接释放.

POP3邮局协议

是一个非常简单且功能有限的邮件读取协议,现在使用的是他的第三个版本,所以是pop3。当用户读取邮件的时候,用户代理向邮件服务器发出请求。拉取用户邮箱的邮件pop也使用客户服务器的方式,在传输层使用TCP。在接收方计算机中的用户代理必须运行pop客户程序,而在接收方的邮件服务器上则运行pop服务器程序。pop有两种工作方式,下载并保留和下载并删除,并在下载并保留的方式下。用户从邮件服务器上读取邮件后,邮件依然会保留在邮件服务器上,用户可再次从服务器上读取该邮件,使用下载并删除方式,邮件一旦被读取,就被从邮件服务器上删除,用户不能再次从服务器上读取.

超文本传输协议(http)

HTTP定义了浏览器怎样向万维网服务器请求万维网文档以及服务器怎样把文档传送给浏览器。

从层次的角度看,HTTP是面向事物的应用层协议,它规定了在浏览器和服务器之间的请求和响应的规则与格式.是万维网上能够可靠地交换文件的重要基础.

HTTP的特点:

1)HTTP是无状态的,也就是说,同一个客户第二次访问同一个服务器上的界面时,服务器的响应和第一次被访问时的时间相同,因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。HTTP的无状态特性简化和服务器的设计,使服务器更容易支持大量并发的HTTP请求。在实际应用中,通常使用Cookie加数据库的方式来跟踪用户的活动,比如说记录用户最近浏览的商品等。Cookie是一个存储在用户主机上的文本文件,里面还有一串识别码,比如说"123456"用于web服务识别用户。web服务器跟Cookie就能够从数据库中查询到该用户的活动记录,进而执行一些个性化的工作,如根据用户之前浏览过的商品向其推荐新产品.

2)HTTP采用TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后怎样被重传,但是HTTP本身是无连接的。也就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先见HTTP连接,HTTP连接即可以使用非持久连接,也可以使用持久连接.

互联网因特网万维网的区别是什么?

互联网:泛指由多个计算机网络按照一定的通信协议相互连接,而成的一个大型计算机网络。因特网:是指在arpa网基础上发展而来的世界上最大的全球性互联网。因特网和其他类似的由计算机相互连接,而成的大型广告系统都可算是互联网。因特网只是互联网中最大的一个。万维网:是无数个网络站点和网页的集合,它们一起构成了因特网最主要的部分.

[耶]

相关推荐

辞旧迎新,新手使用Containerd时的几点须知

相信大家在2020年岁末都被Kubernetes即将抛弃Docker的消息刷屏了。事实上作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使...

分布式日志系统ELK+skywalking分布式链路完整搭建流程

开头在分布式系统中,日志跟踪是一件很令程序员头疼的问题,在遇到生产问题时,如果是多节点需要打开多节点服务器去跟踪问题,如果下游也是多节点且调用多个服务,那就更麻烦,再者,如果没有分布式链路,在生产日志...

Linux用户和用户组管理

1、用户账户概述-AAA介绍AAA指的是Authentication、Authorization、Accounting,即认证、授权和审计。?认证:验证用户是否可以获得权限,是3A的第一步,即验证身份...

linux查看最后N条日志

其实很简单,只需要用到tail这个命令tail-100catalina.out输入以上命令,就能列出catalina.out的最后100行。...

解决linux系统日志时间错误的问题

今天发现一台虚拟机下的系统日志:/var/log/messages,文件时间戳不对,跟正常时间差了12个小时。按网上说的执行了servicersyslogrestart重启syslog服务,还是不...

全程软件测试(六十二):软件测试工作如何运用Linux—读书笔记

从事过软件测试的小伙们就会明白会使用Linux是多么重要的一件事,工作时需要用到,面试时会被问到,简历中需要写到。对于软件测试人员来说,不需要你多么熟练使用Linux所有命令,也不需要你对Linux...

Linux运维之为Nginx添加错误日志(error_log)配置

Nginx错误日志信息介绍配置记录Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(nginx_core_module)的参数,该参数名字为error_log,可以放在不同的虚机主...

Linux使用swatchdog实时监控日志文件的变化

1.前言本教程主要讲解在Linux系统中如何使用swatchdog实时监控日志文件的变化。swatchdog(SimpleWATCHDOG)是一个简单的Perl脚本,用于监视类Unix系统(比如...

syslog服务详解

背景:需求来自于一个客户想将服务器的日志转发到自己的日志服务器上,所以希望我们能提供这个转发的功能,同时还要满足syslog协议。1什么是syslog服务1.1syslog标准协议如下图这里的fa...

linux日志文件的管理、备份及日志服务器的搭建

日志文件存放目录:/var/log[root@xinglog]#cd/var/log[root@xinglog]#lsmessages:系统日志secure:登录日志———————————...

运维之日志管理简介

日志简介在运维过程中,日志是必不可少的东西,通过日志可以快速发现问题所在。日志分类日志分类,对不同的日志进行不同维度的分析。操作系统日志操作系统是基础,应用都是在其之上;操作系统日志的分析,可以反馈出...

Apache Log4j 爆核弹级漏洞,Spring Boot 默认日志框架就能完美躲过

这两天沸沸扬扬的Log4j2漏洞门事件炒得热火朝天:突发!ApacheLog4j2报核弹级漏洞。。赶紧修复!!|Java技术栈|Java|SpringBoot|Spring...

Linux服务器存在大量log日志,如何快速定位错误?

来源:blog.csdn.net/nan1996jiang/articlep/details/109550303针对大量log日志快速定位错误地方tail/head简单命令使用:附加针对大量log日志...

Linux中查看日志文件的正确姿势,求你别tail走天下了!

作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了。尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于我这种小菜鸡来说,第一反应就是cat,tail,vi(或...

分享几款常用的付费日志系统,献给迷茫的你!

概述在前一篇文章中,我们分享了几款免费的日志服务器。他们各有各的特点,但是大家有不同的需求,有时免费的服务器不能满足大家的需要,下面推荐几款付费的日志服务器。1.Nagios日志服务器Nagio...

取消回复欢迎 发表评论: