中兴技术面被怼面经

链接:https://www.nowcoder.com/discuss/113126

目录

1.介绍一个自己做过的项目

2.针对上述项目,用过哪些框架

3.实现哪些功能

4.常用的数据结构,红黑,搜索,查找…没深问

5.常用网络协议,arp.dhcp…

6.如何获取ip,考察dhcp

7.一层交换,二层交换,三层交换

8.敏捷开发

9.最新开发软件开发技术

10.软件开发团队角色

11.scrim团队角色,没听过

12.常用测试工具​


1.介绍一个自己做过的项目

2.针对上述项目,用过哪些框架

3.实现哪些功能

4.常用的数据结构,红黑,搜索,查找…没深问

https://blog.csdn.net/strawqqhat/article/details/88613993

5.常用网络协议,arp.dhcp…

WIFI associatiion成功后的操作和Ethernet差不多,ARP和DHCP是其中两个2个常用协议。

ARP:

a、作用是把IP地址转换为对应的Ethernet MAC地址。

b、在BSD-style OS,每条ARP entry在ARP表里的时间是20分钟。

c、在得到任何ARP reply前,PC可以连续75秒发ARP requests。具体时间和实现相关。

d、Gratuitous ARP(免费ARP)包括gratuitous ARP request和gratuitous ARP reply,但gratuitous ARP reply很少见。Gratuitous ARP request源IP和目的IP一样都是发送PC的IP,目的MAC是ff:ff:ff:ff:ff:ff的广播地址。这种ARP主要用于检测IP冲突,更新其他PC的ARP表。如有些OS在booting up或改了IP时,会发这种ARP告诉大家。
 

DHCP

DHCP用来从DHCP server得到IP地址。DHCP server使用UDP端口67,DHCP client使用UDP端口68。 完整的过程如下:

DHCP discovery
DHCP客户端发DHCP discovery广播包。

DHCP offer
DHCP server回复IP地址,掩码,lease时间等信息。

DHCP request

DHCP client可能收到好几个从不同server来的DHCP offer,发送broadcast request让大家知道client接受了哪个server来的IP。

DHCP client也可能直接发DHCP request去要原来用过的IP。如果还在原来的网络,DHCP server可能回复成功。 如果不是原来的网络,那么Authoritative DHCP server会直接拒绝请求;Non-authoritative DHCP server会忽略这个请求,DHCP client会超时(timeout时间看具体实现),然后发DHCP discovery。

DHCP acknowledgement
DHCP server ACK.  DHCP client会按照协商的参数配置网卡。得到IP后,通常DHCP client会用ARP broadcast来确认没有IP冲突。

DHCP获得IP的过程,通常是client先发DHCP request broadcast,来请求使用以前用过的IP地址。 如果DHCP client和server不在同一个子网,可能会用到DHCP Helper or DHCP Relay Agent。

DHCP lease renew会给DHCP server发unicast DHCP request。

典型的DHCP过程wireshark capture如下:

对于Apple设备,它们会先给history记录中的各个网络,发unicast ARP request包,测试相关网络是否存在,如果收到ARP reply,那么macbook目前就在此网络,直接发DHCP request要以前在这个网络时的IP地址。 发一定数量的ARP request,没有ARP reply,就换下个网络。 最后还是没有发现以前的网络,就发DHCP discovery,来一遍完整的DHCP获得IP流程。

6.如何获取ip,考察dhcp

在上一篇博客中计算机之间是如何进行通信的?;详解三次握手和四次挥手,我们对下面这个图片中的参数进行了一些解释。下面我们来解释下,不去手工配置,我们是如何的动态的获取到这些信息的。 
目录

远古DHCP服务运行过程
现行DHCP服务
远古DHCP服务运行过程
客户端发现服务器 
电脑的操作系统安装了TCP/IP协议栈,这个协议栈包括了一个DHCP客户端进程,这个客户端会广播一个发现服务器的报文。类似于我们找工作的时候海量投简历
服务器响应客户端 
可能会有多个服务器响应这个发现报文,各个服务器从自己对 ip地址池里面选出合适的ip地址,子网掩码等参数,以单播方式发送给客户端。 
类似于投简历之后有多个公司回应你的简历
客户端请求ip参数 
当客户端收到这么一堆回复之后,从中挑选了一个合适的服务器,并发送请求报文,请求服务器提供的Ip参数。 
好比我们收到了众多公司的面试通知,但是我们只选择去了一家
服务器确认请求 
服务器收到客服端的请求后,发送确认。 
相当于找工作最后面试成功
现行DHCP服务
通过上面的叙述我们知道,要想让DHCP能够实现正常工作,我们至少需要一个网段有一个DHCP服务器,但是很明显这是不可能的,网络有成百上千万,难道我们需要成百上千个服务器吗? 
我们需要引入一种机制,叫做中继代理的机制 

如图所示,利用这种机制,我们就可以使一个服务器为多个网络提供服务。 

中继代理转发个人PC的请求,将广播的发现报文转发给DHCP服务器,同时DHCP服务器从地址池里面选取合适的ip参数然后转发给中继代理,代理再转发给个人pc,这样就实现了DHCP的自动分配网络的设置。

7.一层交换,二层交换,三层交换

一层交换机_二层交换机_三层交换机的区别?
简单地说:
一层交换机只支持物理层协议(电话程控交换机可以算一个)
二层交换机支持物理层和数据链路层协议,如以太网交换机
三层交换机支持物理层,数据链路层及网络层协议,如某些带路由功能的交换机。二层交换机 和集线器HUB实现的功能差不多, 不同的地方就是 交换机实现独享带宽,也就是说你不是每时每刻都在和互联网连接的; 但是你连接的时候你的带宽就是网线带宽;(HUB与SWITCH的根本区别);
四层交换机它是一种功能,它决定传输不仅仅依据MAC地址(第二层网桥)或源/目标IP地址(第三层路由),而且依据TCP/UDP(第四层) 应用端口号。第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。

二层交换机是没实现三层的功能!~~就是不转发多网段的数据;VLAN 三层交换机 就是二层交换机 加了路由功能; (2/层交换机的根本区别)
三层交换机能转发多网段的数据,路由器转发数据是基于IP地址进行转发的!!而交换机是基于MAC地址转发的!!
就是让基于MAC地址转发的交换机实现基于IP地址转发!!!这个就是三层交换机
从ISO/OSI的分层结构上说,交换机可分为二层交换机、三层交换机等。二层交换机指的就是传统的工作在OSI参考模型的第二层–数据链路层上交换机,主要功能包括物理编址、错误校验、帧序列以及流控。一个纯第二层的解决方案,是最便宜的方案,但它在划分子网和广播限制等方面提供的控制最少。传统的路由器与外部的交换机一起使用也能解决这个问题,但现在路由器的处理速度已跟不上带宽要求。因此三层交换机、Web交换机等应运而生。
三层交换机是一个具有三层交换功能的设备,即带有第三层路由功能的第二层交换机,但它是二者的有机结合,并不是简单地把路由器设备的硬件及软件叠加在局域网交换机上。
四层交换机也叫Web交换机是为数据中心设备(包括Internet服务器、防火墙、高速缓冲服务器和网关等)提供管理、路由和负载均衡传输。不同于传统网络设备的是,传统网络设备注重高速完成单个帧和数据包的交换,而Web交换侧重于跟踪和处理Web会话。除了由传统第二/三层交换机所提供的连接和封包路由外,Web交换机还可提供传统局域网交换机和路由器所缺乏的完备策略,将局部和全球服务器负载均衡、存取控制、服务质量保证(QoS)以及带宽管理等管理能力结合起来。目前,Web交换机已由纯粹的传输层(第四层)设备发展到具有基于内容(第七层)的交换的智能。利用内容或用户分类进行Web请求重定向是Web服务器的一项功能。不过,Internet传输和商业的发展远远超过计算机处理能力的提高。把内容分类卸到Web交换机可平衡整个网站的基础设施。
4层交换机交换功能就象是虚IP,指向物理服务器
3层交换机是带路由功能的交换机。
2层的是基于MAC地址访问的。

交换机目前常见有两种,
一是2层交换机,也就是我们见的最多的那种,基于MAC,2层快速交换,所有的接口同在一个广播域.
第二种就是您说的3层交换机,3层交换机顾名思义,也就是可以起用路由功能.3层交换机早期的需要一个MSFC(多层交换特性卡)来支持3层路由功能,现代的3层交换机都集成了此功能.
例子1_二层交换机:
楼层一 楼层二分别有两台2层交换机,他们之间可以划分VLAN,做策略来进行通讯,但是如果说,楼层1的交换机和楼层2的交换机不在同一VLAN,而他们之间又要互相通讯,那么就需要通过路由器来做路由功能.
例子2_三层交换机:

如上,如果说还有更多楼层,更多交换机,那么只需要一个3层的核心交换机就可以取代路由器了.
3层交换机的原理很简单:1次路由多次交换.

解释:在广域网中,当然跑的都是3层数据包(被路由的),而路由需要确定每次源到目的的最优路径,每次都要重新进行选择,而如果您使用3层交换机,就可以第一次进行源到目的的路由,3层交换机会将此数据转到2层,那么下次无论是目的到源,还是源到目的都是进行快速交换.

注意:
3层交换机有路由功能,但不能完全取代路由器,因为基础原理并不相同.
3层交换机从某种意义上来说会比路由器策略转发快的多!
3层交换机能很方便的节约网络资源,防止拥塞现象.
 

8.敏捷开发

见第三部分

https://blog.csdn.net/strawqqhat/article/details/88344830

9.最新开发软件开发技术

10.软件开发团队角色

一般一个团队中包含一下这些分工角色:技术总监、项目经理、项目助理、系统分析、产品经理、leader,主程、辅程、测试、美工,DBA等,他们的大致职责描述如下。

  1. 技术总监
    对系统方向和团队中一些决策性的事进行管理,包括日常事务,虽然他不需要编码,但能担任技术总监,这冷对不是拿来显摆的,他肯定是经历了设计开发,产品的实施,并系统的战略性发展都有相当的见解,对整个系统的所有流程都面面具道,不单单局限于技术层面,因为他需要主导整个团队运作。
  2. 项目经理
    对系统进度的控制,风险评估进有把控,工作任务的分配,项目中日常事务调配,人员配置,具有一定的的沟通能力
  3. 项目助理
    对会议、文档、日常事务的跟踪进行管理,别以为这个只是助理一职,这个职务在整个项目中,启着至关重要的位置,她贯穿于团队中每个职务之中,其它职务是针,她就是一根线,她可以对项目中每个人的工作进行监控、总结和传达任务。
  4. 系统分析
    对系统进行构架设计、技术评估、开发环境,编写概要设计文档与设计规范文档,对各类技术点进行分析,要求技术全面,并掌握熟练,有丰富的项目经验,在各种环境下,给出最佳的解决方案。
  5. 产品经理
    对系统功能需求分析、用户体验设计,编写需求文档,如果我们接到任务,我们的产品需要做哪些功能,产品经理必须给出需求,将功能项目实际的列举出来,不但要知道自己做什么样的东西,还要了解我们做出来怎么用,分析产品在实际运营中的一些需求,制定项目的功能开发阶段,现在一般的开发团队中还没有这个职位,其实这个职位对一个产品的好坏影响很大,我们在产品开发完成后,常常遇到一个问题,就是产品刚出来就感觉已经落后了。
  6. Leader
    管理项目组成员、技术难点分析,编写详细设计文档,技能特色很突出,有创新能力,不是什么都是从网上拿下来一改就用的,其它方面都可以讲出一二,对行业内的动态都很关注,有一定的交际能力。
  7. 主程
    熟练相关开发技术,负责项目的核心模块开发,编写模块设计文档,不需要培训就可以直接进入开发状态,是团队模块开发引领者和衔接者,一般经历过几个项目的人都可以担当。
  8. 辅程
    能开发一些简单的模块,在技术上需要提高,也需要一些个性偏好,这个职位,在招聘的时候我感觉是最好招的,现在大部程序员都喜欢写后台代码,逻辑思维强,写服务、API代码比较好,在招聘的过程,我看到很多人的能力很全面,做小型项目外包都没问题,一人个将所有的事都可以做下来,但大多事都是点到即止,所以在面试时,我问的问题大多都答不上来,答不上来的不要紧,我只要你答的上来的,每个人应该有特色,所以在职责定位时,我都会问三个问题,你最擅长什么,你觉得可以拿出来秀的是什么,你希望你在团队中能做什么样的工作,在面试的过程中,我发现有很多全面的人反而很难回答这三个问题,他们感觉什么都会,都差不多,这类人,放在团队中培养最好,什么都了解一点,很容易上手,前台编写人员我都是从这群人中培养出来的,这样对项目对他个人发展都好,,如果薪酬能谈下来,他们能接受,我会被安排在铺程的位置,往往会带来很多的惊喜,他们的职位很快得到提升,我还发现一个问题,写后台代码的人经过一段时间后,职业发展都有些瓶颈,而前台人员是越走走顺,现在在我们团队中,好的前台编写人员的薪资都快达到leader的标准,在招人的时候,一个好的前台也是最难招的,主要是现在行业内注重用户体验的人软件企业相对来说还是少了些。
  9. 测试
    完成测试用例,文档,编写测试文档
  10. 美工
    设计UI、规范,切割并排好界面,在招聘的过程中,有很多美工只懂设计切割,但我们要求的不仅仅是这样,但现在招个这块能独挡一面的很难,会设计还要什么html, css,js,还要等一些接口规范,有很多美工怕写代码,我们与遇到这样的问题,所以在招聘的时候招了两个,一个设计切割,一个排版处理,两个结合处理
  11. DBA
    搭建好数据库环境,准备数据规范,更新数据以及数据文档,对数据系统性能分析、迁移、管理等工作。

11.scrim团队角色,没听过

12.常用测试工具

原文地址:https://www.cnblogs.com/strawqqhat/p/10602207.html