深信服测试面试经
问到怀疑人生,觉得自己计算机没学过,目前数据结构还没怎么看,计算机网络也就知道点TCP三次握手挥手,其他了解点Linux命令行,项目做了个SSM秒杀项目,每次问都说每做一步优化,QPS怎么提高多少,不过是慕课网demo,没有,感觉很迷茫,怀疑自己是不是不适合计算机,啥也不会,难受,想跟大家讨论讨论已经秋招开始,大家怎么复习的
自我介绍
项目分析问我秒杀系统,每次做优化,有没有性能指标衡量
计算机网络方面
1. tcp和udp的区别
TCP与UDP区别总结:
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
TCP应用场景:当对网络通讯质量有要求的时候,整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。
UDP应用场景:当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。比如:QQ 语音、QQ 视频 、直播等等
操作系统
2.linux查看进程和线程的命令
查看进程:
1、ps 命令用于查看当前正在运行的进程。
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里 CMD 是 java 的进程信息
2、ps -aux | grep java
-aux 显示所有状态
ps
3. kill 命令用于终止进程
例如: kill -9 [PID]
-9 表示强迫进程立即停止
通常用 ps 查看进程 PID ,用 kill 命令终止进程
3.输入一个URL,但是没有访问到预期的网站,是什么原因?
1.DNS坏掉了,修改自己的IP地址为8.8.8.8试试
2.网络断了
3.服务器拒绝访问
4.请求或者响应在网络传输中途被劫走了
4. 请你说一下在浏览器中输入一个网址它的运行过程是怎样的?
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连接,浏览器对页面进行渲染呈现给客户端。
?
5.访问网页,发生故障,你怎么解决
如果电脑在打开百度等网页的时候失败,如何排查问题出现在哪里?
答:从七层网络的角度进行逐层分析,物理层-即网线有没有连接;数据链路层-即网口的灯有没有亮;某层-可以查询本机的IP地址,根据IP地址和子网掩码的计算结果查看是否和网关在同一子网,还应检查DHCP动态分配的IP地址,看是否和网关在同一个子网;检查本地ARP表中网关的IP地址和MAC地址是否对应
知识点:
OSI七层模型解决网络故障实战思路
物理层故障原因:①设别电源未打开 ②设别电源未接通 ③网络电缆松脱 ④电缆故障 ⑤电缆类型不正确
数据链路层故障原因:①设别驱动程序出错 ②设备没有安装驱动程序 ③设备配置错误
网络层故障原因:①IP地址是否设置正确 ②子网掩码是否正确 ③网关是否正确 ④DNS或DHCP是否正确
网络层常用的排除故障的命令包括:ipconfig命令、ping命令、tracert命令
传输层故障原因:①防火墙设置错误 ②应用程序的TCP的端口是否被打开
会话层、表示层、应用层故障原因:这三层主要涉及使用软件的故障原因,把应用软件设置正确,问题迎刃而解。
6. Linux的启动顺序
Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
内核的引导。
运行 init。
系统初始化。
建立终端 。
用户登录系统。
https://www.runoob.com/linux/linux-system-boot.html
视频面试:
1.自我介绍
课题里仔细问我解决思路,问我课题里关联度分析怎么分析的,原理是什么?
神经网络原理是什么,遇到问题是什么?
这里讲的不清楚,自己都不知道说了啥?
2.秒杀系统,是一个demo.问我为什么做这个秒杀系统,我回答为了练习SSM项目,
2.牛客网有没有刷题
3.有没有做过其他一些demo
场景测开题:
1.多个站点中,揪出所有站点中错误的一个,返回403状态信息
2.1000万玉米,找到里面坏的一根玉米.
回答:查找算法中二分查找法,问我二分查找法,怎么做?
涉及海量数据处理
3.比较访问两个网页的访问错误
答案:
通过谷歌浏览器的开发者工具里(F12),点击NetWork,回车后,查看访问的时间
4.问我有什么想问他的,问题
我要是能加入贵部门,贵部门需要准备那些方面的知识,才能及时入岗,加入贵部门会参与哪些工作!
#深信服##测试工程师##校招##面经#