美文网首页
DNS 与 TCP

DNS 与 TCP

作者: sweetBoy_9126 | 来源:发表于2021-09-28 21:02 被阅读0次

DNS 与 hosts

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

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

TCP 连接

建立连接-三次握手

上面浏览器拿到对应域名的 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说的吗?
答:因为它中间还可能夹杂着其他的话

TCP 和 UDP 的区别是什么?

UDP(User Data Protocol,用户数据报协议)
UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
1). TCP 面向连接有状态,UDP 无状态
2). TCP 可靠(不丢失不重复),UDP 不可靠
3). TCP 传输效率较低,UDP 较高

相关文章

网友评论

      本文标题:DNS 与 TCP

      本文链接:https://www.haomeiwen.com/subject/pmdrnltx.html