计算机网络知识总结(五)

本文介绍了URI和URL的区别,URI作为网络资源的唯一标识,URL是其具体实现形式。深入探讨了TCP的保活机制(keep-alive)和心跳检测(heart-beat)在连接维护中的作用。此外,详细阐述了DNS查询的过程,包括递归查询与迭代查询,并解释了为何DNS基于UDP而非TCP的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机网络知识总结

一、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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值