域名系统DNS是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址
DNS使大多数名字都在本地进行解析,仅少量解析需要互联网上通信,因此DNS系统的效率很高
互联网采用了层次树状结构的命名方法
DNS的核心系统是一个三层的树状、分布式服务,基本对应域名的结构:
1)根域名服务器:是层次最高的域名服务器,也是最重要的。所有根域名服务器都知道所有顶级域名服务器的域名和IP地址。任何本地域名服务器只要自己无法解析,就首先求助于根域名服务器
2)顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答
3)权限域名服务器:负责一个区的域名服务器。当权限域名服务器还不能给出回答时,就会告诉发出查询请求的DNS客户,下一步应找哪一个权限域名服务器
4)本地域名服务器:并不属于域名服务器层次结构,但很重要。当主机发出DNS查询请求时,这个查询请求报文发给本地域名服务器
提高域名服务器可靠性:
DNS域名服务器把数据复制到几个域名服务器来保存,其中一个是主域名服务器,其余是辅助域名服务器。当主域名服务器出现故障时,辅助域名服务器就可以保证DNS的查询工作不会中断
域名的解析过程:
1)主机向本地域名服务器查询,采用递归查询
如果本地域名服务器不知道查询域名的IP,则本地域名服务器以DNS客户的身份,向其他根域名服务器继续发出查询请求报文,而不是让主机自己进行下一步查询。因此,递归查询返回的查询结构是查询的IP地址或报错,即无法查询到IP
2)本地域名服务器向根域名服务器查询,采用迭代查询
当根域名服务器收到本地域名服务器发出的查询请求报文时,要么给出要查询的IP地址,要么告诉本地域名服务器下一步应向哪个域名服务器查询,然后让本地域名服务器进行后续查询。根域名服务器通常把自己知道的顶级域名服务器的IP告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询
DNS同时占用UDP和TCP端口53
DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议
DNS的规范中规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送
为什么既使用TCP又使用UDP?
首先了解一下TCP与UDP传送字节的长度限制:
UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。通常传统的UDP报文一般不会大于512字节
区域传送时使用TCP,主要有一下两点考虑:
1)辅域名服务器会定时(一般时3小时)向主域名服务器进行查询以便了解数据是否有变动。如有变动,则会执行一次区域传送,进行数据同步。区域传送将使用TCP而不是UDP,因为数据同步传送的数据量比一个请求和应答的数据量要多得多
2)TCP是一种可靠的连接,保证了数据的准确性
域名解析时使用UDP协议:
客户端向DNS服务器查询域名,一般返回的内容都不超过512字节,用UDP传输即可。不用经过TCP三次握手,这样DNS服务器负载更低,响应更快。虽然从理论上说,客户端也可以指定向DNS服务器查询的时候使用TCP,但事实上,很多DNS服务器进行配置的时候,仅支持UDP查询包
面试题:在浏览器中输入一个URL会发生什么?
1)客户机提出域名解析请求,并将该请求发送给本地的域名服务器
2)当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回
3)如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址
4)本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址
5)重复第四步,直到找到正确的纪录
6)拿到服务器IP后,建立TCP链接,发送HTTP请求
7)服务器处理请求,返回响应结果
8)关闭TCP连接
9)浏览器解析HTML,浏览器布局渲染
FTP的特点只提供文件传送的基本服务,使用TCP可靠性运输服务,FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性
FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求
主进程的工作步骤如下:
1)打开端口21,使客户进程能够连接上
2)等待客户进程发出连接请求
3)启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建一些子进程
4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进程的
FTP的两个TCP连接:
由于FTP使用两个不同的端口号,所以数据连接与控制连接不会发生混乱
服务器端控制进程收到FTP客户发来的文件传输请求后,就创建数据传送进程和数据连接,用来连接客户端和服务端的数据传送进程
连接到互联网的计算机的协议软件需要配置的项目包括:
动态主机配置协议DHCP提供了即插即用连网的机制,允许一台计算机假如 新的网络和获取IP地址而不用手工参与
DHCP使用客户端服务器方式。需要IP地址的主机在启动时就向DHCP服务器广播发送发现报文(将目的IP地址置为全1,即255.255.255.255),这时该主机就称为DHCP客户。发送广播报文是因为现在还不知道DHCP服务器在什么地方,因此要发现DHCP服务器的IP地址。这台主机目前还没有自己的IP地址,因此它将IP数据报的源IP地址设为全0。在本地网络上所有主机都能够收到这个广播报文,但只有DHCP服务器才对此广播报文进行回答。DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息。若找不到,则从服务器的IP地址池中取一个地址分配给该计算机病毒防治等问题以及解决群众实际需求问题进行到底有多少女人。DHCP服务器的回答报文叫做提供报文,表示提供了IP地址等配置信息
并不是每个网络上都有DHCP服务器,因为这样会使DHCP服务器数量过多,因此现在是使每个网络至少有一个DHCP中继代理,它配置了DHCP服务器的IP地址信息。当DHCP中继代理收到主机A以广播形式发送的发现报文后,就以单播方式向DHCP服务器转发此报文,并等待其回答。收到DHCP服务器回答的提供报文后,DHCP中继代理再把此报文发回给主机A
DHCP工作流程:
1)DHCP服务器被动打开UDP端口67,等待客户端发来的报文
2)DHCP客户从UDP端口68发送DHCP发现报文
3)所有收到DHCP发现报文的服务器都会发出DHCP提供报文,因此客户可能收到多个DHCP提供报文
4)客户从几个DHCP服务器中选择一个,并向其发送DHCP请求报文
5)被选中的服务器发送确认报文DHCPACK,此时客户就可以使用这个IP地址了,这种状态叫已绑定状态;DHCP客户现在要根据服务器提供的租用期T设置两个计时器T1和T2,它们的超时时间分别为0.5T和0.875T,当超时时间到了就要请求更新租用期
6)租用期过半,DHCP发送请求报文,要求更新租用期
7)服务器若同意,则发回确认报文。客户得到了新的租用期,重置计时器
8)服务器若不同意,则发回否认报文。这是客户停止使用原来的IP地址,而重新申请新IP地址(回到步骤2)
9)客户可以随时提前终止服务器所提供的租用期,这时只需向DHCP服务器发送释放报文即可
推荐学习资料:
韩老师讲高校《计算机网络原理》:https://www.bilibili.com/video/BV1Tb411x7CE?p=1