首页 > 其他分享 >网络-高频面试题-2

网络-高频面试题-2

时间:2022-10-28 13:02:03浏览次数:60  
标签:面试题 三层 MAC 网络 域名 交换机 地址 服务器 高频


文章目录

DNS域名解析器

主机到本地服务器 —> 采用递归

www.baidu.com域名 --> 本地的hosts文件 --> DNS域名解析器 —> 本地DNS服务器 —> 根域名服务器

本地服务器到根域名 —> 迭代

根域名服务器会告诉本地域名服务器去查询哪个顶级域名服务器

本地服务器–> 顶级 顶级说去哪个权限域名服务器

本地服务器–> 权限 权限告诉本地域名服务器相应的www.baidu.com所对应的IP地址。

本地域名服务器告诉主机 www.baidu.com所对应的IP地址。

APR地址转换协议

网络-高频面试题-2_java

网络-高频面试题-2_域名服务器_02

seq序号

ack 确认号

syn 链接

fin 断开链接

一次完整的HTTP请求过程:

1.首先进行域名解析,域名解析具体过程讲一下: 应用层

  • 浏览器搜索自己的DNS缓存,缓存中维护一张域名与IP地址的对应表;
  • 若没有,则搜索操作系统的DNS缓存;
  • 若没有,则操作系统将域名发送至本地域名服务器(递归查询方式),本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则,通过以下方式迭代查找:

本地域名服务器向根域名服务器发起请求,根域名服务器返回com域的顶级域名服务器的地址;

本地域名服务器向com域的顶级域名服务器发起请求,返回权限域名服务器地址;

本地域名服务器向权限域名服务器发起请求,得到IP地址;

  • 本地域名服务器将得到的IP地址返回给操作系统,同时自己将IP地址缓存起来;
  • 操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来;
  • 至此,浏览器已经得到了域名对应的IP地址。

2.浏览器发起HTTP请求;应用层

3.接下来到了传输层,选择传输协议,TCP或者UDP,TCP是可靠的传输控制协议,对HTTP请求进行封装,加入了端口号等信息;

4.然后到了网络层,通过IP协议将IP地址封装为IP数据报;然后此时会用到ARP协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址,找到目的MAC地址;

5.接下来到了数据链路层, 交换机 把网络层交下来的IP数据报添加首部和尾部,封装为MAC帧,现在根据目的mac开始建立TCP连接,三次握手,接收端在收到物理层上交的比特流后,根据首尾的标记,识别帧的开始和结束,将中间的数据部分上交给网络层,然后层层向上传递到应用层;

6.服务器响应请求并请求客户端要的资源,传回给客户端;

7.断开TCP连接,浏览器对页面进行渲染呈现给客户端。

当前读,快照读和MVCC的关系

MVCC 多版本并发控制是 「维持一个数据的多个版本,使得读写操作没有冲突」 的概念,只是一个抽象概念,并非实现
因为 MVCC 只是一个抽象概念,要实现这么一个概念,MySQL 就需要提供具体的功能去实现它,「快照读就是 MySQL 实现 MVCC 理想模型的其中一个非阻塞读功能」。而相对而言,当前读就是悲观锁的具体功能实现
要说的再细致一些,快照读本身也是一个抽象概念,再深入研究。MVCC 模型在 MySQL 中的具体实现则是由 3 个隐式字段,undo 日志 ,Read View 等去完成的,具体可以看下面的 MVCC 实现原理
MVCC 能解决什么问题,好处是?

数据库并发场景有三种,分别为:

读-读:不存在任何问题,也不需要并发控制
读-写:有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读,不可重复读
写-写:有线程安全问题,可能会存在更新丢失问题,比如第一类更新丢失,第二类更新丢失

MVCC 带来的好处是?

多版本并发控制(MVCC)是一种用来解决读-写冲突的无锁并发控制,也就是为事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。 所以 MVCC 可以为数据库解决以下问题

在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,提高了数据库并发读写的性能
同时还可以解决脏读,幻读,不可重复读等事务隔离问题,但不能解决更新丢失问题

一、二层交换机

1、基本作用
交换机工作在二层,可以用来隔离冲突域,在OSI参考模型中,二层(数据链路层)的作用是寻址,这边寻址指的是MAC地址,而交换机就是对MAC地址进行转发,在每个交换机中,都有一张MAC地址表,这个表是交换机自动学习的,所以,总得来说交换机的作用是寻址和转发。

2、基本功能
(1) 无限的传输距离
(2)提高端口密度—可以增加更多的接口
(3) 彻底解决了冲突—所有的接口可以同时收发数据
(4) 二层单播—物理寻址,在一个交换网络内,实现一对一通讯,保障了数据的安全,减少了垃圾数据量,降低的转发延时;

3、工作原理

转发机制:

流量进入交换机后,先识别数据帧中的源MAC地址,然后将该MAC地址与该流量的进入接口进行绑定、记录,生成MAC地址表——再转换为CAM表
然后查看数据帧中的目标MAC地址,在CAM表中寻找对应的记录,若存在记录,按记录接口单播转发;
若没有记录将洪泛该流量; 洪泛——除流量的入口外其他所有出口复制;
默认CAM在一个mac最后出现之后300s将被删除;
注:MAC地址表和CAM的区别------CAM是将MAC表中的MAC地址+接口编号+vlanid转换为hash值,再转换为二进制;意义在于识别更快;

二、三层交换机

三层交换机与二层交换机相比是可以处理三层数据的,可以识别三层数据包.
“一次路由,多次交换”基本概括了三层交换机的原理,通过这句话可以把三层交换机剖析清楚。

1、工作原理

当一个三层数据包进入三层交换机以后,会查看路由表,即“一次路由”,查找出接口和下一跳,之后会找到下一跳的MAC地址,进行二层封装的变换,和三层设备即路由器的本质是一样的(三层的本质:是把一个子网的MAC迁移到另外一个子网,不同子网的MAC不可能会出现在同一个包的源目MAC上,把原有的二层封装去掉,封装上新的MAC地址,源是出接口的MAC地址,目的是下一跳的MAC地址,此时新的二层封装形成,数据包转发出设备),完成一次“路由器”的工作
如果找不到下一跳的MAC地址,进行ARP洪范,再找不到就丢弃。在做二层封装的时候,因为有目标MAC的存在,所以也可以说是三层的目标IP最后会映射到目标MAC上,此时会形成一个目标IP和封装目标MAC的映射,而三层交换机具有二层交换机的功能,则此时就形成了三层到二层的一个映射,转发一定是要找到接口,通过IP找到MAC,通过MAC找到对应出接口,这就相当于形成了一个IP的MAC表,那么三层IP进来以后就直接会找到对应的出接口,数据包就不需要再查看数据表,只需要变换一次二层封装就可以了。

2、工作过程

三层路由器的工作顺序就是:数据包进来—查看路由表—变换二层封装—数据包出去,三层交换机帮助路由器节约了一步,就是查看路由表的步骤,此步骤的省略会节约大量的时间,简化工作过程,即“多次交换”,一个IP对应一个接口,就和二层交换机的MAC表有一些类似了,是一种交换能力,省略了路由器递归查找的环节,这就是三层交换机的工作过程。

总的来说,三层交换机最突出的地方就是

“一次路由,多次交换”
第一次路由本质上找到了IP和接口的对应关系
直接利用IP和接口的对应关系进行数据交换,省掉了查找路由表的环节。
注:本质上三层交换机和路由器还是有一些区别的,三层交换机因为帮助路由器省掉了查找路由表的环节,所以工作速度会比路由表快


标签:面试题,三层,MAC,网络,域名,交换机,地址,服务器,高频
From: https://blog.51cto.com/u_15850876/5804540

相关文章