百度网络研发二三面面经
HR小姐姐说提前批今天结束,然后安排今天早上全部面完。
面的系统部网络研发岗,这边三轮下来全程都问网络,OS、语言都没问,面试过程还是很好的,面试官会不断地引导和提示。
(吐槽一下,面试的时候才知道投的岗位没有深圳,只有北京上海,那为啥官网上还能选,这算不算虚假宣传...)
二面面经(技术面,视频没开摄像头,1h)
1.项目介绍
(1)应用层有成熟的协议,比如HTTP,为什么还用socket来传输数据?(如果使用HTTP,其首部开销比数据本身还大)
(2)如何判断TCP数据读完了没有?(每次先读固定字节的长度字段,然后再读数据)
2.网络
(1)TCP三次握手介绍下?
(2)accept函数返回的时候,客户端和服务器都是什么状态?(都是ESTABLISH状态)
(3)第三次握手ACK丢包会发生什么?(若客户端不发数据,那么服务器第二次握手消息得不到确认,超时重传,重传次数超过阈值都没收到ACK则关闭连接)
(4)接(3),客户端这边发送数据,服务器接收会有什么问题?(1.如果在服务器SYN_RECV状态超时关闭连接之前,收到了客户端的数据,那么这个数据是带有ACK标志的,可以直接对服务器的第二次握手进行确认,使得服务器状态从SYN_RECV进入ESTABLISH状态。2.如果服务器超时关闭连接后才收到数据,直接丢弃数据同时返回RST报文,参考https://www.zhihu.com/question/437249958 )
(5)浏览器输入www.baidu.com到页面渲染之间都发生了什么?(DNS域名解析、TCP三次握手、TLS四次握手、HTTP交互、TCP四次挥手)
(6)如何根据地区来解析域名?例如:北京的用户访问北京的百度服务器(在DNS服务器上面设置根据源IP地址的地理位置来解析域名)
(7)TLS握手交换证书的目的?(身份认证)
(8)浏览器是如何验证证书的真实性?(浏览器本身都安装有很多受信任的证书,收到的服务器证书链,从底向上和浏览器安装证书比对,找到则认为收到的证书有效)
(9)TLS握手的过程?
(10)抓包软件wireshark如何去解析加密流量?(1.wireshark里面设置浏览器生成的会话密钥文件的路径 2.在浏览器上面按照fiddler的证书,然后用fiddler中间人攻击解析流量)
3.手撕代码
(Leetcode 236)二叉树的最近公共祖先
三面面经(技术面,视频,50min)
1.主管先介绍了部门的业务
2.项目介绍
3.口述代码
(1)一个字符串,判断其是否为合法的IPv4地址?
(2)字符串表示的IP地址,如何转化成二进制格式的?
(3)文件中有若干行,每一行有一个startIP,endIP表示一个IP区间,判断文件中重叠区间的个数
#百度##面经##校招#