计算机网络(第6版) WriteBy 谢希仁 —— 应用层
计算机网络(第6版) WriteBy 谢希仁 —— 应用层
-
域名系统DNS
-
概述
什么是域名呢?平时大家访问最多的一个网站:www.baidu.com,这就是一个域名。我们在网络层已经学过,如果要去寻找一台主机,需要IP地址进行导航到目标主机所在的网络。但是,IP地址记忆起来较为复杂,对机器友好,对人不友好。于是乎,有了这种 【域名 => IP地址】的映射关系。负责解析这种映射关系的机器我们称为DNS服务器。
-
域名结构
-
为了方便管理,将域名划分层次(不同层次的域名由不同的管理机构进行管理)。

如果安装域名的分区进行服务的话,那么域名服务器的数量将会过于庞大,所以采用分区的方式进行域名解析服务的提供。

每个域名服务器都只负责一部分的域名解析,如果自己无法解析该域名,就会向上抛出,如果上级也无法处理,就一直向上委托,直到根域名服务器。

其实也没有这么复杂,梳理一遍吧。主机向DNS服务器发起解析请求,本地的DNS服务器收到后,如果能够解析,那么返回结果;如果不能够解析,向上查询。根域名服务器只负责告诉本地的DNS服务器该域名的顶级域名服务器的IP地址,然后本地的DNS服务器区请求相应的顶级域名服务器。。。如果顶级域名服务器能够解析(大多时间是不能的),直接返回结果;如果不能,向下查找下一个层级的DNS服务器的IP地址,交给本地的DNS服务器。。。依次类推,要么找到了,要么找不到。。。
当然,如果每次都需要这样的查询,显然是很浪费资源的。。。所以在各个设备上都设有高速缓存。缓存最近查询的【域名 => IP地址】的映射。。。
-
文件传送协议
-
FTP概述
就是一种在应用层上的文件传输协议,向下可使用TCP或者UDP进行传输。
-
FTP的基本工作原理
感兴趣自己去深入了解啦,会建立两个不同的连接,一个是控制连接,一个是数据连接。
使用TCP进行可靠的文件传输。。。
-
简单文件传输协议TFTP
这玩意儿基于UDP进行,自己实现了一些差错校验逻辑。。。
每次只传输一小段数据,512字节,最后一次可不足512字节。。。
由于是UDP嘛,报文的首部简单,网络资源占用少。。。
数据包会进行编号,从1开始,每发送完一个数据包后,必须等待对方的确认通知,方可发送下一个数据包。。。当然,如果在超时了,那么就会发送一个PDU;另一方也是一样的。。。
-
-
远程终端协议TELNET
了解一下就行了,平时一些连接Linux服务器的软件上还会有这一行,这就是去一种模拟终端的协议,让客户感觉自己像是在本地一样操作远端的电脑。。。 => 主要是现在已经很好使用了
-
统一资源定位符URL
<协议>://<主机>:<端口>/<路径> => http://www.baidu.com
这里我觉得没有什么好说的了,应用层这些东西,无论是前后端的学习,或多或少都会涉及到,对于这个url,大家肯定都不陌生的
-
超文本传输协议HTTP
所谓的超文本,实际上就是除了文字信息外,还可以有图片、音视频等。。。
这里也不用多说些什么,这玩意儿大家再熟悉不过了,当然,对于头部的一些字段,算了,这玩意儿百度也能知道。。。
HTTP是无连接、无状态的 => 使用TCP提供可靠的数据传输服务
HTTP/1.0 的时候,每次连接的建立与断开都需要进行三次握手与四次挥手,很显然,在一个网页中,如果有大量的链接资源,加上浏览器本身对连接数量就有限制,所以这种方式的效率并不高。。。
HTTP/1.1 很好的解决了1.0版本出现的问题,保持连接,服务端发送完一个报文后,不会立马断开连接,而是在一段时间内保持这段连接,同一个进程就可以复用这条连接进行下一次的通讯,从而减少不必要的握手开销。。。
实现这种长连接的方式有两种,一种是流水线工作方式,一种是非流水线工作方式。。。
非流水线工作方式的特点就是客户端必须等待服务端收到上一个报文后(也就是服务端想客户端发送了确认通知),才能继续发送下一个报文。。。
流水线工作方式的特点是客户端可以连续将报文发出,无须等待服务端的响应,后续服务端可以连续发送响应报文。。。
HTTP的报文结构:
很明显,不需要怎么描述嘛,大家看得太多了。。。
那些字段的作用,百度都能搜得到,不想多说。。。
Cookie也不想多说了。。。
-
电子邮件
说实话,这玩意儿平时都很少用到的,更别说去调用这种邮件服务了。。。
没必要去这么深入的了解,我们只要会调用(比如说QQ邮箱)服务就行了。。。
上图提到的SMTP和POP3就是与邮件的收发相关的协议而已,具体的,下面会细说。。。
发送邮件使用的是SMTP协议,读取邮件使用的是POP3协议。。。 => 这个协议有个缺点,就是用户读取邮件后,就会将该邮件从服务器中删除(很显然,如果我换了一台电脑,我就查不到任何邮件信息)
还有一个就会IMAP(网际报文存取协议),是一种用于从邮件服务器获取电子邮件的协议,它允许用户在不同的设备上访问和管理服务器上的邮件,而不需要将邮件下载到本地设备。。。
**MIME:**定义了一种机制,使得可以在电子邮件中包含多种类型(图像、音频和视频文件)的数据,而不仅仅是文本。
-
动态主机配置协议DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络协议,用于自动分配网络配置参数给网络中的设备。这些参数通常包括IP地址、子网掩码、默认网关、DNS服务器地址等。DHCP的主要目的是减少网络管理员的工作负担,避免手动配置每个设备的网络设置,并确保网络中的设备可以动态地获得有效的网络配置,特别是在设备数量较多或变化频繁的环境中。
DHCP的工作原理主要包括以下几个步骤:
-
发现(Discovery):当一台新设备(称为DHCP客户端)连接到网络,并且需要网络配置时,它会广播一个DHCP发现消息,询问网络中是否有DHCP服务器可以提供服务。
-
提供(Offer):收到发现消息的DHCP服务器会检查其地址池(一组预先配置好的IP地址),并提供一个或多个IP地址给客户端。这个提供消息还包括其他网络配置信息,如子网掩码、默认网关、DNS服务器等。
-
请求(Request):客户端从多个服务器的提供消息中选择一个IP地址(如果只有一个服务器响应,客户端就接受这个提供),然后发送一个DHCP请求消息给服务器,表明它希望使用这个IP地址。
-
确认(Acknowledgment):服务器接收到客户端的请求后,会发送一个确认消息,正式将IP地址分配给客户端。如果请求的IP地址已被占用或不可用,服务器会发送一个负面确认消息,客户端则需要重新发起发现过程。
-
续约(Renewal):IP地址通常不是永久分配给设备的,而是有一定的租约期限。在租约到期前,客户端可以发送续约请求,以继续使用当前的IP地址。如果服务器确认续约,客户端可以继续使用该地址;如果服务器拒绝续约,客户端可能需要重新发起发现过程。
-
释放(Release):当客户端不再需要IP地址,或者即将离开网络时,它可以发送一个释放消息给服务器,表明它已经放弃使用该IP地址。
DHCP的优势包括:
- 自动化:自动分配IP地址和其他网络参数,减少了手动配置的需求。
- 灵活性:设备可以动态地获得网络配置,适合设备频繁加入或离开网络的环境。
- 集中管理:网络管理员可以在DHCP服务器上集中管理网络配置,简化了网络管理。
没错,以上内容来自AI,非常nice。。。
-
结语:完了,是真的完了,不过还有没完了,如果还想很好的吊打面试官的话,请访问该网址:https://www.xiaolincoding.com/network/
