从零开始的计算机网络基础(图文并茂,1.8w字,面试复习必备) (4)

根服务器会查询目标域名的顶级域(如这里的edu),然后将分管该顶级域的顶级域服务器ip发给本地服务器,本地服务器再向顶级域服务器转发请求。

顶级域服务器收到请求后会查询该域名属于哪个权威服务器管辖,然后将查询结果返回给本地服务器。

本地服务器将请求转发给目标服务器,目标服务器再根据域名查询相应的ip地址再将结果返回给本地服务器。

本地服务器将目标域名的ip返回给夏尔的主机。

但是实际上dns查询可能并不会完全遵守上述流程,试想每天有上亿人访问谷歌百度等,如果每个人的访问都要经历这样冗长的流程,对于用户体验和服务器性能来说是灾难性的。而解决方案则是使用一个缓存的机制,将用户访问过的网站ip地址进行缓存,查询时直接从缓存中取。这里只是简单谈谈,更多的细节会在http协议中详细讲解。

应用层协议对应传输层协议 应用层协议 传输层协议 应用
HTTP   TCP   Web  
FTP   TCP   文件传输  
DNS   TCP/UDP   域名解析  
SMTP   TCP   电子邮件  
Telnet   TCP   远程终端访问  
RIP   UDP   路由选择协议  
DNS何时用TCP协议,何时用UDP协议

DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议;
DNS的规范规定了2种类型的DNS服务器,一个叫主DNS服务器,一个叫辅助DNS服务器。在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。当一个辅助DNS服务器启动时,它需要与主DNS服务器通信,并加载数据信息,这就叫做区传送(zone transfer)。

UDP报文的最大长度为512字节,而TCP则允许报文长度超过512字节。当DNS查询超过512字节时,协议的TC标志出现删除标志,这时则使用TCP发送。通常传统的UDP报文一般不会大于512字节。 因此在区传送中使用TCP协议。

传输层 从另一个例子讲起

一天,夏尔学习到很晚肚子饿了,于是他熟练地打开美团,点了一份炸鸡套餐。不一会儿外卖小哥就将一份香喷喷的炸鸡送到夏尔的快乐椅前了。。。

kfc.png

从之前的知识我们可以猜想到我想吃脆皮炸鸡这段报文是由应用层协议负责的。那么报文信息的传递是怎么实现的呢?从上图可以看出夏尔与肯德基之间仿佛通过美团外卖在逻辑上建立了连接,但将炸鸡送到夏尔家确实由外卖员在物理层面建立的连接。说到这里是不是有点感觉了呢,传输层的作用就是在两个终端之间建立逻辑连接,而网络层的作用则是实打实地建立了两个终端地址的连接。(之前有提到网络层其实也是抽象的逻辑连接,这个问题先按下不表,之后网络层会有所解答)

为什么需要逻辑连接(传输层)呢

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywwpy.html