大家好,我是薄荷,大四应届毕业狗一枚,学了四年计算机网络,参加了行业内几个某知名网络公司某服的技术岗面试,在这分享一下遇见的面试题。
-
先是自我介绍
-
然后面试官针对简历询问了我的校园经历
-
接着就向我提问了一些简单的网络基础问题,分享一下吧
第一家公司技术题
问题一:什么是 VLAN?VLAN 技术的作用;Trunk 和 Access 接口有什么区别?
答:VLAN虚拟局域网,就是将一个大的物理局域网在逻辑上划分成多个小的局域网,也就是划分VLAN,主要用于隔离广播域。
(1)Access端口:交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。
Access端口收到数据帧后会添加VLAN Tag,在转发数据前会移除VLAN Tag。
(2)Trunk端口:交换机上用来和其他交换机连接的端口,也可用于连接路由器、防火墙等设备的子接口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。
Trunk端口收到数据帧时,如果数据帧不包括Tag,会添加端口的PVID,如果已经包括了Tag,则不变化。
Trunk端口发送数据帧时,若该帧的VLAN ID在允许发送列表中:若与端口的PVID相同则剥离Tag发送;若不同则直接发送。
问题二:TCP 的三次握手是怎么回事?
答:TCP是一种可靠的传输控制协议,在建立连接时有一个过程,这个过程通常会被称为三次握手。建立过程如下:
第一步,客户端(发送端)会主动连接服务器(接收端),发送SYN包,发送序列号s为x,同时进入SYN-SEND状态,等待服务器确认;
第二步,客户端收到SYN包,确认客户的SYN,并自己发送一个SYN包,服务器进入SYN-RECV状态。
第三步,客户端收到服务器的SYN包,向服务器发送确认包ACK。发送完毕后,客户端和服务器同时进入ESTABLISHED状态,完成三次握手,建立连接。
问题三:RIPV1 与 RIPv2 有什么区别?
答:路由信息协议,是一种内部网关协议,是基于距离的路由协议。有两个版本RIPV1和RIPV2,区别主要是:
(1)RIPv1 属于有类路由协议,路由更新时不携带子网掩码。采用接口掩码为网络默认掩码。因此 RIPv1 不支持不连续的子网,RIPv2 属于无类路由协议,路由更新时携带子网掩码。支持不连续的子网掩码
(2)路由通告更新的方式:RIPv1 广播更新(255.255.255.255),RIPv2 组播更新(224.0.0.9)
(3)RIPv2 支持触发更新 ,RIPv1不支持;
(4)RIPv2 支持认证 ,而 RIPv1 不支持。
问题四:OSPF 有哪些网络类型,分别有什么特点?
答:OSPF 网络有四种类型:点对点网络、广播型多路访问网络、非广播型多路访问网络、点对多点网络
(1)点对点网络:是指该接口通过点到点的方式与一台路由器相连 ,不需要 DR 和 BDR的选举,如链路协议是PPP时,OSPF网络默认类型就是点对点型,这种网络HELLO报文每隔10S发送一次;
(2)广播型多路访问网络:是广播型网络,它需要选取 DR 和 BDR,如当链路层协议是FDDI时,OSPF网络默认类型就是广播型,它的HELLO 报文间隔时间为 10秒;
(3)非广播型多路访问网络:指一个接口可以到达多个目的节点,但是网络本身不支持广播功能,需要选取 DR 和 BDR,由于底层不支持广播能力,因此需要通过 neigbor 命令手动指定邻居, 采用单播建立邻居,如链路层协议是帧中继时,OSPF网络默认类型就是非广播型,HELLO报文发送间隔时间为 30秒;
(4)点对多点网络:是指该接口通过点到多点的网络与多台路由器相连。没有一种链路层协议会被缺省地认为是点到多点类型,需手动更改网络类型,无 DR 和 BDR 的选举,HELLO报文发送间隔时间为 30秒。
第二家公司技术问题
问题一:请问你对 ARP 协议有什么了解?
答:地址解析协议,是一种通过IP地址来获取对应MAC地址的TCP/IP协议,它的工作原理主要是,在一个广播域内,设备知道目标IP,但不知道目标MAC地址,就会发送ARP Request广播,所有设备收到广播后匹配是不是自身IP,不是则抛弃,如果匹配则会将arp包中sender ip和sender mac两个字段记录到自己的ARP缓存中,然后做出响应发送ARP Reply包,将自己的MAC地址告知源设备。
问题二:你对 OSPF 路由协议有什么了解?
答:OSPF开放式最短路径优先是一种动态路由协议,属于内部网关协议,是基于链路状态算法的路由协议。有五种报文:hello报文,用于发现和维护邻居关系;DD报文是LSDB的摘要;LSR报文请求特定链路状态信息;LSU发送详细的链路状态信息;LSAck发送确认报文。OSPF通过划分区域的方式管理运行,分为骨干区域(区域0)和非骨干区域 。OSPF有四种网络类型:点到点网络、广播型多路访问网络、非广播型多路访问和点到多点网络。有七种状态:Down、Init、Two-way、Exstart、Exchange、Loading、Full。
OSPF运行原理:
-
OSPF以组播的方式在所有开启OSPF协议的接口发送Hello报文,用来查看是否有OSPF邻居;
-
发送Hello报文之后,若发现邻居则建立OSPF邻居关系,形成邻居表项;
-
建立邻居表后,向各邻居发送LSA报文相互通告路由,形成LSDB(链路状态数据库);
-
基于LSDB,通过SPF(Shortest Path First)算法,计算最佳路径(cost度量值最小)后放入路由表中。
问题三:DHCP 有几个阶段,发送什么报文?如何工作?
答:DHCP动态主机协议,是一个局域网的网络协议,通常用来给内部网络或网络服务供应商自动分配IP地址,或者给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
它有三种地址分配方式:自动分配,DHCP给主机指定应该永久的IP地址;动态分配,DHCP给主机指定一个有时间限制的IP地址,到时间或主机明确表示放弃这个地址时,这个地址可以被其他主机使用;手工分配,由网络管理员指定,DHCP
只是把指定的IP地址告诉主机。
客户端通过DHCP申请地址时有四个阶段:发现阶段,客户端广播发送DHCP Discover查找可用的DHCP服务器;提供阶段,DHCP服务器收到DHCP Discover包后发出DHCP Offer进行响应,并指定相应的配置参数;选择阶段,客户端向收到的第一个Offer包的服务器发送DHCP Request请求配置参数;确认阶段,DHCP服务器向客户端发送DHCP ACK,里面包括配置参数和IP地址。
当客户端地址租期时间过了50%,会向已签约的DHCP服务器单播发送DHCP Request进行续约,则 DHCP 服务器回应 DHCP-ACK 报文,通知 DHCP 客户端已经获得新 IP 租约,如果此 IP 地址不可以再分配给该客户端,则 DHCP 服务器回应 DHCP NAK 报文,通知 DHCP 客户端不能获得新的租约。如果在租期时间过了50%时续约失败,客户端会在租约过了87.5%的时候再一次发送DHCP Request进行续约。
第三家公司技术问题
面试官:讲一下OSI和TCP/IP模型吧
我:那我先说一下OSI开放互联参考模型,由国际化标准组织ISO发布的,也被叫做七层模型。从上往下分别是,应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。我说一下它们的功能
-
应用层:是最高的一层,主要是为应用程序提供网络服务,常见的协议有DNS域名系统、FTP文件传输协议、SMTP简单邮件传送协议、HTTP超文本传输协议、SNMP简单网络管理协议;
-
表示层:主要给数据进行编码和转换,加解密工作;
-
会话层:负责建立、管理和释放会话;
-
传输层:提供面向连接或非面向连接的数据传递以及进行重传前的差错检测,实现端到端的数据传输,常见的协议如TCP传输控制协议、UDP用户数据报协议;
-
网络层:主要负责路由选择和数据转发,常见的协议如ICMP网络控制报文协议,VRP地址解析协议,RVRP逆向地址解析协议;
-
数据链路层:负责将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用 MAC地址)来访问介质,并进行差错检测,如帧中继网络;
-
物理层:在物理媒介上面传输比特流;
TCP/IP模型,本身是四层,但是我们进行分析的时候通常会分成五层,从上往下分为,应用层、传输层、网络层、数据链路层、物理层
-
应用层:为应用软件提供接口,使应用程序能够提供网络服务,应用层协议会指定使用相应的传输协议以及使用的端口号,如HTTP端口号80,SMTP端口号25,应用层上的协议数据单元是Data,;
-
传输层:实现端到端的连接,传输层上的PDU协议数据单元是Segment;
-
网络层:负责数据从一台主机到另一台主机之间的传递,网络层上的PDU是Packet;
-
数据链路层:向网络层的IP协议提供服务,数据链路层上的PDU是Frame;
-
物理层:负责物理上的数据传输,物理层上的PDU是Bit。
面试官:比如说,我现在要访问公司官网,计算机是如何进行处理的?
我:比如我在IE浏览器里面输入官网地址:
1. 首先IE浏览器(应用程序)调用HTTP(应用层协议),完成应用层数据的封装
2. HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传递到TCP模块。
3. TCP模块给应用层传递下来的Data添加上相应的TCP头部信息。此时在传输层,PDU为Segment。
4. 在IPv4网络中,TCP模块会将封装好的Segment传递给网络层的IPv4模块(若在IPv6 环境,会交给IPv6模块进行处理)。
5. IPv4模块在收到TCP模块传递来的Segment之后,完成IPv4头部的封装,此时为网络层,则 PDU被称为Packet。
6. 由于使用了Ethernet作为数据链路层协议,故在IPv4模块完成封装之后,会将 Packet交由数据链路层的Ethernet模块处理。
7. Ethernet模块在收到IPv4模块传递来的Packet之后,添加上相应的Ethernet头部信 息和FCS帧尾,此时在数据链路层,则PDU被称为Frame。
8. 在Ethernet模块封装完毕之后,会将数据传递到物理层。
9. 根据物理介质的不同,物理层负责将数字信号转换成电信号,光信号,电磁波信号等。
10. 转换完成的信号在网络中开始传递。
数据会一层一次进行封装处理,封装好的完整数据会在网络中被传递,接收方收到数据后根据不同的协议头部信息进行一层一层的解封装操作。
面试官:你知道为什么要进行分层吗?
(1)分层之后可以使各个层次分工明确,有助于各个部件的开发、设计和故障排除。
(2)通过定义在模型的每一层实现什么功能,鼓励产业的标准化。
(3)通过提供接口的方式,可以使各种类型的网络硬件和软件能够相互通信,提高兼容性。
-
接着就问了我为什么会选择在这个城市工作?对于加班怎么看?薪资待遇有什么要求之类的问题,想必大家之前也遇见过这种问题。
重点
之后就是反问环节了,反问环节是一个不能错过的机会,问题问的好可以给自己的面试加分的,我问的是公司未来发展前景和公司如何保障人才不流失。
几天之后,人事那边就来了电话询问我是否能够尽快入职,聊一些细节问题。
建议收到offer后不要马上回复,可以留一段时间考虑考虑,即使最后不去入职也要跟HR委婉的说清楚。
以上的问题和回答就是我面试的时候面试官问的我的技术题,我就是这么回答的,大家可以做一下参考,在回答面试官问题的时候,先从问题的关键点开始说,再慢慢进行扩展,可以多说一点知识点(在不说错的前提下),每次的面试之后都可以对自己进行一个总结,为下一次的面试做准备。