DNS 与 TCP

DNS 与 TCP,第1张

DNS:域名系统

简单来说就是你给它一个域名,他给你返回一个 ip

当我们输入一个域名(baidu.com)的时候,首先浏览器会看自己的缓存,浏览器如果之前访问过baidu.com,它就会把上次的 baidu.com 的 ip 给你,如果没有,它就会去问操作系统,操作系统如果发现有缓存,就直接用,没有就去问 ISP(运营商);我们平时设置的 hosts 文件就是手动给操作系统添加一个缓存,每次我们访问对应的域名它就不会去问 ISP,直接通过 hosts 里的设置去访问对应的 ip

上面浏览器拿到对应域名的 ip 就会往这个 ip 里去开始建立一个 TCP 连接

TCP:Transmission Control Protocol 传输控制协议

浏览器先发一个 SYN(x)给服务器,服务器就返回一个 ACK(x+1),同时发送一个 SYN(y) 给浏览器,浏览器接收到回复给服务器一个 ACK(y+1),这里x和y一般都是从0开始的

(注:SYN 是 synchronize(同步)的缩写,同步不是"同步异步“中的同步,而是”同步信息“中的同步;ACK 是 acknowledge(获悉/知道)的缩写

拓展问题:为什么一定需要第三次?

答:为了防止一些错误的情况,如果在第二次的时候服务器回应了浏览器,并且发送了一个SYN(y)给浏览器,而浏览器啥也不回应,那么服务器就会任务和浏览器没有办法有效通信,服务器就会抛出异常

三次握手成功后就可以建立 TCP 连接,开始发送 http 内容

上面截图中右边以打电话为例,A跟B说我说完了,B说哦,然后B又说了一句:但我还有一句:我爱你;紧接着又说了一句我也说完了,A说哦;这上面一共是五句话,但是第三句是可以省略的,所以就是四句,换成左边的就是A 跟 B说了句 FIN(x),B 跟A说ACK(x+1)(我知道了(x+1)),B 紧接着又说了句FIN(y)(完成了y),A说ACK(y+1),关闭结束

拓展问题:四次挥手为什么中间两次不能合并?不都是B对A说的吗?

答:因为它中间还可能夹杂着其他的话

UDP(User Data Protocol,用户数据报协议)

UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

1). TCP 面向连接有状态,UDP 无状态

2). TCP 可靠(不丢失不重复),UDP 不可靠

3). TCP 传输效率较低,UDP 较高

解析步骤:

(1).在浏览器中输入 www.baidu.com 域名,操作系统会先检查本地的hosts文件是否有这个网址的映射关系,如果有,就先调用这个IP地址映射,完成域名解析;

(2).如果hosts文件中没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有直接返回,完成域名解析;

(3).如果hosts文件与本地DNS解析器缓存中都没有相应网址的映射关系,首先会查找TCP/IP参数中设置的首选DNS服务器,称为本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户端,完成域名解析,此解析具有权威性;

(4).如果要查询的域名,不由本地DNS服务器区域解析,但该服务器缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性;

(5).如果本地DNS服务器本地区域文件与缓存解析都失败,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是认证来授权管理,并会返回一个负责该顶级域名服务器的IP地址。本地DNS服务器收到IP信息后,将会联系负责.com域的这个服务器。这台负责.com的服务器收到请求后,如果自己无法解析,就会找一个管理.com域的下一级DNS服务器地址( baidu.com )给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找 qq.com 域服务器,重复上面的动作,进行查询,直至找到 www.baidu.com 主机;

(6).如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS胳,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。不管是本地DNS服务器用的是转发,还是根提示,最终都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机;

参考地址: DNS域名解析过程

DNS同时占用UDP和TCP的53端口,进行区域传送时使用TCP协议,域名解析时使用UDP协议;

参考地址: DNS使用TCP还是UDP协议


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/505554.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-17
下一篇2023-06-17

发表评论

登录后才能评论

评论列表(0条)

    保存