深信服面经

12/15/2020 面经

深信服网络安全2020年09月14日星期一12:47:05 CST

1.简单的介绍一下自己擅长的技能

2.工作中主要还是做c/c++是吗?json也是用c/C++写的吗?

3.c/C+ + static的使用场景是什么?

4.C++为什么要使用extern C ,才能调用c文件的内容?<

5.定义局部数组和直接使用new/malloc分配的内存有什么不一样?

6.栈上面分配数组最大可以分配多少内存?

7.free/delete是如何知道需要释放的内存段有多大?◆

8.空指针和野指针的区别?

9.场景, 2个线程分别有2个指针, p1, p2 ,都指向了同一-片内存,现在释放掉p1 ,内存已经被释放了,但是现在p2也要释放内存, 这个时候会出问题吗?怎么解决? ( 引用计数,互斥锁,无锁cas

10.通常计算字符串长度使用strlen , sizeof能计算字符串的长度吗?

11.算法题,判断一个数是否是2的n次方

12.进程和线程的区别

13.案例题,你需要综合考虑;多核cpu场景,使用多线程的场景去设计数据的手法,数据的计算,整体协调的效率达到最大。简单的当做网络接口的接收和

发送 epoll 线程池 协程

14.tcp和udp的区别

15.socket套接字变成,服务器端都有哪些函数,功能是什么

16.网络编程,网络协议栈有没有了解

17.类似于epoll这样的技术,你是如何学习的?

18.除了c/c+ +平时还接触其他语言吗?

19.go语言有接触过吗?

深信服二面2020年09月16日星期三14:33:02 CST

1.用什么语言来做的这个服务器?

2.(啊?怎么用c/c+ +来做? )并发能有多少?

3.我觉得20w比较悬,能做到20w并发不太可能

4.有没有做断点续传的功能,闪存(秒传)的功能,如何做的?

5.你们是提供给别人sdk吗?

6.如何验证文件的md5值,细节?

7.如果用http chunk编码的方式如何做?

8.全部都用你的客户端上传文件,你没有办法控制文件的格式和安全的?

9.浏览器想去在线打开你的文件,你为什么不支持chunk编码的方式?

10.你理解http的chunk编码吗?

11.鉴权如何做,用户权限是如何做的?

12.上传文件带了哪些验证信息,具体技术实现细节?

13.上传文件,二进制流你也是放在json里面吗?

14.我是黑客的话就不按你的流程走,直接把文件传到你的服务器里面,这个怎么办?

15.token是明文的话,很容易被别人拿到,这个是很不安全的,如何处理?

16.token的做法,文件上传的做法,需要说的更加清楚和细节-一些

17.这样做不行,如果不对上传文件做校验的话,这样做是有问题的,是存在漏洞的

18.http明显有一个auth的字段为什么不用 ,你现在做的这样是不合理的

19.你还有做过其他的一一些项目吗,互联网的

20.有做过linux内核网络层的项目开发吗?

21.网络通信这一块有别的项目经验吗?自己去做的scoket项目有吗?

22.socket阻塞和非阻塞有什么区别?如何写?

23.recv返回-1有哪几种情况要处理?

24.看你还做了linux内核移植的,是做过内核的编程呢还是编译?

25.有把哪一一个开源技术研究的比较深的经历吗,搞的比较透的那种?

26.做的项目过程中,有没有遇到最困难,最难查的bug ,如何解决的?我是要看你解决问题的深度

27.你说的这些都是基本的调试技术,这是必须会的,你有让你印象比较深刻的很难的

28.你看下你那边还有什么项目可以证明你能力的?

29.你在网络这一块相对比较有经验-点对吧,网络编程这一块

30.有兴趣学其他的语言吗?比如go语言, python语言

31.介绍一些你过往比较快学习- 一个技术且掌握的案例吗?

32.有看过哪些书籍?看看你的学识能力

我问的问题

1.这个岗位核心技能是网络相关的技能还是安全的技能

●大部分主要还是网络这一块的,对内核的编程要有一些了解,应用层的编程也是需

●刚才和你说的chunk编码类似的会用到openssl做加密,你对openssI有了解过吗

●要对网络层的各种协议要搞的很熟,例如gre ,例如unix网络编程, tcp/ip详解