【计算机网络复习之路】应用层(谢希仁第八版)
专栏:计算机网络复习之路
目录 一、域名系统DNS1.1本地域名服务器采用迭代查询1.2本地域名服务器采用递归查询 二、文件传送协议FTP三、远程终端协议TELNET四、万维网WWW(WorldWideWeb)4.1万维网需要解决的问题【1】怎样标志分布在整个互联网上的万维网文档?【2】用什么协议来实现万维网上的各种链接?非持续连接:持续连接:并发TCP连接: 代理服务器:HTTP的报文结构:万维网站点使用Cookie来识别、跟踪用户:【3】怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?【4】怎样使用户能够很方便地找到所需的信息?五、电子邮件(SMTP,POP3,IMAP)5.1 基于万维网的电子邮件 5.2 通用互联网邮件扩充MIME 六、动态主机配置协议DHCP七、简单网络管理协议SNMP(略)总结:结束语应用层:负责最直观的应用请求的封装、发起;
表示层:将应用层的请求表述成符合网络协议和应用要求的会话层可理解的请求数据;
会话层:请求过程的会话管理;网络安全、交互逻辑、缓存处理、认证等与会话相关但与直接请求不相关的辅助逻辑。
应用层是七层OSI模型的第七层。应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向表示层发出请求,应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。而为了达到这个,就需要有不同的应用层协议(具体内容就是精确制定通信的规则),例如DNS、HTTP..............
这里对于表示层和会话层了解就行了,不做过多介绍(毕竟重点是应用层)。
具体来说,应用层协议应当定义:
(1)应用进程交换的报文类型,如请求报文和响应报文。(2)各种报文类型的语法,如报文中的各个字段及其详细描述。(3)字段的语义,即包含在字段中的信息的含义。(4)进程何时、如何发送报文,以及对报文进行响应的规则。如下都是本节应用层要介绍的重要协议,这个表格也希望大家都能记住哦:
一、域名系统DNS连接在互联网上的主机不仅有IP地址,还有便于用户记忆的主机名字。域名系统DNS(DomainNameSystem)能够把互联网上的主机名字转换为IP地址。
前瞻:互联网采用层次树状结构的命名方法。任何一个连接在互联网上的主机,都有一个唯一的层次结构的名字,即域名(domainname)。域名中的每一个层次叫做域(domain)。最高层次的域可以划分子域,每一个子域还可继续划分子域,这样就形成了顶级域、二级域、三级域,等等。
规定:域名由标号(label)序列组成,各标号之间用点(.)隔开,各标号分别代表不同级别的域名。域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写。标号中除连字符(-)外不能使用其他的标点符号。级别最低的域名写在最左边,而级别最高的顶级域名则写在最右边。由多个标号组成的完整域名总共不超过255个字符。
从上面规则可以算出域名最多127级,但现实中,三级或四级域名已经足够满足大多数网站的需要了。 例如抖音的域名:www.douyin.com。这就是一个三级域名。
全球顶级域名按功能可分为两类,一类是国际通用顶级域名(gTLD),另一类是国家顶级域名(nTLD)。(还用一种基础结构域名,但这种顶级域名只有一个,即arpa。用于反向域名解析,又称为反向域名)
国际通用顶级域名包括:
.com:商业.org:非盈利组织.net:网络服务提供商.int:国际组织.edu:教育机构.gov:政府机构.mil:军事机构国家顶级域名(ccTLD)则是各个国家或地区独立分配和管理的域名,如.cn表示中国,.jp表示日本,.uk表示英国,.us表示美国等等,各国和地区都有自己的ccTLD。并且在国家顶级域名下注册的二级域名均由该国家自行确定(比如edu,在小日本叫ac)。我国把二级域名划分为“类别域名”和“行政区域名”两大类,这里就不做过多介绍了。
互联网的域名空间结构:
从域名到IP地址的解析由多个域名服务器共同完成。
域名系统由分布在世界各地的域名服务器来实现。
域名系统不是以“域”为管理单位,而是以“区”(zone)为管理单位。区可能等于或小于域,但一定不能大于域。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。
权限域名服务器负责最终的域名到IP地址的解析。当一个权限域名服务器不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。
比如,区abc.com和区y.abc.com各设有一个权限域名服务器,对于域名t.y.abc.com的解析,最终由y.abc.com这台权限域名服务器来负责。
1.1本地域名服务器采用迭代查询根据域名服务器所起的作用,可以把域名服务器划分为以下四种不同的类型:
(1)根域名服务器:不管是哪一个本地域名服务器,只要自己无法解析,就首先求助于根域名服务器。
(2)顶级域名服务器:当收到DNS查询请求时,一般情况下会给出下一步应当找的权限域名服 务器的IP地址(但也可能是最后的结果)。
(3)权限域名服务器:权限域名服务器负责最终的域名到IP地址的解析。
(4)本地域名服务器:本地域名服务器也称为默认域名服务器。当一个主机发出DNS查询请求时,该查询请求报文就首先发送给本地域名服务器。并且本地域名服务器会缓存其最近查询过的域名的解析,当所要查询的主机位于本地域名服务器的缓存中时,本地域名服务器就能立即将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器(有些题让你求最短查询时间,就是这个原因)。
注意:这里的本地域名服务器只提供递归查询服务(标题说本地域名服务器采用迭代查询,只是强调后者),其他域名服务器均只提供迭代查询服务,还有上图的前缀dns.可以不用管。
详细步骤:
➊主机m.xyz.com先向其本地域名服务器dns.xyz.com进行递归查询。❷本地域名服务器采用迭代查询。它先向一个根域名服务器查询。❸根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。❹本地域名服务器向顶级域名服务器dns.com进行查询。❺顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.abc.com的IP地址。❻本地域名服务器向权限域名服务器dns.abc.com进行查询。❼权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。❽本地域名服务器最后把查询结果告诉主机m.xyz.com。
有了上面的学习,趁热打铁!(这题还得再学习了HTTP协议后才能做,答案在文末)
1.2本地域名服务器采用递归查询
根据途上图中标号顺序理解就行了~
最后,为什么DNS支持UDP和TCP呢?
大多数情况下DNS使用UDP进行传输(因为一般返回的内容不会超过UDP报文的最大长度,即512字节。用UDP传输时,不需要经过TCP三次握手的过程,从而大大提高了响应速度),因此这也要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。但在两种情况下会使用TCP进行传输:
如果返回的响应超过的512字节(UDP最大只支持512字节的数据)。区域传送(区域传送是主域名服务器向辅助域名服务器传送变化的那部分数据,这个数据量一般都很大的)。二、文件传送协议FTP文件传送协议FTP(FileTransferProtocol)使用TCP可靠的运输服务,是互联网上使用得最广泛的文件传送协议。FTP使用客户-服务器方式,并且一个FTP服务器进程可同时为多个客户进程提供服务。
FTP的服务器进程由两大部分组成:一个主进程,另外有若干个从属进程。
两种区别:主进程是打开端口,让外部发送的数据可以进来,并且将这些数据逐个分配各从属进程。从属进程则是单独为这些数据服务
主进程的工作步骤:
(1)打开熟知端口(端口号为 21),等待客户进程发出连接请求。(2)启动从属进程处理客户进程发来的请求,处理完毕后即终止从属进程。(3)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。下图的控制进程和数据传输进程就是两个从属进程(但为了简单起见,主进程不画出)。当客户进程向服务器进程请求建立连接时,需要向服务器的熟知端口21发送请求,同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。
根据数据连接是否是服务器端主动建立,FTP有主动和被动两种模式:
(1)主动模式:服务器端主动建立数据连接,其中服务器端的端口号为20,客户端的端口号随机,但是必须大于1024,因为0~1023是熟知端口号。
(2)被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。
但一般是主动模式。
从上面我们还能学到一点就是:在上面主动模式下,客户端使用的端口号不是严格的在49152~65535,而是大于等于1024都是可以的,同理,在被动模式下,服务器端也一样,这里随便提一下,也提醒大家不要局限于这一点上。
三、远程终端协议TELNETTELNET在以前被广泛使用,但由于其安全性较差,逐渐被SSH协议所取代(这里不介绍)。现在TELNET的应用越来越少 ,因此简单介绍一下吧。
(1)用户用TELNET就可在其所在地通过TCP连接登录到远地的另一台主机上。
(2)TELNET能将用户的击键传到远地主机,同时也能将远地主机的输出通过TCP连接返回到用户屏幕。
(3)TELNET使用客户-服务器方式,在本地系统运行TELNET客户进程,而在远地主机则运行TELNET服务器进程。
(4)TELNET可以适应许多计算机和操作系统的差异(TELNET定义了数据和命令的标准格式,即网络虚拟终端NVT格式)。
客户软件把用户的击键和命令转换成NVT格式,并送交服务器。服务器软件把收到的数据和命令从NVT格式转换成远地系统所需的格式。向用户返回数据时,服务器把远地系统的格式转换为NVT格式,本地客户再从NVT格式转换到本地系统所需的格式。
四、万维网WWW(WorldWideWeb)万维网WWW(WorldWideWeb)并非某种特殊的计算机网络,而是一个大规模的、联机式的信息储藏所。
万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。(比如你现在在看我的博客,我链接我的主页:我的主页,然后你就能关注我了)
注意:万维网是一个分布式的超媒体(hypermedia)系统,是超文本(hypertext)系统的扩充。而超文本是指包含指向其他文档的链接的文本。
超媒体与超文本的区别:文档内容不同。
● 超文本文档仅包含文本信息。● 超媒体文档还包含其他形式的信息,如图形、图像、声音、动画以及视频等。万维网的工作方式:
万维网以客户-服务器方式工作。在万维网文档所驻留的主机上运行服务器程序,这个主机也称为万维网服务器;在客户主机上运行客户程序,万维网客户程序又叫做浏览器。客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在客户程序主窗口上显示出的万维网文档称为页面(page)。
这可以和我在运输层讲端口号时举的栗子,一起理解。
4.1万维网需要解决的问题【1】怎样标志分布在整个互联网上的万维网文档?● 使用统一资源定位符URL(UniformResourceLocator)。● 使每一个文档在整个互联网的范围内具有唯一的标识符URL。URL用来表示互联网上的资源的位置和访问这些资源的方法。URL实际上就是互联网资源的地址,互联网上的所有资源都有一个唯一确定的URL。也可理解为,URL相当于文件名在网络范围的扩展,是与互联网相连的主机上的任何可访问对象的一个指针。
URL的一般形式是:
下面用非常详细的图解阐述:
【2】用什么协议来实现万维网上的各种链接?● 使用超文本传送协议HTTP(HyperTextTransferProtocol)。● HTTP是一个应用层协议,使用TCP连接进行可靠的传送。● HTTP定义了浏览器与万维网服务器通信的格式和规则。既然是TCP,那肯定要三报文握手建立TCP连接后才能传输数据。在上一章,我们学习到TCP建立连接的三报文握手的第三个报文段可以携带数据,因此第三个报文段就是客户对万维网文档的请求报文。 请求一个万维网文档所需的时间是该文档的传输时间(与文档大小成正比)加上两倍往返时间RTT(一个RTT用于建立TCP连接,另一个RTT用于请求和接收万维网文档)。
非持续连接:HTTP/1.0每请求一个文档就要有两倍RTT的开销。若一个页面上有很多链接的对象(如图片等)需要依次进行链接,那么每一次链接下载都导致两倍RTT的开销。
万维网服务器往往要同时服务于大量客户的请求,这种非持续连接会使万维网服务器的负担很重。
持续连接:HTTP/1.1使用持续连接:万维网服务器在发送响应后仍然在一段时间内保持这条TCP连接,使同一个客户和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文,只要这些文档都在同一个服务器上就行。
持续连接有两种工作方式:
(1)非流水线方式
非流水线方式:客户在收到前一个响应后才能发出下一个请求。在TCP连接建立后,客户每访问一次对象都要用去一个往返时间RTT。这比非持续连接要用去两倍RTT的开销,节省了建立TCP连接所需的一个RTT时间。
但非流水线方式还是有缺点的,因为服务器在发送完一个对象后,其TCP连接就处于空闲状态,浪费了服务器资源。
(2)流水线方式
流水线方式:客户在收到HTTP响应报文之前能够接着发送新的请求报文。连续的多个请求报文到达服务器后,服务器就可连续发回响应报文。(这和滑动窗口机制很像)
流水线工作方式使TCP连接中的空闲时间减少,提高了下载文档的效率。
并发TCP连接:无论HTTP使用持续连接还是非持续连接,浏览器都可以打开多个并行的TCP连接以提高访问速度。
补充:(了解即可)
HTTP/2是HTTP/1.1的升级版本,其新增特性如下:
● 服务器可以使用同一个TCP连接并行地发回响应。● 允许客户复用TCP连接进行多个请求,节省连续多次建立和释放TCP连接所花费的时间。● 把所有的报文都划分为许多较小的二进制编码的帧,并采用新的压缩算法,不发送重复的首部字段,大大减小了首部的开销,提高了传输效率。代理服务器:代理服务器(proxyserver)是一种网络硬件设备,又称为万维网高速缓存(Webcache),它一般工作在中间系统上。以代理服务器方式构成的内容分发网络CDN在互联网应用中起到了很大的作用。
代理服务器把最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,代理服务器就返回暂存的响应,而不需要按URL去互联网访问该资源。
下面从有和无的角度探讨它的好处:
【1】没有使用代理服务器的情况
当链路过载时,时延很大!!!
【2】使用代理服务器的情况
工作模式:
1、浏览器访问互联网的服务器时,先与校园网的代理服务器建立TCP连接,并向代理服务器发出HTTP请求报文。
2、若代理服务器已经存放了所请求的对象,则将此对象放入HTTP响应报文中返回给浏览器。
3、若未存放,代理服务器就代表浏览器与互联网上的源点服务器建立TCP连接,并发送HTTP请求报文。
4、源点服务器将所请求的对象放在HTTP响应报文中返回给校园网的代理服务器。
5、代理服务器收到对象后,先保存到本地存储器中,然后将该对象放在HTTP响应报文中,通过已建立的TCP连接,返回给请求该对象的浏览器。
HTTP的报文结构:HTTP有两类报文:请求报文和响应报文。
这两种报文都由三部分组成:
开始行:用于区分是请求报文还是响应报文。这两种报文的区别就是开始行不同。
首部行:说明浏览器、服务器或报文主体的一些信息。可以有多行,也可以不使用。首部行每一个字段的值都是一些ASCII码串,因此每个字段的长度是不确定的。
实体主体:请求报文中一般不用;响应报文中一般是万维网文档,但也可不用。
方法(method):对所请求的对象进行的操作,实际上就是一些命令。
请求报文的类型是由它所采用的方法决定的。
URL:所请求资源的URL。
版本:HTTP的版本。
这里给出一个栗子,考试一般都是这种形式:
考试例题:
答案:logo.png在服务器中的绝对路径是C:webstaticimageslogo.png。
版本:HTTP的版本。
状态码:服务器操作完成的状态。
短语:解释状态码的简单短语。
万维网站点使用Cookie来识别、跟踪用户:
解释:
1、当用户A浏览某个使用Cookie的网站时,该网站的服务器就为A生成一个唯一的识别码,并作为索引写入数据库。服务器在给A的HTTP响应报文中添加一个叫做Set-cookie的首部行,其值就是赋予该用户的识别码。
2、浏览器收到后就把服务器的主机名和识别码作为一项写入Cookie文件。
3、当用户A继续浏览此网站时,每发送一个HTTP请求报文,浏览器都会从其Cookie文件中取出这个网站对应的识别码,并放到HTTP请求报文的Cookie首部行中。利用此识别码,这个网站就能够跟踪该用户在该网站的活动。
4、服务器并不是想通过Cookie获得用户A的真实姓名等信息,只是想知道A都做了些什么以提供更加便利、友好的服务。(比如你在网上购物,或者点外卖,需要加入购物车中,一起购买…………)
【3】怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?● 使用超文本标记语言HTML(HyperTextMarkupLanguage)超文本标记语言HTML(HyperTextMarkupLanguage)是一种制作万维网页面的标准语言。目前,HTML最新的版本是5.0。
HTML定义了许多用于排版的命令,这些命令叫做标签(tag)。仅当HTML文档以.html或.htm为后缀时,浏览器才对文档中的标签进行解释。
例如:
万维网文档的类别:
● 静态文档:文档创作完毕后就存放在万维网服务器中,在被用户浏览的过程中,内容不会改变。● 动态文档:在浏览器访问万维网服务器时由应用程序动态创建。● 活动文档:浏览器端运行活动文档程序,使浏览器的屏幕显示连续更新。如果你选择前端的话,HTTP协议你还会更加深入去学习它 ,我们现在学的只是皮毛!!!
【4】怎样使用户能够很方便地找到所需的信息?● 使用各种搜索工具(即搜索引擎)
五、电子邮件(SMTP,POP3,IMAP)电子邮件系统由三个主要构件组成:用户代理,邮件服务器,以及邮件发送协议和邮件读取协议。
● 用户代理,是用户与电子邮件系统的接口,又被称为电子邮件客户端软件。
● 邮件服务器,主要用来发送和接收邮件,同时还要向发件人报告邮件传送的结果。
● 用户代理向邮件服务器发送邮件或邮件服务器之间发送邮件,使用简单邮件传送协议SMTP。
● 用户代理从邮件服务器读取邮件时,使用邮局协议第3版POP3。
SMTP和POP3都使用TCP连接来可靠地传送邮件,并且都使用客户-服务器的工作方式。
详细步骤:
发件人调用PC中的用户代理撰写和编辑要发送的邮件。
发件人的用户代理把邮件用SMTP协议发给发送方邮件服务器。(推)
发送方邮件服务器把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器。
发送方邮件服务器(SMTP客户)与接收方邮件服务器(SMTP服务器)建立TCP连接,把邮件缓存队列中的邮件依次发送出去。
运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人读取。
收件人在打算收信时,就运行PC中的用户代理,使用POP3协议读取发送给自己的邮件。(拉)
这里没有介绍网际报文存取协议IMAP,是因为它和pop3一样,属于邮件读取协议。
区别(了解就行):
POP3,的特点是只要用户从服务器上读取了邮件,就把该邮件删除。但最新版本的POP3可以不删除邮件。
IMAP协议,中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除。IMAP这种做法可以让用户随时随地去访问服务器上的邮件。
5.1 基于万维网的电子邮件前面介绍的电子邮件的实现,需要在自己使用的计算机中安装用户代理软件UA(不同用户的电脑可能不同),如果你出门在外没带自己电脑,就要用别人的电脑,这是很不方便的。因此基于万维网的电子邮件就出世了,你可以非常方便的在一种浏览器上收发电子邮件。比如QQ邮箱、网易邮箱(163)……
●电子邮件从A的浏览器发送到A的邮件服务器使用HTTP协议的POST方法。
● 两个邮件服务器之间传送邮件仍然使用SMTP协议。
● 邮件从B的邮件服务器传送到B的浏览器使用HTTP协议的GET方法。
5.2 通用互联网邮件扩充MIMESMTP不能传送可执行文件或其他二进制文件,只能传送7位的ASCII文本文件。所以需要使用MIME对邮件内容的格式进行转换。
六、动态主机配置协议DHCP连接到互联网的计算机的协议软件需要配置以下项目:
● IP地址● 子网掩码● 默认路由器的IP地址(即默认网关)● 域名服务器的IP地址不可能这东西要人工手动配置吧,因此,动态主机配置协议DHCP(即插即用的连网方式)允许主机自动获取以上配置信息而不需要手工干预。
大概步骤:(DHCP使用客户-服务器方式)
(1)需要IP地址的主机在启动时广播发送发现报文(DHCPDI-SCOVER)(将目的IP地址置为255.255.255.255),这时该主机就成为DHCP客户。发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现(DISCOVER)DHCP服务器的IP地址。这台主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为全0。
(2)本地网络上的所有主机都能够收到这个广播报文,但只有DHCP服务器才回答此广播报文。DHCP服务器先在其数据库中查找该计算机的配置信息,若找到,则返回找到的信息;若找不到,则从服务器的IP地址池(addresspool)中取一个地址分配给该计算机。DHCP服务器使用提供报文(DHCPOFFER)将配置信息返回给请求方。
DHCP中继代理
广播发送的发现报文无法跨网络传输,而在每一个网络中设置一个DHCP服务器又会使DHCP服务器的数量太多,因此需要在每一个网络中至少部署一个DHCP中继代理(relayagent)(路由器大多具有中继代理功能),它配置了DHCP服务器的IP地址信息。
然后,当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此提供报文发回给主机A。
租用期:
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址。DHCP协议称这段时间为租用期(leaseperiod),其值可在DHCP服务器中设定。
DHCP服务器在给DHCP客户发送的提供报文的选项中给出租用期的数值。若租用期过半,DHCP客户需要发送请求报文(DHCPREQUEST)更新租用期(即续租)。
那为啥,需要两个67、68的熟知端口呢?
下面从DHCP协议的工作原理阐述:
1 、DHCP服务器被动打开UDP端口67,等待客户端发来的报文。
2、 DHCP客户从UDP端口68发送DHCP发现报文。
3、 凡收到DHCP发现报文的DHCP服务器都发出DHCP提供报文,因此DHCP客户可能收到多个DHCP提供报文。
4、 DHCP客户从几个DHCP服务器中选择一个,并向其发送DHCP请求报文。
5、被选择的DHCP服务器发送确认报文,DHCP客户收到确认报文后就可以使用这个IP地址了。
6、DHCP客户现在要根据服务器提供的租用期T设置两个计时器T1和T2,它们的超时时间分别是0.5T和0.875T。
7、租用期过半(T1时间到),DHCP客户发送请求报文,要求更新租用期。
8、若DHCP服务器同意,则发回确认报文。DHCP客户得到了新的租用期,需要重新设置计时器。
9、若DHCP服务器不同意,则发回否认报文。这时DHCP客户必须立即停止使用原来的IP地址,而必须重新申请IP地址(回到步骤2)。
但是,若DHCP服务器不响应步骤 7 的请求报文,则在租用期过了87.5%时(T2时间到),DHCP客户必须重新发送请求报文(重复步骤7),然后继续后面的步骤。
最后,DHCP客户可随时终止服务器所提供的租用期,这时只需向DHCP服务器发送释放报文即可。
七、简单网络管理协议SNMP(略)需要的可以看这篇博客,我们学校不要求掌握。
SNMP(简单网络管理协议)详解_Jeremy_Lee123的博客-CSDN博客
总结:如果你想把上面重要的协议串联起来,那么这个栗子,绝对通俗易懂!!!
Web页面请求过程(详细版)
1、假设主机最开始没有IP地址以及其它信息,那么就需要先使用DHCP协议来获取。
1、那么主机收到该帧后,不断分解得到DHCP报文。之后就配置它的IP地址、子网掩码和DNS服务器的IP地址,并在其IP转发表中安装默认网关。(DHCP配置主机信息)
2、但是主机还需要知道网站的域名对应的IP地址,因此生成一个DNS查询报文,该报文具有53号端口,因为DNS服务器的端口号是53。
2、DHCP过程只知道网关路由器的IP地址,为了获取网关路由器的MAC地址,需要使用ARP协议,最后得到网关的MAC地址。然后网关路由器就能接收到包含DNS查询报文的以太网帧后,抽取出IP数据报,并根据转发表决定该IP数据报应该转发的路由器。(因为路由器具有内部网关协议(RIP、OSPF)和外部网关协议(BGP)这两种路由选择协议,因此路由表中已经配置了网关路由器到达DNS服务器的路由表项。)( ARP解析MAC地址)
3、到达DNS服务器之后,DNS服务器抽取出DNS查询报文,并在DNS数据库中查找待解析的域名。
3、找到DNS记录之后,发送DNS回答报文,将该回答报文放入UDP报文段中,然后放入IP数据报中,通过路由器反向转发回网关路由器,并经过以太网交换机到达主机。(DNS解析域名)
4、有了HTTP服务器的IP地址之后,就能像HTTP服务器请求页面了(但必须先与HTTP服务器进行三次握手来建立TCP连接)。(HTTP请求页面)
以上就是大概的过程,实际上做题时,没有这么复杂,一般只需要【DNS解析域名,HTTP请求页面】这两种进行考察,另外两种分开考察大家。
比如这题:
答案:
(1)题目说的是访问Internet的RTT,忽略访问本地域名服务器的时间。因访问网站使用的是HTTP协议基于TCP,所以要先建立连接,因此主机访问网站获得数据最少需要两个RTT时间20ms(即本地域名服务器有相应域名解析的缓存),最多需要五个RTT时间50ms(即加上本地域名服务器迭代访问根域名服务器、顶级域名服务器和权限域名服务器的三个RTT)。
(2)在持续连接的非流水线工作方式下,每一次请求及回复需要一个RTT,本题共产生6次请求(第一次web请求,请求index.html;然后5次请求是对于链接的5个图片的请求),所以需要6个RTT时间60ms。
(3)根据DHCP协议的要求,此IP数据报中源IP地址为:0.0.0.0,目的IP地址为:255.255.255.255;由于DHCP在运输层使用UDP协议,因此IP数据报的数据部分是UDP用户数据报,根据IP数据报协议字段的定义,此IP数据报的协议字段的值是17。
结束语好了,到目前为止你就复习完了应用层,如果有什么建议,欢迎在评论区下方讨论,并且最近也在资源里上传了选择题和解答题(期末版),有时间可以去看看哦。
期待您的点赞、收藏、关注,你的支持是我最大的动力₍ᐢ..ᐢ₎ ♡