计算机网络知识总结

一、URI和URL的关系

URI(统一资源标志符),是用于标识某个互联网资源名称的字符串。这个字符串可以唯一标识出该网络资源,好比人的身份证号。

URL(统一资源定位符),是我们通常说的网络地址,好比通过居住地址的方式标识出一个人,可以理解为URLURI的一种实现。

二、tcp保活机制(keep-alive)

开启keep-alive后,探测方会在自己一端设计一个计时器,当计时器被触发之后,向对方发送一个探测报文。如果对端给自己回送一个ACK,那么就代表对方仍存活;如果在指定的时间内多次没有给自己回送ACK,那么就确认对方已经断开连接,从而断开本次TCP连接。

keep-alive的这种探测报文间隔时间较长,若客户端断开连接(如突然断网),服务端不能立即断开tcp链接。而心跳检测(heart-beat)原理和keep-alive类似,但是间隔时间短,同时heart-beat属于应用层,可以在断开连接后做出相应的反应。

三、DNS查询

递归查询与迭代查询

DNS是进行域名解析,从向本地DNS域名服务器发起请求开始,到拿到IP地址既包含了递归查询也包含了迭代查询

简单说,客户电脑上若没有DNS缓存,则向本地域名服务器发起DNS查询请求,这个过程属于递归查询。而本地服务器开始向根服务器(.)发起DNS查询请求,得到顶级域名(如:.com/.net)的IP列表,然后再向顶级域名列表中的DNS服务器发起查询请求,若没找到则继续返回次级域名列表(baidum.com),依次迭代下去,直到查询到IP地址或者报错。
在这里插入图片描述

DNS查询为什么基于UDP

由上文可以知道,在DNS查询过程中会涉及到多次的迭代查询,如果使用TCP来查询DNS的话,每次查询都需要三次握手建立链接,通信,然后四次挥手断开连接。这样会造成大量的时间损失,而使用UDP则会节省出这些建立链接和断开连接的时间。

参考博文:
[1]: http://www.ruanyifeng.com/blog/2016/06/dns.html
[2]: https://zhuanlan.zhihu.com/p/61394192
[3]: https://zhuanlan.zhihu.com/p/28305778


版权声明:本文为wdhxs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wdhxs/article/details/118940805