应用层起到什么作用?
?应用层主要是为了解决用户的具体问题,用户的要求可能很多,对应用到的协议也就很多。我们知道,在应用层下的运输层主要用到两个协议,TCP协议和UDP协议,前者是保证可靠传输的,后者不保证可靠传输,我们在选择传输协议的时候也并不都会使用基于可靠传输的TCP协议,有可能要保证传输的速率,就要选择不保证可靠传输的UDP协议,那么选择不可靠传输的UDP协议之后如何保证数据传输的可靠性呢?第一,发送方选择UDP协议之后发送的数据块小;第二,在运输层保证不了的可靠传输将在上面一层应用层来保证。
域名系统DNS(域名和IP地址的转换)
?在第一章我们就知道计算机之间的通信有两种方式,分别为客户-服务器方式和对等连接模式,对等连接模式的本质也就是客户-服务器模式,所以应用层的许多协议都是基于客户服务器方式,我们访问一个网站,实际上就是访问一个服务器,要想访问到这个服务器(主机),从网络层来看就是找到这个服务器的IP地址,根据IP地址来找到目的主机,再从运输层来看在通过套接字找到目的主机的目的端口的一个对应进程,再进行信息的通信,但是仔细想想我们在访问一个网站的时候我们没用用到对应服务器的IP地址,反而类似于一个名字(因为直接用IP地址来访问网站的话不利于记忆),类似于手机中的电话簿,给一个人打电话我们往往不是从记忆中直接搜寻到电话号码,而是通过手机中的电话簿找到想要通电话的名字来直接通话,电话簿就类似于一个名字和电话号码的映射本。访问网站也是,我们一般都是直接访问它的域名来访问这个网站,肯定也有一个域名和IP地址的一个映射表来帮助访问。 ?例如,我们访问百度的网站:www.baidu.com,观察结构可知,这个域名有三个段,其他的域名也有多个段,此域名的最后一个域名com为顶级域名,com下面包含许多二级域名,这里二级域名为baidu,类比之后为三级域名,四级域名…。总域名长度为253。
顶级域名 ?顶级域名分为两类,1.国际顶级域名nTLD(.cn中国 .us美国 .uk英国) 2.通用顶级域名(.com公司和企业 .net网络服务机构 .org非盈利性组织 .edu美国专用的教育机构…),介绍完域名的时候,怎么通过域名来查找IP地址呢?那么我们从那一层的域名来查更迅速呢? ?根据前面的内容我们知道,先看顶级域名,再找顶级域名下的属于它的二级域名,接着再找对应二级域名下的三级域名…,那么顶级域名我们从哪来寻找呢?(因为顶级域名也有很多,要想查找也很麻烦) ?这里我们把所有的顶级域名归属到一个根域名,我们只要通过根域名,就能一层一层的找到所有的域名。根域名实际上也是一个服务器,每层的域名实际上也就是一个服务器。域名和IP地址的映射也就放在这些服务器当中,那么我们如何来查找这些域名呢?这里就要介绍一个新的协议–DNS(域名解析)。 ?DNS域名解析就是IP地址和域名的相互转换。 ?一级一级的服务器的查找。简单的想,可能只需要一个根服务器就足够了,但实际,我们设置的根域名服务器有13套的装置,为什么是13套的装置呢?我们知道,大部分的网络允许传输的报文长度为576个字节以上,为了保证数据报文的数据传输效率,我们规定DNS的数据传输要小于512字节,在网络层要加上TCP的首部8字节,还要加上IP首部20字节,还要加上数据链路层的首部18字节(不同网络不同),每一个根域名服务器要占用到32字节,若有13个,会占用到416个字节,留下来96个字节,若14个,就没有可利用的字节数了。
根域名服务器
?查询域名服务器的时候,采用就近原则。当一个用户通过域名去访问服务器的时候,按照规则会先搜寻根域名所在的服务器,但是由于大量域名的访问都是从根域名服务器开始,导致根域名服务器过载,运行效率降低,为了解决这个问题,我们就引入了一个新的服务器——本地域名服务器。 ?本地域名服务器会把用户所要搜寻的根域名服务器来集合并且分类,代替它们去访问根域名服务器,这样就解决了根域名服务器的过载问题,本地域名服务器一般属于一个公司,单位或者学校。本地域名服务器的功能就是提升查询的效率,降低上层域名服务器的负担。这种方法不仅使用在本地域名服务器,还是用在其他层域名。为例提高效率,本地域名服务器也会有一定的缓存功能,用来缓存域名和IP地址的对应。
文件传送协议FTP
?在不同的操作系统中对文件的解析是不同的,比如在苹果的系统中和在安卓的系统中,对图片的解析是不相同的,如果没有文件传送协议,那么在两个操作系统中的互相传输一张图片的时候就有可能出现显示不出来的情况。这样我们就要一个统一的协议,这样就可以随意的从服务器上下载和上传文件,不需要关注服务器的操作系统和字节的是否相同。 ?首先,传输的文件必须是可靠的,所以FTP一定是基于TCP协议来传输的,为了保证传输,我们把FTP协议分为两个进程,第一个进程是负责用户和服务器之间的连接的,第二个就是用来传输数据的。首先服务器会打开21号端口,21号端口用来建立连接,提供客户来建立连接的,接着打开20号端口,20号端口用来传输数据的,传输结束之后,就会把这两个端口关闭。
简单文件传送协议TFTP
?相对于FTP协议,TFTP协议传输的文件更小,使用的是基于UDP的不可靠传输,但是TFTP要有自己的差错改正措施,由于是UDP所以支支持文件传输而不支持交互,并且没有列目录的功能,不会对用户进行身份的验证(FTP会验证身份的验证),主要用来提升效率。
远程中断协议TELNET
?我们在对服务器进行维护和操作的时候,是否必须要到服务器所在的地点去进行操作呢?我们可否通过网络来对路由器进行维护和操作。这里就用到远程终端协议TELNET,这个协议是基于TCP协议的,通过网络来连接到这个服务器(必须有IP地址),相比较于以前的只能通过网络进行传输数据,TELNET可以用来连接到服务器并且来对其进行设置,服务器针对操作产生的回应也会显示在操作主机上。所以TELNET使用的就是客户——服务器方式,首先服务器必须打开TELNET的23号端口,远程用户才能对服务器进行操作。但是这种功能的安全性不高,因为传输的操作数据就有可能被通过抓包工具来被抓取。和前面的DNS域名系统一样,TELNET在客户端和服务器端也存在不同操作系统的情况,前者使用的是文件传送协议,而后者是在互联网上使用NVT格式。
万维网WWW
?我们在日常访问的网站中,往往前面会带有WWW的字样,这WWW代表的意思是什么?我们在访问万维网时使用的原理是什么?使用的又是什么协议?这个协议又是如何使用的呢?我们在使用万维网进行访问网页的时候我们是从哪些地方访问到这些数据的?
WWW代表什么?
?WWW代表的是万维网(world wide web),万维网指的是一个大规模的,联机式的信息储存所,使用超链接的方式来从一个站点访问另外一个站点。这些站点存着许多的信息,我们也可以通过一个站点访问到另外一个站点,访问到另外那个站点中的信息,比如我们要访问学校的一个学院中的招生网站,这个网站不可能一开始就在网上,我们必须先访问学校网站所在的站点,在这个站点访问学院网站所在的站点,再在此站点访问招生网站在的站点,所以万维网是一个由多个站点和站点之间的链接组成的一个网络,一开始万维网访问的只是文本信息,但是到了现代,我们访问的就不止文本信息,还有图片,视频,声音,动画等,我们称这些信息就为超媒体。
访问万维网的原理是什么?
?根据前面对万维网的介绍,我们知道万维网使用的时客户——服务器的工作方式,在用户这里,我们使用的就是浏览器,通过浏览器来访问万维网,我们在浏览器上访问的每一个网页,就叫页面。我们首先要知道的就是我们访问的页面是在哪一个服务器下的哪一个文档中的文件(地址在哪)?使用什么协议来实现客户和服务器之间建立连接?用户通过什么来编辑页面?如何在网络上找到我们想要访问的页面?
访问的页面所在哪一个服务器下的哪一个文档?
?这里使用同意资源定位符URL,通常称为网址,这里的网址的格式为:
?意思是这个页面存在哪一个主机的哪一个端口下的哪一文件夹中。这里的主机就是前面说的域名或者IP地址;前面的协议是通过什么协议来访问,例如ftp是文本传送协议(默认),http是超文本传送协议,news是新闻;冒号之后的端口和路径可以省略。
使用什么协议来实现客户和服务器之间建立连接?
?使用的协议为超文本传输协议HTTP,实际就是先建立TCP连接之后,用户通过HTTP请求报文请求访问服务器下的哪些信息,接着服务器返回HTTP响应报文把用户所需要的信息给发送过去,最后释放TCP连接。 一开始的HTTP协议使用的是一次连接,开始的网页是静态的,网页上的数据无法变化。现在的HTTP使用的是动态连接,网页是可变的。
总结用户在网页上浏览网站的过程: (1)浏览器接受到用户所点击的URL (2)浏览器向DNS请求解析URL(网址)的IP地址 (3)DNS解析出来URL的IP地址 (4)浏览器的目的服务器建立TCP的连接 (5)用户发送请求报文 (6)服务器接收到用户的请求报文同意后发送响应报文 (7)TCP连接释放 (8)浏览器中显示出用户所点击的页面 为了防止用户一段时间多次访问同一个页面造成的访问效率降低,同时降低服务器的访问压力,我们使用一个代理服务器来代替用户向服务器来请求网站,请求到的网站会暂时缓存在代理服务器的本地磁盘当中,当用户多次访问这个页面的时候,就可以通过高速缓存快速的访问这个页面。 服务器也会使用Cookie来跟踪用户存放用户的信息。
使用什么来编辑页面
?我们使用超文本标记语言来编写,HTML定义了页面的排版。
如何找到访问的页面
?通过分类目录搜索引擎。
电子邮件
?电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可以随时上网到自己使用的邮件服务器进行读取。方便使用,并且具有迅速和费用低廉的优点。 发送邮件的协议:SMTP 读取邮件的协议:POP3和IMAP
发送邮件: ?首先用户通过SMTP协议把邮件发送到发送方邮件服务器,发送方邮件服务器把从用户那里接收到的邮件按照发送的邮件服务器进行分类,分别发送到对应的接收服务器上,接收服务器在通过POP3读取邮件到用户代理UA。 ?用户代理UA是用户个人在各个平台上邮箱的集合。比如用户代理可以集合用户的163邮箱,qq邮箱,新浪邮箱等等。 ?电子邮件的邮箱通过@来显示邮箱所在主机的域名。
SMTP通信的三个阶段: ?首先建立连接,再邮件传送,再连接释放,邮件发送不需要用户回应是否收到,只要发送成功即可。
动态主机配置协议DHCP
?允许一台计算机加入新的网络和获取IP地址而不用手工参与,新的主机向所连接的网络的DHCP服务器申请一个IP地址,首先新的地址在网络上发送一个搜寻DHCP服务器的广播,当网络中的DHCP收到这个广播之后,就会再次广播发送给新的主机,新主机再向找到的DHCP服务器请求一个IP地址,DHCP收到请求后再从它的地址池中找到一个可以分配的IP地址,分配给新的主机。DHCP服务器给新主机分配的IP地址是有租用期的再分配给新主机的IP地址的报文里就有对租用期的说明。当到了租用期时间的一半的时候,DHCP服务器就会向新分配IP地址的主机询问是否更新租用期,如果继续租用,分配的IP地址继续给该主机使用,如果不继续租用的话,此IP地址就会被收回到DHCP服务器的地址池中,以供其他新主机的申请。
简单网络管理协议SNMP
?区别于TELNET,SNMP是对硬件,软件的使用,协调,以便对网络资源进行监视,测试,配置,分析,评价和控制。网络管理员通过SNMP协议来管理网络。
|