目前正在备考24考研,现将24计算机王道的408学习整理的知识点进行汇总整理。
博主博客文章目录索引:博客目录索引(持续更新)
应用层概述:
**为什么会有这样的层次?**传输层它可以为应用进程提供一种端到端之间的通信服务,但是不同的网络应用的应用进程中,还需要有不同的一些通信规则,此时就会在传输层协议之上再建立这样的一个应用层层次,并且规定了一些协议。
应用层协议定义:
1、应用进程交换的报文类型,请求还是响应?
2、各种报文类型的语法,如报文中的各个字段及其详细描述。
3、字段的语义,即包含在字段当中的信息含义。
4、进程合适、如何发送报文,以及对报文进行响应的规则。
应用层的功能:
1、文件传输、访问和管理。
2、电子邮件。
3、虚拟终端。
4、查询服务和远程作业登录。
应用层的重要协议:
客户/服务器模型(Client/Server)
P2P模型(Peer-to-peer)
服务器:提供计算服务的设备。
特点:
客户机:请求计算服务的主机。
特点:
应用:Web、文件传输FTP、远程登录、电子邮件。
描述:整个网络当中的传输内容都不会保存到一个中心的服务器上,而是每一个节点都具有上传以及下载数据的功能。不存在永远在线的服务器,每个主机既可以提供服务,也可以请求服务。
特点:
访问网站需要通过IP地址,但是IP地址都是由数字组成,不容易记住,此时就使用域名来进行映射相应的IP地址,我们只需要访问域名就能够去访问对应的网站系统。
域名如下,通过下面的域名就能够访问相应的网站服务:
最终我们可以通过DNS来进行访问IP地址:
首先访问的是域名,接着通过DNS服务器可以将我们要访问域名的IP地址给浏览器,接种者浏览器就拿着这个IP地址进行访问请求与获取响应:
域名:
逗号
来进行分隔标号,其中www是一个 标号,cskaoyan、com都是一个标号,在标号中不能够超过63个字符,建议不超过12字符,不区分大小写,对于取名中可以使用-
,但是其他的符号是不能够使用的。
对于域名自左向右,级别由低到高:
实际在域名的末尾还有一个.,这个.用来表示是根。
顶级域名:上图中最右边的com就是顶级域名。
常见的顶级域名如下:
二级域名:主要包含类别域名、行镇区域域名
重复情况说明:可以看到二级域名中有和顶级域名中重复的,实际在顶级域名中经常使用的是国际域名,接着二级域名使用类似于com、gov之类的。
注意:自己申请的域名一定需要是全球唯一的。
三级域名:例如pku.edu.cn其中的pku申请的三级域名。
域名系统的树图如下,是从根开始的,接着是顶级域名、二级域名、三级、四级:
域名服务器也分为好几类:分别为根域名服务器、 顶级域名服务器、权限域名服务器、本地域名服务器。
本地域名服务器
:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器。
默认域名服务器
。对于根域名、顶级域名、权限域名服务器的树形图如下图所示:当本地域名访问不到的时候,此时就会区访问根域名,接着依次向下进行访问
①根域名服务器
:通常情况下对于根域名服务器并不能够直接将查询的域名转换为IP地址,它只知道接下来应该寻找哪一个顶级域名服务器。
a.rootservers.net
,在2012年,全世界已经在312个地点安装了根域名服务器,但是它们的分布并不合理,北美平均时300多万个网名分摊一个根域名服务器,亚洲则是2000多万网民分摊一个,此时就会导致亚洲上网速度低于北美。②顶级域名服务器
:管理该顶级域名服务器注册的所有二级域名。
③权限域名服务器
:负责一个区的域名服务器。
示例:此时有一个服务器abc,由两个部门,每个部分都有几个小组
当只有一个域名abc.com的时候,此时其域名是属于com域名服务器的下一个区(圈圈):
当我们设置了y.abc.com域名服务器的时候,此时区域分为了两部分,分别对应y.abc.com(右部分)以及abc.com(左部分):
主要分为两种解析过程:递归查询
、迭代查询
递归查询:这个过程是在不断的委托域名服务器来进行一个查询,主机—>本地域名服务器—>根域名服务器—>顶级域名服务器—>权限域名服务器,最终若是查询得到之后进行一步步返回给主机
递归与迭代结合查询:首先主机向本地域名服务器来进行查询(递归,后面都是迭代),接着都是通过本地域名服务器来不断的向不同域名服务器发起请求,而不是委托的形式一级级递归向下,可以看到下图中本地域名服务器首先去查询了根域名服务器,根域名服务器返回了顶级域名服务器的地址,接着再次拿着顶级域名服务器地址去向他查询, 之后的过程都是如此都是由本地服务器来发起请求查询,迭代的方式。
当通过DNS服务器查询得到域名的IP地址时,就会使用一个高速缓存来进行存储其映射关系。
对于高速缓存中会进行定时更新,不仅仅本地域名服务器当中有该缓存,我们的电脑主机本身也回有域名的缓存,所以查询流程:本机的域名缓存—>本地域名服务器—>根域名服务器—>顶级域名服务器—>…
包含两个:文件传输协议FTP
(File Transfer Protocol)、简单文件传输协议TFTP
(Trivial File Transfer Protocol)
文件传输协议FTP:提供不同种类主机系统(硬、软件体系等都可以不同)之间的文件传输能力,可以实现拷贝上传、下载的功能。
简单文件传输协议TFTP:是一个很小且非常容易实践的一种文件传送协议,其优点是非常适用于UDP环境的,当需要将程序或者文件同时向许多机器下载的时候,经常会使用到这个TFTP,因为TFTP的代码块所占的内存比较小,对于一些较小的计算机或者某些特殊用途设备非常重要。
FTP是基于客户/服务器(C/S)的协议。
FTP服务器
:依照FTP协议提供服务,进行文件传送的计算机。
FTP客户端
:连接FTP服务器,遵循FTP协议与服务器传送文件的电脑。
过程:用户通过一个客户机程序连接到远程计算机上运行的服务器程序。
实战:我们首先在服务器中搭建FTP服务,接着我们在自己的windows电脑上可以通过ftp的协议来进行文件传输访问
登录条件:需要有ftp地址、用户名与密码。
Anonymous
(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户,用户使用特殊的用户名"anonymous"登录FTP服务器,就可访问远程上主机上公开的文件。FTP
使用TCP来实现可靠传输。
FTP
常用端口为21。
一个FTP服务器的进程可以同时为客户进程来提供服务,FTP服务器进程主要有两大部分组成:
第一部分主进程:用于负责接收新的请求。
第二部分从属进程:完成数据的传送,也就是有n个从属进程,每一个从属进程都可以处理单个的客户请求。
通俗易懂案例:例如有一个理发店它提供理发服务(FTP服务),那么里面有老板(主进程),当有客人来由需求时,那么老板就会进行分配员工(从进程)来进行相应的剪发、染发业务。
其中服务器端的控制进程、数据传送进程都是属于从进程,并不是主进程。
两端的控制进程建立一个连接,是用于传输用户在发出的命令传输请求。
两端的数据传送进程也建立一个TCP连接来进行文件数据传输。
特点:
1、控制连接始终打开,只要会话还没有结束,那么这个控制连接始终保持。
2、数据连接保持一会,若是文件传输完了,那么就可以关闭数据连接并且运行结束。
3、对于数据连接并不是都是20端口,一般多少端口号是与传输模式有关。
PORT命令
会给出客户端进程的数据端口,此时服务器就会自己选中20号端口来与客户进程提供的一个端口号码来建立数据传送连接。文本模式
:ASCII模式,以文本序列传输数据。
Binary模式
:以二进制序列传输数据。
在以前我们与远方朋友同时都是通过写书信形式,随着科技发展,对于写书信变得越来越少,此时我们就诞生出了电子邮件,通过电子邮件,我们可以在有时间处理信息的时候通过打开邮箱查阅电子邮件即可。
电子邮件由信封与内容组成,信封指的是发送方邮箱地址,首部则指的是接收方、主题,可以看到对于相应的头部信息最终组成有:发送方
、目标邮箱
、主题
、日期
,对于主体信息则是邮件中的内容。
整个邮件系统包含:两个用户代理、两个邮件服务器、协议
用户代理:用户和电子邮件系统的接口,通常情况下就是运行在电脑中的一个程序,也可以成为是电子邮件的客户端软件。
邮件服务器:作为服务器,24h待机,会有大容量的一个邮件信箱,容纳大量的信件。
采用C/S模式
,对于邮件服务器与服务器之间可以进行发送方与接收方的转变,如下图左边发送方中的SMTP协议在座位发送邮件方时,此时是客户端,若是当右边的邮件服务器发送邮件到左边服务器时,那么就使用SMTP服务器来进行接收。
协议:采用SMTP协议。对于收发都是采用这个协议完成。
SMTP协议
。POP3协议
或者IMAP
。(如收件人向邮件服务器读取邮件就是采用的POP3服务)发送过程如下:
发送方法发送邮件是使用的SMTP协议
,发送端邮件服务器接着去发送邮件到接收端邮件服务器时同样也是使用的SMTP协议
。
此时邮件会放到接收端邮件服务器的缓存当中,当接收方想要读取邮件时,此时用户方通过用户代理来进行使用POP3
进行读取邮件。
SMTP规定了两个相互通信的SMTP进程之间应该如何进行交换信息。
SMTP客户
,负责接收邮件的进程就是SMTP服务器
。SMTP规定了14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)。
SMTP采用的是TCP连接,端口号是25,是C/S模式(客户端/服务器模式)
1、连接建立
①发送方首先先写邮件,如果这个邮件写好那么就会发送给发送方的邮件服务器,接着放到这个邮件服务器的邮件缓存中。
②SMTP客户(现在的发送方邮件服务器)每隔一段时间就会对这个邮件缓存里面的邮件进行一个扫描,若是发现有邮件,那么就会使用SMTP协议通过25端口来与接收方的这个邮件服务器的SMTP服务器建立一个TCP连接。
③此时SMTP客户就会向SMTP服务器来发送一个hello的命令,并且会附上发送方的主机名,此时SMTP服务器若是有能力接收邮件,那么就会返回一个应答:250 OK,表示目前可以接受邮件;若是返回了421 service not available,那么表示服务不可用。
2、邮件发送
首先客户端邮件服务器会告知服务器邮件服务器发送方信息了,此时SMTP服务器就会给出应答250表示准备好,451表示还没有。
当客户端邮件服务器收到250 ok以后,会发送一个或者多个RCPT命令,其是收件人的缩写,若是收件人地址正确,那么会返回250 OK,若是返回了550,那么表示是没有这个用户。
接着客户端服务器就要开始传输数据了,若是服务器端返回354…的命令,那么SMTP服务器表示同意传输。
当传输邮件内容完后成,服务器端会返回一个250 OK,那么此时就表示传输结束。
3、连接释放
邮件发完之后,SMTP客户会发送QUIT命令,SMTP服务器返回"221",表示同意释放TCP连接。
SMTP的缺点:
1、SMTP不能够传送可执行文件或者其他二进制对象。
2、SMTP仅限于传送7位ASCII码,不能够传送其他非英语国家的文字(如汉语、日语)。
3、SMTP服务器会拒绝超过一定长度的邮件。
对于这个长度有限制的问题,此时可以采用通用因特网邮件扩充MIME
来解决。
好处:使电子邮件系统可以支持声音、图像、视频、多种国家语言等等,可以让传输的内容变得更加丰富多彩,种类更加多种多样。
工作原理:
就是可以通过将用户的传输文件使用MIME协议来转为7位ASCII码,接着在服务器端我们同样将7位ASCII码来转为MIME内容。
说明:对于MIME这种多用途的互联网邮件扩展,实际是一个互联网的标准,最早应用于这个电子邮件系统,目前逐步应用在浏览器,服务器会将他们发送的一些多媒体数据类型告诉这个浏览器(通过说明这个多媒体数据的MIME类型),此时浏览器就能够直到接收到的消息哪些是MP3、MP4文件还是JPG。
我们目前使用的第三版的POP协议。
POP3
:采用TCP连接,端口号是110,是C/S架构。
场景:在最后一个环节,用户通过使用POP3来从接收端的邮件服务器当中读取邮件,最终交付给用户代理,此时接收方就可以查阅这个邮件了。
当接收方将邮件从接收端的邮件服务器中读取出来之后,处理方式有两种:
可以看到对于第二种方式下载并删除对于我们是十分不方便的,此时POP3在之后做了一些功能扩充,由于邮件协议POP3时一个非常简单,功能有限的一种邮件读取协议,此时就有有一种新的读取邮件的协议就是IMAP协议
。
介绍:IMCP协议比POP协议复杂, 当用户PC上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部,若用户需要打开某个邮件,该邮件才上传到用户的计算机上。
场景举例:点开了一个邮件之后,其中若是有视频,并不会立马下载,而是选择先看正文,接着在网络条件允许的情况下,再下载这个附件,此时就会给用户省下一部分的流量。
同样也是在下图中的接收阶段采用IMAP协议,已画圈:
1、更加便捷,方便。
2、对于接收方、发送方的邮件服务器可以是不同企业的邮件服务器。
3、在协议的使用上,从用户代理到发送方邮件服务器的过程,使用HTTP协议,对于发送方的邮件服务器到接收方的邮件服务器,还是使用的SMTP协议。对于读取文件这里就不是POP3,而是使用的HTTP协议。
万维网www(World Wide Web)
是一个大规模的、联机式的信息储藏所/资料空间,是无数个网络站点和网页的集合。
如何获取到资源?
URL一般形式:<协议>://<主机>:<端口>/<路径>
如何定位到资源?
万维网采用客户/服务器方式工作,用户使用的浏览器就是万维网客户端程序,万维网文档所驻留在主机运行服务器程序当中。
万维网使用超文本标记语言HTML,使得万维网页面设计者可以很方便地从一个界面的链接转到另一个界面,并能够在自己的屏幕上显示出来。
综上,主要使用URL
、HTML
以及HTTP
来进行解决大部分问题所使用的规定。
HTTP协议定义了**浏览器(万维网客户进程)**怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。
HTTP协议
:规定你如何上网以及这个服务器如何提供你请求资源的这样一个过程。
用户请求的整个流程:
首先,一个服务器进程监听TCP的80端口,对于用户来说浏览页面的方法有两种:
1、输入URL。
2、点击超链接。
此时我们进行的具体过程如下:
1、浏览器分析URL。
2、浏览器向DNS请求解析IP地址。
3、DNS解析出IP地址。
4、浏览器与服务器建立TCP连接。
5、浏览器发出取文件命令(图中的HTTP请求报文)
6、服务器响应。
7、释放TCP连接。
8、浏览器显示。
注:浏览器可以只下载文本部分。对于一些音频、视频等其他资源,我们可以选择进行下载。
HTTP协议的特点:
HTTP协议是无状态的,但是在实际工作中,一些万维网站点常常希望能够识别用户,通常采用如Cookie
等技术。
Cookie
:存储在用户主机中的文本文件,记录一段时间内某用户(使用识别码识别,如"123456")的访问记录。
HTTP
采用TCP作为运输层协议时,由于HTTP协议本身是无连接的(通信双方在交换HTTP报文之前并不需要先建立HTTP连接)
HTTP的连接方式包含有持久化连接
(keep-alive)、非持久化连接
(close)。
持久化连接
(keep-alive):非流水线、流水线。万维网客户每发送一个HTTP请求,都会有一次TCP连接:
缺陷:由于每次HTTP请求都需要建立TCP连接,此时时间消耗会特别长。
特点:在服务器发送响应之后,在一段时间内仍然保持着这条连接,这样可以使得客户也就是这个浏览器和服务器,可以继续在这条连接上传送后续的一些HTTP请求以及响应报文。
也就是当发送第一个请求时需要首先建立TCP连接,之后请求则可以通过第一次请求的连接直接发送请求报文:
对于持久化连接中包含有两种方式:流水线式
、非流水线
。
对于上图中就是非流水线的发送,你可以看到在发送第二个请求时首先需要需要等待第一个请求收到响应之后才能够继续发起,这种请求方式都是类似于同步方式:
流水线式就类似于GBR、SR协议,可以进行连续发送,如当前有多个请求要进行发送,那么此时就会连续的发出多个请求,当服务器收到请求后,会依次返回相应的请求,如下图红色自己画的多条线:
在HTTP中包含有两种报文:HTTP请求报文
、HTTP响应报文
。
ASCII
码串。请求行
:
首部行
:说明浏览器、服务器和报文主体的一些信息。在每一行都有首部字段名和值,末尾都有一个换行符,首部中可以有很多行,也可以不用。
实体报文
:在请求报文中通常不使用。
对于请求报文的一个示例:
版本
:HTTP版本。
状态码
:3个数字构成,一共有五种类型,一共有33种状态码,下图就是五种类型,右边是具体的一个状态码。
短语
:就是对应状态码的响应描述。
相同点:
1、都是包含三个部分:首行、首部行、实体主体。
2、对于首部行、实体主体都是完全一致的。
不同点:
1、首行的前三个字段都不相同,对于请求报文则是方法、URL、版本
;对于响应报文则是版本、状态码、短语
。
2、实体主体中对于请求报文不经常使用;对于响应报文会使用。
整理者:长路 时间:2023.8.8